diff options
Diffstat (limited to 'stmhal/boards/make-pins.py')
-rwxr-xr-x | stmhal/boards/make-pins.py | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/stmhal/boards/make-pins.py b/stmhal/boards/make-pins.py index cc580f7cd7..44da266ae1 100755 --- a/stmhal/boards/make-pins.py +++ b/stmhal/boards/make-pins.py @@ -315,6 +315,17 @@ class Pins(object): print(' { %-*s %s },' % (mux_name_width + 26, key, val), file=af_const_file) + def print_af_py(self, af_py_filename): + with open(af_py_filename, 'wt') as af_py_file: + print('PINS_AF = (', file=af_py_file); + for named_pin in self.board_pins: + print(" ('%s', " % named_pin.name(), end='', file=af_py_file) + for af in named_pin.pin().alt_fn: + if af.is_supported(): + print("(%d, '%s'), " % (af.idx, af.af_str), end='', file=af_py_file) + print('),', file=af_py_file) + print(')', file=af_py_file) + def main(): parser = argparse.ArgumentParser( @@ -335,6 +346,12 @@ def main(): default="build/pins_af_const.h" ) parser.add_argument( + "--af-py", + dest="af_py_filename", + help="Specifies the filename for the python alternate function mappings.", + default="build/pins_af.py" + ) + parser.add_argument( "-b", "--board", dest="board_filename", help="Specifies the board file", @@ -383,6 +400,7 @@ def main(): pins.print_header(args.hdr_filename) pins.print_qstr(args.qstr_filename) pins.print_af_hdr(args.af_const_filename) + pins.print_af_py(args.af_py_filename) if __name__ == "__main__": |