+Masahiro On 11 March 2016 at 22:17, Peng Fan <van.free...@gmail.com> wrote: > We may have pinmux settings for pinctrl device, like the following > example: > " > &iomuxc { > pinctrl-names = "default"; > pinctrl-0 = <&pinctrl_hog_1>; > imx6ul-evk { > pinctrl_hog_1: hoggrp-1 { > fsl,pins = < > MX6UL_PAD_UART1_RTS_B__GPIO1_IO19 > 0x17059 /* SD1 CD */ > MX6UL_PAD_GPIO1_IO05__USDHC1_VSELECT > 0x17059 /* SD1 VSELECT */ > MX6UL_PAD_GPIO1_IO09__GPIO1_IO09 > 0x17059 /* SD1 RESET */ > MX6UL_PAD_SNVS_TAMPER0__GPIO5_IO00 > 0x80000000 > >; > }; > [......] > }; > " > > We should not only select pinctrl state for non pinctrl devices, we > need also to handle pin mux settings such as pinctrl_log for pinctrl > devices. > > So at the end of probing process of pinctrl device, select the default > state of pinctrl device. > > Signed-off-by: Peng Fan <van.free...@gmail.com> > Cc: Simon Glass <s...@chromium.org> > --- > drivers/core/device.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/core/device.c b/drivers/core/device.c > index cb24a61..6b1ba22 100644 > --- a/drivers/core/device.c > +++ b/drivers/core/device.c > @@ -332,6 +332,9 @@ int device_probe(struct udevice *dev) > if (ret) > goto fail_uclass; > > + if (dev->parent && device_get_uclass_id(dev) == UCLASS_PINCTRL) > + pinctrl_select_state(dev, "default"); > + > return 0; > fail_uclass: > if (device_remove(dev)) { > -- > 2.6.2 >
Reviewed-by: Simon Glass <s...@chromium.org> _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot