dtoc: update dtb_platdata to support cd-gpios

Currently dtoc does not support the property cd-gpios used to declare
the gpios for card detect in mmc.

This patch adds support to cd-gpios property.

Signed-off-by: Walter Lozano <walter.lozano@collabora.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
Walter Lozano 2020-06-25 01:10:16 -03:00 committed by Simon Glass
parent 407009a426
commit ad34017c8c
2 changed files with 11 additions and 7 deletions

View file

@ -258,7 +258,7 @@ class DtbPlatdata(object):
Return: Return:
Number of argument cells is this is a phandle, else None Number of argument cells is this is a phandle, else None
""" """
if prop.name in ['clocks']: if prop.name in ['clocks', 'cd-gpios']:
if not isinstance(prop.value, list): if not isinstance(prop.value, list):
prop.value = [prop.value] prop.value = [prop.value]
val = prop.value val = prop.value
@ -278,11 +278,14 @@ class DtbPlatdata(object):
if not target: if not target:
raise ValueError("Cannot parse '%s' in node '%s'" % raise ValueError("Cannot parse '%s' in node '%s'" %
(prop.name, node_name)) (prop.name, node_name))
prop_name = '#clock-cells' cells = None
cells = target.props.get(prop_name) for prop_name in ['#clock-cells', '#gpio-cells']:
cells = target.props.get(prop_name)
if cells:
break
if not cells: if not cells:
raise ValueError("Node '%s' has no '%s' property" % raise ValueError("Node '%s' has no cells property" %
(target.name, prop_name)) (target.name))
num_args = fdt_util.fdt32_to_cpu(cells.value) num_args = fdt_util.fdt32_to_cpu(cells.value)
max_args = max(max_args, num_args) max_args = max(max_args, num_args)
args.append(num_args) args.append(num_args)
@ -657,7 +660,8 @@ class DtbPlatdata(object):
# dtv_dmc_at_xxx.clocks[0].node = DM_GET_DEVICE(clock_controller_at_xxx) # dtv_dmc_at_xxx.clocks[0].node = DM_GET_DEVICE(clock_controller_at_xxx)
self.buf('void dm_populate_phandle_data(void) {\n') self.buf('void dm_populate_phandle_data(void) {\n')
for l in self._links: for l in self._links:
self.buf('\t%s = DM_GET_DEVICE(%s);\n' % (l['var_node'], l['dev_name'])) self.buf('\t%s = DM_GET_DEVICE(%s);\n' %
(l['var_node'], l['dev_name']))
self.buf('}\n') self.buf('}\n')
self.out(''.join(self.get_buf())) self.out(''.join(self.get_buf()))

View file

@ -485,7 +485,7 @@ void dm_populate_phandle_data(void) {
output = tools.GetOutputFilename('output') output = tools.GetOutputFilename('output')
with self.assertRaises(ValueError) as e: with self.assertRaises(ValueError) as e:
self.run_test(['struct'], dtb_file, output) self.run_test(['struct'], dtb_file, output)
self.assertIn("Node 'phandle-target' has no '#clock-cells' property", self.assertIn("Node 'phandle-target' has no cells property",
str(e.exception)) str(e.exception))
def test_aliases(self): def test_aliases(self):