Re: [PATCH 2/2] i2c: mpc: Use the i2c-scl-clk-low-timeout-ms property

From: Krzysztof Kozlowski
Date: Sun Mar 12 2023 - 09:44:31 EST


On 12/03/2023 14:19, Andi Shyti wrote:
> Now we have the i2c-scl-clk-low-timeout-ms property defined in
> the binding. Use it and remove the previous "fsl,timeout".
>
> Signed-off-by: Andi Shyti <andi.shyti@xxxxxxxxxx>
> Cc: Chris Packham <chris.packham@xxxxxxxxxxxxxxxxxxx>
> ---
> Documentation/devicetree/bindings/i2c/i2c-mpc.yaml | 12 ++++++------
> drivers/i2c/busses/i2c-mpc.c | 3 ++-
> 2 files changed, 8 insertions(+), 7 deletions(-)
>
> diff --git a/Documentation/devicetree/bindings/i2c/i2c-mpc.yaml b/Documentation/devicetree/bindings/i2c/i2c-mpc.yaml
> index 018e1b944424..c01547585456 100644
> --- a/Documentation/devicetree/bindings/i2c/i2c-mpc.yaml
> +++ b/Documentation/devicetree/bindings/i2c/i2c-mpc.yaml
> @@ -41,11 +41,6 @@ properties:
> if defined, the clock settings from the bootloader are
> preserved (not touched)
>
> - fsl,timeout:
> - $ref: /schemas/types.yaml#/definitions/uint32
> - description: |
> - I2C bus timeout in microseconds

Instead:
deprecated: true

> -
> fsl,i2c-erratum-a004447:
> $ref: /schemas/types.yaml#/definitions/flag
> description: |
> @@ -53,6 +48,11 @@ properties:
> says that the standard i2c recovery scheme mechanism does
> not work and an alternate implementation is needed.
>
> + i2c-scl-clk-low-timeout-ms:
> + description:
> + Indicates the SCL timeouts which used to force the client
> + into a waiting state

No need for this - will be coming from dtschema.

> +
> required:
> - compatible
> - reg
> @@ -95,6 +95,6 @@ examples:
> interrupts = <43 2>;
> interrupt-parent = <&mpic>;
> clock-frequency = <400000>;
> - fsl,timeout = <10000>;
> + i2c-scl-clk-low-timeout-ms = <10000>;
> };
> ...
> diff --git a/drivers/i2c/busses/i2c-mpc.c b/drivers/i2c/busses/i2c-mpc.c
> index 81ac92bb4f6f..93c484efc3f3 100644
> --- a/drivers/i2c/busses/i2c-mpc.c
> +++ b/drivers/i2c/busses/i2c-mpc.c
> @@ -846,7 +846,8 @@ 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);

That's an ABI break. You need to keep old code as fallback.


Best regards,
Krzysztof