Add the rt linux 4.1.3-rt3 as base
[kvmfornfv.git] / kernel / include / linux / input / pixcir_ts.h
1 #ifndef _PIXCIR_I2C_TS_H
2 #define _PIXCIR_I2C_TS_H
3
4 /*
5  * Register map
6  */
7 #define PIXCIR_REG_POWER_MODE   51
8 #define PIXCIR_REG_INT_MODE     52
9
10 /*
11  * Power modes:
12  * active: max scan speed
13  * idle: lower scan speed with automatic transition to active on touch
14  * halt: datasheet says sleep but this is more like halt as the chip
15  *       clocks are cut and it can only be brought out of this mode
16  *       using the RESET pin.
17  */
18 enum pixcir_power_mode {
19         PIXCIR_POWER_ACTIVE,
20         PIXCIR_POWER_IDLE,
21         PIXCIR_POWER_HALT,
22 };
23
24 #define PIXCIR_POWER_MODE_MASK  0x03
25 #define PIXCIR_POWER_ALLOW_IDLE (1UL << 2)
26
27 /*
28  * Interrupt modes:
29  * periodical: interrupt is asserted periodicaly
30  * diff coordinates: interrupt is asserted when coordinates change
31  * level on touch: interrupt level asserted during touch
32  * pulse on touch: interrupt pulse asserted druing touch
33  *
34  */
35 enum pixcir_int_mode {
36         PIXCIR_INT_PERIODICAL,
37         PIXCIR_INT_DIFF_COORD,
38         PIXCIR_INT_LEVEL_TOUCH,
39         PIXCIR_INT_PULSE_TOUCH,
40 };
41
42 #define PIXCIR_INT_MODE_MASK    0x03
43 #define PIXCIR_INT_ENABLE       (1UL << 3)
44 #define PIXCIR_INT_POL_HIGH     (1UL << 2)
45
46 /**
47  * struct pixcir_irc_chip_data - chip related data
48  * @max_fingers:        Max number of fingers reported simultaneously by h/w
49  * @has_hw_ids:         Hardware supports finger tracking IDs
50  *
51  */
52 struct pixcir_i2c_chip_data {
53         u8 max_fingers;
54         bool has_hw_ids;
55 };
56
57 struct pixcir_ts_platform_data {
58         int x_max;
59         int y_max;
60         int gpio_attb;          /* GPIO connected to ATTB line */
61         struct pixcir_i2c_chip_data chip;
62 };
63
64 #endif