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