dm: core: Add functions to get strings and the string count from a stringlist

dev_read_string_count() is used to get the number of strings in a
stringlist.
dev_read_string_index() is used to get a string in the stringlist based on
its position in the list.

Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com>
This commit is contained in:
Jean-Jacques Hiblot 2017-09-21 17:03:09 +02:00 committed by Jaehoon Chung
parent b24633df31
commit b5a144a501
2 changed files with 47 additions and 0 deletions

View file

@ -81,6 +81,17 @@ int dev_read_stringlist_search(struct udevice *dev, const char *property,
return ofnode_stringlist_search(dev_ofnode(dev), property, string);
}
int dev_read_string_index(struct udevice *dev, const char *propname, int index,
const char **outp)
{
return ofnode_read_string_index(dev_ofnode(dev), propname, index, outp);
}
int dev_read_string_count(struct udevice *dev, const char *propname)
{
return ofnode_read_string_count(dev_ofnode(dev), propname);
}
int dev_read_phandle_with_args(struct udevice *dev, const char *list_name,
const char *cells_name, int cell_count,
int index,

View file

@ -165,6 +165,29 @@ const char *dev_read_name(struct udevice *dev);
int dev_read_stringlist_search(struct udevice *dev, const char *property,
const char *string);
/**
* dev_read_string_index() - obtain an indexed string from a string list
*
* @dev: device to examine
* @propname: name of the property containing the string list
* @index: index of the string to return
* @out: return location for the string
*
* @return:
* length of string, if found or -ve error value if not found
*/
int dev_read_string_index(struct udevice *dev, const char *propname, int index,
const char **outp);
/**
* dev_read_string_count() - find the number of strings in a string list
*
* @dev: device to examine
* @propname: name of the property containing the string list
* @return:
* number of strings in the list, or -ve error value if not found
*/
int dev_read_string_count(struct udevice *dev, const char *propname);
/**
* dev_read_phandle_with_args() - Find a node pointed by phandle in a list
*
@ -451,6 +474,19 @@ static inline int dev_read_stringlist_search(struct udevice *dev,
return ofnode_stringlist_search(dev_ofnode(dev), propname, string);
}
static inline int dev_read_string_index(struct udevice *dev,
const char *propname, int index,
const char **outp)
{
return ofnode_read_string_index(dev_ofnode(dev), propname, index, outp);
}
static inline int dev_read_string_count(struct udevice *dev,
const char *propname)
{
return ofnode_read_string_count(dev_ofnode(dev), propname);
}
static inline int dev_read_phandle_with_args(struct udevice *dev,
const char *list_name, const char *cells_name, int cell_count,
int index, struct ofnode_phandle_args *out_args)