Skip to content

Commit 5114ef5

Browse files
committed
script: stm32variant: manage multiple SYS_WKUPx pins
SMT32U5xx have multiple SYS_WKUPx pins Signed-off-by: Frederic Pillon <[email protected]>
1 parent 7d01ee3 commit 5114ef5

File tree

3 files changed

+50
-37
lines changed

3 files changed

+50
-37
lines changed

CI/utils/stm32variant.py

Lines changed: 21 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1056,32 +1056,21 @@ def print_peripheral():
10561056

10571057
# PinNamesVar.h generation
10581058
def manage_syswkup():
1059-
syswkup_pins_list = []
1059+
syswkup_pins_list = [[] for _ in range(8)]
10601060
if len(syswkup_list) != 0:
1061-
# H7xx and F446 start from 0, inc by 1
1062-
inc = 0
1061+
# H7xx and F446 start from 0
1062+
base_index = 1
10631063
if syswkup_list[0][2].replace("SYS_WKUP", "") == "0":
1064-
inc = 1
1065-
# Fill list with missing SYS_WKUPx set to NC
1066-
i = 0
1067-
while i < 8:
1068-
num = 0
1069-
if len(syswkup_list) > i:
1070-
n = syswkup_list[i][2].replace("SYS_WKUP", "")
1071-
if len(n) != 0:
1072-
num = int(n) if inc == 1 else int(n) - 1
1073-
x = i if inc == 1 else i + 1
1074-
if num != i:
1075-
syswkup_list.insert(i, ["NC", "NC_" + str(x), "SYS_WKUP" + str(x)])
1076-
i += 1
1064+
base_index = 0
10771065
for p in syswkup_list:
10781066
num = p[2].replace("SYS_WKUP", "")
1079-
if (inc == 1) and (p[0] != "NC"):
1080-
cmt = " /* " + p[2] + " */"
1081-
else:
1067+
num = int(num) if num else 1
1068+
if base_index == 1:
1069+
num -= 1
10821070
cmt = ""
1083-
syswkup_pins_list.append([p[0], cmt])
1084-
1071+
else:
1072+
cmt = " /* " + p[2] + " */"
1073+
syswkup_pins_list[num].append([p[0], cmt])
10851074
return syswkup_pins_list
10861075

10871076

@@ -1127,6 +1116,12 @@ def print_pinamevar():
11271116
usb_pins_list=sorted_usb_pins_list,
11281117
)
11291118
)
1119+
alt_syswkup_list = []
1120+
for idx, syswkup_list in enumerate(syswkup_pins_list, start=1):
1121+
if len(syswkup_list) > 1:
1122+
for idx2, lst in enumerate(syswkup_list[1:], start=1):
1123+
alt_syswkup_list.append("{}_{}".format(idx, idx2))
1124+
return alt_syswkup_list
11301125

11311126

11321127
# Variant files generation
@@ -1253,7 +1248,7 @@ def timer_variant():
12531248
return dict(tone=tone, servo=servo)
12541249

12551250

1256-
def print_variant(generic_list):
1251+
def print_variant(generic_list, alt_syswkup_list):
12571252
variant_h_template = j2_env.get_template(variant_h_filename)
12581253
variant_cpp_template = j2_env.get_template(variant_cpp_filename)
12591254

@@ -1344,6 +1339,7 @@ def print_variant(generic_list):
13441339
year=datetime.datetime.now().year,
13451340
pins_number_list=pins_number_list,
13461341
alt_pins_list=alt_pins_list,
1342+
alt_syswkup_list=alt_syswkup_list,
13471343
waltpin=max(waltpin),
13481344
num_digital_pins=num_digital_pins,
13491345
num_dualpad_pins=num_dualpad_pins,
@@ -2375,8 +2371,9 @@ def manage_repo():
23752371
generic_list = print_boards_entry()
23762372
print_general_clock(generic_list)
23772373
print_peripheral()
2378-
print_pinamevar()
2379-
print_variant(generic_list)
2374+
alt_syswkup_list = print_pinamevar()
2375+
print_variant(generic_list, alt_syswkup_list)
2376+
del alt_syswkup_list[:]
23802377
del generic_list[:]
23812378
print(
23822379
"* Total I/O pins found: {}".format(

CI/utils/templates/PinNamesVar.h

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,42 @@
11
{% if dualpad_pins_list %}
22
/* Dual pad pin name */
3-
{% for dp in dualpad_pins_list %}
3+
{% for dp in dualpad_pins_list %}
44
{{"%s = %s | PDUAL,"|format(dp.name.ljust(waltpin), dp.base.ljust(waltpin-5))}}
5-
{% endfor %}
5+
{% endfor %}
66

77
{% endif %}
88
{% if remap_pins_list %}
99
/* Remap pin name */
10-
{% for dp in remap_pins_list %}
10+
{% for dp in remap_pins_list %}
1111
{{"%s = %s | PREMAP,"|format(dp.name.ljust(waltpin), dp.base.ljust(waltpin-5))}}
12-
{% endfor %}
12+
{% endfor %}
1313

1414
{% endif %}
1515
{% if alt_pins_list %}
1616
/* Alternate pin name */
17-
{% for alt in alt_pins_list %}
17+
{% for alt in alt_pins_list %}
1818
{{"%s = %s | %s,"|format(alt.name.ljust(waltpin), alt.base.ljust(waltpin-5), alt.num)}}
19-
{% endfor %}
19+
{% endfor %}
2020
{% else %}
2121
/* No alternate */
2222
{% endif %}
2323

2424
{% if syswkup_pins_list %}
2525
/* SYS_WKUP */
26-
{% for syswkup in syswkup_pins_list %}
26+
{% for syswkup_list in syswkup_pins_list %}
27+
{% set outer_loop = loop %}
28+
{% if syswkup_list %}
29+
{% for syswkup in syswkup_list %}
30+
#ifdef PWR_WAKEUP_PIN{{outer_loop.index}}
31+
SYS_WKUP{{outer_loop.index}}{{"_{}".format(loop.index - 1) if loop.index > 1}} = {{syswkup[0]}},{{syswkup[1]}}
32+
#endif
33+
{% endfor %}
34+
{% else %}
2735
#ifdef PWR_WAKEUP_PIN{{loop.index}}
28-
SYS_WKUP{{loop.index}} = {{syswkup[0]}},{{syswkup[1]}}
36+
SYS_WKUP{{loop.index}} = NC,
2937
#endif
30-
{% endfor %}
38+
{% endif %}
39+
{% endfor %}
3140
{% else %}
3241
/* No SYS_WKUP */
3342
{% endif %}

CI/utils/templates/variant_generic.h

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,9 @@
2121
{% if alt_pins_list %}
2222

2323
// Alternate pins number
24-
{% for alt in alt_pins_list %}
24+
{% for alt in alt_pins_list %}
2525
#define {{"%-23s (%s | %s)"|format(alt.name, alt.base.ljust(waltpin-5), alt.num)}}
26-
{% endfor %}
26+
{% endfor %}
2727
{% endif %}
2828

2929
#define NUM_DIGITAL_PINS {{num_digital_pins}}
@@ -101,11 +101,18 @@
101101

102102
{% if hal_modules_list %}
103103
// Extra HAL modules
104-
{% for hal_module in hal_modules_list %}
104+
{% for hal_module in hal_modules_list %}
105105
#if !defined(HAL_{{hal_module}}_MODULE_DISABLED)
106106
#define HAL_{{hal_module}}_MODULE_ENABLED
107107
#endif
108-
{% endfor %}
108+
{% endfor %}
109+
110+
{% endif %}
111+
{% if alt_syswkup_list %}
112+
// Alternate SYS_WKUP definition
113+
{% for def in alt_syswkup_list %}
114+
#define PWR_WAKEUP_PIN{{def}}
115+
{% endfor %}
109116

110117
{% endif %}
111118
/*----------------------------------------------------------------------------

0 commit comments

Comments
 (0)