diff options
author | Tom Rini <trini@konsulko.com> | 2018-04-01 20:36:39 -0400 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2018-04-01 20:36:39 -0400 |
commit | 0e5d3e311189ca07aa7b5802deaff9861fc33574 (patch) | |
tree | 13eb58a65e156180e7cb99632f35be33e10baf1c /drivers/pinctrl | |
parent | f3b623fa52ce5c67732ea2d789d5e21667e88db3 (diff) | |
parent | 641599a63df258c3e3cb259c75cdada0cc009d56 (diff) | |
download | u-boot-0e5d3e311189ca07aa7b5802deaff9861fc33574.tar.gz |
Merge git://git.denx.de/u-boot-dm
Diffstat (limited to 'drivers/pinctrl')
-rw-r--r-- | drivers/pinctrl/pinctrl-uclass.c | 19 |
1 files changed, 5 insertions, 14 deletions
diff --git a/drivers/pinctrl/pinctrl-uclass.c b/drivers/pinctrl/pinctrl-uclass.c index 6a73a0679b..a0a326a142 100644 --- a/drivers/pinctrl/pinctrl-uclass.c +++ b/drivers/pinctrl/pinctrl-uclass.c @@ -12,6 +12,7 @@ #include <dm/lists.h> #include <dm/pinctrl.h> #include <dm/util.h> +#include <dm/of_access.h> DECLARE_GLOBAL_DATA_PTR; @@ -63,16 +64,13 @@ static int pinctrl_config_one(struct udevice *config) */ static int pinctrl_select_state_full(struct udevice *dev, const char *statename) { - const void *fdt = gd->fdt_blob; - int node = dev_of_offset(dev); char propname[32]; /* long enough */ const fdt32_t *list; uint32_t phandle; - int config_node; struct udevice *config; int state, size, i, ret; - state = fdt_stringlist_search(fdt, node, "pinctrl-names", statename); + state = dev_read_stringlist_search(dev, "pinctrl-names", statename); if (state < 0) { char *end; /* @@ -85,22 +83,15 @@ static int pinctrl_select_state_full(struct udevice *dev, const char *statename) } snprintf(propname, sizeof(propname), "pinctrl-%d", state); - list = fdt_getprop(fdt, node, propname, &size); + list = dev_read_prop(dev, propname, &size); if (!list) return -EINVAL; size /= sizeof(*list); for (i = 0; i < size; i++) { phandle = fdt32_to_cpu(*list++); - - config_node = fdt_node_offset_by_phandle(fdt, phandle); - if (config_node < 0) { - dev_err(dev, "prop %s index %d invalid phandle\n", - propname, i); - return -EINVAL; - } - ret = uclass_get_device_by_of_offset(UCLASS_PINCONFIG, - config_node, &config); + ret = uclass_get_device_by_phandle_id(UCLASS_PINCONFIG, phandle, + &config); if (ret) return ret; |