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

Commit 7b5bb55d authored by Jeff LaBundy's avatar Jeff LaBundy Committed by Dmitry Torokhov
Browse files

Input: add support for Azoteq IQS550/572/525

This patch adds support for the Azoteq IQS550/572/525 family of
trackpad/touchscreen controllers.

The driver has been tested with an IQS550EV02 evaluation board. A
demonstration of the driver's capabilities is available here:

https://youtu.be/sRNNx4XZBts



Signed-off-by: default avatarJeff LaBundy <jeff@labundy.com>
Reviewed-by: default avatarRob Herring <robh@kernel.org>
Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
parent 13bda2d0
Loading
Loading
Loading
Loading
+80 −0
Original line number Diff line number Diff line
Azoteq IQS550/572/525 Trackpad/Touchscreen Controller

Required properties:

- compatible			: Must be equal to one of the following:
				  "azoteq,iqs550"
				  "azoteq,iqs572"
				  "azoteq,iqs525"

- reg				: I2C slave address for the device.

- interrupts			: GPIO to which the device's active-high RDY
				  output is connected (see [0]).

- reset-gpios			: GPIO to which the device's active-low NRST
				  input is connected (see [1]).

Optional properties:

- touchscreen-min-x		: See [2].

- touchscreen-min-y		: See [2].

- touchscreen-size-x		: See [2]. If this property is omitted, the
				  maximum x-coordinate is specified by the
				  device's "X Resolution" register.

- touchscreen-size-y		: See [2]. If this property is omitted, the
				  maximum y-coordinate is specified by the
				  device's "Y Resolution" register.

- touchscreen-max-pressure	: See [2]. Pressure is expressed as the sum of
				  the deltas across all channels impacted by a
				  touch event. A channel's delta is calculated
				  as its count value minus a reference, where
				  the count value is inversely proportional to
				  the channel's capacitance.

- touchscreen-fuzz-x		: See [2].

- touchscreen-fuzz-y		: See [2].

- touchscreen-fuzz-pressure	: See [2].

- touchscreen-inverted-x	: See [2]. Inversion is applied relative to that
				  which may already be specified by the device's
				  FLIP_X and FLIP_Y register fields.

- touchscreen-inverted-y	: See [2]. Inversion is applied relative to that
				  which may already be specified by the device's
				  FLIP_X and FLIP_Y register fields.

- touchscreen-swapped-x-y	: See [2]. Swapping is applied relative to that
				  which may already be specified by the device's
				  SWITCH_XY_AXIS register field.

[0]: Documentation/devicetree/bindings/interrupt-controller/interrupts.txt
[1]: Documentation/devicetree/bindings/gpio/gpio.txt
[2]: Documentation/devicetree/bindings/input/touchscreen/touchscreen.txt

Example:

	&i2c1 {
		/* ... */

		touchscreen@74 {
			compatible = "azoteq,iqs550";
			reg = <0x74>;
			interrupt-parent = <&gpio>;
			interrupts = <17 4>;
			reset-gpios = <&gpio 27 1>;

			touchscreen-size-x = <640>;
			touchscreen-size-y = <480>;

			touchscreen-max-pressure = <16000>;
		};

		/* ... */
	};
+1 −0
Original line number Diff line number Diff line
@@ -53,6 +53,7 @@ avic Shanghai AVIC Optoelectronics Co., Ltd.
avnet	Avnet, Inc.
axentia	Axentia Technologies AB
axis	Axis Communications AB
azoteq	Azoteq (Pty) Ltd
bananapi BIPAI KEJI LIMITED
bhf	Beckhoff Automation GmbH & Co. KG
bitmain	Bitmain Technologies
+10 −0
Original line number Diff line number Diff line
@@ -1311,4 +1311,14 @@ config TOUCHSCREEN_ROHM_BU21023
	  To compile this driver as a module, choose M here: the
	  module will be called bu21023_ts.

config TOUCHSCREEN_IQS5XX
	tristate "Azoteq IQS550/572/525 trackpad/touchscreen controller"
	depends on I2C
	help
	  Say Y to enable support for the Azoteq IQS550/572/525
	  family of trackpad/touchscreen controllers.

	  To compile this driver as a module, choose M here: the
	  module will be called iqs5xx.

endif
+1 −0
Original line number Diff line number Diff line
@@ -110,3 +110,4 @@ obj-$(CONFIG_TOUCHSCREEN_ZFORCE) += zforce_ts.o
obj-$(CONFIG_TOUCHSCREEN_COLIBRI_VF50)	+= colibri-vf50-ts.o
obj-$(CONFIG_TOUCHSCREEN_ROHM_BU21023)	+= rohm_bu21023.o
obj-$(CONFIG_TOUCHSCREEN_RASPBERRYPI_FW)	+= raspberrypi-ts.o
obj-$(CONFIG_TOUCHSCREEN_IQS5XX)	+= iqs5xx.o
+1133 −0

File added.

Preview size limit exceeded, changes collapsed.