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>
This commit is contained in:
Nick Vaccaro 2023-11-17 12:46:46 -08:00 committed by Felix Held
parent 6615c60fd5
commit 0863f7cdb2
2 changed files with 28 additions and 0 deletions

View File

@ -123,6 +123,15 @@ static const struct pad_config lte_disable_pads[] = {
PAD_NC(GPD11, NONE), 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) static void enable_i2s(void)
{ {
gpio_configure_pads(dmic_enable_pads, ARRAY_SIZE(dmic_enable_pads)); 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"); printk(BIOS_INFO, "Disable LTE related GPIO pins.\n");
gpio_configure_pads(lte_disable_pads, ARRAY_SIZE(lte_disable_pads)); 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); BOOT_STATE_INIT_ENTRY(BS_DEV_ENABLE, BS_ON_ENTRY, fw_config_handle, NULL);

View File

@ -100,6 +100,15 @@ static const struct pad_config bt_i2s_disable_pads[] = {
PAD_NC(GPP_VGPIO_37, NONE), 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[] = { static const struct pad_config lte_disable_pads[] = {
/* A7 : WWAN_PCIE_WAKE_ODL */ /* A7 : WWAN_PCIE_WAKE_ODL */
PAD_NC(GPP_A7, NONE), 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"); printk(BIOS_INFO, "Disable LTE related GPIO pins.\n");
gpio_configure_pads(lte_disable_pads, ARRAY_SIZE(lte_disable_pads)); 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); BOOT_STATE_INIT_ENTRY(BS_DEV_ENABLE, BS_ON_ENTRY, fw_config_handle, NULL);