summaryrefslogtreecommitdiff
path: root/drivers/core
diff options
context:
space:
mode:
authorTom Rini <trini@konsulko.com>2018-02-24 08:02:17 -0500
committerTom Rini <trini@konsulko.com>2018-02-24 08:02:17 -0500
commit0bb430c8494e26e8d258cf6957cdd39d2ce4f309 (patch)
tree64a043dbcaea96f023129cf9ec588fbb82d54f8f /drivers/core
parentba8bf9481b0854fa7d48b0e9ed913c639f187c7d (diff)
parent3f56552227d1b711cf7dcae986ae0a3f2a91e8d7 (diff)
Merge git://git.denx.de/u-boot-video
Diffstat (limited to 'drivers/core')
-rw-r--r--drivers/core/ofnode.c27
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;