common: Drop net.h from common header
[oweals/u-boot.git] / drivers / core / syscon-uclass.c
index 5bb38e329cb847c3201e5a5c0f925f3a99856364..15f0e42a85b45629fda20ecef539cd5e1f7ef5ec 100644 (file)
@@ -10,6 +10,7 @@
 #include <errno.h>
 #include <regmap.h>
 #include <dm/device-internal.h>
+#include <dm/device_compat.h>
 #include <dm/lists.h>
 #include <dm/root.h>
 #include <linux/err.h>
@@ -128,22 +129,15 @@ struct regmap *syscon_regmap_lookup_by_phandle(struct udevice *dev,
 
 int syscon_get_by_driver_data(ulong driver_data, struct udevice **devp)
 {
-       struct udevice *dev;
-       struct uclass *uc;
        int ret;
 
        *devp = NULL;
-       ret = uclass_get(UCLASS_SYSCON, &uc);
+
+       ret = uclass_first_device_drvdata(UCLASS_SYSCON, driver_data, devp);
        if (ret)
-               return ret;
-       uclass_foreach_dev(dev, uc) {
-               if (dev->driver_data == driver_data) {
-                       *devp = dev;
-                       return device_probe(dev);
-               }
-       }
+               return log_msg_ret("find", ret);
 
-       return -ENODEV;
+       return 0;
 }
 
 struct regmap *syscon_get_regmap_by_driver_data(ulong driver_data)