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);