Lines Matching defs:fdto

18  * @fdto: pointer to the device tree overlay blob
30 static uint32_t overlay_get_target_phandle(const void *fdto, int fragment)
35 val = fdt_getprop(fdto, fragment, "target", &len);
48 * @fdto: Device tree overlay blob
60 static int overlay_get_target(const void *fdt, const void *fdto,
68 phandle = overlay_get_target_phandle(fdto, fragment);
75 path = fdt_getprop(fdto, fragment, "target-path", &path_len);
145 * @fdto: Device tree overlay blob
158 static int overlay_adjust_node_phandles(void *fdto, int node,
164 ret = overlay_phandle_add_offset(fdto, node, "phandle", delta);
168 ret = overlay_phandle_add_offset(fdto, node, "linux,phandle", delta);
172 fdt_for_each_subnode(child, fdto, node) {
173 ret = overlay_adjust_node_phandles(fdto, child, delta);
183 * @fdto: Device tree overlay blob
195 static int overlay_adjust_local_phandles(void *fdto, uint32_t delta)
200 return overlay_adjust_node_phandles(fdto, 0, delta);
205 * @fdto: Device tree overlay blob
222 static int overlay_update_local_node_references(void *fdto,
231 fdt_for_each_property_offset(fixup_prop, fdto, fixup_node) {
239 fixup_val = fdt_getprop_by_offset(fdto, fixup_prop,
247 tree_val = fdt_getprop(fdto, tree_node, name, &tree_len);
271 ret = fdt_setprop_inplace_namelen_partial(fdto,
286 fdt_for_each_subnode(fixup_child, fdto, fixup_node) {
287 const char *fixup_child_name = fdt_get_name(fdto, fixup_child,
291 tree_child = fdt_subnode_offset(fdto, tree_node,
298 ret = overlay_update_local_node_references(fdto,
311 * @fdto: Device tree overlay blob
326 static int overlay_update_local_references(void *fdto, uint32_t delta)
330 fixups = fdt_path_offset(fdto, "/__local_fixups__");
342 return overlay_update_local_node_references(fdto, 0, fixups,
349 * @fdto: Device tree overlay blob
369 static int overlay_fixup_one_phandle(void *fdt, void *fdto,
397 fixup_off = fdt_path_offset_namelen(fdto, path, path_len);
404 return fdt_setprop_inplace_namelen_partial(fdto, fixup_off,
413 * @fdto: Device tree overlay blob
429 static int overlay_fixup_phandle(void *fdt, void *fdto, int symbols_off,
436 value = fdt_getprop_by_offset(fdto, property,
484 ret = overlay_fixup_one_phandle(fdt, fdto, symbols_off,
498 * @fdto: Device tree overlay blob
511 static int overlay_fixup_phandles(void *fdt, void *fdto)
517 fixups_off = fdt_path_offset(fdto, "/__fixups__");
528 fdt_for_each_property_offset(property, fdto, fixups_off) {
531 ret = overlay_fixup_phandle(fdt, fdto, symbols_off, property);
543 * @fdto: Device tree overlay blob
559 void *fdto, int node)
564 fdt_for_each_property_offset(property, fdto, node) {
570 prop = fdt_getprop_by_offset(fdto, property, &name,
582 fdt_for_each_subnode(subnode, fdto, node) {
583 const char *name = fdt_get_name(fdto, subnode, NULL);
597 ret = overlay_apply_node(fdt, nnode, fdto, subnode);
608 * @fdto: Device tree overlay blob
620 static int overlay_merge(void *fdt, void *fdto)
624 fdt_for_each_subnode(fragment, fdto, 0) {
633 overlay = fdt_subnode_offset(fdto, fragment, "__overlay__");
640 target = overlay_get_target(fdt, fdto, fragment, NULL);
644 ret = overlay_apply_node(fdt, target, fdto, overlay);
683 * @fdto: Device tree overlay blob
696 static int overlay_symbol_update(void *fdt, void *fdto)
709 ov_sym = fdt_subnode_offset(fdto, 0, "__symbols__");
726 fdt_for_each_property_offset(prop, fdto, ov_sym) {
727 path = fdt_getprop_by_offset(fdto, prop, &name, &path_len);
770 ret = fdt_subnode_offset_namelen(fdto, 0, frag_name,
778 ret = fdt_subnode_offset(fdto, fragment, "__overlay__");
783 ret = overlay_get_target(fdt, fdto, fragment, &target_path);
805 ret = overlay_get_target(fdt, fdto, fragment, &target_path);
831 int fdt_overlay_apply(void *fdt, void *fdto)
837 FDT_RO_PROBE(fdto);
843 ret = overlay_adjust_local_phandles(fdto, delta);
847 ret = overlay_update_local_references(fdto, delta);
851 ret = overlay_fixup_phandles(fdt, fdto);
855 ret = overlay_merge(fdt, fdto);
859 ret = overlay_symbol_update(fdt, fdto);
866 fdt_set_magic(fdto, ~0);
874 fdt_set_magic(fdto, ~0);