aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2014-11-14 17:31:54 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2014-11-14 17:31:54 -0500
commit56c381f93d57b88a3e667a2f55137947315c17e2 (patch)
tree15960c5927472979809bdd3b6620e2d539a3933a /Documentation
parent0861fd1c25a8ce79ae7647e384cb6555c46e1690 (diff)
parentc6c748ef85c342d2726fc3c91c6a2af313af2360 (diff)
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
Pull input subsystem updates from Dmitry Torokhov: "Mostly small fixups to PS/2 tochpad drivers (ALPS, Elantech, Synaptics) to better deal with specific hardware" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: Input: elantech - update the documentation Input: elantech - provide a sysfs knob for crc_enabled Input: elantech - report the middle button of the touchpad Input: alps - ignore bad data on Dell Latitudes E6440 and E7440 Input: alps - allow up to 2 invalid packets without resetting device Input: alps - ignore potential bare packets when device is out of sync Input: elantech - fix crc_enabled for Fujitsu H730 Input: elantech - use elantech_report_trackpoint for hardware v4 too Input: twl4030-pwrbutton - ensure a wakeup event is recorded. Input: synaptics - add min/max quirk for Lenovo T440s
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/input/elantech.txt81
1 files changed, 75 insertions, 6 deletions
diff --git a/Documentation/input/elantech.txt b/Documentation/input/elantech.txt
index e1ae127ed099..1ec0db7879d3 100644
--- a/Documentation/input/elantech.txt
+++ b/Documentation/input/elantech.txt
@@ -38,22 +38,38 @@ Contents
38 7.2.1 Status packet 38 7.2.1 Status packet
39 7.2.2 Head packet 39 7.2.2 Head packet
40 7.2.3 Motion packet 40 7.2.3 Motion packet
41 8. Trackpoint (for Hardware version 3 and 4)
42 8.1 Registers
43 8.2 Native relative mode 6 byte packet format
44 8.2.1 Status Packet
41 45
42 46
43 47
441. Introduction 481. Introduction
45 ~~~~~~~~~~~~ 49 ~~~~~~~~~~~~
46 50
47Currently the Linux Elantech touchpad driver is aware of two different 51Currently the Linux Elantech touchpad driver is aware of four different
48hardware versions unimaginatively called version 1 and version 2. Version 1 52hardware versions unimaginatively called version 1,version 2, version 3
49is found in "older" laptops and uses 4 bytes per packet. Version 2 seems to 53and version 4. Version 1 is found in "older" laptops and uses 4 bytes per
50be introduced with the EeePC and uses 6 bytes per packet, and provides 54packet. Version 2 seems to be introduced with the EeePC and uses 6 bytes
51additional features such as position of two fingers, and width of the touch. 55per packet, and provides additional features such as position of two fingers,
56and width of the touch. Hardware version 3 uses 6 bytes per packet (and
57for 2 fingers the concatenation of two 6 bytes packets) and allows tracking
58of up to 3 fingers. Hardware version 4 uses 6 bytes per packet, and can
59combine a status packet with multiple head or motion packets. Hardware version
604 allows tracking up to 5 fingers.
61
62Some Hardware version 3 and version 4 also have a trackpoint which uses a
63separate packet format. It is also 6 bytes per packet.
52 64
53The driver tries to support both hardware versions and should be compatible 65The driver tries to support both hardware versions and should be compatible
54with the Xorg Synaptics touchpad driver and its graphical configuration 66with the Xorg Synaptics touchpad driver and its graphical configuration
55utilities. 67utilities.
56 68
69Note that a mouse button is also associated with either the touchpad or the
70trackpoint when a trackpoint is available. Disabling the Touchpad in xorg
71(TouchPadOff=0) will also disable the buttons associated with the touchpad.
72
57Additionally the operation of the touchpad can be altered by adjusting the 73Additionally the operation of the touchpad can be altered by adjusting the
58contents of some of its internal registers. These registers are represented 74contents of some of its internal registers. These registers are represented
59by the driver as sysfs entries under /sys/bus/serio/drivers/psmouse/serio? 75by the driver as sysfs entries under /sys/bus/serio/drivers/psmouse/serio?
@@ -78,7 +94,7 @@ completeness sake.
782. Extra knobs 942. Extra knobs
79 ~~~~~~~~~~~ 95 ~~~~~~~~~~~
80 96
81Currently the Linux Elantech touchpad driver provides two extra knobs under 97Currently the Linux Elantech touchpad driver provides three extra knobs under
82/sys/bus/serio/drivers/psmouse/serio? for the user. 98/sys/bus/serio/drivers/psmouse/serio? for the user.
83 99
84* debug 100* debug
@@ -112,6 +128,20 @@ Currently the Linux Elantech touchpad driver provides two extra knobs under
112 data consistency checking can be done. For now checking is disabled by 128 data consistency checking can be done. For now checking is disabled by
113 default. Currently even turning it on will do nothing. 129 default. Currently even turning it on will do nothing.
114 130
131* crc_enabled
132
133 Sets crc_enabled to 0/1. The name "crc_enabled" is the official name of
134 this integrity check, even though it is not an actual cyclic redundancy
135 check.
136
137 Depending on the state of crc_enabled, certain basic data integrity
138 verification is done by the driver on hardware version 3 and 4. The
139 driver will reject any packet that appears corrupted. Using this knob,
140 The state of crc_enabled can be altered with this knob.
141
142 Reading the crc_enabled value will show the active value. Echoing
143 "0" or "1" to this file will set the state to "0" or "1".
144
115///////////////////////////////////////////////////////////////////////////// 145/////////////////////////////////////////////////////////////////////////////
116 146
1173. Differentiating hardware versions 1473. Differentiating hardware versions
@@ -746,3 +776,42 @@ byte 5:
746 776
747 byte 0 ~ 2 for one finger 777 byte 0 ~ 2 for one finger
748 byte 3 ~ 5 for another 778 byte 3 ~ 5 for another
779
780
7818. Trackpoint (for Hardware version 3 and 4)
782 =========================================
7838.1 Registers
784 ~~~~~~~~~
785No special registers have been identified.
786
7878.2 Native relative mode 6 byte packet format
788 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
7898.2.1 Status Packet
790 ~~~~~~~~~~~~~
791
792byte 0:
793 bit 7 6 5 4 3 2 1 0
794 0 0 sx sy 0 M R L
795byte 1:
796 bit 7 6 5 4 3 2 1 0
797 ~sx 0 0 0 0 0 0 0
798byte 2:
799 bit 7 6 5 4 3 2 1 0
800 ~sy 0 0 0 0 0 0 0
801byte 3:
802 bit 7 6 5 4 3 2 1 0
803 0 0 ~sy ~sx 0 1 1 0
804byte 4:
805 bit 7 6 5 4 3 2 1 0
806 x7 x6 x5 x4 x3 x2 x1 x0
807byte 5:
808 bit 7 6 5 4 3 2 1 0
809 y7 y6 y5 y4 y3 y2 y1 y0
810
811
812 x and y are written in two's complement spread
813 over 9 bits with sx/sy the relative top bit and
814 x7..x0 and y7..y0 the lower bits.
815 ~sx is the inverse of sx, ~sy is the inverse of sy.
816 The sign of y is opposite to what the input driver
817 expects for a relative movement