dm: pinctrl: Skip gpio-controller node in pinconfig_post_bind()
authorPatrick Delaunay <patrick.delaunay@st.com>
Mon, 25 Feb 2019 12:39:56 +0000 (13:39 +0100)
committerSimon Glass <sjg@chromium.org>
Fri, 12 Apr 2019 02:10:05 +0000 (20:10 -0600)
Some binding define child node gpio-controller without compatible property.
This patch avoid to bind the pinconfig uclass to these node.

For example, the binding for st,stm32-pinctrl
(./device-tree-bindings/pinctrl/st,stm32-pinctrl.txt) defines the GPIO
controller/bank node as sub-node of pincontrol (st,stm32f429-pinctrl)
but without compatible (as it is not mandatory).

Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
Signed-off-by: Patrice Chotard <patrice.chotard@st.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
drivers/pinctrl/pinctrl-uclass.c

index 4e6cef8ae762f4a3382dc29910109b84514c4fc0..0e6c559d5efb21ed66325338ca86aadda70daed3 100644 (file)
@@ -127,6 +127,9 @@ static int pinconfig_post_bind(struct udevice *dev)
                ofnode_get_property(node, "compatible", &ret);
                if (ret >= 0)
                        continue;
+               /* If this node has "gpio-controller" property, skip */
+               if (ofnode_read_bool(node, "gpio-controller"))
+                       continue;
 
                if (ret != -FDT_ERR_NOTFOUND)
                        return ret;