tools/litex_json2dts_zephyr: improve indentation

To support linux dts generation.
This commit is contained in:
Andrew Dennison 2024-05-24 12:05:28 +10:00
parent 3041150773
commit 2776b63d1a
1 changed files with 10 additions and 11 deletions

View File

@ -45,7 +45,7 @@ def indent(line, levels=1):
def indent_all(text, levels=1):
return '\n'.join(map(indent, text.splitlines()))
return '\n'.join([indent(line, levels) for line in text.splitlines()])
def indent_all_but_first(text, levels=1):
@ -66,13 +66,12 @@ def dts_close():
return "};\n"
def dts_intr(name, csr):
return indent("interrupts = <{} 0>;\n".format(
hex(csr['constants'][name + '_interrupt'])
))
def dts_intr(name, csr, levels=1):
irq = csr['constants'].get(name + '_interrupt', None)
return indent(f"interrupts = <{irq} 0>;\n" if irq else "", levels)
def dts_reg(regs):
def dts_reg(regs, levels=1):
dtsi = 'reg = <'
formatted_registers = '\n'.join(
@ -80,13 +79,13 @@ def dts_reg(regs):
for reg in regs
)
dtsi += indent_all_but_first(formatted_registers)
dtsi += indent_all_but_first(formatted_registers, 1)
dtsi += '>;'
return indent_all(dtsi) + '\n'
return indent_all(dtsi, levels) + '\n'
def dts_reg_names(regs):
def dts_reg_names(regs, levels=1):
dtsi = 'reg-names = '
formatted_registers = ',\n'.join(
@ -94,10 +93,10 @@ def dts_reg_names(regs):
for reg in regs
)
dtsi += indent_all_but_first(formatted_registers)
dtsi += indent_all_but_first(formatted_registers, 1)
dtsi += ';'
return indent_all(dtsi) + '\n'
return indent_all(dtsi, levels) + '\n'
# DTS handlers