3030uartrx_list = [] # ['PIN','name','UARTrx', ['af']]
3131uartcts_list = [] # ['PIN','name','UARTcts', ['af']]
3232uartrts_list = [] # ['PIN','name','UARTrts', ['af']]
33- spimosi_list = [] # ['PIN','name','SPIMOSI', ['af']]
34- spimiso_list = [] # ['PIN','name','SPIMISO', ['af']]
35- spissel_list = [] # ['PIN','name','SPISSEL', ['af']]
36- spisclk_list = [] # ['PIN','name','SPISCLK', ['af']]
33+ spimosi_list = [] # ['PIN','name','SPIMOSI', 'sort name', ['af']]
34+ spimiso_list = [] # ['PIN','name','SPIMISO', 'sort name', ['af']]
35+ spissel_list = [] # ['PIN','name','SPISSEL', 'sort name', ['af']]
36+ spisclk_list = [] # ['PIN','name','SPISCLK', 'sort name', ['af']]
3737cantd_list = [] # ['PIN','name','CANTD', ['af']]
3838canrd_list = [] # ['PIN','name','CANRD', ['af']]
3939eth_list = [] # ['PIN','name','ETH', ['af']]
@@ -464,14 +464,14 @@ def store_uart(pin, name, signal):
464464
465465# Store SPI pins
466466def store_spi (pin , name , signal ):
467- if "_MISO" in signal :
468- spimiso_list .append ([pin , name , signal ])
469- if "_MOSI" in signal :
470- spimosi_list .append ([pin , name , signal ])
471- if "_SCK" in signal :
472- spisclk_list .append ([pin , name , signal ])
473- if "_NSS" in signal :
474- spissel_list .append ([pin , name , signal ])
467+ if re . search ( "[-_]MISO" , signal ) :
468+ spimiso_list .append ([pin , name , signal , signal . removeprefix ( "DEBUG_" ) ])
469+ if re . search ( "[-_]MOSI" , signal ) :
470+ spimosi_list .append ([pin , name , signal , signal . removeprefix ( "DEBUG_" ) ])
471+ if re . search ( "[-_]SCK" , signal ) :
472+ spisclk_list .append ([pin , name , signal , signal . removeprefix ( "DEBUG_" ) ])
473+ if re . search ( "[-_]NSS" , signal ) :
474+ spissel_list .append ([pin , name , signal , signal . removeprefix ( "DEBUG_" ) ])
475475
476476
477477# Store CAN pins
@@ -749,6 +749,7 @@ def spi_pinmap(lst):
749749 spi_pins_list = []
750750 winst = []
751751 wpin = []
752+ sp = re .compile (r"-|_" )
752753 if lst == spimosi_list :
753754 aname = "SPI_MOSI"
754755 elif lst == spimiso_list :
@@ -759,16 +760,18 @@ def spi_pinmap(lst):
759760 aname = "SPI_SSEL"
760761 for p in lst :
761762 # 2nd element is the SPI_XXXX signal
762- inst = p [2 ].split ("_" )[0 ]
763+ # but using 3rd which contains the stripped one
764+ # used to properly sort them
765+ inst = sp .split (p [3 ])[0 ]
763766 winst .append (len (inst ))
764767 wpin .append (len (p [0 ]))
765768 spi_pins_list .append (
766769 {
767770 "pin" : p [0 ],
768771 "inst" : inst ,
769772 "mode" : "STM_MODE_AF_PP" ,
770- "pull" : "GPIO_PULLUP" ,
771- "af" : p [3 ],
773+ "pull" : "GPIO_PULLUP" if inst != "SUBGHZSPI" else "GPIO_NOPULL" ,
774+ "af" : p [4 ],
772775 }
773776 )
774777 return dict (
@@ -1278,6 +1281,36 @@ def timer_variant():
12781281 return dict (tone = tone , servo = servo )
12791282
12801283
1284+ def alias_definition ():
1285+ # alias for STM32WL
1286+ alias_list = []
1287+ if mcu_family == "STM32WL" :
1288+ mosi = [
1289+ mosi [0 ].replace ("_" , "" , 1 )
1290+ for mosi in spimosi_list
1291+ if "SUBGHZSPI" in mosi [2 ]
1292+ ]
1293+ miso = [
1294+ miso [0 ].replace ("_" , "" , 1 )
1295+ for miso in spimiso_list
1296+ if "SUBGHZSPI" in miso [2 ]
1297+ ]
1298+ sck = [
1299+ sck [0 ].replace ("_" , "" , 1 ) for sck in spisclk_list if "SUBGHZSPI" in sck [2 ]
1300+ ]
1301+ ssel = [
1302+ ssel [0 ].replace ("_" , "" , 1 )
1303+ for ssel in spissel_list
1304+ if "SUBGHZSPI" in ssel [2 ]
1305+ ]
1306+ if mosi and miso and sck and ssel :
1307+ alias_list .append (("DEBUG_SUBGHZSPI_MOSI" , mosi [0 ]))
1308+ alias_list .append (("DEBUG_SUBGHZSPI_MISO" , miso [0 ]))
1309+ alias_list .append (("DEBUG_SUBGHZSPI_SCLK" , sck [0 ]))
1310+ alias_list .append (("DEBUG_SUBGHZSPI_SS" , ssel [0 ]))
1311+ return alias_list
1312+
1313+
12811314def print_variant (generic_list , alt_syswkup_list ):
12821315 variant_h_template = j2_env .get_template (variant_h_filename )
12831316 variant_cpp_template = j2_env .get_template (variant_cpp_filename )
@@ -1299,6 +1332,9 @@ def print_variant(generic_list, alt_syswkup_list):
12991332 # Timers definition
13001333 timer = timer_variant ()
13011334
1335+ # Alias to ease some usage
1336+ alias_list = alias_definition ()
1337+
13021338 # Manage all pins number, PinName and analog pins
13031339 analog_index = 0
13041340 pins_number_list = []
@@ -1379,6 +1415,7 @@ def print_variant(generic_list, alt_syswkup_list):
13791415 timer = timer ,
13801416 serial = serial ,
13811417 hal_modules_list = hal_modules_list ,
1418+ alias_list = alias_list ,
13821419 )
13831420 )
13841421
@@ -1536,6 +1573,10 @@ def natural_sortkey2(list_2_elem):
15361573 return tuple (int (num ) if num else alpha for num , alpha in tokenize (list_2_elem [2 ]))
15371574
15381575
1576+ def natural_sortkey3 (list_2_elem ):
1577+ return tuple (int (num ) if num else alpha for num , alpha in tokenize (list_2_elem [3 ]))
1578+
1579+
15391580def sort_my_lists ():
15401581 io_list .sort (key = natural_sortkey )
15411582 dualpad_list .sort (key = natural_sortkey )
@@ -1550,9 +1591,13 @@ def sort_my_lists():
15501591 uartrx_list .sort (key = natural_sortkey )
15511592 uartcts_list .sort (key = natural_sortkey )
15521593 uartrts_list .sort (key = natural_sortkey )
1594+ spimosi_list .sort (key = natural_sortkey3 )
15531595 spimosi_list .sort (key = natural_sortkey )
1596+ spimiso_list .sort (key = natural_sortkey3 )
15541597 spimiso_list .sort (key = natural_sortkey )
1598+ spissel_list .sort (key = natural_sortkey3 )
15551599 spissel_list .sort (key = natural_sortkey )
1600+ spisclk_list .sort (key = natural_sortkey3 )
15561601 spisclk_list .sort (key = natural_sortkey )
15571602 cantd_list .sort (key = natural_sortkey )
15581603 canrd_list .sort (key = natural_sortkey )
0 commit comments