diff mbox series

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

Message ID c381ee2526074e02b6058c489f85cfdaee582713.1623419587.git.geert+renesas@glider.be (mailing list archive)
State Superseded
Delegated to: Geert Uytterhoeven
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.
Geert Uytterhoeven June 11, 2021, 6:23 p.m. UTC | #2
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.

Gr{oetje,eeting}s,

                        Geert
Dmitry Torokhov June 11, 2021, 6:32 p.m. UTC | #3
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 11, 2021, 9:49 p.m. UTC | #4
On 6/11/21 8:32 PM, Dmitry Torokhov wrote:

Hi,

>>> 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.

The older driver also supports 251x . What exactly is "Lego" series ?
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.
Joe Hung (洪銘陽) June 12, 2021, 5:52 a.m. UTC | #5
Hi Marek,

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 ?

Best regards,

Joe Hong
ILI TECHNOLOGY CORP.
TEL: +886-3-5600099 ext.6138
Email: joe_hung@ilitek.com
8F., No.1, Taiyuan 2nd St., Zhubei City, Hsinchu Country 302, Taiwan (R.O.C.)
Marek Vasut June 13, 2021, 7:43 p.m. UTC | #6
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.
Rob Herring (Arm) June 16, 2021, 6:02 p.m. UTC | #7
On Fri, 11 Jun 2021 15:54:27 +0200, 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.
> 
> 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
> 

One driver or 2, I don't care from a binding perspective if sharing 
works.

Reviewed-by: Rob Herring <robh@kernel.org>
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:
   - |