xref: /linux-6.15/include/linux/gpio_keys.h (revision 779b96d2)
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