* [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.