blob: dd1a56fbe9241235f4baa059394d5d36bd050de7 [file] [log] [blame]
Phil Blundell78a56aa2007-01-18 00:44:09 -05001#ifndef _GPIO_KEYS_H
2#define _GPIO_KEYS_H
3
4struct gpio_keys_button {
5 /* Configuration parameters */
Roman Moravcik84767d02007-05-01 00:39:13 -04006 int code; /* input event code (KEY_*, SW_*) */
Phil Blundell78a56aa2007-01-18 00:44:09 -05007 int gpio;
8 int active_low;
9 char *desc;
Roman Moravcik84767d02007-05-01 00:39:13 -040010 int type; /* input event type (EV_KEY, EV_SW) */
Anti Sulline15b0212007-09-26 00:01:17 -040011 int wakeup; /* configure the button as a wake-up source */
Dmitry Baryshkova33466e2008-05-07 16:30:15 -040012 int debounce_interval; /* debounce ticks interval in msecs */
Mika Westerberg9e3af042010-02-04 00:48:00 -080013 bool can_disable;
Phil Blundell78a56aa2007-01-18 00:44:09 -050014};
15
16struct gpio_keys_platform_data {
17 struct gpio_keys_button *buttons;
18 int nbuttons;
Gabor Juhos0e7d0c82010-12-06 17:14:47 -080019 unsigned int poll_interval; /* polling interval in msecs -
20 for polling driver only */
Dominic Curranb67b4b12008-10-27 22:30:53 -040021 unsigned int rep:1; /* enable input subsystem auto repeat */
Shubhrajyoti D173bdd72010-08-03 19:44:40 -070022 int (*enable)(struct device *dev);
23 void (*disable)(struct device *dev);
Phil Blundell78a56aa2007-01-18 00:44:09 -050024};
25
26#endif