diff options
author | Simon Glass <sjg@chromium.org> | 2015-04-28 20:25:04 -0600 |
---|---|---|
committer | Simon Glass <sjg@chromium.org> | 2015-04-29 21:02:32 -0600 |
commit | 5b9000dd25052310ee2d76a295dbe77a2edc5f81 (patch) | |
tree | f2df9a191452d37ca3be9a6541fce2b24914ef55 /drivers/core/lists.c | |
parent | 4c509343abe693d7ee835c39ded1dc10149ff91c (diff) |
dm: core: Add a function to bind a driver for a device tree node
Some device tree nodes do not have compatible strings but do require
drivers. This is pretty rare, and somewhat unfortunate. Add a function
to permit creation of a driver for any device tree node.
Signed-off-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'drivers/core/lists.c')
-rw-r--r-- | drivers/core/lists.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/drivers/core/lists.c b/drivers/core/lists.c index 647e390bfe..0c49d99f47 100644 --- a/drivers/core/lists.c +++ b/drivers/core/lists.c @@ -74,6 +74,13 @@ int lists_bind_drivers(struct udevice *parent, bool pre_reloc_only) int device_bind_driver(struct udevice *parent, const char *drv_name, const char *dev_name, struct udevice **devp) { + return device_bind_driver_to_node(parent, drv_name, dev_name, -1, devp); +} + +int device_bind_driver_to_node(struct udevice *parent, const char *drv_name, + const char *dev_name, int node, + struct udevice **devp) +{ struct driver *drv; int ret; @@ -82,7 +89,7 @@ int device_bind_driver(struct udevice *parent, const char *drv_name, printf("Cannot find driver '%s'\n", drv_name); return -ENOENT; } - ret = device_bind(parent, drv, dev_name, NULL, -1, devp); + ret = device_bind(parent, drv, dev_name, NULL, node, devp); if (ret) { printf("Cannot create device named '%s' (err=%d)\n", dev_name, ret); |