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 32