|
@@ -130,6 +130,23 @@ class Fdt:
|
|
|
self._fdt = bytearray(data)
|
|
|
check_err(fdt_check_header(self._fdt));
|
|
|
|
|
|
+ def subnode_offset(self, parentoffset, name, quiet=()):
|
|
|
+ """Get the offset of a named subnode
|
|
|
+
|
|
|
+ Args:
|
|
|
+ parentoffset: Offset of the parent node to check
|
|
|
+ name: Name of the required subnode, e.g. 'subnode@1'
|
|
|
+ quiet: Errors to ignore (empty to raise on all errors)
|
|
|
+
|
|
|
+ Returns:
|
|
|
+ The node offset of the found node, if any
|
|
|
+
|
|
|
+ Raises
|
|
|
+ FdtException if there is no node with that name, or other error
|
|
|
+ """
|
|
|
+ return check_err(fdt_subnode_offset(self._fdt, parentoffset, name),
|
|
|
+ quiet)
|
|
|
+
|
|
|
def path_offset(self, path, quiet=()):
|
|
|
"""Get the offset for a given path
|
|
|
|
|
@@ -304,6 +321,47 @@ class Fdt:
|
|
|
return pdata
|
|
|
return bytearray(pdata[0])
|
|
|
|
|
|
+ def get_phandle(self, nodeoffset):
|
|
|
+ """Get the phandle of a node
|
|
|
+
|
|
|
+ Args:
|
|
|
+ nodeoffset: Node offset to check
|
|
|
+
|
|
|
+ Returns:
|
|
|
+ phandle of node, or 0 if the node has no phandle or another error
|
|
|
+ occurs
|
|
|
+ """
|
|
|
+ return fdt_get_phandle(self._fdt, nodeoffset)
|
|
|
+
|
|
|
+ def parent_offset(self, nodeoffset, quiet=()):
|
|
|
+ """Get the offset of a node's parent
|
|
|
+
|
|
|
+ Args:
|
|
|
+ nodeoffset: Node offset to check
|
|
|
+ quiet: Errors to ignore (empty to raise on all errors)
|
|
|
+
|
|
|
+ Returns:
|
|
|
+ The offset of the parent node, if any
|
|
|
+
|
|
|
+ Raises:
|
|
|
+ FdtException if no parent found or other error occurs
|
|
|
+ """
|
|
|
+ return check_err(fdt_parent_offset(self._fdt, nodeoffset), quiet)
|
|
|
+
|
|
|
+ def node_offset_by_phandle(self, phandle, quiet=()):
|
|
|
+ """Get the offset of a node with the given phandle
|
|
|
+
|
|
|
+ Args:
|
|
|
+ phandle: Phandle to search for
|
|
|
+ quiet: Errors to ignore (empty to raise on all errors)
|
|
|
+
|
|
|
+ Returns:
|
|
|
+ The offset of node with that phandle, if any
|
|
|
+
|
|
|
+ Raises:
|
|
|
+ FdtException if no node found or other error occurs
|
|
|
+ """
|
|
|
+ return check_err(fdt_node_offset_by_phandle(self._fdt, phandle), quiet)
|
|
|
|
|
|
class Property:
|
|
|
"""Holds a device tree property name and value.
|