mb/google/dedede: Update Storo setting for PEN detection.
Update devicetree and gpio driving of storo that enable stylus
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.
BUG=b:188519508,b:188365033
BRANCH=dedede
TEST=build bios and the pen behavior can be detected.
Change-Id: I2ffc969569b3ca29ba76326140f958a9707199f7
Signed-off-by: Zanxi Chen <chenzanxi@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/54762
Reviewed-by: Karthik Ramasubramanian <kramasub@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
diff --git a/src/mainboard/google/dedede/variants/storo/gpio.c b/src/mainboard/google/dedede/variants/storo/gpio.c
index 71e78dc..3d830e7 100644
--- a/src/mainboard/google/dedede/variants/storo/gpio.c
+++ b/src/mainboard/google/dedede/variants/storo/gpio.c
@@ -11,6 +11,9 @@
/* B7 : PCIE_CLKREQ2_N ==> WWAN_SAR_DETECT_ODL*/
PAD_CFG_GPI_IRQ_WAKE(GPP_B7, NONE, DEEP, LEVEL, INVERT),
+ /* C12 : AP_PEN_DET_ODL */
+ PAD_CFG_GPI_GPIO_DRIVER(GPP_C12, UP_20K, DEEP),
+
/* D15 : EN_PP3300_CAMERA */
PAD_CFG_GPO(GPP_D15, 1, PLTRST),
/* D22 : AP_I2C_SUB_SDA*/
diff --git a/src/mainboard/google/dedede/variants/storo/overridetree.cb b/src/mainboard/google/dedede/variants/storo/overridetree.cb
index 14eed3d..40b17df 100644
--- a/src/mainboard/google/dedede/variants/storo/overridetree.cb
+++ b/src/mainboard/google/dedede/variants/storo/overridetree.cb
@@ -13,7 +13,7 @@
#| | for TPM communication |
#| | before memory is up |
#| I2C0 | Trackpad |
- #| I2C1 | Digitizer |
+ #| I2C1 | Digitizer, Stylus |
#| I2C2 | Touchscreen |
#| I2C3 | Camera |
#| I2C4 | Audio |
@@ -119,6 +119,17 @@
end
end #I2C 0
device pci 15.2 on
+ 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" = ""ELAN9008""
register "generic.desc" = ""ELAN Touchscreen""