mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-08-31 08:15:07 -04:00
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: Jeff LaBundy <jeff@labundy.com> Reviewed-by: Rob Herring <robh@kernel.org> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
This commit is contained in:
committed by
Dmitry Torokhov
parent
13bda2d077
commit
7b5bb55d0d
@@ -0,0 +1,80 @@
|
|||||||
|
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>;
|
||||||
|
};
|
||||||
|
|
||||||
|
/* ... */
|
||||||
|
};
|
||||||
@@ -53,6 +53,7 @@ avic Shanghai AVIC Optoelectronics Co., Ltd.
|
|||||||
avnet Avnet, Inc.
|
avnet Avnet, Inc.
|
||||||
axentia Axentia Technologies AB
|
axentia Axentia Technologies AB
|
||||||
axis Axis Communications AB
|
axis Axis Communications AB
|
||||||
|
azoteq Azoteq (Pty) Ltd
|
||||||
bananapi BIPAI KEJI LIMITED
|
bananapi BIPAI KEJI LIMITED
|
||||||
bhf Beckhoff Automation GmbH & Co. KG
|
bhf Beckhoff Automation GmbH & Co. KG
|
||||||
bitmain Bitmain Technologies
|
bitmain Bitmain Technologies
|
||||||
|
|||||||
@@ -1311,4 +1311,14 @@ config TOUCHSCREEN_ROHM_BU21023
|
|||||||
To compile this driver as a module, choose M here: the
|
To compile this driver as a module, choose M here: the
|
||||||
module will be called bu21023_ts.
|
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
|
endif
|
||||||
|
|||||||
@@ -110,3 +110,4 @@ obj-$(CONFIG_TOUCHSCREEN_ZFORCE) += zforce_ts.o
|
|||||||
obj-$(CONFIG_TOUCHSCREEN_COLIBRI_VF50) += colibri-vf50-ts.o
|
obj-$(CONFIG_TOUCHSCREEN_COLIBRI_VF50) += colibri-vf50-ts.o
|
||||||
obj-$(CONFIG_TOUCHSCREEN_ROHM_BU21023) += rohm_bu21023.o
|
obj-$(CONFIG_TOUCHSCREEN_ROHM_BU21023) += rohm_bu21023.o
|
||||||
obj-$(CONFIG_TOUCHSCREEN_RASPBERRYPI_FW) += raspberrypi-ts.o
|
obj-$(CONFIG_TOUCHSCREEN_RASPBERRYPI_FW) += raspberrypi-ts.o
|
||||||
|
obj-$(CONFIG_TOUCHSCREEN_IQS5XX) += iqs5xx.o
|
||||||
|
|||||||
1133
drivers/input/touchscreen/iqs5xx.c
Normal file
1133
drivers/input/touchscreen/iqs5xx.c
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user