fdt: Add Python support for adding/removing nodes

Pull this support from these upstream commits:

   bfbfab0 pylibfdt: Add a means to add and delete notes
   9005f41 pylibfdt: Allow delprop() to return errors

Signed-off-by: Simon Glass <sjg@chromium.org>
lime2-spi
Simon Glass 6 years ago
parent bbef20d479
commit 34967c2618
  1. 34
      scripts/dtc/pylibfdt/libfdt.i_shipped

@ -628,28 +628,50 @@ class Fdt(FdtRo):
return check_err(fdt_setprop(self._fdt, nodeoffset, prop_name, return check_err(fdt_setprop(self._fdt, nodeoffset, prop_name,
val, len(val)), quiet) val, len(val)), quiet)
def delprop(self, nodeoffset, prop_name): def delprop(self, nodeoffset, prop_name, quiet=()):
"""Delete a property from a node """Delete a property from a node
Args: Args:
nodeoffset: Node offset containing property to delete nodeoffset: Node offset containing property to delete
prop_name: Name of property to delete prop_name: Name of property to delete
quiet: Errors to ignore (empty to raise on all errors)
Returns:
Error code, or 0 if OK
Raises: Raises:
FdtError if the property does not exist, or another error occurs FdtError if the property does not exist, or another error occurs
""" """
return check_err(fdt_delprop(self._fdt, nodeoffset, prop_name)) return check_err(fdt_delprop(self._fdt, nodeoffset, prop_name), quiet)
def add_subnode(self, parentoffset, name, quiet=()):
"""Add a new subnode to a node
def del_node(self, nodeoffset): Args:
parentoffset: Parent offset to add the subnode to
name: Name of node to add
Returns:
offset of the node created, or negative error code on failure
Raises:
FdtError if there is not enough space, or another error occurs
"""
return check_err(fdt_add_subnode(self._fdt, parentoffset, name), quiet)
def del_node(self, nodeoffset, quiet=()):
"""Delete a node """Delete a node
Args: Args:
nodeoffset: Node offset containing property to delete nodeoffset: Offset of node to delete
Returns:
Error code, or 0 if OK
Raises: Raises:
FdtError if the node does not exist, or another error occurs FdtError if an error occurs
""" """
return check_err(fdt_del_node(self._fdt, nodeoffset)) return check_err(fdt_del_node(self._fdt, nodeoffset), quiet)
class Property(bytearray): class Property(bytearray):

Loading…
Cancel
Save