Commit ee890596 authored by Philipp Zabel's avatar Philipp Zabel

of: Add for_each_endpoint_of_node helper macro

Note that while of_graph_get_next_endpoint decrements the reference count
of the child node passed to it, of_node_put(child) still has to be called
manually when breaking out of the loop.
Signed-off-by: default avatarPhilipp Zabel <p.zabel@pengutronix.de>
Acked-by: default avatarLaurent Pinchart <laurent.pinchart@ideasonboard.com>
parent f033c0bc
...@@ -26,6 +26,17 @@ struct of_endpoint { ...@@ -26,6 +26,17 @@ struct of_endpoint {
const struct device_node *local_node; const struct device_node *local_node;
}; };
/**
* for_each_endpoint_of_node - iterate over every endpoint in a device node
* @parent: parent device node containing ports and endpoints
* @child: loop variable pointing to the current endpoint node
*
* When breaking out of the loop, of_node_put(child) has to be called manually.
*/
#define for_each_endpoint_of_node(parent, child) \
for (child = of_graph_get_next_endpoint(parent, NULL); child != NULL; \
child = of_graph_get_next_endpoint(parent, child))
#ifdef CONFIG_OF #ifdef CONFIG_OF
int of_graph_parse_endpoint(const struct device_node *node, int of_graph_parse_endpoint(const struct device_node *node,
struct of_endpoint *endpoint); struct of_endpoint *endpoint);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment