0e7d0c860a
The existing gpio-keys driver can be usable only for GPIO lines with interrupt support. Several devices have buttons connected to a GPIO line which is not capable to generate interrupts. This patch adds a new input driver using the generic GPIO layer and the input-polldev to support such buttons. [Ben Gardiner <bengardiner@nanometrics.ca: fold code to use more of the original gpio_keys infrastructure; cleanups and other improvements.] Signed-off-by: Gabor Juhos <juhosg@openwrt.org> Signed-off-by: Ben Gardiner <bengardiner@nanometrics.ca> Tested-by: Ben Gardiner <bengardiner@nanometrics.ca> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
26 lines
715 B
C
26 lines
715 B
C
#ifndef _GPIO_KEYS_H
|
|
#define _GPIO_KEYS_H
|
|
|
|
struct gpio_keys_button {
|
|
/* Configuration parameters */
|
|
int code; /* input event code (KEY_*, SW_*) */
|
|
int gpio;
|
|
int active_low;
|
|
char *desc;
|
|
int type; /* input event type (EV_KEY, EV_SW) */
|
|
int wakeup; /* configure the button as a wake-up source */
|
|
int debounce_interval; /* debounce ticks interval in msecs */
|
|
bool can_disable;
|
|
};
|
|
|
|
struct gpio_keys_platform_data {
|
|
struct gpio_keys_button *buttons;
|
|
int nbuttons;
|
|
unsigned int poll_interval; /* polling interval in msecs -
|
|
for polling driver only */
|
|
unsigned int rep:1; /* enable input subsystem auto repeat */
|
|
int (*enable)(struct device *dev);
|
|
void (*disable)(struct device *dev);
|
|
};
|
|
|
|
#endif
|