Lines Matching +full:3 +full:- +full:byte

4 	Copyright (C) 2007-2008 Arjan Opmeer <arjan@opmeer.net>
17 3. Differentiating hardware versions
20 4.2 Native relative mode 4 byte packet format
21 4.3 Native absolute mode 4 byte packet format
24 5.2 Native absolute mode 6 byte packet format
25 5.2.1 Parity checking and packet re-synchronization
27 5.2.3 Two finger touch
28 6. Hardware version 3
30 6.2 Native absolute mode 6 byte packet format
35 7.2 Native absolute mode 6 byte packet format
38 7.2.3 Motion packet
39 8. Trackpoint (for Hardware version 3 and 4)
41 8.2 Native relative mode 6 byte packet format
50 hardware versions unimaginatively called version 1,version 2, version 3
54 and width of the touch. Hardware version 3 uses 6 bytes per packet (and
56 of up to 3 fingers. Hardware version 4 uses 6 bytes per packet, and can
60 Some Hardware version 3 and version 4 also have a trackpoint which uses a
114 non-zero value will turn it ON. For hardware version 1 the default is ON.
118 calculating a parity bit for the last 3 bytes of each packet. The driver
133 verification is done by the driver on hardware version 3 and 4. The
145 4 bytes version: (after the arrow is the name given in the Dell-provided driver)
173 ---------
179 echo -n 0x16 > reg_10
183 bit 7 6 5 4 3 2 1 0
188 A: 1 = absolute mode (needs 4 byte packets, see reg_11)
197 bit 7 6 5 4 3 2 1 0
201 F: 1 = enable native 4 byte packet mode
235 Native relative mode 4 byte packet format
236 -----------------------------------------
238 byte 0::
240 bit 7 6 5 4 3 2 1 0
244 some models have M as byte 3 odd parity bit
246 p1..p2 = byte 1 and 2 odd parity bit
249 byte 1::
251 bit 7 6 5 4 3 2 1 0
255 byte 1 = 0xf0 when corner tap detected
257 byte 2::
259 bit 7 6 5 4 3 2 1 0
264 byte 3::
268 bit 7 6 5 4 3 2 1 0
289 bit 7 6 5 4 3 2 1 0
297 Native absolute mode 4 byte packet format
298 -----------------------------------------
304 byte 0::
308 bit 7 6 5 4 3 2 1 0
312 p1..p3 = byte 1..3 odd parity bit
317 bit 7 6 5 4 3 2 1 0
321 p1..p3 = byte 1..3 odd parity bit
324 byte 1::
328 bit 7 6 5 4 3 2 1 0
337 bit 7 6 5 4 3 2 1 0
340 byte 2::
342 bit 7 6 5 4 3 2 1 0
347 byte 3::
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
377 bit 7 6 5 4 3 2 1 0
392 Native absolute mode 6 byte packet format
393 -----------------------------------------
395 Parity checking and packet re-synchronization
405 SB1= packet[3];
408 if( (((SA1 & 0x3C) != 0x3C) && ((SA1 & 0xC0) != 0x80)) || // check Byte 1
409 … (((SA1 & 0x0C) != 0x0C) && ((SA1 & 0xC0) == 0x80)) || // check Byte 1 (one finger pressed)
410 (((SA1 & 0xC0) != 0x80) && (( A1 & 0xF0) != 0x00)) || // check Byte 2
411 (((SB1 & 0x3E) != 0x38) && ((SA1 & 0xC0) != 0x80)) || // check Byte 4
412 … (((SB1 & 0x0E) != 0x08) && ((SA1 & 0xC0) == 0x80)) || // check Byte 4 (one finger pressed)
413 (((SA1 & 0xC0) != 0x80) && (( C1 & 0xF0) != 0x00)) ) // check Byte 5
419 ((packet[3] & 0x0f) != 0x02) )
428 byte 0::
430 bit 7 6 5 4 3 2 1 0
436 byte 1::
438 bit 7 6 5 4 3 2 1 0
441 byte 2::
443 bit 7 6 5 4 3 2 1 0
448 byte 3::
450 bit 7 6 5 4 3 2 1 0
453 n4 = set if more than 3 fingers (only in 3 fingers mode)
461 3 = Middle (Left and Right)
467 byte 4::
469 bit 7 6 5 4 3 2 1 0
474 byte 5::
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.
490 byte 0::
492 bit 7 6 5 4 3 2 1 0
498 byte 1::
500 bit 7 6 5 4 3 2 1 0
503 ax8..ax0 = lower-left finger absolute x value
505 byte 2::
507 bit 7 6 5 4 3 2 1 0
510 ay8..ay0 = lower-left finger absolute y value
512 byte 3::
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
524 byte 5::
526 bit 7 6 5 4 3 2 1 0
529 by8..by0 = upper-right finger absolute y value
531 Hardware version 3
535 ---------
539 bit 7 6 5 4 3 2 1 0
547 Native absolute mode 6 byte packet format
548 -----------------------------------------
550 1 and 3 finger touch shares the same 6-byte packet format, except that
551 3 finger touch only reports the position of the center of all three fingers.
561 byte 0: 0xc4
562 byte 1: 0xff
563 byte 2: 0xff
564 byte 3: 0x02
565 byte 4: 0xff
566 byte 5: 0xff
573 byte 0::
575 bit 7 6 5 4 3 2 1 0
581 byte 1::
583 bit 7 6 5 4 3 2 1 0
586 byte 2::
588 bit 7 6 5 4 3 2 1 0
593 byte 3::
595 bit 7 6 5 4 3 2 1 0
600 byte 4::
602 bit 7 6 5 4 3 2 1 0
607 byte 5::
609 bit 7 6 5 4 3 2 1 0
618 sends two 6 byte packets. The first packet contains data for the first finger,
626 ---------
630 bit 7 6 5 4 3 2 1 0
635 Native absolute mode 6 byte packet format
636 -----------------------------------------
659 byte 0::
661 bit 7 6 5 4 3 2 1 0
666 byte 1::
668 bit 7 6 5 4 3 2 1 0
673 byte 2::
677 byte 3::
679 bit 7 6 5 4 3 2 1 0
684 byte 4::
686 bit 7 6 5 4 3 2 1 0
691 byte 5::
698 byte 0::
700 bit 7 6 5 4 3 2 1 0
706 byte 1::
708 bit 7 6 5 4 3 2 1 0
711 byte 2::
713 bit 7 6 5 4 3 2 1 0
718 byte 3::
720 bit 7 6 5 4 3 2 1 0
725 byte 4::
727 bit 7 6 5 4 3 2 1 0
732 byte 5::
734 bit 7 6 5 4 3 2 1 0
742 byte 0::
744 bit 7 6 5 4 3 2 1 0
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
759 byte 2::
761 bit 7 6 5 4 3 2 1 0
766 byte 3::
768 bit 7 6 5 4 3 2 1 0
773 byte 4::
775 bit 7 6 5 4 3 2 1 0
780 byte 5::
782 bit 7 6 5 4 3 2 1 0
787 byte 0 ~ 2 for one finger
788 byte 3 ~ 5 for another
791 Trackpoint (for Hardware version 3 and 4)
795 ---------
799 Native relative mode 6 byte packet format
800 -----------------------------------------
805 byte 0::
807 bit 7 6 5 4 3 2 1 0
810 byte 1::
812 bit 7 6 5 4 3 2 1 0
815 byte 2::
817 bit 7 6 5 4 3 2 1 0
820 byte 3::
822 bit 7 6 5 4 3 2 1 0
825 byte 4::
827 bit 7 6 5 4 3 2 1 0
830 byte 5::
832 bit 7 6 5 4 3 2 1 0