pinctrl: bcm2835: make use of of_property_read_u32_index()
authorStephen Warren <swarren@wwwdotorg.org>
Thu, 28 Mar 2013 05:09:57 +0000 (05:09 +0000)
committerTony Prisk <linux@prisktech.co.nz>
Thu, 4 Apr 2013 05:05:26 +0000 (18:05 +1300)
Use the new standard API of_property_read_u32_index() instead of open-
coding it.

Signed-off-by: Stephen Warren <swarren@wwwdotorg.org>
Signed-off-by: Tony Prisk <linux@prisktech.co.nz>
drivers/pinctrl/pinctrl-bcm2835.c

index 4eb6d2c4e4df80c3222415ff7463b4db67b730ab..2a2e427d765ee7b35b0635959d58dcdb3a28f0e5 100644 (file)
@@ -699,11 +699,6 @@ static int bcm2835_pctl_dt_node_to_map_pull(struct bcm2835_pinctrl *pc,
        return 0;
 }
 
-static inline u32 prop_u32(struct property *p, int i)
-{
-       return be32_to_cpup(((__be32 *)p->value) + i);
-}
-
 static int bcm2835_pctl_dt_node_to_map(struct pinctrl_dev *pctldev,
                struct device_node *np,
                struct pinctrl_map **map, unsigned *num_maps)
@@ -761,7 +756,9 @@ static int bcm2835_pctl_dt_node_to_map(struct pinctrl_dev *pctldev,
                return -ENOMEM;
 
        for (i = 0; i < num_pins; i++) {
-               pin = prop_u32(pins, i);
+               err = of_property_read_u32_index(np, "brcm,pins", i, &pin);
+               if (err)
+                       goto out;
                if (pin >= ARRAY_SIZE(bcm2835_gpio_pins)) {
                        dev_err(pc->dev, "%s: invalid brcm,pins value %d\n",
                                of_node_full_name(np), pin);
@@ -770,14 +767,20 @@ static int bcm2835_pctl_dt_node_to_map(struct pinctrl_dev *pctldev,
                }
 
                if (num_funcs) {
-                       func = prop_u32(funcs, (num_funcs > 1) ? i : 0);
+                       err = of_property_read_u32_index(np, "brcm,function",
+                                       (num_funcs > 1) ? i : 0, &func);
+                       if (err)
+                               goto out;
                        err = bcm2835_pctl_dt_node_to_map_func(pc, np, pin,
                                                        func, &cur_map);
                        if (err)
                                goto out;
                }
                if (num_pulls) {
-                       pull = prop_u32(pulls, (num_pulls > 1) ? i : 0);
+                       err = of_property_read_u32_index(np, "brcm,pull",
+                                       (num_funcs > 1) ? i : 0, &pull);
+                       if (err)
+                               goto out;
                        err = bcm2835_pctl_dt_node_to_map_pull(pc, np, pin,
                                                        pull, &cur_map);
                        if (err)