Lines Matching defs:fdto

16  * @fdto: pointer to the device tree overlay blob
28 static uint32_t overlay_get_target_phandle(const void *fdto, int fragment)
33 val = fdt_getprop(fdto, fragment, "target", &len);
46 * @fdto: Device tree overlay blob
58 static int overlay_get_target(const void *fdt, const void *fdto,
66 phandle = overlay_get_target_phandle(fdto, fragment);
73 path = fdt_getprop(fdto, fragment, "target-path", &path_len);
143 * @fdto: Device tree overlay blob
156 static int overlay_adjust_node_phandles(void *fdto, int node,
162 ret = overlay_phandle_add_offset(fdto, node, "phandle", delta);
166 ret = overlay_phandle_add_offset(fdto, node, "linux,phandle", delta);
170 fdt_for_each_subnode(child, fdto, node) {
171 ret = overlay_adjust_node_phandles(fdto, child, delta);
181 * @fdto: Device tree overlay blob
193 static int overlay_adjust_local_phandles(void *fdto, uint32_t delta)
198 return overlay_adjust_node_phandles(fdto, 0, delta);
203 * @fdto: Device tree overlay blob
220 static int overlay_update_local_node_references(void *fdto,
229 fdt_for_each_property_offset(fixup_prop, fdto, fixup_node) {
237 fixup_val = fdt_getprop_by_offset(fdto, fixup_prop,
246 tree_val = fdt_getprop(fdto, tree_node, name, &tree_len);
270 ret = fdt_setprop_inplace_namelen_partial(fdto,
285 fdt_for_each_subnode(fixup_child, fdto, fixup_node) {
286 const char *fixup_child_name = fdt_get_name(fdto, fixup_child,
290 tree_child = fdt_subnode_offset(fdto, tree_node,
297 ret = overlay_update_local_node_references(fdto,
310 * @fdto: Device tree overlay blob
325 static int overlay_update_local_references(void *fdto, uint32_t delta)
329 fixups = fdt_path_offset(fdto, "/__local_fixups__");
341 return overlay_update_local_node_references(fdto, 0, fixups,
348 * @fdto: Device tree overlay blob
368 static int overlay_fixup_one_phandle(void *fdt, void *fdto,
396 fixup_off = fdt_path_offset_namelen(fdto, path, path_len);
403 return fdt_setprop_inplace_namelen_partial(fdto, fixup_off,
412 * @fdto: Device tree overlay blob
428 static int overlay_fixup_phandle(void *fdt, void *fdto, int symbols_off,
435 value = fdt_getprop_by_offset(fdto, property,
483 ret = overlay_fixup_one_phandle(fdt, fdto, symbols_off,
497 * @fdto: Device tree overlay blob
510 static int overlay_fixup_phandles(void *fdt, void *fdto)
516 fixups_off = fdt_path_offset(fdto, "/__fixups__");
527 fdt_for_each_property_offset(property, fdto, fixups_off) {
530 ret = overlay_fixup_phandle(fdt, fdto, symbols_off, property);
542 * @fdto: Device tree overlay blob
558 void *fdto, int node)
563 fdt_for_each_property_offset(property, fdto, node) {
569 prop = fdt_getprop_by_offset(fdto, property, &name,
581 fdt_for_each_subnode(subnode, fdto, node) {
582 const char *name = fdt_get_name(fdto, subnode, NULL);
596 ret = overlay_apply_node(fdt, nnode, fdto, subnode);
607 * @fdto: Device tree overlay blob
619 static int overlay_merge(void *fdt, void *fdto)
623 fdt_for_each_subnode(fragment, fdto, 0) {
632 overlay = fdt_subnode_offset(fdto, fragment, "__overlay__");
639 target = overlay_get_target(fdt, fdto, fragment, NULL);
643 ret = overlay_apply_node(fdt, target, fdto, overlay);
682 * @fdto: Device tree overlay blob
695 static int overlay_symbol_update(void *fdt, void *fdto)
708 ov_sym = fdt_subnode_offset(fdto, 0, "__symbols__");
725 fdt_for_each_property_offset(prop, fdto, ov_sym) {
726 path = fdt_getprop_by_offset(fdto, prop, &name, &path_len);
769 ret = fdt_subnode_offset_namelen(fdto, 0, frag_name,
777 ret = fdt_subnode_offset(fdto, fragment, "__overlay__");
782 ret = overlay_get_target(fdt, fdto, fragment, &target_path);
804 ret = overlay_get_target(fdt, fdto, fragment, &target_path);
830 int fdt_overlay_apply(void *fdt, void *fdto)
836 FDT_RO_PROBE(fdto);
842 ret = overlay_adjust_local_phandles(fdto, delta);
846 ret = overlay_update_local_references(fdto, delta);
850 ret = overlay_fixup_phandles(fdt, fdto);
854 ret = overlay_merge(fdt, fdto);
858 ret = overlay_symbol_update(fdt, fdto);
865 fdt_set_magic(fdto, ~0);
873 fdt_set_magic(fdto, ~0);