blob: 949305856ad6f1ee0991a0d5e7d8e4901db8114a [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=33)
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)
parser.add_argument('--attr_dw',
type=int,
help='Pad attribute data width',
default = 10)
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,
attr_dw=args.attr_dw,
usb_start_pos=0,
n_usb_pins=0,
usb_dp_sel=0,
usb_dn_sel=0,
usb_dp_pull_sel=0,
usb_dn_pull_sel=0))
print(out.getvalue())
out.close()
if __name__ == "__main__":
main()