summaryrefslogtreecommitdiff
path: root/src/drivers/generic/gpio_keys/gpio_keys.c
diff options
context:
space:
mode:
authorKarthikeyan Ramasubramanian <kramasub@chromium.org>2018-12-26 21:37:24 -0700
committerPatrick Georgi <pgeorgi@google.com>2019-01-24 13:54:51 +0000
commitc4427393c5c7e75c60b2e91113adb7ca0ec94f8f (patch)
tree3d3c9d20e70419946cf702db5e87bf813900fbbf /src/drivers/generic/gpio_keys/gpio_keys.c
parentcff4507289edec7dad415b38d57a60b5a734f9a1 (diff)
downloadcoreboot-c4427393c5c7e75c60b2e91113adb7ca0ec94f8f.tar.xz
drivers/generic/gpio_keys: Add trigger for wakeup event action
Currently without any trigger the wakeup event is generated on both the rising and falling edges of the GPIO input. Add support to specify the trigger explicitly so that the configuration can be passed to the kernel. BRANCH=octopus BUG=b:117953118 TEST=Ensure that the system boots to ChromeOS. Ensure that the stylus tools open on pen eject. Ensure that the system wakes on Pen Eject. Ensure that the system enters S0ix and S3 states after the pen is ejected. Ensure that the system enters S0ix and S3 states when the pen remains inserted in its holder. Ensured that the system does not wake when the pen is inserted. Ensure that the suspend_stress_test runs successfully for 25 iterations with the pen placed in its holder and ejected from its holder. Change-Id: Ifb08ba01106031aa2655c1ae2faab284926f1ceb Signed-off-by: Karthikeyan Ramasubramanian <kramasub@chromium.org> Reviewed-on: https://review.coreboot.org/c/30451 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Furquan Shaikh <furquan@google.com>
Diffstat (limited to 'src/drivers/generic/gpio_keys/gpio_keys.c')
-rw-r--r--src/drivers/generic/gpio_keys/gpio_keys.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/drivers/generic/gpio_keys/gpio_keys.c b/src/drivers/generic/gpio_keys/gpio_keys.c
index 77e7740c1c..f9869d6562 100644
--- a/src/drivers/generic/gpio_keys/gpio_keys.c
+++ b/src/drivers/generic/gpio_keys/gpio_keys.c
@@ -43,8 +43,12 @@ static struct acpi_dp *gpio_keys_add_child_node(
if (key->is_wakeup_source)
acpi_dp_add_integer(dsd, "wakeup-source",
key->is_wakeup_source);
- if (key->wake)
+ if (key->wake) {
acpigen_write_PRW(key->wake, 3);
+ acpi_dp_add_integer(dsd, "wakeup-event-action",
+ key->wakeup_event_action);
+ }
+
if (key->can_be_disabled)
acpi_dp_add_integer(dsd, "linux,can-disable",
key->can_be_disabled);