stm32/boards/make-pins.py: Allow pins.csv to skip or hide board-pin name
If the board-pin name is left empty then only the cpu-pin name is used, eg ",PA0". If the board-pin name starts with a hyphen then it's available as a C definition but not in the firmware, eg "-X1,PA0".
This commit is contained in:
parent
3fc7c8e35c
commit
f8274d5e7d
|
@ -251,9 +251,17 @@ class Pin(object):
|
||||||
class NamedPin(object):
|
class NamedPin(object):
|
||||||
|
|
||||||
def __init__(self, name, pin):
|
def __init__(self, name, pin):
|
||||||
self._name = name
|
if name.startswith('-'):
|
||||||
|
self._is_hidden = True
|
||||||
|
self._name = name[1:]
|
||||||
|
else:
|
||||||
|
self._is_hidden = False
|
||||||
|
self._name = name
|
||||||
self._pin = pin
|
self._pin = pin
|
||||||
|
|
||||||
|
def is_hidden(self):
|
||||||
|
return self._is_hidden
|
||||||
|
|
||||||
def pin(self):
|
def pin(self):
|
||||||
return self._pin
|
return self._pin
|
||||||
|
|
||||||
|
@ -300,13 +308,14 @@ class Pins(object):
|
||||||
pin = self.find_pin(port_num, pin_num)
|
pin = self.find_pin(port_num, pin_num)
|
||||||
if pin:
|
if pin:
|
||||||
pin.set_is_board_pin()
|
pin.set_is_board_pin()
|
||||||
self.board_pins.append(NamedPin(row[0], pin))
|
if row[0]: # Only add board pins that have a name
|
||||||
|
self.board_pins.append(NamedPin(row[0], pin))
|
||||||
|
|
||||||
def print_named(self, label, named_pins):
|
def print_named(self, label, named_pins):
|
||||||
print('STATIC const mp_rom_map_elem_t pin_{:s}_pins_locals_dict_table[] = {{'.format(label))
|
print('STATIC const mp_rom_map_elem_t pin_{:s}_pins_locals_dict_table[] = {{'.format(label))
|
||||||
for named_pin in named_pins:
|
for named_pin in named_pins:
|
||||||
pin = named_pin.pin()
|
pin = named_pin.pin()
|
||||||
if pin.is_board_pin():
|
if pin.is_board_pin() and not named_pin.is_hidden():
|
||||||
print(' {{ MP_ROM_QSTR(MP_QSTR_{:s}), MP_ROM_PTR(&pin_{:s}_obj) }},'.format(named_pin.name(), pin.cpu_pin_name()))
|
print(' {{ MP_ROM_QSTR(MP_QSTR_{:s}), MP_ROM_PTR(&pin_{:s}_obj) }},'.format(named_pin.name(), pin.cpu_pin_name()))
|
||||||
print('};')
|
print('};')
|
||||||
print('MP_DEFINE_CONST_DICT(pin_{:s}_pins_locals_dict, pin_{:s}_pins_locals_dict_table);'.format(label, label))
|
print('MP_DEFINE_CONST_DICT(pin_{:s}_pins_locals_dict, pin_{:s}_pins_locals_dict_table);'.format(label, label))
|
||||||
|
@ -364,7 +373,8 @@ class Pins(object):
|
||||||
qstr_set |= set(pin.qstr_list())
|
qstr_set |= set(pin.qstr_list())
|
||||||
qstr_set |= set([named_pin.name()])
|
qstr_set |= set([named_pin.name()])
|
||||||
for named_pin in self.board_pins:
|
for named_pin in self.board_pins:
|
||||||
qstr_set |= set([named_pin.name()])
|
if not named_pin.is_hidden():
|
||||||
|
qstr_set |= set([named_pin.name()])
|
||||||
for qstr in sorted(qstr_set):
|
for qstr in sorted(qstr_set):
|
||||||
cond_var = None
|
cond_var = None
|
||||||
if qstr.startswith('AF'):
|
if qstr.startswith('AF'):
|
||||||
|
@ -429,6 +439,8 @@ class Pins(object):
|
||||||
with open(af_py_filename, 'wt') as af_py_file:
|
with open(af_py_filename, 'wt') as af_py_file:
|
||||||
print('PINS_AF = (', file=af_py_file)
|
print('PINS_AF = (', file=af_py_file)
|
||||||
for named_pin in self.board_pins:
|
for named_pin in self.board_pins:
|
||||||
|
if named_pin.is_hidden():
|
||||||
|
continue
|
||||||
print(" ('%s', " % named_pin.name(), end='', file=af_py_file)
|
print(" ('%s', " % named_pin.name(), end='', file=af_py_file)
|
||||||
for af in named_pin.pin().alt_fn:
|
for af in named_pin.pin().alt_fn:
|
||||||
if af.is_supported():
|
if af.is_supported():
|
||||||
|
|
Loading…
Reference in New Issue