* [PATCH v5 1/3] dt-bindings: i2c: mpc: Mark "fsl,timeout" as deprecated
2023-03-17 23:33 [PATCH v5 0/3] Add the clock stretching i2c property Andi Shyti
@ 2023-03-17 23:33 ` Andi Shyti
2023-03-29 19:07 ` Wolfram Sang
2023-03-17 23:33 ` [PATCH v5 2/3] i2c: mpc: Use of_property_read_u32 instead of of_get_property Andi Shyti
` (2 subsequent siblings)
3 siblings, 1 reply; 9+ messages in thread
From: Andi Shyti @ 2023-03-17 23:33 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>
Reviewed-by: Rob Herring <robh@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] 9+ messages in thread
* Re: [PATCH v5 1/3] dt-bindings: i2c: mpc: Mark "fsl,timeout" as deprecated
2023-03-17 23:33 ` [PATCH v5 1/3] dt-bindings: i2c: mpc: Mark "fsl,timeout" as deprecated Andi Shyti
@ 2023-03-29 19:07 ` Wolfram Sang
0 siblings, 0 replies; 9+ messages in thread
From: Wolfram Sang @ 2023-03-29 19:07 UTC (permalink / raw)
To: Andi Shyti
Cc: linux-i2c, devicetree, linux-kernel, Rob Herring,
Krzysztof Kozlowski, Chris Packham, Ryan Chen
[-- Attachment #1: Type: text/plain, Size: 347 bytes --]
On Sat, Mar 18, 2023 at 12:33:36AM +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>
> Reviewed-by: Rob Herring <robh@kernel.org>
Applied to for-next, thanks!
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH v5 2/3] i2c: mpc: Use of_property_read_u32 instead of of_get_property
2023-03-17 23:33 [PATCH v5 0/3] Add the clock stretching i2c property Andi Shyti
2023-03-17 23:33 ` [PATCH v5 1/3] dt-bindings: i2c: mpc: Mark "fsl,timeout" as deprecated Andi Shyti
@ 2023-03-17 23:33 ` Andi Shyti
2023-03-29 19:08 ` Wolfram Sang
2023-03-17 23:33 ` [PATCH v5 3/3] i2c: mpc: Use i2c-scl-clk-low-timeout-us i2c property Andi Shyti
2023-03-29 19:06 ` [PATCH v5 0/3] Add the clock stretching " Wolfram Sang
3 siblings, 1 reply; 9+ messages in thread
From: Andi Shyti @ 2023-03-17 23:33 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 bec0c5dc20d16..02baba2284e27 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] 9+ messages in thread
* Re: [PATCH v5 2/3] i2c: mpc: Use of_property_read_u32 instead of of_get_property
2023-03-17 23:33 ` [PATCH v5 2/3] i2c: mpc: Use of_property_read_u32 instead of of_get_property Andi Shyti
@ 2023-03-29 19:08 ` Wolfram Sang
0 siblings, 0 replies; 9+ messages in thread
From: Wolfram Sang @ 2023-03-29 19:08 UTC (permalink / raw)
To: Andi Shyti
Cc: linux-i2c, devicetree, linux-kernel, Rob Herring,
Krzysztof Kozlowski, Chris Packham, Ryan Chen
[-- Attachment #1: Type: text/plain, Size: 576 bytes --]
On Sat, Mar 18, 2023 at 12:33:37AM +0100, Andi Shyti wrote:
> "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>
Fixed this checkpatch warning:
WARNING: 'retreiving' may be misspelled - perhaps 'retrieving'?
and applied to for-next, thanks!
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH v5 3/3] i2c: mpc: Use i2c-scl-clk-low-timeout-us i2c property
2023-03-17 23:33 [PATCH v5 0/3] Add the clock stretching i2c property Andi Shyti
2023-03-17 23:33 ` [PATCH v5 1/3] dt-bindings: i2c: mpc: Mark "fsl,timeout" as deprecated Andi Shyti
2023-03-17 23:33 ` [PATCH v5 2/3] i2c: mpc: Use of_property_read_u32 instead of of_get_property Andi Shyti
@ 2023-03-17 23:33 ` Andi Shyti
2023-03-29 19:08 ` Wolfram Sang
2023-03-29 19:06 ` [PATCH v5 0/3] Add the clock stretching " Wolfram Sang
3 siblings, 1 reply; 9+ messages in thread
From: Andi Shyti @ 2023-03-17 23:33 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>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
---
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 02baba2284e27..cfd074ee6d547 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] 9+ messages in thread
* Re: [PATCH v5 3/3] i2c: mpc: Use i2c-scl-clk-low-timeout-us i2c property
2023-03-17 23:33 ` [PATCH v5 3/3] i2c: mpc: Use i2c-scl-clk-low-timeout-us i2c property Andi Shyti
@ 2023-03-29 19:08 ` Wolfram Sang
0 siblings, 0 replies; 9+ messages in thread
From: Wolfram Sang @ 2023-03-29 19:08 UTC (permalink / raw)
To: Andi Shyti
Cc: linux-i2c, devicetree, linux-kernel, Rob Herring,
Krzysztof Kozlowski, Chris Packham, Ryan Chen
[-- Attachment #1: Type: text/plain, Size: 587 bytes --]
On Sat, Mar 18, 2023 at 12:33:38AM +0100, 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>
Applied to for-next, thanks!
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v5 0/3] Add the clock stretching i2c property
2023-03-17 23:33 [PATCH v5 0/3] Add the clock stretching i2c property Andi Shyti
` (2 preceding siblings ...)
2023-03-17 23:33 ` [PATCH v5 3/3] i2c: mpc: Use i2c-scl-clk-low-timeout-us i2c property Andi Shyti
@ 2023-03-29 19:06 ` Wolfram Sang
2023-03-29 23:51 ` Andi Shyti
3 siblings, 1 reply; 9+ messages in thread
From: Wolfram Sang @ 2023-03-29 19:06 UTC (permalink / raw)
To: Andi Shyti
Cc: linux-i2c, devicetree, linux-kernel, Rob Herring,
Krzysztof Kozlowski, Chris Packham, Ryan Chen
[-- Attachment #1: Type: text/plain, Size: 322 bytes --]
> The DTS schema has been applied in commit c83dd2cb836e ("schemas:
> i2c: Add the clock stretching property").
Everyone, A general remark: If bindings for the dtschema are added,
please include the linux-i2c mailing list. This binding is OK, but it
would be good to have the discussion also here for additional input.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v5 0/3] Add the clock stretching i2c property
2023-03-29 19:06 ` [PATCH v5 0/3] Add the clock stretching " Wolfram Sang
@ 2023-03-29 23:51 ` Andi Shyti
0 siblings, 0 replies; 9+ messages in thread
From: Andi Shyti @ 2023-03-29 23:51 UTC (permalink / raw)
To: Wolfram Sang, Andi Shyti, linux-i2c, devicetree, linux-kernel,
Rob Herring, Krzysztof Kozlowski, Chris Packham, Ryan Chen
Hi Wolfram,
On Wed, Mar 29, 2023 at 09:06:43PM +0200, Wolfram Sang wrote:
>
> > The DTS schema has been applied in commit c83dd2cb836e ("schemas:
> > i2c: Add the clock stretching property").
>
> Everyone, A general remark: If bindings for the dtschema are added,
> please include the linux-i2c mailing list. This binding is OK, but it
> would be good to have the discussion also here for additional input.
Thanks for letting me know. It's actually my mistake, as I didn't
check how to properly distribute the patch to all relevant
parties.
Regarding dtschema patches, they are typically submitted as
GitHub pull requests. How should I send it to the linux-i2c?
Should I also send it to the mailing list like any other patch?
(This might make the code review process somewhat confusing,
though).
Thanks,
Andi
^ permalink raw reply [flat|nested] 9+ messages in thread