dm: core: Add a way to set a device name
Some devices are bound entirely by probing and do not have the benefit of a device tree to give them a name. This is very common with PCI and USB. In most cases this is fine, but we should add an official way to set a device name. This should be called in the device's bind() method. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
This commit is contained in:
parent
c3e6847bb3
commit
f5c67ea036
@ -603,3 +603,13 @@ bool device_is_last_sibling(struct udevice *dev)
|
||||
return false;
|
||||
return list_is_last(&dev->sibling_node, &parent->child_head);
|
||||
}
|
||||
|
||||
int device_set_name(struct udevice *dev, const char *name)
|
||||
{
|
||||
name = strdup(name);
|
||||
if (!name)
|
||||
return -ENOMEM;
|
||||
dev->name = name;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -470,6 +470,21 @@ bool device_has_active_children(struct udevice *dev);
|
||||
*/
|
||||
bool device_is_last_sibling(struct udevice *dev);
|
||||
|
||||
/**
|
||||
* device_set_name() - set the name of a device
|
||||
*
|
||||
* This must be called in the device's bind() method and no later. Normally
|
||||
* this is unnecessary but for probed devices which don't get a useful name
|
||||
* this function can be helpful.
|
||||
*
|
||||
* @dev: Device to update
|
||||
* @name: New name (this string is allocated new memory and attached to
|
||||
* the device)
|
||||
* @return 0 if OK, -ENOMEM if there is not enough memory to allocate the
|
||||
* string
|
||||
*/
|
||||
int device_set_name(struct udevice *dev, const char *name);
|
||||
|
||||
/* device resource management */
|
||||
typedef void (*dr_release_t)(struct udevice *dev, void *res);
|
||||
typedef int (*dr_match_t)(struct udevice *dev, void *res, void *match_data);
|
||||
|
Loading…
Reference in New Issue
Block a user