Add analog pins for all analog peris, not just ADC

This commit is contained in:
Dario Nieuwenhuis 2021-11-05 19:18:58 +01:00
parent 8833e7a8df
commit c34409d6f8

View File

@ -524,7 +524,7 @@ def parse_chips():
chip_af = next(filter(lambda x: x['@Name'] == 'GPIO', chip['ips'].values()))['@Version'] chip_af = next(filter(lambda x: x['@Name'] == 'GPIO', chip['ips'].values()))['@Version']
chip_af = removesuffix(chip_af, '_gpio_v1_0') chip_af = removesuffix(chip_af, '_gpio_v1_0')
chip_af = af.get(chip_af) chip_af = af[chip_af]
# Analog pins are in the MCU XML, not in the GPIO XML. # Analog pins are in the MCU XML, not in the GPIO XML.
analog_pins = {} analog_pins = {}
@ -532,14 +532,13 @@ def parse_chips():
for signal in children(pin, 'Signal'): for signal in children(pin, 'Signal'):
if p := parse_signal_name(signal['@Name']): if p := parse_signal_name(signal['@Name']):
peri_name, signal_name = p peri_name, signal_name = p
if not peri_name.startswith('ADC'): if peri_name.startswith('ADC') or peri_name.startswith('DAC') or peri_name.startswith('COMP') or peri_name.startswith('OPAMP'):
continue if peri_name not in analog_pins:
if peri_name not in analog_pins: analog_pins[peri_name] = []
analog_pins[peri_name] = [] analog_pins[peri_name].append(OrderedDict({
analog_pins[peri_name].append(OrderedDict({ 'pin': pin_name,
'pin': pin_name, 'signal': signal_name,
'signal': signal_name, }))
}))
cores = [] cores = []
for core_xml in children(chip['xml'], 'Core'): for core_xml in children(chip['xml'], 'Core'):
@ -611,13 +610,10 @@ def parse_chips():
if block := match_peri(chip_name + ':' + pname + ':' + pkind): if block := match_peri(chip_name + ':' + pname + ':' + pkind):
p['block'] = block p['block'] = block
if chip_af is not None: if pins := chip_af.get(pname):
if peri_af := chip_af.get(pname): p['pins'] = pins
p['pins'] = peri_af elif pins := analog_pins.get(pname):
p['pins'] = pins
if pname.startswith('ADC'):
if pins := analog_pins.get(pname):
p['pins'] = pins
if chip_nvic in chip_interrupts: if chip_nvic in chip_interrupts:
if pname in chip_interrupts[chip_nvic]: if pname in chip_interrupts[chip_nvic]: