summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2018-09-14 04:57:06 -0600
committerSimon Glass <sjg@chromium.org>2018-09-28 11:09:01 -0600
commit34967c2618439ef80cc76b4c43c3da4f66f12ffe (patch)
treee9e32cb8fad7a6e0e15d3636e80116f7acbbcf0a
parentbbef20d479441b01d62252cf127498c58078b2c3 (diff)
downloadu-boot-34967c2618439ef80cc76b4c43c3da4f66f12ffe.tar.gz
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>
-rw-r--r--scripts/dtc/pylibfdt/libfdt.i_shipped34
1 files changed, 28 insertions, 6 deletions
diff --git a/scripts/dtc/pylibfdt/libfdt.i_shipped b/scripts/dtc/pylibfdt/libfdt.i_shipped
index 0f17c5879e..76e61e98bd 100644
--- a/scripts/dtc/pylibfdt/libfdt.i_shipped
+++ b/scripts/dtc/pylibfdt/libfdt.i_shipped
@@ -628,28 +628,50 @@ class Fdt(FdtRo):
return check_err(fdt_setprop(self._fdt, nodeoffset, prop_name,
val, len(val)), quiet)
- def delprop(self, nodeoffset, prop_name):
+ def delprop(self, nodeoffset, prop_name, quiet=()):
"""Delete a property from a node
Args:
nodeoffset: Node offset containing 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:
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
Args:
- nodeoffset: Node offset containing property to delete
+ nodeoffset: Offset of node to delete
+
+ Returns:
+ Error code, or 0 if OK
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):