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