
We need to get ofnode from a phandle, add interface to support both live dt and fdt.
Signed-off-by: Kever Yang kever.yang@rock-chips.com ---
drivers/core/ofnode.c | 13 +++++++++++++ include/dm/ofnode.h | 8 ++++++++ 2 files changed, 21 insertions(+)
diff --git a/drivers/core/ofnode.c b/drivers/core/ofnode.c index 0fc8bd4..59c8ff3 100644 --- a/drivers/core/ofnode.c +++ b/drivers/core/ofnode.c @@ -177,6 +177,19 @@ const char *ofnode_get_name(ofnode node) return fdt_get_name(gd->fdt_blob, ofnode_to_offset(node), NULL); }
+ofnode ofnode_get_by_phandle(uint phandle) +{ + ofnode node; + + if (of_live_active()) + node = np_to_ofnode(of_find_node_by_phandle(phandle)); + else + node.of_offset = fdt_node_offset_by_phandle(gd->fdt_blob, + phandle); + + return node; +} + int ofnode_read_size(ofnode node, const char *propname) { int len; diff --git a/include/dm/ofnode.h b/include/dm/ofnode.h index 8b9932a..b1681e2 100644 --- a/include/dm/ofnode.h +++ b/include/dm/ofnode.h @@ -310,6 +310,14 @@ ofnode ofnode_next_subnode(ofnode node); const char *ofnode_get_name(ofnode node);
/** + * ofnode_get_by_phandle() - get ofnode from phandle + * + * @phandle: phandle to look up + * @return ofnode reference to the phandle + */ +ofnode ofnode_get_by_phandle(uint phandle); + +/** * ofnode_read_size() - read the size of a property * * @node: node to check