mirror of
https://xff.cz/git/u-boot/
synced 2025-09-29 22:41:17 +02:00
dm: core: Add ofnode_read_string_count()
This provides a way to find the number of strings in a string list. Add it and also fix up the comment for ofnode_read_string_index(). Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1
This commit is contained in:
@@ -260,6 +260,16 @@ int ofnode_read_string_index(ofnode node, const char *property, int index,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int ofnode_read_string_count(ofnode node, const char *property)
|
||||||
|
{
|
||||||
|
if (ofnode_is_np(node)) {
|
||||||
|
return of_property_count_strings(ofnode_to_np(node), property);
|
||||||
|
} else {
|
||||||
|
return fdt_stringlist_count(gd->fdt_blob,
|
||||||
|
ofnode_to_offset(node), property);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static void ofnode_from_fdtdec_phandle_args(struct fdtdec_phandle_args *in,
|
static void ofnode_from_fdtdec_phandle_args(struct fdtdec_phandle_args *in,
|
||||||
struct ofnode_phandle_args *out)
|
struct ofnode_phandle_args *out)
|
||||||
{
|
{
|
||||||
|
@@ -260,6 +260,24 @@ static inline int of_property_read_string_index(const struct device_node *np,
|
|||||||
return rc < 0 ? rc : 0;
|
return rc < 0 ? rc : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* of_property_count_strings() - Find and return the number of strings from a
|
||||||
|
* multiple strings property.
|
||||||
|
* @np: device node from which the property value is to be read.
|
||||||
|
* @propname: name of the property to be searched.
|
||||||
|
*
|
||||||
|
* Search for a property in a device tree node and retrieve the number of null
|
||||||
|
* terminated string contain in it. Returns the number of strings on
|
||||||
|
* success, -EINVAL if the property does not exist, -ENODATA if property
|
||||||
|
* does not have a value, and -EILSEQ if the string is not null-terminated
|
||||||
|
* within the length of the property data.
|
||||||
|
*/
|
||||||
|
static inline int of_property_count_strings(const struct device_node *np,
|
||||||
|
const char *propname)
|
||||||
|
{
|
||||||
|
return of_property_read_string_helper(np, propname, NULL, 0, 0);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* of_parse_phandle - Resolve a phandle property to a device_node pointer
|
* of_parse_phandle - Resolve a phandle property to a device_node pointer
|
||||||
* @np: Pointer to device node holding phandle property
|
* @np: Pointer to device node holding phandle property
|
||||||
|
@@ -359,7 +359,7 @@ int ofnode_stringlist_search(ofnode node, const char *propname,
|
|||||||
const char *string);
|
const char *string);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* fdt_stringlist_get() - obtain the string at a given index in a string list
|
* ofnode_read_string_index() - obtain an indexed string from a string list
|
||||||
*
|
*
|
||||||
* Note that this will successfully extract strings from properties with
|
* Note that this will successfully extract strings from properties with
|
||||||
* non-NUL-terminated values. For example on small-valued cell properties
|
* non-NUL-terminated values. For example on small-valued cell properties
|
||||||
@@ -379,6 +379,16 @@ int ofnode_stringlist_search(ofnode node, const char *propname,
|
|||||||
int ofnode_read_string_index(ofnode node, const char *propname, int index,
|
int ofnode_read_string_index(ofnode node, const char *propname, int index,
|
||||||
const char **outp);
|
const char **outp);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ofnode_read_string_count() - find the number of strings in a string list
|
||||||
|
*
|
||||||
|
* @node: node to check
|
||||||
|
* @propname: name of the property containing the string list
|
||||||
|
* @return:
|
||||||
|
* number of strings in the list, or -ve error value if not found
|
||||||
|
*/
|
||||||
|
int ofnode_read_string_count(ofnode node, const char *property);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ofnode_parse_phandle_with_args() - Find a node pointed by phandle in a list
|
* ofnode_parse_phandle_with_args() - Find a node pointed by phandle in a list
|
||||||
*
|
*
|
||||||
|
Reference in New Issue
Block a user