From 352b76badd9b3ad9310c7b0d5d4bfeb98483a10d Mon Sep 17 00:00:00 2001 From: Duncan Laurie Date: Fri, 26 May 2017 15:47:57 -0700 Subject: [PATCH] UPSTREAM: mb/google/eve: Add power controls to touchscreen device Instead of having the SMI handler power off the touchscreen on the way into suspend add power resource controls to the ACPI device so the power is managed by the kernel instead of the BIOS. BUG=b:35581264 TEST=manual testing on Eve to ensure that the touchscreen is still functional at boot and after suspend/resume, and that it does not draw power in suspend. Change-Id: Ic1dd4ed8faab367347a4150c415a5cd40adb25f6 Signed-off-by: Patrick Georgi Original-Commit-Id: f124b88cfbc990be0c34b0edc82b7ba870828f2e Original-Change-Id: Id9a98807d24bbc7dff32408f3d113f6fad5bc023 Original-Signed-off-by: Duncan Laurie Original-Reviewed-on: https://review.coreboot.org/19946 Original-Tested-by: build bot (Jenkins) Original-Reviewed-by: Aaron Durbin Reviewed-on: https://chromium-review.googlesource.com/521028 Commit-Ready: Patrick Georgi Tested-by: Patrick Georgi Reviewed-by: Patrick Georgi --- src/mainboard/google/eve/devicetree.cb | 4 ++++ src/mainboard/google/eve/gpio.h | 3 +-- src/mainboard/google/eve/smihandler.c | 1 - 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/mainboard/google/eve/devicetree.cb b/src/mainboard/google/eve/devicetree.cb index 487dda3f35..e255a7aa6d 100644 --- a/src/mainboard/google/eve/devicetree.cb +++ b/src/mainboard/google/eve/devicetree.cb @@ -233,6 +233,10 @@ chip soc/intel/skylake register "generic.desc" = ""WCOM Digitizer"" register "generic.irq" = "ACPI_IRQ_LEVEL_LOW(GPP_E7_IRQ)" register "generic.speed" = "I2C_SPEED_FAST_PLUS" + register "generic.has_power_resource" = "1" + register "generic.disable_gpio_export_in_crs" = "1" + register "generic.enable_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPP_C22)" + register "generic.enable_delay_ms" = "250" register "hid_desc_reg_offset" = "0x1" device i2c 0a on end end diff --git a/src/mainboard/google/eve/gpio.h b/src/mainboard/google/eve/gpio.h index b5c2694ccd..f174d9caf0 100644 --- a/src/mainboard/google/eve/gpio.h +++ b/src/mainboard/google/eve/gpio.h @@ -38,7 +38,6 @@ #define EC_SCI_GPI GPE0_ESPI /* Power rail control signals */ -#define EN_PP3300_DX_TOUCH GPP_C22 #define EN_PP3300_DX_CAM GPP_D12 #ifndef __ACPI__ @@ -117,7 +116,7 @@ static const struct pad_config gpio_table[] = { /* I2C1_SCL */ PAD_CFG_NF(GPP_C19, NONE, DEEP, NF1), /* TPM */ /* UART2_RXD */ PAD_CFG_NF(GPP_C20, NONE, DEEP, NF1), /* SERVO */ /* UART2_TXD */ PAD_CFG_NF(GPP_C21, NONE, DEEP, NF1), /* SERVO */ -/* UART2_RTS# */ PAD_CFG_GPO(GPP_C22, 1, DEEP), /* EN_PP3300_DX_TOUCHSCREEN */ +/* UART2_RTS# */ PAD_CFG_GPO(GPP_C22, 0, DEEP), /* EN_PP3300_DX_TOUCHSCREEN */ /* UART2_CTS# */ PAD_CFG_GPI(GPP_C23, 20K_PU, DEEP), /* PCH_WP */ /* SPI1_CS# */ PAD_CFG_GPO(GPP_D0, 0, DEEP), /* TOUCHPAD_BOOT */ diff --git a/src/mainboard/google/eve/smihandler.c b/src/mainboard/google/eve/smihandler.c index 879131c220..493a3349e5 100644 --- a/src/mainboard/google/eve/smihandler.c +++ b/src/mainboard/google/eve/smihandler.c @@ -29,7 +29,6 @@ void mainboard_smi_espi_handler(void) static void mainboard_gpio_smi_sleep(u8 slp_typ) { /* Power down the rails on any sleep type */ - gpio_set(EN_PP3300_DX_TOUCH, 0); gpio_set(EN_PP3300_DX_CAM, 0); }