aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKever Yang2020-03-30 11:56:23 +0800
committerTom Rini2020-04-24 10:10:01 -0400
commit10d887ddfa4f94aa94cf7a6d3dd4f28a339a2f13 (patch)
tree016dcfd3b6ef9dc8e66dac8fa4641c7fbc4afecb
parent02560b13689650cf0d2f5825eaf480629ce9238f (diff)
libfdt: Make fdtdec_get_child_count() available for HOST
The tool need to use fdtdec_get_child_count(), make it available for HOST_CC. Signed-off-by: Kever Yang <kever.yang@rock-chips.com> Reviewed-by: Punit Agrawal <punit1.agrawal@toshiba.co.jp> Reviewed-by: Simon Glass <sjg@chromium.org>
-rw-r--r--include/fdt_support.h9
-rw-r--r--lib/fdtdec.c11
-rw-r--r--lib/fdtdec_common.c11
3 files changed, 20 insertions, 11 deletions
diff --git a/include/fdt_support.h b/include/fdt_support.h
index ba14acd7f62..2eff311fa4f 100644
--- a/include/fdt_support.h
+++ b/include/fdt_support.h
@@ -343,6 +343,15 @@ int fdt_get_cells_len(const void *blob, char *nr_cells_name);
#ifdef USE_HOSTCC
int fdtdec_get_int(const void *blob, int node, const char *prop_name,
int default_val);
+
+/*
+ * Count child nodes of one parent node.
+ *
+ * @param blob FDT blob
+ * @param node parent node
+ * @return number of child node; 0 if there is not child node
+ */
+int fdtdec_get_child_count(const void *blob, int node);
#endif
#ifdef CONFIG_FMAN_ENET
int fdt_update_ethernet_dt(void *blob);
diff --git a/lib/fdtdec.c b/lib/fdtdec.c
index 460f0d250b4..0a3b8607822 100644
--- a/lib/fdtdec.c
+++ b/lib/fdtdec.c
@@ -810,17 +810,6 @@ int fdtdec_parse_phandle_with_args(const void *blob, int src_node,
return rc;
}
-int fdtdec_get_child_count(const void *blob, int node)
-{
- int subnode;
- int num = 0;
-
- fdt_for_each_subnode(subnode, blob, node)
- num++;
-
- return num;
-}
-
int fdtdec_get_byte_array(const void *blob, int node, const char *prop_name,
u8 *array, int count)
{
diff --git a/lib/fdtdec_common.c b/lib/fdtdec_common.c
index 088e9e9063a..5775992ef33 100644
--- a/lib/fdtdec_common.c
+++ b/lib/fdtdec_common.c
@@ -53,3 +53,14 @@ unsigned int fdtdec_get_uint(const void *blob, int node, const char *prop_name,
debug("(not found)\n");
return default_val;
}
+
+int fdtdec_get_child_count(const void *blob, int node)
+{
+ int subnode;
+ int num = 0;
+
+ fdt_for_each_subnode(subnode, blob, node)
+ num++;
+
+ return num;
+}