]> git.kernelconcepts.de Git - karo-tx-uboot.git/blobdiff - drivers/core/device.c
dm: core: allow device_bind() to not return a device pointer
[karo-tx-uboot.git] / drivers / core / device.c
index 826d82c61743c120f11d8ebfe0ed1f2d4da05098..afa4b4fda97809e72f0e671fa6f9307a3a92e88d 100644 (file)
@@ -32,7 +32,8 @@ int device_bind(struct udevice *parent, const struct driver *drv,
        struct uclass *uc;
        int size, ret = 0;
 
-       *devp = NULL;
+       if (devp)
+               *devp = NULL;
        if (!name)
                return -EINVAL;
 
@@ -133,7 +134,8 @@ int device_bind(struct udevice *parent, const struct driver *drv,
 
        if (parent)
                dm_dbg("Bound device %s to %s\n", dev->name, parent->name);
-       *devp = dev;
+       if (devp)
+               *devp = dev;
 
        dev->flags |= DM_FLAG_BOUND;
 
@@ -574,11 +576,9 @@ fdt_addr_t dev_get_addr(struct udevice *dev)
        fdt_addr_t addr;
 
        addr = fdtdec_get_addr(gd->fdt_blob, dev->of_offset, "reg");
-       if (addr != FDT_ADDR_T_NONE) {
-#ifndef CONFIG_SPL_BUILD
+       if (CONFIG_IS_ENABLED(SIMPLE_BUS) && addr != FDT_ADDR_T_NONE) {
                if (device_get_uclass_id(dev->parent) == UCLASS_SIMPLE_BUS)
                        addr = simple_bus_translate(dev->parent, addr);
-#endif
        }
 
        return addr;