[COMMON] script: dtc: Update dtc for Device Tree Overlay
[GitHub/LineageOS/android_kernel_motorola_exynos9610.git] / scripts / dtc / livetree.c
index 3673de07e4e58c1d1e86619a4be6f479f1429c08..17ff9c1ae881973ff81cb6b34114761a97cb6101 100644 (file)
@@ -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;
+       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);
@@ -319,8 +341,8 @@ struct reserve_info *build_reserve_entry(uint64_t address, uint64_t size)
 
        memset(new, 0, sizeof(*new));
 
-       new->address = address;
-       new->size = size;
+       new->re.address = address;
+       new->re.size = size;
 
        return new;
 }
@@ -393,7 +415,7 @@ struct property *get_property(struct node *node, const char *propname)
 cell_t propval_cell(struct property *prop)
 {
        assert(prop->val.len == sizeof(cell_t));
-       return fdt32_to_cpu(*((fdt32_t *)prop->val.val));
+       return fdt32_to_cpu(*((cell_t *)prop->val.val));
 }
 
 struct property *get_property_by_label(struct node *tree, const char *label,
@@ -599,13 +621,13 @@ static int cmp_reserve_info(const void *ax, const void *bx)
        a = *((const struct reserve_info * const *)ax);
        b = *((const struct reserve_info * const *)bx);
 
-       if (a->address < b->address)
+       if (a->re.address < b->re.address)
                return -1;
-       else if (a->address > b->address)
+       else if (a->re.address > b->re.address)
                return 1;
-       else if (a->size < b->size)
+       else if (a->re.size < b->re.size)
                return -1;
-       else if (a->size > b->size)
+       else if (a->re.size > b->re.size)
                return 1;
        else
                return 0;
@@ -902,7 +924,7 @@ static void add_local_fixup_entry(struct dt_info *dti,
                struct node *refnode)
 {
        struct node *wn, *nwn;  /* local fixup node, walk node, new */
-       fdt32_t value_32;
+       uint32_t value_32;
        char **compp;
        int i, depth;