* [PATCH v4 1/3] dt-bindings: i2c: mpc: Mark "fsl,timeout" as deprecated
2023-03-14 21:56 [PATCH v4 0/3] Add the clock stretching i2c property Andi Shyti
@ 2023-03-14 21:56 ` Andi Shyti
2023-03-16 20:51 ` Rob Herring
2023-03-14 21:56 ` [PATCH v4 2/3] i2c: mpc: Use of_property_read_u32 instead of of_get_property Andi Shyti
2023-03-14 21:56 ` [PATCH v4 3/3] i2c: mpc: Use i2c-scl-clk-low-timeout-ms i2c property Andi Shyti
2 siblings, 1 reply; 11+ messages in thread
From: Andi Shyti @ 2023-03-14 21:56 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-us 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 018e1b9444248..70fb69b923c46 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-us = <10000>;
};
...
--
2.39.2
^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH v4 1/3] dt-bindings: i2c: mpc: Mark "fsl,timeout" as deprecated
2023-03-14 21:56 ` [PATCH v4 1/3] dt-bindings: i2c: mpc: Mark "fsl,timeout" as deprecated Andi Shyti
@ 2023-03-16 20:51 ` Rob Herring
0 siblings, 0 replies; 11+ messages in thread
From: Rob Herring @ 2023-03-16 20:51 UTC (permalink / raw)
To: Andi Shyti
Cc: Krzysztof Kozlowski, linux-i2c, Ryan Chen, devicetree,
linux-kernel, Wolfram Sang, Chris Packham, Rob Herring
On Tue, 14 Mar 2023 22:56:10 +0100, Andi Shyti wrote:
> Now we have the i2c-scl-clk-low-timeout-us 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(-)
>
Reviewed-by: Rob Herring <robh@kernel.org>
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH v4 2/3] i2c: mpc: Use of_property_read_u32 instead of of_get_property
2023-03-14 21:56 [PATCH v4 0/3] Add the clock stretching i2c property Andi Shyti
2023-03-14 21:56 ` [PATCH v4 1/3] dt-bindings: i2c: mpc: Mark "fsl,timeout" as deprecated Andi Shyti
@ 2023-03-14 21:56 ` Andi Shyti
2023-03-14 21:56 ` [PATCH v4 3/3] i2c: mpc: Use i2c-scl-clk-low-timeout-ms i2c property Andi Shyti
2 siblings, 0 replies; 11+ messages in thread
From: Andi Shyti @ 2023-03-14 21:56 UTC (permalink / raw)
To: linux-i2c, devicetree, linux-kernel
Cc: Wolfram Sang, Rob Herring, Krzysztof Kozlowski, Chris Packham,
Ryan Chen, Andi Shyti
"of_property_read_u32()" is preferred to "of_get_property()" for
retreiving u32 from the device tree. Replace it.
Suggested-by: Chris Packham <chris.packham@alliedtelesis.co.nz>
Signed-off-by: Andi Shyti <andi.shyti@kernel.org>
Tested-by: Chris Packham <chris.packham@alliedtelesis.co.nz>
Reviewed-by: Chris Packham <chris.packham@alliedtelesis.co.nz>
---
drivers/i2c/busses/i2c-mpc.c | 25 +++++++++++++------------
1 file changed, 13 insertions(+), 12 deletions(-)
diff --git a/drivers/i2c/busses/i2c-mpc.c b/drivers/i2c/busses/i2c-mpc.c
index 81ac92bb4f6f1..87e5c1725750f 100644
--- a/drivers/i2c/busses/i2c-mpc.c
+++ b/drivers/i2c/busses/i2c-mpc.c
@@ -770,7 +770,6 @@ static const struct i2c_algorithm mpc_algo = {
static struct i2c_adapter mpc_ops = {
.owner = THIS_MODULE,
.algo = &mpc_algo,
- .timeout = HZ,
};
static struct i2c_bus_recovery_info fsl_i2c_recovery_info = {
@@ -781,11 +780,9 @@ static int fsl_i2c_probe(struct platform_device *op)
{
const struct mpc_i2c_data *data;
struct mpc_i2c *i2c;
- const u32 *prop;
- u32 clock = MPC_I2C_CLOCK_LEGACY;
- int result = 0;
- int plen;
struct clk *clk;
+ int result;
+ u32 clock;
int err;
i2c = devm_kzalloc(&op->dev, sizeof(*i2c), GFP_KERNEL);
@@ -831,10 +828,10 @@ static int fsl_i2c_probe(struct platform_device *op)
if (of_property_read_bool(op->dev.of_node, "fsl,preserve-clocking")) {
clock = MPC_I2C_CLOCK_PRESERVE;
} else {
- prop = of_get_property(op->dev.of_node, "clock-frequency",
- &plen);
- if (prop && plen == sizeof(u32))
- clock = *prop;
+ result = of_property_read_u32(op->dev.of_node,
+ "clock-frequency", &clock);
+ if (result)
+ clock = MPC_I2C_CLOCK_LEGACY;
}
data = device_get_match_data(&op->dev);
@@ -846,12 +843,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);
- if (prop && plen == sizeof(u32)) {
- mpc_ops.timeout = *prop * HZ / 1000000;
+ result = of_property_read_u32(op->dev.of_node,
+ "fsl,timeout", &mpc_ops.timeout);
+ if (!result) {
+ mpc_ops.timeout *= HZ / 1000000;
if (mpc_ops.timeout < 5)
mpc_ops.timeout = 5;
+ } else {
+ mpc_ops.timeout = HZ;
}
+
dev_info(i2c->dev, "timeout %u us\n", mpc_ops.timeout * 1000000 / HZ);
if (of_property_read_bool(op->dev.of_node, "fsl,i2c-erratum-a004447"))
--
2.39.2
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH v4 3/3] i2c: mpc: Use i2c-scl-clk-low-timeout-ms i2c property
2023-03-14 21:56 [PATCH v4 0/3] Add the clock stretching i2c property Andi Shyti
2023-03-14 21:56 ` [PATCH v4 1/3] dt-bindings: i2c: mpc: Mark "fsl,timeout" as deprecated Andi Shyti
2023-03-14 21:56 ` [PATCH v4 2/3] i2c: mpc: Use of_property_read_u32 instead of of_get_property Andi Shyti
@ 2023-03-14 21:56 ` Andi Shyti
2023-03-14 22:00 ` Chris Packham
` (2 more replies)
2 siblings, 3 replies; 11+ messages in thread
From: Andi Shyti @ 2023-03-14 21:56 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-us" 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>
Reviewed-by: Chris Packham <chris.packham@alliedtelesis.co.nz>
Tested-by: Chris Packham <chris.packham@alliedtelesis.co.nz>
---
drivers/i2c/busses/i2c-mpc.c | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)
diff --git a/drivers/i2c/busses/i2c-mpc.c b/drivers/i2c/busses/i2c-mpc.c
index 87e5c1725750f..e8798f9c23fcc 100644
--- a/drivers/i2c/busses/i2c-mpc.c
+++ b/drivers/i2c/busses/i2c-mpc.c
@@ -843,8 +843,18 @@ static int fsl_i2c_probe(struct platform_device *op)
mpc_i2c_setup_8xxx(op->dev.of_node, i2c, clock);
}
+ /*
+ * "fsl,timeout" has been marked as deprecated and, to maintain
+ * backward compatibility, we will only look for it if
+ * "i2c-scl-clk-low-timeout-ms" is not present.
+ */
result = of_property_read_u32(op->dev.of_node,
- "fsl,timeout", &mpc_ops.timeout);
+ "i2c-scl-clk-low-timeout-us",
+ &mpc_ops.timeout);
+ if (result == -EINVAL)
+ result = of_property_read_u32(op->dev.of_node,
+ "fsl,timeout", &mpc_ops.timeout);
+
if (!result) {
mpc_ops.timeout *= HZ / 1000000;
if (mpc_ops.timeout < 5)
--
2.39.2
^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH v4 3/3] i2c: mpc: Use i2c-scl-clk-low-timeout-ms i2c property
2023-03-14 21:56 ` [PATCH v4 3/3] i2c: mpc: Use i2c-scl-clk-low-timeout-ms i2c property Andi Shyti
@ 2023-03-14 22:00 ` Chris Packham
2023-03-14 22:07 ` Andi Shyti
2023-03-14 22:16 ` [PATCH v5 3/3] i2c: mpc: Use i2c-scl-clk-low-timeout-us " Andi Shyti
2023-03-17 9:25 ` [PATCH v4 3/3] i2c: mpc: Use i2c-scl-clk-low-timeout-ms " Krzysztof Kozlowski
2 siblings, 1 reply; 11+ messages in thread
From: Chris Packham @ 2023-03-14 22:00 UTC (permalink / raw)
To: Andi Shyti, linux-i2c, devicetree, linux-kernel
Cc: Wolfram Sang, Rob Herring, Krzysztof Kozlowski, Ryan Chen
Just to be a pain the subject line still says "ms"
On 15/03/23 10:56, Andi Shyti wrote:
> "fsl,timeout" is marked as deprecated and replaced by the
> "i2c-scl-clk-low-timeout-us" 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>
> Reviewed-by: Chris Packham <chris.packham@alliedtelesis.co.nz>
> Tested-by: Chris Packham <chris.packham@alliedtelesis.co.nz>
> ---
> drivers/i2c/busses/i2c-mpc.c | 12 +++++++++++-
> 1 file changed, 11 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/i2c/busses/i2c-mpc.c b/drivers/i2c/busses/i2c-mpc.c
> index 87e5c1725750f..e8798f9c23fcc 100644
> --- a/drivers/i2c/busses/i2c-mpc.c
> +++ b/drivers/i2c/busses/i2c-mpc.c
> @@ -843,8 +843,18 @@ static int fsl_i2c_probe(struct platform_device *op)
> mpc_i2c_setup_8xxx(op->dev.of_node, i2c, clock);
> }
>
> + /*
> + * "fsl,timeout" has been marked as deprecated and, to maintain
> + * backward compatibility, we will only look for it if
> + * "i2c-scl-clk-low-timeout-ms" is not present.
> + */
> result = of_property_read_u32(op->dev.of_node,
> - "fsl,timeout", &mpc_ops.timeout);
> + "i2c-scl-clk-low-timeout-us",
> + &mpc_ops.timeout);
> + if (result == -EINVAL)
> + result = of_property_read_u32(op->dev.of_node,
> + "fsl,timeout", &mpc_ops.timeout);
> +
> if (!result) {
> mpc_ops.timeout *= HZ / 1000000;
> if (mpc_ops.timeout < 5)
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v4 3/3] i2c: mpc: Use i2c-scl-clk-low-timeout-ms i2c property
2023-03-14 22:00 ` Chris Packham
@ 2023-03-14 22:07 ` Andi Shyti
0 siblings, 0 replies; 11+ messages in thread
From: Andi Shyti @ 2023-03-14 22:07 UTC (permalink / raw)
To: Chris Packham
Cc: Andi Shyti, linux-i2c, devicetree, linux-kernel, Wolfram Sang,
Rob Herring, Krzysztof Kozlowski, Ryan Chen
> Just to be a pain the subject line still says "ms"
I have changed hundreds of /ms/us/ in this last half an hour...
of course I forgot some :)
There is also one in the comment.
Thanks for spotting it, Chris!
Andi
> On 15/03/23 10:56, Andi Shyti wrote:
> > "fsl,timeout" is marked as deprecated and replaced by the
> > "i2c-scl-clk-low-timeout-us" 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>
> > Reviewed-by: Chris Packham <chris.packham@alliedtelesis.co.nz>
> > Tested-by: Chris Packham <chris.packham@alliedtelesis.co.nz>
> > ---
> > drivers/i2c/busses/i2c-mpc.c | 12 +++++++++++-
> > 1 file changed, 11 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/i2c/busses/i2c-mpc.c b/drivers/i2c/busses/i2c-mpc.c
> > index 87e5c1725750f..e8798f9c23fcc 100644
> > --- a/drivers/i2c/busses/i2c-mpc.c
> > +++ b/drivers/i2c/busses/i2c-mpc.c
> > @@ -843,8 +843,18 @@ static int fsl_i2c_probe(struct platform_device *op)
> > mpc_i2c_setup_8xxx(op->dev.of_node, i2c, clock);
> > }
> >
> > + /*
> > + * "fsl,timeout" has been marked as deprecated and, to maintain
> > + * backward compatibility, we will only look for it if
> > + * "i2c-scl-clk-low-timeout-ms" is not present.
> > + */
> > result = of_property_read_u32(op->dev.of_node,
> > - "fsl,timeout", &mpc_ops.timeout);
> > + "i2c-scl-clk-low-timeout-us",
> > + &mpc_ops.timeout);
> > + if (result == -EINVAL)
> > + result = of_property_read_u32(op->dev.of_node,
> > + "fsl,timeout", &mpc_ops.timeout);
> > +
> > if (!result) {
> > mpc_ops.timeout *= HZ / 1000000;
> > if (mpc_ops.timeout < 5)
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH v5 3/3] i2c: mpc: Use i2c-scl-clk-low-timeout-us i2c property
2023-03-14 21:56 ` [PATCH v4 3/3] i2c: mpc: Use i2c-scl-clk-low-timeout-ms i2c property Andi Shyti
2023-03-14 22:00 ` Chris Packham
@ 2023-03-14 22:16 ` Andi Shyti
2023-03-17 9:26 ` Krzysztof Kozlowski
2023-03-17 9:25 ` [PATCH v4 3/3] i2c: mpc: Use i2c-scl-clk-low-timeout-ms " Krzysztof Kozlowski
2 siblings, 1 reply; 11+ messages in thread
From: Andi Shyti @ 2023-03-14 22:16 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-us" 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>
Reviewed-by: Chris Packham <chris.packham@alliedtelesis.co.nz>
Tested-by: Chris Packham <chris.packham@alliedtelesis.co.nz>
---
Hi,
this should be the only patch where I forgot an 'ms'.
It should be fixed now.
Thanks, Chris.
V4 -> v5
- replace /ms/us/ in the commit subject and in the comment.
drivers/i2c/busses/i2c-mpc.c | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)
diff --git a/drivers/i2c/busses/i2c-mpc.c b/drivers/i2c/busses/i2c-mpc.c
index 87e5c1725750f..aec3ac387c579 100644
--- a/drivers/i2c/busses/i2c-mpc.c
+++ b/drivers/i2c/busses/i2c-mpc.c
@@ -843,8 +843,18 @@ static int fsl_i2c_probe(struct platform_device *op)
mpc_i2c_setup_8xxx(op->dev.of_node, i2c, clock);
}
+ /*
+ * "fsl,timeout" has been marked as deprecated and, to maintain
+ * backward compatibility, we will only look for it if
+ * "i2c-scl-clk-low-timeout-us" is not present.
+ */
result = of_property_read_u32(op->dev.of_node,
- "fsl,timeout", &mpc_ops.timeout);
+ "i2c-scl-clk-low-timeout-us",
+ &mpc_ops.timeout);
+ if (result == -EINVAL)
+ result = of_property_read_u32(op->dev.of_node,
+ "fsl,timeout", &mpc_ops.timeout);
+
if (!result) {
mpc_ops.timeout *= HZ / 1000000;
if (mpc_ops.timeout < 5)
--
2.39.2
^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH v5 3/3] i2c: mpc: Use i2c-scl-clk-low-timeout-us i2c property
2023-03-14 22:16 ` [PATCH v5 3/3] i2c: mpc: Use i2c-scl-clk-low-timeout-us " Andi Shyti
@ 2023-03-17 9:26 ` Krzysztof Kozlowski
2023-03-17 14:00 ` Andi Shyti
0 siblings, 1 reply; 11+ messages in thread
From: Krzysztof Kozlowski @ 2023-03-17 9:26 UTC (permalink / raw)
To: Andi Shyti, linux-i2c, devicetree, linux-kernel
Cc: Wolfram Sang, Rob Herring, Krzysztof Kozlowski, Chris Packham, Ryan Chen
On 14/03/2023 23:16, Andi Shyti wrote:
> "fsl,timeout" is marked as deprecated and replaced by the
> "i2c-scl-clk-low-timeout-us" 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>
> Reviewed-by: Chris Packham <chris.packham@alliedtelesis.co.nz>
> Tested-by: Chris Packham <chris.packham@alliedtelesis.co.nz>
> ---
> Hi,
>
> this should be the only patch where I forgot an 'ms'.
> It should be fixed now.
>
> Thanks, Chris.
>
> V4 -> v5
> - replace /ms/us/ in the commit subject and in the comment.
>
Please send entire new v5, because this messes with our
threading/reviewing and our tools.
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v5 3/3] i2c: mpc: Use i2c-scl-clk-low-timeout-us i2c property
2023-03-17 9:26 ` Krzysztof Kozlowski
@ 2023-03-17 14:00 ` Andi Shyti
0 siblings, 0 replies; 11+ messages in thread
From: Andi Shyti @ 2023-03-17 14:00 UTC (permalink / raw)
To: Krzysztof Kozlowski
Cc: Andi Shyti, linux-i2c, devicetree, linux-kernel, Wolfram Sang,
Rob Herring, Krzysztof Kozlowski, Chris Packham, Ryan Chen
Hi Krzysztof,
On Fri, Mar 17, 2023 at 10:26:21AM +0100, Krzysztof Kozlowski wrote:
> On 14/03/2023 23:16, Andi Shyti wrote:
> > "fsl,timeout" is marked as deprecated and replaced by the
> > "i2c-scl-clk-low-timeout-us" 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>
> > Reviewed-by: Chris Packham <chris.packham@alliedtelesis.co.nz>
> > Tested-by: Chris Packham <chris.packham@alliedtelesis.co.nz>
> > ---
> > Hi,
> >
> > this should be the only patch where I forgot an 'ms'.
> > It should be fixed now.
> >
> > Thanks, Chris.
> >
> > V4 -> v5
> > - replace /ms/us/ in the commit subject and in the comment.
> >
>
> Please send entire new v5, because this messes with our
> threading/reviewing and our tools.
ah... tools!
Sure... will do!
> Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Thanks!
Andi
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v4 3/3] i2c: mpc: Use i2c-scl-clk-low-timeout-ms i2c property
2023-03-14 21:56 ` [PATCH v4 3/3] i2c: mpc: Use i2c-scl-clk-low-timeout-ms i2c property Andi Shyti
2023-03-14 22:00 ` Chris Packham
2023-03-14 22:16 ` [PATCH v5 3/3] i2c: mpc: Use i2c-scl-clk-low-timeout-us " Andi Shyti
@ 2023-03-17 9:25 ` Krzysztof Kozlowski
2 siblings, 0 replies; 11+ messages in thread
From: Krzysztof Kozlowski @ 2023-03-17 9:25 UTC (permalink / raw)
To: Andi Shyti, linux-i2c, devicetree, linux-kernel
Cc: Wolfram Sang, Rob Herring, Krzysztof Kozlowski, Chris Packham, Ryan Chen
On 14/03/2023 22:56, Andi Shyti wrote:
> "fsl,timeout" is marked as deprecated and replaced by the
> "i2c-scl-clk-low-timeout-us" 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>
> Reviewed-by: Chris Packham <chris.packham@alliedtelesis.co.nz>
> Tested-by: Chris Packham <chris.packham@alliedtelesis.co.nz>
> ---
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 11+ messages in thread