diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2013-03-11 10:49:37 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-03-11 10:49:37 -0400 |
| commit | 152fcb2784c9305e19e7caee2932b9e32b0a1d41 (patch) | |
| tree | a8fceed3656ea2e7ef6a3c2f5afb450cf7620bdd /Documentation/input | |
| parent | f6161aa153581da4a3867a2d1a7caf4be19b6ec9 (diff) | |
| parent | 4b7d293c64fde133cc2b669d0d7637b8a4c6d62f (diff) | |
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
Pull input updates from Dmitry Torokhov:
"Except for the largish change to the ALPS driver adding "Dolphin V1"
support and Wacom getting a new signature of yet another device, the
rest are straightforward driver fixes."
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
Input: mms114 - Fix regulator enable and disable paths
Input: ads7864 - check return value of regulator enable
Input: tc3589x-keypad - fix keymap size
Input: wacom - add support for 0x10d
Input: ALPS - update documentation for recent touchpad driver mods
Input: ALPS - add "Dolphin V1" touchpad support
Input: ALPS - remove unused argument to alps_enter_command_mode()
Input: cypress_ps2 - fix trackpadi found in Dell XPS12
Diffstat (limited to 'Documentation/input')
| -rw-r--r-- | Documentation/input/alps.txt | 67 |
1 files changed, 60 insertions, 7 deletions
diff --git a/Documentation/input/alps.txt b/Documentation/input/alps.txt index 3262b6e4d686..e544c7ff8cfa 100644 --- a/Documentation/input/alps.txt +++ b/Documentation/input/alps.txt | |||
| @@ -3,10 +3,26 @@ ALPS Touchpad Protocol | |||
| 3 | 3 | ||
| 4 | Introduction | 4 | Introduction |
| 5 | ------------ | 5 | ------------ |
| 6 | 6 | Currently the ALPS touchpad driver supports five protocol versions in use by | |
| 7 | Currently the ALPS touchpad driver supports four protocol versions in use by | 7 | ALPS touchpads, called versions 1, 2, 3, 4 and 5. |
| 8 | ALPS touchpads, called versions 1, 2, 3, and 4. Information about the various | 8 | |
| 9 | protocol versions is contained in the following sections. | 9 | Since roughly mid-2010 several new ALPS touchpads have been released and |
| 10 | integrated into a variety of laptops and netbooks. These new touchpads | ||
| 11 | have enough behavior differences that the alps_model_data definition | ||
| 12 | table, describing the properties of the different versions, is no longer | ||
| 13 | adequate. The design choices were to re-define the alps_model_data | ||
| 14 | table, with the risk of regression testing existing devices, or isolate | ||
| 15 | the new devices outside of the alps_model_data table. The latter design | ||
| 16 | choice was made. The new touchpad signatures are named: "Rushmore", | ||
| 17 | "Pinnacle", and "Dolphin", which you will see in the alps.c code. | ||
| 18 | For the purposes of this document, this group of ALPS touchpads will | ||
| 19 | generically be called "new ALPS touchpads". | ||
| 20 | |||
| 21 | We experimented with probing the ACPI interface _HID (Hardware ID)/_CID | ||
| 22 | (Compatibility ID) definition as a way to uniquely identify the | ||
| 23 | different ALPS variants but there did not appear to be a 1:1 mapping. | ||
| 24 | In fact, it appeared to be an m:n mapping between the _HID and actual | ||
| 25 | hardware type. | ||
| 10 | 26 | ||
| 11 | Detection | 27 | Detection |
| 12 | --------- | 28 | --------- |
| @@ -20,9 +36,13 @@ If the E6 report is successful, the touchpad model is identified using the "E7 | |||
| 20 | report" sequence: E8-E7-E7-E7-E9. The response is the model signature and is | 36 | report" sequence: E8-E7-E7-E7-E9. The response is the model signature and is |
| 21 | matched against known models in the alps_model_data_array. | 37 | matched against known models in the alps_model_data_array. |
| 22 | 38 | ||
| 23 | With protocol versions 3 and 4, the E7 report model signature is always | 39 | For older touchpads supporting protocol versions 3 and 4, the E7 report |
| 24 | 73-02-64. To differentiate between these versions, the response from the | 40 | model signature is always 73-02-64. To differentiate between these |
| 25 | "Enter Command Mode" sequence must be inspected as described below. | 41 | versions, the response from the "Enter Command Mode" sequence must be |
| 42 | inspected as described below. | ||
| 43 | |||
| 44 | The new ALPS touchpads have an E7 signature of 73-03-50 or 73-03-0A but | ||
| 45 | seem to be better differentiated by the EC Command Mode response. | ||
| 26 | 46 | ||
| 27 | Command Mode | 47 | Command Mode |
| 28 | ------------ | 48 | ------------ |
| @@ -47,6 +67,14 @@ address of the register being read, and the third contains the value of the | |||
| 47 | register. Registers are written by writing the value one nibble at a time | 67 | register. Registers are written by writing the value one nibble at a time |
| 48 | using the same encoding used for addresses. | 68 | using the same encoding used for addresses. |
| 49 | 69 | ||
| 70 | For the new ALPS touchpads, the EC command is used to enter command | ||
| 71 | mode. The response in the new ALPS touchpads is significantly different, | ||
| 72 | and more important in determining the behavior. This code has been | ||
| 73 | separated from the original alps_model_data table and put in the | ||
| 74 | alps_identify function. For example, there seem to be two hardware init | ||
| 75 | sequences for the "Dolphin" touchpads as determined by the second byte | ||
| 76 | of the EC response. | ||
| 77 | |||
| 50 | Packet Format | 78 | Packet Format |
| 51 | ------------- | 79 | ------------- |
| 52 | 80 | ||
| @@ -187,3 +215,28 @@ There are several things worth noting here. | |||
| 187 | well. | 215 | well. |
| 188 | 216 | ||
| 189 | So far no v4 devices with tracksticks have been encountered. | 217 | So far no v4 devices with tracksticks have been encountered. |
| 218 | |||
| 219 | ALPS Absolute Mode - Protocol Version 5 | ||
| 220 | --------------------------------------- | ||
| 221 | This is basically Protocol Version 3 but with different logic for packet | ||
| 222 | decode. It uses the same alps_process_touchpad_packet_v3 call with a | ||
| 223 | specialized decode_fields function pointer to correctly interpret the | ||
| 224 | packets. This appears to only be used by the Dolphin devices. | ||
| 225 | |||
| 226 | For single-touch, the 6-byte packet format is: | ||
| 227 | |||
| 228 | byte 0: 1 1 0 0 1 0 0 0 | ||
| 229 | byte 1: 0 x6 x5 x4 x3 x2 x1 x0 | ||
| 230 | byte 2: 0 y6 y5 y4 y3 y2 y1 y0 | ||
| 231 | byte 3: 0 M R L 1 m r l | ||
| 232 | byte 4: y10 y9 y8 y7 x10 x9 x8 x7 | ||
| 233 | byte 5: 0 z6 z5 z4 z3 z2 z1 z0 | ||
| 234 | |||
| 235 | For mt, the format is: | ||
| 236 | |||
| 237 | byte 0: 1 1 1 n3 1 n2 n1 x24 | ||
| 238 | byte 1: 1 y7 y6 y5 y4 y3 y2 y1 | ||
| 239 | byte 2: ? x2 x1 y12 y11 y10 y9 y8 | ||
| 240 | byte 3: 0 x23 x22 x21 x20 x19 x18 x17 | ||
| 241 | byte 4: 0 x9 x8 x7 x6 x5 x4 x3 | ||
| 242 | byte 5: 0 x16 x15 x14 x13 x12 x11 x10 | ||
