1 #ifndef _GPIO_KEYS_H 2 #define _GPIO_KEYS_H 3 4 struct gpio_keys_button { 5 /* Configuration parameters */ 6 unsigned int code; /* input event code (KEY_*, SW_*) */ 7 int gpio; 8 int active_low; 9 const char *desc; 10 unsigned int type; /* input event type (EV_KEY, EV_SW, EV_ABS) */ 11 int wakeup; /* configure the button as a wake-up source */ 12 int debounce_interval; /* debounce ticks interval in msecs */ 13 bool can_disable; 14 int value; /* axis value for EV_ABS */ 15 }; 16 17 struct gpio_keys_platform_data { 18 struct gpio_keys_button *buttons; 19 int nbuttons; 20 unsigned int poll_interval; /* polling interval in msecs - 21 for polling driver only */ 22 unsigned int rep:1; /* enable input subsystem auto repeat */ 23 int (*enable)(struct device *dev); 24 void (*disable)(struct device *dev); 25 const char *name; /* input device name */ 26 }; 27 28 #endif 29