summaryrefslogtreecommitdiff
path: root/src/drivers/generic
diff options
context:
space:
mode:
authorKarthikeyan Ramasubramanian <kramasub@chromium.org>2018-12-07 10:57:39 -0700
committerPatrick Georgi <pgeorgi@google.com>2018-12-10 09:07:08 +0000
commitfd1557f28ec8f741f7ae3dafcff5f7293eb58e82 (patch)
tree107c70e0e65a1d7bc5163a7bb133264da3053799 /src/drivers/generic
parent025a03f6164b4f24e36aea39688b39abdec28fee (diff)
downloadcoreboot-fd1557f28ec8f741f7ae3dafcff5f7293eb58e82.tar.xz
drivers/generic/gpio_keys: Add mechanism to configure GPE wake event
Add mechanism to configure GPE wake event which in turn can be used as ACPI Power Resources for Wake BRANCH=octopus BUG=b:117953118 TEST=Ensure that the wake GPE event is added to ACPI Power Resource for Wake. Change-Id: Iacc12b8636aaac98a8689a211cbe1dcfe306f342 Signed-off-by: Karthikeyan Ramasubramanian <kramasub@google.com> Reviewed-on: https://review.coreboot.org/c/30106 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Furquan Shaikh <furquan@google.com>
Diffstat (limited to 'src/drivers/generic')
-rw-r--r--src/drivers/generic/gpio_keys/chip.h2
-rw-r--r--src/drivers/generic/gpio_keys/gpio_keys.c2
2 files changed, 4 insertions, 0 deletions
diff --git a/src/drivers/generic/gpio_keys/chip.h b/src/drivers/generic/gpio_keys/chip.h
index bdeb0afeb7..818f14cc3b 100644
--- a/src/drivers/generic/gpio_keys/chip.h
+++ b/src/drivers/generic/gpio_keys/chip.h
@@ -45,6 +45,8 @@ struct key_info {
const char *label;
/* Can this key wake-up the system? */
bool is_wakeup_source;
+ /* Wake GPE */
+ unsigned int wake;
/* Can this key be disabled? */
bool can_be_disabled;
/* Debounce interval time in milliseconds */
diff --git a/src/drivers/generic/gpio_keys/gpio_keys.c b/src/drivers/generic/gpio_keys/gpio_keys.c
index 6120981159..5ecb63e685 100644
--- a/src/drivers/generic/gpio_keys/gpio_keys.c
+++ b/src/drivers/generic/gpio_keys/gpio_keys.c
@@ -43,6 +43,8 @@ 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)
+ acpigen_write_PRW(key->wake, 3);
if (key->can_be_disabled)
acpi_dp_add_integer(dsd, "linux,can-disable",
key->can_be_disabled);