From 7e07a3174cfa926999fde1cbf2a552c9d2fb8e51 Mon Sep 17 00:00:00 2001 From: Stephen Warren Date: Thu, 28 Mar 2013 05:09:57 +0000 Subject: [PATCH] --- yaml --- r: 372287 b: refs/heads/master c: ce63d6d4bb9f601de32d4b99f925a65182521873 h: refs/heads/master i: 372285: 6cafcbc91a29253c61bc88f4ed23f203a90ffa71 372283: 7b03230ae05e9ba0609a4cfdcd0ae3592fed3346 372279: 68c64b0dcdbb9fb592901ba9a510d910eaffbb70 372271: 97da3fd5cd9b15e454fdb2de2bb5bbae4256233e 372255: 6e99acc90ace2cb7ddd9aa9b8e7bce3bb87df647 372223: 06d7e418110b14a2cb2ddd47db9bf34b5154d0ed v: v3 --- [refs] | 2 +- trunk/drivers/pinctrl/pinctrl-bcm2835.c | 19 +++++++++++-------- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/[refs] b/[refs] index 6403040cf3c1..cb9572a0cb95 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: dc1010860b03a0db7683bafb69a4bc2310f4d9ec +refs/heads/master: ce63d6d4bb9f601de32d4b99f925a65182521873 diff --git a/trunk/drivers/pinctrl/pinctrl-bcm2835.c b/trunk/drivers/pinctrl/pinctrl-bcm2835.c index 4eb6d2c4e4df..2a2e427d765e 100644 --- a/trunk/drivers/pinctrl/pinctrl-bcm2835.c +++ b/trunk/drivers/pinctrl/pinctrl-bcm2835.c @@ -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)