From 73108ded48f6a58deb08e01c1ae8fd35baf39d95 Mon Sep 17 00:00:00 2001 From: Furquan Shaikh Date: Tue, 23 May 2017 11:56:09 -0700 Subject: mainboard/google/poppy: Add PowerResource for touchscreen device 1. Do not enable touchscreen device by default in gpio configuration. 2. Select use of PowerResource for touchscreen device in devicetree so that the ACPI subsystem can take care of powering on/off the device. When system enters suspend, touchscreen device is powered off and on resume, it is powered back on. BUG=b:62028489 TEST=Verified 100 cycles of suspend-resume. Touchscreen still works on poppy. Change-Id: Ia0bebc7259b10cc60a9fa5b53542dfdd9685663e Signed-off-by: Furquan Shaikh Reviewed-on: https://review.coreboot.org/19829 Reviewed-by: Duncan Laurie Reviewed-by: Aaron Durbin Tested-by: build bot (Jenkins) --- src/mainboard/google/poppy/variants/baseboard/devicetree.cb | 4 ++++ src/mainboard/google/poppy/variants/baseboard/gpio.c | 2 +- src/mainboard/google/poppy/variants/soraka/devicetree.cb | 4 ++++ 3 files changed, 9 insertions(+), 1 deletion(-) (limited to 'src/mainboard/google') diff --git a/src/mainboard/google/poppy/variants/baseboard/devicetree.cb b/src/mainboard/google/poppy/variants/baseboard/devicetree.cb index 4e3ffaf68c..51dadda26a 100644 --- a/src/mainboard/google/poppy/variants/baseboard/devicetree.cb +++ b/src/mainboard/google/poppy/variants/baseboard/devicetree.cb @@ -210,6 +210,10 @@ chip soc/intel/skylake register "desc" = ""Atmel Touchscreen"" register "irq" = "ACPI_IRQ_LEVEL_LOW(GPP_E7_IRQ)" register "probed" = "1" + register "has_power_resource" = "1" + register "disable_gpio_export_in_crs" = "1" + register "enable_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPP_C22)" + register "enable_delay_ms" = "250" device i2c 4b on end end end # I2C #0 diff --git a/src/mainboard/google/poppy/variants/baseboard/gpio.c b/src/mainboard/google/poppy/variants/baseboard/gpio.c index 2be9d0f86f..a8651930c1 100644 --- a/src/mainboard/google/poppy/variants/baseboard/gpio.c +++ b/src/mainboard/google/poppy/variants/baseboard/gpio.c @@ -174,7 +174,7 @@ static const struct pad_config gpio_table[] = { /* C21 : UART2_TXD ==> PCHTX_SERVORX_UART */ PAD_CFG_NF(GPP_C21, NONE, DEEP, NF1), /* C22 : UART2_RTS# ==> EN_PP3300_DX_TOUCHSCREEN */ - PAD_CFG_GPO(GPP_C22, 1, DEEP), + PAD_CFG_GPO(GPP_C22, 0, DEEP), /* C23 : UART2_CTS# ==> PCH_WP */ PAD_CFG_GPI(GPP_C23, 20K_PU, DEEP), diff --git a/src/mainboard/google/poppy/variants/soraka/devicetree.cb b/src/mainboard/google/poppy/variants/soraka/devicetree.cb index d7fe0e84ef..7efe413472 100644 --- a/src/mainboard/google/poppy/variants/soraka/devicetree.cb +++ b/src/mainboard/google/poppy/variants/soraka/devicetree.cb @@ -210,6 +210,10 @@ chip soc/intel/skylake register "desc" = ""Atmel Touchscreen"" register "irq" = "ACPI_IRQ_LEVEL_LOW(GPP_E7_IRQ)" register "probed" = "1" + register "has_power_resource" = "1" + register "disable_gpio_export_in_crs" = "1" + register "enable_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPP_C22)" + register "enable_delay_ms" = "250" device i2c 4b on end end end # I2C #0 -- cgit v1.2.3