diff options
author | Simon Glass <sjg@chromium.org> | 2017-08-19 11:17:59 -0600 |
---|---|---|
committer | David Gibson <david@gibson.dropbear.id.au> | 2017-08-21 10:00:44 +1000 |
commit | 46f31b65b3b3b1c284027ac6c287c75df64c126d (patch) | |
tree | 60d6de98fc21cd70a22d1078c9e406b191216552 | |
parent | a3ae43723687cd9e14e8e6c95c01152887ba94ac (diff) | |
download | dtc-46f31b65b3b3b1c284027ac6c287c75df64c126d.zip dtc-46f31b65b3b3b1c284027ac6c287c75df64c126d.tar.gz dtc-46f31b65b3b3b1c284027ac6c287c75df64c126d.tar.bz2 |
pylibfdt: Add support for fdt_node_offset_by_phandle()
Add this into the class to simplify use of this function.
Signed-off-by: Simon Glass <sjg@chromium.org>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
-rw-r--r-- | pylibfdt/libfdt.i | 14 | ||||
-rw-r--r-- | tests/pylibfdt_tests.py | 10 |
2 files changed, 24 insertions, 0 deletions
diff --git a/pylibfdt/libfdt.i b/pylibfdt/libfdt.i index 5a1eba5..d492d58 100644 --- a/pylibfdt/libfdt.i +++ b/pylibfdt/libfdt.i @@ -375,6 +375,20 @@ class Fdt: """ 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. diff --git a/tests/pylibfdt_tests.py b/tests/pylibfdt_tests.py index 6b024d4..8028c1a 100644 --- a/tests/pylibfdt_tests.py +++ b/tests/pylibfdt_tests.py @@ -308,5 +308,15 @@ class PyLibfdtTests(unittest.TestCase): node2 = self.fdt.path_offset('/subnode@2/subsubnode@0') self.assertEquals(node1, self.fdt.parent_offset(node2)) + def testNodeOffsetByPhandle(self): + """Test for the node_offset_by_phandle() method""" + self.assertEquals(-libfdt.NOTFOUND, + self.fdt.node_offset_by_phandle(1, QUIET_NOTFOUND)) + node1 = self.fdt.path_offset('/subnode@2') + self.assertEquals(node1, self.fdt.node_offset_by_phandle(0x2000)) + node2 = self.fdt.path_offset('/subnode@2/subsubnode@0') + self.assertEquals(node2, self.fdt.node_offset_by_phandle(0x2001)) + + if __name__ == "__main__": unittest.main() |