From b4f20767b12a5718ed8549aece73d405c6cac800 Mon Sep 17 00:00:00 2001 From: Kever Yang Date: Fri, 23 Feb 2018 17:38:50 +0100 Subject: [PATCH] core: add ofnode_get_by_phandle() api We need to get ofnode from a phandle, add interface to support both live dt and fdt. Signed-off-by: Kever Yang Reviewed-by: Simon Glass Reviewed-by: Philipp Tomsich Tested-by: Klaus Goger Signed-off-by: Philipp Tomsich --- 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 dd6d57c49b..d0bdea08df 100644 --- a/drivers/core/ofnode.c +++ b/drivers/core/ofnode.c @@ -188,6 +188,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 6938e62993..0d008404f9 100644 --- a/include/dm/ofnode.h +++ b/include/dm/ofnode.h @@ -317,6 +317,14 @@ ofnode ofnode_get_parent(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 * -- 2.39.5