From f01cc9258be9b0ebffaf9e265f4778d1aea048ff Mon Sep 17 00:00:00 2001 From: Subrata Banik Date: Sun, 3 Aug 2025 18:23:20 +0530 Subject: [PATCH] mb/google/rex/var/screebo: Use ACPI for touchscreen power sequencing This commit transitions the touchscreen power sequencing from static coreboot GPIO configuration to ACPI-driven management using the devicetree infrastructure for the Screebo variant. BUG=b:430444353 TEST=Able to build and boot google/screebo. Verified touchscreen is working as expected with this patch. Change-Id: Ie3456032c232ac92ed7501c08b1c89b0ac274c8c Signed-off-by: Subrata Banik Reviewed-on: https://review.coreboot.org/c/coreboot/+/88638 Reviewed-by: Jakub "Kuba" Czapiga Reviewed-by: Paul Menzel Tested-by: build bot (Jenkins) Reviewed-by: Pranava Y N Reviewed-by: Dinesh Gehlot Reviewed-by: Jayvik Desai --- src/mainboard/google/rex/variants/screebo/gpio.c | 4 ++-- src/mainboard/google/rex/variants/screebo/overridetree.cb | 6 ++++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/mainboard/google/rex/variants/screebo/gpio.c b/src/mainboard/google/rex/variants/screebo/gpio.c index c4fd97e99b..d404062bf0 100644 --- a/src/mainboard/google/rex/variants/screebo/gpio.c +++ b/src/mainboard/google/rex/variants/screebo/gpio.c @@ -82,7 +82,7 @@ static const struct pad_config gpio_table[] = { /* GPP_B16 : [] ==> SOC_HDMI_HPD_L */ PAD_CFG_NF(GPP_B16, NONE, DEEP, NF2), /* GPP_B17 :[] ==> EN_TCHSCR_PWR */ - PAD_CFG_GPO(GPP_B17, 0, DEEP), + PAD_CFG_GPO(GPP_B17, 1, DEEP), /* GPP_B18 : [] ==> SOC_I2C_TPM_SDA */ PAD_CFG_NF_LOCK(GPP_B18, NONE, NF2, LOCK_CONFIG), /* GPP_B19 : [] ==> SOC_I2C_TPM_SCL */ @@ -159,7 +159,7 @@ static const struct pad_config gpio_table[] = { /* GPP_D06 : [] ==> UART0_TXD. */ PAD_CFG_NF_LOCK(GPP_D06, NONE, NF1, LOCK_CONFIG), /* GPP_D07 : [] ==> SOC_TCHSCR_RST_L */ - PAD_CFG_GPO(GPP_D07, 0, DEEP), + PAD_CFG_GPO(GPP_D07, 1, DEEP), /* GPP_D08 : net NC. Test pad. */ PAD_NC(GPP_D08, NONE), /* GPP_D09 : [] ==> I2S_MCLK_R */ diff --git a/src/mainboard/google/rex/variants/screebo/overridetree.cb b/src/mainboard/google/rex/variants/screebo/overridetree.cb index d46d7c91ef..cbfa652273 100644 --- a/src/mainboard/google/rex/variants/screebo/overridetree.cb +++ b/src/mainboard/google/rex/variants/screebo/overridetree.cb @@ -445,12 +445,13 @@ chip soc/intel/meteorlake register "generic.hid" = ""ILTK0001"" register "generic.desc" = ""ILITEK Touchscreen"" register "generic.irq" = "ACPI_IRQ_LEVEL_LOW(GPP_C07_IRQ)" - register "generic.probed" = "1" + register "generic.detect" = "1" register "generic.reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_D07)" register "generic.reset_delay_ms" = "200" register "generic.enable_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPP_B17)" register "generic.enable_delay_ms" = "12" register "generic.has_power_resource" = "1" + register "generic.use_gpio_for_status" = "true" register "hid_desc_reg_offset" = "0x01" device i2c 41 on probe TOUCHSCREEN TOUCHSCREEN_ILITEK @@ -460,13 +461,14 @@ chip soc/intel/meteorlake register "generic.hid" = ""EKTH7B18U"" register "generic.desc" = ""ELAN Touchscreen"" register "generic.irq" = "ACPI_IRQ_LEVEL_LOW(GPP_C07_IRQ)" - register "generic.probed" = "1" + register "generic.detect" = "1" register "generic.reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_D07)" register "generic.reset_delay_ms" = "20" register "generic.reset_off_delay_ms" = "2" register "generic.enable_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPP_B17)" register "generic.enable_delay_ms" = "1" register "generic.has_power_resource" = "1" + register "generic.use_gpio_for_status" = "true" register "hid_desc_reg_offset" = "0x01" device i2c 10 on probe TOUCHSCREEN TOUCHSCREEN_ELAN