Skip to content

Commit

Permalink
Input: add support for the STMicroelectronics FingerTip touchscreen
Browse files Browse the repository at this point in the history
The stmfts (ST-Microelectronics FingerTip S) touchscreen device is a
capacitive multi-touch controller mainly for mobile use.  It's connected
through i2c bus at the address 0x49 and it interfaces with userspace
through input event interface.

At the current state it provides a touchscreen multitouch functionality up
to 10 fingers. Each finger is enumerated with a distinctive id (from 0 to
9).

If enabled the device can support single "touch" hovering, by providing
three coordinates, x, y and distance.

It is possible to select the touchkey functionality which provides a basic
two keys interface for "home" and "back" menu, typical in mobile phones.

Signed-off-by: Andi Shyti <andi.shyti@samsung.com>
Reviewed-by: Javier Martinez Canillas <javier@osg.samsung.com>
Acked-by: Rob Herring <robh@kernel.org>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
  • Loading branch information
Andi Shyti authored and Dmitry Torokhov committed Jun 5, 2017
1 parent 131b3de commit 78bcac7
Showing 4 changed files with 877 additions and 0 deletions.
43 changes: 43 additions & 0 deletions Documentation/devicetree/bindings/input/touchscreen/st,stmfts.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
* ST-Microelectronics FingerTip touchscreen controller

The ST-Microelectronics FingerTip device provides a basic touchscreen
functionality. Along with it the user can enable the touchkey which can work as
a basic HOME and BACK key for phones.

The driver supports also hovering as an absolute single touch event with x, y, z
coordinates.

Required properties:
- compatible : must be "st,stmfts"
- reg : I2C slave address, (e.g. 0x49)
- interrupt-parent : the phandle to the interrupt controller which provides
the interrupt
- interrupts : interrupt specification
- avdd-supply : analogic power supply
- vdd-supply : power supply
- touchscreen-size-x : see touchscreen.txt
- touchscreen-size-y : see touchscreen.txt

Optional properties:
- touch-key-connected : specifies whether the touchkey feature is connected
- ledvdd-supply : power supply to the touch key leds

Example:

i2c@00000000 {

/* ... */

touchscreen@49 {
compatible = "st,stmfts";
reg = <0x49>;
interrupt-parent = <&gpa1>;
interrupts = <1 IRQ_TYPE_NONE>;
touchscreen-size-x = <1599>;
touchscreen-size-y = <2559>;
touch-key-connected;
avdd-supply = <&ldo30_reg>;
vdd-supply = <&ldo31_reg>;
ledvdd-supply = <&ldo33_reg>;
};
};
11 changes: 11 additions & 0 deletions drivers/input/touchscreen/Kconfig
Original file line number Diff line number Diff line change
@@ -1114,6 +1114,17 @@ config TOUCHSCREEN_ST1232
To compile this driver as a module, choose M here: the
module will be called st1232_ts.

config TOUCHSCREEN_STMFTS
tristate "STMicroelectronics STMFTS touchscreen"
depends on I2C
depends on LEDS_CLASS
help
Say Y here if you want support for STMicroelectronics
STMFTS touchscreen.

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

config TOUCHSCREEN_STMPE
tristate "STMicroelectronics STMPE touchscreens"
depends on MFD_STMPE
1 change: 1 addition & 0 deletions drivers/input/touchscreen/Makefile
Original file line number Diff line number Diff line change
@@ -67,6 +67,7 @@ obj-$(CONFIG_TOUCHSCREEN_S3C2410) += s3c2410_ts.o
obj-$(CONFIG_TOUCHSCREEN_SILEAD) += silead.o
obj-$(CONFIG_TOUCHSCREEN_SIS_I2C) += sis_i2c.o
obj-$(CONFIG_TOUCHSCREEN_ST1232) += st1232.o
obj-$(CONFIG_TOUCHSCREEN_STMFTS) += stmfts.o
obj-$(CONFIG_TOUCHSCREEN_STMPE) += stmpe-ts.o
obj-$(CONFIG_TOUCHSCREEN_SUN4I) += sun4i-ts.o
obj-$(CONFIG_TOUCHSCREEN_SUR40) += sur40.o
Loading

0 comments on commit 78bcac7

Please sign in to comment.