Skip to content

Goodix TouchPad

Barryblueice edited this page Feb 10, 2026 · 2 revisions

Goodix触摸板获取HID描述符与ELAN相同,但是寄存器地址有两种(根据coreboot源码确定)。一般为0x01或者0x20

以项目中的GT7863为例,获取HID描述符的寄存器地址为0x20。获取后的内容如下:

05 01 09 02 A1 01 85 01 09 01 A1 00 05 09 19 01 29 02 15 00 25 01 75 01 95 02 81 02 95 06 81 03 05 01 09 30 09 31 09 38 15 81 25 7F 75 08 95 03 81 06 05 0C 0A 38 02 95 01 81 06 75 08 95 03 81 03 C0 C0 05 0D 09 05 A1 01 85 04 05 0D 09 22 A1 02 15 00 25 01 09 47 09 42 95 02 75 01 81 02 75 01 95 02 81 03 95 01 75 04 25 0F 09 51 81 02 05 01 15 00 26 7F 0D 75 10 55 0E 65 13 09 30 35 00 46 F0 01 95 01 81 02 46 46 01 26 6F 08 09 31 81 02 C0 05 0D 09 22 A1 02 15 00 25 01 09 47 09 42 95 02 75 01 81 02 75 01 95 02 81 03 95 01 75 04 25 0F 09 51 81 02 05 01 15 00 26 7F 0D 75 10 55 0E 65 13 09 30 35 00 46 F0 01 95 01 81 02 46 46 01 26 6F 08 09 31 81 02 C0 05 0D 09 22 A1 02 15 00 25 01 09 47 09 42 95 02 75 01 81 02 75 01 95 02 81 03 95 01 75 04 25 0F 09 51 81 02 05 01 15 00 26 7F 0D 75 10 55 0E 65 13 09 30 35 00 46 F0 01 95 01 81 02 46 46 01 26 6F 08 09 31 81 02 C0 05 0D 09 22 A1 02 15 00 25 01 09 47 09 42 95 02 75 01 81 02 75 01 95 02 81 03 95 01 75 04 25 0F 09 51 81 02 05 01 15 00 26 7F 0D 75 10 55 0E 65 13 09 30 35 00 46 F0 01 95 01 81 02 46 46 01 26 6F 08 09 31 81 02 C0 05 0D 09 22 A1 02 15 00 25 01 09 47 09 42 95 02 75 01 81 02 75 01 95 02 81 03 95 01 75 04 25 0F 09 51 81 02 05 01 15 00 26 7F 0D 75 10 55 0E 65 13 09 30 35 00 46 F0 01 95 01 81 02 46 46 01 26 6F 08 09 31 81 02 C0 05 0D 55 0C 66 01 10 47 FF FF 00 00 27 FF FF 00 00 75 10 95 01 09 56 81 02 09 54 25 7F 95 01 75 08 81 02 05 09 09 01 25 01 75 01 95 01 81 02 95 07 81 03 05 0D 85 02 09 55 09 59 75 04 95 02 25 0F B1 02 85 07 09 60 75 01 95 01 15 00 25 01 B1 02 95 0F B1 03 06 00 FF 06 00 FF 85 06 09 C5 15 00 26 FF 00 75 08 96 00 01 B1 02 85 0D 09 C4 15 00 26 FF 00 75 08 95 04 B1 02 85 0C 09 C6 96 E0 02 75 08 B1 02 85 0B 09 C7 95 42 75 08 B1 02 C0 05 0D 09 0E A1 01 85 03 09 22 A1 00 09 52 15 00 25 0A 75 08 95 02 B1 02 C0 09 22 A1 00 85 05 09 57 09 58 15 00 75 01 95 02 25 03 B1 02 95 0E B1 03 C0 C0 06 00 FF 09 01 A1 01 85 0E 09 01 19 00 29 FF 15 00 25 FF 95 40 75 08 91 02 09 01 19 00 29 FF 15 00 25 FF 95 40 81 02 C0

解析如下:

Report ID 1:鼠标 / 相对移动 / 滚轮

内容 含义
05 01 Usage Page (Generic Desktop)
09 02 Usage (Mouse)
A1 01 Collection (Application)
85 01 Report ID 1
09 01 Usage (Pointer)
A1 00 Collection (Physical)
05 09 Usage Page (Button)
19 01 Usage Minimum (Button 1)
29 02 Usage Maximum (Button 2)
15 00 Logical Min 0
25 01 Logical Max 1
75 01 Report Size 1 bit
95 02 Report Count 2
81 02 Input (Data, Variable) — 按钮状态
95 06 Report Count 6
81 03 Input (Constant) — 填充
05 01 Usage Page (Generic Desktop)
09 30 Usage (X)
09 31 Usage (Y)
09 38 Usage (Wheel)
15 81 Logical Min -127
25 7F Logical Max 127
75 08 Report Size 8 bits
95 03 Report Count 3
81 06 Input (Data, Variable, Relative) — X/Y/滚轮移动
05 0C Usage Page (Consumer)
0A 38 02 Usage (AC Pan)
95 01 Report Count 1
81 06 Input (Data, Variable, Relative)
75 08 Report Size 8 bits
95 03 Report Count 3
81 03 Input (Constant) — 填充
C0 End Collection (Physical)
C0 End Collection (Application)

Report ID 4 / 3 / 5:多指触控点(Touch Points)

内容 含义
05 0D Usage Page (Digitizers)
09 05 Usage (Touch Pad)
A1 01 Collection (Application)
85 04 Report ID 4
05 0D Usage Page (Digitizers)
09 22 Usage (Finger)
A1 02 Collection (Logical)
15 00 Logical Min 0
25 01 Logical Max 1
09 47 Usage (Tip Switch)
09 42 Usage (In Range)
95 02 Report Count 2
75 01 Report Size 1 bit
81 02 Input (Data, Variable) — 手指状态
75 01 Report Size 1 bit
95 02 Report Count 2
81 03 Input (Constant) — 填充
95 01 Report Count 1
75 04 Report Size 4 bits
25 0F Logical Max 15
09 51 Usage (Contact Identifier)
81 02 Input (Data, Variable) — 手指 ID
05 01 Usage Page (Generic Desktop)
15 00 Logical Min 0
26 7F 0D Logical Max 3455
75 10 Report Size 16 bits
55 0E Unit Exponent
65 13 Unit (SI Linear: mm)
09 30 Usage (X)
35 00 Physical Min
46 F0 01 Physical Max
95 01 Report Count 1
81 02 Input (Data, Variable) — X 坐标
46 46 01 Physical Max Y
26 6F 08 Logical Max Y
09 31 Usage (Y)
81 02 Input (Data, Variable) — Y 坐标
C0 End Collection (Finger)
... 重复多个手指,类似结构

Report ID 2 / 7 / 6:附加功能 / 压力 / 手势

内容 含义
05 0D Usage Page (Digitizers)
85 02 Report ID 2
09 55 / 09 59 Usages (压力相关)
75 04 Report Size 4 bits
95 02 Report Count 2
B1 02 Feature (Data, Variable) — 压力信息
85 07 Report ID 7
09 60 Usage
75 01 Report Size 1 bit
95 01 Report Count 1
B1 02 Feature (Data, Variable) — 手势/状态

Report ID 0E:厂商自定义 / 扩展信息

内容 含义
06 00 FF Vendor-defined Usage Page
09 01 Usage
A1 01 Collection (Application)
85 0E Report ID 14
09 01 Usage
19 00 Usage Minimum 0
29 FF Usage Maximum 255
15 00 Logical Min 0
25 FF Logical Max 255
95 40 Report Count 64 bytes
75 08 Report Size 8 bits
91 02 Output (Data, Variable) — 自定义输出
81 02 Input (Data, Variable) — 自定义输入
C0 End Collection

Clone this wiki locally