diff options
author | Tom Rini <trini@konsulko.com> | 2018-02-24 08:02:17 -0500 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2018-02-24 08:02:17 -0500 |
commit | 0bb430c8494e26e8d258cf6957cdd39d2ce4f309 (patch) | |
tree | 64a043dbcaea96f023129cf9ec588fbb82d54f8f /drivers/core | |
parent | ba8bf9481b0854fa7d48b0e9ed913c639f187c7d (diff) | |
parent | 3f56552227d1b711cf7dcae986ae0a3f2a91e8d7 (diff) |
Merge git://git.denx.de/u-boot-video
Diffstat (limited to 'drivers/core')
-rw-r--r-- | drivers/core/ofnode.c | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/drivers/core/ofnode.c b/drivers/core/ofnode.c index 98f4b539ea..d0bdea08df 100644 --- a/drivers/core/ofnode.c +++ b/drivers/core/ofnode.c @@ -165,6 +165,20 @@ ofnode ofnode_next_subnode(ofnode node) fdt_next_subnode(gd->fdt_blob, ofnode_to_offset(node))); } +ofnode ofnode_get_parent(ofnode node) +{ + ofnode parent; + + assert(ofnode_valid(node)); + if (ofnode_is_np(node)) + parent = np_to_ofnode(of_get_parent(ofnode_to_np(node))); + else + parent.of_offset = fdt_parent_offset(gd->fdt_blob, + ofnode_to_offset(node)); + + return parent; +} + const char *ofnode_get_name(ofnode node) { assert(ofnode_valid(node)); @@ -174,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; |