]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/blob - include/linux/platform_data/pixcir_i2c_ts.h
Merge tag 'drm-for-v4.8' of git://people.freedesktop.org/~airlied/linux
[mirror_ubuntu-artful-kernel.git] / include / linux / platform_data / pixcir_i2c_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 struct pixcir_i2c_chip_data chip;
61 };
62
63 #endif