Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
[linux-2.6.git] / include / linux / gpio_keys.h
1 #ifndef _GPIO_KEYS_H
2 #define _GPIO_KEYS_H
3
4 struct device;
5
6 struct gpio_keys_button {
7         /* Configuration parameters */
8         unsigned int code;      /* input event code (KEY_*, SW_*) */
9         int gpio;               /* -1 if this key does not support gpio */
10         int active_low;
11         const char *desc;
12         unsigned int type;      /* input event type (EV_KEY, EV_SW, EV_ABS) */
13         int wakeup;             /* configure the button as a wake-up source */
14         int debounce_interval;  /* debounce ticks interval in msecs */
15         bool can_disable;
16         int value;              /* axis value for EV_ABS */
17         unsigned int irq;       /* Irq number in case of interrupt keys */
18 };
19
20 struct gpio_keys_platform_data {
21         struct gpio_keys_button *buttons;
22         int nbuttons;
23         unsigned int poll_interval;     /* polling interval in msecs -
24                                            for polling driver only */
25         unsigned int rep:1;             /* enable input subsystem auto repeat */
26         int (*enable)(struct device *dev);
27         void (*disable)(struct device *dev);
28         const char *name;               /* input device name */
29 };
30
31 #endif