summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCaveh Jalali <caveh@chromium.org>2018-10-01 19:37:42 -0700
committerMartin Roth <martinroth@google.com>2018-10-05 01:37:51 +0000
commit19c0ae540ea992b76eb65421381269def0a6328d (patch)
tree2dfec811171a8b81b4b2283dedbcc902be37fa05
parent5fdd201c1739382f8b82a918b086e07ae041f2a0 (diff)
downloadcoreboot-19c0ae540ea992b76eb65421381269def0a6328d.tar.xz
atlas: control touchscreen power using ACPI
This adds the ACPI controls for power sequencing the touchscreen. The initial setting is to keep the touchscreen powered off and in reset. When linux is ready to talk to the touchscreen, it powers it on and releases reset via ACPI. BUG=b:110286344 TEST=verified touchscreen is functional in chromeos Change-Id: I58c42a8f09342cfe54f82ef0e6cd8ea72a5140dc Signed-off-by: Caveh Jalali <caveh@chromium.org> Reviewed-on: https://review.coreboot.org/28869 Reviewed-by: Furquan Shaikh <furquan@google.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
-rw-r--r--src/mainboard/google/poppy/variants/atlas/devicetree.cb8
-rw-r--r--src/mainboard/google/poppy/variants/atlas/gpio.c4
2 files changed, 10 insertions, 2 deletions
diff --git a/src/mainboard/google/poppy/variants/atlas/devicetree.cb b/src/mainboard/google/poppy/variants/atlas/devicetree.cb
index dc540995c0..66cd1bdb7a 100644
--- a/src/mainboard/google/poppy/variants/atlas/devicetree.cb
+++ b/src/mainboard/google/poppy/variants/atlas/devicetree.cb
@@ -278,6 +278,14 @@ chip soc/intel/skylake
register "generic.irq" = "ACPI_IRQ_LEVEL_LOW(GPP_E7_IRQ)"
register "generic.speed" = "I2C_SPEED_FAST"
register "generic.probed" = "1"
+ 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)"
+ # 2ms for load switch slew + 5 ms for touchscreen
+ register "generic.enable_delay_ms" = "7"
+ register "generic.reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_E11)"
+ register "generic.reset_delay_ms" = "20"
+ register "generic.reset_off_delay_ms" = "1"
register "hid_desc_reg_offset" = "0xab"
device i2c 0x49 on end
end
diff --git a/src/mainboard/google/poppy/variants/atlas/gpio.c b/src/mainboard/google/poppy/variants/atlas/gpio.c
index f82976e2d4..58f7fc5943 100644
--- a/src/mainboard/google/poppy/variants/atlas/gpio.c
+++ b/src/mainboard/google/poppy/variants/atlas/gpio.c
@@ -154,7 +154,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_GPIO_DRIVER(GPP_C23, 20K_PU, DEEP),
@@ -226,7 +226,7 @@ static const struct pad_config gpio_table[] = {
/* E10 : USB2_OC1# ==> USB_C1_OC_ODL */
PAD_CFG_NF(GPP_E10, NONE, DEEP, NF1),
/* E11 : USB2_OC2# ==> TOUCHSCREEN_RESET_L */
- PAD_CFG_GPO(GPP_E11, 1, DEEP),
+ PAD_CFG_GPO(GPP_E11, 0, DEEP),
/* E12 : USB2_OC3# ==> NC */
PAD_CFG_NC(GPP_E12),
/* E13 : DDPB_HPD0 ==> USB_C1_DP_HPD */