dm: core: Add a way to delete a node

Add a function to delete a node in an existing tree.

Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
Simon Glass
2023-09-26 08:14:42 -06:00
committed by Tom Rini
parent c15862ffdd
commit 67fb2159fb
5 changed files with 150 additions and 0 deletions

View File

@@ -597,4 +597,22 @@ int of_write_prop(struct device_node *np, const char *propname, int len,
int of_add_subnode(struct device_node *node, const char *name, int len,
struct device_node **subnodep);
/**
* of_remove_property() - Remove a property from a node
*
* @np: Node to remove from
* @prop: Pointer to property to remove
* Return 0 if OK, -ENODEV if the property could not be found in the node
*/
int of_remove_property(struct device_node *np, struct property *prop);
/**
* of_remove_node() - Remove a node from the tree
*
* @to_remove: Node to remove
* Return: 0 if OK, -EPERM if it is the root node (wWhich cannot be removed),
* -ENOENT if the tree is broken (to_remove is not a child of its parent)
*/
int of_remove_node(struct device_node *to_remove);
#endif

View File

@@ -1635,4 +1635,17 @@ int ofnode_copy_props(ofnode dst, ofnode src);
int ofnode_copy_node(ofnode dst_parent, const char *name, ofnode src,
ofnode *nodep);
/**
* ofnode_delete() - Delete a node
*
* Delete a node from the tree
*
* @nodep: Pointer to node to delete (set to ofnode_null() on success)
* Return: 0 if OK, -ENOENT if the node does not exist, -EPERM if it is the root
* node (wWhich cannot be removed), -EFAULT if the tree is broken (to_remove is
* not a child of its parent),
*
*/
int ofnode_delete(ofnode *nodep);
#endif