-
Notifications
You must be signed in to change notification settings - Fork 5
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 |