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>
This commit is contained in:
rasheed.hsueh 2020-12-15 15:50:08 +08:00 committed by Hung-Te Lin
parent 45a6ae35ef
commit 8dad8248d4
2 changed files with 12 additions and 13 deletions

View File

@ -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 */

View File

@ -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""