| 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 |