diff options
author | Nick Vaccaro <nvaccaro@google.com> | 2023-11-17 12:46:46 -0800 |
---|---|---|
committer | Felix Held <felix-coreboot@felixheld.de> | 2023-11-20 14:34:33 +0000 |
commit | 0863f7cdb28cd201e7cd6f399fc90165c4600d7b (patch) | |
tree | 5fa31c893e355b6a6ea2a9de7929bedab56bb1ee | |
parent | 6615c60fd5ac5bb8a3ad9f86bbb1431332978a5d (diff) |
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>
-rw-r--r-- | src/mainboard/google/brya/variants/brya0/fw_config.c | 14 | ||||
-rw-r--r-- | src/mainboard/google/brya/variants/skolas/fw_config.c | 14 |
2 files changed, 28 insertions, 0 deletions
diff --git a/src/mainboard/google/brya/variants/brya0/fw_config.c b/src/mainboard/google/brya/variants/brya0/fw_config.c index e50c5e4159..cd595ac19a 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 @@ static const struct pad_config lte_disable_pads[] = { 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 @@ static void fw_config_handle(void *unused) 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 e50c5e4159..86246dbb2d 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 @@ static const struct pad_config bt_i2s_disable_pads[] = { 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 @@ static void fw_config_handle(void *unused) 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); |