dm: add cells_count parameter in live DT APIs of_parse_phandle_with_args
authorPatrick Delaunay <patrick.delaunay@st.com>
Thu, 10 Sep 2020 16:26:17 +0000 (18:26 +0200)
committerSimon Glass <sjg@chromium.org>
Tue, 22 Sep 2020 18:54:13 +0000 (12:54 -0600)
In the live tree API ofnode_parse_phandle_with_args, the cell_count
argument must be used when cells_name is NULL.

But this argument is not provided to the live DT function
of_parse_phandle_with_args even it is provided to
fdtdec_parse_phandle_with_args.

This patch adds support of the cells_count parameter in dev_ and
of_node API to allow migration and support of live DT:
- of_parse_phandle_with_args

Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
drivers/core/of_access.c
drivers/core/ofnode.c
include/dm/of_access.h

index 922e78f..bcf1644 100644 (file)
@@ -745,13 +745,14 @@ struct device_node *of_parse_phandle(const struct device_node *np,
 
 int of_parse_phandle_with_args(const struct device_node *np,
                               const char *list_name, const char *cells_name,
-                              int index, struct of_phandle_args *out_args)
+                              int cell_count, int index,
+                              struct of_phandle_args *out_args)
 {
        if (index < 0)
                return -EINVAL;
 
-       return __of_parse_phandle_with_args(np, list_name, cells_name, 0,
-                                           index, out_args);
+       return __of_parse_phandle_with_args(np, list_name, cells_name,
+                                           cell_count, index, out_args);
 }
 
 int of_count_phandle_with_args(const struct device_node *np,
index d02d8d3..79fcdf5 100644 (file)
@@ -409,7 +409,8 @@ int ofnode_parse_phandle_with_args(ofnode node, const char *list_name,
                int ret;
 
                ret = of_parse_phandle_with_args(ofnode_to_np(node),
-                                                list_name, cells_name, index,
+                                                list_name, cells_name,
+                                                cell_count, index,
                                                 &args);
                if (ret)
                        return ret;
index f95a00d..2fa65c9 100644 (file)
@@ -407,6 +407,7 @@ struct device_node *of_parse_phandle(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
  * @index:     index of a phandle to parse out
  * @out_args:  optional pointer to output arguments structure (will be filled)
  * @return 0 on success (with @out_args filled out if not NULL), -ENOENT if
@@ -440,7 +441,8 @@ struct device_node *of_parse_phandle(const struct device_node *np,
  */
 int of_parse_phandle_with_args(const struct device_node *np,
                               const char *list_name, const char *cells_name,
-                              int index, struct of_phandle_args *out_args);
+                              int cells_count, int index,
+                              struct of_phandle_args *out_args);
 
 /**
  * of_count_phandle_with_args() - Count the number of phandle in a list