aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/input
diff options
context:
space:
mode:
authorTai-hwa Liang <avatar@sentelic.com>2011-12-23 04:14:28 -0500
committerDmitry Torokhov <dmitry.torokhov@gmail.com>2011-12-23 04:15:16 -0500
commite24f734ef12571e7106d948208cc9aeae74de876 (patch)
treeeecf4fb9f39d5e11737c8210f47d9991e457e570 /Documentation/input
parent246835fccdc0dadeda20cd51f7ec868031fa8142 (diff)
Input: sentelic - document the latest hardware
- Add documentation for the Cx/Dx hardware release; - Fix wrong register offset for retrieving button information; - Document programming sequence for page register R/W; - Document a couple of supported gesture IDs. Signed-off-by: Tai-hwa Liang <avatar@sentelic.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
Diffstat (limited to 'Documentation/input')
-rw-r--r--Documentation/input/sentelic.txt364
1 files changed, 333 insertions, 31 deletions
diff --git a/Documentation/input/sentelic.txt b/Documentation/input/sentelic.txt
index b2ef125b71f8..89251e2a3eba 100644
--- a/Documentation/input/sentelic.txt
+++ b/Documentation/input/sentelic.txt
@@ -1,5 +1,5 @@
1Copyright (C) 2002-2010 Sentelic Corporation. 1Copyright (C) 2002-2011 Sentelic Corporation.
2Last update: Jan-13-2010 2Last update: Dec-07-2011
3 3
4============================================================================== 4==============================================================================
5* Finger Sensing Pad Intellimouse Mode(scrolling wheel, 4th and 5th buttons) 5* Finger Sensing Pad Intellimouse Mode(scrolling wheel, 4th and 5th buttons)
@@ -140,6 +140,7 @@ BYTE |---------------|BYTE |---------------|BYTE|---------------|BYTE|---------
140Byte 1: Bit7~Bit6 => 00, Normal data packet 140Byte 1: Bit7~Bit6 => 00, Normal data packet
141 => 01, Absolute coordination packet 141 => 01, Absolute coordination packet
142 => 10, Notify packet 142 => 10, Notify packet
143 => 11, Normal data packet with on-pad click
143 Bit5 => Valid bit, 0 means that the coordinate is invalid or finger up. 144 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 When both fingers are up, the last two reports have zero valid
145 bit. 146 bit.
@@ -164,6 +165,7 @@ BYTE |---------------|BYTE |---------------|BYTE|---------------|BYTE|---------
164Byte 1: Bit7~Bit6 => 00, Normal data packet 165Byte 1: Bit7~Bit6 => 00, Normal data packet
165 => 01, Absolute coordinates packet 166 => 01, Absolute coordinates packet
166 => 10, Notify packet 167 => 10, Notify packet
168 => 11, Normal data packet with on-pad click
167 Bit5 => Valid bit, 0 means that the coordinate is invalid or finger up. 169 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 170 When both fingers are up, the last two reports have zero valid
169 bit. 171 bit.
@@ -188,6 +190,7 @@ BYTE |---------------|BYTE |---------------|BYTE|---------------|BYTE|---------
188Byte 1: Bit7~Bit6 => 00, Normal data packet 190Byte 1: Bit7~Bit6 => 00, Normal data packet
189 => 01, Absolute coordinates packet 191 => 01, Absolute coordinates packet
190 => 10, Notify packet 192 => 10, Notify packet
193 => 11, Normal data packet with on-pad click
191 Bit5 => 1 194 Bit5 => 1
192 Bit4 => when in absolute coordinates mode (valid when EN_PKT_GO is 1): 195 Bit4 => when in absolute coordinates mode (valid when EN_PKT_GO is 1):
193 0: left button is generated by the on-pad command 196 0: left button is generated by the on-pad command
@@ -205,7 +208,7 @@ Byte 4: Bit7 => scroll right button
205 Bit6 => scroll left button 208 Bit6 => scroll left button
206 Bit5 => scroll down button 209 Bit5 => scroll down button
207 Bit4 => scroll up button 210 Bit4 => scroll up button
208 * Note that if gesture and additional buttoni (Bit4~Bit7) 211 * Note that if gesture and additional button (Bit4~Bit7)
209 happen at the same time, the button information will not 212 happen at the same time, the button information will not
210 be sent. 213 be sent.
211 Bit3~Bit0 => Reserved 214 Bit3~Bit0 => Reserved
@@ -227,6 +230,7 @@ BYTE |---------------|BYTE |---------------|BYTE|---------------|BYTE|---------
227Byte 1: Bit7~Bit6 => 00, Normal data packet 230Byte 1: Bit7~Bit6 => 00, Normal data packet
228 => 01, Absolute coordinates packet 231 => 01, Absolute coordinates packet
229 => 10, Notify packet 232 => 10, Notify packet
233 => 11, Normal data packet with on-pad click
230 Bit5 => Valid bit, 0 means that the coordinate is invalid or finger up. 234 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 235 When both fingers are up, the last two reports have zero valid
232 bit. 236 bit.
@@ -253,6 +257,7 @@ BYTE |---------------|BYTE |---------------|BYTE|---------------|BYTE|---------
253Byte 1: Bit7~Bit6 => 00, Normal data packet 257Byte 1: Bit7~Bit6 => 00, Normal data packet
254 => 01, Absolute coordination packet 258 => 01, Absolute coordination packet
255 => 10, Notify packet 259 => 10, Notify packet
260 => 11, Normal data packet with on-pad click
256 Bit5 => Valid bit, 0 means that the coordinate is invalid or finger up. 261 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 262 When both fingers are up, the last two reports have zero valid
258 bit. 263 bit.
@@ -279,8 +284,9 @@ BYTE |---------------|BYTE |---------------|BYTE|---------------|BYTE|---------
279Byte 1: Bit7~Bit6 => 00, Normal data packet 284Byte 1: Bit7~Bit6 => 00, Normal data packet
280 => 01, Absolute coordination packet 285 => 01, Absolute coordination packet
281 => 10, Notify packet 286 => 10, Notify packet
287 => 11, Normal data packet with on-pad click
282 Bit5 => 1 288 Bit5 => 1
283 Bit4 => when in absolute coordinate mode (valid when EN_PKT_GO is 1): 289 Bit4 => when in absolute coordinates mode (valid when EN_PKT_GO is 1):
284 0: left button is generated by the on-pad command 290 0: left button is generated by the on-pad command
285 1: left button is generated by the external button 291 1: left button is generated by the external button
286 Bit3 => 1 292 Bit3 => 1
@@ -307,6 +313,110 @@ Sample sequence of Multi-finger, Multi-coordinate mode:
307 abs pkt 2, ..., notify packet (valid bit == 0) 313 abs pkt 2, ..., notify packet (valid bit == 0)
308 314
309============================================================================== 315==============================================================================
316* Absolute position for STL3888-Cx and STL3888-Dx.
317==============================================================================
318Single Finger, Absolute Coordinate Mode (SFAC)
319 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
320BYTE |---------------|BYTE |---------------|BYTE|---------------|BYTE|---------------|
321 1 |0|1|0|P|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|B|F|X|X|Y|Y|
322 |---------------| |---------------| |---------------| |---------------|
323
324Byte 1: Bit7~Bit6 => 00, Normal data packet
325 => 01, Absolute coordinates packet
326 => 10, Notify packet
327 Bit5 => Coordinate mode(always 0 in SFAC mode):
328 0: single-finger absolute coordinates (SFAC) mode
329 1: multi-finger, multiple coordinates (MFMC) mode
330 Bit4 => 0: The LEFT button is generated by on-pad command (OPC)
331 1: The LEFT button is generated by external button
332 Default is 1 even if the LEFT button is not pressed.
333 Bit3 => Always 1, as specified by PS/2 protocol.
334 Bit2 => Middle Button, 1 is pressed, 0 is not pressed.
335 Bit1 => Right Button, 1 is pressed, 0 is not pressed.
336 Bit0 => Left Button, 1 is pressed, 0 is not pressed.
337Byte 2: X coordinate (xpos[9:2])
338Byte 3: Y coordinate (ypos[9:2])
339Byte 4: Bit1~Bit0 => Y coordinate (xpos[1:0])
340 Bit3~Bit2 => X coordinate (ypos[1:0])
341 Bit4 => 4th mouse button(forward one page)
342 Bit5 => 5th mouse button(backward one page)
343 Bit6 => scroll left button
344 Bit7 => scroll right button
345
346Multi Finger, Multiple Coordinates Mode (MFMC):
347 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
348BYTE |---------------|BYTE |---------------|BYTE|---------------|BYTE|---------------|
349 1 |0|1|1|P|1|F|R|L| 2 |X|X|X|X|X|X|X|X| 3 |Y|Y|Y|Y|Y|Y|Y|Y| 4 |r|l|B|F|X|X|Y|Y|
350 |---------------| |---------------| |---------------| |---------------|
351
352Byte 1: Bit7~Bit6 => 00, Normal data packet
353 => 01, Absolute coordination packet
354 => 10, Notify packet
355 Bit5 => Coordinate mode (always 1 in MFMC mode):
356 0: single-finger absolute coordinates (SFAC) mode
357 1: multi-finger, multiple coordinates (MFMC) mode
358 Bit4 => 0: The LEFT button is generated by on-pad command (OPC)
359 1: The LEFT button is generated by external button
360 Default is 1 even if the LEFT button is not pressed.
361 Bit3 => Always 1, as specified by PS/2 protocol.
362 Bit2 => Finger index, 0 is the first finger, 1 is the second finger.
363 If bit 1 and 0 are all 1 and bit 4 is 0, the middle external
364 button is pressed.
365 Bit1 => Right Button, 1 is pressed, 0 is not pressed.
366 Bit0 => Left Button, 1 is pressed, 0 is not pressed.
367Byte 2: X coordinate (xpos[9:2])
368Byte 3: Y coordinate (ypos[9:2])
369Byte 4: Bit1~Bit0 => Y coordinate (xpos[1:0])
370 Bit3~Bit2 => X coordinate (ypos[1:0])
371 Bit4 => 4th mouse button(forward one page)
372 Bit5 => 5th mouse button(backward one page)
373 Bit6 => scroll left button
374 Bit7 => scroll right button
375
376 When one of the two fingers is up, the device will output four consecutive
377MFMC#0 report packets with zero X and Y to represent 1st finger is up or
378four consecutive MFMC#1 report packets with zero X and Y to represent that
379the 2nd finger is up. On the other hand, if both fingers are up, the device
380will output four consecutive single-finger, absolute coordinate(SFAC) packets
381with zero X and Y.
382
383Notify Packet for STL3888-Cx/Dx
384 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
385BYTE |---------------|BYTE |---------------|BYTE|---------------|BYTE|---------------|
386 1 |1|0|0|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|
387 |---------------| |---------------| |---------------| |---------------|
388
389Byte 1: Bit7~Bit6 => 00, Normal data packet
390 => 01, Absolute coordinates packet
391 => 10, Notify packet
392 Bit5 => Always 0
393 Bit4 => 0: The LEFT button is generated by on-pad command(OPC)
394 1: The LEFT button is generated by external button
395 Default is 1 even if the LEFT button is not pressed.
396 Bit3 => 1
397 Bit2 => Middle Button, 1 is pressed, 0 is not pressed.
398 Bit1 => Right Button, 1 is pressed, 0 is not pressed.
399 Bit0 => Left Button, 1 is pressed, 0 is not pressed.
400Byte 2: Message type:
401 0xba => gesture information
402 0xc0 => one finger hold-rotating gesture
403Byte 3: The first parameter for the received message:
404 0xba => gesture ID (refer to the 'Gesture ID' section)
405 0xc0 => region ID
406Byte 4: The second parameter for the received message:
407 0xba => N/A
408 0xc0 => finger up/down information
409
410Sample sequence of Multi-finger, Multi-coordinates mode:
411
412 notify packet (valid bit == 1), MFMC packet 1 (byte 1, bit 2 == 0),
413 MFMC packet 2 (byte 1, bit 2 == 1), MFMC packet 1, MFMC packet 2,
414 ..., notify packet (valid bit == 0)
415
416 That is, when the device is in MFMC mode, the host will receive
417 interleaved absolute coordinate packets for each finger.
418
419==============================================================================
310* FSP Enable/Disable packet 420* FSP Enable/Disable packet
311============================================================================== 421==============================================================================
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 422 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
@@ -348,9 +458,10 @@ http://www.computer-engineering.org/ps2mouse/
348============================================================================== 458==============================================================================
3491. Identify FSP by reading device ID(0x00) and version(0x01) register 4591. Identify FSP by reading device ID(0x00) and version(0x01) register
350 460
3512. Determine number of buttons by reading status2 (0x0b) register 4612a. For FSP version < STL3888 Cx, determine number of buttons by reading
462 the 'test mode status' (0x20) register:
352 463
353 buttons = reg[0x0b] & 0x30 464 buttons = reg[0x20] & 0x30
354 465
355 if buttons == 0x30 or buttons == 0x20: 466 if buttons == 0x30 or buttons == 0x20:
356 # two/four buttons 467 # two/four buttons
@@ -365,6 +476,10 @@ http://www.computer-engineering.org/ps2mouse/
365 Refer to 'Finger Sensing Pad PS/2 Mouse Intellimouse' 476 Refer to 'Finger Sensing Pad PS/2 Mouse Intellimouse'
366 section A for packet parsing detail 477 section A for packet parsing detail
367 478
4792b. For FSP version >= STL3888 Cx:
480 Refer to 'Finger Sensing Pad PS/2 Mouse Intellimouse'
481 section A for packet parsing detail (ignore byte 4, bit ~ 7)
482
368============================================================================== 483==============================================================================
369* Programming Sequence for Register Reading/Writing 484* Programming Sequence for Register Reading/Writing
370============================================================================== 485==============================================================================
@@ -374,7 +489,7 @@ Register inversion requirement:
374 Following values needed to be inverted(the '~' operator in C) before being 489 Following values needed to be inverted(the '~' operator in C) before being
375sent to FSP: 490sent to FSP:
376 491
377 0xe9, 0xee, 0xf2 and 0xff. 492 0xe8, 0xe9, 0xee, 0xf2, 0xf3 and 0xff.
378 493
379Register swapping requirement: 494Register swapping requirement:
380 495
@@ -415,7 +530,18 @@ Register reading sequence:
415 530
416 8. send 0xe9(status request) PS/2 command to FSP; 531 8. send 0xe9(status request) PS/2 command to FSP;
417 532
418 9. the response read from FSP should be the requested register value. 533 9. the 4th byte of the response read from FSP should be the
534 requested register value(?? indicates don't care byte):
535
536 host: 0xe9
537 3888: 0xfa (??) (??) (val)
538
539 * Note that since the Cx release, the hardware will return 1's
540 complement of the register value at the 3rd byte of status request
541 result:
542
543 host: 0xe9
544 3888: 0xfa (??) (~val) (val)
419 545
420Register writing sequence: 546Register writing sequence:
421 547
@@ -465,71 +591,194 @@ Register writing sequence:
465 591
466 9. the register writing sequence is completed. 592 9. the register writing sequence is completed.
467 593
594 * Note that since the Cx release, the hardware will return 1's
595 complement of the register value at the 3rd byte of status request
596 result. Host can optionally send another 0xe9 (status request) PS/2
597 command to FSP at the end of register writing to verify that the
598 register writing operation is successful (?? indicates don't care
599 byte):
600
601 host: 0xe9
602 3888: 0xfa (??) (~val) (val)
603
604==============================================================================
605* Programming Sequence for Page Register Reading/Writing
606==============================================================================
607
608 In order to overcome the limitation of maximum number of registers
609supported, the hardware separates register into different groups called
610'pages.' Each page is able to include up to 255 registers.
611
612 The default page after power up is 0x82; therefore, if one has to get
613access to register 0x8301, one has to use following sequence to switch
614to page 0x83, then start reading/writing from/to offset 0x01 by using
615the register read/write sequence described in previous section.
616
617Page register reading sequence:
618
619 1. send 0xf3 PS/2 command to FSP;
620
621 2. send 0x66 PS/2 command to FSP;
622
623 3. send 0x88 PS/2 command to FSP;
624
625 4. send 0xf3 PS/2 command to FSP;
626
627 5. send 0x83 PS/2 command to FSP;
628
629 6. send 0x88 PS/2 command to FSP;
630
631 7. send 0xe9(status request) PS/2 command to FSP;
632
633 8. the response read from FSP should be the requested page value.
634
635Page register writing sequence:
636
637 1. send 0xf3 PS/2 command to FSP;
638
639 2. send 0x38 PS/2 command to FSP;
640
641 3. send 0x88 PS/2 command to FSP;
642
643 4. send 0xf3 PS/2 command to FSP;
644
645 5. if the page address being written is not required to be
646 inverted(refer to the 'Register inversion requirement' section),
647 goto step 6
648
649 5a. send 0x47 PS/2 command to FSP;
650
651 5b. send the inverted page address to FSP and goto step 9;
652
653 6. if the page address being written is not required to be
654 swapped(refer to the 'Register swapping requirement' section),
655 goto step 7
656
657 6a. send 0x44 PS/2 command to FSP;
658
659 6b. send the swapped page address to FSP and goto step 9;
660
661 7. send 0x33 PS/2 command to FSP;
662
663 8. send the page address to FSP;
664
665 9. the page register writing sequence is completed.
666
667==============================================================================
668* Gesture ID
669==============================================================================
670
671 Unlike other devices which sends multiple fingers' coordinates to host,
672FSP processes multiple fingers' coordinates internally and convert them
673into a 8 bits integer, namely 'Gesture ID.' Following is a list of
674supported gesture IDs:
675
676 ID Description
677 0x86 2 finger straight up
678 0x82 2 finger straight down
679 0x80 2 finger straight right
680 0x84 2 finger straight left
681 0x8f 2 finger zoom in
682 0x8b 2 finger zoom out
683 0xc0 2 finger curve, counter clockwise
684 0xc4 2 finger curve, clockwise
685 0x2e 3 finger straight up
686 0x2a 3 finger straight down
687 0x28 3 finger straight right
688 0x2c 3 finger straight left
689 0x38 palm
690
468============================================================================== 691==============================================================================
469* Register Listing 692* Register Listing
470============================================================================== 693==============================================================================
471 694
695 Registers are represented in 16 bits values. The higher 8 bits represent
696the page address and the lower 8 bits represent the relative offset within
697that particular page. Refer to the 'Programming Sequence for Page Register
698Reading/Writing' section for instructions on how to change current page
699address.
700
472offset width default r/w name 701offset width default r/w name
4730x00 bit7~bit0 0x01 RO device ID 7020x8200 bit7~bit0 0x01 RO device ID
474 703
4750x01 bit7~bit0 0xc0 RW version ID 7040x8201 bit7~bit0 RW version ID
705 0xc1: STL3888 Ax
706 0xd0 ~ 0xd2: STL3888 Bx
707 0xe0 ~ 0xe1: STL3888 Cx
708 0xe2 ~ 0xe3: STL3888 Dx
476 709
4770x02 bit7~bit0 0x01 RO vendor ID 7100x8202 bit7~bit0 0x01 RO vendor ID
478 711
4790x03 bit7~bit0 0x01 RO product ID 7120x8203 bit7~bit0 0x01 RO product ID
480 713
4810x04 bit3~bit0 0x01 RW revision ID 7140x8204 bit3~bit0 0x01 RW revision ID
482 715
4830x0b RO test mode status 1 7160x820b test mode status 1
484 bit3 1 RO 0: rotate 180 degree, 1: no rotation 717 bit3 1 RO 0: rotate 180 degree
718 1: no rotation
719 *only supported by H/W prior to Cx
485 720
486 bit5~bit4 RO number of buttons 7210x820f register file page control
487 11 => 2, lbtn/rbtn 722 bit2 0 RW 1: rotate 180 degree
488 10 => 4, lbtn/rbtn/scru/scrd 723 0: no rotation
489 01 => 6, lbtn/rbtn/scru/scrd/scrl/scrr 724 *supported since Cx
490 00 => 6, lbtn/rbtn/scru/scrd/fbtn/bbtn
491 725
4920x0f RW register file page control
493 bit0 0 RW 1 to enable page 1 register files 726 bit0 0 RW 1 to enable page 1 register files
727 *only supported by H/W prior to Cx
494 728
4950x10 RW system control 1 7290x8210 RW system control 1
496 bit0 1 RW Reserved, must be 1 730 bit0 1 RW Reserved, must be 1
497 bit1 0 RW Reserved, must be 0 731 bit1 0 RW Reserved, must be 0
498 bit4 1 RW Reserved, must be 0 732 bit4 0 RW Reserved, must be 0
499 bit5 0 RW register clock gating enable 733 bit5 1 RW register clock gating enable
500 0: read only, 1: read/write enable 734 0: read only, 1: read/write enable
501 (Note that following registers does not require clock gating being 735 (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 736 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 737 40 41 42 43. In addition to that, this bit must be 1 when gesture
504 mode is enabled) 738 mode is enabled)
505 739
5060x31 RW on-pad command detection 7400x8220 test mode status
741 bit5~bit4 RO number of buttons
742 11 => 2, lbtn/rbtn
743 10 => 4, lbtn/rbtn/scru/scrd
744 01 => 6, lbtn/rbtn/scru/scrd/scrl/scrr
745 00 => 6, lbtn/rbtn/scru/scrd/fbtn/bbtn
746 *only supported by H/W prior to Cx
747
7480x8231 RW on-pad command detection
507 bit7 0 RW on-pad command left button down tag 749 bit7 0 RW on-pad command left button down tag
508 enable 750 enable
509 0: disable, 1: enable 751 0: disable, 1: enable
752 *only supported by H/W prior to Cx
510 753
5110x34 RW on-pad command control 5 7540x8234 RW on-pad command control 5
512 bit4~bit0 0x05 RW XLO in 0s/4/1, so 03h = 0010.1b = 2.5 755 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) 756 (Note that position unit is in 0.5 scanline)
757 *only supported by H/W prior to Cx
514 758
515 bit7 0 RW on-pad tap zone enable 759 bit7 0 RW on-pad tap zone enable
516 0: disable, 1: enable 760 0: disable, 1: enable
761 *only supported by H/W prior to Cx
517 762
5180x35 RW on-pad command control 6 7630x8235 RW on-pad command control 6
519 bit4~bit0 0x1d RW XHI in 0s/4/1, so 19h = 1100.1b = 12.5 764 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) 765 (Note that position unit is in 0.5 scanline)
766 *only supported by H/W prior to Cx
521 767
5220x36 RW on-pad command control 7 7680x8236 RW on-pad command control 7
523 bit4~bit0 0x04 RW YLO in 0s/4/1, so 03h = 0010.1b = 2.5 769 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) 770 (Note that position unit is in 0.5 scanline)
771 *only supported by H/W prior to Cx
525 772
5260x37 RW on-pad command control 8 7730x8237 RW on-pad command control 8
527 bit4~bit0 0x13 RW YHI in 0s/4/1, so 11h = 1000.1b = 8.5 774 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) 775 (Note that position unit is in 0.5 scanline)
776 *only supported by H/W prior to Cx
529 777
5300x40 RW system control 5 7780x8240 RW system control 5
531 bit1 0 RW FSP Intellimouse mode enable 779 bit1 0 RW FSP Intellimouse mode enable
532 0: disable, 1: enable 780 0: disable, 1: enable
781 *only supported by H/W prior to Cx
533 782
534 bit2 0 RW movement + abs. coordinate mode enable 783 bit2 0 RW movement + abs. coordinate mode enable
535 0: disable, 1: enable 784 0: disable, 1: enable
@@ -537,6 +786,7 @@ offset width default r/w name
537 bit 1 is not set. However, the format is different from that of bit 1. 786 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 787 In addition, when bit 1 and bit 2 are set at the same time, bit 2 will
539 override bit 1.) 788 override bit 1.)
789 *only supported by H/W prior to Cx
540 790
541 bit3 0 RW abs. coordinate only mode enable 791 bit3 0 RW abs. coordinate only mode enable
542 0: disable, 1: enable 792 0: disable, 1: enable
@@ -544,9 +794,11 @@ offset width default r/w name
544 bit 1 is not set. However, the format is different from that of bit 1. 794 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, 795 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.) 796 bit 3 will override bit 1 and 2.)
797 *only supported by H/W prior to Cx
547 798
548 bit5 0 RW auto switch enable 799 bit5 0 RW auto switch enable
549 0: disable, 1: enable 800 0: disable, 1: enable
801 *only supported by H/W prior to Cx
550 802
551 bit6 0 RW G0 abs. + notify packet format enable 803 bit6 0 RW G0 abs. + notify packet format enable
552 0: disable, 1: enable 804 0: disable, 1: enable
@@ -554,18 +806,68 @@ offset width default r/w name
554 bit 2 and 3. That is, if any of those bit is 1, host will receive 806 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 807 absolute coordinates; otherwise, host only receives packets with
556 relative coordinate.) 808 relative coordinate.)
809 *only supported by H/W prior to Cx
557 810
558 bit7 0 RW EN_PS2_F2: PS/2 gesture mode 2nd 811 bit7 0 RW EN_PS2_F2: PS/2 gesture mode 2nd
559 finger packet enable 812 finger packet enable
560 0: disable, 1: enable 813 0: disable, 1: enable
814 *only supported by H/W prior to Cx
561 815
5620x43 RW on-pad control 8160x8243 RW on-pad control
563 bit0 0 RW on-pad control enable 817 bit0 0 RW on-pad control enable
564 0: disable, 1: enable 818 0: disable, 1: enable
565 (Note that if this bit is cleared, bit 3/5 will be ineffective) 819 (Note that if this bit is cleared, bit 3/5 will be ineffective)
820 *only supported by H/W prior to Cx
566 821
567 bit3 0 RW on-pad fix vertical scrolling enable 822 bit3 0 RW on-pad fix vertical scrolling enable
568 0: disable, 1: enable 823 0: disable, 1: enable
824 *only supported by H/W prior to Cx
569 825
570 bit5 0 RW on-pad fix horizontal scrolling enable 826 bit5 0 RW on-pad fix horizontal scrolling enable
571 0: disable, 1: enable 827 0: disable, 1: enable
828 *only supported by H/W prior to Cx
829
8300x8290 RW software control register 1
831 bit0 0 RW absolute coordination mode
832 0: disable, 1: enable
833 *supported since Cx
834
835 bit1 0 RW gesture ID output
836 0: disable, 1: enable
837 *supported since Cx
838
839 bit2 0 RW two fingers' coordinates output
840 0: disable, 1: enable
841 *supported since Cx
842
843 bit3 0 RW finger up one packet output
844 0: disable, 1: enable
845 *supported since Cx
846
847 bit4 0 RW absolute coordination continuous mode
848 0: disable, 1: enable
849 *supported since Cx
850
851 bit6~bit5 00 RW gesture group selection
852 00: basic
853 01: suite
854 10: suite pro
855 11: advanced
856 *supported since Cx
857
858 bit7 0 RW Bx packet output compatible mode
859 0: disable, 1: enable *supported since Cx
860 *supported since Cx
861
862
8630x833d RW on-pad command control 1
864 bit7 1 RW on-pad command detection enable
865 0: disable, 1: enable
866 *supported since Cx
867
8680x833e RW on-pad command detection
869 bit7 0 RW on-pad command left button down tag
870 enable. Works only in H/W based PS/2
871 data packet mode.
872 0: disable, 1: enable
873 *supported since Cx