[v3,2/3] i2c: mpc: Use of_property_read_u32 instead of of_get_property

Message ID 20230312233613.303408-3-andi.shyti@kernel.org
State New
Headers
Series Add the clock stretching i2c property |

Commit Message

Andi Shyti March 12, 2023, 11:36 p.m. UTC
  "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>
---
 drivers/i2c/busses/i2c-mpc.c | 25 +++++++++++++------------
 1 file changed, 13 insertions(+), 12 deletions(-)
  

Comments

Chris Packham March 13, 2023, 1:53 a.m. UTC | #1
On 13/03/23 12:36, 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>

Reviewed-by: Chris Packham <chris.packham@alliedtelesis.co.nz>

Gave the patches a spin on a P2041RDB so

Tested-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 81ac92bb4f6f..87e5c1725750 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"))
  

Patch

diff --git a/drivers/i2c/busses/i2c-mpc.c b/drivers/i2c/busses/i2c-mpc.c
index 81ac92bb4f6f..87e5c1725750 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"))