dm: core: device: set pinctrl state for pinctrl device
PATCH v2 1/1 dm: core: device: set pinctrl state for pinctrl device
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.
---
V2:
To pinctrl node, it is not root node. No need to check dev->parent.
drivers/core/device.c | 3 +++ 1 file changed, 3 insertions(+)
drivers/core/device.c +3 -0
@@ -332,6 +332,9 @@ int device_probe(struct udevice *dev)if (ret) goto fail_uclass; +if (device_get_uclass_id (dev) ==UCLASS_PINCTRL ) +pinctrl_select_state (dev,"default" ); +return 0 ; fail_uclass:if (device_remove (dev)) {
Signature · 1 line
2.6.2
PATCH v2 1/1 dm: core: device: set pinctrl state for pinctrl device
Quoted 29 lines · Peng Fan
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_logfor pinctrl devices.So at the end of probing process of pinctrl device, select the default state of pinctrl device.
Signed-off-by Peng Fan <[email protected]>Reviewed-by Simon Glass <[email protected]>Reviewed-by Masahiro Yamada <[email protected]>
Quoted 7 lines
---
V2:
To pinctrl node, it is not root node. No need to checkdev->parent.drivers/core/device.c | 3 +++ 1 file changed, 3 insertions(+)
Applied to u-boot-dm, thanks!