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 <kever.yang@rock-chips.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
Tested-by: Klaus Goger <klaus.goger@theobroma-systems.com>
Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
This commit is contained in:
Kever Yang 2018-02-23 17:38:50 +01:00 committed by Anatolij Gustschin
parent e2d5997ffd
commit b4f20767b1
2 changed files with 21 additions and 0 deletions

View File

@ -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;

View File

@ -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
*