Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 62d5bdf9 authored by Dmitry Torokhov's avatar Dmitry Torokhov
Browse files

Merge branch 'synaptics-rmi4' into next

Bring in support for devices using Synaptics RMI4 protocol, including
RMI4 bus, 2D sensor and button handlers, and SPI and I2C interface
drivers.
parents e52d8398 48147b97
Loading
Loading
Loading
Loading
+56 −0
Original line number Diff line number Diff line
Synaptics RMI4 2D Sensor Device Binding

The Synaptics RMI4 core is able to support RMI4 devices using different
transports and different functions. This file describes the device tree
bindings for devices which contain 2D sensors using Function 11 or
Function 12. Complete documentation for transports and other functions
can be found in:
Documentation/devicetree/bindings/input/rmi4.

RMI4 Function 11 and Function 12 are for 2D touch position sensing.
Additional documentation for F11 can be found at:
http://www.synaptics.com/sites/default/files/511-000136-01-Rev-E-RMI4-Interfacing-Guide.pdf

Optional Touch Properties:
Description in Documentation/devicetree/bindings/input/touch
- touchscreen-inverted-x
- touchscreen-inverted-y
- touchscreen-swapped-x-y
- touchscreen-x-mm
- touchscreen-y-mm

Optional Properties:
- syna,clip-x-low: Sets a minimum value for X.
- syna,clip-y-low: Sets a minimum value for Y.
- syna,clip-x-high: Sets a maximum value for X.
- syna,clip-y-high: Sets a maximum value for Y.
- syna,offset-x: Add an offset to X.
- syna,offset-y: Add an offset to Y.
- syna,delta-x-threshold: Set the minimum distance on the X axis required
				to generate an interrupt in reduced reporting
				mode.
- syna,delta-y-threshold: Set the minimum distance on the Y axis required
				to generate an interrupt in reduced reporting
				mode.
- syna,sensor-type: Set the sensor type. 1 for touchscreen 2 for touchpad.
- syna,disable-report-mask: Mask for disabling posiiton reporting. Used to
				disable reporing absolute position data.
- syna,rezero-wait-ms: Time in miliseconds to wait after issuing a rezero
				command.


Example of a RMI4 I2C device with F11:
Example:
	&i2c1 {
		rmi4-i2c-dev@2c {
			compatible = "syna,rmi4-i2c";

			...

			rmi4-f11@11 {
				reg = <0x11>;
				touchscreen-inverted-y;
				syna,sensor-type = <2>;
			};
		};
	};
+39 −0
Original line number Diff line number Diff line
Synaptics RMI4 F01 Device Binding

The Synaptics RMI4 core is able to support RMI4 devices using different
transports and different functions. This file describes the device tree
bindings for devices which contain Function 1. Complete documentation
for transports and other functions can be found in:
Documentation/devicetree/bindings/input/rmi4.

Additional documentation for F01 can be found at:
http://www.synaptics.com/sites/default/files/511-000136-01-Rev-E-RMI4-Interfacing-Guide.pdf

Optional Properties:
- syna,nosleep-mode: If set the device will run at full power without sleeping.
			nosleep has 3 modes, 0 will not change the default
			setting, 1 will disable nosleep (allow sleeping),
			and 2 will enable nosleep (disabling sleep).
- syna,wakeup-threshold: Defines the amplitude of the disturbance to the
				background capacitance that will cause the
				device to wake from dozing.
- syna,doze-holdoff-ms: The delay to wait after the last finger lift and the
				first doze cycle.
- syna,doze-interval-ms: The time period that the device sleeps between finger
				activity.


Example of a RMI4 I2C device with F01:
	Example:
	&i2c1 {
		rmi4-i2c-dev@2c {
			compatible = "syna,rmi4-i2c";

			...

			rmi4-f01@1 {
				reg = <0x1>;
				syna,nosleep-mode = <1>;
			};
		};
	};
+53 −0
Original line number Diff line number Diff line
Synaptics RMI4 I2C Device Binding

The Synaptics RMI4 core is able to support RMI4 devices using different
transports and different functions. This file describes the device tree
bindings for devices using the I2C transport driver. Complete documentation
for other transports and functions can be found in
Documentation/devicetree/bindings/input/rmi4.

Required Properties:
- compatible: syna,rmi4-i2c
- reg: I2C address
- #address-cells: Set to 1 to indicate that the function child nodes
		    consist of only on uint32 value.
- #size-cells: Set to 0 to indicate that the function child nodes do not
		have a size property.

Optional Properties:
- interrupts: interrupt which the rmi device is connected to.
- interrupt-parent: The interrupt controller.
See Documentation/devicetree/bindings/interrupt-controller/interrupts.txt

- syna,reset-delay-ms: The number of milliseconds to wait after resetting the
			device.

Function Parameters:
Parameters specific to RMI functions are contained in child nodes of the rmi device
 node. Documentation for the parameters of each function can be found in:
Documentation/devicetree/bindings/input/rmi4/rmi_f*.txt.



Example:
	&i2c1 {
		rmi4-i2c-dev@2c {
			compatible = "syna,rmi4-i2c";
			reg = <0x2c>;
			#address-cells = <1>;
			#size-cells = <0>;
			interrupt-parent = <&gpio>;
			interrupts = <4 2>;

			rmi4-f01@1 {
				reg = <0x1>;
				syna,nosleep-mode = <1>;
			};

			rmi4-f11@11 {
				reg = <0x11>;
				touchscreen-inverted-y;
				syna,sensor-type = <2>;
			};
		};
	};
+57 −0
Original line number Diff line number Diff line
Synaptics RMI4 SPI Device Binding

The Synaptics RMI4 core is able to support RMI4 devices using different
transports and different functions. This file describes the device tree
bindings for devices using the SPI transport driver. Complete documentation
for other transports and functions can be found in
Documentation/devicetree/bindings/input/rmi4.

Required Properties:
- compatible: syna,rmi4-spi
- reg: Chip select address for the device
- #address-cells: Set to 1 to indicate that the function child nodes
		    consist of only on uint32 value.
- #size-cells: Set to 0 to indicate that the function child nodes do not
		have a size property.

Optional Properties:
- interrupts: interrupt which the rmi device is connected to.
- interrupt-parent: The interrupt controller.
See Documentation/devicetree/bindings/interrupt-controller/interrupts.txt

- spi-rx-delay-us: microsecond delay after a read transfer.
- spi-tx-delay-us: microsecond delay after a write transfer.

Function Parameters:
Parameters specific to RMI functions are contained in child nodes of the rmi device
 node. Documentation for the parameters of each function can be found in:
Documentation/devicetree/bindings/input/rmi4/rmi_f*.txt.



Example:
	spi@7000d800 {
		rmi4-spi-dev@0 {
			compatible = "syna,rmi4-spi";
			reg = <0x0>;
			#address-cells = <1>;
			#size-cells = <0>;
			spi-max-frequency = <4000000>;
			spi-cpha;
			spi-cpol;
			interrupt-parent = <&gpio>;
			interrupts = <TEGRA_GPIO(K, 2) 0x2>;
			spi-rx-delay-us = <30>;

			rmi4-f01@1 {
				reg = <0x1>;
				syna,nosleep-mode = <1>;
			};

			rmi4-f11@11 {
				reg = <0x11>;
				touchscreen-inverted-y;
				syna,sensor-type = <2>;
			};
		};
	};
+2 −0
Original line number Diff line number Diff line
@@ -18,6 +18,8 @@ Optional properties for Touchscreens:
 - touchscreen-inverted-y	: Y axis is inverted (boolean)
 - touchscreen-swapped-x-y	: X and Y axis are swapped (boolean)
				  Swapping is done after inverting the axis
 - touchscreen-x-mm		: horizontal length in mm of the touchscreen
 - touchscreen-y-mm		: vertical length in mm of the touchscreen

Deprecated properties for Touchscreens:
 - x-size			: deprecated name for touchscreen-size-x
Loading