of_graph: add of_graph_get_remote_endpoint()
authorKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Thu, 20 Apr 2017 01:31:42 +0000 (01:31 +0000)
committerMark Brown <broonie@kernel.org>
Wed, 17 May 2017 09:21:08 +0000 (10:21 +0100)
It should use same method to get same result.
To getting remote-endpoint node,
let's use of_graph_get_remote_endpoint()

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Acked-by: Rob Herring <robh@kernel.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/of/base.c
include/linux/of_graph.h

index 5db6aa1688e93ac0e4f812a0e389b90da51cb933..b169508a9b56c723fd67d282897cb97761bade4a 100644 (file)
@@ -2486,6 +2486,20 @@ struct device_node *of_graph_get_endpoint_by_regs(
 }
 EXPORT_SYMBOL(of_graph_get_endpoint_by_regs);
 
+/**
+ * of_graph_get_remote_endpoint() - get remote endpoint node
+ * @node: pointer to a local endpoint device_node
+ *
+ * Return: Remote endpoint node associated with remote endpoint node linked
+ *        to @node. Use of_node_put() on it when done.
+ */
+struct device_node *of_graph_get_remote_endpoint(const struct device_node *node)
+{
+       /* Get remote endpoint node. */
+       return of_parse_phandle(node, "remote-endpoint", 0);
+}
+EXPORT_SYMBOL(of_graph_get_remote_endpoint);
+
 /**
  * of_graph_get_remote_port_parent() - get remote port's parent node
  * @node: pointer to a local endpoint device_node
@@ -2500,7 +2514,7 @@ struct device_node *of_graph_get_remote_port_parent(
        unsigned int depth;
 
        /* Get remote endpoint node. */
-       np = of_parse_phandle(node, "remote-endpoint", 0);
+       np = of_graph_get_remote_endpoint(node);
 
        /* Walk 3 levels up only if there is 'ports' node. */
        for (depth = 3; depth && np; depth--) {
@@ -2524,7 +2538,7 @@ struct device_node *of_graph_get_remote_port(const struct device_node *node)
        struct device_node *np;
 
        /* Get remote endpoint node. */
-       np = of_parse_phandle(node, "remote-endpoint", 0);
+       np = of_graph_get_remote_endpoint(node);
        if (!np)
                return NULL;
        return of_get_next_parent(np);
index abdb02eaef0689a64fcb2acab45625057097ecda..0c9473a169dd5c5631bb7c69aa2654936ceeee2a 100644 (file)
@@ -48,6 +48,8 @@ struct device_node *of_graph_get_next_endpoint(const struct device_node *parent,
                                        struct device_node *previous);
 struct device_node *of_graph_get_endpoint_by_regs(
                const struct device_node *parent, int port_reg, int reg);
+struct device_node *of_graph_get_remote_endpoint(
+                                       const struct device_node *node);
 struct device_node *of_graph_get_remote_port_parent(
                                        const struct device_node *node);
 struct device_node *of_graph_get_remote_port(const struct device_node *node);
@@ -80,6 +82,12 @@ static inline struct device_node *of_graph_get_endpoint_by_regs(
        return NULL;
 }
 
+static inline struct device_node *of_graph_get_remote_endpoint(
+                                       const struct device_node *node)
+{
+       return NULL;
+}
+
 static inline struct device_node *of_graph_get_remote_port_parent(
                                        const struct device_node *node)
 {