summaryrefslogtreecommitdiff
path: root/include/linux/sprd_eic_keys.h
blob: 4555da0a9d811a068db632dc651e928c2faa671f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#ifndef _SPRD_EIC_KEYS_H
#define _SPRD_EIC_KEYS_H

struct device;

struct sprd_eic_keys_button {
        /* Configuration parameters */
        unsigned int code;	/* input event code (KEY_*, SW_*) */
        int gpio;		/* -1 if this key does not support 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 */
        bool can_disable;
        int value;		/* axis value for EV_ABS */
        unsigned int irq;	/* Irq number in case of interrupt keys */
        unsigned long ds_irqflags; /* deepsleep irq flags */
};

struct sprd_eic_keys_platform_data {
        struct input_dev *input_dev;
        struct sprd_eic_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);
        const char *name;		/* input device name */
};

#endif