diff options
Diffstat (limited to 'include/linux/gpio_keys.h')
| -rw-r--r-- | include/linux/gpio_keys.h | 48 | 
1 files changed, 36 insertions, 12 deletions
diff --git a/include/linux/gpio_keys.h b/include/linux/gpio_keys.h index a7e977ff4abf..8b622468952c 100644 --- a/include/linux/gpio_keys.h +++ b/include/linux/gpio_keys.h @@ -3,29 +3,53 @@  struct device; +/** + * struct gpio_keys_button - configuration parameters + * @code:		input event code (KEY_*, SW_*) + * @gpio:		%-1 if this key does not support gpio + * @active_low:		%true indicates that button is considered + *			depressed when gpio is low + * @desc:		label that will be attached to button's gpio + * @type:		input event type (%EV_KEY, %EV_SW, %EV_ABS) + * @wakeup:		configure the button as a wake-up source + * @debounce_interval:	debounce ticks interval in msecs + * @can_disable:	%true indicates that userspace is allowed to + *			disable button via sysfs + * @value:		axis value for %EV_ABS + * @irq:		Irq number in case of interrupt keys + */  struct gpio_keys_button { -	/* Configuration parameters */ -	unsigned int code;	/* input event code (KEY_*, SW_*) */ -	int gpio;		/* -1 if this key does not support gpio */ +	unsigned int code; +	int gpio;  	int active_low;  	const char *desc; -	unsigned int type;	/* input event type (EV_KEY, EV_SW, EV_ABS) */ -	int wakeup;		/* configure the button as a wake-up source */ -	int debounce_interval;	/* debounce ticks interval in msecs */ +	unsigned int type; +	int wakeup; +	int debounce_interval;  	bool can_disable; -	int value;		/* axis value for EV_ABS */ -	unsigned int irq;	/* Irq number in case of interrupt keys */ +	int value; +	unsigned int irq;  }; +/** + * struct gpio_keys_platform_data - platform data for gpio_keys driver + * @buttons:		pointer to array of &gpio_keys_button structures + *			describing buttons attached to the device + * @nbuttons:		number of elements in @buttons array + * @poll_interval:	polling interval in msecs - for polling driver only + * @rep:		enable input subsystem auto repeat + * @enable:		platform hook for enabling the device + * @disable:		platform hook for disabling the device + * @name:		input device name + */  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 */ +	unsigned int poll_interval; +	unsigned int rep:1;  	int (*enable)(struct device *dev);  	void (*disable)(struct device *dev); -	const char *name;		/* input device name */ +	const char *name;  };  #endif  |