dm: pinctrl: Skip not associated gpio phandle and rise a warning message
authorMichael Trimarchi <michael@amarulasolutions.com>
Tue, 17 Sep 2019 20:06:03 +0000 (22:06 +0200)
committerSimon Glass <sjg@chromium.org>
Tue, 15 Oct 2019 14:40:02 +0000 (08:40 -0600)
Skip not associated gpio phandle let register the other gpios on a group.
We need anyway to send out a warning to the user to fix their uboot-board.dtsi.
Thhe handle id can be found inside the decompiled dtb

dtc -I dtb -O dts -o devicetree.dts spl/u-boot-spl.dtb

Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
drivers/pinctrl/pinctrl-uclass.c

index bf799a701c3840646a3d75e6c88faf2a9601c46c..a2da63f598cb957f4d72ce9db131113987fe59e0 100644 (file)
@@ -91,12 +91,18 @@ static int pinctrl_select_state_full(struct udevice *dev, const char *statename)
                phandle = fdt32_to_cpu(*list++);
                ret = uclass_get_device_by_phandle_id(UCLASS_PINCONFIG, phandle,
                                                      &config);
-               if (ret)
-                       return ret;
+               if (ret) {
+                       dev_warn(dev, "%s: uclass_get_device_by_phandle_id: err=%d\n",
+                               __func__, ret);
+                       continue;
+               }
 
                ret = pinctrl_config_one(config);
-               if (ret)
-                       return ret;
+               if (ret) {
+                       dev_warn(dev, "%s: pinctrl_config_one: err=%d\n",
+                               __func__, ret);
+                       continue;
+               }
        }
 
        return 0;