_outfile: The current output file (sys.stdout or a real file)
_warning_disabled: true to disable warnings about driver names not found
_lines: Stashed list of output lines for outputting in the future
- _aliases: Dict that hold aliases for compatible strings
- key: First compatible string declared in a node
- value: List of additional compatible strings declared in a node
_drivers: List of valid driver names found in drivers/
_driver_aliases: Dict that holds aliases for driver names
key: Driver alias declared with
self._outfile = None
self._warning_disabled = warning_disabled
self._lines = []
- self._aliases = {}
self._drivers = []
self._driver_aliases = {}
self._links = []
prop.Widen(struct[name])
upto += 1
- struct_name, aliases = self.get_normalized_compat_name(node)
- for alias in aliases:
- self._aliases[alias] = struct_name
-
return structs
def scan_phandles(self):
self.out(';\n')
self.out('};\n')
- for alias, struct_name in self._aliases.items():
- if alias not in sorted(structs):
- self.out('#define %s%s %s%s\n'% (STRUCT_PREFIX, alias,
- STRUCT_PREFIX, struct_name))
-
def output_node(self, node):
"""Output the C code for a node
\tbool\t\tgpio_controller;
\tfdt32_t\t\tsandbox_gpio_count;
};
-#define dtd_sandbox_gpio_alias dtd_sandbox_gpio
''', data)
self.run_test(['platdata'], dtb_file, output)
self.assertIn("Node 'phandle-target' has no cells property",
str(e.exception))
- def test_aliases(self):
- """Test output from a node with multiple compatible strings"""
- dtb_file = get_dtb_file('dtoc_test_aliases.dts')
- output = tools.GetOutputFilename('output')
- self.run_test(['struct'], dtb_file, output)
- with open(output) as infile:
- data = infile.read()
- self._CheckStrings(HEADER + '''
-struct dtd_compat1 {
-\tfdt32_t\t\tintval;
-};
-struct dtd_simple_bus {
-\tfdt32_t\t\tintval;
-};
-#define dtd_compat2_1_fred dtd_compat1
-#define dtd_compat3 dtd_compat1
-''', data)
-
- self.run_test(['platdata'], dtb_file, output)
- with open(output) as infile:
- data = infile.read()
- self._CheckStrings(C_HEADER + '''
-static struct dtd_compat1 dtv_spl_test = {
-\t.intval\t\t\t= 0x1,
-};
-U_BOOT_DEVICE(spl_test) = {
-\t.name\t\t= "compat1",
-\t.platdata\t= &dtv_spl_test,
-\t.platdata_size\t= sizeof(dtv_spl_test),
-};
-
-static struct dtd_simple_bus dtv_spl_test2 = {
-\t.intval\t\t\t= 0x1,
-};
-U_BOOT_DEVICE(spl_test2) = {
-\t.name\t\t= "simple_bus",
-\t.platdata\t= &dtv_spl_test2,
-\t.platdata_size\t= sizeof(dtv_spl_test2),
-};
-
-''' + C_EMPTY_POPULATE_PHANDLE_DATA, data)
-
def test_addresses64(self):
"""Test output from a node with a 'reg' property with na=2, ns=2"""
dtb_file = get_dtb_file('dtoc_test_addr64.dts')