Skip to content

Commit 54aa2cb

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 eee82ae commit 54aa2cb

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]
@@ -1143,20 +1137,7 @@ def print_variant():
11431137
)
11441138

11451139

1146-
def manage_alternate(lst):
1147-
prev_p = ""
1148-
alt_index = 0
1149-
for index, p in enumerate(lst):
1150-
if p[0] == prev_p:
1151-
p[0] += "_ALT%d" % alt_index
1152-
lst[index] = p
1153-
store_pin(p[0], p[1], alt_list)
1154-
alt_index += 1
1155-
else:
1156-
prev_p = p[0]
1157-
alt_index = 0
1158-
1159-
1140+
# List management
11601141
tokenize = re.compile(r"(\d+)|(\D+)").findall
11611142

11621143

@@ -1170,7 +1151,6 @@ def natural_sortkey2(list_2_elem):
11701151

11711152
def sort_my_lists():
11721153
io_list.sort(key=natural_sortkey)
1173-
alt_list.sort(key=natural_sortkey)
11741154
dualpad_list.sort(key=natural_sortkey)
11751155
remap_list.sort(key=natural_sortkey)
11761156
adclist.sort(key=natural_sortkey)
@@ -1237,6 +1217,53 @@ def clean_all_lists():
12371217
del sd_list[:]
12381218

12391219

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

14561483
parse_pins()
14571484
sort_my_lists()
1485+
manage_alternate()
14581486
print_periph_header()
14591487
print_all_lists()
14601488
print_variant()

0 commit comments

Comments
 (0)