summaryrefslogtreecommitdiff
path: root/firmware/export/synaptics-rmi.h
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/export/synaptics-rmi.h')
-rw-r--r--firmware/export/synaptics-rmi.h68
1 files changed, 68 insertions, 0 deletions
diff --git a/firmware/export/synaptics-rmi.h b/firmware/export/synaptics-rmi.h
index 59fbb807ab..2d7a0c8c1e 100644
--- a/firmware/export/synaptics-rmi.h
+++ b/firmware/export/synaptics-rmi.h
@@ -41,6 +41,74 @@
41#define RMI_2D_SENSOR_YMAX_MSB(s) RMI_2D_REG(8 * (s) + 0x6) 41#define RMI_2D_SENSOR_YMAX_MSB(s) RMI_2D_REG(8 * (s) + 0x6)
42#define RMI_2D_SENSOR_YMAX_LSB(s) RMI_2D_REG(8 * (s) + 0x7) 42#define RMI_2D_SENSOR_YMAX_LSB(s) RMI_2D_REG(8 * (s) + 0x7)
43#define RMI_2D_SENSOR_RESOLUTION(s) RMI_2D_REG(8 * (s) + 0x8) 43#define RMI_2D_SENSOR_RESOLUTION(s) RMI_2D_REG(8 * (s) + 0x8)
44#define RMI_2D_GLOBAL_SETTINGS RMI_2D_REG(0x41)
45#define RMI_2D_GESTURE_SETTINGS RMI_2D_REG(0x42)
46#define RMI_2D_GESTURE_PRESS_TIME_BM 0x7
47#define RMI_2D_GESTURE_PRESS_TIME_300MS 0
48#define RMI_2D_GESTURE_PRESS_TIME_400MS 1
49#define RMI_2D_GESTURE_PRESS_TIME_500MS 2
50#define RMI_2D_GESTURE_PRESS_TIME_600MS 3
51#define RMI_2D_GESTURE_PRESS_TIME_700MS 4
52#define RMI_2D_GESTURE_PRESS_TIME_800MS 5
53#define RMI_2D_GESTURE_PRESS_TIME_900MS 6
54#define RMI_2D_GESTURE_PRESS_TIME_1S 7
55#define RMI_2D_GESTURE_FLICK_DIST_BM (0x7 << 3)
56#define RMI_2D_GESTURE_FLICK_DIST_BP 3
57#define RMI_2D_GESTURE_FLICK_DIST_4MM 0
58#define RMI_2D_GESTURE_FLICK_DIST_5MM 1
59#define RMI_2D_GESTURE_FLICK_DIST_6MM 2
60#define RMI_2D_GESTURE_FLICK_DIST_7MM 3
61#define RMI_2D_GESTURE_FLICK_DIST_8MM 4
62#define RMI_2D_GESTURE_FLICK_DIST_9MM 5
63#define RMI_2D_GESTURE_FLICK_DIST_10MM 6
64#define RMI_2D_GESTURE_FLICK_DIST_11MM 7
65#define RMI_2D_GESTURE_FLICK_TIME_BM (2 << 6)
66#define RMI_2D_GESTURE_FLICK_TIME_BP 6
67#define RMI_2D_GESTURE_FLICK_TIME_250MS 0
68#define RMI_2D_GESTURE_FLICK_TIME_400MS 1
69#define RMI_2D_GESTURE_FLICK_TIME_550MS 2
70#define RMI_2D_GESTURE_FLICK_TIME_700MS 3
71#define RMI_2D_SENSITIVITY_ADJ RMI_2D_REG(0x44)
72#define RMI_2D_MIN_DIST RMI_2D_REG(0x45)
73/* 2D TouchPad/ClearPad data registers */
74struct rmi_2d_absolute_data_t
75{
76 unsigned char misc;
77 unsigned char z;
78 unsigned char x_msb;
79 unsigned char x_lsb;
80 unsigned char y_msb;
81 unsigned char y_lsb;
82} __attribute__((packed));
83
84#define RMI_2D_ABS_MISC_NR_FINGERS_BM 7
85#define RMI_2D_ABS_MISC_GESTURE (1 << 3)
86#define RMI_2D_ABS_MISC_WIDTH_BM 0xf0
87#define RMI_2D_ABS_MISC_WIDTH_BP 4
88#define RMI_2D_GEST_MISC_TAP_CODE_BM 7
89#define RMI_2D_GEST_MISC_NO_TAP 0
90#define RMI_2D_GEST_MISC_SINGLE_TAP 1
91#define RMI_2D_GEST_MISC_TAP_AND_HOLD 2
92#define RMI_2D_GEST_MISC_DOUBLE_TAP 3
93#define RMI_2D_GEST_MISC_PRESS (1 << 3)
94#define RMI_2D_GEST_MISC_FLICK (1 << 4)
95#define RMI_2D_GEST_MISC_PINCH (1 << 5)
96#define RMI_2D_GEST_MISC_CONFIRMED (1 << 7)
97#define RMI_2D_GEST_FLICK_X_BM 0x0f
98#define RMI_2D_GEST_FLICK_Y_BM 0xf0
99#define RMI_2D_GEST_FLICK_Y_BP 4
100
101struct rmi_2d_relative_data_t
102{
103 signed char x; /* signed */
104 signed char y; /* signed */
105} __attribute__((packed));
106
107struct rmi_2d_gesture_data_t
108{
109 unsigned char misc;
110 unsigned char flick;
111} __attribute__((packed));
44 112
45/* Initialize the RMI driver, the i2c_bus_index is the bus index returned by 113/* Initialize the RMI driver, the i2c_bus_index is the bus index returned by
46 * the generic_i2c driver; the i2c_dev_addr is the i2c address of the device. 114 * the generic_i2c driver; the i2c_dev_addr is the i2c address of the device.