Loading Documentation/input/sentelic.txt +110 −14 Original line number Diff line number Diff line Copyright (C) 2002-2008 Sentelic Corporation. Last update: Oct-31-2008 Copyright (C) 2002-2010 Sentelic Corporation. Last update: Jan-13-2010 ============================================================================== * Finger Sensing Pad Intellimouse Mode(scrolling wheel, 4th and 5th buttons) Loading Loading @@ -44,7 +44,7 @@ B) MSID 6: Horizontal and Vertical scrolling. Packet 1 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 BYTE |---------------|BYTE |---------------|BYTE|---------------|BYTE|---------------| 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|l|r|u|d| 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| |---------------| |---------------| |---------------| |---------------| Byte 1: Bit7 => Y overflow Loading @@ -59,15 +59,15 @@ Byte 2: X Movement(9-bit 2's complement integers) Byte 3: Y Movement(9-bit 2's complement integers) Byte 4: Bit0 => the Vertical scrolling movement downward. Bit1 => the Vertical scrolling movement upward. Bit2 => the Vertical scrolling movement rightward. Bit3 => the Vertical scrolling movement leftward. Bit2 => the Horizontal scrolling movement leftward. Bit3 => the Horizontal scrolling movement rightward. Bit4 => 1 = 4th mouse button is pressed, Forward one page. 0 = 4th mouse button is not pressed. Bit5 => 1 = 5th mouse button is pressed, Backward one page. 0 = 5th mouse button is not pressed. C) MSID 7: # FSP uses 2 packets(8 Bytes) data to represent Absolute Position # FSP uses 2 packets (8 Bytes) to represent Absolute Position. so we have PACKET NUMBER to identify packets. If PACKET NUMBER is 0, the packet is Packet 1. If PACKET NUMBER is 1, the packet is Packet 2. Loading Loading @@ -129,7 +129,7 @@ Byte 3: Message Type => 0x00 (Disabled) Byte 4: Bit7~Bit0 => Don't Care ============================================================================== * Absolute position for STL3888-A0. * Absolute position for STL3888-Ax. ============================================================================== Packet 1 (ABSOLUTE POSITION) 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 Loading Loading @@ -179,14 +179,14 @@ Byte 4: Bit1~Bit0 => Y coordinate (xpos[1:0]) Bit5~Bit4 => y2_g Bit7~Bit6 => x2_g Notify Packet for STL3888-A0 Notify Packet for STL3888-Ax 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 BYTE |---------------|BYTE |---------------|BYTE|---------------|BYTE|---------------| 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| |---------------| |---------------| |---------------| |---------------| Byte 1: Bit7~Bit6 => 00, Normal data packet => 01, Absolute coordination packet => 01, Absolute coordinates packet => 10, Notify packet Bit5 => 1 Bit4 => when in absolute coordinates mode (valid when EN_PKT_GO is 1): Loading @@ -205,6 +205,97 @@ Byte 4: Bit7 => scroll right button Bit6 => scroll left button Bit5 => scroll down button Bit4 => scroll up button * Note that if gesture and additional buttoni (Bit4~Bit7) happen at the same time, the button information will not be sent. Bit3~Bit0 => Reserved Sample sequence of Multi-finger, Multi-coordinate mode: notify packet (valid bit == 1), abs pkt 1, abs pkt 2, abs pkt 1, abs pkt 2, ..., notify packet (valid bit == 0) ============================================================================== * Absolute position for STL3888-B0. ============================================================================== Packet 1(ABSOLUTE POSITION) 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 BYTE |---------------|BYTE |---------------|BYTE|---------------|BYTE|---------------| 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| |---------------| |---------------| |---------------| |---------------| Byte 1: Bit7~Bit6 => 00, Normal data packet => 01, Absolute coordinates packet => 10, Notify packet Bit5 => Valid bit, 0 means that the coordinate is invalid or finger up. When both fingers are up, the last two reports have zero valid bit. Bit4 => finger up/down information. 1: finger down, 0: finger up. Bit3 => 1 Bit2 => finger index, 0 is the first finger, 1 is the second finger. Bit1 => Right Button, 1 is pressed, 0 is not pressed. Bit0 => Left Button, 1 is pressed, 0 is not pressed. Byte 2: X coordinate (xpos[9:2]) Byte 3: Y coordinate (ypos[9:2]) Byte 4: Bit1~Bit0 => Y coordinate (xpos[1:0]) Bit3~Bit2 => X coordinate (ypos[1:0]) Bit4 => scroll down button Bit5 => scroll up button Bit6 => scroll left button Bit7 => scroll right button Packet 2 (ABSOLUTE POSITION) 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 BYTE |---------------|BYTE |---------------|BYTE|---------------|BYTE|---------------| 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| |---------------| |---------------| |---------------| |---------------| Byte 1: Bit7~Bit6 => 00, Normal data packet => 01, Absolute coordination packet => 10, Notify packet Bit5 => Valid bit, 0 means that the coordinate is invalid or finger up. When both fingers are up, the last two reports have zero valid bit. Bit4 => finger up/down information. 1: finger down, 0: finger up. Bit3 => 1 Bit2 => finger index, 0 is the first finger, 1 is the second finger. Bit1 => Right Button, 1 is pressed, 0 is not pressed. Bit0 => Left Button, 1 is pressed, 0 is not pressed. Byte 2: X coordinate (xpos[9:2]) Byte 3: Y coordinate (ypos[9:2]) Byte 4: Bit1~Bit0 => Y coordinate (xpos[1:0]) Bit3~Bit2 => X coordinate (ypos[1:0]) Bit4 => scroll down button Bit5 => scroll up button Bit6 => scroll left button Bit7 => scroll right button Notify Packet for STL3888-B0 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 BYTE |---------------|BYTE |---------------|BYTE|---------------|BYTE|---------------| 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| |---------------| |---------------| |---------------| |---------------| Byte 1: Bit7~Bit6 => 00, Normal data packet => 01, Absolute coordination packet => 10, Notify packet Bit5 => 1 Bit4 => when in absolute coordinate mode (valid when EN_PKT_GO is 1): 0: left button is generated by the on-pad command 1: left button is generated by the external button Bit3 => 1 Bit2 => Middle Button, 1 is pressed, 0 is not pressed. Bit1 => Right Button, 1 is pressed, 0 is not pressed. Bit0 => Left Button, 1 is pressed, 0 is not pressed. Byte 2: Message Type => 0xB7 (Multi Finger, Multi Coordinate mode) Byte 3: Bit7~Bit6 => Don't care Bit5~Bit4 => Number of fingers Bit3~Bit1 => Reserved Bit0 => 1: enter gesture mode; 0: leaving gesture mode Byte 4: Bit7 => scroll right button Bit6 => scroll left button Bit5 => scroll up button Bit4 => scroll down button * Note that if gesture and additional button(Bit4~Bit7) happen at the same time, the button information will not be sent. Loading Loading @@ -409,7 +500,8 @@ offset width default r/w name 0: read only, 1: read/write enable (Note that following registers does not require clock gating being enabled prior to write: 05 06 07 08 09 0c 0f 10 11 12 16 17 18 23 2e 40 41 42 43.) 40 41 42 43. In addition to that, this bit must be 1 when gesture mode is enabled) 0x31 RW on-pad command detection bit7 0 RW on-pad command left button down tag Loading Loading @@ -463,6 +555,10 @@ offset width default r/w name absolute coordinates; otherwise, host only receives packets with relative coordinate.) bit7 0 RW EN_PS2_F2: PS/2 gesture mode 2nd finger packet enable 0: disable, 1: enable 0x43 RW on-pad control bit0 0 RW on-pad control enable 0: disable, 1: enable Loading Loading
Documentation/input/sentelic.txt +110 −14 Original line number Diff line number Diff line Copyright (C) 2002-2008 Sentelic Corporation. Last update: Oct-31-2008 Copyright (C) 2002-2010 Sentelic Corporation. Last update: Jan-13-2010 ============================================================================== * Finger Sensing Pad Intellimouse Mode(scrolling wheel, 4th and 5th buttons) Loading Loading @@ -44,7 +44,7 @@ B) MSID 6: Horizontal and Vertical scrolling. Packet 1 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 BYTE |---------------|BYTE |---------------|BYTE|---------------|BYTE|---------------| 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|l|r|u|d| 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| |---------------| |---------------| |---------------| |---------------| Byte 1: Bit7 => Y overflow Loading @@ -59,15 +59,15 @@ Byte 2: X Movement(9-bit 2's complement integers) Byte 3: Y Movement(9-bit 2's complement integers) Byte 4: Bit0 => the Vertical scrolling movement downward. Bit1 => the Vertical scrolling movement upward. Bit2 => the Vertical scrolling movement rightward. Bit3 => the Vertical scrolling movement leftward. Bit2 => the Horizontal scrolling movement leftward. Bit3 => the Horizontal scrolling movement rightward. Bit4 => 1 = 4th mouse button is pressed, Forward one page. 0 = 4th mouse button is not pressed. Bit5 => 1 = 5th mouse button is pressed, Backward one page. 0 = 5th mouse button is not pressed. C) MSID 7: # FSP uses 2 packets(8 Bytes) data to represent Absolute Position # FSP uses 2 packets (8 Bytes) to represent Absolute Position. so we have PACKET NUMBER to identify packets. If PACKET NUMBER is 0, the packet is Packet 1. If PACKET NUMBER is 1, the packet is Packet 2. Loading Loading @@ -129,7 +129,7 @@ Byte 3: Message Type => 0x00 (Disabled) Byte 4: Bit7~Bit0 => Don't Care ============================================================================== * Absolute position for STL3888-A0. * Absolute position for STL3888-Ax. ============================================================================== Packet 1 (ABSOLUTE POSITION) 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 Loading Loading @@ -179,14 +179,14 @@ Byte 4: Bit1~Bit0 => Y coordinate (xpos[1:0]) Bit5~Bit4 => y2_g Bit7~Bit6 => x2_g Notify Packet for STL3888-A0 Notify Packet for STL3888-Ax 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 BYTE |---------------|BYTE |---------------|BYTE|---------------|BYTE|---------------| 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| |---------------| |---------------| |---------------| |---------------| Byte 1: Bit7~Bit6 => 00, Normal data packet => 01, Absolute coordination packet => 01, Absolute coordinates packet => 10, Notify packet Bit5 => 1 Bit4 => when in absolute coordinates mode (valid when EN_PKT_GO is 1): Loading @@ -205,6 +205,97 @@ Byte 4: Bit7 => scroll right button Bit6 => scroll left button Bit5 => scroll down button Bit4 => scroll up button * Note that if gesture and additional buttoni (Bit4~Bit7) happen at the same time, the button information will not be sent. Bit3~Bit0 => Reserved Sample sequence of Multi-finger, Multi-coordinate mode: notify packet (valid bit == 1), abs pkt 1, abs pkt 2, abs pkt 1, abs pkt 2, ..., notify packet (valid bit == 0) ============================================================================== * Absolute position for STL3888-B0. ============================================================================== Packet 1(ABSOLUTE POSITION) 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 BYTE |---------------|BYTE |---------------|BYTE|---------------|BYTE|---------------| 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| |---------------| |---------------| |---------------| |---------------| Byte 1: Bit7~Bit6 => 00, Normal data packet => 01, Absolute coordinates packet => 10, Notify packet Bit5 => Valid bit, 0 means that the coordinate is invalid or finger up. When both fingers are up, the last two reports have zero valid bit. Bit4 => finger up/down information. 1: finger down, 0: finger up. Bit3 => 1 Bit2 => finger index, 0 is the first finger, 1 is the second finger. Bit1 => Right Button, 1 is pressed, 0 is not pressed. Bit0 => Left Button, 1 is pressed, 0 is not pressed. Byte 2: X coordinate (xpos[9:2]) Byte 3: Y coordinate (ypos[9:2]) Byte 4: Bit1~Bit0 => Y coordinate (xpos[1:0]) Bit3~Bit2 => X coordinate (ypos[1:0]) Bit4 => scroll down button Bit5 => scroll up button Bit6 => scroll left button Bit7 => scroll right button Packet 2 (ABSOLUTE POSITION) 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 BYTE |---------------|BYTE |---------------|BYTE|---------------|BYTE|---------------| 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| |---------------| |---------------| |---------------| |---------------| Byte 1: Bit7~Bit6 => 00, Normal data packet => 01, Absolute coordination packet => 10, Notify packet Bit5 => Valid bit, 0 means that the coordinate is invalid or finger up. When both fingers are up, the last two reports have zero valid bit. Bit4 => finger up/down information. 1: finger down, 0: finger up. Bit3 => 1 Bit2 => finger index, 0 is the first finger, 1 is the second finger. Bit1 => Right Button, 1 is pressed, 0 is not pressed. Bit0 => Left Button, 1 is pressed, 0 is not pressed. Byte 2: X coordinate (xpos[9:2]) Byte 3: Y coordinate (ypos[9:2]) Byte 4: Bit1~Bit0 => Y coordinate (xpos[1:0]) Bit3~Bit2 => X coordinate (ypos[1:0]) Bit4 => scroll down button Bit5 => scroll up button Bit6 => scroll left button Bit7 => scroll right button Notify Packet for STL3888-B0 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 BYTE |---------------|BYTE |---------------|BYTE|---------------|BYTE|---------------| 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| |---------------| |---------------| |---------------| |---------------| Byte 1: Bit7~Bit6 => 00, Normal data packet => 01, Absolute coordination packet => 10, Notify packet Bit5 => 1 Bit4 => when in absolute coordinate mode (valid when EN_PKT_GO is 1): 0: left button is generated by the on-pad command 1: left button is generated by the external button Bit3 => 1 Bit2 => Middle Button, 1 is pressed, 0 is not pressed. Bit1 => Right Button, 1 is pressed, 0 is not pressed. Bit0 => Left Button, 1 is pressed, 0 is not pressed. Byte 2: Message Type => 0xB7 (Multi Finger, Multi Coordinate mode) Byte 3: Bit7~Bit6 => Don't care Bit5~Bit4 => Number of fingers Bit3~Bit1 => Reserved Bit0 => 1: enter gesture mode; 0: leaving gesture mode Byte 4: Bit7 => scroll right button Bit6 => scroll left button Bit5 => scroll up button Bit4 => scroll down button * Note that if gesture and additional button(Bit4~Bit7) happen at the same time, the button information will not be sent. Loading Loading @@ -409,7 +500,8 @@ offset width default r/w name 0: read only, 1: read/write enable (Note that following registers does not require clock gating being enabled prior to write: 05 06 07 08 09 0c 0f 10 11 12 16 17 18 23 2e 40 41 42 43.) 40 41 42 43. In addition to that, this bit must be 1 when gesture mode is enabled) 0x31 RW on-pad command detection bit7 0 RW on-pad command left button down tag Loading Loading @@ -463,6 +555,10 @@ offset width default r/w name absolute coordinates; otherwise, host only receives packets with relative coordinate.) bit7 0 RW EN_PS2_F2: PS/2 gesture mode 2nd finger packet enable 0: disable, 1: enable 0x43 RW on-pad control bit0 0 RW on-pad control enable 0: disable, 1: enable Loading