aboutsummaryrefslogtreecommitdiff
path: root/include/dm
diff options
context:
space:
mode:
authorPatrick Delaunay <patrick.delaunay@st.com>2020-09-25 09:41:14 +0200
committerSimon Glass <sjg@chromium.org>2020-10-06 09:07:54 -0600
commit89f68302cacaa41330959420d7329b7c89afdd88 (patch)
tree30d80261c2bc56c4a00a9cb49910ce0670ce7ad0 /include/dm
parent6d9949fe866751c527c5dafab5350af89b7b8332 (diff)
downloadu-boot-89f68302cacaa41330959420d7329b7c89afdd88.zip
u-boot-89f68302cacaa41330959420d7329b7c89afdd88.tar.gz
u-boot-89f68302cacaa41330959420d7329b7c89afdd88.tar.bz2
dm: add cells_count parameter in *_count_phandle_with_args
The cell_count argument is required when cells_name is NULL. This patch adds this parameter in live tree API - of_count_phandle_with_args - ofnode_count_phandle_with_args - dev_count_phandle_with_args This parameter solves issue when these API is used to count the number of element of a cell without cell name. This parameter allow to force the size cell. For example: count = dev_count_phandle_with_args(dev, "array", NULL, 3); Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'include/dm')
-rw-r--r--include/dm/of_access.h4
-rw-r--r--include/dm/ofnode.h3
-rw-r--r--include/dm/read.h8
3 files changed, 10 insertions, 5 deletions
diff --git a/include/dm/of_access.h b/include/dm/of_access.h
index 2fa65c9..cc382b1 100644
--- a/include/dm/of_access.h
+++ b/include/dm/of_access.h
@@ -450,6 +450,7 @@ int of_parse_phandle_with_args(const struct device_node *np,
* @np: pointer to a device tree node containing a list
* @list_name: property name that contains a list
* @cells_name: property name that specifies phandles' arguments count
+ * @cells_count: Cell count to use if @cells_name is NULL
* @return number of phandle found, -ENOENT if
* @list_name does not exist, -EINVAL if a phandle was not found,
* @cells_name could not be found, the arguments were truncated or there
@@ -460,7 +461,8 @@ int of_parse_phandle_with_args(const struct device_node *np,
*
*/
int of_count_phandle_with_args(const struct device_node *np,
- const char *list_name, const char *cells_name);
+ const char *list_name, const char *cells_name,
+ int cells_count);
/**
* of_alias_scan() - Scan all properties of the 'aliases' node
diff --git a/include/dm/ofnode.h b/include/dm/ofnode.h
index 98c64fe..4b7af37 100644
--- a/include/dm/ofnode.h
+++ b/include/dm/ofnode.h
@@ -556,12 +556,13 @@ int ofnode_parse_phandle_with_args(ofnode node, const char *list_name,
* @node: device tree node containing a list
* @list_name: property name that contains a list
* @cells_name: property name that specifies phandles' arguments count
+ * @cells_count: Cell count to use if @cells_name is NULL
* @return number of phandle on success, -ENOENT if @list_name does not
* exist, -EINVAL if a phandle was not found, @cells_name could not
* be found.
*/
int ofnode_count_phandle_with_args(ofnode node, const char *list_name,
- const char *cells_name);
+ const char *cells_name, int cell_count);
/**
* ofnode_path() - find a node by full path
diff --git a/include/dm/read.h b/include/dm/read.h
index 67db94a..0585eb1 100644
--- a/include/dm/read.h
+++ b/include/dm/read.h
@@ -429,12 +429,14 @@ int dev_read_phandle_with_args(const struct udevice *dev, const char *list_name,
* @dev: device whose node containing a list
* @list_name: property name that contains a list
* @cells_name: property name that specifies phandles' arguments count
+ * @cells_count: Cell count to use if @cells_name is NULL
* @Returns number of phandle found on success, on error returns appropriate
* errno value.
*/
int dev_count_phandle_with_args(const struct udevice *dev,
- const char *list_name, const char *cells_name);
+ const char *list_name, const char *cells_name,
+ int cell_count);
/**
* dev_read_addr_cells() - Get the number of address cells for a device's node
@@ -880,10 +882,10 @@ static inline int dev_read_phandle_with_args(const struct udevice *dev,
}
static inline int dev_count_phandle_with_args(const struct udevice *dev,
- const char *list_name, const char *cells_name)
+ const char *list_name, const char *cells_name, int cell_count)
{
return ofnode_count_phandle_with_args(dev_ofnode(dev), list_name,
- cells_name);
+ cells_name, cell_count);
}
static inline int dev_read_addr_cells(const struct udevice *dev)