summaryrefslogtreecommitdiff
path: root/src/mainboard
diff options
context:
space:
mode:
authorrasheed.hsueh <rasheed.hsueh@lcfc.corp-partner.google.com>2020-12-15 15:50:08 +0800
committerHung-Te Lin <hungte@chromium.org>2020-12-21 02:37:29 +0000
commit8dad8248d46e6c5d4b4708cff93789719ca7c4ee (patch)
treeffbd6a5fc91e047ef274f9a369b6c1ee73330526 /src/mainboard
parent45a6ae35ef9c605ff3ce47f98b8cfe53cccbdf7d (diff)
downloadcoreboot-8dad8248d46e6c5d4b4708cff93789719ca7c4ee.tar.xz
mb/google/dedede: Update Boten setting for USI PEN detection.
Update devicetree and gpio driving of boten that enable stylus PEN detect signal is not dual-routed on Boten. Since the gpio_keys kernel driver expects the pad to be owned by GPIO controller (i.e. configured for GPIO IRQ), it cannot be configured for ACPI (i.e. SCI). Thus, this change updates the GPIO configuration for GPP_C12 to PAD_CFG_GPI_GPIO_DRIVER and device tree entry for PENH device to use WAKEUP_ROUTE_GPIO_IRQ. Additionally, the signal is marked as active low in the device tree entry to indicate to the kernel driver that the signal is inverted. Not dual routing the signal results in wake source not being added to eventlog when pen removal results in wake from S0ix. BUG=b:160752604 BRANCH=dedede TEST=Build and check behavior is expected. Signed-off-by: rasheed.hsueh <rasheed.hsueh@lcfc.corp-partner.google.com> Change-Id: I74a17088da64c22ef1c74d201c80274fc65a44c9 Reviewed-on: https://review.coreboot.org/c/coreboot/+/48641 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Furquan Shaikh <furquan@google.com> Reviewed-by: Karthik Ramasubramanian <kramasub@google.com>
Diffstat (limited to 'src/mainboard')
-rw-r--r--src/mainboard/google/dedede/variants/boten/gpio.c2
-rw-r--r--src/mainboard/google/dedede/variants/boten/overridetree.cb23
2 files changed, 12 insertions, 13 deletions
diff --git a/src/mainboard/google/dedede/variants/boten/gpio.c b/src/mainboard/google/dedede/variants/boten/gpio.c
index 0c81872ab9..09c7a5dda6 100644
--- a/src/mainboard/google/dedede/variants/boten/gpio.c
+++ b/src/mainboard/google/dedede/variants/boten/gpio.c
@@ -11,7 +11,7 @@ static const struct pad_config gpio_table[] = {
PAD_CFG_GPO(GPP_A10, 0, PLTRST),
/* C12 : AP_PEN_DET_ODL */
- PAD_CFG_GPI_SCI(GPP_C12, UP_20K, DEEP, EDGE_SINGLE, NONE),
+ PAD_CFG_GPI_GPIO_DRIVER(GPP_C12, UP_20K, DEEP),
/* C18 : AP_I2C_EMR_SDA */
PAD_NC(GPP_C18, NONE),
/* C19 : AP_I2C_EMR_SCL */
diff --git a/src/mainboard/google/dedede/variants/boten/overridetree.cb b/src/mainboard/google/dedede/variants/boten/overridetree.cb
index d2540e3d15..ab8fcdba29 100644
--- a/src/mainboard/google/dedede/variants/boten/overridetree.cb
+++ b/src/mainboard/google/dedede/variants/boten/overridetree.cb
@@ -116,18 +116,17 @@ chip soc/intel/jasperlake
end
end # I2C 0
device pci 15.2 on
- chip drivers/generic/gpio_keys
- register "name" = ""PENH""
- register "gpio" = "ACPI_GPIO_IRQ_EDGE_BOTH(GPP_C12)"
- register "key.wake_gpe" = "GPE0_DW1_12"
- register "key.wakeup_route" = "WAKEUP_ROUTE_SCI"
- register "key.wakeup_event_action" = "EV_ACT_DEASSERTED"
- register "key.dev_name" = ""EJCT""
- register "key.linux_code" = "SW_PEN_INSERTED"
- register "key.linux_input_type" = "EV_SW"
- register "key.label" = ""pen_eject""
- device generic 0 on end
- end
+ chip drivers/generic/gpio_keys
+ register "name" = ""PENH""
+ register "gpio" = "ACPI_GPIO_INPUT_ACTIVE_LOW(GPP_C12)"
+ register "key.wakeup_route" = "WAKEUP_ROUTE_GPIO_IRQ"
+ register "key.wakeup_event_action" = "EV_ACT_DEASSERTED"
+ register "key.dev_name" = ""EJCT""
+ register "key.linux_code" = "SW_PEN_INSERTED"
+ register "key.linux_input_type" = "EV_SW"
+ register "key.label" = ""pen_eject""
+ device generic 0 on end
+ end
chip drivers/i2c/hid
register "generic.hid" = ""GDIX0000""
register "generic.desc" = ""Goodix Touchscreen""