Lines Matching refs:fdt

41 u32 fdt_getprop_u32_default_node(const void *fdt, int off, int cell,  in fdt_getprop_u32_default_node()  argument
47 val = fdt_getprop(fdt, off, prop, &len); in fdt_getprop_u32_default_node()
71 u32 fdt_getprop_u32_default(const void *fdt, const char *path, in fdt_getprop_u32_default() argument
76 off = fdt_path_offset(fdt, path); in fdt_getprop_u32_default()
80 return fdt_getprop_u32_default_node(fdt, off, 0, prop, dflt); in fdt_getprop_u32_default()
95 int fdt_find_and_setprop(void *fdt, const char *node, const char *prop, in fdt_find_and_setprop() argument
98 int nodeoff = fdt_path_offset(fdt, node); in fdt_find_and_setprop()
103 if ((!create) && (fdt_get_property(fdt, nodeoff, prop, NULL) == NULL)) in fdt_find_and_setprop()
106 return fdt_setprop(fdt, nodeoff, prop, val, len); in fdt_find_and_setprop()
119 int fdt_find_or_add_subnode(void *fdt, int parentoffset, const char *name) in fdt_find_or_add_subnode() argument
123 offset = fdt_subnode_offset(fdt, parentoffset, name); in fdt_find_or_add_subnode()
126 offset = fdt_add_subnode(fdt, parentoffset, name); in fdt_find_or_add_subnode()
136 static int fdt_fixup_stdout(void *fdt, int chosenoff) in fdt_fixup_stdout() argument
138 return fdt_setprop(fdt, chosenoff, "linux,stdout-path", in fdt_fixup_stdout()
142 static int fdt_fixup_stdout(void *fdt, int chosenoff) in fdt_fixup_stdout() argument
153 aliasoff = fdt_path_offset(fdt, "/aliases"); in fdt_fixup_stdout()
159 path = fdt_getprop(fdt, aliasoff, sername, &len); in fdt_fixup_stdout()
168 err = fdt_setprop(fdt, chosenoff, "linux,stdout-path", tmp, len); in fdt_fixup_stdout()
182 static int fdt_fixup_stdout(void *fdt, int chosenoff) in fdt_fixup_stdout() argument
188 int fdt_setprop_uxx(void *fdt, int nodeoffset, const char *name, in fdt_setprop_uxx() argument
192 return fdt_setprop_u64(fdt, nodeoffset, name, val); in fdt_setprop_uxx()
194 return fdt_setprop_u32(fdt, nodeoffset, name, (uint32_t)val); in fdt_setprop_uxx()
197 int fdt_root(void *fdt) in fdt_root() argument
202 err = fdt_check_header(fdt); in fdt_root()
210 err = fdt_setprop(fdt, 0, "serial-number", serial, in fdt_root()
223 int fdt_initrd(void *fdt, ulong initrd_start, ulong initrd_end) in fdt_initrd() argument
235 nodeoffset = fdt_find_or_add_subnode(fdt, 0, "chosen"); in fdt_initrd()
239 total = fdt_num_mem_rsv(fdt); in fdt_initrd()
246 err = fdt_get_mem_rsv(fdt, j, &addr, &size); in fdt_initrd()
248 fdt_del_mem_rsv(fdt, j); in fdt_initrd()
253 err = fdt_add_mem_rsv(fdt, initrd_start, initrd_end - initrd_start); in fdt_initrd()
259 is_u64 = (fdt_address_cells(fdt, 0) == 2); in fdt_initrd()
261 err = fdt_setprop_uxx(fdt, nodeoffset, "linux,initrd-start", in fdt_initrd()
270 err = fdt_setprop_uxx(fdt, nodeoffset, "linux,initrd-end", in fdt_initrd()
283 int fdt_bootargs_append(void *fdt, char *data) in fdt_bootargs_append() argument
295 nodeoffset = fdt_find_or_add_subnode(fdt, 0, "chosen"); in fdt_bootargs_append()
300 bootargs = fdt_getprop(fdt, nodeoffset, in fdt_bootargs_append()
308 fdt_increase_size(fdt, 512); in fdt_bootargs_append()
310 ret = fdt_setprop(fdt, nodeoffset, arr_bootargs[i], in fdt_bootargs_append()
323 int fdt_bootargs_append_ab(void *fdt, char *slot) in fdt_bootargs_append_ab() argument
337 ret = fdt_bootargs_append(fdt, str); in fdt_bootargs_append_ab()
350 __weak char *board_fdt_chosen_bootargs(void *fdt) in board_fdt_chosen_bootargs() argument
355 int fdt_chosen(void *fdt) in fdt_chosen() argument
361 err = fdt_check_header(fdt); in fdt_chosen()
368 nodeoffset = fdt_find_or_add_subnode(fdt, 0, "chosen"); in fdt_chosen()
372 str = board_fdt_chosen_bootargs(fdt); in fdt_chosen()
374 err = fdt_setprop(fdt, nodeoffset, "bootargs", str, in fdt_chosen()
383 return fdt_fixup_stdout(fdt, nodeoffset); in fdt_chosen()
386 void do_fixup_by_path(void *fdt, const char *path, const char *prop, in do_fixup_by_path() argument
396 int rc = fdt_find_and_setprop(fdt, path, prop, val, len, create); in do_fixup_by_path()
402 void do_fixup_by_path_u32(void *fdt, const char *path, const char *prop, in do_fixup_by_path_u32() argument
406 do_fixup_by_path(fdt, path, prop, &tmp, sizeof(tmp), create); in do_fixup_by_path_u32()
409 void do_fixup_by_prop(void *fdt, in do_fixup_by_prop() argument
422 off = fdt_node_offset_by_prop_value(fdt, -1, pname, pval, plen); in do_fixup_by_prop()
424 if (create || (fdt_get_property(fdt, off, prop, NULL) != NULL)) in do_fixup_by_prop()
425 fdt_setprop(fdt, off, prop, val, len); in do_fixup_by_prop()
426 off = fdt_node_offset_by_prop_value(fdt, off, pname, pval, plen); in do_fixup_by_prop()
430 void do_fixup_by_prop_u32(void *fdt, in do_fixup_by_prop_u32() argument
435 do_fixup_by_prop(fdt, pname, pval, plen, prop, &tmp, 4, create); in do_fixup_by_prop_u32()
438 void do_fixup_by_compat(void *fdt, const char *compat, in do_fixup_by_compat() argument
449 off = fdt_node_offset_by_compatible(fdt, -1, compat); in do_fixup_by_compat()
451 if (create || (fdt_get_property(fdt, off, prop, NULL) != NULL)) in do_fixup_by_compat()
452 fdt_setprop(fdt, off, prop, val, len); in do_fixup_by_compat()
453 off = fdt_node_offset_by_compatible(fdt, off, compat); in do_fixup_by_compat()
457 void do_fixup_by_compat_u32(void *fdt, const char *compat, in do_fixup_by_compat_u32() argument
461 do_fixup_by_compat(fdt, compat, prop, &tmp, 4, create); in do_fixup_by_compat_u32()
467 static int fdt_pack_reg(const void *fdt, void *buf, u64 *address, u64 *size, in fdt_pack_reg() argument
471 int address_cells = fdt_address_cells(fdt, 0); in fdt_pack_reg()
472 int size_cells = fdt_size_cells(fdt, 0); in fdt_pack_reg()
636 void fdt_fixup_ethernet(void *fdt) in fdt_fixup_ethernet() argument
649 if (fdt_path_offset(fdt, "/aliases") < 0) in fdt_fixup_ethernet()
657 offset = fdt_first_property_offset(fdt, in fdt_fixup_ethernet()
658 fdt_path_offset(fdt, "/aliases")); in fdt_fixup_ethernet()
661 offset = fdt_next_property_offset(fdt, offset); in fdt_fixup_ethernet()
666 path = fdt_getprop_by_offset(fdt, offset, &name, NULL); in fdt_fixup_ethernet()
688 nodeoff = fdt_path_offset(fdt, path); in fdt_fixup_ethernet()
689 fdt_prop = fdt_get_property(fdt, nodeoff, "status", in fdt_fixup_ethernet()
706 do_fixup_by_path(fdt, path, "mac-address", in fdt_fixup_ethernet()
708 do_fixup_by_path(fdt, path, "local-mac-address", in fdt_fixup_ethernet()
828 int fdt_increase_size(void *fdt, int add_len) in fdt_increase_size() argument
832 newlen = fdt_totalsize(fdt) + add_len; in fdt_increase_size()
835 return fdt_open_into(fdt, fdt, newlen); in fdt_increase_size()
1450 int fdt_set_phandle(void *fdt, int nodeoffset, uint32_t phandle) in fdt_set_phandle() argument
1455 int off = fdt_node_offset_by_phandle(fdt, phandle); in fdt_set_phandle()
1460 fdt_get_path(fdt, nodeoffset, buf, sizeof(buf)); in fdt_set_phandle()
1464 fdt_get_path(fdt, off, buf, sizeof(buf)); in fdt_set_phandle()
1470 ret = fdt_setprop_cell(fdt, nodeoffset, "phandle", phandle); in fdt_set_phandle()
1478 ret = fdt_setprop_cell(fdt, nodeoffset, "linux,phandle", phandle); in fdt_set_phandle()
1489 unsigned int fdt_create_phandle(void *fdt, int nodeoffset) in fdt_create_phandle() argument
1492 int phandle = fdt_get_phandle(fdt, nodeoffset); in fdt_create_phandle()
1498 phandle = fdt_alloc_phandle(fdt); in fdt_create_phandle()
1499 ret = fdt_set_phandle(fdt, nodeoffset, phandle); in fdt_create_phandle()
1519 int fdt_set_node_status(void *fdt, int nodeoffset, in fdt_set_node_status() argument
1530 ret = fdt_setprop_string(fdt, nodeoffset, "status", "okay"); in fdt_set_node_status()
1533 ret = fdt_setprop_string(fdt, nodeoffset, "status", "disabled"); in fdt_set_node_status()
1536 ret = fdt_setprop_string(fdt, nodeoffset, "status", "fail"); in fdt_set_node_status()
1540 ret = fdt_setprop_string(fdt, nodeoffset, "status", buf); in fdt_set_node_status()
1560 int fdt_set_status_by_alias(void *fdt, const char* alias, in fdt_set_status_by_alias() argument
1563 int offset = fdt_path_offset(fdt, alias); in fdt_set_status_by_alias()
1565 return fdt_set_node_status(fdt, offset, status, error_code); in fdt_set_status_by_alias()
1606 int fdt_verify_alias_address(void *fdt, int anode, const char *alias, u64 addr) in fdt_verify_alias_address() argument
1613 path = fdt_getprop(fdt, anode, alias, NULL); in fdt_verify_alias_address()
1619 node = fdt_path_offset(fdt, path); in fdt_verify_alias_address()
1626 reg = fdt_getprop(fdt, node, "reg", &len); in fdt_verify_alias_address()
1633 dt_addr = fdt_translate_address(fdt, node, reg); in fdt_verify_alias_address()
1647 u64 fdt_get_base_address(const void *fdt, int node) in fdt_get_base_address() argument
1652 prop = fdt_getprop(fdt, node, "reg", &size); in fdt_get_base_address()
1654 return prop ? fdt_translate_address(fdt, node, prop) : 0; in fdt_get_base_address()
1696 int fdt_read_range(void *fdt, int node, int n, uint64_t *child_addr, in fdt_read_range() argument
1699 int pnode = fdt_parent_offset(fdt, node); in fdt_read_range()
1714 pacells = fdt_getprop_u32_default_node(fdt, pnode, 0, "#address-cells", 1); in fdt_read_range()
1715 acells = fdt_getprop_u32_default_node(fdt, node, 0, "#address-cells", 1); in fdt_read_range()
1716 scells = fdt_getprop_u32_default_node(fdt, node, 0, "#size-cells", 1); in fdt_read_range()
1719 ranges = fdt_getprop(fdt, node, "ranges", &ranges_len); in fdt_read_range()
1738 *addr = fdt_translate_address(fdt, node, ranges + cell); in fdt_read_range()
1764 int fdt_setup_simplefb_node(void *fdt, int node, u64 base_address, u32 width, in fdt_setup_simplefb_node() argument
1771 fdt_support_default_count_cells(fdt, fdt_parent_offset(fdt, node), in fdt_setup_simplefb_node()
1781 ret = fdt_setprop(fdt, node, "reg", cells, sizeof(cells[0]) * i); in fdt_setup_simplefb_node()
1786 ret = fdt_set_name(fdt, node, name); in fdt_setup_simplefb_node()
1790 ret = fdt_setprop_u32(fdt, node, "width", width); in fdt_setup_simplefb_node()
1794 ret = fdt_setprop_u32(fdt, node, "height", height); in fdt_setup_simplefb_node()
1798 ret = fdt_setprop_u32(fdt, node, "stride", stride); in fdt_setup_simplefb_node()
1802 ret = fdt_setprop_string(fdt, node, "format", format); in fdt_setup_simplefb_node()
1806 ret = fdt_setprop_string(fdt, node, "status", "okay"); in fdt_setup_simplefb_node()
1852 int fdt_overlay_apply_verbose(void *fdt, void *fdto) in fdt_overlay_apply_verbose() argument
1857 err = fdt_path_offset(fdt, "/__symbols__"); in fdt_overlay_apply_verbose()
1860 err = fdt_overlay_apply(fdt, fdto); in fdt_overlay_apply_verbose()