]> git.sur5r.net Git - u-boot/commitdiff
dtoc: Move the main logic into the dtb_platdata file
authorSimon Glass <sjg@chromium.org>
Mon, 19 Jun 2017 04:09:03 +0000 (22:09 -0600)
committerSimon Glass <sjg@chromium.org>
Tue, 11 Jul 2017 16:08:20 +0000 (10:08 -0600)
Collect the main logic of dtoc into a function and put it into
dtb_platdata. This will allow tests to use this function instead of
duplicating the code themselves.

Signed-off-by: Simon Glass <sjg@chromium.org>
tools/dtoc/dtb_platdata.py
tools/dtoc/dtoc.py

index a1f32e164a1994f326e71ed87a511ffce9bb240c..9923892dc359bf8cd21426b295b197e2c4812bf6 100644 (file)
@@ -422,3 +422,32 @@ class DtbPlatdata(object):
                     nodes_to_output.remove(req_node)
             self.output_node(node)
             nodes_to_output.remove(node)
+
+
+def run_steps(args, dtb_file, include_disabled, output):
+    """Run all the steps of the dtoc tool
+
+    Args:
+        args: List of non-option arguments provided to the problem
+        dtb_file: Filename of dtb file to process
+        include_disabled: True to include disabled nodes
+        output: Name of output file
+    """
+    if not args:
+        raise ValueError('Please specify a command: struct, platdata')
+
+    plat = DtbPlatdata(dtb_file, include_disabled)
+    plat.scan_dtb()
+    plat.scan_tree()
+    plat.setup_output(output)
+    structs = plat.scan_structs()
+    plat.scan_phandles()
+
+    for cmd in args[0].split(','):
+        if cmd == 'struct':
+            plat.generate_structs(structs)
+        elif cmd == 'platdata':
+            plat.generate_tables()
+        else:
+            raise ValueError("Unknown command '%s': (use: struct, platdata)" %
+                             cmd)
index 1f17ea47e0214fcb84c2c9f91b1841d7bc6d5934..140a19e9d4719384215d543d2b0e26e57e6f8988 100755 (executable)
@@ -49,20 +49,5 @@ parser.add_option('-o', '--output', action='store', default='-',
                   help='Select output filename')
 (options, args) = parser.parse_args()
 
-if not args:
-    raise ValueError('Please specify a command: struct, platdata')
-
-plat = dtb_platdata.DtbPlatdata(options.dtb_file, options.include_disabled)
-plat.scan_dtb()
-plat.scan_tree()
-plat.setup_output(options.output)
-structs = plat.scan_structs()
-plat.scan_phandles()
-
-for cmd in args[0].split(','):
-    if cmd == 'struct':
-        plat.generate_structs(structs)
-    elif cmd == 'platdata':
-        plat.generate_tables()
-    else:
-        raise ValueError("Unknown command '%s': (use: struct, platdata)" % cmd)
+dtb_platdata.run_steps(args, options.dtb_file, options.include_disabled,
+                       options.output)