From: Kuninori Morimoto <kuninori.morimoto.gx@xxxxxxxxxxx> OF graph want to count its port/endpoint number, same as of_get_child_count(). This patch adds these functions. Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@xxxxxxxxxxx> --- v2 -> v3 - no change drivers/of/base.c | 24 ++++++++++++++++++++++++ include/linux/of_graph.h | 8 ++++++++ 2 files changed, 32 insertions(+) diff --git a/drivers/of/base.c b/drivers/of/base.c index b11f533..e795d0f 100644 --- a/drivers/of/base.c +++ b/drivers/of/base.c @@ -2584,3 +2584,27 @@ struct device_node *of_graph_get_remote_port(const struct device_node *node) return of_get_next_parent(np); } EXPORT_SYMBOL(of_graph_get_remote_port); + +int of_graph_get_port_count(const struct device_node *np) +{ + struct device_node *port; + int num = 0; + + for_each_of_port(np, port) + num++; + + return num; +} +EXPORT_SYMBOL(of_graph_get_port_count); + +int of_graph_get_endpoint_count(const struct device_node *np) +{ + struct device_node *port, *endpoint; + int num = 0; + + for_each_of_endpoint(np, port, endpoint) + num++; + + return num; +} +EXPORT_SYMBOL(of_graph_get_endpoint_count); diff --git a/include/linux/of_graph.h b/include/linux/of_graph.h index 3de036f..c060a7c 100644 --- a/include/linux/of_graph.h +++ b/include/linux/of_graph.h @@ -54,6 +54,8 @@ struct of_endpoint { #ifdef CONFIG_OF int of_graph_parse_endpoint(const struct device_node *node, struct of_endpoint *endpoint); +int of_graph_get_port_count(const struct device_node *np); +int of_graph_get_endpoint_count(const struct device_node *np); struct device_node *of_graph_get_port_by_id(struct device_node *node, u32 id); struct device_node *of_graph_get_top_port(struct device *dev); struct device_node *of_graph_get_next_port(const struct device_node *parent, @@ -79,6 +81,12 @@ static inline int of_graph_parse_endpoint(const struct device_node *node, return -ENOSYS; } +static inline int of_graph_get_endpoint_count(const struct device_node *np, + char *type) +{ + return 0; +} + static inline struct device_node *of_graph_get_port_by_id( struct device_node *node, u32 id) { -- 1.9.1 -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html