| #ifndef _GPIO_KEYS_H |
| #define _GPIO_KEYS_H |
| |
| struct device; |
| |
| struct gpio_keys_button { |
| /* Configuration parameters */ |
| unsigned int code; /* input event code (KEY_*, SW_*) */ |
| int gpio; /* -1 if this key does not support gpio */ |
| int active_low; |
| const char *desc; |
| unsigned int type; /* input event type (EV_KEY, EV_SW, EV_ABS) */ |
| int wakeup; /* configure the button as a wake-up source */ |
| int debounce_interval; /* debounce ticks interval in msecs */ |
| bool can_disable; |
| int value; /* axis value for EV_ABS */ |
| unsigned int irq; /* Irq number in case of interrupt keys */ |
| }; |
| |
| struct gpio_keys_platform_data { |
| struct gpio_keys_button *buttons; |
| int nbuttons; |
| unsigned int poll_interval; /* polling interval in msecs - |
| for polling driver only */ |
| unsigned int rep:1; /* enable input subsystem auto repeat */ |
| int (*enable)(struct device *dev); |
| void (*disable)(struct device *dev); |
| const char *name; /* input device name */ |
| }; |
| |
| #endif |