[genpinmap] Avoid duplicated pins

Signed-off-by: Frederic.Pillon <frederic.pillon@st.com>
This commit is contained in:
Frederic.Pillon 2019-02-25 17:03:14 +01:00
parent 73128eb640
commit 8504f64647

View file

@ -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()