2024-01-29 16:49:05

by Bjorn Andersson

[permalink] [raw]
Subject: [PATCH v3 1/2] dt-bindings: HID: i2c-hid: Document reset-related properties

Some I2C HID devices has a reset pin and requires that some specified
time elapses after this reset pin is deasserted, before communication
with the device is attempted.

The Linux implementation is looking for these in the "reset-gpios" and
"post-reset-deassert-delay-ms" properties already, so use these property
names.

Reviewed-by: Johan Hovold <[email protected]>
Signed-off-by: Bjorn Andersson <[email protected]>
---
Documentation/devicetree/bindings/input/hid-over-i2c.yaml | 6 ++++++
1 file changed, 6 insertions(+)

diff --git a/Documentation/devicetree/bindings/input/hid-over-i2c.yaml b/Documentation/devicetree/bindings/input/hid-over-i2c.yaml
index 138caad96a29..f07ff4cb3d26 100644
--- a/Documentation/devicetree/bindings/input/hid-over-i2c.yaml
+++ b/Documentation/devicetree/bindings/input/hid-over-i2c.yaml
@@ -50,6 +50,12 @@ properties:
description: Time required by the device after enabling its regulators
or powering it on, before it is ready for communication.

+ post-reset-deassert-delay-ms:
+ description: Time required by the device after reset has been deasserted,
+ before it is ready for communication.
+
+ reset-gpios: true
+
touchscreen-inverted-x: true

touchscreen-inverted-y: true

--
2.25.1



2024-01-29 16:57:06

by Johan Hovold

[permalink] [raw]
Subject: Re: [PATCH v3 1/2] dt-bindings: HID: i2c-hid: Document reset-related properties

On Mon, Jan 29, 2024 at 08:47:47AM -0800, Bjorn Andersson wrote:
> Some I2C HID devices has a reset pin and requires that some specified
> time elapses after this reset pin is deasserted, before communication
> with the device is attempted.
>
> The Linux implementation is looking for these in the "reset-gpios" and
> "post-reset-deassert-delay-ms" properties already, so use these property
> names.

> + post-reset-deassert-delay-ms:
> + description: Time required by the device after reset has been deasserted,
> + before it is ready for communication.
> +
> + reset-gpios: true

Hmm, for the third time, it seems you ignored my comment that you need
to remove the comment about these properties from the driver as part of
this series.

/*
* Note this is a kernel internal device-property set by x86 platform code,
* this MUST not be used in devicetree files without first adding it to
* the DT bindings.
*/
if (!device_property_read_u32(dev, "post-reset-deassert-delay-ms", &val))
ihid_of->post_reset_delay_ms = val;

> +
> touchscreen-inverted-x: true
>
> touchscreen-inverted-y: true

Johan

2024-01-31 20:22:54

by Rob Herring (Arm)

[permalink] [raw]
Subject: Re: [PATCH v3 1/2] dt-bindings: HID: i2c-hid: Document reset-related properties

On Mon, Jan 29, 2024 at 05:56:47PM +0100, Johan Hovold wrote:
> On Mon, Jan 29, 2024 at 08:47:47AM -0800, Bjorn Andersson wrote:
> > Some I2C HID devices has a reset pin and requires that some specified
> > time elapses after this reset pin is deasserted, before communication
> > with the device is attempted.
> >
> > The Linux implementation is looking for these in the "reset-gpios" and
> > "post-reset-deassert-delay-ms" properties already, so use these property
> > names.
>
> > + post-reset-deassert-delay-ms:
> > + description: Time required by the device after reset has been deasserted,
> > + before it is ready for communication.
> > +
> > + reset-gpios: true
>
> Hmm, for the third time, it seems you ignored my comment that you need
> to remove the comment about these properties from the driver as part of
> this series.
>
> /*
> * Note this is a kernel internal device-property set by x86 platform code,
> * this MUST not be used in devicetree files without first adding it to
> * the DT bindings.
> */
> if (!device_property_read_u32(dev, "post-reset-deassert-delay-ms", &val))
> ihid_of->post_reset_delay_ms = val;

DT devices should have a specific compatible that gives enough detail to
handle this delay or *any* other power sequencing requirement.

OTOH, we've already got one other delay property, what's one more. Sigh.

Acked-by: Rob Herring <[email protected]>

Rob

2024-02-01 08:15:40

by Johan Hovold

[permalink] [raw]
Subject: Re: [PATCH v3 1/2] dt-bindings: HID: i2c-hid: Document reset-related properties

On Wed, Jan 31, 2024 at 02:22:39PM -0600, Rob Herring wrote:
> On Mon, Jan 29, 2024 at 05:56:47PM +0100, Johan Hovold wrote:
> > On Mon, Jan 29, 2024 at 08:47:47AM -0800, Bjorn Andersson wrote:
> > > Some I2C HID devices has a reset pin and requires that some specified
> > > time elapses after this reset pin is deasserted, before communication
> > > with the device is attempted.
> > >
> > > The Linux implementation is looking for these in the "reset-gpios" and
> > > "post-reset-deassert-delay-ms" properties already, so use these property
> > > names.
> >
> > > + post-reset-deassert-delay-ms:
> > > + description: Time required by the device after reset has been deasserted,
> > > + before it is ready for communication.
> > > +
> > > + reset-gpios: true
> >
> > Hmm, for the third time, it seems you ignored my comment that you need
> > to remove the comment about these properties from the driver as part of
> > this series.
> >
> > /*
> > * Note this is a kernel internal device-property set by x86 platform code,
> > * this MUST not be used in devicetree files without first adding it to
> > * the DT bindings.
> > */
> > if (!device_property_read_u32(dev, "post-reset-deassert-delay-ms", &val))
> > ihid_of->post_reset_delay_ms = val;
>
> DT devices should have a specific compatible that gives enough detail to
> handle this delay or *any* other power sequencing requirement.
>
> OTOH, we've already got one other delay property, what's one more. Sigh.
>
> Acked-by: Rob Herring <[email protected]>

Right, and I guess we could do this now before this new property gets
more use. Who knows if those delays are actually correct or may need to
be tweaked down the line.

Apparently we only have one specific i2c-hid compatible in the kernel
(and it's not yet used by the driver).

Johan