mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-28 15:41:40 +00:00
dm: core: Add function to get child count of ofnode or device
This patch add function used to get the child count of a ofnode or a device Signed-off-by: Chunfeng Yun <chunfeng.yun@mediatek.com> Signed-off-by: Frank Wunderlich <frank-w@public-files.de> Reviewed-by: Weijie Gao <weijie.gao@mediatek.com> Reviewed-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
c693f212c5
commit
89b84b85e9
4 changed files with 37 additions and 0 deletions
|
@ -474,6 +474,17 @@ ofnode ofnode_get_chosen_node(const char *name)
|
|||
return ofnode_path(prop);
|
||||
}
|
||||
|
||||
int ofnode_get_child_count(ofnode parent)
|
||||
{
|
||||
ofnode child;
|
||||
int num = 0;
|
||||
|
||||
ofnode_for_each_subnode(child, parent)
|
||||
num++;
|
||||
|
||||
return num;
|
||||
}
|
||||
|
||||
static int decode_timing_property(ofnode node, const char *name,
|
||||
struct timing_entry *result)
|
||||
{
|
||||
|
|
|
@ -352,3 +352,8 @@ fdt_addr_t dev_read_addr_pci(const struct udevice *dev)
|
|||
|
||||
return addr;
|
||||
}
|
||||
|
||||
int dev_get_child_count(const struct udevice *dev)
|
||||
{
|
||||
return ofnode_get_child_count(dev_ofnode(dev));
|
||||
}
|
||||
|
|
|
@ -879,6 +879,14 @@ ofnode ofnode_by_prop_value(ofnode from, const char *propname,
|
|||
ofnode_valid(node); \
|
||||
node = ofnode_next_subnode(node))
|
||||
|
||||
/**
|
||||
* ofnode_get_child_count() - get the child count of a ofnode
|
||||
*
|
||||
* @node: valid node to get its child count
|
||||
* @return the number of subnodes
|
||||
*/
|
||||
int ofnode_get_child_count(ofnode parent);
|
||||
|
||||
/**
|
||||
* ofnode_translate_address() - Translate a device-tree address
|
||||
*
|
||||
|
|
|
@ -669,6 +669,14 @@ u64 dev_translate_dma_address(const struct udevice *dev,
|
|||
*/
|
||||
int dev_read_alias_highest_id(const char *stem);
|
||||
|
||||
/**
|
||||
* dev_get_child_count() - get the child count of a device
|
||||
*
|
||||
* @dev: device to use for interation (struct udevice *)
|
||||
* @return the count of child subnode
|
||||
*/
|
||||
int dev_get_child_count(const struct udevice *dev);
|
||||
|
||||
#else /* CONFIG_DM_DEV_READ_INLINE is enabled */
|
||||
|
||||
static inline int dev_read_u32(const struct udevice *dev,
|
||||
|
@ -978,6 +986,11 @@ static inline int dev_read_alias_highest_id(const char *stem)
|
|||
return fdtdec_get_alias_highest_id(gd->fdt_blob, stem);
|
||||
}
|
||||
|
||||
static inline int dev_get_child_count(const struct udevice *dev)
|
||||
{
|
||||
return ofnode_get_child_count(dev_ofnode(dev));
|
||||
}
|
||||
|
||||
#endif /* CONFIG_DM_DEV_READ_INLINE */
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in a new issue