summaryrefslogtreecommitdiff
path: root/include/dm
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2017-06-12 12:21:28 (GMT)
committerSimon Glass <sjg@chromium.org>2017-07-11 16:08:20 (GMT)
commit8c293d6ac9c9f698a2b5db8def9d1cef725b5011 (patch)
treeb1e0018844e958ca5e9eb65e1366071cff79db45 /include/dm
parent7feccfdc45d5708ffd682a025d6d6e8907f1a97a (diff)
downloadu-boot-fsl-qoriq-8c293d6ac9c9f698a2b5db8def9d1cef725b5011.tar.xz
dm: core: Add ofnode_read_string_count()
This provides a way to find the number of strings in a string list. Add it and also fix up the comment for ofnode_read_string_index(). Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1
Diffstat (limited to 'include/dm')
-rw-r--r--include/dm/of_access.h18
-rw-r--r--include/dm/ofnode.h12
2 files changed, 29 insertions, 1 deletions
diff --git a/include/dm/of_access.h b/include/dm/of_access.h
index 142f0f4..d282700 100644
--- a/include/dm/of_access.h
+++ b/include/dm/of_access.h
@@ -261,6 +261,24 @@ static inline int of_property_read_string_index(const struct device_node *np,
}
/**
+ * of_property_count_strings() - Find and return the number of strings from a
+ * multiple strings property.
+ * @np: device node from which the property value is to be read.
+ * @propname: name of the property to be searched.
+ *
+ * Search for a property in a device tree node and retrieve the number of null
+ * terminated string contain in it. Returns the number of strings on
+ * success, -EINVAL if the property does not exist, -ENODATA if property
+ * does not have a value, and -EILSEQ if the string is not null-terminated
+ * within the length of the property data.
+ */
+static inline int of_property_count_strings(const struct device_node *np,
+ const char *propname)
+{
+ return of_property_read_string_helper(np, propname, NULL, 0, 0);
+}
+
+/**
* of_parse_phandle - Resolve a phandle property to a device_node pointer
* @np: Pointer to device node holding phandle property
* @phandle_name: Name of property holding a phandle value
diff --git a/include/dm/ofnode.h b/include/dm/ofnode.h
index 149622a..d261a61 100644
--- a/include/dm/ofnode.h
+++ b/include/dm/ofnode.h
@@ -359,7 +359,7 @@ int ofnode_stringlist_search(ofnode node, const char *propname,
const char *string);
/**
- * fdt_stringlist_get() - obtain the string at a given index in a string list
+ * ofnode_read_string_index() - obtain an indexed string from a string list
*
* Note that this will successfully extract strings from properties with
* non-NUL-terminated values. For example on small-valued cell properties
@@ -380,6 +380,16 @@ int ofnode_read_string_index(ofnode node, const char *propname, int index,
const char **outp);
/**
+ * ofnode_read_string_count() - find the number of strings in a string list
+ *
+ * @node: node to check
+ * @propname: name of the property containing the string list
+ * @return:
+ * number of strings in the list, or -ve error value if not found
+ */
+int ofnode_read_string_count(ofnode node, const char *property);
+
+/**
* ofnode_parse_phandle_with_args() - Find a node pointed by phandle in a list
*
* This function is useful to parse lists of phandles and their arguments.