Message ID | 20230314215612.23741-4-andi.shyti@kernel.org |
---|---|
State | Superseded |
Headers | show |
Series | Add the clock stretching i2c property | expand |
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)
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)