Skip to content
Snippets Groups Projects
Commit 2925c26b authored by Simon Glass's avatar Simon Glass
Browse files

dtoc: Make is_phandle() a member function


This function will need to have access to class members once we enhance it
to support multiple phandle values. In preparation for that, move it into
the class.

Signed-off-by: default avatarSimon Glass <sjg@chromium.org>
Tested-by: default avatarKever Yang <kever.yang@rock-chips.com>
parent 72ab7c5e
No related branches found
No related tags found
No related merge requests found
......@@ -116,21 +116,6 @@ def get_compat_name(node):
compat, aliases = compat[0], compat[1:]
return conv_name_to_c(compat), [conv_name_to_c(a) for a in aliases]
def is_phandle(prop):
"""Check if a node contains phandles
We have no reliable way of detecting whether a node uses a phandle
or not. As an interim measure, use a list of known property names.
Args:
prop: Prop object to check
Return:
True if the object value contains phandles, else False
"""
if prop.name in ['clocks']:
return True
return False
class DtbPlatdata(object):
"""Provide a means to convert device tree binary data to platform data
......@@ -196,6 +181,21 @@ class DtbPlatdata(object):
self._lines = []
return lines
def is_phandle(self, prop):
"""Check if a node contains phandles
We have no reliable way of detecting whether a node uses a phandle
or not. As an interim measure, use a list of known property names.
Args:
prop: Prop object to check
Return:
True if the object value contains phandles, else False
"""
if prop.name in ['clocks']:
return True
return False
def scan_dtb(self):
"""Scan the device tree to obtain a tree of nodes and properties
......@@ -359,7 +359,7 @@ class DtbPlatdata(object):
if pname in PROP_IGNORE_LIST or pname[0] == '#':
continue
if isinstance(prop.value, list):
if is_phandle(prop):
if self.is_phandle(prop):
# Process the list as pairs of (phandle, id)
value_it = iter(prop.value)
for phandle_cell, _ in zip(value_it, value_it):
......@@ -383,7 +383,7 @@ class DtbPlatdata(object):
self.out('struct %s%s {\n' % (STRUCT_PREFIX, name))
for pname in sorted(structs[name]):
prop = structs[name][pname]
if is_phandle(prop):
if self.is_phandle(prop):
# For phandles, include a reference to the target
self.out('\t%s%s[%d]' % (tab_to(2, 'struct phandle_2_cell'),
conv_name_to_c(prop.name),
......@@ -423,7 +423,7 @@ class DtbPlatdata(object):
vals = []
# For phandles, output a reference to the platform data
# of the target node.
if is_phandle(prop):
if self.is_phandle(prop):
# Process the list as pairs of (phandle, id)
value_it = iter(prop.value)
for phandle_cell, id_cell in zip(value_it, value_it):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment