dm: core: Add a way to obtain a string list

At present we support reading a string list a string at a time. Apart
from being inefficient, this makes it impossible to separate reading of
the devicetree into the of_to_plat() method where it belongs, since any
code which needs access to the string must read it from the devicetree.

Add a function which returns the string property as an array of pointers
to the strings, which is easily used by clients.

Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
Simon Glass
2021-10-23 17:26:07 -06:00
parent 32c6a8e1f8
commit 075bfc9575
5 changed files with 100 additions and 0 deletions

View File

@@ -609,6 +609,26 @@ int ofnode_read_string_index(ofnode node, const char *propname, int index,
*/
int ofnode_read_string_count(ofnode node, const char *property);
/**
* ofnode_read_string_list() - read a list of strings
*
* This produces a list of string pointers with each one pointing to a string
* in the string list. If the property does not exist, it returns {NULL}.
*
* The data is allocated and the caller is reponsible for freeing the return
* value (the list of string pointers). The strings themselves may not be
* changed as they point directly into the devicetree property.
*
* @node: node to check
* @listp: returns an allocated, NULL-terminated list of strings if the return
* value is > 0, else is set to NULL
* @return number of strings in list, 0 if none, -ENOMEM if out of memory,
* -EINVAL if no such property, -EENODATA if property is empty
* @return: NULL-terminated list of strings (NULL if no property or empty)
*/
int ofnode_read_string_list(ofnode node, const char *property,
const char ***listp);
/**
* ofnode_parse_phandle_with_args() - Find a node pointed by phandle in a list
*