mirror of
https://github.com/Fishwaldo/u-boot.git
synced 2025-03-19 13:41:31 +00:00
fdt: implement dev_get_addr_name()
This function parses the reg property based on an index found in the reg-names property. This is required for bindings that are written using reg-names rather than hard-coding indices in reg. Signed-off-by: Stephen Warren <swarren@nvidia.com> Acked-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
690d8a92c1
commit
43c4d44e33
2 changed files with 28 additions and 0 deletions
|
@ -652,6 +652,22 @@ fdt_addr_t dev_get_addr_index(struct udevice *dev, int index)
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fdt_addr_t dev_get_addr_name(struct udevice *dev, const char *name)
|
||||||
|
{
|
||||||
|
#if CONFIG_IS_ENABLED(OF_CONTROL)
|
||||||
|
int index;
|
||||||
|
|
||||||
|
index = fdt_find_string(gd->fdt_blob, dev->parent->of_offset,
|
||||||
|
"reg-names", name);
|
||||||
|
if (index < 0)
|
||||||
|
return index;
|
||||||
|
|
||||||
|
return dev_get_addr_index(dev, index);
|
||||||
|
#else
|
||||||
|
return FDT_ADDR_T_NONE;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
fdt_addr_t dev_get_addr(struct udevice *dev)
|
fdt_addr_t dev_get_addr(struct udevice *dev)
|
||||||
{
|
{
|
||||||
return dev_get_addr_index(dev, 0);
|
return dev_get_addr_index(dev, 0);
|
||||||
|
|
|
@ -464,6 +464,18 @@ fdt_addr_t dev_get_addr(struct udevice *dev);
|
||||||
*/
|
*/
|
||||||
fdt_addr_t dev_get_addr_index(struct udevice *dev, int index);
|
fdt_addr_t dev_get_addr_index(struct udevice *dev, int index);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* dev_get_addr_name() - Get the reg property of a device, indexed by name
|
||||||
|
*
|
||||||
|
* @dev: Pointer to a device
|
||||||
|
* @name: the 'reg' property can hold a list of <addr, size> pairs, with the
|
||||||
|
* 'reg-names' property providing named-based identification. @index
|
||||||
|
* indicates the value to search for in 'reg-names'.
|
||||||
|
*
|
||||||
|
* @return addr
|
||||||
|
*/
|
||||||
|
fdt_addr_t dev_get_addr_name(struct udevice *dev, const char *name);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* device_has_children() - check if a device has any children
|
* device_has_children() - check if a device has any children
|
||||||
*
|
*
|
||||||
|
|
Loading…
Add table
Reference in a new issue