All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/2] Add the clock stretching i2c property
@ 2023-03-12 14:55 Andi Shyti
  2023-03-12 14:55 ` [PATCH v2 1/2] dt-bindings: i2c: mpc: Mark "fsl,timeout" as deprecated Andi Shyti
  2023-03-12 14:55 ` [PATCH v2 2/2] i2c: mpc: Use i2c-scl-clk-low-timeout-ms i2c property Andi Shyti
  0 siblings, 2 replies; 4+ messages in thread
From: Andi Shyti @ 2023-03-12 14:55 UTC (permalink / raw)
  To: linux-i2c, devicetree, linux-kernel
  Cc: Wolfram Sang, Rob Herring, Krzysztof Kozlowski, Chris Packham,
	Ryan Chen, Andi Shyti

Hello,

fter a discussion between Krzysztof and Ryan[1], it has become
apparent that the i2c binding is lacking the definition of a
property that needs to be added at a more generic level. This
property is also used by the mpc i2c controller, which has been
updated in the second patch.

The DTS schema change has been sent as github pull reqest[2].

Thanks Krzysztof for the review.

Thank you,
Andi

[1] https://lore.kernel.org/all/c41ee6b5-ddb4-1253-de54-a295b3bab2cc@linaro.org/
[2] https://github.com/devicetree-org/dt-schema/pull/102

Changelog
=========
v1 -> v2:
 - Removed the binding patch and send through a different channel
 - To ensure back compatibility, which was broken in v1, the
   legacy "fsl,timeout" has not been removed and marked as
   deprecated. In the driver the that property is checked anyway
   as a fallback in case the main i2c-scl-clk-low-timeout-ms is
   missing.

Andi Shyti (2):
  dt-bindings: i2c: mpc: Mark "fsl,timeout" as deprecated
  i2c: mpc: Use i2c-scl-clk-low-timeout-ms i2c property

 Documentation/devicetree/bindings/i2c/i2c-mpc.yaml |  3 ++-
 drivers/i2c/busses/i2c-mpc.c                       | 11 ++++++++++-
 2 files changed, 12 insertions(+), 2 deletions(-)

-- 
2.39.2


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH v2 1/2] dt-bindings: i2c: mpc: Mark "fsl,timeout" as deprecated
  2023-03-12 14:55 [PATCH v2 0/2] Add the clock stretching i2c property Andi Shyti
@ 2023-03-12 14:55 ` Andi Shyti
  2023-03-12 14:55 ` [PATCH v2 2/2] i2c: mpc: Use i2c-scl-clk-low-timeout-ms i2c property Andi Shyti
  1 sibling, 0 replies; 4+ messages in thread
From: Andi Shyti @ 2023-03-12 14:55 UTC (permalink / raw)
  To: linux-i2c, devicetree, linux-kernel
  Cc: Wolfram Sang, Rob Herring, Krzysztof Kozlowski, Chris Packham,
	Ryan Chen, Andi Shyti

Now we have the i2c-scl-clk-low-timeout-ms property defined in
the i2c schema.

Mark "fsl,timeout" as deprecated and update the example.

Signed-off-by: Andi Shyti <andi.shyti@kernel.org>
---
 Documentation/devicetree/bindings/i2c/i2c-mpc.yaml | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/Documentation/devicetree/bindings/i2c/i2c-mpc.yaml b/Documentation/devicetree/bindings/i2c/i2c-mpc.yaml
index 018e1b944424..bd2dd82471c1 100644
--- a/Documentation/devicetree/bindings/i2c/i2c-mpc.yaml
+++ b/Documentation/devicetree/bindings/i2c/i2c-mpc.yaml
@@ -43,6 +43,7 @@ properties:
 
   fsl,timeout:
     $ref: /schemas/types.yaml#/definitions/uint32
+    deprecated: true
     description: |
       I2C bus timeout in microseconds
 
@@ -95,6 +96,6 @@ examples:
         interrupts = <43 2>;
         interrupt-parent = <&mpic>;
         clock-frequency = <400000>;
-        fsl,timeout = <10000>;
+        i2c-scl-clk-low-timeout-ms = <10000>;
     };
 ...
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH v2 2/2] i2c: mpc: Use i2c-scl-clk-low-timeout-ms i2c property
  2023-03-12 14:55 [PATCH v2 0/2] Add the clock stretching i2c property Andi Shyti
  2023-03-12 14:55 ` [PATCH v2 1/2] dt-bindings: i2c: mpc: Mark "fsl,timeout" as deprecated Andi Shyti
@ 2023-03-12 14:55 ` Andi Shyti
  2023-03-12 20:20   ` Chris Packham
  1 sibling, 1 reply; 4+ messages in thread
From: Andi Shyti @ 2023-03-12 14:55 UTC (permalink / raw)
  To: linux-i2c, devicetree, linux-kernel
  Cc: Wolfram Sang, Rob Herring, Krzysztof Kozlowski, Chris Packham,
	Ryan Chen, Andi Shyti

"fsl,timeout" is marked as deprecated and replaced by the
"i2c-scl-clk-low-timeout-ms" i2c property.

Use this latter and, in case it is missing, for back
compatibility, check whether we still have "fsl,timeout" defined.

Signed-off-by: Andi Shyti <andi.shyti@kernel.org>
---
 drivers/i2c/busses/i2c-mpc.c | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/drivers/i2c/busses/i2c-mpc.c b/drivers/i2c/busses/i2c-mpc.c
index 81ac92bb4f6f..fe6279a353c6 100644
--- a/drivers/i2c/busses/i2c-mpc.c
+++ b/drivers/i2c/busses/i2c-mpc.c
@@ -846,7 +846,16 @@ static int fsl_i2c_probe(struct platform_device *op)
 			mpc_i2c_setup_8xxx(op->dev.of_node, i2c, clock);
 	}
 
-	prop = of_get_property(op->dev.of_node, "fsl,timeout", &plen);
+	prop = of_get_property(op->dev.of_node,
+			       "i2c-scl-clk-low-timeout-ms", &plen);
+
+	/*
+	 * ensuring back compatibility as
+	 * "fsl,timeout" is marked as deprecated
+	 */
+	if (!prop)
+		prop = of_get_property(op->dev.of_node, "fsl,timeout", &plen);
+
 	if (prop && plen == sizeof(u32)) {
 		mpc_ops.timeout = *prop * HZ / 1000000;
 		if (mpc_ops.timeout < 5)
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH v2 2/2] i2c: mpc: Use i2c-scl-clk-low-timeout-ms i2c property
  2023-03-12 14:55 ` [PATCH v2 2/2] i2c: mpc: Use i2c-scl-clk-low-timeout-ms i2c property Andi Shyti
@ 2023-03-12 20:20   ` Chris Packham
  0 siblings, 0 replies; 4+ messages in thread
From: Chris Packham @ 2023-03-12 20:20 UTC (permalink / raw)
  To: Andi Shyti, linux-i2c, devicetree, linux-kernel
  Cc: Wolfram Sang, Rob Herring, Krzysztof Kozlowski, Ryan Chen


On 13/03/23 03:55, Andi Shyti wrote:
> "fsl,timeout" is marked as deprecated and replaced by the
> "i2c-scl-clk-low-timeout-ms" i2c property.
>
> Use this latter and, in case it is missing, for back
> compatibility, check whether we still have "fsl,timeout" defined.
>
> Signed-off-by: Andi Shyti <andi.shyti@kernel.org>
> ---
>   drivers/i2c/busses/i2c-mpc.c | 11 ++++++++++-
>   1 file changed, 10 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/i2c/busses/i2c-mpc.c b/drivers/i2c/busses/i2c-mpc.c
> index 81ac92bb4f6f..fe6279a353c6 100644
> --- a/drivers/i2c/busses/i2c-mpc.c
> +++ b/drivers/i2c/busses/i2c-mpc.c
> @@ -846,7 +846,16 @@ static int fsl_i2c_probe(struct platform_device *op)
>   			mpc_i2c_setup_8xxx(op->dev.of_node, i2c, clock);
>   	}
>   
> -	prop = of_get_property(op->dev.of_node, "fsl,timeout", &plen);
> +	prop = of_get_property(op->dev.of_node,
> +			       "i2c-scl-clk-low-timeout-ms", &plen);
> +
> +	/*
> +	 * ensuring back compatibility as
> +	 * "fsl,timeout" is marked as deprecated
> +	 */
> +	if (!prop)
> +		prop = of_get_property(op->dev.of_node, "fsl,timeout", &plen);
> +
>   	if (prop && plen == sizeof(u32)) {
>   		mpc_ops.timeout = *prop * HZ / 1000000;
>   		if (mpc_ops.timeout < 5)

While you're here it might make sense to clean this up to use 
of_property_read_u32().

With or without that additional cleanup:

Reviewed-by: Chris Packham <chris.packham@alliedtelesis.co.nz>

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2023-03-12 20:20 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-03-12 14:55 [PATCH v2 0/2] Add the clock stretching i2c property Andi Shyti
2023-03-12 14:55 ` [PATCH v2 1/2] dt-bindings: i2c: mpc: Mark "fsl,timeout" as deprecated Andi Shyti
2023-03-12 14:55 ` [PATCH v2 2/2] i2c: mpc: Use i2c-scl-clk-low-timeout-ms i2c property Andi Shyti
2023-03-12 20:20   ` Chris Packham

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.