On 11 November 2014 23:16, Simon Glass <s...@chromium.org> wrote: > In some cases we need to manually bind a device to a particular driver. > Add a function to do this. > > Signed-off-by: Simon Glass <s...@chromium.org> > --- > > Changes in v2: > - Add new patch to add a function to bind a device by driver name > > drivers/core/lists.c | 21 +++++++++++++++++++++ > include/dm/lists.h | 13 +++++++++++++ > 2 files changed, 34 insertions(+) > > diff --git a/drivers/core/lists.c b/drivers/core/lists.c > index 9f33dde..32f2242 100644 > --- a/drivers/core/lists.c > +++ b/drivers/core/lists.c > @@ -77,6 +77,27 @@ int lists_bind_drivers(struct udevice *parent, bool > pre_reloc_only) > return result; > } > > +int device_bind_driver(struct udevice *parent, const char *drv_name, > + const char *dev_name, struct udevice **devp) > +{ > + struct driver *drv; > + int ret; > + > + drv = lists_driver_lookup_name(drv_name); > + if (!drv) { > + printf("Cannot find driver '%s'\n", drv_name); > + return -ENOENT; > + } > + ret = device_bind(parent, drv, dev_name, NULL, -1, devp); > + if (ret) { > + printf("Cannot create device named '%s' (err=%d)\n", > + dev_name, ret); > + return ret; > + } > + > + return 0; > +} > + > #ifdef CONFIG_OF_CONTROL > /** > * driver_check_compatible() - Check if a driver is compatible with this node > diff --git a/include/dm/lists.h b/include/dm/lists.h > index 704e33e..1b50af9 100644 > --- a/include/dm/lists.h > +++ b/include/dm/lists.h > @@ -60,4 +60,17 @@ int lists_bind_drivers(struct udevice *parent, bool > pre_reloc_only); > int lists_bind_fdt(struct udevice *parent, const void *blob, int offset, > struct udevice **devp); > > +/** > + * device_bind_driver() - bind a device to a driver > + * > + * This binds a new device to a driver. > + * > + * @parent: Parent device > + * @drv_name: Name of driver to attach to this parent > + * @dev_name: Name of the new device thus created > + * @devp: Returns the newly bound device > + */ > +int device_bind_driver(struct udevice *parent, const char *drv_name, > + const char *dev_name, struct udevice **devp); > + > #endif > -- > 2.1.0.rc2.206.gedb03e5 > > _______________________________________________ > U-Boot mailing list > U-Boot@lists.denx.de > http://lists.denx.de/mailman/listinfo/u-boot
Reviewed-by: Jagannadha Sutradharudu Teki <jagannadh.t...@gmail.com> thanks! -- Jagan. _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot