提交 ce63d6d4 编写于 作者: S Stephen Warren 提交者: Tony Prisk

pinctrl: bcm2835: make use of of_property_read_u32_index()

Use the new standard API of_property_read_u32_index() instead of open-
coding it.
Signed-off-by: NStephen Warren <swarren@wwwdotorg.org>
Signed-off-by: NTony Prisk <linux@prisktech.co.nz>
上级 dc101086
...@@ -699,11 +699,6 @@ static int bcm2835_pctl_dt_node_to_map_pull(struct bcm2835_pinctrl *pc, ...@@ -699,11 +699,6 @@ static int bcm2835_pctl_dt_node_to_map_pull(struct bcm2835_pinctrl *pc,
return 0; 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, static int bcm2835_pctl_dt_node_to_map(struct pinctrl_dev *pctldev,
struct device_node *np, struct device_node *np,
struct pinctrl_map **map, unsigned *num_maps) struct pinctrl_map **map, unsigned *num_maps)
...@@ -761,7 +756,9 @@ static int bcm2835_pctl_dt_node_to_map(struct pinctrl_dev *pctldev, ...@@ -761,7 +756,9 @@ static int bcm2835_pctl_dt_node_to_map(struct pinctrl_dev *pctldev,
return -ENOMEM; return -ENOMEM;
for (i = 0; i < num_pins; i++) { 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)) { if (pin >= ARRAY_SIZE(bcm2835_gpio_pins)) {
dev_err(pc->dev, "%s: invalid brcm,pins value %d\n", dev_err(pc->dev, "%s: invalid brcm,pins value %d\n",
of_node_full_name(np), pin); of_node_full_name(np), pin);
...@@ -770,14 +767,20 @@ static int bcm2835_pctl_dt_node_to_map(struct pinctrl_dev *pctldev, ...@@ -770,14 +767,20 @@ static int bcm2835_pctl_dt_node_to_map(struct pinctrl_dev *pctldev,
} }
if (num_funcs) { 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, err = bcm2835_pctl_dt_node_to_map_func(pc, np, pin,
func, &cur_map); func, &cur_map);
if (err) if (err)
goto out; goto out;
} }
if (num_pulls) { 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, err = bcm2835_pctl_dt_node_to_map_pull(pc, np, pin,
pull, &cur_map); pull, &cur_map);
if (err) if (err)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册