pinctrl: stm32: bind only the enabled GPIO subnode
authorPatrick Delaunay <patrick.delaunay@foss.st.com>
Thu, 21 Jan 2021 16:39:08 +0000 (17:39 +0100)
committerPatrick Delaunay <patrick.delaunay@foss.st.com>
Tue, 9 Feb 2021 09:31:04 +0000 (10:31 +0100)
Bind only the enabled GPIO subnode, to avoid to probe the node
"gpio-controller" present in SOC dtsi (disabled by default) but
not enabled in the included pincontrol dtsi file.

For example, in stm32mp15xxac-pinctrl.dtsi 2 gpio bank are absent:
 gpioj: gpio@5000b000
 gpiok: gpio@5000c000

Then these GPIO are absent in output of command "dm tree" and
"gpio status -a"

Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
drivers/pinctrl/pinctrl_stm32.c

index 374f76d..6c98538 100644 (file)
@@ -409,6 +409,9 @@ static int stm32_pinctrl_bind(struct udevice *dev)
        dev_for_each_subnode(node, dev) {
                dev_dbg(dev, "bind %s\n", ofnode_get_name(node));
 
+               if (!ofnode_is_enabled(node))
+                       continue;
+
                ofnode_get_property(node, "gpio-controller", &ret);
                if (ret < 0)
                        continue;