diff options
author | Laxman Dewangan <ldewangan@nvidia.com> | 2012-03-19 20:54:31 -0400 |
---|---|---|
committer | Dmitry Torokhov <dmitry.torokhov@gmail.com> | 2012-03-19 20:56:18 -0400 |
commit | d8ee4a1c90529ed06e1aa43d034986649f7b670b (patch) | |
tree | 5a9aec5fe8a9b146799842a2dd284495051621e1 /include/linux/gpio_keys.h | |
parent | a16ca23935afc0d72215b139720bd07df3162a9f (diff) |
Input: gpio_keys - add support for interrupt only keys
Some of buttons, like power-on key or onkey, may only generate interrupts
when pressed and not actually be mapped as gpio in the system. Allow
setting gpio to invalid value and specify IRQ instead to support such
keys. The debounce timer is used not to debounce but to ignore new IRQs
coming while button is kept pressed.
Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
Diffstat (limited to 'include/linux/gpio_keys.h')
-rw-r--r-- | include/linux/gpio_keys.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/include/linux/gpio_keys.h b/include/linux/gpio_keys.h index 004ff33ab38e..a7e977ff4abf 100644 --- a/include/linux/gpio_keys.h +++ b/include/linux/gpio_keys.h | |||
@@ -6,7 +6,7 @@ struct device; | |||
6 | struct gpio_keys_button { | 6 | struct gpio_keys_button { |
7 | /* Configuration parameters */ | 7 | /* Configuration parameters */ |
8 | unsigned int code; /* input event code (KEY_*, SW_*) */ | 8 | unsigned int code; /* input event code (KEY_*, SW_*) */ |
9 | int gpio; | 9 | int gpio; /* -1 if this key does not support gpio */ |
10 | int active_low; | 10 | int active_low; |
11 | const char *desc; | 11 | const char *desc; |
12 | unsigned int type; /* input event type (EV_KEY, EV_SW, EV_ABS) */ | 12 | unsigned int type; /* input event type (EV_KEY, EV_SW, EV_ABS) */ |
@@ -14,6 +14,7 @@ struct gpio_keys_button { | |||
14 | int debounce_interval; /* debounce ticks interval in msecs */ | 14 | int debounce_interval; /* debounce ticks interval in msecs */ |
15 | bool can_disable; | 15 | bool can_disable; |
16 | int value; /* axis value for EV_ABS */ | 16 | int value; /* axis value for EV_ABS */ |
17 | unsigned int irq; /* Irq number in case of interrupt keys */ | ||
17 | }; | 18 | }; |
18 | 19 | ||
19 | struct gpio_keys_platform_data { | 20 | struct gpio_keys_platform_data { |