Skip to content

Commit 1c81033

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 832fae2 commit 1c81033

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]
@@ -1133,20 +1127,7 @@ def print_variant():
11331127
)
11341128

11351129

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

11521133

@@ -1160,7 +1141,6 @@ def natural_sortkey2(list_2_elem):
11601141

11611142
def sort_my_lists():
11621143
io_list.sort(key=natural_sortkey)
1163-
alt_list.sort(key=natural_sortkey)
11641144
dualpad_list.sort(key=natural_sortkey)
11651145
remap_list.sort(key=natural_sortkey)
11661146
adclist.sort(key=natural_sortkey)
@@ -1227,6 +1207,53 @@ def clean_all_lists():
12271207
del sd_list[:]
12281208

12291209

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

14461473
parse_pins()
14471474
sort_my_lists()
1475+
manage_alternate()
14481476
print_periph_header()
14491477
print_all_lists()
14501478
print_variant()

0 commit comments

Comments
 (0)