5353usb_list = [] # ['PIN','name','USB', ['af']]
5454usb_otgfs_list = [] # ['PIN','name','USB', ['af']]
5555usb_otghs_list = [] # ['PIN','name','USB', ['af']]
56- sd_list = [] # ['PIN','name','SD', ['af']]
56+ sdxcmd_list = [] # ['PIN','name','SDX_CMD', ['af']]
57+ sdxck_list = [] # ['PIN','name','SDX_CK', ['af']]
58+ sdxd0_list = [] # ['PIN','name','SDX_D0', ['af']]
59+ sdxd1_list = [] # ['PIN','name','SDX_D1', ['af']]
60+ sdxd2_list = [] # ['PIN','name','SDX_D2', ['af']]
61+ sdxd3_list = [] # ['PIN','name','SDX_D3', ['af']]
62+ sdxd4_list = [] # ['PIN','name','SDX_D4', ['af']]
63+ sdxd5_list = [] # ['PIN','name','SDX_D5', ['af']]
64+ sdxd6_list = [] # ['PIN','name','SDX_D6', ['af']]
65+ sdxd7_list = [] # ['PIN','name','SDX_D7', ['af']]
66+ sdmmcckin_list = [] # ['PIN','name','SDMMC_CKIN', ['af']]
67+ sdmmccdir_list = [] # ['PIN','name','SDMMC_CDIR', ['af']]
68+ sdmmcd0dir_list = [] # ['PIN','name','SDMMC_D0DIR', ['af']]
69+ sdmmcd123dir_list = [] # ['PIN','name','SDMMC_D123DIR', ['af']]
5770
5871# IP information
5972gpiofile = ""
@@ -543,9 +556,36 @@ def store_usb(pin, name, signal):
543556 usb_otghs_list .append ([pin , name , signal ])
544557
545558
546- # Store SD pins
547- def store_sd (pin , name , signal ):
548- sd_list .append ([pin , name , signal ])
559+ # Store SD(IO/MMC) pins
560+ def store_sdx (pin , name , signal ):
561+ if signal .endswith ("_D0" ):
562+ sdxd0_list .append ([pin , name , signal ])
563+ elif signal .endswith ("_D1" ):
564+ sdxd1_list .append ([pin , name , signal ])
565+ elif signal .endswith ("_D2" ):
566+ sdxd2_list .append ([pin , name , signal ])
567+ elif signal .endswith ("_D3" ):
568+ sdxd3_list .append ([pin , name , signal ])
569+ elif signal .endswith ("_D4" ):
570+ sdxd4_list .append ([pin , name , signal ])
571+ elif signal .endswith ("_D5" ):
572+ sdxd5_list .append ([pin , name , signal ])
573+ elif signal .endswith ("_D6" ):
574+ sdxd6_list .append ([pin , name , signal ])
575+ elif signal .endswith ("_D7" ):
576+ sdxd7_list .append ([pin , name , signal ])
577+ elif signal .endswith ("_CMD" ):
578+ sdxcmd_list .append ([pin , name , signal ])
579+ elif signal .endswith ("_CK" ):
580+ sdxck_list .append ([pin , name , signal ])
581+ elif signal .endswith ("_CKIN" ):
582+ sdmmcckin_list .append ([pin , name , signal ])
583+ elif signal .endswith ("_CDIR" ):
584+ sdmmccdir_list .append ([pin , name , signal ])
585+ elif signal .endswith ("_D0DIR" ):
586+ sdmmcd0dir_list .append ([pin , name , signal ])
587+ elif signal .endswith ("_D123DIR" ):
588+ sdmmcd123dir_list .append ([pin , name , signal ])
549589
550590
551591# PeripheralPins.cpp generation
@@ -1044,13 +1084,40 @@ def usb_pinmap(lst):
10441084 )
10451085
10461086
1047- def sd_pinmap ( ):
1048- sd_pins_list = []
1087+ def sdx_pinmap ( lst ):
1088+ sdx_pins_list = []
10491089 winst = [0 ]
10501090 wpin = [0 ]
10511091 mode = "STM_MODE_AF_PP"
1052-
1053- for p in sd_list :
1092+ if lst == sdxd0_list :
1093+ aname = "SD_DATA0"
1094+ elif lst == sdxd1_list :
1095+ aname = "SD_DATA1"
1096+ elif lst == sdxd2_list :
1097+ aname = "SD_DATA2"
1098+ elif lst == sdxd3_list :
1099+ aname = "SD_DATA3"
1100+ elif lst == sdxd4_list :
1101+ aname = "SD_DATA4"
1102+ elif lst == sdxd5_list :
1103+ aname = "SD_DATA5"
1104+ elif lst == sdxd6_list :
1105+ aname = "SD_DATA6"
1106+ elif lst == sdxd7_list :
1107+ aname = "SD_DATA7"
1108+ elif lst == sdxcmd_list :
1109+ aname = "SD_CMD"
1110+ elif lst == sdxck_list :
1111+ aname = "SD_CK"
1112+ elif lst == sdmmcckin_list :
1113+ aname = "SD_CKIN"
1114+ elif lst == sdmmccdir_list :
1115+ aname = "SD_CDIR"
1116+ elif lst == sdmmcd0dir_list :
1117+ aname = "SD_D0DIR"
1118+ elif lst == sdmmcd123dir_list :
1119+ aname = "SD_D123DIR"
1120+ for p in lst :
10541121 # 2nd element is the SD signal
10551122 a = p [2 ].split ("_" )
10561123 inst = a [0 ]
@@ -1060,7 +1127,7 @@ def sd_pinmap():
10601127 pull = "GPIO_PULLUP"
10611128 winst .append (len (inst ))
10621129 wpin .append (len (p [0 ]))
1063- sd_pins_list .append (
1130+ sdx_pins_list .append (
10641131 {
10651132 "pin" : p [0 ],
10661133 "inst" : inst ,
@@ -1073,11 +1140,11 @@ def sd_pinmap():
10731140 return dict (
10741141 name = "SD" ,
10751142 hal = "SD" ,
1076- aname = "SD" ,
1143+ aname = aname ,
10771144 data = "" ,
10781145 wpin = max (wpin ) + 1 ,
10791146 winst = max (winst ) + 1 ,
1080- list = sd_pins_list ,
1147+ list = sdx_pins_list ,
10811148 )
10821149
10831150
@@ -1131,7 +1198,22 @@ def print_peripheral():
11311198 xspi_pinmap (xspissel_list ),
11321199 ),
11331200 usb_pinmmap ,
1134- [sd_pinmap ()],
1201+ (
1202+ sdx_pinmap (sdxcmd_list ),
1203+ sdx_pinmap (sdxck_list ),
1204+ sdx_pinmap (sdxd0_list ),
1205+ sdx_pinmap (sdxd1_list ),
1206+ sdx_pinmap (sdxd2_list ),
1207+ sdx_pinmap (sdxd3_list ),
1208+ sdx_pinmap (sdxd4_list ),
1209+ sdx_pinmap (sdxd5_list ),
1210+ sdx_pinmap (sdxd6_list ),
1211+ sdx_pinmap (sdxd7_list ),
1212+ sdx_pinmap (sdmmcckin_list ),
1213+ sdx_pinmap (sdmmccdir_list ),
1214+ sdx_pinmap (sdmmcd0dir_list ),
1215+ sdx_pinmap (sdmmcd123dir_list ),
1216+ ),
11351217 ),
11361218 )
11371219 )
@@ -1447,7 +1529,7 @@ def print_variant(generic_list, alt_syswkup_list):
14471529 hal_modules_list .append ("OSPI" )
14481530 else :
14491531 hal_modules_list .append ("QSPI" )
1450- if sd_list :
1532+ if sdxcmd_list :
14511533 hal_modules_list .append ("SD" )
14521534
14531535 variant_h_file .write (
@@ -1668,7 +1750,20 @@ def sort_my_lists():
16681750 usb_list .sort (key = natural_sortkey )
16691751 usb_otgfs_list .sort (key = natural_sortkey )
16701752 usb_otghs_list .sort (key = natural_sortkey )
1671- sd_list .sort (key = natural_sortkey )
1753+ sdxcmd_list .sort (key = natural_sortkey )
1754+ sdxck_list .sort (key = natural_sortkey )
1755+ sdxd0_list .sort (key = natural_sortkey )
1756+ sdxd1_list .sort (key = natural_sortkey )
1757+ sdxd2_list .sort (key = natural_sortkey )
1758+ sdxd3_list .sort (key = natural_sortkey )
1759+ sdxd4_list .sort (key = natural_sortkey )
1760+ sdxd5_list .sort (key = natural_sortkey )
1761+ sdxd6_list .sort (key = natural_sortkey )
1762+ sdxd7_list .sort (key = natural_sortkey )
1763+ sdmmcckin_list .sort (key = natural_sortkey )
1764+ sdmmccdir_list .sort (key = natural_sortkey )
1765+ sdmmcd0dir_list .sort (key = natural_sortkey )
1766+ sdmmcd123dir_list .sort (key = natural_sortkey )
16721767
16731768
16741769def clean_all_lists ():
@@ -1708,7 +1803,20 @@ def clean_all_lists():
17081803 del usb_list [:]
17091804 del usb_otgfs_list [:]
17101805 del usb_otghs_list [:]
1711- del sd_list [:]
1806+ del sdxcmd_list [:]
1807+ del sdxck_list [:]
1808+ del sdxd0_list [:]
1809+ del sdxd1_list [:]
1810+ del sdxd2_list [:]
1811+ del sdxd3_list [:]
1812+ del sdxd4_list [:]
1813+ del sdxd5_list [:]
1814+ del sdxd6_list [:]
1815+ del sdxd7_list [:]
1816+ del sdmmcckin_list [:]
1817+ del sdmmccdir_list [:]
1818+ del sdmmcd0dir_list [:]
1819+ del sdmmcd123dir_list [:]
17121820
17131821
17141822def manage_af_and_alternate ():
@@ -1742,7 +1850,20 @@ def manage_af_and_alternate():
17421850 add_af (usb_list )
17431851 add_af (usb_otgfs_list )
17441852 add_af (usb_otghs_list )
1745- add_af (sd_list )
1853+ add_af (sdxcmd_list )
1854+ add_af (sdxck_list )
1855+ add_af (sdxd0_list )
1856+ add_af (sdxd1_list )
1857+ add_af (sdxd2_list )
1858+ add_af (sdxd3_list )
1859+ add_af (sdxd4_list )
1860+ add_af (sdxd5_list )
1861+ add_af (sdxd6_list )
1862+ add_af (sdxd7_list )
1863+ add_af (sdmmcckin_list )
1864+ add_af (sdmmccdir_list )
1865+ add_af (sdmmcd0dir_list )
1866+ add_af (sdmmcd123dir_list )
17461867
17471868 sort_my_lists ()
17481869
@@ -1778,7 +1899,20 @@ def manage_af_and_alternate():
17781899 update_alternate (usb_list )
17791900 update_alternate (usb_otgfs_list )
17801901 update_alternate_usb_otg_hs ()
1781- update_alternate (sd_list )
1902+ update_alternate (sdxcmd_list )
1903+ update_alternate (sdxck_list )
1904+ update_alternate (sdxd0_list )
1905+ update_alternate (sdxd1_list )
1906+ update_alternate (sdxd2_list )
1907+ update_alternate (sdxd3_list )
1908+ update_alternate (sdxd4_list )
1909+ update_alternate (sdxd5_list )
1910+ update_alternate (sdxd6_list )
1911+ update_alternate (sdxd7_list )
1912+ update_alternate (sdmmcckin_list )
1913+ update_alternate (sdmmccdir_list )
1914+ update_alternate (sdmmcd0dir_list )
1915+ update_alternate (sdmmcd123dir_list )
17821916
17831917 alt_list .sort (key = natural_sortkey )
17841918
@@ -1889,7 +2023,7 @@ def parse_pins():
18892023 elif "USB" in sig :
18902024 store_usb (pin , name , sig )
18912025 elif re .match ("^SD(IO|MMC)" , sig ) is not None :
1892- store_sd (pin , name , sig )
2026+ store_sdx (pin , name , sig )
18932027 del itemlist [:]
18942028
18952029
0 commit comments