Skip to content

Commit cdc034c

Browse files
committed
[genpinmap] Add OCTOSPI pinmap arrays
Signed-off-by: Frederic Pillon <frederic.pillon@st.com>
1 parent 2752580 commit cdc034c

File tree

1 file changed

+81
-13
lines changed

1 file changed

+81
-13
lines changed

src/genpinmap/genpinmap_arduino.py

Lines changed: 81 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,12 @@
2828
cantd_list = [] # 'PIN','name','CANTD'
2929
canrd_list = [] # 'PIN','name','CANRD'
3030
eth_list = [] # 'PIN','name','ETH'
31-
qspi_list = [] # 'PIN','name','QUADSPI'
31+
quadspidata0_list = [] # 'PIN','name','QUADSPIDATA0'
32+
quadspidata1_list = [] # 'PIN','name','QUADSPIDATA1'
33+
quadspidata2_list = [] # 'PIN','name','QUADSPIDATA2'
34+
quadspidata3_list = [] # 'PIN','name','QUADSPIDATA3'
35+
quadspisclk_list = [] # 'PIN','name','QUADSPISCLK'
36+
quadspissel_list = [] # 'PIN','name','QUADSPISSEL'
3237
syswkup_list = [] # 'PIN','name','SYSWKUP'
3338
usb_list = [] # 'PIN','name','USB'
3439
usb_otgfs_list = [] # 'PIN','name','USB'
@@ -267,9 +272,30 @@ def store_eth(pin, name, signal):
267272

268273
# function to store QSPI pins
269274
def store_qspi(pin, name, signal):
270-
if isPinAndSignalInList(pin, signal, qspi_list):
271-
return
272-
qspi_list.append([pin, name, signal])
275+
if "_IO0" in signal:
276+
if isPinAndSignalInList(pin, signal, quadspidata0_list):
277+
return
278+
quadspidata0_list.append([pin, name, signal])
279+
if "_IO1" in signal:
280+
if isPinAndSignalInList(pin, signal, quadspidata1_list):
281+
return
282+
quadspidata1_list.append([pin, name, signal])
283+
if "_IO2" in signal:
284+
if isPinAndSignalInList(pin, signal, quadspidata2_list):
285+
return
286+
quadspidata2_list.append([pin, name, signal])
287+
if "_IO3" in signal:
288+
if isPinAndSignalInList(pin, signal, quadspidata3_list):
289+
return
290+
quadspidata3_list.append([pin, name, signal])
291+
if "_CLK" in signal:
292+
if isPinAndSignalInList(pin, signal, quadspisclk_list):
293+
return
294+
quadspisclk_list.append([pin, name, signal])
295+
if "_NCS" in signal:
296+
if isPinAndSignalInList(pin, signal, quadspissel_list):
297+
return
298+
quadspissel_list.append([pin, name, signal])
273299

274300

275301
# function to store SYS pins
@@ -382,8 +408,33 @@ def print_all_lists():
382408
print_can(cantd_list)
383409
if print_list_header("ETHERNET", "Ethernet", "ETH", eth_list):
384410
print_eth()
385-
if print_list_header("QUADSPI", "QUADSPI", "QSPI", qspi_list):
386-
print_qspi()
411+
inst = "QUADSPI"
412+
mod = "QSPI"
413+
if len(quadspidata0_list) > 0 and "OCTOSPI" in quadspidata0_list[0][2]:
414+
inst = "OCTOSPI"
415+
mod = "OSPI"
416+
if print_list_header(
417+
inst,
418+
inst + "_DATA0",
419+
mod,
420+
quadspidata0_list,
421+
quadspidata1_list,
422+
quadspidata2_list,
423+
quadspidata3_list,
424+
quadspisclk_list,
425+
quadspissel_list,
426+
):
427+
print_qspi(quadspidata0_list)
428+
if print_list_header("", inst + "_DATA1", mod, quadspidata1_list):
429+
print_qspi(quadspidata1_list)
430+
if print_list_header("", inst + "_DATA2", mod, quadspidata2_list):
431+
print_qspi(quadspidata2_list)
432+
if print_list_header("", inst + "_DATA3", mod, quadspidata3_list):
433+
print_qspi(quadspidata3_list)
434+
if print_list_header("", inst + "_SCLK", mod, quadspisclk_list):
435+
print_qspi(quadspisclk_list)
436+
if print_list_header("", inst + "_SSEL", mod, quadspissel_list):
437+
print_qspi(quadspissel_list)
387438
if print_list_header("USB", "USB", "PCD", usb_list, usb_otgfs_list, usb_otghs_list):
388439
print_usb(usb_list)
389440
if print_list_header("", "USB_OTG_FS", "PCD", usb_otgfs_list):
@@ -644,13 +695,20 @@ def print_eth():
644695
)
645696

646697

647-
def print_qspi():
698+
def print_qspi(list):
648699
prev_s = ""
649-
for p in qspi_list:
700+
701+
for p in list:
650702
result = get_gpio_af_num(p[1], p[2])
651703
s1 = "%-10s" % (" {" + p[0] + ",")
652-
# 2nd element is the QUADSPI_XXXX signal
653-
s1 += "QUADSPI, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, " + result + ")},"
704+
# 2nd element is the XXXXSPI_YYYY signal
705+
if "OCTOSPIM_P1" in p[2]:
706+
s1 += "%-8s" % "OCTOSPI1,"
707+
elif "OCTOSPIM_P2" in p[2]:
708+
s1 += "%-8s" % "OCTOSPI2,"
709+
else:
710+
s1 += "%-8s" % "QUADSPI,"
711+
s1 += " STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, " + result + ")},"
654712
# check duplicated lines, only signal differs
655713
if prev_s == s1:
656714
s1 = "|" + p[2]
@@ -822,7 +880,12 @@ def sort_my_lists():
822880
cantd_list.sort(key=natural_sortkey)
823881
canrd_list.sort(key=natural_sortkey)
824882
eth_list.sort(key=natural_sortkey)
825-
qspi_list.sort(key=natural_sortkey)
883+
quadspidata0_list.sort(key=natural_sortkey)
884+
quadspidata1_list.sort(key=natural_sortkey)
885+
quadspidata2_list.sort(key=natural_sortkey)
886+
quadspidata3_list.sort(key=natural_sortkey)
887+
quadspisclk_list.sort(key=natural_sortkey)
888+
quadspissel_list.sort(key=natural_sortkey)
826889
syswkup_list.sort(key=natural_sortkey2)
827890
usb_list.sort(key=natural_sortkey)
828891
usb_otgfs_list.sort(key=natural_sortkey)
@@ -848,7 +911,12 @@ def clean_all_lists():
848911
del cantd_list[:]
849912
del canrd_list[:]
850913
del eth_list[:]
851-
del qspi_list[:]
914+
del quadspidata0_list[:]
915+
del quadspidata1_list[:]
916+
del quadspidata2_list[:]
917+
del quadspidata3_list[:]
918+
del quadspisclk_list[:]
919+
del quadspissel_list[:]
852920
del syswkup_list[:]
853921
del usb_list[:]
854922
del usb_otgfs_list[:]
@@ -893,7 +961,7 @@ def parse_pins():
893961
store_can(pin, name, sig)
894962
if "ETH" in sig:
895963
store_eth(pin, name, sig)
896-
if "QUADSPI" in sig:
964+
if "QUADSPI" in sig or "OCTOSPI" in sig:
897965
store_qspi(pin, name, sig)
898966
if "SYS_" or "PWR_" in sig:
899967
store_sys(pin, name, sig)

0 commit comments

Comments
 (0)