diff options
Diffstat (limited to 'src/drivers/generic/gpio_keys/chip.h')
-rw-r--r-- | src/drivers/generic/gpio_keys/chip.h | 28 |
1 files changed, 26 insertions, 2 deletions
diff --git a/src/drivers/generic/gpio_keys/chip.h b/src/drivers/generic/gpio_keys/chip.h index 7bc5007df3..a2ff59dc73 100644 --- a/src/drivers/generic/gpio_keys/chip.h +++ b/src/drivers/generic/gpio_keys/chip.h @@ -24,6 +24,28 @@ enum { EV_ACT_DEASSERTED, }; +enum { + /* + * GPIO key uses SCI route to wake the system from suspend state. This is typically used + * when the input line is dual routed i.e. one for IRQ and other for SCI or if the GPIO + * controller is capable of handling the filtering for IRQ and SCI separately. This + * requires "wake" property to be provided by the board which represents the GPE # for + * wake. It is exposed as _PRW in ACPI tables. + */ + WAKEUP_ROUTE_SCI, + /* + * GPIO key uses GPIO controller IRQ route for wake. This is used when IRQ and wake are + * routed to the same pad and the GPIO controller is not capable of handling the trigger + * filtering separately for IRQ and wake. Kernel driver for gpio-keys takes care of + * reconfiguring the IRQ trigger as both edges when used in S0 and the edge requested by + * BIOS (as per wakeup_event_action) when entering suspend. In this case, _PRW is not + * exposed for the key device. + */ + WAKEUP_ROUTE_GPIO_IRQ, + /* GPIO key does not support wake. */ + WAKEUP_ROUTE_DISABLED, +}; + /* Details of the child node defining key */ struct key_info { /* Device name of the child node - Mandatory */ @@ -37,8 +59,10 @@ struct key_info { uint32_t linux_input_type; /* Descriptive name of the key */ const char *label; - /* Wake GPE */ - unsigned int wake; + /* Wakeup route (if any) for the key. See WAKEUP_ROUTE_* macros above. */ + unsigned int wakeup_route; + /* Wake GPE -- SCI GPE # for wake. Required for WAKEUP_ROUTE_SCI. */ + unsigned int wake_gpe; /* Trigger for Wakeup Event Action as defined in EV_ACT_* enum */ unsigned int wakeup_event_action; /* Can this key be disabled? */ |