dm: add cells_count parameter in live DT APIs of_parse_phandle_with_args

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>
This commit is contained in:
Patrick Delaunay 2020-09-10 18:26:17 +02:00 committed by Simon Glass
parent 3e15c315f9
commit 01d89e3d12
3 changed files with 9 additions and 5 deletions

View 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, int of_parse_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 index, struct of_phandle_args *out_args) int cell_count, int index,
struct of_phandle_args *out_args)
{ {
if (index < 0) if (index < 0)
return -EINVAL; return -EINVAL;
return __of_parse_phandle_with_args(np, list_name, cells_name, 0, return __of_parse_phandle_with_args(np, list_name, cells_name,
index, out_args); cell_count, index, out_args);
} }
int of_count_phandle_with_args(const struct device_node *np, int of_count_phandle_with_args(const struct device_node *np,

View file

@ -409,7 +409,8 @@ int ofnode_parse_phandle_with_args(ofnode node, const char *list_name,
int ret; int ret;
ret = of_parse_phandle_with_args(ofnode_to_np(node), ret = of_parse_phandle_with_args(ofnode_to_np(node),
list_name, cells_name, index, list_name, cells_name,
cell_count, index,
&args); &args);
if (ret) if (ret)
return ret; return ret;

View 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 * @np: pointer to a device tree node containing a list
* @list_name: property name that contains a list * @list_name: property name that contains a list
* @cells_name: property name that specifies phandles' arguments count * @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 * @index: index of a phandle to parse out
* @out_args: optional pointer to output arguments structure (will be filled) * @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 * @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, int of_parse_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 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 * of_count_phandle_with_args() - Count the number of phandle in a list