dm: core: allow device_bind() to not return a device pointer

This is useful when we want to bind a device, but do not need the
pointer to the device.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Acked-by: Simon Glass <sjg@chromium.org>
master
Masahiro Yamada 9 years ago committed by Simon Glass
parent f6ac9f1f66
commit e6cabe4a6d
  1. 6
      drivers/core/device.c
  2. 4
      include/dm/device-internal.h
  3. 4
      include/dm/lists.h

@ -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;

@ -31,7 +31,7 @@ struct udevice;
* devices which use device tree.
* @of_offset: Offset of device tree node for this device. This is -1 for
* devices which don't use device tree.
* @devp: Returns a pointer to the bound device
* @devp: if non-NULL, returns a pointer to the bound device
* @return 0 if OK, -ve on error
*/
int device_bind(struct udevice *parent, const struct driver *drv,
@ -48,7 +48,7 @@ int device_bind(struct udevice *parent, const struct driver *drv,
* @pre_reloc_only: If true, bind the driver only if its DM_INIT_F flag is set.
* If false bind the driver always.
* @info: Name and platdata for this device
* @devp: Returns a pointer to the bound device
* @devp: if non-NULL, returns a pointer to the bound device
* @return 0 if OK, -ve on error
*/
int device_bind_by_name(struct udevice *parent, bool pre_reloc_only,

@ -68,7 +68,7 @@ int lists_bind_fdt(struct udevice *parent, const void *blob, int offset,
* @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
* @devp: If non-NULL, returns the newly bound device
*/
int device_bind_driver(struct udevice *parent, const char *drv_name,
const char *dev_name, struct udevice **devp);
@ -83,7 +83,7 @@ int device_bind_driver(struct udevice *parent, const char *drv_name,
* @drv_name: Name of driver to attach to this parent
* @dev_name: Name of the new device thus created
* @node: Device tree node
* @devp: Returns the newly bound device
* @devp: If non-NULL, returns the newly bound device
*/
int device_bind_driver_to_node(struct udevice *parent, const char *drv_name,
const char *dev_name, int node,

Loading…
Cancel
Save