1
+ ==========================
1
2
ALPS HID Touchpad Protocol
2
- ----------------------
3
+ ==========================
3
4
4
5
Introduction
5
6
------------
6
7
Currently ALPS HID driver supports U1 Touchpad device.
7
8
8
- U1 devuce basic information.
9
+ U1 device basic information.
10
+
11
+ ========== ======
9
12
Vender ID 0x044E
10
13
Product ID 0x120B
11
14
Version ID 0x0121
15
+ ========== ======
12
16
13
17
14
18
HID Descriptor
15
- ------------
19
+ --------------
20
+
21
+ ======= ==================== ===== =======================================
16
22
Byte Field Value Notes
23
+ ======= ==================== ===== =======================================
17
24
0 wHIDDescLength 001E Length of HID Descriptor : 30 bytes
18
25
2 bcdVersion 0100 Compliant with Version 1.00
19
26
4 wReportDescLength 00B2 Report Descriptor is 178 Bytes (0x00B2)
@@ -28,61 +35,82 @@ Byte Field Value Notes
28
35
22 wProductID 120B Product ID 0x120B
29
36
24 wVersionID 0121 Version 01.21
30
37
26 RESERVED 0000 RESERVED
38
+ ======= ==================== ===== =======================================
31
39
32
40
33
41
Report ID
34
- ------------
35
- ReportID-1 (Input Reports) (HIDUsage-Mouse) for TP&SP
36
- ReportID-2 (Input Reports) (HIDUsage-keyboard) for TP
37
- ReportID-3 (Input Reports) (Vendor Usage: Max 10 finger data) for TP
38
- ReportID-4 (Input Reports) (Vendor Usage: ON bit data) for GP
39
- ReportID-5 (Feature Reports) Feature Reports
40
- ReportID-6 (Input Reports) (Vendor Usage: StickPointer data) for SP
41
- ReportID-7 (Feature Reports) Flash update (Bootloader)
42
+ ---------
43
+
44
+ ========== ================= =========================================
45
+ ReportID-1 (Input Reports) (HIDUsage-Mouse) for TP&SP
46
+ ReportID-2 (Input Reports) (HIDUsage-keyboard) for TP
47
+ ReportID-3 (Input Reports) (Vendor Usage: Max 10 finger data) for TP
48
+ ReportID-4 (Input Reports) (Vendor Usage: ON bit data) for GP
49
+ ReportID-5 (Feature Reports) Feature Reports
50
+ ReportID-6 (Input Reports) (Vendor Usage: StickPointer data) for SP
51
+ ReportID-7 (Feature Reports) Flash update (Bootloader)
52
+ ========== ================= =========================================
42
53
43
54
44
55
Data pattern
45
56
------------
57
+
58
+ ===== ========== ===== =================
46
59
Case1 ReportID_1 TP/SP Relative/Relative
47
60
Case2 ReportID_3 TP Absolute
48
61
ReportID_6 SP Absolute
62
+ ===== ========== ===== =================
49
63
50
64
51
65
Command Read/Write
52
66
------------------
53
67
To read/write to RAM, need to send a commands to the device.
68
+
54
69
The command format is as below.
55
70
56
71
DataByte(SET_REPORT)
72
+
73
+ ===== ======================
57
74
Byte1 Command Byte
58
75
Byte2 Address - Byte 0 (LSB)
59
76
Byte3 Address - Byte 1
60
77
Byte4 Address - Byte 2
61
78
Byte5 Address - Byte 3 (MSB)
62
79
Byte6 Value Byte
63
80
Byte7 Checksum
81
+ ===== ======================
64
82
65
83
Command Byte is read=0xD1/write=0xD2 .
84
+
66
85
Address is read/write RAM address.
86
+
67
87
Value Byte is writing data when you send the write commands.
88
+
68
89
When you read RAM, there is no meaning.
69
90
70
91
DataByte(GET_REPORT)
92
+
93
+ ===== ======================
71
94
Byte1 Response Byte
72
95
Byte2 Address - Byte 0 (LSB)
73
96
Byte3 Address - Byte 1
74
97
Byte4 Address - Byte 2
75
98
Byte5 Address - Byte 3 (MSB)
76
99
Byte6 Value Byte
77
100
Byte7 Checksum
101
+ ===== ======================
78
102
79
103
Read value is stored in Value Byte.
80
104
81
105
82
106
Packet Format
83
107
Touchpad data byte
84
108
------------------
85
- b7 b6 b5 b4 b3 b2 b1 b0
109
+
110
+
111
+ ======= ======= ======= ======= ======= ======= ======= ======= =====
112
+ - b7 b6 b5 b4 b3 b2 b1 b0
113
+ ======= ======= ======= ======= ======= ======= ======= ======= =====
86
114
1 0 0 SW6 SW5 SW4 SW3 SW2 SW1
87
115
2 0 0 0 Fcv Fn3 Fn2 Fn1 Fn0
88
116
3 Xa0_7 Xa0_6 Xa0_5 Xa0_4 Xa0_3 Xa0_2 Xa0_1 Xa0_0
@@ -114,26 +142,39 @@ Touchpad data byte
114
142
25 Ya4_7 Ya4_6 Ya4_5 Ya4_4 Ya4_3 Ya4_2 Ya4_1 Ya4_0
115
143
26 Ya4_15 Ya4_14 Ya4_13 Ya4_12 Ya4_11 Ya4_10 Ya4_9 Ya4_8
116
144
27 LFB4 Zs4_6 Zs4_5 Zs4_4 Zs4_3 Zs4_2 Zs4_1 Zs4_0
145
+ ======= ======= ======= ======= ======= ======= ======= ======= =====
117
146
118
147
119
- SW1-SW6: SW ON/OFF status
120
- Xan_15-0(16bit):X Absolute data of the "n"th finger
121
- Yan_15-0(16bit):Y Absolute data of the "n"th finger
122
- Zsn_6-0(7bit): Operation area of the "n"th finger
148
+ SW1-SW6:
149
+ SW ON/OFF status
150
+ Xan_15-0(16bit):
151
+ X Absolute data of the "n"th finger
152
+ Yan_15-0(16bit):
153
+ Y Absolute data of the "n"th finger
154
+ Zsn_6-0(7bit):
155
+ Operation area of the "n"th finger
123
156
124
157
125
158
StickPointer data byte
126
- ------------------
127
- b7 b6 b5 b4 b3 b2 b1 b0
159
+ ----------------------
160
+
161
+ ======= ======= ======= ======= ======= ======= ======= ======= =====
162
+ - b7 b6 b5 b4 b3 b2 b1 b0
163
+ ======= ======= ======= ======= ======= ======= ======= ======= =====
128
164
Byte1 1 1 1 0 1 SW3 SW2 SW1
129
165
Byte2 X7 X6 X5 X4 X3 X2 X1 X0
130
166
Byte3 X15 X14 X13 X12 X11 X10 X9 X8
131
167
Byte4 Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0
132
168
Byte5 Y15 Y14 Y13 Y12 Y11 Y10 Y9 Y8
133
169
Byte6 Z7 Z6 Z5 Z4 Z3 Z2 Z1 Z0
134
170
Byte7 T&P Z14 Z13 Z12 Z11 Z10 Z9 Z8
135
-
136
- SW1-SW3: SW ON/OFF status
137
- Xn_15-0(16bit):X Absolute data
138
- Yn_15-0(16bit):Y Absolute data
139
- Zn_14-0(15bit):Z
171
+ ======= ======= ======= ======= ======= ======= ======= ======= =====
172
+
173
+ SW1-SW3:
174
+ SW ON/OFF status
175
+ Xn_15-0(16bit):
176
+ X Absolute data
177
+ Yn_15-0(16bit):
178
+ Y Absolute data
179
+ Zn_14-0(15bit):
180
+ Z
0 commit comments