Skip to content

Commit 10fdfee

Browse files
committed
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
Pull input updates from Dmitry Torokhov: "The most notable item is addition of support for Synaptics RMI4 protocol which is native protocol for all current Synaptics devices (touchscreens, touchpads). In later releases we'll switch devices using HID and PS/2 protocol emulation to RMI4. You will also get: - BYD PS/2 touchpad protocol support for psmouse - MELFAS MIP4 Touchscreen driver - rotary encoder was moved away from legacy platform data and to generic device properties API, devm_* API, and can now handle encoders using more than 2 GPIOs - Cypress touchpad driver was switched to devm_* API and device properties - other assorted driver fixes" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (40 commits) ARM: pxa/raumfeld: use PROPERTY_ENTRY_INTEGER to define props Input: synaptics-rmi4 - using logical instead of bitwise AND Input: powermate - fix oops with malicious USB descriptors Input: snvs_pwrkey - fix returned value check of syscon_regmap_lookup_by_phandle() MAINTAINERS: add devicetree bindings to Input Drivers section Input: synaptics-rmi4 - add device tree support to the SPI transport driver Input: synaptics-rmi4 - add SPI transport driver Input: synaptics-rmi4 - add support for F30 Input: synaptics-rmi4 - add support for F12 Input: synaptics-rmi4 - add device tree support for 2d sensors and F11 Input: synaptics-rmi4 - add support for 2D sensors and F11 Input: synaptics-rmi4 - add device tree support for RMI4 I2C devices Input: synaptics-rmi4 - add I2C transport driver Input: synaptics-rmi4 - add support for Synaptics RMI4 devices Input: ad7879 - add device tree support Input: ad7879 - fix default x/y axis assignment Input: ad7879 - move header to platform_data directory Input: ts4800 - add hardware dependency Input: cyapa - fix for losing events during device power transitions Input: sh_keysc - remove dependency on SUPERH ...
2 parents 0f49fc9 + 4d2508a commit 10fdfee

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

67 files changed

+9387
-523
lines changed
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
Android Goldfish Events Keypad
2+
3+
Android goldfish events keypad device generated by android emulator.
4+
5+
Required properties:
6+
7+
- compatible : should contain "google,goldfish-events-keypad" to match emulator
8+
- reg : <registers mapping>
9+
- interrupts : <interrupt mapping>
10+
11+
Example:
12+
13+
goldfish-events@9040000 {
14+
compatible = "google,goldfish-events-keypad";
15+
reg = <0x9040000 0x1000>;
16+
interrupts = <0x5>;
17+
};
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
Synaptics RMI4 2D Sensor Device Binding
2+
3+
The Synaptics RMI4 core is able to support RMI4 devices using different
4+
transports and different functions. This file describes the device tree
5+
bindings for devices which contain 2D sensors using Function 11 or
6+
Function 12. Complete documentation for transports and other functions
7+
can be found in:
8+
Documentation/devicetree/bindings/input/rmi4.
9+
10+
RMI4 Function 11 and Function 12 are for 2D touch position sensing.
11+
Additional documentation for F11 can be found at:
12+
http://www.synaptics.com/sites/default/files/511-000136-01-Rev-E-RMI4-Interfacing-Guide.pdf
13+
14+
Optional Touch Properties:
15+
Description in Documentation/devicetree/bindings/input/touch
16+
- touchscreen-inverted-x
17+
- touchscreen-inverted-y
18+
- touchscreen-swapped-x-y
19+
- touchscreen-x-mm
20+
- touchscreen-y-mm
21+
22+
Optional Properties:
23+
- syna,clip-x-low: Sets a minimum value for X.
24+
- syna,clip-y-low: Sets a minimum value for Y.
25+
- syna,clip-x-high: Sets a maximum value for X.
26+
- syna,clip-y-high: Sets a maximum value for Y.
27+
- syna,offset-x: Add an offset to X.
28+
- syna,offset-y: Add an offset to Y.
29+
- syna,delta-x-threshold: Set the minimum distance on the X axis required
30+
to generate an interrupt in reduced reporting
31+
mode.
32+
- syna,delta-y-threshold: Set the minimum distance on the Y axis required
33+
to generate an interrupt in reduced reporting
34+
mode.
35+
- syna,sensor-type: Set the sensor type. 1 for touchscreen 2 for touchpad.
36+
- syna,disable-report-mask: Mask for disabling posiiton reporting. Used to
37+
disable reporing absolute position data.
38+
- syna,rezero-wait-ms: Time in miliseconds to wait after issuing a rezero
39+
command.
40+
41+
42+
Example of a RMI4 I2C device with F11:
43+
Example:
44+
&i2c1 {
45+
rmi4-i2c-dev@2c {
46+
compatible = "syna,rmi4-i2c";
47+
48+
...
49+
50+
rmi4-f11@11 {
51+
reg = <0x11>;
52+
touchscreen-inverted-y;
53+
syna,sensor-type = <2>;
54+
};
55+
};
56+
};
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
Synaptics RMI4 F01 Device Binding
2+
3+
The Synaptics RMI4 core is able to support RMI4 devices using different
4+
transports and different functions. This file describes the device tree
5+
bindings for devices which contain Function 1. Complete documentation
6+
for transports and other functions can be found in:
7+
Documentation/devicetree/bindings/input/rmi4.
8+
9+
Additional documentation for F01 can be found at:
10+
http://www.synaptics.com/sites/default/files/511-000136-01-Rev-E-RMI4-Interfacing-Guide.pdf
11+
12+
Optional Properties:
13+
- syna,nosleep-mode: If set the device will run at full power without sleeping.
14+
nosleep has 3 modes, 0 will not change the default
15+
setting, 1 will disable nosleep (allow sleeping),
16+
and 2 will enable nosleep (disabling sleep).
17+
- syna,wakeup-threshold: Defines the amplitude of the disturbance to the
18+
background capacitance that will cause the
19+
device to wake from dozing.
20+
- syna,doze-holdoff-ms: The delay to wait after the last finger lift and the
21+
first doze cycle.
22+
- syna,doze-interval-ms: The time period that the device sleeps between finger
23+
activity.
24+
25+
26+
Example of a RMI4 I2C device with F01:
27+
Example:
28+
&i2c1 {
29+
rmi4-i2c-dev@2c {
30+
compatible = "syna,rmi4-i2c";
31+
32+
...
33+
34+
rmi4-f01@1 {
35+
reg = <0x1>;
36+
syna,nosleep-mode = <1>;
37+
};
38+
};
39+
};
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
Synaptics RMI4 I2C Device Binding
2+
3+
The Synaptics RMI4 core is able to support RMI4 devices using different
4+
transports and different functions. This file describes the device tree
5+
bindings for devices using the I2C transport driver. Complete documentation
6+
for other transports and functions can be found in
7+
Documentation/devicetree/bindings/input/rmi4.
8+
9+
Required Properties:
10+
- compatible: syna,rmi4-i2c
11+
- reg: I2C address
12+
- #address-cells: Set to 1 to indicate that the function child nodes
13+
consist of only on uint32 value.
14+
- #size-cells: Set to 0 to indicate that the function child nodes do not
15+
have a size property.
16+
17+
Optional Properties:
18+
- interrupts: interrupt which the rmi device is connected to.
19+
- interrupt-parent: The interrupt controller.
20+
See Documentation/devicetree/bindings/interrupt-controller/interrupts.txt
21+
22+
- syna,reset-delay-ms: The number of milliseconds to wait after resetting the
23+
device.
24+
25+
Function Parameters:
26+
Parameters specific to RMI functions are contained in child nodes of the rmi device
27+
node. Documentation for the parameters of each function can be found in:
28+
Documentation/devicetree/bindings/input/rmi4/rmi_f*.txt.
29+
30+
31+
32+
Example:
33+
&i2c1 {
34+
rmi4-i2c-dev@2c {
35+
compatible = "syna,rmi4-i2c";
36+
reg = <0x2c>;
37+
#address-cells = <1>;
38+
#size-cells = <0>;
39+
interrupt-parent = <&gpio>;
40+
interrupts = <4 2>;
41+
42+
rmi4-f01@1 {
43+
reg = <0x1>;
44+
syna,nosleep-mode = <1>;
45+
};
46+
47+
rmi4-f11@11 {
48+
reg = <0x11>;
49+
touchscreen-inverted-y;
50+
syna,sensor-type = <2>;
51+
};
52+
};
53+
};
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
Synaptics RMI4 SPI Device Binding
2+
3+
The Synaptics RMI4 core is able to support RMI4 devices using different
4+
transports and different functions. This file describes the device tree
5+
bindings for devices using the SPI transport driver. Complete documentation
6+
for other transports and functions can be found in
7+
Documentation/devicetree/bindings/input/rmi4.
8+
9+
Required Properties:
10+
- compatible: syna,rmi4-spi
11+
- reg: Chip select address for the device
12+
- #address-cells: Set to 1 to indicate that the function child nodes
13+
consist of only on uint32 value.
14+
- #size-cells: Set to 0 to indicate that the function child nodes do not
15+
have a size property.
16+
17+
Optional Properties:
18+
- interrupts: interrupt which the rmi device is connected to.
19+
- interrupt-parent: The interrupt controller.
20+
See Documentation/devicetree/bindings/interrupt-controller/interrupts.txt
21+
22+
- spi-rx-delay-us: microsecond delay after a read transfer.
23+
- spi-tx-delay-us: microsecond delay after a write transfer.
24+
25+
Function Parameters:
26+
Parameters specific to RMI functions are contained in child nodes of the rmi device
27+
node. Documentation for the parameters of each function can be found in:
28+
Documentation/devicetree/bindings/input/rmi4/rmi_f*.txt.
29+
30+
31+
32+
Example:
33+
spi@7000d800 {
34+
rmi4-spi-dev@0 {
35+
compatible = "syna,rmi4-spi";
36+
reg = <0x0>;
37+
#address-cells = <1>;
38+
#size-cells = <0>;
39+
spi-max-frequency = <4000000>;
40+
spi-cpha;
41+
spi-cpol;
42+
interrupt-parent = <&gpio>;
43+
interrupts = <TEGRA_GPIO(K, 2) 0x2>;
44+
spi-rx-delay-us = <30>;
45+
46+
rmi4-f01@1 {
47+
reg = <0x1>;
48+
syna,nosleep-mode = <1>;
49+
};
50+
51+
rmi4-f11@11 {
52+
reg = <0x11>;
53+
touchscreen-inverted-y;
54+
syna,sensor-type = <2>;
55+
};
56+
};
57+
};

Documentation/devicetree/bindings/input/rotary-encoder.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
Rotary encoder DT bindings
22

33
Required properties:
4-
- gpios: a spec for two GPIOs to be used
4+
- gpios: a spec for at least two GPIOs to be used, most significant first
55

66
Optional properties:
77
- linux,axis: the input subsystem axis to map to this rotary encoder.
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
* Analog Devices AD7879(-1)/AD7889(-1) touchscreen interface (SPI/I2C)
2+
3+
Required properties:
4+
- compatible : for SPI slave, use "adi,ad7879"
5+
for I2C slave, use "adi,ad7879-1"
6+
- reg : SPI chipselect/I2C slave address
7+
See spi-bus.txt for more SPI slave properties
8+
- interrupt-parent : the phandle for the interrupt controller
9+
- interrupts : touch controller interrupt
10+
- touchscreen-max-pressure : maximum reported pressure
11+
- adi,resistance-plate-x : total resistance of X-plate (for pressure
12+
calculation)
13+
Optional properties:
14+
- touchscreen-swapped-x-y : X and Y axis are swapped (boolean)
15+
- adi,first-conversion-delay : 0-12: In 128us steps (starting with 128us)
16+
13 : 2.560ms
17+
14 : 3.584ms
18+
15 : 4.096ms
19+
This property has to be a '/bits/ 8' value
20+
- adi,acquisition-time : 0: 2us
21+
1: 4us
22+
2: 8us
23+
3: 16us
24+
This property has to be a '/bits/ 8' value
25+
- adi,median-filter-size : 0: disabled
26+
1: 4 measurements
27+
2: 8 measurements
28+
3: 16 measurements
29+
This property has to be a '/bits/ 8' value
30+
- adi,averaging : 0: 2 middle values (1 if median disabled)
31+
1: 4 middle values
32+
2: 8 middle values
33+
3: 16 values
34+
This property has to be a '/bits/ 8' value
35+
- adi,conversion-interval: : 0 : convert one time only
36+
1-255: 515us + val * 35us (up to 9.440ms)
37+
This property has to be a '/bits/ 8' value
38+
39+
Example:
40+
41+
ad7879@2c {
42+
compatible = "adi,ad7879-1";
43+
reg = <0x2c>;
44+
interrupt-parent = <&gpio1>;
45+
interrupts = <13 IRQ_TYPE_EDGE_FALLING>;
46+
touchscreen-max-pressure = <4096>;
47+
adi,resistance-plate-x = <120>;
48+
adi,first-conversion-delay = /bits/ 8 <3>;
49+
adi,acquisition-time = /bits/ 8 <1>;
50+
adi,median-filter-size = /bits/ 8 <2>;
51+
adi,averaging = /bits/ 8 <1>;
52+
adi,conversion-interval = /bits/ 8 <255>;
53+
};
Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
* Cypress cyttsp touchscreen controller
2+
3+
Required properties:
4+
- compatible : must be "cypress,cyttsp-i2c" or "cypress,cyttsp-spi"
5+
- reg : Device I2C address or SPI chip select number
6+
- spi-max-frequency : Maximum SPI clocking speed of the device (for cyttsp-spi)
7+
- interrupt-parent : the phandle for the gpio controller
8+
(see interrupt binding[0]).
9+
- interrupts : (gpio) interrupt to which the chip is connected
10+
(see interrupt binding[0]).
11+
- bootloader-key : the 8-byte bootloader key that is required to switch
12+
the chip from bootloader mode (default mode) to
13+
application mode.
14+
This property has to be specified as an array of 8
15+
'/bits/ 8' values.
16+
17+
Optional properties:
18+
- reset-gpios : the reset gpio the chip is connected to
19+
(see GPIO binding[1] for more details).
20+
- touchscreen-size-x : horizontal resolution of touchscreen (in pixels)
21+
- touchscreen-size-y : vertical resolution of touchscreen (in pixels)
22+
- touchscreen-fuzz-x : horizontal noise value of the absolute input device
23+
(in pixels)
24+
- touchscreen-fuzz-y : vertical noise value of the absolute input device
25+
(in pixels)
26+
- active-distance : the distance in pixels beyond which a touch must move
27+
before movement is detected and reported by the device.
28+
Valid values: 0-15.
29+
- active-interval-ms : the minimum period in ms between consecutive
30+
scanning/processing cycles when the chip is in active mode.
31+
Valid values: 0-255.
32+
- lowpower-interval-ms : the minimum period in ms between consecutive
33+
scanning/processing cycles when the chip is in low-power mode.
34+
Valid values: 0-2550
35+
- touch-timeout-ms : minimum time in ms spent in the active power state while no
36+
touches are detected before entering low-power mode.
37+
Valid values: 0-2550
38+
- use-handshake : enable register-based handshake (boolean). This should
39+
only be used if the chip is configured to use 'blocking
40+
communication with timeout' (in this case the device
41+
generates an interrupt at the end of every
42+
scanning/processing cycle).
43+
44+
[0]: Documentation/devicetree/bindings/interrupt-controller/interrupts.txt
45+
[1]: Documentation/devicetree/bindings/gpio/gpio.txt
46+
47+
Example:
48+
&i2c1 {
49+
/* ... */
50+
cyttsp@a {
51+
compatible = "cypress,cyttsp-i2c";
52+
reg = <0xa>;
53+
interrupt-parent = <&gpio0>;
54+
interrupts = <28 0>;
55+
reset-gpios = <&gpio3 4 GPIO_ACTIVE_LOW>;
56+
57+
touchscreen-size-x = <800>;
58+
touchscreen-size-y = <480>;
59+
touchscreen-fuzz-x = <4>;
60+
touchscreen-fuzz-y = <7>;
61+
62+
bootloader-key = /bits/ 8 <0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08>;
63+
active-distance = <8>;
64+
active-interval-ms = <0>;
65+
lowpower-interval-ms = <200>;
66+
touch-timeout-ms = <100>;
67+
};
68+
69+
/* ... */
70+
};
71+
72+
&mcspi1 {
73+
/* ... */
74+
cyttsp@0 {
75+
compatible = "cypress,cyttsp-spi";
76+
spi-max-frequency = <6000000>;
77+
reg = <0>;
78+
interrupt-parent = <&gpio0>;
79+
interrupts = <28 0>;
80+
reset-gpios = <&gpio3 4 GPIO_ACTIVE_LOW>;
81+
82+
touchscreen-size-x = <800>;
83+
touchscreen-size-y = <480>;
84+
touchscreen-fuzz-x = <4>;
85+
touchscreen-fuzz-y = <7>;
86+
87+
bootloader-key = /bits/ 8 <0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08>;
88+
active-distance = <8>;
89+
active-interval-ms = <0>;
90+
lowpower-interval-ms = <200>;
91+
touch-timeout-ms = <100>;
92+
};
93+
94+
/* ... */
95+
};

Documentation/devicetree/bindings/input/touchscreen/touchscreen.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ Optional properties for Touchscreens:
1818
- touchscreen-inverted-y : Y axis is inverted (boolean)
1919
- touchscreen-swapped-x-y : X and Y axis are swapped (boolean)
2020
Swapping is done after inverting the axis
21+
- touchscreen-x-mm : horizontal length in mm of the touchscreen
22+
- touchscreen-y-mm : vertical length in mm of the touchscreen
2123

2224
Deprecated properties for Touchscreens:
2325
- x-size : deprecated name for touchscreen-size-x

0 commit comments

Comments
 (0)