[PATCH v2 01/10] dm: core: Add function to get child count of ofnode or device
Chunfeng Yun
chunfeng.yun at mediatek.com
Sat Mar 21 09:51:46 CET 2020
This patch add function used to get the child count of
a ofnode or a device
Signed-off-by: Chunfeng Yun <chunfeng.yun at mediatek.com>
---
v2:
1. move ofnode_get_child_count() into ofnode.c suggested by Simon
2. add a new macro dev_get_child_count()
---
drivers/core/ofnode.c | 11 +++++++++++
include/dm/ofnode.h | 8 ++++++++
include/dm/read.h | 9 +++++++++
3 files changed, 28 insertions(+)
diff --git a/drivers/core/ofnode.c b/drivers/core/ofnode.c
index 96a5dd20bd..6f4eb422a4 100644
--- a/drivers/core/ofnode.c
+++ b/drivers/core/ofnode.c
@@ -453,6 +453,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)
{
diff --git a/include/dm/ofnode.h b/include/dm/ofnode.h
index b5a50e8849..3fe8fcdc5d 100644
--- a/include/dm/ofnode.h
+++ b/include/dm/ofnode.h
@@ -793,6 +793,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 ot get its child count
+ * @return the count of child subnode
+ */
+int ofnode_get_child_count(ofnode parent);
+
/**
* ofnode_translate_address() - Translate a device-tree address
*
diff --git a/include/dm/read.h b/include/dm/read.h
index da8c7f25e7..0b7dec4c83 100644
--- a/include/dm/read.h
+++ b/include/dm/read.h
@@ -901,4 +901,13 @@ static inline int dev_read_alias_highest_id(const char *stem)
ofnode_valid(subnode); \
subnode = ofnode_next_subnode(subnode))
+/**
+ * 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
+ */
+#define dev_get_child_count(dev) \
+ ofnode_get_child_count(dev_ofnode(dev))
+
#endif
--
2.25.1
More information about the U-Boot
mailing list