mb/google/rex/var/rex0: Configure EN_WWAN_PWR GPIO based on CBI

GPP_B17 (aka. EN_WWAN_PWR) should be kept low when the device does not
have a WWAN module.

TEST=Power consumption drops to 0 in S0iX

Change-Id: I95150c20c98b037a47827a7b83e4373c6e9070e3
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/78684
Reviewed-by: Sukumar Ghorai <sukumar.ghorai@intel.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
This commit is contained in:
Jeremy Compostella 2023-10-26 09:48:20 -07:00 committed by Matt DeVillier
parent 0ec65daf7d
commit d4bf7211ca
1 changed files with 9 additions and 0 deletions

View File

@ -126,6 +126,10 @@ static const struct pad_config uwb_gspi1_disable_pads[] = {
PAD_NC(GPP_F20, NONE),
};
static const struct pad_config wwan_disable_pads[] = {
PAD_CFG_GPO(GPP_B17, 0, DEEP) /* EN_WWAN_PWR */
};
void fw_config_gpio_padbased_override(struct pad_config *padbased_table)
{
if (!fw_config_is_provisioned()) {
@ -180,4 +184,9 @@ void fw_config_gpio_padbased_override(struct pad_config *padbased_table)
printk(BIOS_INFO, "Disabling UWB (absent or misconfigured)\n");
GPIO_PADBASED_OVERRIDE(padbased_table, uwb_gspi1_disable_pads);
}
if (fw_config_probe(FW_CONFIG(CELLULAR, CELLULAR_ABSENT))) {
printk(BIOS_INFO, "Configure GPIOs for no cellular.\n");
GPIO_PADBASED_OVERRIDE(padbased_table, wwan_disable_pads);
}
}