Skip to content

Commit 29d4a0d

Browse files
committed
[genpinmap] Update alternate management
- Parse all list - Sort the alternate list Signed-off-by: Frederic Pillon <[email protected]>
1 parent 9fe2fe3 commit 29d4a0d

File tree

1 file changed

+51
-23
lines changed

1 file changed

+51
-23
lines changed

src/genpinmap/genpinmap_arduino.py

Lines changed: 51 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@
6666
datetime.datetime.now().year
6767
)
6868

69-
69+
# GPIO file parsing
7070
def find_gpio_file():
7171
res = "ERROR"
7272
itemlist = xml_mcu.getElementsByTagName("IP")
@@ -495,7 +495,6 @@ def print_adc():
495495
s_pin_data += "_ADC_CONTROL"
496496
s_pin_data += ", GPIO_NOPULL, 0, "
497497

498-
manage_alternate(adclist)
499498
wpin = width_format(adclist)
500499

501500
for p in adclist:
@@ -542,7 +541,6 @@ def print_dac():
542541

543542

544543
def print_i2c(lst):
545-
manage_alternate(lst)
546544
wpin = width_format(lst)
547545
for p in lst:
548546
result = get_gpio_af_num(p[1], p[2])
@@ -562,7 +560,6 @@ def print_i2c(lst):
562560

563561

564562
def print_pwm():
565-
manage_alternate(pwm_list)
566563
wpin = width_format(pwm_list)
567564

568565
for p in pwm_list:
@@ -589,7 +586,6 @@ def print_pwm():
589586

590587

591588
def print_uart(lst):
592-
manage_alternate(lst)
593589
wpin = width_format(lst)
594590
for p in lst:
595591
result = get_gpio_af_num(p[1], p[2])
@@ -609,7 +605,6 @@ def print_uart(lst):
609605

610606

611607
def print_spi(lst):
612-
manage_alternate(lst)
613608
wpin = width_format(lst)
614609
for p in lst:
615610
result = get_gpio_af_num(p[1], p[2])
@@ -848,11 +843,10 @@ def print_usb_h():
848843
pinvar_h_file.write("#endif\n")
849844

850845

846+
# Variant files generation
851847
def spi_pins_variant():
852848
ss_pin = ss1_pin = ss2_pin = ss3_pin = mosi_pin = miso_pin = sck_pin = "PYn"
853849

854-
# mosi_pin = spimosi_list[0][0].replace("_", "")
855-
# mosi_inst = spimosi_list[0][2].split("_", 1)[0]
856850
# Iterate to find match instance if any
857851
for mosi in spimosi_list:
858852
mosi_inst = mosi[2].split("_", 1)[0]
@@ -1132,20 +1126,7 @@ def print_variant():
11321126
)
11331127

11341128

1135-
def manage_alternate(lst):
1136-
prev_p = ""
1137-
alt_index = 0
1138-
for index, p in enumerate(lst):
1139-
if p[0] == prev_p:
1140-
p[0] += "_ALT%d" % alt_index
1141-
lst[index] = p
1142-
store_pin(p[0], p[1], alt_list)
1143-
alt_index += 1
1144-
else:
1145-
prev_p = p[0]
1146-
alt_index = 0
1147-
1148-
1129+
# List management
11491130
tokenize = re.compile(r"(\d+)|(\D+)").findall
11501131

11511132

@@ -1159,7 +1140,6 @@ def natural_sortkey2(list_2_elem):
11591140

11601141
def sort_my_lists():
11611142
io_list.sort(key=natural_sortkey)
1162-
alt_list.sort(key=natural_sortkey)
11631143
dualpad_list.sort(key=natural_sortkey)
11641144
remap_list.sort(key=natural_sortkey)
11651145
adclist.sort(key=natural_sortkey)
@@ -1226,6 +1206,53 @@ def clean_all_lists():
12261206
del sd_list[:]
12271207

12281208

1209+
def manage_alternate():
1210+
update_alternate(adclist)
1211+
update_alternate(daclist)
1212+
update_alternate(i2cscl_list)
1213+
update_alternate(i2csda_list)
1214+
update_alternate(pwm_list)
1215+
update_alternate(uarttx_list)
1216+
update_alternate(uartrx_list)
1217+
update_alternate(uartcts_list)
1218+
update_alternate(uartrts_list)
1219+
update_alternate(spimosi_list)
1220+
update_alternate(spimiso_list)
1221+
update_alternate(spissel_list)
1222+
update_alternate(spisclk_list)
1223+
update_alternate(cantd_list)
1224+
update_alternate(canrd_list)
1225+
update_alternate(eth_list)
1226+
update_alternate(quadspidata0_list)
1227+
update_alternate(quadspidata1_list)
1228+
update_alternate(quadspidata2_list)
1229+
update_alternate(quadspidata3_list)
1230+
update_alternate(quadspisclk_list)
1231+
update_alternate(quadspissel_list)
1232+
update_alternate(syswkup_list)
1233+
update_alternate(usb_list)
1234+
update_alternate(usb_otgfs_list)
1235+
update_alternate(usb_otghs_list)
1236+
update_alternate(sd_list)
1237+
1238+
alt_list.sort(key=natural_sortkey)
1239+
1240+
1241+
1242+
def update_alternate(lst):
1243+
prev_p = ""
1244+
alt_index = 0
1245+
for index, p in enumerate(lst):
1246+
if p[0] == prev_p:
1247+
p[0] += "_ALT%d" % alt_index
1248+
lst[index] = p
1249+
store_pin(p[0], p[1], alt_list)
1250+
alt_index += 1
1251+
else:
1252+
prev_p = p[0]
1253+
alt_index = 0
1254+
1255+
12291256
def parse_pins():
12301257
print(" * Getting pins per Ips...")
12311258
pinregex = r"^(P[A-Z][0-9][0-5]?[_]?[C]?)|^(ANA[0-9])"
@@ -1444,6 +1471,7 @@ def parse_pins():
14441471

14451472
parse_pins()
14461473
sort_my_lists()
1474+
manage_alternate()
14471475
print_periph_header()
14481476
print_all_lists()
14491477
print_variant()

0 commit comments

Comments
 (0)