Merge pull request #35 from bobmcwhirter/dac_pin_finding

Dac pin finding
This commit is contained in:
Dario Nieuwenhuis 2021-06-01 18:34:59 +02:00 committed by GitHub
commit 73bc1bed55

View File

@ -348,6 +348,7 @@ def parse_chips():
'rcc': rcc, # temporarily stashing it here 'rcc': rcc, # temporarily stashing it here
'packages': [], 'packages': [],
'peripherals': {}, 'peripherals': {},
'pins': {},
# 'peripherals': peris, # 'peripherals': peris,
# 'interrupts': h['interrupts'], # 'interrupts': h['interrupts'],
}) })
@ -371,9 +372,35 @@ def parse_chips():
continue continue
peris[pname] = pkind peris[pname] = pkind
pins = chips[chip_name]['pins']
for pin in r['Pin']:
pname = pin['@Name']
#print("##", pname);
signals = []
if 'Signal' in pin:
if type(pin['Signal']) is list:
for signal in pin['Signal']:
#print("** ", signal)
signal_name = signal['@Name']
#print(signal_name)
signals.append(signal_name)
else:
#print("** ", pin['Signal']['@Name'])
signal_name = pin['Signal']['@Name']
signals.append(signal_name)
pins[pname] = signals
for chip_name, chip in chips.items(): for chip_name, chip in chips.items():
rcc = chip['rcc'] rcc = chip['rcc']
del chip['rcc'] del chip['rcc']
# shuffle pin assignments
pins = chip['pins']
del chip['pins']
h = find_header(chip_name) h = find_header(chip_name)
if h is None: if h is None:
raise Exception("missing header for {}".format(chip_name)) raise Exception("missing header for {}".format(chip_name))
@ -399,8 +426,17 @@ 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 block is not None and block.startswith("dac_"):
for pin in pins:
if pname + "_OUT1" in pins[pin]:
p['dac_out1'] = pin
if pname + "_OUT2" in pins[pin]:
p['dac_out2'] = pin
peris[pname] = p peris[pname] = p
# Handle GPIO specially. # Handle GPIO specially.
for p in range(20): for p in range(20):
port = 'GPIO' + chr(ord('A')+p) port = 'GPIO' + chr(ord('A')+p)