Skip to content

Commit a6e4854

Browse files
committed
[genpinmap] Update alternate management
- Parse all list - Sort the alternate list Signed-off-by: Frederic Pillon <frederic.pillon@st.com>
1 parent f291f55 commit a6e4854

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]
@@ -1135,20 +1129,7 @@ def print_variant():
11351129
)
11361130

11371131

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

11541135

@@ -1162,7 +1143,6 @@ def natural_sortkey2(list_2_elem):
11621143

11631144
def sort_my_lists():
11641145
io_list.sort(key=natural_sortkey)
1165-
alt_list.sort(key=natural_sortkey)
11661146
dualpad_list.sort(key=natural_sortkey)
11671147
remap_list.sort(key=natural_sortkey)
11681148
adclist.sort(key=natural_sortkey)
@@ -1229,6 +1209,53 @@ def clean_all_lists():
12291209
del sd_list[:]
12301210

12311211

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

14481475
parse_pins()
14491476
sort_my_lists()
1477+
manage_alternate()
14501478
print_periph_header()
14511479
print_all_lists()
14521480
print_variant()

0 commit comments

Comments
 (0)