mirror of
https://github.com/Fishwaldo/u-boot.git
synced 2025-03-18 13:11:31 +00:00
ofnode: add {ofnode, dev}_read_resource_byname()
Linux supports platform_get_resource_byname() to look up a resource by name. We want a similar helper. It is useful when a device node has named register regions. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
8b3cec7da1
commit
7b8b47bd29
4 changed files with 39 additions and 1 deletions
|
@ -627,3 +627,15 @@ int ofnode_read_resource(ofnode node, uint index, struct resource *res)
|
|||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
int ofnode_read_resource_byname(ofnode node, const char *name,
|
||||
struct resource *res)
|
||||
{
|
||||
int index;
|
||||
|
||||
index = ofnode_stringlist_search(node, "reg-names", name);
|
||||
if (index < 0)
|
||||
return index;
|
||||
|
||||
return ofnode_read_resource(node, index, res);
|
||||
}
|
||||
|
|
|
@ -164,3 +164,9 @@ int dev_read_resource(struct udevice *dev, uint index, struct resource *res)
|
|||
{
|
||||
return ofnode_read_resource(dev_ofnode(dev), index, res);
|
||||
}
|
||||
|
||||
int dev_read_resource_byname(struct udevice *dev, const char *name,
|
||||
struct resource *res)
|
||||
{
|
||||
return ofnode_read_resource_byname(dev_ofnode(dev), name, res);
|
||||
}
|
||||
|
|
|
@ -625,5 +625,7 @@ int ofnode_read_simple_size_cells(ofnode node);
|
|||
bool ofnode_pre_reloc(ofnode node);
|
||||
|
||||
int ofnode_read_resource(ofnode node, uint index, struct resource *res);
|
||||
int ofnode_read_resource_byname(ofnode node, const char *name,
|
||||
struct resource *res);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -359,13 +359,24 @@ int dev_read_enabled(struct udevice *dev);
|
|||
/**
|
||||
* dev_read_resource() - obtain an indexed resource from a device.
|
||||
*
|
||||
* @dev: devuce to examine
|
||||
* @dev: device to examine
|
||||
* @index index of the resource to retrieve (0 = first)
|
||||
* @res returns the resource
|
||||
* @return 0 if ok, negative on error
|
||||
*/
|
||||
int dev_read_resource(struct udevice *dev, uint index, struct resource *res);
|
||||
|
||||
/**
|
||||
* dev_read_resource_byname() - obtain a named resource from a device.
|
||||
*
|
||||
* @dev: device to examine
|
||||
* @name: name of the resource to retrieve
|
||||
* @res: returns the resource
|
||||
* @return 0 if ok, negative on error
|
||||
*/
|
||||
int dev_read_resource_byname(struct udevice *dev, const char *name,
|
||||
struct resource *res);
|
||||
|
||||
#else /* CONFIG_DM_DEV_READ_INLINE is enabled */
|
||||
|
||||
static inline int dev_read_u32_default(struct udevice *dev,
|
||||
|
@ -513,6 +524,13 @@ static inline int dev_read_resource(struct udevice *dev, uint index,
|
|||
return ofnode_read_resource(dev_ofnode(dev), index, res);
|
||||
}
|
||||
|
||||
static inline int dev_read_resource_byname(struct udevice *dev,
|
||||
const char *name,
|
||||
struct resource *res)
|
||||
{
|
||||
return ofnode_read_resource_byname(dev_ofnode(dev), name, res);
|
||||
}
|
||||
|
||||
#endif /* CONFIG_DM_DEV_READ_INLINE */
|
||||
|
||||
/**
|
||||
|
|
Loading…
Add table
Reference in a new issue