diff options
author | Pantelis Antoniou <pantelis.antoniou@konsulko.com> | 2017-06-14 17:53:05 +0300 |
---|---|---|
committer | David Gibson <david@gibson.dropbear.id.au> | 2017-09-28 15:44:22 +1000 |
commit | 737b2df39cc8c5667e66b006618293d13905cf78 (patch) | |
tree | e67e8310535c09cd1c25871ea1a5e33c7374ae1e /livetree.c | |
parent | 497432fd2131967f349e69dc5d259072151cc4b4 (diff) | |
download | device-tree-compiler-737b2df39cc8c5667e66b006618293d13905cf78.tar.gz |
overlay: Add syntactic sugar version of overlays
For simple overlays that use a single target there exists a
simpler syntax version.
&foo { }; generates an overlay with a single target at foo.
Signed-off-by: Pantelis Antoniou <pantelis.antoniou@konsulko.com>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Diffstat (limited to 'livetree.c')
-rw-r--r-- | livetree.c | 22 |
1 files changed, 22 insertions, 0 deletions
@@ -216,6 +216,28 @@ struct node *merge_nodes(struct node *old_node, struct node *new_node) return old_node; } +void add_orphan_node(struct node *dt, struct node *new_node, char *ref) +{ + static unsigned int next_orphan_fragment = 0; + struct node *node; + struct property *p; + struct data d = empty_data; + char *name; + + d = data_add_marker(d, REF_PHANDLE, ref); + d = data_append_integer(d, 0xffffffff, 32); + + p = build_property("target", d); + + xasprintf(&name, "fragment@%u", + next_orphan_fragment++); + name_node(new_node, "__overlay__"); + node = build_node(p, new_node); + name_node(node, name); + + add_child(dt, node); +} + struct node *chain_node(struct node *first, struct node *list) { assert(first->next_sibling == NULL); |