Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at v2.6.38-rc7 571 lines 23 kB view raw
1Copyright (C) 2002-2010 Sentelic Corporation. 2Last update: Jan-13-2010 3 4============================================================================== 5* Finger Sensing Pad Intellimouse Mode(scrolling wheel, 4th and 5th buttons) 6============================================================================== 7A) MSID 4: Scrolling wheel mode plus Forward page(4th button) and Backward 8 page (5th button) 9@1. Set sample rate to 200; 10@2. Set sample rate to 200; 11@3. Set sample rate to 80; 12@4. Issuing the "Get device ID" command (0xF2) and waits for the response; 13@5. FSP will respond 0x04. 14 15Packet 1 16 Bit 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 17BYTE |---------------|BYTE |---------------|BYTE|---------------|BYTE|---------------| 18 1 |Y|X|y|x|1|M|R|L| 2 |X|X|X|X|X|X|X|X| 3 |Y|Y|Y|Y|Y|Y|Y|Y| 4 | | |B|F|W|W|W|W| 19 |---------------| |---------------| |---------------| |---------------| 20 21Byte 1: Bit7 => Y overflow 22 Bit6 => X overflow 23 Bit5 => Y sign bit 24 Bit4 => X sign bit 25 Bit3 => 1 26 Bit2 => Middle Button, 1 is pressed, 0 is not pressed. 27 Bit1 => Right Button, 1 is pressed, 0 is not pressed. 28 Bit0 => Left Button, 1 is pressed, 0 is not pressed. 29Byte 2: X Movement(9-bit 2's complement integers) 30Byte 3: Y Movement(9-bit 2's complement integers) 31Byte 4: Bit3~Bit0 => the scrolling wheel's movement since the last data report. 32 valid values, -8 ~ +7 33 Bit4 => 1 = 4th mouse button is pressed, Forward one page. 34 0 = 4th mouse button is not pressed. 35 Bit5 => 1 = 5th mouse button is pressed, Backward one page. 36 0 = 5th mouse button is not pressed. 37 38B) MSID 6: Horizontal and Vertical scrolling. 39@ Set bit 1 in register 0x40 to 1 40 41# FSP replaces scrolling wheel's movement as 4 bits to show horizontal and 42 vertical scrolling. 43 44Packet 1 45 Bit 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 46BYTE |---------------|BYTE |---------------|BYTE|---------------|BYTE|---------------| 47 1 |Y|X|y|x|1|M|R|L| 2 |X|X|X|X|X|X|X|X| 3 |Y|Y|Y|Y|Y|Y|Y|Y| 4 | | |B|F|r|l|u|d| 48 |---------------| |---------------| |---------------| |---------------| 49 50Byte 1: Bit7 => Y overflow 51 Bit6 => X overflow 52 Bit5 => Y sign bit 53 Bit4 => X sign bit 54 Bit3 => 1 55 Bit2 => Middle Button, 1 is pressed, 0 is not pressed. 56 Bit1 => Right Button, 1 is pressed, 0 is not pressed. 57 Bit0 => Left Button, 1 is pressed, 0 is not pressed. 58Byte 2: X Movement(9-bit 2's complement integers) 59Byte 3: Y Movement(9-bit 2's complement integers) 60Byte 4: Bit0 => the Vertical scrolling movement downward. 61 Bit1 => the Vertical scrolling movement upward. 62 Bit2 => the Horizontal scrolling movement leftward. 63 Bit3 => the Horizontal scrolling movement rightward. 64 Bit4 => 1 = 4th mouse button is pressed, Forward one page. 65 0 = 4th mouse button is not pressed. 66 Bit5 => 1 = 5th mouse button is pressed, Backward one page. 67 0 = 5th mouse button is not pressed. 68 69C) MSID 7: 70# FSP uses 2 packets (8 Bytes) to represent Absolute Position. 71 so we have PACKET NUMBER to identify packets. 72 If PACKET NUMBER is 0, the packet is Packet 1. 73 If PACKET NUMBER is 1, the packet is Packet 2. 74 Please count this number in program. 75 76# MSID6 special packet will be enable at the same time when enable MSID 7. 77 78============================================================================== 79* Absolute position for STL3886-G0. 80============================================================================== 81@ Set bit 2 or 3 in register 0x40 to 1 82@ Set bit 6 in register 0x40 to 1 83 84Packet 1 (ABSOLUTE POSITION) 85 Bit 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 86BYTE |---------------|BYTE |---------------|BYTE|---------------|BYTE|---------------| 87 1 |0|1|V|1|1|M|R|L| 2 |X|X|X|X|X|X|X|X| 3 |Y|Y|Y|Y|Y|Y|Y|Y| 4 |r|l|d|u|X|X|Y|Y| 88 |---------------| |---------------| |---------------| |---------------| 89 90Byte 1: Bit7~Bit6 => 00, Normal data packet 91 => 01, Absolute coordination packet 92 => 10, Notify packet 93 Bit5 => valid bit 94 Bit4 => 1 95 Bit3 => 1 96 Bit2 => Middle Button, 1 is pressed, 0 is not pressed. 97 Bit1 => Right Button, 1 is pressed, 0 is not pressed. 98 Bit0 => Left Button, 1 is pressed, 0 is not pressed. 99Byte 2: X coordinate (xpos[9:2]) 100Byte 3: Y coordinate (ypos[9:2]) 101Byte 4: Bit1~Bit0 => Y coordinate (xpos[1:0]) 102 Bit3~Bit2 => X coordinate (ypos[1:0]) 103 Bit4 => scroll up 104 Bit5 => scroll down 105 Bit6 => scroll left 106 Bit7 => scroll right 107 108Notify Packet for G0 109 Bit 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 110BYTE |---------------|BYTE |---------------|BYTE|---------------|BYTE|---------------| 111 1 |1|0|0|1|1|M|R|L| 2 |C|C|C|C|C|C|C|C| 3 |M|M|M|M|M|M|M|M| 4 |0|0|0|0|0|0|0|0| 112 |---------------| |---------------| |---------------| |---------------| 113 114Byte 1: Bit7~Bit6 => 00, Normal data packet 115 => 01, Absolute coordination packet 116 => 10, Notify packet 117 Bit5 => 0 118 Bit4 => 1 119 Bit3 => 1 120 Bit2 => Middle Button, 1 is pressed, 0 is not pressed. 121 Bit1 => Right Button, 1 is pressed, 0 is not pressed. 122 Bit0 => Left Button, 1 is pressed, 0 is not pressed. 123Byte 2: Message Type => 0x5A (Enable/Disable status packet) 124 Mode Type => 0xA5 (Normal/Icon mode status) 125Byte 3: Message Type => 0x00 (Disabled) 126 => 0x01 (Enabled) 127 Mode Type => 0x00 (Normal) 128 => 0x01 (Icon) 129Byte 4: Bit7~Bit0 => Don't Care 130 131============================================================================== 132* Absolute position for STL3888-Ax. 133============================================================================== 134Packet 1 (ABSOLUTE POSITION) 135 Bit 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 136BYTE |---------------|BYTE |---------------|BYTE|---------------|BYTE|---------------| 137 1 |0|1|V|A|1|L|0|1| 2 |X|X|X|X|X|X|X|X| 3 |Y|Y|Y|Y|Y|Y|Y|Y| 4 |x|x|y|y|X|X|Y|Y| 138 |---------------| |---------------| |---------------| |---------------| 139 140Byte 1: Bit7~Bit6 => 00, Normal data packet 141 => 01, Absolute coordination packet 142 => 10, Notify packet 143 Bit5 => Valid bit, 0 means that the coordinate is invalid or finger up. 144 When both fingers are up, the last two reports have zero valid 145 bit. 146 Bit4 => arc 147 Bit3 => 1 148 Bit2 => Left Button, 1 is pressed, 0 is released. 149 Bit1 => 0 150 Bit0 => 1 151Byte 2: X coordinate (xpos[9:2]) 152Byte 3: Y coordinate (ypos[9:2]) 153Byte 4: Bit1~Bit0 => Y coordinate (xpos[1:0]) 154 Bit3~Bit2 => X coordinate (ypos[1:0]) 155 Bit5~Bit4 => y1_g 156 Bit7~Bit6 => x1_g 157 158Packet 2 (ABSOLUTE POSITION) 159 Bit 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 160BYTE |---------------|BYTE |---------------|BYTE|---------------|BYTE|---------------| 161 1 |0|1|V|A|1|R|1|0| 2 |X|X|X|X|X|X|X|X| 3 |Y|Y|Y|Y|Y|Y|Y|Y| 4 |x|x|y|y|X|X|Y|Y| 162 |---------------| |---------------| |---------------| |---------------| 163 164Byte 1: Bit7~Bit6 => 00, Normal data packet 165 => 01, Absolute coordinates packet 166 => 10, Notify packet 167 Bit5 => Valid bit, 0 means that the coordinate is invalid or finger up. 168 When both fingers are up, the last two reports have zero valid 169 bit. 170 Bit4 => arc 171 Bit3 => 1 172 Bit2 => Right Button, 1 is pressed, 0 is released. 173 Bit1 => 1 174 Bit0 => 0 175Byte 2: X coordinate (xpos[9:2]) 176Byte 3: Y coordinate (ypos[9:2]) 177Byte 4: Bit1~Bit0 => Y coordinate (xpos[1:0]) 178 Bit3~Bit2 => X coordinate (ypos[1:0]) 179 Bit5~Bit4 => y2_g 180 Bit7~Bit6 => x2_g 181 182Notify Packet for STL3888-Ax 183 Bit 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 184BYTE |---------------|BYTE |---------------|BYTE|---------------|BYTE|---------------| 185 1 |1|0|1|P|1|M|R|L| 2 |C|C|C|C|C|C|C|C| 3 |0|0|F|F|0|0|0|i| 4 |r|l|d|u|0|0|0|0| 186 |---------------| |---------------| |---------------| |---------------| 187 188Byte 1: Bit7~Bit6 => 00, Normal data packet 189 => 01, Absolute coordinates packet 190 => 10, Notify packet 191 Bit5 => 1 192 Bit4 => when in absolute coordinates mode (valid when EN_PKT_GO is 1): 193 0: left button is generated by the on-pad command 194 1: left button is generated by the external button 195 Bit3 => 1 196 Bit2 => Middle Button, 1 is pressed, 0 is not pressed. 197 Bit1 => Right Button, 1 is pressed, 0 is not pressed. 198 Bit0 => Left Button, 1 is pressed, 0 is not pressed. 199Byte 2: Message Type => 0xB7 (Multi Finger, Multi Coordinate mode) 200Byte 3: Bit7~Bit6 => Don't care 201 Bit5~Bit4 => Number of fingers 202 Bit3~Bit1 => Reserved 203 Bit0 => 1: enter gesture mode; 0: leaving gesture mode 204Byte 4: Bit7 => scroll right button 205 Bit6 => scroll left button 206 Bit5 => scroll down button 207 Bit4 => scroll up button 208 * Note that if gesture and additional buttoni (Bit4~Bit7) 209 happen at the same time, the button information will not 210 be sent. 211 Bit3~Bit0 => Reserved 212 213Sample sequence of Multi-finger, Multi-coordinate mode: 214 215 notify packet (valid bit == 1), abs pkt 1, abs pkt 2, abs pkt 1, 216 abs pkt 2, ..., notify packet (valid bit == 0) 217 218============================================================================== 219* Absolute position for STL3888-B0. 220============================================================================== 221Packet 1(ABSOLUTE POSITION) 222 Bit 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 223BYTE |---------------|BYTE |---------------|BYTE|---------------|BYTE|---------------| 224 1 |0|1|V|F|1|0|R|L| 2 |X|X|X|X|X|X|X|X| 3 |Y|Y|Y|Y|Y|Y|Y|Y| 4 |r|l|u|d|X|X|Y|Y| 225 |---------------| |---------------| |---------------| |---------------| 226 227Byte 1: Bit7~Bit6 => 00, Normal data packet 228 => 01, Absolute coordinates packet 229 => 10, Notify packet 230 Bit5 => Valid bit, 0 means that the coordinate is invalid or finger up. 231 When both fingers are up, the last two reports have zero valid 232 bit. 233 Bit4 => finger up/down information. 1: finger down, 0: finger up. 234 Bit3 => 1 235 Bit2 => finger index, 0 is the first finger, 1 is the second finger. 236 Bit1 => Right Button, 1 is pressed, 0 is not pressed. 237 Bit0 => Left Button, 1 is pressed, 0 is not pressed. 238Byte 2: X coordinate (xpos[9:2]) 239Byte 3: Y coordinate (ypos[9:2]) 240Byte 4: Bit1~Bit0 => Y coordinate (xpos[1:0]) 241 Bit3~Bit2 => X coordinate (ypos[1:0]) 242 Bit4 => scroll down button 243 Bit5 => scroll up button 244 Bit6 => scroll left button 245 Bit7 => scroll right button 246 247Packet 2 (ABSOLUTE POSITION) 248 Bit 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 249BYTE |---------------|BYTE |---------------|BYTE|---------------|BYTE|---------------| 250 1 |0|1|V|F|1|1|R|L| 2 |X|X|X|X|X|X|X|X| 3 |Y|Y|Y|Y|Y|Y|Y|Y| 4 |r|l|u|d|X|X|Y|Y| 251 |---------------| |---------------| |---------------| |---------------| 252 253Byte 1: Bit7~Bit6 => 00, Normal data packet 254 => 01, Absolute coordination packet 255 => 10, Notify packet 256 Bit5 => Valid bit, 0 means that the coordinate is invalid or finger up. 257 When both fingers are up, the last two reports have zero valid 258 bit. 259 Bit4 => finger up/down information. 1: finger down, 0: finger up. 260 Bit3 => 1 261 Bit2 => finger index, 0 is the first finger, 1 is the second finger. 262 Bit1 => Right Button, 1 is pressed, 0 is not pressed. 263 Bit0 => Left Button, 1 is pressed, 0 is not pressed. 264Byte 2: X coordinate (xpos[9:2]) 265Byte 3: Y coordinate (ypos[9:2]) 266Byte 4: Bit1~Bit0 => Y coordinate (xpos[1:0]) 267 Bit3~Bit2 => X coordinate (ypos[1:0]) 268 Bit4 => scroll down button 269 Bit5 => scroll up button 270 Bit6 => scroll left button 271 Bit7 => scroll right button 272 273Notify Packet for STL3888-B0 274 Bit 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 275BYTE |---------------|BYTE |---------------|BYTE|---------------|BYTE|---------------| 276 1 |1|0|1|P|1|M|R|L| 2 |C|C|C|C|C|C|C|C| 3 |0|0|F|F|0|0|0|i| 4 |r|l|u|d|0|0|0|0| 277 |---------------| |---------------| |---------------| |---------------| 278 279Byte 1: Bit7~Bit6 => 00, Normal data packet 280 => 01, Absolute coordination packet 281 => 10, Notify packet 282 Bit5 => 1 283 Bit4 => when in absolute coordinate mode (valid when EN_PKT_GO is 1): 284 0: left button is generated by the on-pad command 285 1: left button is generated by the external button 286 Bit3 => 1 287 Bit2 => Middle Button, 1 is pressed, 0 is not pressed. 288 Bit1 => Right Button, 1 is pressed, 0 is not pressed. 289 Bit0 => Left Button, 1 is pressed, 0 is not pressed. 290Byte 2: Message Type => 0xB7 (Multi Finger, Multi Coordinate mode) 291Byte 3: Bit7~Bit6 => Don't care 292 Bit5~Bit4 => Number of fingers 293 Bit3~Bit1 => Reserved 294 Bit0 => 1: enter gesture mode; 0: leaving gesture mode 295Byte 4: Bit7 => scroll right button 296 Bit6 => scroll left button 297 Bit5 => scroll up button 298 Bit4 => scroll down button 299 * Note that if gesture and additional button(Bit4~Bit7) 300 happen at the same time, the button information will not 301 be sent. 302 Bit3~Bit0 => Reserved 303 304Sample sequence of Multi-finger, Multi-coordinate mode: 305 306 notify packet (valid bit == 1), abs pkt 1, abs pkt 2, abs pkt 1, 307 abs pkt 2, ..., notify packet (valid bit == 0) 308 309============================================================================== 310* FSP Enable/Disable packet 311============================================================================== 312 Bit 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 313BYTE |---------------|BYTE |---------------|BYTE|---------------|BYTE|---------------| 314 1 |Y|X|0|0|1|M|R|L| 2 |0|1|0|1|1|0|1|E| 3 | | | | | | | | | 4 | | | | | | | | | 315 |---------------| |---------------| |---------------| |---------------| 316 317FSP will send out enable/disable packet when FSP receive PS/2 enable/disable 318command. Host will receive the packet which Middle, Right, Left button will 319be set. The packet only use byte 0 and byte 1 as a pattern of original packet. 320Ignore the other bytes of the packet. 321 322Byte 1: Bit7 => 0, Y overflow 323 Bit6 => 0, X overflow 324 Bit5 => 0, Y sign bit 325 Bit4 => 0, X sign bit 326 Bit3 => 1 327 Bit2 => 1, Middle Button 328 Bit1 => 1, Right Button 329 Bit0 => 1, Left Button 330Byte 2: Bit7~1 => (0101101b) 331 Bit0 => 1 = Enable 332 0 = Disable 333Byte 3: Don't care 334Byte 4: Don't care (MOUSE ID 3, 4) 335Byte 5~8: Don't care (Absolute packet) 336 337============================================================================== 338* PS/2 Command Set 339============================================================================== 340 341FSP supports basic PS/2 commanding set and modes, refer to following URL for 342details about PS/2 commands: 343 344http://www.computer-engineering.org/ps2mouse/ 345 346============================================================================== 347* Programming Sequence for Determining Packet Parsing Flow 348============================================================================== 3491. Identify FSP by reading device ID(0x00) and version(0x01) register 350 3512. Determine number of buttons by reading status2 (0x0b) register 352 353 buttons = reg[0x0b] & 0x30 354 355 if buttons == 0x30 or buttons == 0x20: 356 # two/four buttons 357 Refer to 'Finger Sensing Pad PS/2 Mouse Intellimouse' 358 section A for packet parsing detail(ignore byte 4, bit ~ 7) 359 elif buttons == 0x10: 360 # 6 buttons 361 Refer to 'Finger Sensing Pad PS/2 Mouse Intellimouse' 362 section B for packet parsing detail 363 elif buttons == 0x00: 364 # 6 buttons 365 Refer to 'Finger Sensing Pad PS/2 Mouse Intellimouse' 366 section A for packet parsing detail 367 368============================================================================== 369* Programming Sequence for Register Reading/Writing 370============================================================================== 371 372Register inversion requirement: 373 374 Following values needed to be inverted(the '~' operator in C) before being 375sent to FSP: 376 377 0xe9, 0xee, 0xf2 and 0xff. 378 379Register swapping requirement: 380 381 Following values needed to have their higher 4 bits and lower 4 bits being 382swapped before being sent to FSP: 383 384 10, 20, 40, 60, 80, 100 and 200. 385 386Register reading sequence: 387 388 1. send 0xf3 PS/2 command to FSP; 389 390 2. send 0x66 PS/2 command to FSP; 391 392 3. send 0x88 PS/2 command to FSP; 393 394 4. send 0xf3 PS/2 command to FSP; 395 396 5. if the register address being to read is not required to be 397 inverted(refer to the 'Register inversion requirement' section), 398 goto step 6 399 400 5a. send 0x68 PS/2 command to FSP; 401 402 5b. send the inverted register address to FSP and goto step 8; 403 404 6. if the register address being to read is not required to be 405 swapped(refer to the 'Register swapping requirement' section), 406 goto step 7 407 408 6a. send 0xcc PS/2 command to FSP; 409 410 6b. send the swapped register address to FSP and goto step 8; 411 412 7. send 0x66 PS/2 command to FSP; 413 414 7a. send the original register address to FSP and goto step 8; 415 416 8. send 0xe9(status request) PS/2 command to FSP; 417 418 9. the response read from FSP should be the requested register value. 419 420Register writing sequence: 421 422 1. send 0xf3 PS/2 command to FSP; 423 424 2. if the register address being to write is not required to be 425 inverted(refer to the 'Register inversion requirement' section), 426 goto step 3 427 428 2a. send 0x74 PS/2 command to FSP; 429 430 2b. send the inverted register address to FSP and goto step 5; 431 432 3. if the register address being to write is not required to be 433 swapped(refer to the 'Register swapping requirement' section), 434 goto step 4 435 436 3a. send 0x77 PS/2 command to FSP; 437 438 3b. send the swapped register address to FSP and goto step 5; 439 440 4. send 0x55 PS/2 command to FSP; 441 442 4a. send the register address to FSP and goto step 5; 443 444 5. send 0xf3 PS/2 command to FSP; 445 446 6. if the register value being to write is not required to be 447 inverted(refer to the 'Register inversion requirement' section), 448 goto step 7 449 450 6a. send 0x47 PS/2 command to FSP; 451 452 6b. send the inverted register value to FSP and goto step 9; 453 454 7. if the register value being to write is not required to be 455 swapped(refer to the 'Register swapping requirement' section), 456 goto step 8 457 458 7a. send 0x44 PS/2 command to FSP; 459 460 7b. send the swapped register value to FSP and goto step 9; 461 462 8. send 0x33 PS/2 command to FSP; 463 464 8a. send the register value to FSP; 465 466 9. the register writing sequence is completed. 467 468============================================================================== 469* Register Listing 470============================================================================== 471 472offset width default r/w name 4730x00 bit7~bit0 0x01 RO device ID 474 4750x01 bit7~bit0 0xc0 RW version ID 476 4770x02 bit7~bit0 0x01 RO vendor ID 478 4790x03 bit7~bit0 0x01 RO product ID 480 4810x04 bit3~bit0 0x01 RW revision ID 482 4830x0b RO test mode status 1 484 bit3 1 RO 0: rotate 180 degree, 1: no rotation 485 486 bit5~bit4 RO number of buttons 487 11 => 2, lbtn/rbtn 488 10 => 4, lbtn/rbtn/scru/scrd 489 01 => 6, lbtn/rbtn/scru/scrd/scrl/scrr 490 00 => 6, lbtn/rbtn/scru/scrd/fbtn/bbtn 491 4920x0f RW register file page control 493 bit0 0 RW 1 to enable page 1 register files 494 4950x10 RW system control 1 496 bit0 1 RW Reserved, must be 1 497 bit1 0 RW Reserved, must be 0 498 bit4 1 RW Reserved, must be 0 499 bit5 0 RW register clock gating enable 500 0: read only, 1: read/write enable 501 (Note that following registers does not require clock gating being 502 enabled prior to write: 05 06 07 08 09 0c 0f 10 11 12 16 17 18 23 2e 503 40 41 42 43. In addition to that, this bit must be 1 when gesture 504 mode is enabled) 505 5060x31 RW on-pad command detection 507 bit7 0 RW on-pad command left button down tag 508 enable 509 0: disable, 1: enable 510 5110x34 RW on-pad command control 5 512 bit4~bit0 0x05 RW XLO in 0s/4/1, so 03h = 0010.1b = 2.5 513 (Note that position unit is in 0.5 scanline) 514 515 bit7 0 RW on-pad tap zone enable 516 0: disable, 1: enable 517 5180x35 RW on-pad command control 6 519 bit4~bit0 0x1d RW XHI in 0s/4/1, so 19h = 1100.1b = 12.5 520 (Note that position unit is in 0.5 scanline) 521 5220x36 RW on-pad command control 7 523 bit4~bit0 0x04 RW YLO in 0s/4/1, so 03h = 0010.1b = 2.5 524 (Note that position unit is in 0.5 scanline) 525 5260x37 RW on-pad command control 8 527 bit4~bit0 0x13 RW YHI in 0s/4/1, so 11h = 1000.1b = 8.5 528 (Note that position unit is in 0.5 scanline) 529 5300x40 RW system control 5 531 bit1 0 RW FSP Intellimouse mode enable 532 0: disable, 1: enable 533 534 bit2 0 RW movement + abs. coordinate mode enable 535 0: disable, 1: enable 536 (Note that this function has the functionality of bit 1 even when 537 bit 1 is not set. However, the format is different from that of bit 1. 538 In addition, when bit 1 and bit 2 are set at the same time, bit 2 will 539 override bit 1.) 540 541 bit3 0 RW abs. coordinate only mode enable 542 0: disable, 1: enable 543 (Note that this function has the functionality of bit 1 even when 544 bit 1 is not set. However, the format is different from that of bit 1. 545 In addition, when bit 1, bit 2 and bit 3 are set at the same time, 546 bit 3 will override bit 1 and 2.) 547 548 bit5 0 RW auto switch enable 549 0: disable, 1: enable 550 551 bit6 0 RW G0 abs. + notify packet format enable 552 0: disable, 1: enable 553 (Note that the absolute/relative coordinate output still depends on 554 bit 2 and 3. That is, if any of those bit is 1, host will receive 555 absolute coordinates; otherwise, host only receives packets with 556 relative coordinate.) 557 558 bit7 0 RW EN_PS2_F2: PS/2 gesture mode 2nd 559 finger packet enable 560 0: disable, 1: enable 561 5620x43 RW on-pad control 563 bit0 0 RW on-pad control enable 564 0: disable, 1: enable 565 (Note that if this bit is cleared, bit 3/5 will be ineffective) 566 567 bit3 0 RW on-pad fix vertical scrolling enable 568 0: disable, 1: enable 569 570 bit5 0 RW on-pad fix horizontal scrolling enable 571 0: disable, 1: enable