diff options
author | Tom Rini <trini@konsulko.com> | 2015-08-31 11:43:47 -0400 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2015-08-31 11:43:47 -0400 |
commit | 80cd58b99e8690b05e8537dbf76276e24fcfa652 (patch) | |
tree | 0684c14480ab87bb3a74c1c70275b5fdc9c8e3c9 /drivers/core/device.c | |
parent | 7c0e5d865ff0b86dfce492b656238919c659d756 (diff) | |
parent | 897705ec39682ab3bf5bb87bc49d7a491d522051 (diff) |
Merge git://git.denx.de/u-boot-dm
Diffstat (limited to 'drivers/core/device.c')
-rw-r--r-- | drivers/core/device.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/drivers/core/device.c b/drivers/core/device.c index a31e25f6b5c..a6cd93698f5 100644 --- a/drivers/core/device.c +++ b/drivers/core/device.c @@ -15,6 +15,7 @@ #include <dm/device.h> #include <dm/device-internal.h> #include <dm/lists.h> +#include <dm/pinctrl.h> #include <dm/platdata.h> #include <dm/uclass.h> #include <dm/uclass-internal.h> @@ -32,7 +33,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 +135,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; @@ -284,6 +287,9 @@ int device_probe_child(struct udevice *dev, void *parent_priv) dev->flags |= DM_FLAG_ACTIVATED; + /* continue regardless of the result of pinctrl */ + pinctrl_select_state(dev, "default"); + ret = uclass_pre_probe_device(dev); if (ret) goto fail; @@ -574,7 +580,7 @@ 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) { + 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); } |