blob: 61a5e3281ed322b601fbb0397d6e146fa6960af0 [file] [log] [blame]
#!/usr/bin/env python3
# Copyright lowRISC contributors.
# Licensed under the Apache License, Version 2.0, see LICENSE for details.
# SPDX-License-Identifier: Apache-2.0
r"""Convert mako template to Hjson register description
"""
import argparse
import sys
from io import StringIO
from mako.template import Template
def main():
parser = argparse.ArgumentParser(prog="reg_pinmux")
parser.add_argument('input',
nargs='?',
metavar='file',
type=argparse.FileType('r'),
default=sys.stdin,
help='input template file')
parser.add_argument('--n_mio_periph_in',
type=int,
help='Number of muxed peripheral inputs',
default=32)
parser.add_argument('--n_mio_periph_out',
type=int,
help='Number of muxed peripheral outputs',
default=32)
parser.add_argument('--n_mio_pads',
type=int,
help='Number of muxed IO pads',
default=32)
parser.add_argument('--n_dio_periph_in',
type=int,
help='Number of dedicated peripheral inputs',
default=16)
parser.add_argument('--n_dio_periph_out',
type=int,
help='Number of dedicated peripheral outputs',
default=16)
parser.add_argument('--n_dio_pads',
type=int,
help='Number of dedicated IO pads',
default=16)
parser.add_argument('--n_wkup_detect',
type=int,
help='Number of wakeup condition detectors',
default=8)
parser.add_argument('--wkup_cnt_width',
type=int,
help='With of wakeup counters',
default=8)
args = parser.parse_args()
# Determine output: if stdin then stdout if not then ??
out = StringIO()
reg_tpl = Template(args.input.read())
out.write(
reg_tpl.render(n_mio_periph_in=args.n_mio_periph_in,
n_mio_periph_out=args.n_mio_periph_out,
n_mio_pads=args.n_mio_pads,
n_dio_periph_in=args.n_dio_periph_in,
n_dio_periph_out=args.n_dio_periph_out,
n_dio_pads=args.n_dio_pads,
n_wkup_detect=args.n_wkup_detect,
wkup_cnt_width=args.wkup_cnt_width))
print(out.getvalue())
out.close()
if __name__ == "__main__":
main()