scripts/dts: Add help function to get address/size cells for a node

Given the path address to a node return the address/size cells.  In
theory this should just be looking up the #{address,size}-cells in
the parent node, we'll make that cleanup next.

Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
This commit is contained in:
Kumar Gala 2018-10-03 16:25:24 -05:00 committed by Kumar Gala
commit 6a8d5952d0
2 changed files with 14 additions and 8 deletions

View file

@ -193,3 +193,16 @@ def find_parent_prop(node_address, prop):
" has no " + prop + " property")
return parent_prop
# Get the #{address,size}-cells for a given node
def get_addr_size_cells(node_address):
path = ''
nr_addr = reduced['/']['props'].get('#address-cells')
nr_size = reduced['/']['props'].get('#size-cells')
for comp in node_address.split('/')[1:-1]:
path += '/' + comp
nr_addr = reduced[path]['props'].get('#address-cells', nr_addr)
nr_size = reduced[path]['props'].get('#size-cells', nr_size)
return (nr_addr, nr_size)

View file

@ -33,14 +33,7 @@ class DTReg(DTDirective):
reg = reduced[node_address]['props']['reg']
if type(reg) is not list: reg = [ reg, ]
nr_address_cells = reduced['/']['props'].get('#address-cells')
nr_size_cells = reduced['/']['props'].get('#size-cells')
address = ''
for comp in node_address.split('/')[1:-1]:
address += '/' + comp
nr_address_cells = reduced[address]['props'].get(
'#address-cells', nr_address_cells)
nr_size_cells = reduced[address]['props'].get('#size-cells', nr_size_cells)
(nr_address_cells, nr_size_cells) = get_addr_size_cells(node_address)
# generate defines
post_label = "BASE_ADDRESS"