From 22ac6f6b2c43317f38938dedd68051a4e0b07c81 Mon Sep 17 00:00:00 2001 From: Matt DeVillier Date: Tue, 28 Nov 2023 09:22:39 -0600 Subject: mb/google/galdos/var/lars: Implement touchscreen power sequencing Since lars has two touchscreen options, we need to determine which (if any) are present on a given device at runtime so that there are not multiple ACPI touchscreen devices (as it makes Windows unhappy). Implement power sequencing and runtime detection for both touchscreen options. TEST=build/boot Win11/Linux on google/lars, verify touchscreen detected and functional under both OSes. Change-Id: I49ccb29ec4589315a4abe3c0ea8fa76f97080bcd Signed-off-by: Matt DeVillier Reviewed-on: https://review.coreboot.org/c/coreboot/+/79311 Tested-by: build bot (Jenkins) Reviewed-by: Eric Lai --- .../google/glados/variants/lars/include/variant/gpio.h | 4 ++++ src/mainboard/google/glados/variants/lars/overridetree.cb | 12 ++++++++++++ 2 files changed, 16 insertions(+) (limited to 'src') diff --git a/src/mainboard/google/glados/variants/lars/include/variant/gpio.h b/src/mainboard/google/glados/variants/lars/include/variant/gpio.h index 5ff059bb4e..611ee240ad 100644 --- a/src/mainboard/google/glados/variants/lars/include/variant/gpio.h +++ b/src/mainboard/google/glados/variants/lars/include/variant/gpio.h @@ -216,6 +216,10 @@ static const struct pad_config early_gpio_table[] = { /* GD_UART2_RXD */ PAD_CFG_NF(GPP_C20, NONE, DEEP, NF1), /* GD_UART2_TXD */ PAD_CFG_NF(GPP_C21, NONE, DEEP, NF1), /* EC_IN_RW */ PAD_CFG_GPI_GPIO_DRIVER(GPP_C6, NONE, DEEP), + +/* touchscreen enable, hold in reset */ +/* TCH_PNL_PWREN */ PAD_CFG_GPO(GPP_C22, 1, DEEP), +/* TCH_PNL_RST */ PAD_CFG_GPO(GPP_E23, 0, DEEP), }; #endif diff --git a/src/mainboard/google/glados/variants/lars/overridetree.cb b/src/mainboard/google/glados/variants/lars/overridetree.cb index 717ea53f0d..2616044e51 100644 --- a/src/mainboard/google/glados/variants/lars/overridetree.cb +++ b/src/mainboard/google/glados/variants/lars/overridetree.cb @@ -18,12 +18,24 @@ chip soc/intel/skylake register "hid" = ""ELAN0001"" register "desc" = ""ELAN Touchscreen"" register "irq" = "ACPI_IRQ_EDGE_LOW(GPP_E7_IRQ)" + register "detect" = "1" + register "reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_E7)" + register "reset_delay_ms" = "20" + register "enable_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPP_E23)" + register "enable_delay_ms" = "1" + register "has_power_resource" = "1" device i2c 10 on end end chip drivers/i2c/generic register "hid" = ""MLFS0000"" register "desc" = ""Melfas Touchscreen"" register "irq" = "ACPI_IRQ_EDGE_LOW(GPP_E7_IRQ)" + register "detect" = "1" + register "reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_E7)" + register "reset_delay_ms" = "10" + register "enable_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPP_E23)" + register "enable_delay_ms" = "55" + register "has_power_resource" = "1" device i2c 34 on end end end -- cgit v1.2.3