From d71a9697580c31c56bf0f4278e40cab4c8553411 Mon Sep 17 00:00:00 2001 From: Kapil Porwal Date: Wed, 16 Apr 2025 23:54:29 +0530 Subject: [PATCH] mb/google/brya/var/uldrenite: Use FW_CONFIG for ISH Control ISH device and corresponding GPIOs using a FW_CONFIG field. BUG=b:410645679 TEST=Enable/Disable ISH using the new FW_CONFIG field. Change-Id: I69805116722535d77c7fd7701df261e0faa9138f Signed-off-by: Kapil Porwal Reviewed-on: https://review.coreboot.org/c/coreboot/+/87344 Tested-by: build bot (Jenkins) Reviewed-by: Jayvik Desai Reviewed-by: Eric Lai Reviewed-by: Subrata Banik Reviewed-by: Yuval Peress --- .../google/brya/variants/uldrenite/overridetree.cb | 5 +++++ .../google/brya/variants/uldrenite/variant.c | 12 ++++++++++++ 2 files changed, 17 insertions(+) diff --git a/src/mainboard/google/brya/variants/uldrenite/overridetree.cb b/src/mainboard/google/brya/variants/uldrenite/overridetree.cb index 00de214d99..55e15175c7 100644 --- a/src/mainboard/google/brya/variants/uldrenite/overridetree.cb +++ b/src/mainboard/google/brya/variants/uldrenite/overridetree.cb @@ -15,6 +15,10 @@ fw_config option MB_C_TWO 0 option MB_C_ONE 1 end + field ISH 8 8 + option ISH_DISABLE 0 + option ISH_ENABLE 1 + end end chip soc/intel/alderlake @@ -487,6 +491,7 @@ chip soc/intel/alderlake probe DB_CELLULAR CELLULAR_RW350R end # PCIE2 WWAN card device ref ish on + probe ISH ISH_ENABLE chip drivers/intel/ish register "firmware_name" = ""uldrenite_ish.bin"" device generic 0 on end diff --git a/src/mainboard/google/brya/variants/uldrenite/variant.c b/src/mainboard/google/brya/variants/uldrenite/variant.c index cbaf20bac8..9944328dca 100644 --- a/src/mainboard/google/brya/variants/uldrenite/variant.c +++ b/src/mainboard/google/brya/variants/uldrenite/variant.c @@ -40,6 +40,13 @@ static const struct pad_config lte_disable_pads[] = { PAD_NC(GPP_H23, NONE), }; +static const struct pad_config ish_disable_pads[] = { + /* B5 : GPP_B5 ==> NC */ + PAD_NC(GPP_B5, NONE), + /* B6 : GPP_B6 ==> NC */ + PAD_NC(GPP_B6, NONE), +}; + void fw_config_gpio_padbased_override(struct pad_config *padbased_table) { if (fw_config_probe(FW_CONFIG(TOUCHSCREEN, TOUCHSCREEN_NONE))) { @@ -52,6 +59,11 @@ void fw_config_gpio_padbased_override(struct pad_config *padbased_table) gpio_padbased_override(padbased_table, lte_disable_pads, ARRAY_SIZE(lte_disable_pads)); } + if (!fw_config_probe(FW_CONFIG(ISH, ISH_ENABLE))) { + printk(BIOS_INFO, "Disable ISH GPIO pins.\n"); + gpio_padbased_override(padbased_table, ish_disable_pads, + ARRAY_SIZE(ish_disable_pads)); + } } void variant_update_soc_chip_config(struct soc_intel_alderlake_config *config)