Lines Matching defs:node

27  * struct target - info about current target node as recursing through overlay
28 * @np: node where current level of overlay will be applied
29 * @in_livetree: @np is a node in the live devicetree
32 * an overlay fragment, which is a devicetree subtree. Initially @np is a node
36 * subtree node also exists in the live devicetree. When a node in the overlay
38 * points to a newly allocated node, and all subsequent targets in the subtree
49 * @overlay: pointer to the __overlay__ node
64 * @symbols_fragment: last element of @fragments[] is the __symbols__ node
130 * furthermore receives a pointer to the affected device tree node.
133 * tree node or its content beyond @OF_OVERLAY_POST_REMOVE corresponding to the
134 * respective node it received.
185 * The values of properties in the "/__symbols__" node are paths in
189 * The paths refer to a node in the subtree of a fragment node's "__overlay__"
190 * node, for example "/fragment@0/__overlay__/symbol_path_tail",
191 * where symbol_path_tail can be a single node or it may be a multi-node path.
195 * path from the fragment node.
281 * @is_symbols_prop: 1 if @overlay_prop is from node "/__symbols__"
297 * Update of property in symbols node is not allowed.
375 * add_changeset_node() - add @node (and children) to overlay changeset
377 * @target: where @node will be placed in live tree or changeset
378 * @node: node from within overlay device tree fragment
380 * If @node does not already exist in @target, add changeset entry
381 * to add @node in @target.
383 * If @node already exists in @target, and the existing node has
384 * a phandle, the overlay node is not allowed to have a phandle.
386 * If @node has child nodes, add the children recursively via
390 * not contain the full path in node->full_name. Thus an overlay
392 * node->full_name. However, a live devicetree created from Open
393 * Firmware may have the full path in node->full_name.
396 * the full path in node->full_name. Even though it expects the overlay
408 struct target *target, struct device_node *node)
416 node_kbasename = kbasename(node->full_name);
428 tchild->name = __of_get_property(node, "name", NULL);
434 phandle = __of_get_property(node, "phandle", &size);
447 ret = build_changeset_next_level(ovcs, &target_child, node);
452 if (node->phandle && tchild->phandle) {
457 ret = build_changeset_next_level(ovcs, &target_child, node);
468 * @overlay_node: node from within an overlay device tree fragment
471 * @ovcs->cset changeset. If an added node has child nodes, they will
474 * Do not allow symbols node to have any children.
498 pr_debug("Failed to apply node @%pOF/%pOFn, err=%d\n",
509 * Add the properties from __overlay__ node to the @ovcs->cset changeset.
542 list_for_each_entry_continue(ce_2, &ovcs->cset.entries, node) {
554 pr_err("ERROR: multiple fragments add and/or delete node %pOF\n",
576 list_for_each_entry_continue(ce_2, &ovcs->cset.entries, node) {
603 * Check changeset @ovcs->cset for multiple {add or delete} node entries for
604 * the same node or duplicate {add, delete, or update} properties entries
614 list_for_each_entry(ce_1, &ovcs->cset.entries, node) {
681 * Find the target node using a number of different strategies
689 struct device_node *node;
696 node = of_find_node_by_phandle(val);
697 if (!node)
698 pr_err("find target, node: %pOF, phandle 0x%x not found\n",
700 return node;
705 node = of_find_node_by_path(path);
706 if (!node)
707 pr_err("find target, node: %pOF, path '%s' not found\n",
709 return node;
712 pr_err("find target, node: %pOF, no target property\n", info_node);
723 * Initialize @ovcs. Populate @ovcs->fragments with node information from
725 * nodes and the __symbols__ node. Any other top level node will be ignored.
733 struct device_node *node, *overlay_node;
765 for_each_child_of_node(tree, node) {
766 overlay_node = of_get_child_by_name(node, "__overlay__");
773 node = of_get_child_by_name(tree, "__symbols__");
774 if (node) {
776 of_node_put(node);
786 for_each_child_of_node(tree, node) {
787 overlay_node = of_get_child_by_name(node, "__overlay__");
793 fragment->target = find_target(node);
797 of_node_put(node);
808 node = of_get_child_by_name(tree, "__symbols__");
809 if (node) {
812 fragment->overlay = node;
1094 * node in an overlay changeset more topmost than @remove_ovcs?
1108 list_for_each_entry(ce, &ovcs->cset.entries, node) {
1133 * affected device node in the log list we check if this overlay is
1135 * device node and is closest to the tail, then removal is not permited.
1141 list_for_each_entry(remove_ce, &remove_ovcs->cset.entries, node) {