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