Hi Patrice, > From: Patrice CHOTARD <patrice.chot...@st.com> > Sent: vendredi 21 juin 2019 15:39 > > Update .bind callback in order to bind all pinctrl subnodes with > "gpio-controller" > property to gpio_stm32 driver. > > Signed-off-by: Patrice Chotard <patrice.chot...@st.com>
Reviewed-by: Patrick Delaunay <patrick.delau...@st.com> > --- > > drivers/pinctrl/pinctrl_stm32.c | 32 +++++++++++++++++++++++++++++++- > 1 file changed, 31 insertions(+), 1 deletion(-) > > diff --git a/drivers/pinctrl/pinctrl_stm32.c > b/drivers/pinctrl/pinctrl_stm32.c index > 43dbdd9d6a..e2e7be01ed 100644 > --- a/drivers/pinctrl/pinctrl_stm32.c > +++ b/drivers/pinctrl/pinctrl_stm32.c > @@ -1,5 +1,6 @@ > #include <common.h> > #include <dm.h> > +#include <dm/lists.h> > #include <dm/pinctrl.h> > #include <hwspinlock.h> > #include <asm/arch/gpio.h> > @@ -364,6 +365,35 @@ static int stm32_pinctrl_config(int offset) > return 0; > } > > +static int stm32_pinctrl_bind(struct udevice *dev) { > + ofnode node; > + const char *name; > + int ret; > + > + dev_for_each_subnode(node, dev) { > + debug("%s: bind %s\n", __func__, ofnode_get_name(node)); > + > + ofnode_get_property(node, "gpio-controller", &ret); > + if (ret < 0) > + continue; > + /* Get the name of each gpio node */ > + name = ofnode_get_name(node); > + if (!name) > + return -EINVAL; > + > + /* Bind each gpio node */ > + ret = device_bind_driver_to_node(dev, "gpio_stm32", > + name, node, NULL); > + if (ret) > + return ret; > + > + debug("%s: bind %s\n", __func__, name); > + } > + > + return 0; > +} > + > #if CONFIG_IS_ENABLED(PINCTRL_FULL) > static int stm32_pinctrl_set_state(struct udevice *dev, struct udevice > *config) { > @@ -433,7 +463,7 @@ U_BOOT_DRIVER(pinctrl_stm32) = { > .id = UCLASS_PINCTRL, > .of_match = stm32_pinctrl_ids, > .ops = &stm32_pinctrl_ops, > - .bind = dm_scan_fdt_dev, > + .bind = stm32_pinctrl_bind, > .probe = stm32_pinctrl_probe, > .priv_auto_alloc_size = sizeof(struct stm32_pinctrl_priv), > }; > -- > 2.17.1 Regards Patrick _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot