[genpinmap] Avoid duplicated pins
Signed-off-by: Frederic.Pillon <frederic.pillon@st.com>
This commit is contained in:
parent
73128eb640
commit
8504f64647
1 changed files with 52 additions and 2 deletions
|
|
@ -156,19 +156,31 @@ def get_gpio_af_numF1(pintofind, iptofind):
|
|||
return mygpioaf
|
||||
|
||||
|
||||
# Return 0 if pin/signal not already in the list
|
||||
def isPinAndSignalInList(pin, signal, lst):
|
||||
return len([item for item in lst if item[0] == pin and item[2] == signal])
|
||||
|
||||
|
||||
def store_pin(pin, name):
|
||||
if pin in [p[0] for p in io_list]:
|
||||
return
|
||||
# store pin I/O
|
||||
p = [pin, name]
|
||||
io_list.append(p)
|
||||
if p not in io_list:
|
||||
io_list.append(p)
|
||||
|
||||
|
||||
# function to store ADC list
|
||||
def store_adc(pin, name, signal):
|
||||
if isPinAndSignalInList(pin, signal, adclist):
|
||||
return
|
||||
adclist.append([pin, name, signal])
|
||||
|
||||
|
||||
# function to store DAC list
|
||||
def store_dac(pin, name, signal):
|
||||
if isPinAndSignalInList(pin, signal, daclist):
|
||||
return
|
||||
daclist.append([pin, name, signal])
|
||||
|
||||
|
||||
|
|
@ -176,72 +188,110 @@ def store_dac(pin, name, signal):
|
|||
def store_i2c(pin, name, signal):
|
||||
# is it SDA or SCL ?
|
||||
if "_SCL" in signal:
|
||||
if isPinAndSignalInList(pin, signal, i2cscl_list):
|
||||
return
|
||||
i2cscl_list.append([pin, name, signal])
|
||||
if "_SDA" in signal:
|
||||
if isPinAndSignalInList(pin, signal, i2csda_list):
|
||||
return
|
||||
i2csda_list.append([pin, name, signal])
|
||||
|
||||
|
||||
# function to store timers
|
||||
def store_pwm(pin, name, signal):
|
||||
if "_CH" in signal:
|
||||
if isPinAndSignalInList(pin, signal, pwm_list):
|
||||
return
|
||||
pwm_list.append([pin, name, signal])
|
||||
|
||||
|
||||
# function to store Uart pins
|
||||
def store_uart(pin, name, signal):
|
||||
if "_TX" in signal:
|
||||
if isPinAndSignalInList(pin, signal, uarttx_list):
|
||||
return
|
||||
uarttx_list.append([pin, name, signal])
|
||||
if "_RX" in signal:
|
||||
if isPinAndSignalInList(pin, signal, uartrx_list):
|
||||
return
|
||||
uartrx_list.append([pin, name, signal])
|
||||
if "_CTS" in signal:
|
||||
if isPinAndSignalInList(pin, signal, uartcts_list):
|
||||
return
|
||||
uartcts_list.append([pin, name, signal])
|
||||
if "_RTS" in signal:
|
||||
if isPinAndSignalInList(pin, signal, uartrts_list):
|
||||
return
|
||||
uartrts_list.append([pin, name, signal])
|
||||
|
||||
|
||||
# function to store SPI pins
|
||||
def store_spi(pin, name, signal):
|
||||
if "_MISO" in signal:
|
||||
if isPinAndSignalInList(pin, signal, spimiso_list):
|
||||
return
|
||||
spimiso_list.append([pin, name, signal])
|
||||
if "_MOSI" in signal:
|
||||
if isPinAndSignalInList(pin, signal, spimosi_list):
|
||||
return
|
||||
spimosi_list.append([pin, name, signal])
|
||||
if "_SCK" in signal:
|
||||
if isPinAndSignalInList(pin, signal, spisclk_list):
|
||||
return
|
||||
spisclk_list.append([pin, name, signal])
|
||||
if "_NSS" in signal:
|
||||
if isPinAndSignalInList(pin, signal, spissel_list):
|
||||
return
|
||||
spissel_list.append([pin, name, signal])
|
||||
|
||||
|
||||
# function to store CAN pins
|
||||
def store_can(pin, name, signal):
|
||||
if "_RX" in signal:
|
||||
if isPinAndSignalInList(pin, signal, canrd_list):
|
||||
return
|
||||
canrd_list.append([pin, name, signal])
|
||||
if "_TX" in signal:
|
||||
if isPinAndSignalInList(pin, signal, cantd_list):
|
||||
return
|
||||
cantd_list.append([pin, name, signal])
|
||||
|
||||
|
||||
# function to store ETH list
|
||||
def store_eth(pin, name, signal):
|
||||
if isPinAndSignalInList(pin, signal, eth_list):
|
||||
return
|
||||
eth_list.append([pin, name, signal])
|
||||
|
||||
|
||||
# function to store QSPI pins
|
||||
def store_qspi(pin, name, signal):
|
||||
if isPinAndSignalInList(pin, signal, qspi_list):
|
||||
return
|
||||
qspi_list.append([pin, name, signal])
|
||||
|
||||
|
||||
# function to store SYS pins
|
||||
def store_sys(pin, name, signal):
|
||||
if "_WKUP" in signal:
|
||||
if isPinAndSignalInList(pin, signal, syswkup_list):
|
||||
return
|
||||
syswkup_list.append([pin, name, signal])
|
||||
|
||||
|
||||
# function to store USB pins
|
||||
def store_usb(pin, name, signal):
|
||||
if "OTG" not in signal:
|
||||
if isPinAndSignalInList(pin, signal, usb_list):
|
||||
return
|
||||
usb_list.append([pin, name, signal])
|
||||
if signal.startswith("USB_OTG_FS"):
|
||||
if isPinAndSignalInList(pin, signal, usb_otgfs_list):
|
||||
return
|
||||
usb_otgfs_list.append([pin, name, signal])
|
||||
if signal.startswith("USB_OTG_HS"):
|
||||
if isPinAndSignalInList(pin, signal, usb_otghs_list):
|
||||
return
|
||||
usb_otghs_list.append([pin, name, signal])
|
||||
|
||||
|
||||
|
|
@ -944,7 +994,7 @@ for mcu_file in mcu_list:
|
|||
print(" * I/O pins found: %i" % nb_pin)
|
||||
# io_list.sort(key=natural_sortkey)
|
||||
# for io in io_list:
|
||||
# print(io[1])
|
||||
# print(io[0] + ", " + io[1])
|
||||
print("done\n")
|
||||
clean_all_lists()
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue