Root/Documentation/input/sentelic.txt

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

Archive Download this file



interactive