1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- #ifndef _GPIO_KEYS_H
- #define _GPIO_KEYS_H
- struct device;
- struct gpio_desc;
- /**
- * 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
- * @gpiod: GPIO descriptor
- */
- struct gpio_keys_button {
- unsigned int code;
- int gpio;
- int active_low;
- const char *desc;
- unsigned int type;
- int wakeup;
- int debounce_interval;
- bool can_disable;
- int value;
- unsigned int irq;
- struct gpio_desc *gpiod;
- };
- /**
- * 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;
- unsigned int rep:1;
- int (*enable)(struct device *dev);
- void (*disable)(struct device *dev);
- const char *name;
- };
- #endif
|