bus: imx-weim: Remove open coded "ranges" parsing
PATCH 1/1 bus: imx-weim: Remove open coded "ranges" parsing
"ranges" is a standard property and we have common helper functions for parsing it, so let's use them.
Signed-off-by Rob Herring <[email protected]>
---
Compile tested only!
--- drivers/bus/imx-weim.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-)
drivers/bus/imx-weim.c +10 -9
@@ -10,6 +10,7 @@#include <linux/module.h> #include <linux/clk.h> #include <linux/io.h> +#include <linux/of_address.h> #include <linux/of_device.h> #include <linux/mfd/syscon.h> #include <linux/mfd/syscon/imx6q-iomuxc-gpr.h>
@@ -86,8 +87,8 @@ MODULE_DEVICE_TABLE(of, weim_id_table);static int imx_weim_gpr_setup (struct platform_device *pdev) {struct device_node *np = pdev->dev.of_node; -struct property *prop; -const __be32 *p; +struct of_range_parser parser; +struct of_range range;struct regmap *gpr;u32 gprvals[4 ] = {05 ,/* CS0(128M) CS1(0M) CS2(0M) CS3(0M) */
@@ -106,13 +107,13 @@ static int imx_weim_gpr_setup(struct platform_device *pdev)return 0 ; } -of_property_for_each_u32 (np,"ranges" , prop, p, val) { -if (i %4 ==0 ) { - cs = val; - }else if (i %4 ==3 && val) { - val = (val /SZ_32M ) |1 ; - gprval |= val << cs *3 ; - } +if (of_range_parser_init (&parser, np)) + goto err; + +for_each_of_range (&parser, &range) { + cs = range.bus_addr >>32 ; + val = (range.size /SZ_32M ) |1 ; + gprval |= val << cs *3 ; i++; }
Signature · 1 line
2.39.0
Shawn Guo
AppliedQuoted 4 lines · Rob Herring
"ranges" is a standard property and we have common helper functions for parsing it, so let's use them.
Signed-off-by Rob Herring <[email protected]>
Applied, thanks!