~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/input/devices/sentelic.rst

Version: ~ [ linux-6.11.5 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.58 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.114 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.169 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.228 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.284 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.322 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /Documentation/input/devices/sentelic.rst (Version linux-6.11.5) and /Documentation/input/devices/sentelic.rst (Version linux-5.15.169)


  1 .. include:: <isonum.txt>                           1 .. include:: <isonum.txt>
  2                                                     2 
  3 =================                                   3 =================
  4 Sentelic Touchpad                                   4 Sentelic Touchpad
  5 =================                                   5 =================
  6                                                     6 
  7                                                     7 
  8 :Copyright: |copy| 2002-2011 Sentelic Corporat      8 :Copyright: |copy| 2002-2011 Sentelic Corporation.
  9                                                     9 
 10 :Last update: Dec-07-2011                          10 :Last update: Dec-07-2011
 11                                                    11 
 12 Finger Sensing Pad Intellimouse Mode (scrollin     12 Finger Sensing Pad Intellimouse Mode (scrolling wheel, 4th and 5th buttons)
 13 ==============================================     13 ============================================================================
 14                                                    14 
 15 A) MSID 4: Scrolling wheel mode plus Forward p     15 A) MSID 4: Scrolling wheel mode plus Forward page(4th button) and Backward
 16    page (5th button)                               16    page (5th button)
 17                                                    17 
 18 1. Set sample rate to 200;                         18 1. Set sample rate to 200;
 19 2. Set sample rate to 200;                         19 2. Set sample rate to 200;
 20 3. Set sample rate to 80;                          20 3. Set sample rate to 80;
 21 4. Issuing the "Get device ID" command (0xF2)      21 4. Issuing the "Get device ID" command (0xF2) and waits for the response;
 22 5. FSP will respond 0x04.                          22 5. FSP will respond 0x04.
 23                                                    23 
 24 ::                                                 24 ::
 25                                                    25 
 26     Packet 1                                       26     Packet 1
 27     Bit 7 6 5 4 3 2 1 0       7 6 5 4 3 2 1 0      27     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
 28     BYTE  |---------------|BYTE |-------------     28     BYTE  |---------------|BYTE |---------------|BYTE|---------------|BYTE|---------------|
 29       1   |Y|X|y|x|1|M|R|L|  2  |X|X|X|X|X|X|X     29       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|
 30           |---------------|     |-------------     30           |---------------|     |---------------|    |---------------|    |---------------|
 31                                                    31 
 32     Byte 1: Bit7 => Y overflow                     32     Byte 1: Bit7 => Y overflow
 33             Bit6 => X overflow                     33             Bit6 => X overflow
 34             Bit5 => Y sign bit                     34             Bit5 => Y sign bit
 35             Bit4 => X sign bit                     35             Bit4 => X sign bit
 36             Bit3 => 1                              36             Bit3 => 1
 37             Bit2 => Middle Button, 1 is presse     37             Bit2 => Middle Button, 1 is pressed, 0 is not pressed.
 38             Bit1 => Right Button, 1 is pressed     38             Bit1 => Right Button, 1 is pressed, 0 is not pressed.
 39             Bit0 => Left Button, 1 is pressed,     39             Bit0 => Left Button, 1 is pressed, 0 is not pressed.
 40     Byte 2: X Movement(9-bit 2's complement in     40     Byte 2: X Movement(9-bit 2's complement integers)
 41     Byte 3: Y Movement(9-bit 2's complement in     41     Byte 3: Y Movement(9-bit 2's complement integers)
 42     Byte 4: Bit3~Bit0 => the scrolling wheel's     42     Byte 4: Bit3~Bit0 => the scrolling wheel's movement since the last data report.
 43                         valid values, -8 ~ +7      43                         valid values, -8 ~ +7
 44             Bit4 => 1 = 4th mouse button is pr     44             Bit4 => 1 = 4th mouse button is pressed, Forward one page.
 45                     0 = 4th mouse button is no     45                     0 = 4th mouse button is not pressed.
 46             Bit5 => 1 = 5th mouse button is pr     46             Bit5 => 1 = 5th mouse button is pressed, Backward one page.
 47                     0 = 5th mouse button is no     47                     0 = 5th mouse button is not pressed.
 48                                                    48 
 49 B) MSID 6: Horizontal and Vertical scrolling       49 B) MSID 6: Horizontal and Vertical scrolling
 50                                                    50 
 51 - Set bit 1 in register 0x40 to 1                  51 - Set bit 1 in register 0x40 to 1
 52                                                    52 
 53 FSP replaces scrolling wheel's movement as 4 b     53 FSP replaces scrolling wheel's movement as 4 bits to show horizontal and
 54 vertical scrolling.                                54 vertical scrolling.
 55                                                    55 
 56 ::                                                 56 ::
 57                                                    57 
 58     Packet 1                                       58     Packet 1
 59     Bit 7 6 5 4 3 2 1 0       7 6 5 4 3 2 1 0      59     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
 60     BYTE  |---------------|BYTE |-------------     60     BYTE  |---------------|BYTE |---------------|BYTE|---------------|BYTE|---------------|
 61       1   |Y|X|y|x|1|M|R|L|  2  |X|X|X|X|X|X|X     61       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|
 62           |---------------|     |-------------     62           |---------------|     |---------------|    |---------------|    |---------------|
 63                                                    63 
 64     Byte 1: Bit7 => Y overflow                     64     Byte 1: Bit7 => Y overflow
 65             Bit6 => X overflow                     65             Bit6 => X overflow
 66             Bit5 => Y sign bit                     66             Bit5 => Y sign bit
 67             Bit4 => X sign bit                     67             Bit4 => X sign bit
 68             Bit3 => 1                              68             Bit3 => 1
 69             Bit2 => Middle Button, 1 is presse     69             Bit2 => Middle Button, 1 is pressed, 0 is not pressed.
 70             Bit1 => Right Button, 1 is pressed     70             Bit1 => Right Button, 1 is pressed, 0 is not pressed.
 71             Bit0 => Left Button, 1 is pressed,     71             Bit0 => Left Button, 1 is pressed, 0 is not pressed.
 72     Byte 2: X Movement(9-bit 2's complement in     72     Byte 2: X Movement(9-bit 2's complement integers)
 73     Byte 3: Y Movement(9-bit 2's complement in     73     Byte 3: Y Movement(9-bit 2's complement integers)
 74     Byte 4: Bit0 => the Vertical scrolling mov     74     Byte 4: Bit0 => the Vertical scrolling movement downward.
 75             Bit1 => the Vertical scrolling mov     75             Bit1 => the Vertical scrolling movement upward.
 76             Bit2 => the Horizontal scrolling m     76             Bit2 => the Horizontal scrolling movement leftward.
 77             Bit3 => the Horizontal scrolling m     77             Bit3 => the Horizontal scrolling movement rightward.
 78             Bit4 => 1 = 4th mouse button is pr     78             Bit4 => 1 = 4th mouse button is pressed, Forward one page.
 79                     0 = 4th mouse button is no     79                     0 = 4th mouse button is not pressed.
 80             Bit5 => 1 = 5th mouse button is pr     80             Bit5 => 1 = 5th mouse button is pressed, Backward one page.
 81                     0 = 5th mouse button is no     81                     0 = 5th mouse button is not pressed.
 82                                                    82 
 83 C) MSID 7                                          83 C) MSID 7
 84                                                    84 
 85 FSP uses 2 packets (8 Bytes) to represent Abso     85 FSP uses 2 packets (8 Bytes) to represent Absolute Position.
 86 so we have PACKET NUMBER to identify packets.      86 so we have PACKET NUMBER to identify packets.
 87                                                    87 
 88   If PACKET NUMBER is 0, the packet is Packet      88   If PACKET NUMBER is 0, the packet is Packet 1.
 89   If PACKET NUMBER is 1, the packet is Packet      89   If PACKET NUMBER is 1, the packet is Packet 2.
 90   Please count this number in program.             90   Please count this number in program.
 91                                                    91 
 92 MSID6 special packet will be enable at the sam     92 MSID6 special packet will be enable at the same time when enable MSID 7.
 93                                                    93 
 94 Absolute position for STL3886-G0                   94 Absolute position for STL3886-G0
 95 ================================                   95 ================================
 96                                                    96 
 97 1. Set bit 2 or 3 in register 0x40 to 1            97 1. Set bit 2 or 3 in register 0x40 to 1
 98 2. Set bit 6 in register 0x40 to 1                 98 2. Set bit 6 in register 0x40 to 1
 99                                                    99 
100 ::                                                100 ::
101                                                   101 
102     Packet 1 (ABSOLUTE POSITION)                  102     Packet 1 (ABSOLUTE POSITION)
103     Bit 7 6 5 4 3 2 1 0       7 6 5 4 3 2 1 0     103     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
104     BYTE  |---------------|BYTE |-------------    104     BYTE  |---------------|BYTE |---------------|BYTE|---------------|BYTE|---------------|
105       1   |0|1|V|1|1|M|R|L|  2  |X|X|X|X|X|X|X    105       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|
106           |---------------|     |-------------    106           |---------------|     |---------------|    |---------------|    |---------------|
107                                                   107 
108     Byte 1: Bit7~Bit6 => 00, Normal data packe    108     Byte 1: Bit7~Bit6 => 00, Normal data packet
109                     => 01, Absolute coordinati    109                     => 01, Absolute coordination packet
110                     => 10, Notify packet          110                     => 10, Notify packet
111             Bit5 => valid bit                     111             Bit5 => valid bit
112             Bit4 => 1                             112             Bit4 => 1
113             Bit3 => 1                             113             Bit3 => 1
114             Bit2 => Middle Button, 1 is presse    114             Bit2 => Middle Button, 1 is pressed, 0 is not pressed.
115             Bit1 => Right Button, 1 is pressed    115             Bit1 => Right Button, 1 is pressed, 0 is not pressed.
116             Bit0 => Left Button, 1 is pressed,    116             Bit0 => Left Button, 1 is pressed, 0 is not pressed.
117     Byte 2: X coordinate (xpos[9:2])              117     Byte 2: X coordinate (xpos[9:2])
118     Byte 3: Y coordinate (ypos[9:2])              118     Byte 3: Y coordinate (ypos[9:2])
119     Byte 4: Bit1~Bit0 => Y coordinate (xpos[1:    119     Byte 4: Bit1~Bit0 => Y coordinate (xpos[1:0])
120             Bit3~Bit2 => X coordinate (ypos[1:    120             Bit3~Bit2 => X coordinate (ypos[1:0])
121             Bit4 => scroll up                     121             Bit4 => scroll up
122             Bit5 => scroll down                   122             Bit5 => scroll down
123             Bit6 => scroll left                   123             Bit6 => scroll left
124             Bit7 => scroll right                  124             Bit7 => scroll right
125                                                   125 
126     Notify Packet for G0                          126     Notify Packet for G0
127     Bit 7 6 5 4 3 2 1 0       7 6 5 4 3 2 1 0     127     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
128     BYTE  |---------------|BYTE |-------------    128     BYTE  |---------------|BYTE |---------------|BYTE|---------------|BYTE|---------------|
129       1   |1|0|0|1|1|M|R|L|  2  |C|C|C|C|C|C|C    129       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|
130           |---------------|     |-------------    130           |---------------|     |---------------|    |---------------|    |---------------|
131                                                   131 
132     Byte 1: Bit7~Bit6 => 00, Normal data packe    132     Byte 1: Bit7~Bit6 => 00, Normal data packet
133                     => 01, Absolute coordinati    133                     => 01, Absolute coordination packet
134                     => 10, Notify packet          134                     => 10, Notify packet
135             Bit5 => 0                             135             Bit5 => 0
136             Bit4 => 1                             136             Bit4 => 1
137             Bit3 => 1                             137             Bit3 => 1
138             Bit2 => Middle Button, 1 is presse    138             Bit2 => Middle Button, 1 is pressed, 0 is not pressed.
139             Bit1 => Right Button, 1 is pressed    139             Bit1 => Right Button, 1 is pressed, 0 is not pressed.
140             Bit0 => Left Button, 1 is pressed,    140             Bit0 => Left Button, 1 is pressed, 0 is not pressed.
141     Byte 2: Message Type => 0x5A (Enable/Disab    141     Byte 2: Message Type => 0x5A (Enable/Disable status packet)
142             Mode Type => 0xA5 (Normal/Icon mod    142             Mode Type => 0xA5 (Normal/Icon mode status)
143     Byte 3: Message Type => 0x00 (Disabled)       143     Byte 3: Message Type => 0x00 (Disabled)
144                         => 0x01 (Enabled)         144                         => 0x01 (Enabled)
145             Mode Type    => 0x00 (Normal)         145             Mode Type    => 0x00 (Normal)
146                         => 0x01 (Icon)            146                         => 0x01 (Icon)
147     Byte 4: Bit7~Bit0 => Don't Care               147     Byte 4: Bit7~Bit0 => Don't Care
148                                                   148 
149 Absolute position for STL3888-Ax                  149 Absolute position for STL3888-Ax
150 ================================                  150 ================================
151                                                   151 
152 ::                                                152 ::
153                                                   153 
154     Packet 1 (ABSOLUTE POSITION)                  154     Packet 1 (ABSOLUTE POSITION)
155     Bit 7 6 5 4 3 2 1 0       7 6 5 4 3 2 1 0     155     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
156     BYTE  |---------------|BYTE |-------------    156     BYTE  |---------------|BYTE |---------------|BYTE|---------------|BYTE|---------------|
157       1   |0|1|V|A|1|L|0|1|  2  |X|X|X|X|X|X|X    157       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|
158           |---------------|     |-------------    158           |---------------|     |---------------|    |---------------|    |---------------|
159                                                   159 
160     Byte 1: Bit7~Bit6 => 00, Normal data packe    160     Byte 1: Bit7~Bit6 => 00, Normal data packet
161                     => 01, Absolute coordinati    161                     => 01, Absolute coordination packet
162                     => 10, Notify packet          162                     => 10, Notify packet
163                     => 11, Normal data packet     163                     => 11, Normal data packet with on-pad click
164             Bit5 => Valid bit, 0 means that th    164             Bit5 => Valid bit, 0 means that the coordinate is invalid or finger up.
165                     When both fingers are up,     165                     When both fingers are up, the last two reports have zero valid
166                     bit.                          166                     bit.
167             Bit4 => arc                           167             Bit4 => arc
168             Bit3 => 1                             168             Bit3 => 1
169             Bit2 => Left Button, 1 is pressed,    169             Bit2 => Left Button, 1 is pressed, 0 is released.
170             Bit1 => 0                             170             Bit1 => 0
171             Bit0 => 1                             171             Bit0 => 1
172     Byte 2: X coordinate (xpos[9:2])              172     Byte 2: X coordinate (xpos[9:2])
173     Byte 3: Y coordinate (ypos[9:2])              173     Byte 3: Y coordinate (ypos[9:2])
174     Byte 4: Bit1~Bit0 => Y coordinate (xpos[1:    174     Byte 4: Bit1~Bit0 => Y coordinate (xpos[1:0])
175             Bit3~Bit2 => X coordinate (ypos[1:    175             Bit3~Bit2 => X coordinate (ypos[1:0])
176             Bit5~Bit4 => y1_g                     176             Bit5~Bit4 => y1_g
177             Bit7~Bit6 => x1_g                     177             Bit7~Bit6 => x1_g
178                                                   178 
179     Packet 2 (ABSOLUTE POSITION)                  179     Packet 2 (ABSOLUTE POSITION)
180     Bit 7 6 5 4 3 2 1 0       7 6 5 4 3 2 1 0     180     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
181     BYTE  |---------------|BYTE |-------------    181     BYTE  |---------------|BYTE |---------------|BYTE|---------------|BYTE|---------------|
182       1   |0|1|V|A|1|R|1|0|  2  |X|X|X|X|X|X|X    182       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|
183           |---------------|     |-------------    183           |---------------|     |---------------|    |---------------|    |---------------|
184                                                   184 
185     Byte 1: Bit7~Bit6 => 00, Normal data packe    185     Byte 1: Bit7~Bit6 => 00, Normal data packet
186                     => 01, Absolute coordinate    186                     => 01, Absolute coordinates packet
187                     => 10, Notify packet          187                     => 10, Notify packet
188                     => 11, Normal data packet     188                     => 11, Normal data packet with on-pad click
189             Bit5 => Valid bit, 0 means that th    189             Bit5 => Valid bit, 0 means that the coordinate is invalid or finger up.
190                     When both fingers are up,     190                     When both fingers are up, the last two reports have zero valid
191                     bit.                          191                     bit.
192             Bit4 => arc                           192             Bit4 => arc
193             Bit3 => 1                             193             Bit3 => 1
194             Bit2 => Right Button, 1 is pressed    194             Bit2 => Right Button, 1 is pressed, 0 is released.
195             Bit1 => 1                             195             Bit1 => 1
196             Bit0 => 0                             196             Bit0 => 0
197     Byte 2: X coordinate (xpos[9:2])              197     Byte 2: X coordinate (xpos[9:2])
198     Byte 3: Y coordinate (ypos[9:2])              198     Byte 3: Y coordinate (ypos[9:2])
199     Byte 4: Bit1~Bit0 => Y coordinate (xpos[1:    199     Byte 4: Bit1~Bit0 => Y coordinate (xpos[1:0])
200             Bit3~Bit2 => X coordinate (ypos[1:    200             Bit3~Bit2 => X coordinate (ypos[1:0])
201             Bit5~Bit4 => y2_g                     201             Bit5~Bit4 => y2_g
202             Bit7~Bit6 => x2_g                     202             Bit7~Bit6 => x2_g
203                                                   203 
204     Notify Packet for STL3888-Ax                  204     Notify Packet for STL3888-Ax
205     Bit 7 6 5 4 3 2 1 0       7 6 5 4 3 2 1 0     205     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
206     BYTE  |---------------|BYTE |-------------    206     BYTE  |---------------|BYTE |---------------|BYTE|---------------|BYTE|---------------|
207       1   |1|0|1|P|1|M|R|L|  2  |C|C|C|C|C|C|C    207       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|
208           |---------------|     |-------------    208           |---------------|     |---------------|    |---------------|    |---------------|
209                                                   209 
210     Byte 1: Bit7~Bit6 => 00, Normal data packe    210     Byte 1: Bit7~Bit6 => 00, Normal data packet
211                     => 01, Absolute coordinate    211                     => 01, Absolute coordinates packet
212                     => 10, Notify packet          212                     => 10, Notify packet
213                     => 11, Normal data packet     213                     => 11, Normal data packet with on-pad click
214             Bit5 => 1                             214             Bit5 => 1
215             Bit4 => when in absolute coordinat    215             Bit4 => when in absolute coordinates mode (valid when EN_PKT_GO is 1):
216                     0: left button is generate    216                     0: left button is generated by the on-pad command
217                     1: left button is generate    217                     1: left button is generated by the external button
218             Bit3 => 1                             218             Bit3 => 1
219             Bit2 => Middle Button, 1 is presse    219             Bit2 => Middle Button, 1 is pressed, 0 is not pressed.
220             Bit1 => Right Button, 1 is pressed    220             Bit1 => Right Button, 1 is pressed, 0 is not pressed.
221             Bit0 => Left Button, 1 is pressed,    221             Bit0 => Left Button, 1 is pressed, 0 is not pressed.
222     Byte 2: Message Type => 0xB7 (Multi Finger    222     Byte 2: Message Type => 0xB7 (Multi Finger, Multi Coordinate mode)
223     Byte 3: Bit7~Bit6 => Don't care               223     Byte 3: Bit7~Bit6 => Don't care
224             Bit5~Bit4 => Number of fingers        224             Bit5~Bit4 => Number of fingers
225             Bit3~Bit1 => Reserved                 225             Bit3~Bit1 => Reserved
226             Bit0 => 1: enter gesture mode; 0:     226             Bit0 => 1: enter gesture mode; 0: leaving gesture mode
227     Byte 4: Bit7 => scroll right button           227     Byte 4: Bit7 => scroll right button
228             Bit6 => scroll left button            228             Bit6 => scroll left button
229             Bit5 => scroll down button            229             Bit5 => scroll down button
230             Bit4 => scroll up button              230             Bit4 => scroll up button
231                 * Note that if gesture and add    231                 * Note that if gesture and additional button (Bit4~Bit7)
232                 happen at the same time, the b    232                 happen at the same time, the button information will not
233                 be sent.                          233                 be sent.
234             Bit3~Bit0 => Reserved                 234             Bit3~Bit0 => Reserved
235                                                   235 
236 Sample sequence of Multi-finger, Multi-coordin    236 Sample sequence of Multi-finger, Multi-coordinate mode:
237                                                   237 
238         notify packet (valid bit == 1), abs pk    238         notify packet (valid bit == 1), abs pkt 1, abs pkt 2, abs pkt 1,
239         abs pkt 2, ..., notify packet (valid b    239         abs pkt 2, ..., notify packet (valid bit == 0)
240                                                   240 
241 Absolute position for STL3888-B0                  241 Absolute position for STL3888-B0
242 ================================                  242 ================================
243                                                   243 
244 ::                                                244 ::
245                                                   245 
246     Packet 1(ABSOLUTE POSITION)                   246     Packet 1(ABSOLUTE POSITION)
247     Bit 7 6 5 4 3 2 1 0       7 6 5 4 3 2 1 0     247     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
248     BYTE  |---------------|BYTE |-------------    248     BYTE  |---------------|BYTE |---------------|BYTE|---------------|BYTE|---------------|
249       1   |0|1|V|F|1|0|R|L|  2  |X|X|X|X|X|X|X    249       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|
250           |---------------|     |-------------    250           |---------------|     |---------------|    |---------------|    |---------------|
251                                                   251 
252     Byte 1: Bit7~Bit6 => 00, Normal data packe    252     Byte 1: Bit7~Bit6 => 00, Normal data packet
253                     => 01, Absolute coordinate    253                     => 01, Absolute coordinates packet
254                     => 10, Notify packet          254                     => 10, Notify packet
255                     => 11, Normal data packet     255                     => 11, Normal data packet with on-pad click
256             Bit5 => Valid bit, 0 means that th    256             Bit5 => Valid bit, 0 means that the coordinate is invalid or finger up.
257                     When both fingers are up,     257                     When both fingers are up, the last two reports have zero valid
258                     bit.                          258                     bit.
259             Bit4 => finger up/down information    259             Bit4 => finger up/down information. 1: finger down, 0: finger up.
260             Bit3 => 1                             260             Bit3 => 1
261             Bit2 => finger index, 0 is the fir    261             Bit2 => finger index, 0 is the first finger, 1 is the second finger.
262             Bit1 => Right Button, 1 is pressed    262             Bit1 => Right Button, 1 is pressed, 0 is not pressed.
263             Bit0 => Left Button, 1 is pressed,    263             Bit0 => Left Button, 1 is pressed, 0 is not pressed.
264     Byte 2: X coordinate (xpos[9:2])              264     Byte 2: X coordinate (xpos[9:2])
265     Byte 3: Y coordinate (ypos[9:2])              265     Byte 3: Y coordinate (ypos[9:2])
266     Byte 4: Bit1~Bit0 => Y coordinate (xpos[1:    266     Byte 4: Bit1~Bit0 => Y coordinate (xpos[1:0])
267             Bit3~Bit2 => X coordinate (ypos[1:    267             Bit3~Bit2 => X coordinate (ypos[1:0])
268             Bit4 => scroll down button            268             Bit4 => scroll down button
269             Bit5 => scroll up button              269             Bit5 => scroll up button
270             Bit6 => scroll left button            270             Bit6 => scroll left button
271             Bit7 => scroll right button           271             Bit7 => scroll right button
272                                                   272 
273     Packet 2 (ABSOLUTE POSITION)                  273     Packet 2 (ABSOLUTE POSITION)
274     Bit 7 6 5 4 3 2 1 0       7 6 5 4 3 2 1 0     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
275     BYTE  |---------------|BYTE |-------------    275     BYTE  |---------------|BYTE |---------------|BYTE|---------------|BYTE|---------------|
276       1   |0|1|V|F|1|1|R|L|  2  |X|X|X|X|X|X|X    276       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|
277           |---------------|     |-------------    277           |---------------|     |---------------|    |---------------|    |---------------|
278                                                   278 
279     Byte 1: Bit7~Bit6 => 00, Normal data packe    279     Byte 1: Bit7~Bit6 => 00, Normal data packet
280                     => 01, Absolute coordinati    280                     => 01, Absolute coordination packet
281                     => 10, Notify packet          281                     => 10, Notify packet
282                     => 11, Normal data packet     282                     => 11, Normal data packet with on-pad click
283             Bit5 => Valid bit, 0 means that th    283             Bit5 => Valid bit, 0 means that the coordinate is invalid or finger up.
284                     When both fingers are up,     284                     When both fingers are up, the last two reports have zero valid
285                     bit.                          285                     bit.
286             Bit4 => finger up/down information    286             Bit4 => finger up/down information. 1: finger down, 0: finger up.
287             Bit3 => 1                             287             Bit3 => 1
288             Bit2 => finger index, 0 is the fir    288             Bit2 => finger index, 0 is the first finger, 1 is the second finger.
289             Bit1 => Right Button, 1 is pressed    289             Bit1 => Right Button, 1 is pressed, 0 is not pressed.
290             Bit0 => Left Button, 1 is pressed,    290             Bit0 => Left Button, 1 is pressed, 0 is not pressed.
291     Byte 2: X coordinate (xpos[9:2])              291     Byte 2: X coordinate (xpos[9:2])
292     Byte 3: Y coordinate (ypos[9:2])              292     Byte 3: Y coordinate (ypos[9:2])
293     Byte 4: Bit1~Bit0 => Y coordinate (xpos[1:    293     Byte 4: Bit1~Bit0 => Y coordinate (xpos[1:0])
294             Bit3~Bit2 => X coordinate (ypos[1:    294             Bit3~Bit2 => X coordinate (ypos[1:0])
295             Bit4 => scroll down button            295             Bit4 => scroll down button
296             Bit5 => scroll up button              296             Bit5 => scroll up button
297             Bit6 => scroll left button            297             Bit6 => scroll left button
298             Bit7 => scroll right button           298             Bit7 => scroll right button
299                                                   299 
300 Notify Packet for STL3888-B0::                    300 Notify Packet for STL3888-B0::
301                                                   301 
302     Bit 7 6 5 4 3 2 1 0       7 6 5 4 3 2 1 0     302     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
303     BYTE  |---------------|BYTE |-------------    303     BYTE  |---------------|BYTE |---------------|BYTE|---------------|BYTE|---------------|
304       1   |1|0|1|P|1|M|R|L|  2  |C|C|C|C|C|C|C    304       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|
305           |---------------|     |-------------    305           |---------------|     |---------------|    |---------------|    |---------------|
306                                                   306 
307     Byte 1: Bit7~Bit6 => 00, Normal data packe    307     Byte 1: Bit7~Bit6 => 00, Normal data packet
308                     => 01, Absolute coordinati    308                     => 01, Absolute coordination packet
309                     => 10, Notify packet          309                     => 10, Notify packet
310                     => 11, Normal data packet     310                     => 11, Normal data packet with on-pad click
311             Bit5 => 1                             311             Bit5 => 1
312             Bit4 => when in absolute coordinat    312             Bit4 => when in absolute coordinates mode (valid when EN_PKT_GO is 1):
313                     0: left button is generate    313                     0: left button is generated by the on-pad command
314                     1: left button is generate    314                     1: left button is generated by the external button
315             Bit3 => 1                             315             Bit3 => 1
316             Bit2 => Middle Button, 1 is presse    316             Bit2 => Middle Button, 1 is pressed, 0 is not pressed.
317             Bit1 => Right Button, 1 is pressed    317             Bit1 => Right Button, 1 is pressed, 0 is not pressed.
318             Bit0 => Left Button, 1 is pressed,    318             Bit0 => Left Button, 1 is pressed, 0 is not pressed.
319     Byte 2: Message Type => 0xB7 (Multi Finger    319     Byte 2: Message Type => 0xB7 (Multi Finger, Multi Coordinate mode)
320     Byte 3: Bit7~Bit6 => Don't care               320     Byte 3: Bit7~Bit6 => Don't care
321             Bit5~Bit4 => Number of fingers        321             Bit5~Bit4 => Number of fingers
322             Bit3~Bit1 => Reserved                 322             Bit3~Bit1 => Reserved
323             Bit0 => 1: enter gesture mode; 0:     323             Bit0 => 1: enter gesture mode; 0: leaving gesture mode
324     Byte 4: Bit7 => scroll right button           324     Byte 4: Bit7 => scroll right button
325             Bit6 => scroll left button            325             Bit6 => scroll left button
326             Bit5 => scroll up button              326             Bit5 => scroll up button
327             Bit4 => scroll down button            327             Bit4 => scroll down button
328                 * Note that if gesture and add    328                 * Note that if gesture and additional button(Bit4~Bit7)
329                 happen at the same time, the b    329                 happen at the same time, the button information will not
330                 be sent.                          330                 be sent.
331             Bit3~Bit0 => Reserved                 331             Bit3~Bit0 => Reserved
332                                                   332 
333 Sample sequence of Multi-finger, Multi-coordin    333 Sample sequence of Multi-finger, Multi-coordinate mode:
334                                                   334 
335         notify packet (valid bit == 1), abs pk    335         notify packet (valid bit == 1), abs pkt 1, abs pkt 2, abs pkt 1,
336         abs pkt 2, ..., notify packet (valid b    336         abs pkt 2, ..., notify packet (valid bit == 0)
337                                                   337 
338 Absolute position for STL3888-Cx and STL3888-D    338 Absolute position for STL3888-Cx and STL3888-Dx
339 ==============================================    339 ===============================================
340                                                   340 
341 ::                                                341 ::
342                                                   342 
343     Single Finger, Absolute Coordinate Mode (S    343     Single Finger, Absolute Coordinate Mode (SFAC)
344     Bit 7 6 5 4 3 2 1 0       7 6 5 4 3 2 1 0     344     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
345     BYTE  |---------------|BYTE |-------------    345     BYTE  |---------------|BYTE |---------------|BYTE|---------------|BYTE|---------------|
346       1   |0|1|0|P|1|M|R|L|  2  |X|X|X|X|X|X|X    346       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|
347           |---------------|     |-------------    347           |---------------|     |---------------|    |---------------|    |---------------|
348                                                   348 
349     Byte 1: Bit7~Bit6 => 00, Normal data packe    349     Byte 1: Bit7~Bit6 => 00, Normal data packet
350                     => 01, Absolute coordinate    350                     => 01, Absolute coordinates packet
351                     => 10, Notify packet          351                     => 10, Notify packet
352             Bit5 => Coordinate mode(always 0 i    352             Bit5 => Coordinate mode(always 0 in SFAC mode):
353                     0: single-finger absolute     353                     0: single-finger absolute coordinates (SFAC) mode
354                     1: multi-finger, multiple     354                     1: multi-finger, multiple coordinates (MFMC) mode
355             Bit4 => 0: The LEFT button is gene    355             Bit4 => 0: The LEFT button is generated by on-pad command (OPC)
356                     1: The LEFT button is gene    356                     1: The LEFT button is generated by external button
357                     Default is 1 even if the L    357                     Default is 1 even if the LEFT button is not pressed.
358             Bit3 => Always 1, as specified by     358             Bit3 => Always 1, as specified by PS/2 protocol.
359             Bit2 => Middle Button, 1 is presse    359             Bit2 => Middle Button, 1 is pressed, 0 is not pressed.
360             Bit1 => Right Button, 1 is pressed    360             Bit1 => Right Button, 1 is pressed, 0 is not pressed.
361             Bit0 => Left Button, 1 is pressed,    361             Bit0 => Left Button, 1 is pressed, 0 is not pressed.
362     Byte 2: X coordinate (xpos[9:2])              362     Byte 2: X coordinate (xpos[9:2])
363     Byte 3: Y coordinate (ypos[9:2])              363     Byte 3: Y coordinate (ypos[9:2])
364     Byte 4: Bit1~Bit0 => Y coordinate (xpos[1:    364     Byte 4: Bit1~Bit0 => Y coordinate (xpos[1:0])
365             Bit3~Bit2 => X coordinate (ypos[1:    365             Bit3~Bit2 => X coordinate (ypos[1:0])
366             Bit4 => 4th mouse button(forward o    366             Bit4 => 4th mouse button(forward one page)
367             Bit5 => 5th mouse button(backward     367             Bit5 => 5th mouse button(backward one page)
368             Bit6 => scroll left button            368             Bit6 => scroll left button
369             Bit7 => scroll right button           369             Bit7 => scroll right button
370                                                   370 
371     Multi Finger, Multiple Coordinates Mode (M    371     Multi Finger, Multiple Coordinates Mode (MFMC):
372     Bit 7 6 5 4 3 2 1 0       7 6 5 4 3 2 1 0     372     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
373     BYTE  |---------------|BYTE |-------------    373     BYTE  |---------------|BYTE |---------------|BYTE|---------------|BYTE|---------------|
374       1   |0|1|1|P|1|F|R|L|  2  |X|X|X|X|X|X|X    374       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|
375           |---------------|     |-------------    375           |---------------|     |---------------|    |---------------|    |---------------|
376                                                   376 
377     Byte 1: Bit7~Bit6 => 00, Normal data packe    377     Byte 1: Bit7~Bit6 => 00, Normal data packet
378                     => 01, Absolute coordinati    378                     => 01, Absolute coordination packet
379                     => 10, Notify packet          379                     => 10, Notify packet
380             Bit5 => Coordinate mode (always 1     380             Bit5 => Coordinate mode (always 1 in MFMC mode):
381                     0: single-finger absolute     381                     0: single-finger absolute coordinates (SFAC) mode
382                     1: multi-finger, multiple     382                     1: multi-finger, multiple coordinates (MFMC) mode
383             Bit4 => 0: The LEFT button is gene    383             Bit4 => 0: The LEFT button is generated by on-pad command (OPC)
384                     1: The LEFT button is gene    384                     1: The LEFT button is generated by external button
385                     Default is 1 even if the L    385                     Default is 1 even if the LEFT button is not pressed.
386             Bit3 => Always 1, as specified by     386             Bit3 => Always 1, as specified by PS/2 protocol.
387             Bit2 => Finger index, 0 is the fir    387             Bit2 => Finger index, 0 is the first finger, 1 is the second finger.
388                     If bit 1 and 0 are all 1 a    388                     If bit 1 and 0 are all 1 and bit 4 is 0, the middle external
389                     button is pressed.            389                     button is pressed.
390             Bit1 => Right Button, 1 is pressed    390             Bit1 => Right Button, 1 is pressed, 0 is not pressed.
391             Bit0 => Left Button, 1 is pressed,    391             Bit0 => Left Button, 1 is pressed, 0 is not pressed.
392     Byte 2: X coordinate (xpos[9:2])              392     Byte 2: X coordinate (xpos[9:2])
393     Byte 3: Y coordinate (ypos[9:2])              393     Byte 3: Y coordinate (ypos[9:2])
394     Byte 4: Bit1~Bit0 => Y coordinate (xpos[1:    394     Byte 4: Bit1~Bit0 => Y coordinate (xpos[1:0])
395             Bit3~Bit2 => X coordinate (ypos[1:    395             Bit3~Bit2 => X coordinate (ypos[1:0])
396             Bit4 => 4th mouse button(forward o    396             Bit4 => 4th mouse button(forward one page)
397             Bit5 => 5th mouse button(backward     397             Bit5 => 5th mouse button(backward one page)
398             Bit6 => scroll left button            398             Bit6 => scroll left button
399             Bit7 => scroll right button           399             Bit7 => scroll right button
400                                                   400 
401 When one of the two fingers is up, the device     401 When one of the two fingers is up, the device will output four consecutive
402 MFMC#0 report packets with zero X and Y to rep    402 MFMC#0 report packets with zero X and Y to represent 1st finger is up or
403 four consecutive MFMC#1 report packets with ze    403 four consecutive MFMC#1 report packets with zero X and Y to represent that
404 the 2nd finger is up.  On the other hand, if b    404 the 2nd finger is up.  On the other hand, if both fingers are up, the device
405 will output four consecutive single-finger, ab    405 will output four consecutive single-finger, absolute coordinate(SFAC) packets
406 with zero X and Y.                                406 with zero X and Y.
407                                                   407 
408 Notify Packet for STL3888-Cx/Dx::                 408 Notify Packet for STL3888-Cx/Dx::
409                                                   409 
410     Bit 7 6 5 4 3 2 1 0       7 6 5 4 3 2 1 0     410     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
411     BYTE  |---------------|BYTE |-------------    411     BYTE  |---------------|BYTE |---------------|BYTE|---------------|BYTE|---------------|
412       1   |1|0|0|P|1|M|R|L|  2  |C|C|C|C|C|C|C    412       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|
413           |---------------|     |-------------    413           |---------------|     |---------------|    |---------------|    |---------------|
414                                                   414 
415     Byte 1: Bit7~Bit6 => 00, Normal data packe    415     Byte 1: Bit7~Bit6 => 00, Normal data packet
416                     => 01, Absolute coordinate    416                     => 01, Absolute coordinates packet
417                     => 10, Notify packet          417                     => 10, Notify packet
418             Bit5 => Always 0                      418             Bit5 => Always 0
419             Bit4 => 0: The LEFT button is gene    419             Bit4 => 0: The LEFT button is generated by on-pad command(OPC)
420                     1: The LEFT button is gene    420                     1: The LEFT button is generated by external button
421                     Default is 1 even if the L    421                     Default is 1 even if the LEFT button is not pressed.
422             Bit3 => 1                             422             Bit3 => 1
423             Bit2 => Middle Button, 1 is presse    423             Bit2 => Middle Button, 1 is pressed, 0 is not pressed.
424             Bit1 => Right Button, 1 is pressed    424             Bit1 => Right Button, 1 is pressed, 0 is not pressed.
425             Bit0 => Left Button, 1 is pressed,    425             Bit0 => Left Button, 1 is pressed, 0 is not pressed.
426     Byte 2: Message type:                         426     Byte 2: Message type:
427             0xba => gesture information           427             0xba => gesture information
428             0xc0 => one finger hold-rotating g    428             0xc0 => one finger hold-rotating gesture
429     Byte 3: The first parameter for the receiv    429     Byte 3: The first parameter for the received message:
430             0xba => gesture ID (refer to the '    430             0xba => gesture ID (refer to the 'Gesture ID' section)
431             0xc0 => region ID                     431             0xc0 => region ID
432     Byte 4: The second parameter for the recei    432     Byte 4: The second parameter for the received message:
433             0xba => N/A                           433             0xba => N/A
434             0xc0 => finger up/down information    434             0xc0 => finger up/down information
435                                                   435 
436 Sample sequence of Multi-finger, Multi-coordin    436 Sample sequence of Multi-finger, Multi-coordinates mode:
437                                                   437 
438         notify packet (valid bit == 1), MFMC p    438         notify packet (valid bit == 1), MFMC packet 1 (byte 1, bit 2 == 0),
439         MFMC packet 2 (byte 1, bit 2 == 1), MF    439         MFMC packet 2 (byte 1, bit 2 == 1), MFMC packet 1, MFMC packet 2,
440         ..., notify packet (valid bit == 0)       440         ..., notify packet (valid bit == 0)
441                                                   441 
442         That is, when the device is in MFMC mo    442         That is, when the device is in MFMC mode, the host will receive
443         interleaved absolute coordinate packet    443         interleaved absolute coordinate packets for each finger.
444                                                   444 
445 FSP Enable/Disable packet                         445 FSP Enable/Disable packet
446 =========================                         446 =========================
447                                                   447 
448 ::                                                448 ::
449                                                   449 
450     Bit 7 6 5 4 3 2 1 0       7 6 5 4 3 2 1 0     450     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
451     BYTE  |---------------|BYTE |-------------    451     BYTE  |---------------|BYTE |---------------|BYTE|---------------|BYTE|---------------|
452       1   |Y|X|0|0|1|M|R|L|  2  |0|1|0|1|1|0|1    452       1   |Y|X|0|0|1|M|R|L|  2  |0|1|0|1|1|0|1|E|  3 | | | | | | | | |  4 | | | | | | | | |
453           |---------------|     |-------------    453           |---------------|     |---------------|    |---------------|    |---------------|
454                                                   454 
455     FSP will send out enable/disable packet wh    455     FSP will send out enable/disable packet when FSP receive PS/2 enable/disable
456     command. Host will receive the packet whic    456     command. Host will receive the packet which Middle, Right, Left button will
457     be set. The packet only use byte 0 and byt    457     be set. The packet only use byte 0 and byte 1 as a pattern of original packet.
458     Ignore the other bytes of the packet.         458     Ignore the other bytes of the packet.
459                                                   459 
460     Byte 1: Bit7 => 0, Y overflow                 460     Byte 1: Bit7 => 0, Y overflow
461             Bit6 => 0, X overflow                 461             Bit6 => 0, X overflow
462             Bit5 => 0, Y sign bit                 462             Bit5 => 0, Y sign bit
463             Bit4 => 0, X sign bit                 463             Bit4 => 0, X sign bit
464             Bit3 => 1                             464             Bit3 => 1
465             Bit2 => 1, Middle Button              465             Bit2 => 1, Middle Button
466             Bit1 => 1, Right Button               466             Bit1 => 1, Right Button
467             Bit0 => 1, Left Button                467             Bit0 => 1, Left Button
468     Byte 2: Bit7~1 => (0101101b)                  468     Byte 2: Bit7~1 => (0101101b)
469             Bit0 => 1 = Enable                    469             Bit0 => 1 = Enable
470                     0 = Disable                   470                     0 = Disable
471     Byte 3: Don't care                            471     Byte 3: Don't care
472     Byte 4: Don't care (MOUSE ID 3, 4)            472     Byte 4: Don't care (MOUSE ID 3, 4)
473     Byte 5~8: Don't care (Absolute packet)        473     Byte 5~8: Don't care (Absolute packet)
474                                                   474 
475 PS/2 Command Set                                  475 PS/2 Command Set
476 ================                                  476 ================
477                                                   477 
478 FSP supports basic PS/2 commanding set and mod    478 FSP supports basic PS/2 commanding set and modes, refer to following URL for
479 details about PS/2 commands:                      479 details about PS/2 commands:
480                                                   480 
481 http://www.computer-engineering.org/ps2mouse/     481 http://www.computer-engineering.org/ps2mouse/
482                                                   482 
483 Programming Sequence for Determining Packet Pa    483 Programming Sequence for Determining Packet Parsing Flow
484 ==============================================    484 ========================================================
485                                                   485 
486 1. Identify FSP by reading device ID(0x00) and    486 1. Identify FSP by reading device ID(0x00) and version(0x01) register
487                                                   487 
488 2. For FSP version < STL3888 Cx, determine num    488 2. For FSP version < STL3888 Cx, determine number of buttons by reading
489    the 'test mode status' (0x20) register::       489    the 'test mode status' (0x20) register::
490                                                   490 
491         buttons = reg[0x20] & 0x30                491         buttons = reg[0x20] & 0x30
492                                                   492 
493         if buttons == 0x30 or buttons == 0x20:    493         if buttons == 0x30 or buttons == 0x20:
494                 # two/four buttons                494                 # two/four buttons
495                 Refer to 'Finger Sensing Pad P    495                 Refer to 'Finger Sensing Pad PS/2 Mouse Intellimouse'
496                 section A for packet parsing d    496                 section A for packet parsing detail(ignore byte 4, bit ~ 7)
497         elif buttons == 0x10:                     497         elif buttons == 0x10:
498                 # 6 buttons                       498                 # 6 buttons
499                 Refer to 'Finger Sensing Pad P    499                 Refer to 'Finger Sensing Pad PS/2 Mouse Intellimouse'
500                 section B for packet parsing d    500                 section B for packet parsing detail
501         elif buttons == 0x00:                     501         elif buttons == 0x00:
502                 # 6 buttons                       502                 # 6 buttons
503                 Refer to 'Finger Sensing Pad P    503                 Refer to 'Finger Sensing Pad PS/2 Mouse Intellimouse'
504                 section A for packet parsing d    504                 section A for packet parsing detail
505                                                   505 
506 3. For FSP version >= STL3888 Cx:                 506 3. For FSP version >= STL3888 Cx:
507         Refer to 'Finger Sensing Pad PS/2 Mous    507         Refer to 'Finger Sensing Pad PS/2 Mouse Intellimouse'
508         section A for packet parsing detail (i    508         section A for packet parsing detail (ignore byte 4, bit ~ 7)
509                                                   509 
510 Programming Sequence for Register Reading/Writ    510 Programming Sequence for Register Reading/Writing
511 ==============================================    511 =================================================
512                                                   512 
513 Register inversion requirement:                   513 Register inversion requirement:
514                                                   514 
515 Following values needed to be inverted(the '~'    515 Following values needed to be inverted(the '~' operator in C) before being
516 sent to FSP::                                     516 sent to FSP::
517                                                   517 
518         0xe8, 0xe9, 0xee, 0xf2, 0xf3 and 0xff.    518         0xe8, 0xe9, 0xee, 0xf2, 0xf3 and 0xff.
519                                                   519 
520 Register swapping requirement:                    520 Register swapping requirement:
521                                                   521 
522 Following values needed to have their higher 4    522 Following values needed to have their higher 4 bits and lower 4 bits being
523 swapped before being sent to FSP::                523 swapped before being sent to FSP::
524                                                   524 
525         10, 20, 40, 60, 80, 100 and 200.          525         10, 20, 40, 60, 80, 100 and 200.
526                                                   526 
527 Register reading sequence:                        527 Register reading sequence:
528                                                   528 
529         1. send 0xf3 PS/2 command to FSP;         529         1. send 0xf3 PS/2 command to FSP;
530                                                   530 
531         2. send 0x66 PS/2 command to FSP;         531         2. send 0x66 PS/2 command to FSP;
532                                                   532 
533         3. send 0x88 PS/2 command to FSP;         533         3. send 0x88 PS/2 command to FSP;
534                                                   534 
535         4. send 0xf3 PS/2 command to FSP;         535         4. send 0xf3 PS/2 command to FSP;
536                                                   536 
537         5. if the register address being to re    537         5. if the register address being to read is not required to be
538         inverted(refer to the 'Register invers    538         inverted(refer to the 'Register inversion requirement' section),
539         goto step 6                               539         goto step 6
540                                                   540 
541           a. send 0x68 PS/2 command to FSP;       541           a. send 0x68 PS/2 command to FSP;
542                                                   542 
543           b. send the inverted register addres    543           b. send the inverted register address to FSP and goto step 8;
544                                                   544 
545         6. if the register address being to re    545         6. if the register address being to read is not required to be
546         swapped(refer to the 'Register swappin    546         swapped(refer to the 'Register swapping requirement' section),
547         goto step 7                               547         goto step 7
548                                                   548 
549           a. send 0xcc PS/2 command to FSP;       549           a. send 0xcc PS/2 command to FSP;
550                                                   550 
551           b. send the swapped register address    551           b. send the swapped register address to FSP and goto step 8;
552                                                   552 
553         7. send 0x66 PS/2 command to FSP;         553         7. send 0x66 PS/2 command to FSP;
554                                                   554 
555           a. send the original register addres    555           a. send the original register address to FSP and goto step 8;
556                                                   556 
557         8. send 0xe9(status request) PS/2 comm    557         8. send 0xe9(status request) PS/2 command to FSP;
558                                                   558 
559         9. the 4th byte of the response read f    559         9. the 4th byte of the response read from FSP should be the
560         requested register value(?? indicates     560         requested register value(?? indicates don't care byte)::
561                                                   561 
562                 host: 0xe9                        562                 host: 0xe9
563                 3888: 0xfa (??) (??) (val)        563                 3888: 0xfa (??) (??) (val)
564                                                   564 
565         * Note that since the Cx release, the     565         * Note that since the Cx release, the hardware will return 1's
566           complement of the register value at     566           complement of the register value at the 3rd byte of status request
567           result::                                567           result::
568                                                   568 
569                 host: 0xe9                        569                 host: 0xe9
570                 3888: 0xfa (??) (~val) (val)      570                 3888: 0xfa (??) (~val) (val)
571                                                   571 
572 Register writing sequence:                        572 Register writing sequence:
573                                                   573 
574         1. send 0xf3 PS/2 command to FSP;         574         1. send 0xf3 PS/2 command to FSP;
575                                                   575 
576         2. if the register address being to wr    576         2. if the register address being to write is not required to be
577         inverted(refer to the 'Register invers    577         inverted(refer to the 'Register inversion requirement' section),
578         goto step 3                               578         goto step 3
579                                                   579 
580           a. send 0x74 PS/2 command to FSP;       580           a. send 0x74 PS/2 command to FSP;
581                                                   581 
582           b. send the inverted register addres    582           b. send the inverted register address to FSP and goto step 5;
583                                                   583 
584         3. if the register address being to wr    584         3. if the register address being to write is not required to be
585         swapped(refer to the 'Register swappin    585         swapped(refer to the 'Register swapping requirement' section),
586         goto step 4                               586         goto step 4
587                                                   587 
588           a. send 0x77 PS/2 command to FSP;       588           a. send 0x77 PS/2 command to FSP;
589                                                   589 
590           b. send the swapped register address    590           b. send the swapped register address to FSP and goto step 5;
591                                                   591 
592         4. send 0x55 PS/2 command to FSP;         592         4. send 0x55 PS/2 command to FSP;
593                                                   593 
594           a. send the register address to FSP     594           a. send the register address to FSP and goto step 5;
595                                                   595 
596         5. send 0xf3 PS/2 command to FSP;         596         5. send 0xf3 PS/2 command to FSP;
597                                                   597 
598         6. if the register value being to writ    598         6. if the register value being to write is not required to be
599         inverted(refer to the 'Register invers    599         inverted(refer to the 'Register inversion requirement' section),
600         goto step 7                               600         goto step 7
601                                                   601 
602           a. send 0x47 PS/2 command to FSP;       602           a. send 0x47 PS/2 command to FSP;
603                                                   603 
604           b. send the inverted register value     604           b. send the inverted register value to FSP and goto step 9;
605                                                   605 
606         7. if the register value being to writ    606         7. if the register value being to write is not required to be
607         swapped(refer to the 'Register swappin    607         swapped(refer to the 'Register swapping requirement' section),
608         goto step 8                               608         goto step 8
609                                                   609 
610           a. send 0x44 PS/2 command to FSP;       610           a. send 0x44 PS/2 command to FSP;
611                                                   611 
612           b. send the swapped register value t    612           b. send the swapped register value to FSP and goto step 9;
613                                                   613 
614         8. send 0x33 PS/2 command to FSP;         614         8. send 0x33 PS/2 command to FSP;
615                                                   615 
616           a. send the register value to FSP;      616           a. send the register value to FSP;
617                                                   617 
618         9. the register writing sequence is co    618         9. the register writing sequence is completed.
619                                                   619 
620         * Since the Cx release, the hardware w    620         * Since the Cx release, the hardware will return 1's
621           complement of the register value at     621           complement of the register value at the 3rd byte of status request
622           result. Host can optionally send ano    622           result. Host can optionally send another 0xe9 (status request) PS/2
623           command to FSP at the end of registe    623           command to FSP at the end of register writing to verify that the
624           register writing operation is succes    624           register writing operation is successful (?? indicates don't care
625           byte)::                                 625           byte)::
626                                                   626 
627                 host: 0xe9                        627                 host: 0xe9
628                 3888: 0xfa (??) (~val) (val)      628                 3888: 0xfa (??) (~val) (val)
629                                                   629 
630 Programming Sequence for Page Register Reading    630 Programming Sequence for Page Register Reading/Writing
631 ==============================================    631 ======================================================
632                                                   632 
633 In order to overcome the limitation of maximum    633 In order to overcome the limitation of maximum number of registers
634 supported, the hardware separates register int    634 supported, the hardware separates register into different groups called
635 'pages.' Each page is able to include up to 25    635 'pages.' Each page is able to include up to 255 registers.
636                                                   636 
637 The default page after power up is 0x82; there    637 The default page after power up is 0x82; therefore, if one has to get
638 access to register 0x8301, one has to use foll    638 access to register 0x8301, one has to use following sequence to switch
639 to page 0x83, then start reading/writing from/    639 to page 0x83, then start reading/writing from/to offset 0x01 by using
640 the register read/write sequence described in     640 the register read/write sequence described in previous section.
641                                                   641 
642 Page register reading sequence:                   642 Page register reading sequence:
643                                                   643 
644         1. send 0xf3 PS/2 command to FSP;         644         1. send 0xf3 PS/2 command to FSP;
645                                                   645 
646         2. send 0x66 PS/2 command to FSP;         646         2. send 0x66 PS/2 command to FSP;
647                                                   647 
648         3. send 0x88 PS/2 command to FSP;         648         3. send 0x88 PS/2 command to FSP;
649                                                   649 
650         4. send 0xf3 PS/2 command to FSP;         650         4. send 0xf3 PS/2 command to FSP;
651                                                   651 
652         5. send 0x83 PS/2 command to FSP;         652         5. send 0x83 PS/2 command to FSP;
653                                                   653 
654         6. send 0x88 PS/2 command to FSP;         654         6. send 0x88 PS/2 command to FSP;
655                                                   655 
656         7. send 0xe9(status request) PS/2 comm    656         7. send 0xe9(status request) PS/2 command to FSP;
657                                                   657 
658         8. the response read from FSP should b    658         8. the response read from FSP should be the requested page value.
659                                                   659 
660                                                   660 
661 Page register writing sequence:                   661 Page register writing sequence:
662                                                   662 
663         1. send 0xf3 PS/2 command to FSP;         663         1. send 0xf3 PS/2 command to FSP;
664                                                   664 
665         2. send 0x38 PS/2 command to FSP;         665         2. send 0x38 PS/2 command to FSP;
666                                                   666 
667         3. send 0x88 PS/2 command to FSP;         667         3. send 0x88 PS/2 command to FSP;
668                                                   668 
669         4. send 0xf3 PS/2 command to FSP;         669         4. send 0xf3 PS/2 command to FSP;
670                                                   670 
671         5. if the page address being written i    671         5. if the page address being written is not required to be
672         inverted(refer to the 'Register invers    672         inverted(refer to the 'Register inversion requirement' section),
673         goto step 6                               673         goto step 6
674                                                   674 
675           a. send 0x47 PS/2 command to FSP;       675           a. send 0x47 PS/2 command to FSP;
676                                                   676 
677           b. send the inverted page address to    677           b. send the inverted page address to FSP and goto step 9;
678                                                   678 
679         6. if the page address being written i    679         6. if the page address being written is not required to be
680         swapped(refer to the 'Register swappin    680         swapped(refer to the 'Register swapping requirement' section),
681         goto step 7                               681         goto step 7
682                                                   682 
683           a. send 0x44 PS/2 command to FSP;       683           a. send 0x44 PS/2 command to FSP;
684                                                   684 
685           b. send the swapped page address to     685           b. send the swapped page address to FSP and goto step 9;
686                                                   686 
687         7. send 0x33 PS/2 command to FSP;         687         7. send 0x33 PS/2 command to FSP;
688                                                   688 
689         8. send the page address to FSP;          689         8. send the page address to FSP;
690                                                   690 
691         9. the page register writing sequence     691         9. the page register writing sequence is completed.
692                                                   692 
693 Gesture ID                                        693 Gesture ID
694 ==========                                        694 ==========
695                                                   695 
696 Unlike other devices which sends multiple fing    696 Unlike other devices which sends multiple fingers' coordinates to host,
697 FSP processes multiple fingers' coordinates in    697 FSP processes multiple fingers' coordinates internally and convert them
698 into a 8 bits integer, namely 'Gesture ID.'  F    698 into a 8 bits integer, namely 'Gesture ID.'  Following is a list of
699 supported gesture IDs:                            699 supported gesture IDs:
700                                                   700 
701         ======= ==============================    701         ======= ==================================
702         ID      Description                       702         ID      Description
703         ======= ==============================    703         ======= ==================================
704         0x86    2 finger straight up              704         0x86    2 finger straight up
705         0x82    2 finger straight down            705         0x82    2 finger straight down
706         0x80    2 finger straight right           706         0x80    2 finger straight right
707         0x84    2 finger straight left            707         0x84    2 finger straight left
708         0x8f    2 finger zoom in                  708         0x8f    2 finger zoom in
709         0x8b    2 finger zoom out                 709         0x8b    2 finger zoom out
710         0xc0    2 finger curve, counter clockw    710         0xc0    2 finger curve, counter clockwise
711         0xc4    2 finger curve, clockwise         711         0xc4    2 finger curve, clockwise
712         0x2e    3 finger straight up              712         0x2e    3 finger straight up
713         0x2a    3 finger straight down            713         0x2a    3 finger straight down
714         0x28    3 finger straight right           714         0x28    3 finger straight right
715         0x2c    3 finger straight left            715         0x2c    3 finger straight left
716         0x38    palm                              716         0x38    palm
717         ======= ==============================    717         ======= ==================================
718                                                   718 
719 Register Listing                                  719 Register Listing
720 ================                                  720 ================
721                                                   721 
722 Registers are represented in 16 bits values. T    722 Registers are represented in 16 bits values. The higher 8 bits represent
723 the page address and the lower 8 bits represen    723 the page address and the lower 8 bits represent the relative offset within
724 that particular page.  Refer to the 'Programmi    724 that particular page.  Refer to the 'Programming Sequence for Page Register
725 Reading/Writing' section for instructions on h    725 Reading/Writing' section for instructions on how to change current page
726 address::                                         726 address::
727                                                   727 
728  offset width           default r/w     name      728  offset width           default r/w     name
729  0x8200 bit7~bit0       0x01    RO      device    729  0x8200 bit7~bit0       0x01    RO      device ID
730                                                   730 
731  0x8201 bit7~bit0               RW      versio    731  0x8201 bit7~bit0               RW      version ID
732                                         0xc1:     732                                         0xc1: STL3888 Ax
733                                         0xd0 ~    733                                         0xd0 ~ 0xd2: STL3888 Bx
734                                         0xe0 ~    734                                         0xe0 ~ 0xe1: STL3888 Cx
735                                         0xe2 ~    735                                         0xe2 ~ 0xe3: STL3888 Dx
736                                                   736 
737  0x8202 bit7~bit0       0x01    RO      vendor    737  0x8202 bit7~bit0       0x01    RO      vendor ID
738                                                   738 
739  0x8203 bit7~bit0       0x01    RO      produc    739  0x8203 bit7~bit0       0x01    RO      product ID
740                                                   740 
741  0x8204 bit3~bit0       0x01    RW      revisi    741  0x8204 bit3~bit0       0x01    RW      revision ID
742                                                   742 
743  0x820b                                 test m    743  0x820b                                 test mode status 1
744         bit3            1       RO      0: rot    744         bit3            1       RO      0: rotate 180 degree
745                                         1: no     745                                         1: no rotation
746                                         *only     746                                         *only supported by H/W prior to Cx
747                                                   747 
748  0x820f                                 regist    748  0x820f                                 register file page control
749         bit2            0       RW      1: rot    749         bit2            0       RW      1: rotate 180 degree
750                                         0: no     750                                         0: no rotation
751                                         *suppo    751                                         *supported since Cx
752                                                   752 
753         bit0            0       RW      1 to e    753         bit0            0       RW      1 to enable page 1 register files
754                                         *only     754                                         *only supported by H/W prior to Cx
755                                                   755 
756  0x8210                         RW      system    756  0x8210                         RW      system control 1
757         bit0            1       RW      Reserv    757         bit0            1       RW      Reserved, must be 1
758         bit1            0       RW      Reserv    758         bit1            0       RW      Reserved, must be 0
759         bit4            0       RW      Reserv    759         bit4            0       RW      Reserved, must be 0
760         bit5            1       RW      regist    760         bit5            1       RW      register clock gating enable
761                                         0: rea    761                                         0: read only, 1: read/write enable
762         (Note that following registers does no    762         (Note that following registers does not require clock gating being
763         enabled prior to write: 05 06 07 08 09    763         enabled prior to write: 05 06 07 08 09 0c 0f 10 11 12 16 17 18 23 2e
764         40 41 42 43.  In addition to that, thi    764         40 41 42 43.  In addition to that, this bit must be 1 when gesture
765         mode is enabled)                          765         mode is enabled)
766                                                   766 
767  0x8220                                 test m    767  0x8220                                 test mode status
768         bit5~bit4               RO      number    768         bit5~bit4               RO      number of buttons
769                                         11 =>     769                                         11 => 2, lbtn/rbtn
770                                         10 =>     770                                         10 => 4, lbtn/rbtn/scru/scrd
771                                         01 =>     771                                         01 => 6, lbtn/rbtn/scru/scrd/scrl/scrr
772                                         00 =>     772                                         00 => 6, lbtn/rbtn/scru/scrd/fbtn/bbtn
773                                         *only     773                                         *only supported by H/W prior to Cx
774                                                   774 
775  0x8231                         RW      on-pad    775  0x8231                         RW      on-pad command detection
776         bit7            0       RW      on-pad    776         bit7            0       RW      on-pad command left button down tag
777                                         enable    777                                         enable
778                                         0: dis    778                                         0: disable, 1: enable
779                                         *only     779                                         *only supported by H/W prior to Cx
780                                                   780 
781  0x8234                         RW      on-pad    781  0x8234                         RW      on-pad command control 5
782         bit4~bit0       0x05    RW      XLO in    782         bit4~bit0       0x05    RW      XLO in 0s/4/1, so 03h = 0010.1b = 2.5
783         (Note that position unit is in 0.5 sca    783         (Note that position unit is in 0.5 scanline)
784                                         *only     784                                         *only supported by H/W prior to Cx
785                                                   785 
786         bit7            0       RW      on-pad    786         bit7            0       RW      on-pad tap zone enable
787                                         0: dis    787                                         0: disable, 1: enable
788                                         *only     788                                         *only supported by H/W prior to Cx
789                                                   789 
790  0x8235                         RW      on-pad    790  0x8235                         RW      on-pad command control 6
791         bit4~bit0       0x1d    RW      XHI in    791         bit4~bit0       0x1d    RW      XHI in 0s/4/1, so 19h = 1100.1b = 12.5
792         (Note that position unit is in 0.5 sca    792         (Note that position unit is in 0.5 scanline)
793                                         *only     793                                         *only supported by H/W prior to Cx
794                                                   794 
795  0x8236                         RW      on-pad    795  0x8236                         RW      on-pad command control 7
796         bit4~bit0       0x04    RW      YLO in    796         bit4~bit0       0x04    RW      YLO in 0s/4/1, so 03h = 0010.1b = 2.5
797         (Note that position unit is in 0.5 sca    797         (Note that position unit is in 0.5 scanline)
798                                         *only     798                                         *only supported by H/W prior to Cx
799                                                   799 
800  0x8237                         RW      on-pad    800  0x8237                         RW      on-pad command control 8
801         bit4~bit0       0x13    RW      YHI in    801         bit4~bit0       0x13    RW      YHI in 0s/4/1, so 11h = 1000.1b = 8.5
802         (Note that position unit is in 0.5 sca    802         (Note that position unit is in 0.5 scanline)
803                                         *only     803                                         *only supported by H/W prior to Cx
804                                                   804 
805  0x8240                         RW      system    805  0x8240                         RW      system control 5
806         bit1            0       RW      FSP In    806         bit1            0       RW      FSP Intellimouse mode enable
807                                         0: dis    807                                         0: disable, 1: enable
808                                         *only     808                                         *only supported by H/W prior to Cx
809                                                   809 
810         bit2            0       RW      moveme    810         bit2            0       RW      movement + abs. coordinate mode enable
811                                         0: dis    811                                         0: disable, 1: enable
812         (Note that this function has the funct    812         (Note that this function has the functionality of bit 1 even when
813         bit 1 is not set. However, the format     813         bit 1 is not set. However, the format is different from that of bit 1.
814         In addition, when bit 1 and bit 2 are     814         In addition, when bit 1 and bit 2 are set at the same time, bit 2 will
815         override bit 1.)                          815         override bit 1.)
816                                         *only     816                                         *only supported by H/W prior to Cx
817                                                   817 
818         bit3            0       RW      abs. c    818         bit3            0       RW      abs. coordinate only mode enable
819                                         0: dis    819                                         0: disable, 1: enable
820         (Note that this function has the funct    820         (Note that this function has the functionality of bit 1 even when
821         bit 1 is not set. However, the format     821         bit 1 is not set. However, the format is different from that of bit 1.
822         In addition, when bit 1, bit 2 and bit    822         In addition, when bit 1, bit 2 and bit 3 are set at the same time,
823         bit 3 will override bit 1 and 2.)         823         bit 3 will override bit 1 and 2.)
824                                         *only     824                                         *only supported by H/W prior to Cx
825                                                   825 
826         bit5            0       RW      auto s    826         bit5            0       RW      auto switch enable
827                                         0: dis    827                                         0: disable, 1: enable
828                                         *only     828                                         *only supported by H/W prior to Cx
829                                                   829 
830         bit6            0       RW      G0 abs    830         bit6            0       RW      G0 abs. + notify packet format enable
831                                         0: dis    831                                         0: disable, 1: enable
832         (Note that the absolute/relative coord    832         (Note that the absolute/relative coordinate output still depends on
833         bit 2 and 3.  That is, if any of those    833         bit 2 and 3.  That is, if any of those bit is 1, host will receive
834         absolute coordinates; otherwise, host     834         absolute coordinates; otherwise, host only receives packets with
835         relative coordinate.)                     835         relative coordinate.)
836                                         *only     836                                         *only supported by H/W prior to Cx
837                                                   837 
838         bit7            0       RW      EN_PS2    838         bit7            0       RW      EN_PS2_F2: PS/2 gesture mode 2nd
839                                         finger    839                                         finger packet enable
840                                         0: dis    840                                         0: disable, 1: enable
841                                         *only     841                                         *only supported by H/W prior to Cx
842                                                   842 
843  0x8243                         RW      on-pad    843  0x8243                         RW      on-pad control
844         bit0            0       RW      on-pad    844         bit0            0       RW      on-pad control enable
845                                         0: dis    845                                         0: disable, 1: enable
846         (Note that if this bit is cleared, bit    846         (Note that if this bit is cleared, bit 3/5 will be ineffective)
847                                         *only     847                                         *only supported by H/W prior to Cx
848                                                   848 
849         bit3            0       RW      on-pad    849         bit3            0       RW      on-pad fix vertical scrolling enable
850                                         0: dis    850                                         0: disable, 1: enable
851                                         *only     851                                         *only supported by H/W prior to Cx
852                                                   852 
853         bit5            0       RW      on-pad    853         bit5            0       RW      on-pad fix horizontal scrolling enable
854                                         0: dis    854                                         0: disable, 1: enable
855                                         *only     855                                         *only supported by H/W prior to Cx
856                                                   856 
857  0x8290                         RW      softwa    857  0x8290                         RW      software control register 1
858         bit0            0       RW      absolu    858         bit0            0       RW      absolute coordination mode
859                                         0: dis    859                                         0: disable, 1: enable
860                                         *suppo    860                                         *supported since Cx
861                                                   861 
862         bit1            0       RW      gestur    862         bit1            0       RW      gesture ID output
863                                         0: dis    863                                         0: disable, 1: enable
864                                         *suppo    864                                         *supported since Cx
865                                                   865 
866         bit2            0       RW      two fi    866         bit2            0       RW      two fingers' coordinates output
867                                         0: dis    867                                         0: disable, 1: enable
868                                         *suppo    868                                         *supported since Cx
869                                                   869 
870         bit3            0       RW      finger    870         bit3            0       RW      finger up one packet output
871                                         0: dis    871                                         0: disable, 1: enable
872                                         *suppo    872                                         *supported since Cx
873                                                   873 
874         bit4            0       RW      absolu    874         bit4            0       RW      absolute coordination continuous mode
875                                         0: dis    875                                         0: disable, 1: enable
876                                         *suppo    876                                         *supported since Cx
877                                                   877 
878         bit6~bit5       00      RW      gestur    878         bit6~bit5       00      RW      gesture group selection
879                                         00: ba    879                                         00: basic
880                                         01: su    880                                         01: suite
881                                         10: su    881                                         10: suite pro
882                                         11: ad    882                                         11: advanced
883                                         *suppo    883                                         *supported since Cx
884                                                   884 
885         bit7            0       RW      Bx pac    885         bit7            0       RW      Bx packet output compatible mode
886                                         0: dis    886                                         0: disable, 1: enable
887                                         *suppo    887                                         *supported since Cx
888                                         *suppo    888                                         *supported since Cx
889                                                   889 
890                                                   890 
891  0x833d                         RW      on-pad    891  0x833d                         RW      on-pad command control 1
892         bit7            1       RW      on-pad    892         bit7            1       RW      on-pad command detection enable
893                                         0: dis    893                                         0: disable, 1: enable
894                                         *suppo    894                                         *supported since Cx
895                                                   895 
896  0x833e                         RW      on-pad    896  0x833e                         RW      on-pad command detection
897         bit7            0       RW      on-pad    897         bit7            0       RW      on-pad command left button down tag
898                                         enable    898                                         enable. Works only in H/W based PS/2
899                                         data p    899                                         data packet mode.
900                                         0: dis    900                                         0: disable, 1: enable
901                                         *suppo    901                                         *supported since Cx
                                                      

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php