Lines Matching +full:1 +full:- +full:4
4 Copyright (C) 2007-2008 Arjan Opmeer <arjan@opmeer.net>
6 Extra information for hardware version 1 found and
15 1. Introduction
18 4. Hardware version 1
20 4.2 Native relative mode 4 byte packet format
21 4.3 Native absolute mode 4 byte packet format
25 5.2.1 Parity checking and packet re-synchronization
31 6.2.1 One/Three finger touch
33 7. Hardware version 4
36 7.2.1 Status packet
39 8. Trackpoint (for Hardware version 3 and 4)
42 8.2.1 Status Packet
50 hardware versions unimaginatively called version 1,version 2, version 3
51 and version 4. Version 1 is found in "older" laptops and uses 4 bytes per
56 of up to 3 fingers. Hardware version 4 uses 6 bytes per packet, and can
58 4 allows tracking up to 5 fingers.
60 Some Hardware version 3 and version 4 also have a trackpoint which uses a
76 Currently only the registers for hardware version 1 are somewhat understood.
101 Currently a value of "1" will turn on some basic debugging and a value of
102 "2" will turn on packet debugging. For hardware version 1 the default is
103 OFF. For version 2 the default is "1".
114 non-zero value will turn it ON. For hardware version 1 the default is ON.
117 Hardware version 1 provides basic data integrity verification by
128 Sets crc_enabled to 0/1. The name "crc_enabled" is the official name of
133 verification is done by the driver on hardware version 3 and 4. The
138 "0" or "1" to this file will set the state to "0" or "1".
143 To detect the hardware version, read the version number as param[0].param[1].param[2]::
145 4 bytes version: (after the arrow is the name given in the Dell-provided driver)
165 4 bytes/firmware 1. The versions < 02.08.00, with the exception of 02.00.30, as
166 4 bytes/firmware 2. Everything >= 02.08.00 can be considered as 6 bytes.
169 Hardware version 1
173 ---------
179 echo -n 0x16 > reg_10
183 bit 7 6 5 4 3 2 1 0
186 E: 1 = enable smart edges unconditionally
187 S: 1 = enable smart edges only when dragging
188 A: 1 = absolute mode (needs 4 byte packets, see reg_11)
189 L: 1 = enable drag lock (see reg_22)
190 D: 1 = disable dynamic resolution
191 T: 1 = disable tapping
192 C: 1 = enable corner tap
193 B: 1 = swap left and right button
197 bit 7 6 5 4 3 2 1 0
198 1 0 0 H V 1 F P
200 P: 1 = enable parity checking for relative mode
201 F: 1 = enable native 4 byte packet mode
202 V: 1 = enable vertical scroll area
203 H: 1 = enable horizontal scroll area
235 Native relative mode 4 byte packet format
236 -----------------------------------------
240 bit 7 6 5 4 3 2 1 0
241 c c p2 p1 1 M R L
243 L, R, M = 1 when Left, Right, Middle mouse button pressed
245 when parity checking is enabled (reg_11, P = 1):
246 p1..p2 = byte 1 and 2 odd parity bit
247 c = 1 when corner tap detected
249 byte 1::
251 bit 7 6 5 4 3 2 1 0
255 byte 1 = 0xf0 when corner tap detected
259 bit 7 6 5 4 3 2 1 0
266 parity checking enabled (reg_11, P = 1):
268 bit 7 6 5 4 3 2 1 0
276 ds0 = 1 when top right corner tapped
277 ds1 = 1 when bottom right corner tapped
278 ds2 = 1 when bottom left corner tapped
279 ds3 = 1 when top left corner tapped
282 firmware 1.x seem to map one, two and three finger taps
284 h = 1 when horizontal scroll action
285 w = 1 when wide finger touch?
289 bit 7 6 5 4 3 2 1 0
297 Native absolute mode 4 byte packet format
298 -----------------------------------------
301 when 1 finger is touching, the first 2 position reports must be discarded.
306 firmware version 1.x:
308 bit 7 6 5 4 3 2 1 0
309 D U p1 p2 1 p3 R L
311 L, R = 1 when Left, Right mouse button pressed
312 p1..p3 = byte 1..3 odd parity bit
313 D, U = 1 when rocker switch pressed Up, Down
317 bit 7 6 5 4 3 2 1 0
318 n1 n0 p2 p1 1 p3 R L
320 L, R = 1 when Left, Right mouse button pressed
321 p1..p3 = byte 1..3 odd parity bit
324 byte 1::
326 firmware version 1.x:
328 bit 7 6 5 4 3 2 1 0
331 tw = 1 when two finger touch
332 th = 1 when three finger touch
333 f = 1 when finger touch
337 bit 7 6 5 4 3 2 1 0
342 bit 7 6 5 4 3 2 1 0
349 bit 7 6 5 4 3 2 1 0
360 ---------
366 echo -n 0x56 > reg_10
370 bit 7 6 5 4 3 2 1 0
371 0 1 0 1 0 1 D 0
373 D: 1 = enable drag and drop
377 bit 7 6 5 4 3 2 1 0
378 1 0 0 0 S 0 1 0
380 S: 1 = enable vertical scroll
393 -----------------------------------------
395 Parity checking and packet re-synchronization
403 A1 = packet[1];
406 C1 = packet[4];
408 if( (((SA1 & 0x3C) != 0x3C) && ((SA1 & 0xC0) != 0x80)) || // check Byte 1
409 … (((SA1 & 0x0C) != 0x0C) && ((SA1 & 0xC0) == 0x80)) || // check Byte 1 (one finger pressed)
411 (((SB1 & 0x3E) != 0x38) && ((SA1 & 0xC0) != 0x80)) || // check Byte 4
412 … (((SB1 & 0x0E) != 0x08) && ((SA1 & 0xC0) == 0x80)) || // check Byte 4 (one finger pressed)
430 bit 7 6 5 4 3 2 1 0
433 L, R = 1 when Left, Right mouse button pressed
436 byte 1::
438 bit 7 6 5 4 3 2 1 0
443 bit 7 6 5 4 3 2 1 0
450 bit 7 6 5 4 3 2 1 0
455 of the buttons, 1 otherwise)
459 1 = Left
462 4 = Forward
467 byte 4::
469 bit 7 6 5 4 3 2 1 0
476 bit 7 6 5 4 3 2 1 0
486 two fingers, but only the pair of the lower-left and upper-right coordinates.
492 bit 7 6 5 4 3 2 1 0
495 L, R = 1 when Left, Right mouse button pressed
498 byte 1::
500 bit 7 6 5 4 3 2 1 0
503 ax8..ax0 = lower-left finger absolute x value
507 bit 7 6 5 4 3 2 1 0
510 ay8..ay0 = lower-left finger absolute y value
514 bit 7 6 5 4 3 2 1 0
517 byte 4::
519 bit 7 6 5 4 3 2 1 0
522 bx8..bx0 = upper-right finger absolute x value
526 bit 7 6 5 4 3 2 1 0
529 by8..by0 = upper-right finger absolute y value
535 ---------
539 bit 7 6 5 4 3 2 1 0
542 A: 1 = enable absolute tracking
543 T: 1 = enable two finger mode auto correct
544 F: 1 = disable ABS Position Filter
545 R: 1 = enable real hardware resolution
548 -----------------------------------------
550 1 and 3 finger touch shares the same 6-byte packet format, except that
562 byte 1: 0xff
565 byte 4: 0xff
575 bit 7 6 5 4 3 2 1 0
576 n1 n0 w3 w2 0 1 R L
578 L, R = 1 when Left, Right mouse button pressed
581 byte 1::
583 bit 7 6 5 4 3 2 1 0
588 bit 7 6 5 4 3 2 1 0
595 bit 7 6 5 4 3 2 1 0
596 0 0 w1 w0 0 0 1 0
600 byte 4::
602 bit 7 6 5 4 3 2 1 0
609 bit 7 6 5 4 3 2 1 0
622 Hardware version 4
626 ---------
630 bit 7 6 5 4 3 2 1 0
633 A: 1 = enable absolute tracking
636 -----------------------------------------
661 bit 7 6 5 4 3 2 1 0
662 . . . . 0 1 R L
664 L, R = 1 when Left, Right mouse button pressed
666 byte 1::
668 bit 7 6 5 4 3 2 1 0
671 ft4 ft3 ft2 ft1 ft0 ftn = 1 when finger n is on touchpad
679 bit 7 6 5 4 3 2 1 0
680 . . . 1 0 0 0 0
684 byte 4::
686 bit 7 6 5 4 3 2 1 0
689 p = 1 for palm
700 bit 7 6 5 4 3 2 1 0
701 w3 w2 w1 w0 0 1 R L
703 L, R = 1 when Left, Right mouse button pressed
706 byte 1::
708 bit 7 6 5 4 3 2 1 0
713 bit 7 6 5 4 3 2 1 0
720 bit 7 6 5 4 3 2 1 0
721 id2 id1 id0 1 0 0 0 1
725 byte 4::
727 bit 7 6 5 4 3 2 1 0
734 bit 7 6 5 4 3 2 1 0
744 bit 7 6 5 4 3 2 1 0
745 id2 id1 id0 w 0 1 R L
747 L, R = 1 when Left, Right mouse button pressed
749 w = 1 when delta overflows (> 127 or < -128), in this case
752 byte 1::
754 bit 7 6 5 4 3 2 1 0
761 bit 7 6 5 4 3 2 1 0
768 bit 7 6 5 4 3 2 1 0
769 id2 id1 id0 1 0 0 1 0
773 byte 4::
775 bit 7 6 5 4 3 2 1 0
782 bit 7 6 5 4 3 2 1 0
791 Trackpoint (for Hardware version 3 and 4)
795 ---------
800 -----------------------------------------
807 bit 7 6 5 4 3 2 1 0
810 byte 1::
812 bit 7 6 5 4 3 2 1 0
817 bit 7 6 5 4 3 2 1 0
822 bit 7 6 5 4 3 2 1 0
823 0 0 ~sy ~sx 0 1 1 0
825 byte 4::
827 bit 7 6 5 4 3 2 1 0
832 bit 7 6 5 4 3 2 1 0