diff mbox series

[1/8] dt-bindings: HID: i2c-hid: elan: Introduce Elan eKTH8D18

Message ID 20250312104344.3084425-2-wenst@chromium.org
State New
Headers show
Series arm64: mediatek: mt8186-corsola: Consolidate and add new devices | expand

Commit Message

Chen-Yu Tsai March 12, 2025, 10:43 a.m. UTC
The Elan eKTH8D18 touchscreen controller is an I2C HID device with a
longer boot-up time. Power sequence timing wise it is compatible with
the eKTH6A12NAY, with a power-on delay of at least 5ms, 20ms
out-of-reset for I2C ack response, and 150ms out-of-reset for I2C HID
enumeration. Enumeration and subsequent operation follows the I2C HID
standard. The eKTH6A12NAY requires longer times for both parts.

Add a compatible string for it with the ekth6a12nay one as a fallback.

Signed-off-by: Chen-Yu Tsai <wenst@chromium.org>
---
 .../bindings/input/elan,ekth6915.yaml         | 29 ++++++++++++++++---
 1 file changed, 25 insertions(+), 4 deletions(-)

Comments

Doug Anderson March 14, 2025, 9:58 p.m. UTC | #1
Hi,


On Wed, Mar 12, 2025 at 3:43 AM Chen-Yu Tsai <wenst@chromium.org> wrote:
>
> The Elan eKTH8D18 touchscreen controller is an I2C HID device with a
> longer boot-up time. Power sequence timing wise it is compatible with
> the eKTH6A12NAY, with a power-on delay of at least 5ms, 20ms
> out-of-reset for I2C ack response, and 150ms out-of-reset for I2C HID
> enumeration. Enumeration and subsequent operation follows the I2C HID
> standard. The eKTH6A12NAY requires longer times for both parts.

Somehow the last sentence above confused me. Can it just be dropped?
All you care about is that the new trackpad matches the timings for
"eKTH6A12NAY". Not sure what you mean by "eKTH6A12NAY" needing
"longer" timings.


> Add a compatible string for it with the ekth6a12nay one as a fallback.
>
> Signed-off-by: Chen-Yu Tsai <wenst@chromium.org>
> ---
>  .../bindings/input/elan,ekth6915.yaml         | 29 ++++++++++++++++---
>  1 file changed, 25 insertions(+), 4 deletions(-)
>
> diff --git a/Documentation/devicetree/bindings/input/elan,ekth6915.yaml b/Documentation/devicetree/bindings/input/elan,ekth6915.yaml
> index cb3e1801b0d3..81c391952ccc 100644
> --- a/Documentation/devicetree/bindings/input/elan,ekth6915.yaml
> +++ b/Documentation/devicetree/bindings/input/elan,ekth6915.yaml
> @@ -4,14 +4,14 @@
>  $id: http://devicetree.org/schemas/input/elan,ekth6915.yaml#
>  $schema: http://devicetree.org/meta-schemas/core.yaml#
>
> -title: Elan eKTH6915 touchscreen controller
> +title: Elan I2C-HID touchscreen controllers
>
>  maintainers:
>    - Douglas Anderson <dianders@chromium.org>
>
>  description:
> -  Supports the Elan eKTH6915 touchscreen controller.
> -  This touchscreen controller uses the i2c-hid protocol with a reset GPIO.
> +  Supports the Elan eKTH6915 and other I2C-HID touchscreen controllers.
> +  These touchscreen controller use the i2c-hid protocol with a reset GPIO.
>
>  allOf:
>    - $ref: /schemas/input/touchscreen/touchscreen.yaml#
> @@ -23,12 +23,18 @@ properties:
>            - enum:
>                - elan,ekth5015m
>            - const: elan,ekth6915
> +      - items:
> +          - enum:
> +              - elan,ekth8d18
> +          - const: elan,ekth6a12nay

The "enum" above is weird, but it matches what we did for
"elan,ekth5015m" so I guess it's fine? I'd leave it up to bindings
maintainers. I guess the assumption is that we might add additional
touchscreens to the list...


>    reg:
> -    const: 0x10
> +    enum:
> +      - 0x10
> +      - 0x16

Again happy to leave it to the bindings maintainers, but _maybe_ just
drop the "reg" parts here and below. It doesn't really have to be part
of the bindings.
Rob Herring (Arm) March 14, 2025, 11:42 p.m. UTC | #2
On Fri, Mar 14, 2025 at 02:58:36PM -0700, Doug Anderson wrote:
> Hi,
> 
> 
> On Wed, Mar 12, 2025 at 3:43 AM Chen-Yu Tsai <wenst@chromium.org> wrote:
> >
> > The Elan eKTH8D18 touchscreen controller is an I2C HID device with a
> > longer boot-up time. Power sequence timing wise it is compatible with
> > the eKTH6A12NAY, with a power-on delay of at least 5ms, 20ms
> > out-of-reset for I2C ack response, and 150ms out-of-reset for I2C HID
> > enumeration. Enumeration and subsequent operation follows the I2C HID
> > standard. The eKTH6A12NAY requires longer times for both parts.
> 
> Somehow the last sentence above confused me. Can it just be dropped?
> All you care about is that the new trackpad matches the timings for
> "eKTH6A12NAY". Not sure what you mean by "eKTH6A12NAY" needing
> "longer" timings.
> 
> 
> > Add a compatible string for it with the ekth6a12nay one as a fallback.
> >
> > Signed-off-by: Chen-Yu Tsai <wenst@chromium.org>
> > ---
> >  .../bindings/input/elan,ekth6915.yaml         | 29 ++++++++++++++++---
> >  1 file changed, 25 insertions(+), 4 deletions(-)
> >
> > diff --git a/Documentation/devicetree/bindings/input/elan,ekth6915.yaml b/Documentation/devicetree/bindings/input/elan,ekth6915.yaml
> > index cb3e1801b0d3..81c391952ccc 100644
> > --- a/Documentation/devicetree/bindings/input/elan,ekth6915.yaml
> > +++ b/Documentation/devicetree/bindings/input/elan,ekth6915.yaml
> > @@ -4,14 +4,14 @@
> >  $id: http://devicetree.org/schemas/input/elan,ekth6915.yaml#
> >  $schema: http://devicetree.org/meta-schemas/core.yaml#
> >
> > -title: Elan eKTH6915 touchscreen controller
> > +title: Elan I2C-HID touchscreen controllers
> >
> >  maintainers:
> >    - Douglas Anderson <dianders@chromium.org>
> >
> >  description:
> > -  Supports the Elan eKTH6915 touchscreen controller.
> > -  This touchscreen controller uses the i2c-hid protocol with a reset GPIO.
> > +  Supports the Elan eKTH6915 and other I2C-HID touchscreen controllers.
> > +  These touchscreen controller use the i2c-hid protocol with a reset GPIO.
> >
> >  allOf:
> >    - $ref: /schemas/input/touchscreen/touchscreen.yaml#
> > @@ -23,12 +23,18 @@ properties:
> >            - enum:
> >                - elan,ekth5015m
> >            - const: elan,ekth6915
> > +      - items:
> > +          - enum:
> > +              - elan,ekth8d18
> > +          - const: elan,ekth6a12nay
> 
> The "enum" above is weird, but it matches what we did for
> "elan,ekth5015m" so I guess it's fine? I'd leave it up to bindings
> maintainers. I guess the assumption is that we might add additional
> touchscreens to the list...

Yes, but up to you all if that's a valid assumption.

> 
> 
> >    reg:
> > -    const: 0x10
> > +    enum:
> > +      - 0x10
> > +      - 0x16
> 
> Again happy to leave it to the bindings maintainers, but _maybe_ just
> drop the "reg" parts here and below. It doesn't really have to be part
> of the bindings.

I tend to agree. Sometimes we list I2C addresses as that is part of the 
device whereas elsewhere it is not. I don't know that it's worth the 
if/then schema in this case. 

Rob
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/input/elan,ekth6915.yaml b/Documentation/devicetree/bindings/input/elan,ekth6915.yaml
index cb3e1801b0d3..81c391952ccc 100644
--- a/Documentation/devicetree/bindings/input/elan,ekth6915.yaml
+++ b/Documentation/devicetree/bindings/input/elan,ekth6915.yaml
@@ -4,14 +4,14 @@ 
 $id: http://devicetree.org/schemas/input/elan,ekth6915.yaml#
 $schema: http://devicetree.org/meta-schemas/core.yaml#
 
-title: Elan eKTH6915 touchscreen controller
+title: Elan I2C-HID touchscreen controllers
 
 maintainers:
   - Douglas Anderson <dianders@chromium.org>
 
 description:
-  Supports the Elan eKTH6915 touchscreen controller.
-  This touchscreen controller uses the i2c-hid protocol with a reset GPIO.
+  Supports the Elan eKTH6915 and other I2C-HID touchscreen controllers.
+  These touchscreen controller use the i2c-hid protocol with a reset GPIO.
 
 allOf:
   - $ref: /schemas/input/touchscreen/touchscreen.yaml#
@@ -23,12 +23,18 @@  properties:
           - enum:
               - elan,ekth5015m
           - const: elan,ekth6915
+      - items:
+          - enum:
+              - elan,ekth8d18
+          - const: elan,ekth6a12nay
       - enum:
           - elan,ekth6915
           - elan,ekth6a12nay
 
   reg:
-    const: 0x10
+    enum:
+      - 0x10
+      - 0x16
 
   interrupts:
     maxItems: 1
@@ -58,6 +64,21 @@  required:
   - interrupts
   - vcc33-supply
 
+if:
+  properties:
+    compatible:
+      contains:
+        enum:
+          - elan,ekth8d18
+then:
+  properties:
+    reg:
+      const: 0x16
+else:
+  properties:
+    reg:
+      const: 0x10
+
 additionalProperties: false
 
 examples: