mirror of
https://github.com/AsahiLinux/u-boot
synced 2025-02-26 12:27:12 +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);
|
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,
|
static int decode_timing_property(ofnode node, const char *name,
|
||||||
struct timing_entry *result)
|
struct timing_entry *result)
|
||||||
{
|
{
|
||||||
|
|
|
@ -352,3 +352,8 @@ fdt_addr_t dev_read_addr_pci(const struct udevice *dev)
|
||||||
|
|
||||||
return addr;
|
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); \
|
ofnode_valid(node); \
|
||||||
node = ofnode_next_subnode(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
|
* 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);
|
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 */
|
#else /* CONFIG_DM_DEV_READ_INLINE is enabled */
|
||||||
|
|
||||||
static inline int dev_read_u32(const struct udevice *dev,
|
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);
|
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 */
|
#endif /* CONFIG_DM_DEV_READ_INLINE */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Add table
Reference in a new issue