diff mbox series

dt-bindings: input: touchscreen: ilitek_ts_i2c: Absorb ili2xxx bindings

Message ID c381ee2526074e02b6058c489f85cfdaee582713.1623419587.git.geert+renesas@glider.be
State Accepted
Commit 644291ebecd1355363f4b7a39dc115828643b901
Headers show
Series dt-bindings: input: touchscreen: ilitek_ts_i2c: Absorb ili2xxx bindings | expand

Commit Message

Geert Uytterhoeven June 11, 2021, 1:54 p.m. UTC
While Linux uses a different driver, the Ilitek
ILI210x/ILI2117/ILI2120/ILI251x touchscreen controller Device Tree
binding documentation is very similar.

  - Drop the fixed reg value, as some controllers use a different
    address,
  - Make reset-gpios optional, as it is not always wired.

Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
---
 .../bindings/input/ilitek,ili2xxx.txt         | 27 -------------------
 .../input/touchscreen/ilitek_ts_i2c.yaml      |  7 +++--
 2 files changed, 5 insertions(+), 29 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/input/ilitek,ili2xxx.txt

Comments

Marek Vasut June 11, 2021, 2:20 p.m. UTC | #1
On 6/11/21 3:54 PM, Geert Uytterhoeven wrote:
> While Linux uses a different driver, the Ilitek
> ILI210x/ILI2117/ILI2120/ILI251x touchscreen controller Device Tree
> binding documentation is very similar.
> 
>    - Drop the fixed reg value, as some controllers use a different
>      address,
>    - Make reset-gpios optional, as it is not always wired.

It looks like there are now two drivers for the same hardware,
drivers/input/touchscreen/ili210x.c
drivers/input/touchscreen/ilitek_ts_i2c.c
The ilitek_ts_i2c (newer) seems to be derived from the ilitek example 
code / driver, while the ili210x was written from scratch as far as I 
can tell.
Dmitry Torokhov June 11, 2021, 6:32 p.m. UTC | #2
Hi Geert, Maerek,

On Fri, Jun 11, 2021 at 08:23:10PM +0200, Geert Uytterhoeven wrote:
> Hi Marek,
> 
> On Fri, Jun 11, 2021 at 4:20 PM Marek Vasut <marex@denx.de> wrote:
> > On 6/11/21 3:54 PM, Geert Uytterhoeven wrote:
> > > While Linux uses a different driver, the Ilitek
> > > ILI210x/ILI2117/ILI2120/ILI251x touchscreen controller Device Tree
> > > binding documentation is very similar.
> > >
> > >    - Drop the fixed reg value, as some controllers use a different
> > >      address,
> > >    - Make reset-gpios optional, as it is not always wired.
> >
> > It looks like there are now two drivers for the same hardware,
> > drivers/input/touchscreen/ili210x.c
> > drivers/input/touchscreen/ilitek_ts_i2c.c
> > The ilitek_ts_i2c (newer) seems to be derived from the ilitek example
> > code / driver, while the ili210x was written from scratch as far as I
> > can tell.
> 
> I'm not so sure they're for the same hardware, but you may know better?
> https://www.displayvisions.us/fileadmin/html-seiten/eng/pdf/zubehoer/ILITek_TP_Programming_Guide_V1.50.pdf
> lists only Ilitek parts handled by ilitek_ts_i2c.c.

Ilitek folks said that the new driver is for their "Lego" series
controllers, whereas ili210x.c is for older hardware.

Thanks.
Marek Vasut June 13, 2021, 7:43 p.m. UTC | #3
On 6/12/21 7:52 AM, Joe Hung (洪銘陽) wrote:
> Hi Marek,


Hi,

> I'm the committer of "ilitek_ts_i2c.c" driver.

> The so-called "Lego" series was listed below, as listed in ilitek_ts_i2c.yaml

> It's the newer series with different protocol and control flow to ILITEK IC FW.

> 

> - ilitek,ili2130

> - ilitek,ili2131

> - ilitek,ili2132

> - ilitek,ili2316

> - ilitek,ili2322

> - ilitek,ili2323

> - ilitek,ili2326

> - ilitek,ili2520

> - ilitek,ili2521

> 

>> The older driver also supports 251x . What exactly is "Lego" series ?

> More specifically, Lego series support "252x", not "2510".

> The older driver support 210x and 251x, which has older protocol.

> 

>> In fact, is there documentation for the different ILI2xxx touchscreen controllers ? So far, all the information I had was pulled from the various forks of downstream example code.

> If it need for a doc. to distinguish it, I am glad to support/arrange, and where should I put those description to ?


I think the older ili251x has protocol V5 and the lego series has 
protocol V6 or something like that, right ? If that's the case, maybe it 
would be useful to clarify that and that the protocols are incompatible, 
so others don't get confused by those two drivers.
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/input/ilitek,ili2xxx.txt b/Documentation/devicetree/bindings/input/ilitek,ili2xxx.txt
deleted file mode 100644
index cdcaa3f52d253670..0000000000000000
--- a/Documentation/devicetree/bindings/input/ilitek,ili2xxx.txt
+++ /dev/null
@@ -1,27 +0,0 @@ 
-Ilitek ILI210x/ILI2117/ILI2120/ILI251x touchscreen controller
-
-Required properties:
-- compatible:
-    ilitek,ili210x for ILI210x
-    ilitek,ili2117 for ILI2117
-    ilitek,ili2120 for ILI2120
-    ilitek,ili251x for ILI251x
-
-- reg: The I2C address of the device
-
-- interrupts: The sink for the touchscreen's IRQ output
-    See ../interrupt-controller/interrupts.txt
-
-Optional properties for main touchpad device:
-
-- reset-gpios: GPIO specifier for the touchscreen's reset pin (active low)
-
-Example:
-
-	touchscreen@41 {
-		compatible = "ilitek,ili251x";
-		reg = <0x41>;
-		interrupt-parent = <&gpio4>;
-		interrupts = <7 IRQ_TYPE_EDGE_FALLING>;
-		reset-gpios = <&gpio5 21 GPIO_ACTIVE_LOW>;
-	};
diff --git a/Documentation/devicetree/bindings/input/touchscreen/ilitek_ts_i2c.yaml b/Documentation/devicetree/bindings/input/touchscreen/ilitek_ts_i2c.yaml
index a190e7baac3162a3..9f732899975683a8 100644
--- a/Documentation/devicetree/bindings/input/touchscreen/ilitek_ts_i2c.yaml
+++ b/Documentation/devicetree/bindings/input/touchscreen/ilitek_ts_i2c.yaml
@@ -15,6 +15,9 @@  allOf:
 properties:
   compatible:
     enum:
+      - ilitek,ili210x
+      - ilitek,ili2117
+      - ilitek,ili2120
       - ilitek,ili2130
       - ilitek,ili2131
       - ilitek,ili2132
@@ -22,11 +25,12 @@  properties:
       - ilitek,ili2322
       - ilitek,ili2323
       - ilitek,ili2326
+      - ilitek,ili251x
       - ilitek,ili2520
       - ilitek,ili2521
 
   reg:
-    const: 0x41
+    maxItems: 1
 
   interrupts:
     maxItems: 1
@@ -50,7 +54,6 @@  required:
   - compatible
   - reg
   - interrupts
-  - reset-gpios
 
 examples:
   - |