1 ========================== 2 ALPS HID Touchpad Protocol 3 ========================== 4 5 Introduction 6 ------------ 7 Currently ALPS HID driver supports U1 Touchpad 8 9 U1 device basic information. 10 11 ========== ====== 12 Vendor ID 0x044E 13 Product ID 0x120B 14 Version ID 0x0121 15 ========== ====== 16 17 18 HID Descriptor 19 -------------- 20 21 ======= ==================== ===== ====== 22 Byte Field Value Notes 23 ======= ==================== ===== ====== 24 0 wHIDDescLength 001E Length 25 2 bcdVersion 0100 Compli 26 4 wReportDescLength 00B2 Report 27 6 wReportDescRegister 0002 Identi 28 8 wInputRegister 0003 Identi 29 10 wMaxInputLength 0053 Input 30 12 wOutputRegister 0000 Identi 31 14 wMaxOutputLength 0000 No Out 32 16 wCommandRegister 0005 Identi 33 18 wDataRegister 0006 Identi 34 20 wVendorID 044E Vendor 35 22 wProductID 120B Produc 36 24 wVersionID 0121 Versio 37 26 RESERVED 0000 RESERV 38 ======= ==================== ===== ====== 39 40 41 Report ID 42 --------- 43 44 ========== ================= =========== 45 ReportID-1 (Input Reports) (HIDUsage-M 46 ReportID-2 (Input Reports) (HIDUsage-k 47 ReportID-3 (Input Reports) (Vendor Usa 48 ReportID-4 (Input Reports) (Vendor Usa 49 ReportID-5 (Feature Reports) Feature Rep 50 ReportID-6 (Input Reports) (Vendor Usa 51 ReportID-7 (Feature Reports) Flash updat 52 ========== ================= =========== 53 54 55 Data pattern 56 ------------ 57 58 ===== ========== ===== ============== 59 Case1 ReportID_1 TP/SP Relative/Relat 60 Case2 ReportID_3 TP Absolute 61 ReportID_6 SP Absolute 62 ===== ========== ===== ============== 63 64 65 Command Read/Write 66 ------------------ 67 To read/write to RAM, need to send a command t 68 69 The command format is as below. 70 71 DataByte(SET_REPORT) 72 73 ===== ====================== 74 Byte1 Command Byte 75 Byte2 Address - Byte 0 (LSB) 76 Byte3 Address - Byte 1 77 Byte4 Address - Byte 2 78 Byte5 Address - Byte 3 (MSB) 79 Byte6 Value Byte 80 Byte7 Checksum 81 ===== ====================== 82 83 Command Byte is read=0xD1/write=0xD2. 84 85 Address is read/write RAM address. 86 87 Value Byte is writing data when you send the w 88 89 When you read RAM, there is no meaning. 90 91 DataByte(GET_REPORT) 92 93 ===== ====================== 94 Byte1 Response Byte 95 Byte2 Address - Byte 0 (LSB) 96 Byte3 Address - Byte 1 97 Byte4 Address - Byte 2 98 Byte5 Address - Byte 3 (MSB) 99 Byte6 Value Byte 100 Byte7 Checksum 101 ===== ====================== 102 103 Read value is stored in Value Byte. 104 105 106 Packet Format 107 Touchpad data byte 108 ------------------ 109 110 111 ======= ======= ======= ======= ======= ====== 112 - b7 b6 b5 b4 b3 113 ======= ======= ======= ======= ======= ====== 114 1 0 0 SW6 SW5 SW4 115 2 0 0 0 Fcv Fn3 116 3 Xa0_7 Xa0_6 Xa0_5 Xa0_4 Xa0_3 117 4 Xa0_15 Xa0_14 Xa0_13 Xa0_12 Xa0_11 118 5 Ya0_7 Ya0_6 Ya0_5 Ya0_4 Ya0_3 119 6 Ya0_15 Ya0_14 Ya0_13 Ya0_12 Ya0_11 120 7 LFB0 Zs0_6 Zs0_5 Zs0_4 Zs0_3 121 122 8 Xa1_7 Xa1_6 Xa1_5 Xa1_4 Xa1_3 123 9 Xa1_15 Xa1_14 Xa1_13 Xa1_12 Xa1_11 124 10 Ya1_7 Ya1_6 Ya1_5 Ya1_4 Ya1_3 125 11 Ya1_15 Ya1_14 Ya1_13 Ya1_12 Ya1_11 126 12 LFB1 Zs1_6 Zs1_5 Zs1_4 Zs1_3 127 128 13 Xa2_7 Xa2_6 Xa2_5 Xa2_4 Xa2_3 129 14 Xa2_15 Xa2_14 Xa2_13 Xa2_12 Xa2_11 130 15 Ya2_7 Ya2_6 Ya2_5 Ya2_4 Ya2_3 131 16 Ya2_15 Ya2_14 Ya2_13 Ya2_12 Ya2_11 132 17 LFB2 Zs2_6 Zs2_5 Zs2_4 Zs2_3 133 134 18 Xa3_7 Xa3_6 Xa3_5 Xa3_4 Xa3_3 135 19 Xa3_15 Xa3_14 Xa3_13 Xa3_12 Xa3_11 136 20 Ya3_7 Ya3_6 Ya3_5 Ya3_4 Ya3_3 137 21 Ya3_15 Ya3_14 Ya3_13 Ya3_12 Ya3_11 138 22 LFB3 Zs3_6 Zs3_5 Zs3_4 Zs3_3 139 140 23 Xa4_7 Xa4_6 Xa4_5 Xa4_4 Xa4_3 141 24 Xa4_15 Xa4_14 Xa4_13 Xa4_12 Xa4_11 142 25 Ya4_7 Ya4_6 Ya4_5 Ya4_4 Ya4_3 143 26 Ya4_15 Ya4_14 Ya4_13 Ya4_12 Ya4_11 144 27 LFB4 Zs4_6 Zs4_5 Zs4_4 Zs4_3 145 ======= ======= ======= ======= ======= ====== 146 147 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 156 157 158 StickPointer data byte 159 ---------------------- 160 161 ======= ======= ======= ======= ======= ====== 162 - b7 b6 b5 b4 b3 163 ======= ======= ======= ======= ======= ====== 164 Byte1 1 1 1 0 1 165 Byte2 X7 X6 X5 X4 X3 166 Byte3 X15 X14 X13 X12 X11 167 Byte4 Y7 Y6 Y5 Y4 Y3 168 Byte5 Y15 Y14 Y13 Y12 Y11 169 Byte6 Z7 Z6 Z5 Z4 Z3 170 Byte7 T&P Z14 Z13 Z12 Z11 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
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.