Lines Matching refs:fdt
42 u32 fdt_getprop_u32_default_node(const void *fdt, int off, int cell, in fdt_getprop_u32_default_node() argument
48 val = fdt_getprop(fdt, off, prop, &len); in fdt_getprop_u32_default_node()
72 u32 fdt_getprop_u32_default(const void *fdt, const char *path, in fdt_getprop_u32_default() argument
77 off = fdt_path_offset(fdt, path); in fdt_getprop_u32_default()
81 return fdt_getprop_u32_default_node(fdt, off, 0, prop, dflt); in fdt_getprop_u32_default()
96 int fdt_find_and_setprop(void *fdt, const char *node, const char *prop, in fdt_find_and_setprop() argument
99 int nodeoff = fdt_path_offset(fdt, node); in fdt_find_and_setprop()
104 if ((!create) && (fdt_get_property(fdt, nodeoff, prop, NULL) == NULL)) in fdt_find_and_setprop()
107 return fdt_setprop(fdt, nodeoff, prop, val, len); in fdt_find_and_setprop()
120 int fdt_find_or_add_subnode(void *fdt, int parentoffset, const char *name) in fdt_find_or_add_subnode() argument
124 offset = fdt_subnode_offset(fdt, parentoffset, name); in fdt_find_or_add_subnode()
127 offset = fdt_add_subnode(fdt, parentoffset, name); in fdt_find_or_add_subnode()
137 static int fdt_fixup_stdout(void *fdt, int chosenoff) in fdt_fixup_stdout() argument
139 return fdt_setprop(fdt, chosenoff, "linux,stdout-path", in fdt_fixup_stdout()
143 static int fdt_fixup_stdout(void *fdt, int chosenoff) in fdt_fixup_stdout() argument
154 aliasoff = fdt_path_offset(fdt, "/aliases"); in fdt_fixup_stdout()
160 path = fdt_getprop(fdt, aliasoff, sername, &len); in fdt_fixup_stdout()
169 err = fdt_setprop(fdt, chosenoff, "linux,stdout-path", tmp, len); in fdt_fixup_stdout()
183 static int fdt_fixup_stdout(void *fdt, int chosenoff) in fdt_fixup_stdout() argument
189 int fdt_setprop_uxx(void *fdt, int nodeoffset, const char *name, in fdt_setprop_uxx() argument
193 return fdt_setprop_u64(fdt, nodeoffset, name, val); in fdt_setprop_uxx()
195 return fdt_setprop_u32(fdt, nodeoffset, name, (uint32_t)val); in fdt_setprop_uxx()
198 int fdt_root(void *fdt) in fdt_root() argument
203 err = fdt_check_header(fdt); in fdt_root()
211 err = fdt_setprop(fdt, 0, "serial-number", serial, in fdt_root()
224 int fdt_initrd(void *fdt, ulong initrd_start, ulong initrd_end) in fdt_initrd() argument
236 nodeoffset = fdt_find_or_add_subnode(fdt, 0, "chosen"); in fdt_initrd()
240 total = fdt_num_mem_rsv(fdt); in fdt_initrd()
247 err = fdt_get_mem_rsv(fdt, j, &addr, &size); in fdt_initrd()
249 fdt_del_mem_rsv(fdt, j); in fdt_initrd()
254 fdt_increase_size(fdt, 512); in fdt_initrd()
256 err = fdt_add_mem_rsv(fdt, initrd_start, initrd_end - initrd_start); in fdt_initrd()
262 is_u64 = (fdt_address_cells(fdt, 0) == 2); in fdt_initrd()
264 err = fdt_setprop_uxx(fdt, nodeoffset, "linux,initrd-start", in fdt_initrd()
273 err = fdt_setprop_uxx(fdt, nodeoffset, "linux,initrd-end", in fdt_initrd()
286 int fdt_bootargs_append(void *fdt, char *data) in fdt_bootargs_append() argument
298 nodeoffset = fdt_find_or_add_subnode(fdt, 0, "chosen"); in fdt_bootargs_append()
303 bootargs = fdt_getprop(fdt, nodeoffset, in fdt_bootargs_append()
312 fdt_increase_size(fdt, 1024); in fdt_bootargs_append()
314 fdt_increase_size(fdt, 512); in fdt_bootargs_append()
317 ret = fdt_setprop(fdt, nodeoffset, arr_bootargs[i], in fdt_bootargs_append()
334 __weak char *board_fdt_chosen_bootargs(void *fdt) in board_fdt_chosen_bootargs() argument
339 int fdt_chosen(void *fdt) in fdt_chosen() argument
346 err = fdt_check_header(fdt); in fdt_chosen()
353 nodeoffset = fdt_find_or_add_subnode(fdt, 0, "chosen"); in fdt_chosen()
358 err = fdt_setprop(fdt, nodeoffset, "rng-seed", in fdt_chosen()
368 str = board_fdt_chosen_bootargs(fdt); in fdt_chosen()
370 err = fdt_setprop(fdt, nodeoffset, "bootargs", str, in fdt_chosen()
379 return fdt_fixup_stdout(fdt, nodeoffset); in fdt_chosen()
382 void do_fixup_by_path(void *fdt, const char *path, const char *prop, in do_fixup_by_path() argument
392 int rc = fdt_find_and_setprop(fdt, path, prop, val, len, create); in do_fixup_by_path()
398 void do_fixup_by_path_u32(void *fdt, const char *path, const char *prop, in do_fixup_by_path_u32() argument
402 do_fixup_by_path(fdt, path, prop, &tmp, sizeof(tmp), create); in do_fixup_by_path_u32()
405 void do_fixup_by_prop(void *fdt, in do_fixup_by_prop() argument
418 off = fdt_node_offset_by_prop_value(fdt, -1, pname, pval, plen); in do_fixup_by_prop()
420 if (create || (fdt_get_property(fdt, off, prop, NULL) != NULL)) in do_fixup_by_prop()
421 fdt_setprop(fdt, off, prop, val, len); in do_fixup_by_prop()
422 off = fdt_node_offset_by_prop_value(fdt, off, pname, pval, plen); in do_fixup_by_prop()
426 void do_fixup_by_prop_u32(void *fdt, in do_fixup_by_prop_u32() argument
431 do_fixup_by_prop(fdt, pname, pval, plen, prop, &tmp, 4, create); in do_fixup_by_prop_u32()
434 void do_fixup_by_compat(void *fdt, const char *compat, in do_fixup_by_compat() argument
445 off = fdt_node_offset_by_compatible(fdt, -1, compat); in do_fixup_by_compat()
447 if (create || (fdt_get_property(fdt, off, prop, NULL) != NULL)) in do_fixup_by_compat()
448 fdt_setprop(fdt, off, prop, val, len); in do_fixup_by_compat()
449 off = fdt_node_offset_by_compatible(fdt, off, compat); in do_fixup_by_compat()
453 void do_fixup_by_compat_u32(void *fdt, const char *compat, in do_fixup_by_compat_u32() argument
457 do_fixup_by_compat(fdt, compat, prop, &tmp, 4, create); in do_fixup_by_compat_u32()
463 static int fdt_pack_reg(const void *fdt, void *buf, u64 *address, u64 *size, in fdt_pack_reg() argument
467 int address_cells = fdt_address_cells(fdt, 0); in fdt_pack_reg()
468 int size_cells = fdt_size_cells(fdt, 0); in fdt_pack_reg()
632 void fdt_fixup_ethernet(void *fdt) in fdt_fixup_ethernet() argument
645 if (fdt_path_offset(fdt, "/aliases") < 0) in fdt_fixup_ethernet()
653 offset = fdt_first_property_offset(fdt, in fdt_fixup_ethernet()
654 fdt_path_offset(fdt, "/aliases")); in fdt_fixup_ethernet()
657 offset = fdt_next_property_offset(fdt, offset); in fdt_fixup_ethernet()
662 path = fdt_getprop_by_offset(fdt, offset, &name, NULL); in fdt_fixup_ethernet()
684 nodeoff = fdt_path_offset(fdt, path); in fdt_fixup_ethernet()
685 fdt_prop = fdt_get_property(fdt, nodeoff, "status", in fdt_fixup_ethernet()
702 do_fixup_by_path(fdt, path, "mac-address", in fdt_fixup_ethernet()
704 do_fixup_by_path(fdt, path, "local-mac-address", in fdt_fixup_ethernet()
824 int fdt_increase_size(void *fdt, int add_len) in fdt_increase_size() argument
828 newlen = fdt_totalsize(fdt) + add_len; in fdt_increase_size()
831 return fdt_open_into(fdt, fdt, newlen); in fdt_increase_size()
1446 int fdt_set_phandle(void *fdt, int nodeoffset, uint32_t phandle) in fdt_set_phandle() argument
1451 int off = fdt_node_offset_by_phandle(fdt, phandle); in fdt_set_phandle()
1456 fdt_get_path(fdt, nodeoffset, buf, sizeof(buf)); in fdt_set_phandle()
1460 fdt_get_path(fdt, off, buf, sizeof(buf)); in fdt_set_phandle()
1466 ret = fdt_setprop_cell(fdt, nodeoffset, "phandle", phandle); in fdt_set_phandle()
1474 ret = fdt_setprop_cell(fdt, nodeoffset, "linux,phandle", phandle); in fdt_set_phandle()
1485 unsigned int fdt_create_phandle(void *fdt, int nodeoffset) in fdt_create_phandle() argument
1488 int phandle = fdt_get_phandle(fdt, nodeoffset); in fdt_create_phandle()
1494 phandle = fdt_alloc_phandle(fdt); in fdt_create_phandle()
1495 ret = fdt_set_phandle(fdt, nodeoffset, phandle); in fdt_create_phandle()
1515 int fdt_set_node_status(void *fdt, int nodeoffset, in fdt_set_node_status() argument
1526 ret = fdt_setprop_string(fdt, nodeoffset, "status", "okay"); in fdt_set_node_status()
1529 ret = fdt_setprop_string(fdt, nodeoffset, "status", "disabled"); in fdt_set_node_status()
1532 ret = fdt_setprop_string(fdt, nodeoffset, "status", "fail"); in fdt_set_node_status()
1536 ret = fdt_setprop_string(fdt, nodeoffset, "status", buf); in fdt_set_node_status()
1556 int fdt_set_status_by_alias(void *fdt, const char* alias, in fdt_set_status_by_alias() argument
1559 int offset = fdt_path_offset(fdt, alias); in fdt_set_status_by_alias()
1561 return fdt_set_node_status(fdt, offset, status, error_code); in fdt_set_status_by_alias()
1602 int fdt_verify_alias_address(void *fdt, int anode, const char *alias, u64 addr) in fdt_verify_alias_address() argument
1609 path = fdt_getprop(fdt, anode, alias, NULL); in fdt_verify_alias_address()
1615 node = fdt_path_offset(fdt, path); in fdt_verify_alias_address()
1622 reg = fdt_getprop(fdt, node, "reg", &len); in fdt_verify_alias_address()
1629 dt_addr = fdt_translate_address(fdt, node, reg); in fdt_verify_alias_address()
1643 u64 fdt_get_base_address(const void *fdt, int node) in fdt_get_base_address() argument
1648 prop = fdt_getprop(fdt, node, "reg", &size); in fdt_get_base_address()
1650 return prop ? fdt_translate_address(fdt, node, prop) : 0; in fdt_get_base_address()
1692 int fdt_read_range(void *fdt, int node, int n, uint64_t *child_addr, in fdt_read_range() argument
1695 int pnode = fdt_parent_offset(fdt, node); in fdt_read_range()
1710 pacells = fdt_getprop_u32_default_node(fdt, pnode, 0, "#address-cells", 1); in fdt_read_range()
1711 acells = fdt_getprop_u32_default_node(fdt, node, 0, "#address-cells", 1); in fdt_read_range()
1712 scells = fdt_getprop_u32_default_node(fdt, node, 0, "#size-cells", 1); in fdt_read_range()
1715 ranges = fdt_getprop(fdt, node, "ranges", &ranges_len); in fdt_read_range()
1734 *addr = fdt_translate_address(fdt, node, ranges + cell); in fdt_read_range()
1760 int fdt_setup_simplefb_node(void *fdt, int node, u64 base_address, u32 width, in fdt_setup_simplefb_node() argument
1767 fdt_support_default_count_cells(fdt, fdt_parent_offset(fdt, node), in fdt_setup_simplefb_node()
1777 ret = fdt_setprop(fdt, node, "reg", cells, sizeof(cells[0]) * i); in fdt_setup_simplefb_node()
1782 ret = fdt_set_name(fdt, node, name); in fdt_setup_simplefb_node()
1786 ret = fdt_setprop_u32(fdt, node, "width", width); in fdt_setup_simplefb_node()
1790 ret = fdt_setprop_u32(fdt, node, "height", height); in fdt_setup_simplefb_node()
1794 ret = fdt_setprop_u32(fdt, node, "stride", stride); in fdt_setup_simplefb_node()
1798 ret = fdt_setprop_string(fdt, node, "format", format); in fdt_setup_simplefb_node()
1802 ret = fdt_setprop_string(fdt, node, "status", "okay"); in fdt_setup_simplefb_node()
1848 int fdt_overlay_apply_verbose(void *fdt, void *fdto) in fdt_overlay_apply_verbose() argument
1853 err = fdt_path_offset(fdt, "/__symbols__"); in fdt_overlay_apply_verbose()
1856 err = fdt_overlay_apply(fdt, fdto); in fdt_overlay_apply_verbose()