Felix Held has submitted this change. ( https://review.coreboot.org/c/coreboot/+/79123?usp=email )
Change subject: mb/goog/brya/var/brya0/skolas: Disable HPS GPIOs if HPS_ABSENT ......................................................................
mb/goog/brya/var/brya0/skolas: Disable HPS GPIOs if HPS_ABSENT
Check FW_CONFIG and disable gpios for HPS if HPS_ABSENT for skolas and brya0 variants.
BUG=b:311740746 BRANCH=firmware-brya-14505.B TEST=`emerge-brya coreboot chromeos-bootimage`, flash and boot skolas to kernel and verify via "cbmem -c | grep HPS".
Change-Id: I8cbe4f40c41f1d06e8f511c3e88c05984566d441 Signed-off-by: Nick Vaccaro nvaccaro@google.com Reviewed-on: https://review.coreboot.org/c/coreboot/+/79123 Tested-by: build bot (Jenkins) no-reply@coreboot.org Reviewed-by: Eric Lai ericllai@google.com --- M src/mainboard/google/brya/variants/brya0/fw_config.c M src/mainboard/google/brya/variants/skolas/fw_config.c 2 files changed, 28 insertions(+), 0 deletions(-)
Approvals: build bot (Jenkins): Verified Eric Lai: Looks good to me, approved
diff --git a/src/mainboard/google/brya/variants/brya0/fw_config.c b/src/mainboard/google/brya/variants/brya0/fw_config.c index e50c5e4..cd595ac 100644 --- a/src/mainboard/google/brya/variants/brya0/fw_config.c +++ b/src/mainboard/google/brya/variants/brya0/fw_config.c @@ -123,6 +123,15 @@ PAD_NC(GPD11, NONE), };
+static const struct pad_config hps_disable_pads[] = { + /* E3 : PROC_GP0 ==> HPS_INT_ODL */ + PAD_NC(GPP_E3, NONE), + /* E7 : PROC_GP1 ==> EN_HPS_PWR */ + PAD_NC(GPP_E7, NONE), + /* F20 : EXT_PWR_GATE# ==> HPS_RST_R */ + PAD_NC(GPP_F20, NONE), +}; + static void enable_i2s(void) { gpio_configure_pads(dmic_enable_pads, ARRAY_SIZE(dmic_enable_pads)); @@ -183,5 +192,10 @@ printk(BIOS_INFO, "Disable LTE related GPIO pins.\n"); gpio_configure_pads(lte_disable_pads, ARRAY_SIZE(lte_disable_pads)); } + + if (fw_config_probe(FW_CONFIG(HPS, HPS_ABSENT))) { + printk(BIOS_INFO, "Disable HPS related GPIO pins.\n"); + gpio_configure_pads(hps_disable_pads, ARRAY_SIZE(hps_disable_pads)); + } } BOOT_STATE_INIT_ENTRY(BS_DEV_ENABLE, BS_ON_ENTRY, fw_config_handle, NULL); diff --git a/src/mainboard/google/brya/variants/skolas/fw_config.c b/src/mainboard/google/brya/variants/skolas/fw_config.c index e50c5e4..86246db 100644 --- a/src/mainboard/google/brya/variants/skolas/fw_config.c +++ b/src/mainboard/google/brya/variants/skolas/fw_config.c @@ -100,6 +100,15 @@ PAD_NC(GPP_VGPIO_37, NONE), };
+static const struct pad_config hps_disable_pads[] = { + /* E3 : PROC_GP0 ==> HPS_INT_ODL */ + PAD_NC(GPP_E3, NONE), + /* E7 : PROC_GP1 ==> EN_HPS_PWR */ + PAD_NC(GPP_E7, NONE), + /* F20 : EXT_PWR_GATE# ==> HPS_RST_R */ + PAD_NC(GPP_F20, NONE), +}; + static const struct pad_config lte_disable_pads[] = { /* A7 : WWAN_PCIE_WAKE_ODL */ PAD_NC(GPP_A7, NONE), @@ -183,5 +192,10 @@ printk(BIOS_INFO, "Disable LTE related GPIO pins.\n"); gpio_configure_pads(lte_disable_pads, ARRAY_SIZE(lte_disable_pads)); } + + if (fw_config_probe(FW_CONFIG(HPS, HPS_ABSENT))) { + printk(BIOS_INFO, "Disable HPS related GPIO pins.\n"); + gpio_configure_pads(hps_disable_pads, ARRAY_SIZE(hps_disable_pads)); + } } BOOT_STATE_INIT_ENTRY(BS_DEV_ENABLE, BS_ON_ENTRY, fw_config_handle, NULL);