diff mbox series

[v3,1/2] dt-bindings: HID: i2c-hid: Document reset-related properties

Message ID 20240129-x13s-touchscreen-v3-1-c4a933034145@quicinc.com (mailing list archive)
State Superseded
Headers show
Series arm64: dts: qcom: sc8280xp-x13s: Enable touchscreen | expand

Commit Message

Bjorn Andersson Jan. 29, 2024, 4:47 p.m. UTC
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 <johan+linaro@kernel.org>
Signed-off-by: Bjorn Andersson <quic_bjorande@quicinc.com>
---
 Documentation/devicetree/bindings/input/hid-over-i2c.yaml | 6 ++++++
 1 file changed, 6 insertions(+)

Comments

Johan Hovold Jan. 29, 2024, 4:56 p.m. UTC | #1
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
Rob Herring (Arm) Jan. 31, 2024, 8:22 p.m. UTC | #2
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 <robh@kernel.org>

Rob
Johan Hovold Feb. 1, 2024, 8:15 a.m. UTC | #3
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 <robh@kernel.org>

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
diff mbox series

Patch

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