Skip to content

Commit

Permalink
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel…
Browse files Browse the repository at this point in the history
…/git/dtor/input

Pull input subsystem updates from Dmitry Torokhov:

 - a big update from Mauro converting input documentation to ReST format

 - Synaptics PS/2 is now aware of SMBus companion devices, which means
   that we can now use native RMI4 protocol to handle touchpads, instead
   of relying on legacy PS/2 mode.

 - we removed support from BMA180 accelerometer from input devices as it
   is now handled properly by IIO

 - update to TSC2007 to corretcly report pressure

 - other miscellaneous driver fixes.

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (152 commits)
  Input: ar1021_i2c - use BIT to check for a bit
  Input: twl4030-pwrbutton - use input_set_capability() helper
  Input: twl4030-pwrbutton - use correct device for irq request
  Input: ar1021_i2c - enable touch mode during open
  Input: add uinput documentation
  dt-bindings: input: add bindings document for ar1021_i2c driver
  dt-bindings: input: rotary-encoder: fix typo
  Input: xen-kbdfront - add module parameter for setting resolution
  ARM: pxa/raumfeld: fix compile error in rotary controller resources
  Input: xpad - do not suggest writing to Dominic
  Input: xpad - don't use literal blocks inside footnotes
  Input: xpad - note that usb/devices is now at /sys/kernel/debug/
  Input: docs - freshen up introduction
  Input: docs - split input docs into kernel- and user-facing
  Input: docs - note that MT-A protocol is obsolete
  Input: docs - update joystick documentation a bit
  Input: docs - remove disclaimer/GPL notice
  Input: fix "Game console" heading level in joystick documentation
  Input: rotary-encoder - remove references to platform data from docs
  Input: move documentation for Amiga CD32
  ...
  • Loading branch information
Linus Torvalds committed May 3, 2017
2 parents d25e436 + 0337966 commit 16a12fa
Show file tree
Hide file tree
Showing 129 changed files with 7,608 additions and 5,390 deletions.
2 changes: 2 additions & 0 deletions Documentation/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -348,6 +348,8 @@
'The kernel development community', 'manual'),
('driver-api/index', 'driver-api.tex', 'The kernel driver API manual',
'The kernel development community', 'manual'),
('input/index', 'linux-input.tex', 'The Linux input driver subsystem',
'The kernel development community', 'manual'),
('kernel-documentation', 'kernel-documentation.tex', 'The Linux Kernel Documentation',
'The kernel development community', 'manual'),
('process/index', 'development-process.tex', 'Linux Kernel Development Documentation',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@ Optional Properties:
- debounce-delay-ms: debounce interval in milliseconds
- col-scan-delay-us: delay, measured in microseconds, that is needed
before we can scan keypad after activating column gpio
- drive-inactive-cols: drive inactive columns during scan,
default is to turn inactive columns into inputs.

Example:
matrix-keypad {
Expand Down
1 change: 1 addition & 0 deletions Documentation/devicetree/bindings/input/pwm-beeper.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ Required properties:

Optional properties:
- amp-supply: phandle to a regulator that acts as an amplifier for the beeper
- beeper-hz: bell frequency in Hz

Example:

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ PROPERTIES
Value type: <string>
Definition: must be one of:
"qcom,pm8058-vib"
"qcom,pm8916-vib"
"qcom,pm8921-vib"

- reg:
Expand Down
2 changes: 1 addition & 1 deletion Documentation/devicetree/bindings/input/rotary-encoder.txt
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ Optional properties:
- rotary-encoder,relative-axis: register a relative axis rather than an
absolute one. Relative axis will only generate +1/-1 events on the input
device, hence no steps need to be passed.
- rotary-encoder,rollover: Automatic rollove when the rotary value becomes
- rotary-encoder,rollover: Automatic rollover when the rotary value becomes
greater than the specified steps or smaller than 0. For absolute axis only.
- rotary-encoder,steps-per-period: Number of steps (stable states) per period.
The values have the following meaning:
Expand Down
19 changes: 19 additions & 0 deletions Documentation/devicetree/bindings/input/touchscreen/ad7879.txt
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ Optional properties:
- adi,conversion-interval: : 0 : convert one time only
1-255: 515us + val * 35us (up to 9.440ms)
This property has to be a '/bits/ 8' value
- gpio-controller : Switch AUX/VBAT/GPIO pin to GPIO mode

Example:

Expand All @@ -51,3 +52,21 @@ Example:
adi,averaging = /bits/ 8 <1>;
adi,conversion-interval = /bits/ 8 <255>;
};

ad7879@1 {
compatible = "adi,ad7879";
spi-max-frequency = <5000000>;
reg = <1>;
spi-cpol;
spi-cpha;
gpio-controller;
interrupt-parent = <&gpio1>;
interrupts = <13 IRQ_TYPE_EDGE_FALLING>;
touchscreen-max-pressure = <4096>;
adi,resistance-plate-x = <120>;
adi,first-conversion-delay = /bits/ 8 <3>;
adi,acquisition-time = /bits/ 8 <1>;
adi,median-filter-size = /bits/ 8 <2>;
adi,averaging = /bits/ 8 <1>;
adi,conversion-interval = /bits/ 8 <255>;
};
16 changes: 16 additions & 0 deletions Documentation/devicetree/bindings/input/touchscreen/ar1021.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
* Microchip AR1020 and AR1021 touchscreen interface (I2C)

Required properties:
- compatible : "microchip,ar1021-i2c"
- reg : I2C slave address
- interrupt-parent : the phandle for the interrupt controller
- interrupts : touch controller interrupt

Example:

touchscreen@4d {
compatible = "microchip,ar1021-i2c";
reg = <0x4d>;
interrupt-parent = <&gpio3>;
interrupts = <11 IRQ_TYPE_LEVEL_HIGH>;
};
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
* MAXI MAX11801 Resistive touch screen controller with i2c interface

Required properties:
- compatible: must be "maxim,max11801"
- reg: i2c slave address
- interrupt-parent: the phandle for the interrupt controller
- interrupts: touch controller interrupt

Example:

&i2c1 {
max11801: touchscreen@48 {
compatible = "maxim,max11801";
reg = <0x48>;
interrupt-parent = <&gpio3>;
interrupts = <31 IRQ_TYPE_EDGE_FALLING>;
};
};
Original file line number Diff line number Diff line change
@@ -1,7 +1,12 @@
* GSL 1680 touchscreen controller

Required properties:
- compatible : "silead,gsl1680"
- compatible : Must be one of the following, depending on the model:
"silead,gsl1680"
"silead,gsl1688"
"silead,gsl3670"
"silead,gsl3675"
"silead,gsl3692"
- reg : I2C slave address of the chip (0x40)
- interrupt-parent : a phandle pointing to the interrupt controller
serving the interrupt for this chip
Expand Down
19 changes: 0 additions & 19 deletions Documentation/input/cd32.txt

This file was deleted.

10 changes: 10 additions & 0 deletions Documentation/input/conf.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# -*- coding: utf-8; mode: python -*-

project = "The Linux input driver subsystem"

tags.add("subproject")

latex_documents = [
('index', 'linux-input.tex', project,
'The kernel development community', 'manual'),
]
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
----------------------
ALPS Touchpad Protocol
----------------------

Introduction
------------
Currently the ALPS touchpad driver supports seven protocol versions in use by
ALPS touchpads, called versions 1, 2, 3, 4, 5, 6 and 7.
ALPS touchpads, called versions 1, 2, 3, 4, 5, 6, 7 and 8.

Since roughly mid-2010 several new ALPS touchpads have been released and
integrated into a variety of laptops and netbooks. These new touchpads
Expand Down Expand Up @@ -78,7 +79,7 @@ of the EC response.
Packet Format
-------------

In the following tables, the following notation is used.
In the following tables, the following notation is used::

CAPITALS = stick, miniscules = touchpad

Expand All @@ -88,6 +89,8 @@ extra buttons, stick buttons on a dualpoint, etc.
PS/2 packet format
------------------

::

byte 0: 0 0 YSGN XSGN 1 M R L
byte 1: X7 X6 X5 X4 X3 X2 X1 X0
byte 2: Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0
Expand All @@ -99,7 +102,9 @@ are on the touchpad, the M R L bits signal the combined status of both the
pointingstick and touchpad buttons.

ALPS Absolute Mode - Protocol Version 1
--------------------------------------
---------------------------------------

::

byte 0: 1 0 0 0 1 x9 x8 x7
byte 1: 0 x6 x5 x4 x3 x2 x1 x0
Expand All @@ -111,6 +116,8 @@ ALPS Absolute Mode - Protocol Version 1
ALPS Absolute Mode - Protocol Version 2
---------------------------------------

::

byte 0: 1 ? ? ? 1 PSM PSR PSL
byte 1: 0 x6 x5 x4 x3 x2 x1 x0
byte 2: 0 x10 x9 x8 x7 ? fin ges
Expand All @@ -127,6 +134,8 @@ and PSL bits.
Dualpoint device -- interleaved packet format
---------------------------------------------

::

byte 0: 1 1 0 0 1 1 1 1
byte 1: 0 x6 x5 x4 x3 x2 x1 x0
byte 2: 0 x10 x9 x8 x7 0 fin ges
Expand All @@ -149,7 +158,7 @@ ALPS protocol version 3 has three different packet formats. The first two are
associated with touchpad events, and the third is associated with trackstick
events.

The first type is the touchpad position packet.
The first type is the touchpad position packet::

byte 0: 1 ? x1 x0 1 1 1 1
byte 1: 0 x10 x9 x8 x7 x6 x5 x4
Expand All @@ -165,7 +174,7 @@ The second packet type contains bitmaps representing the x and y axes. In the
bitmaps a given bit is set if there is a finger covering that position on the
given axis. Thus the bitmap packet can be used for low-resolution multi-touch
data, although finger tracking is not possible. This packet also encodes the
number of contacts (f1 and f0 in the table below).
number of contacts (f1 and f0 in the table below)::

byte 0: 1 1 x1 x0 1 1 1 1
byte 1: 0 x8 x7 x6 x5 x4 x3 x2
Expand All @@ -178,7 +187,7 @@ This packet only appears after a position packet with the mt bit set, and
usually only appears when there are two or more contacts (although
occasionally it's seen with only a single contact).

The final v3 packet type is the trackstick packet.
The final v3 packet type is the trackstick packet::

byte 0: 1 1 x7 y7 1 1 1 1
byte 1: 0 x6 x5 x4 x3 x2 x1 x0
Expand All @@ -190,7 +199,7 @@ The final v3 packet type is the trackstick packet.
ALPS Absolute Mode - Protocol Version 4
---------------------------------------

Protocol version 4 has an 8-byte packet format.
Protocol version 4 has an 8-byte packet format::

byte 0: 1 ? x1 x0 1 1 1 1
byte 1: 0 x10 x9 x8 x7 x6 x5 x4
Expand All @@ -203,7 +212,7 @@ Protocol version 4 has an 8-byte packet format.

The last two bytes represent a partial bitmap packet, with 3 full packets
required to construct a complete bitmap packet. Once assembled, the 6-byte
bitmap packet has the following format:
bitmap packet has the following format::

byte 0: 0 1 x7 x6 x5 x4 x3 x2
byte 1: 0 x1 x0 y4 y3 y2 y1 y0
Expand Down Expand Up @@ -238,7 +247,7 @@ decode. It uses the same alps_process_touchpad_packet_v3 call with a
specialized decode_fields function pointer to correctly interpret the
packets. This appears to only be used by the Dolphin devices.

For single-touch, the 6-byte packet format is:
For single-touch, the 6-byte packet format is::

byte 0: 1 1 0 0 1 0 0 0
byte 1: 0 x6 x5 x4 x3 x2 x1 x0
Expand All @@ -247,7 +256,7 @@ For single-touch, the 6-byte packet format is:
byte 4: y10 y9 y8 y7 x10 x9 x8 x7
byte 5: 0 z6 z5 z4 z3 z2 z1 z0

For mt, the format is:
For mt, the format is::

byte 0: 1 1 1 n3 1 n2 n1 x24
byte 1: 1 y7 y6 y5 y4 y3 y2 y1
Expand All @@ -259,7 +268,7 @@ For mt, the format is:
ALPS Absolute Mode - Protocol Version 6
---------------------------------------

For trackstick packet, the format is:
For trackstick packet, the format is::

byte 0: 1 1 1 1 1 1 1 1
byte 1: 0 X6 X5 X4 X3 X2 X1 X0
Expand All @@ -268,7 +277,7 @@ For trackstick packet, the format is:
byte 4: Z7 Z6 Z5 Z4 Z3 Z2 Z1 Z0
byte 5: 0 1 1 1 1 1 1 1

For touchpad packet, the format is:
For touchpad packet, the format is::

byte 0: 1 1 1 1 1 1 1 1
byte 1: 0 0 0 0 x3 x2 x1 x0
Expand All @@ -282,7 +291,7 @@ For touchpad packet, the format is:
ALPS Absolute Mode - Protocol Version 7
---------------------------------------

For trackstick packet, the format is:
For trackstick packet, the format is::

byte 0: 0 1 0 0 1 0 0 0
byte 1: 1 1 * * 1 M R L
Expand All @@ -291,7 +300,7 @@ For trackstick packet, the format is:
byte 4: Y7 0 Y5 Y4 Y3 1 1 0
byte 5: T&P 0 Z5 Z4 Z3 Z2 Z1 Z0

For touchpad packet, the format is:
For touchpad packet, the format is::

packet-fmt b7 b6 b5 b4 b3 b2 b1 b0
byte 0: TWO & MULTI L 1 R M 1 Y0-2 Y0-1 Y0-0
Expand Down Expand Up @@ -328,7 +337,7 @@ Spoken by SS4 (73 03 14) and SS5 (73 03 28) hardware.

The packet type is given by the APD field, bits 4-5 of byte 3.

Touchpad packet (APD = 0x2):
Touchpad packet (APD = 0x2)::

b7 b6 b5 b4 b3 b2 b1 b0
byte 0: SWM SWR SWL 1 1 0 0 X7
Expand All @@ -340,7 +349,7 @@ Touchpad packet (APD = 0x2):

SWM, SWR, SWL: Middle, Right, and Left button states

Touchpad 1 Finger packet (APD = 0x0):
Touchpad 1 Finger packet (APD = 0x0)::

b7 b6 b5 b4 b3 b2 b1 b0
byte 0: SWM SWR SWL 1 1 X2 X1 X0
Expand All @@ -353,7 +362,7 @@ Touchpad 1 Finger packet (APD = 0x0):
TAPF: ???
LFB: ???

Touchpad 2 Finger packet (APD = 0x1):
Touchpad 2 Finger packet (APD = 0x1)::

b7 b6 b5 b4 b3 b2 b1 b0
byte 0: SWM SWR SWL 1 1 AX6 AX5 AX4
Expand All @@ -365,7 +374,7 @@ Touchpad 2 Finger packet (APD = 0x1):

CONT: A 3-or-4 Finger packet is to follow

Touchpad 3-or-4 Finger packet (APD = 0x3):
Touchpad 3-or-4 Finger packet (APD = 0x3)::

b7 b6 b5 b4 b3 b2 b1 b0
byte 0: SWM SWR SWL 1 1 AX6 AX5 AX4
Expand Down
Loading

0 comments on commit 16a12fa

Please sign in to comment.