Phil Blundell | 78a56aa | 2007-01-18 00:44:09 -0500 | [diff] [blame] | 1 | #ifndef _GPIO_KEYS_H |
| 2 | #define _GPIO_KEYS_H |
| 3 | |
| 4 | struct gpio_keys_button { |
| 5 | /* Configuration parameters */ |
Alexander Stein | 92a4767 | 2011-04-11 23:34:37 -0700 | [diff] [blame] | 6 | unsigned int code; /* input event code (KEY_*, SW_*) */ |
Phil Blundell | 78a56aa | 2007-01-18 00:44:09 -0500 | [diff] [blame] | 7 | int gpio; |
| 8 | int active_low; |
Alexander Stein | 92a4767 | 2011-04-11 23:34:37 -0700 | [diff] [blame] | 9 | const char *desc; |
| 10 | unsigned int type; /* input event type (EV_KEY, EV_SW, EV_ABS) */ |
Anti Sullin | e15b021 | 2007-09-26 00:01:17 -0400 | [diff] [blame] | 11 | int wakeup; /* configure the button as a wake-up source */ |
Dmitry Baryshkov | a33466e | 2008-05-07 16:30:15 -0400 | [diff] [blame] | 12 | int debounce_interval; /* debounce ticks interval in msecs */ |
Mika Westerberg | 9e3af04 | 2010-02-04 00:48:00 -0800 | [diff] [blame] | 13 | bool can_disable; |
Alexander Stein | 92a4767 | 2011-04-11 23:34:37 -0700 | [diff] [blame] | 14 | int value; /* axis value for EV_ABS */ |
Phil Blundell | 78a56aa | 2007-01-18 00:44:09 -0500 | [diff] [blame] | 15 | }; |
| 16 | |
| 17 | struct gpio_keys_platform_data { |
| 18 | struct gpio_keys_button *buttons; |
| 19 | int nbuttons; |
Gabor Juhos | 0e7d0c8 | 2010-12-06 17:14:47 -0800 | [diff] [blame] | 20 | unsigned int poll_interval; /* polling interval in msecs - |
| 21 | for polling driver only */ |
Dominic Curran | b67b4b1 | 2008-10-27 22:30:53 -0400 | [diff] [blame] | 22 | unsigned int rep:1; /* enable input subsystem auto repeat */ |
Shubhrajyoti D | 173bdd7 | 2010-08-03 19:44:40 -0700 | [diff] [blame] | 23 | int (*enable)(struct device *dev); |
| 24 | void (*disable)(struct device *dev); |
Alexander Stein | 4671127 | 2011-04-11 23:34:48 -0700 | [diff] [blame] | 25 | const char *name; /* input device name */ |
Phil Blundell | 78a56aa | 2007-01-18 00:44:09 -0500 | [diff] [blame] | 26 | }; |
| 27 | |
| 28 | #endif |