summaryrefslogtreecommitdiff
path: root/drivers/core/read.c
diff options
context:
space:
mode:
authorPatrick Delaunay <patrick.delaunay@st.com>2020-01-13 13:34:56 +0300
committerTom Rini <trini@konsulko.com>2020-04-17 06:06:54 +0300
commitce891fcada6638c39a0de28f821cfa2b9406440c (patch)
treee3b91f3dea700a91ae783c19711da482ee200b51 /drivers/core/read.c
parent719cab6d2e2bf86f141a2c018b4e8e6c1507a5eb (diff)
downloadu-boot-ce891fcada6638c39a0de28f821cfa2b9406440c.tar.xz
dm: core: add ofnode and dev function to iterate on node property
Add functions to iterate on all property with livetree - dev_read_first_prop - dev_read_next_prop - dev_read_prop_by_prop and - ofnode_get_first_property - ofnode_get_next_property - ofnode_get_property_by_prop And helper: dev_for_each_property For example: struct ofprop property; dev_for_each_property(property, config) { value = dev_read_prop_by_prop(&property, &propname, &len); or: for (res = ofnode_get_first_property(node, &property); !res; res = ofnode_get_next_property(&property)) { value = ofnode_get_property_by_prop(&property, &propname, &len); .... } Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'drivers/core/read.c')
-rw-r--r--drivers/core/read.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/drivers/core/read.c b/drivers/core/read.c
index ce78f09d28..47b8e03446 100644
--- a/drivers/core/read.c
+++ b/drivers/core/read.c
@@ -255,6 +255,22 @@ const void *dev_read_prop(const struct udevice *dev, const char *propname,
return ofnode_get_property(dev_ofnode(dev), propname, lenp);
}
+int dev_read_first_prop(const struct udevice *dev, struct ofprop *prop)
+{
+ return ofnode_get_first_property(dev_ofnode(dev), prop);
+}
+
+int dev_read_next_prop(struct ofprop *prop)
+{
+ return ofnode_get_next_property(prop);
+}
+
+const void *dev_read_prop_by_prop(struct ofprop *prop,
+ const char **propname, int *lenp)
+{
+ return ofnode_get_property_by_prop(prop, propname, lenp);
+}
+
int dev_read_alias_seq(const struct udevice *dev, int *devnump)
{
ofnode node = dev_ofnode(dev);