From 735524529a324e828f79a4c63dd5b46d4d8144d5 Mon Sep 17 00:00:00 2001 From: Yunlong Jia Date: Fri, 1 Mar 2024 02:05:16 +0000 Subject: [PATCH] mb/google/nissa/var/gothrax: Add probe and GPIO config for touchpanel Add FW_CONFIG probe to separate touch panel settings. TOUCH_PANEL_ENABLE/TOUCH_PANEL_DISABLE Use different gpio tables based on the value of TOUCH_PANEL. BUG=b:325987249 TEST=emerge-nissa coreboot and run in DUT Change-Id: I23c62406a932815ff1cfafe05b70468b1f9cca54 Signed-off-by: Yunlong Jia Reviewed-on: https://review.coreboot.org/c/coreboot/+/80850 Tested-by: build bot (Jenkins) Reviewed-by: Eric Lai Reviewed-by: Kyle Lin --- .../google/brya/variants/gothrax/gpio.c | 17 +++++++++++++++-- .../brya/variants/gothrax/overridetree.cb | 8 +++++++- 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/src/mainboard/google/brya/variants/gothrax/gpio.c b/src/mainboard/google/brya/variants/gothrax/gpio.c index 0bf1b52ddb..077c8506f7 100644 --- a/src/mainboard/google/brya/variants/gothrax/gpio.c +++ b/src/mainboard/google/brya/variants/gothrax/gpio.c @@ -2,6 +2,7 @@ #include #include +#include /* Pad configuration in ramstage */ static const struct pad_config override_gpio_table[] = { @@ -80,6 +81,13 @@ static const struct pad_config romstage_gpio_table[] = { PAD_CFG_GPO(GPP_H20, 1, DEEP), }; +static const struct pad_config romstage_gpio_table_nontp[] = { + /* H12 : UART0_RTS# ==> SD_PERST_L */ + PAD_CFG_GPO(GPP_H12, 1, DEEP), + /* H20 : IMGCLKOUT1 ==> WLAN_PERST_L */ + PAD_CFG_GPO(GPP_H20, 1, DEEP), +}; + const struct pad_config *variant_gpio_override_table(size_t *num) { *num = ARRAY_SIZE(override_gpio_table); @@ -94,6 +102,11 @@ const struct pad_config *variant_early_gpio_table(size_t *num) const struct pad_config *variant_romstage_gpio_table(size_t *num) { - *num = ARRAY_SIZE(romstage_gpio_table); - return romstage_gpio_table; + if (fw_config_probe(FW_CONFIG(TOUCH_PANEL, TOUCH_PANEL_DISABLE))) { + *num = ARRAY_SIZE(romstage_gpio_table_nontp); + return romstage_gpio_table_nontp; + } else { + *num = ARRAY_SIZE(romstage_gpio_table); + return romstage_gpio_table; + } } diff --git a/src/mainboard/google/brya/variants/gothrax/overridetree.cb b/src/mainboard/google/brya/variants/gothrax/overridetree.cb index b36ff07453..77be31c6fd 100644 --- a/src/mainboard/google/brya/variants/gothrax/overridetree.cb +++ b/src/mainboard/google/brya/variants/gothrax/overridetree.cb @@ -24,6 +24,10 @@ fw_config option WFC_PRESENT 0 option WFC_ABSENT 1 end + field TOUCH_PANEL 9 + option TOUCH_PANEL_ENABLE 0 + option TOUCH_PANEL_DISABLE 1 + end end chip soc/intel/alderlake @@ -226,7 +230,9 @@ chip soc/intel/alderlake register "generic.enable_delay_ms" = "6" register "generic.has_power_resource" = "1" register "hid_desc_reg_offset" = "0x01" - device i2c 0x10 on end + device i2c 0x10 on + probe TOUCH_PANEL TOUCH_PANEL_ENABLE + end end end device ref i2c2 on