Patrick Georgi submitted this change.

View Change

Approvals: build bot (Jenkins): Verified Aaron Durbin: Looks good to me, approved Tim Wawrzynczak: Looks good to me, approved
mb/google/volteer: Add gpio-keys ACPI node for PENH

Use gpio_keys driver to add ACPI node for pen eject event. Also
setting gpio wake pin for wake events.

Removal and insertion (both edges) triggers IRQ and only removal is a
wake event (rising edge).

Adding for both Volteer and Volteer2 variants.

BUG=b:146083964
BRANCH=None
TEST=tested on a Volteer

Change-Id: Ida3217a5b156320856ce3302c2623eba2230f28d
Signed-off-by: Alex Levin <levinale@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/43764
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-by: Tim Wawrzynczak <twawrzynczak@chromium.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
---
M src/mainboard/google/volteer/Kconfig
M src/mainboard/google/volteer/variants/volteer/gpio.c
M src/mainboard/google/volteer/variants/volteer/overridetree.cb
M src/mainboard/google/volteer/variants/volteer2/overridetree.cb
4 files changed, 29 insertions(+), 2 deletions(-)

diff --git a/src/mainboard/google/volteer/Kconfig b/src/mainboard/google/volteer/Kconfig
index 16834ae..8d5faef 100644
--- a/src/mainboard/google/volteer/Kconfig
+++ b/src/mainboard/google/volteer/Kconfig
@@ -1,6 +1,7 @@
config BOARD_GOOGLE_BASEBOARD_VOLTEER
def_bool n
select BOARD_ROMSIZE_KB_32768
+ select DRIVERS_GENERIC_GPIO_KEYS
select DRIVERS_GENERIC_MAX98357A
select DRIVERS_I2C_GENERIC
select DRIVERS_I2C_HID
diff --git a/src/mainboard/google/volteer/variants/volteer/gpio.c b/src/mainboard/google/volteer/variants/volteer/gpio.c
index 2b99e52..9c36138 100644
--- a/src/mainboard/google/volteer/variants/volteer/gpio.c
+++ b/src/mainboard/google/volteer/variants/volteer/gpio.c
@@ -30,7 +30,7 @@
PAD_CFG_NF(GPP_A23, NONE, DEEP, NF1),

/* B3 : CPU_GP2 ==> PEN_DET_ODL */
- PAD_CFG_GPI(GPP_B3, NONE, DEEP),
+ PAD_CFG_GPI_GPIO_DRIVER(GPP_B3, NONE, PLTRST),
/* B5 : ISH_I2C0_CVF_SDA */
PAD_CFG_NF(GPP_B5, NONE, DEEP, NF1),
/* B6 : ISH_I2C0_CVF_SCL */
@@ -98,7 +98,7 @@
PAD_CFG_GPO(GPP_D18, 1, DEEP),

/* E1 : SPI1_IO2 ==> PEN_DET_ODL */
- PAD_CFG_GPI_SCI_LOW(GPP_E1, NONE, DEEP, EDGE_SINGLE),
+ PAD_CFG_GPI_SCI(GPP_E1, NONE, DEEP, EDGE_SINGLE, NONE),
/* E2 : SPI1_IO3 ==> WLAN_PCIE_WAKE_ODL */
PAD_CFG_GPI(GPP_E2, NONE, DEEP),
/* E3 : CPU_GP0 ==> USI_REPORT_EN */
diff --git a/src/mainboard/google/volteer/variants/volteer/overridetree.cb b/src/mainboard/google/volteer/variants/volteer/overridetree.cb
index 0944765..54566f7 100644
--- a/src/mainboard/google/volteer/variants/volteer/overridetree.cb
+++ b/src/mainboard/google/volteer/variants/volteer/overridetree.cb
@@ -68,6 +68,19 @@
register "hid_desc_reg_offset" = "0x01"
device i2c 10 on end
end
+ chip drivers/generic/gpio_keys
+ register "name" = ""PENH""
+ # GPP_B3 is the IRQ source, and GPP_E1 is the wake source
+ register "gpio" = "ACPI_GPIO_IRQ_EDGE_BOTH(GPP_B3)"
+ register "key.wake_gpe" = "GPE0_DW2_01"
+ 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
end # I2C1 0xA0E9
device pci 15.2 on
chip drivers/i2c/sx9310
diff --git a/src/mainboard/google/volteer/variants/volteer2/overridetree.cb b/src/mainboard/google/volteer/variants/volteer2/overridetree.cb
index c32b80e..9c78b94 100644
--- a/src/mainboard/google/volteer/variants/volteer2/overridetree.cb
+++ b/src/mainboard/google/volteer/variants/volteer2/overridetree.cb
@@ -67,6 +67,19 @@
register "hid_desc_reg_offset" = "0x01"
device i2c 10 on end
end
+ chip drivers/generic/gpio_keys
+ register "name" = ""PENH""
+ # GPP_B3 is the IRQ source, and GPP_E1 is the wake source
+ register "gpio" = "ACPI_GPIO_IRQ_EDGE_BOTH(GPP_B3)"
+ register "key.wake_gpe" = "GPE0_DW2_01"
+ 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
end # I2C1 0xA0E9
device pci 15.2 on
chip drivers/i2c/sx9310

To view, visit change 43764. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: Ida3217a5b156320856ce3302c2623eba2230f28d
Gerrit-Change-Number: 43764
Gerrit-PatchSet: 8
Gerrit-Owner: Alex Levin <levinale@google.com>
Gerrit-Reviewer: Aaron Durbin <adurbin@chromium.org>
Gerrit-Reviewer: Alex Levin <levinale@chromium.org>
Gerrit-Reviewer: Duncan Laurie <dlaurie@chromium.org>
Gerrit-Reviewer: Furquan Shaikh <furquan@google.com>
Gerrit-Reviewer: Nick Vaccaro <nvaccaro@google.com>
Gerrit-Reviewer: Patrick Georgi <pgeorgi@google.com>
Gerrit-Reviewer: Tim Wawrzynczak <twawrzynczak@chromium.org>
Gerrit-Reviewer: Tim Wawrzynczak <twawrzynczak@google.com>
Gerrit-Reviewer: build bot (Jenkins) <no-reply@coreboot.org>
Gerrit-MessageType: merged