Attention is currently required from: Eric Lai, Nick Vaccaro, Subrata Banik.
Nick Vaccaro has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/79120?usp=email )
Change subject: mb/google/brya: Disable LTE gpios if LTE_ABSENT ......................................................................
mb/google/brya: Disable LTE gpios if LTE_ABSENT
Check FW_CONFIG and disable gpios for LTE if LTE_ABSENT for skolas and brya0 variants.
BUG=b:311459627 BRANCH=firmware-brya-14505.B TEST=`emerge-brya coreboot chromeos-bootimage`, flash and boot aviko to kernel.
Change-Id: Ie2143f110c6bd97ae4ebbac7489ab8f043738eab Signed-off-by: Nick Vaccaro nvaccaro@google.com --- M src/mainboard/google/brya/variants/brya0/variant.c M src/mainboard/google/brya/variants/skolas/variant.c 2 files changed, 64 insertions(+), 0 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/20/79120/1
diff --git a/src/mainboard/google/brya/variants/brya0/variant.c b/src/mainboard/google/brya/variants/brya0/variant.c index e9ae51e..844313b 100644 --- a/src/mainboard/google/brya/variants/brya0/variant.c +++ b/src/mainboard/google/brya/variants/brya0/variant.c @@ -4,8 +4,40 @@ #include <fw_config.h> #include <baseboard/variants.h>
+static const struct pad_config lte_disable_pads[] = { + /* A7 : WWAN_PCIE_WAKE_ODL */ + PAD_NC(GPP_A7, NONE), + /* A8 : WWAN_RF_DISABLE_ODL */ + PAD_NC(GPP_A8, NONE), + /* D5 : SRCCLKREQ0# ==> WWAN_DPR_SAR_ODL */ + PAD_NC(GPP_D5, NONE), + /* E0 : SATAXPCIE0 ==> WWAN_PERST_L */ + PAD_NC(GPP_E0, NONE), + /* E10 : THC0_SPI1_CS# ==> WWAN_CONFIG0 */ + PAD_NC_LOCK(GPP_E10, NONE, LOCK_CONFIG), + /* E16 : WWAN_RST_L */ + PAD_NC(GPP_E16, NONE), + /* E17 : THC0_SPI1_INT# ==> WWAN_CONFIG3 */ + PAD_NC_LOCK(GPP_E17, NONE, LOCK_CONFIG), + /* F21 : EXT_PWR_GATE2# ==> WWAN_FCPO_L */ + PAD_NC(GPP_F21, NONE), + /* H23 : SRCCLKREQ5# ==> WWAN_CLKREQ_ODL */ + PAD_NC(GPP_H23, NONE), + /* GPD11 : LANPHYC ==> WWAN_CONFIG1 */ + PAD_NC(GPD11, NONE), +}; + void variant_update_soc_chip_config(struct soc_intel_alderlake_config *config) { config->cnvi_bt_audio_offload = fw_config_probe(FW_CONFIG(AUDIO, MAX98373_ALC5682_SNDW)); } + +void fw_config_gpio_padbased_override(struct pad_config *padbased_table) +{ + if (fw_config_probe(FW_CONFIG(DB_LTE, LTE_ABSENT))) { + printk(BIOS_INFO, "Disable LTE GPIO pins.\n"); + gpio_padbased_override(padbased_table, lte_disable_pads, + ARRAY_SIZE(lte_disable_pads)); + } +} diff --git a/src/mainboard/google/brya/variants/skolas/variant.c b/src/mainboard/google/brya/variants/skolas/variant.c index e9ae51e..844313b 100644 --- a/src/mainboard/google/brya/variants/skolas/variant.c +++ b/src/mainboard/google/brya/variants/skolas/variant.c @@ -4,8 +4,40 @@ #include <fw_config.h> #include <baseboard/variants.h>
+static const struct pad_config lte_disable_pads[] = { + /* A7 : WWAN_PCIE_WAKE_ODL */ + PAD_NC(GPP_A7, NONE), + /* A8 : WWAN_RF_DISABLE_ODL */ + PAD_NC(GPP_A8, NONE), + /* D5 : SRCCLKREQ0# ==> WWAN_DPR_SAR_ODL */ + PAD_NC(GPP_D5, NONE), + /* E0 : SATAXPCIE0 ==> WWAN_PERST_L */ + PAD_NC(GPP_E0, NONE), + /* E10 : THC0_SPI1_CS# ==> WWAN_CONFIG0 */ + PAD_NC_LOCK(GPP_E10, NONE, LOCK_CONFIG), + /* E16 : WWAN_RST_L */ + PAD_NC(GPP_E16, NONE), + /* E17 : THC0_SPI1_INT# ==> WWAN_CONFIG3 */ + PAD_NC_LOCK(GPP_E17, NONE, LOCK_CONFIG), + /* F21 : EXT_PWR_GATE2# ==> WWAN_FCPO_L */ + PAD_NC(GPP_F21, NONE), + /* H23 : SRCCLKREQ5# ==> WWAN_CLKREQ_ODL */ + PAD_NC(GPP_H23, NONE), + /* GPD11 : LANPHYC ==> WWAN_CONFIG1 */ + PAD_NC(GPD11, NONE), +}; + void variant_update_soc_chip_config(struct soc_intel_alderlake_config *config) { config->cnvi_bt_audio_offload = fw_config_probe(FW_CONFIG(AUDIO, MAX98373_ALC5682_SNDW)); } + +void fw_config_gpio_padbased_override(struct pad_config *padbased_table) +{ + if (fw_config_probe(FW_CONFIG(DB_LTE, LTE_ABSENT))) { + printk(BIOS_INFO, "Disable LTE GPIO pins.\n"); + gpio_padbased_override(padbased_table, lte_disable_pads, + ARRAY_SIZE(lte_disable_pads)); + } +}