1 #ifndef _SPRD_EIC_KEYS_H
2 #define _SPRD_EIC_KEYS_H
6 struct sprd_eic_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 */
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 */
16 int value; /* axis value for EV_ABS */
17 unsigned int irq; /* Irq number in case of interrupt keys */
18 unsigned long ds_irqflags; /* deepsleep irq flags */
21 struct sprd_eic_keys_platform_data {
22 struct input_dev *input_dev;
23 struct sprd_eic_keys_button *buttons;
25 unsigned int poll_interval; /* polling interval in msecs -
26 for polling driver only */
27 unsigned int rep:1; /* enable input subsystem auto repeat */
28 int (*enable)(struct device *dev);
29 void (*disable)(struct device *dev);
30 const char *name; /* input device name */