diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2014-11-09 11:06:43 +0100 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2015-07-13 08:38:18 +0200 |
commit | d96f74f26feb832d25b77483df7f4f68ee78c61e (patch) | |
tree | 090d223150960e5d5ba6d5af354d67a195bc8119 /drivers | |
parent | d0c482359f89e8ea4d4c9ee558f94868f2a78ca2 (diff) | |
download | barebox-d96f74f26feb832d25b77483df7f4f68ee78c61e.tar.gz barebox-d96f74f26feb832d25b77483df7f4f68ee78c61e.tar.xz |
of: base: implement of_get_next_child
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/of/base.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/drivers/of/base.c b/drivers/of/base.c index 3e40a48ecf..08ef1a1418 100644 --- a/drivers/of/base.c +++ b/drivers/of/base.c @@ -1570,6 +1570,23 @@ struct device_node *of_get_next_available_child(const struct device_node *node, EXPORT_SYMBOL(of_get_next_available_child); /** + * of_get_next_child - Iterate a node childs + * @node: parent node + * @prev: previous child of the parent node, or NULL to get first + * + * Returns a node pointer with refcount incremented. + */ +struct device_node *of_get_next_child(const struct device_node *node, + struct device_node *prev) +{ + prev = list_prepare_entry(prev, &node->children, parent_list); + list_for_each_entry_continue(prev, &node->children, parent_list) + return prev; + return NULL; +} +EXPORT_SYMBOL(of_get_next_child); + +/** * of_get_child_count - Count child nodes of given parent node * @parent: parent node * |