mirror of
https://github.com/RIOT-OS/RIOT.git
synced 2024-12-29 04:50:03 +01:00
cpu/stm32: improvement of USB driver selection
There are STM32 families where all models use only the Synopsys DWC2 USB OTG core while others completely use only the USB Device FS core. For these families then either the driver `drivers/usbdev_synopsys_dwc2` or the driver `cpu/stm32/periph/usbdev` is used depending on the respective family. However, the STM32 families F1 and L4 use both cores. The correct driver must therefore be selected depending on the CPU line or CPU model.
This commit is contained in:
parent
ccbb304eae
commit
31efa61eda
@ -4,12 +4,19 @@
|
||||
USEMODULE += periph stm32_clk stm32_vectors
|
||||
|
||||
ifneq (,$(filter periph_usbdev,$(FEATURES_USED)))
|
||||
# All STM32 families except for STM32F1, STM32F3 and STM32WG use synopsys_dwc2
|
||||
ifeq (,$(filter f1 f3 wb,$(CPU_FAM)))
|
||||
ifneq (,$(filter f2 f4 f7 h7 u5,$(CPU_FAM)))
|
||||
# Whole STM32 families F2, F4, F7, H7 and U5 use the Synopsys DWC2 USB OTG core
|
||||
USEMODULE += usbdev_synopsys_dwc2
|
||||
endif
|
||||
# In STM32F1 family STM32F105xx and STM32F107xx also use synopsys_dwc2
|
||||
ifneq (,$(filter stm32f105% stm32f107%,$(CPU_MODEL)))
|
||||
else ifneq (,$(filter stm32f105% stm32f107%,$(CPU_MODEL)))
|
||||
# STM32F105xx and STM32F107xx also use the Synopsys DWC2 USB OTG core
|
||||
USEMODULE += usbdev_synopsys_dwc2
|
||||
else ifneq (,$(filter stm32l47% stm32l48% stm32l49%,$(CPU_MODEL)))
|
||||
# STM32L475xx, STM32L476xx, STM32L485xx, STM32L486xx and STM32L496xx
|
||||
# also use the Synopsys DWC2 USB OTG core
|
||||
USEMODULE += usbdev_synopsys_dwc2
|
||||
else ifneq (,$(filter stm32l4a% stm32l4p% stm32l4q% stm32l4r% stm32l4s%,$(CPU_MODEL)))
|
||||
# STM32L4Axxx, STM32L4Pxxx, STM32L4Qxxx, STM32L4Rxxx and STM32L4Sxxx
|
||||
# also use the Synopsys DWC2 USB OTG core
|
||||
USEMODULE += usbdev_synopsys_dwc2
|
||||
endif
|
||||
USEMODULE += ztimer
|
||||
|
@ -10,21 +10,30 @@ config MODULE_PERIPH
|
||||
default y
|
||||
select MODULE_ZTIMER if MODULE_PERIPH_USBDEV
|
||||
select MODULE_ZTIMER_MSEC if MODULE_PERIPH_USBDEV
|
||||
# All STM32 families except for STM32F1, STM32F3 and STM32WG use
|
||||
# MODULE_USBDEV_SYNOPSYS_DWC2
|
||||
select MODULE_USBDEV_SYNOPSYS_DWC2 if MODULE_PERIPH_USBDEV && !HAS_CPU_STM32WB && !HAS_CPU_STM32F3 && !HAS_CPU_STM32F1
|
||||
# In STM32F1 family STM32F105xx also uses MODULE_USBDEV_SYNOPSYS_DWC2.
|
||||
select MODULE_USBDEV_SYNOPSYS_DWC2 if MODULE_PERIPH_USBDEV && CPU_MODEL_STM32F105R8
|
||||
select MODULE_USBDEV_SYNOPSYS_DWC2 if MODULE_PERIPH_USBDEV && CPU_MODEL_STM32F105RB
|
||||
select MODULE_USBDEV_SYNOPSYS_DWC2 if MODULE_PERIPH_USBDEV && CPU_MODEL_STM32F105RC
|
||||
select MODULE_USBDEV_SYNOPSYS_DWC2 if MODULE_PERIPH_USBDEV && CPU_MODEL_STM32F105V8
|
||||
select MODULE_USBDEV_SYNOPSYS_DWC2 if MODULE_PERIPH_USBDEV && CPU_MODEL_STM32F105VB
|
||||
select MODULE_USBDEV_SYNOPSYS_DWC2 if MODULE_PERIPH_USBDEV && CPU_MODEL_STM32F105VC
|
||||
# In STM32F1 family STM32F107xx also uses MODULE_USBDEV_SYNOPSYS_DWC2.
|
||||
select MODULE_USBDEV_SYNOPSYS_DWC2 if MODULE_PERIPH_USBDEV && CPU_MODEL_STM32F107RB
|
||||
select MODULE_USBDEV_SYNOPSYS_DWC2 if MODULE_PERIPH_USBDEV && CPU_MODEL_STM32F107RC
|
||||
select MODULE_USBDEV_SYNOPSYS_DWC2 if MODULE_PERIPH_USBDEV && CPU_MODEL_STM32F107VB
|
||||
select MODULE_USBDEV_SYNOPSYS_DWC2 if MODULE_PERIPH_USBDEV && CPU_MODEL_STM32F107VC
|
||||
# Whole STM32 families F2, F4, F7, H7 and U5 use the Synopsys DWC2 USB OTG core
|
||||
select MODULE_USBDEV_SYNOPSYS_DWC2 if MODULE_PERIPH_USBDEV && HAS_CPU_STM32F2
|
||||
select MODULE_USBDEV_SYNOPSYS_DWC2 if MODULE_PERIPH_USBDEV && HAS_CPU_STM32F4
|
||||
select MODULE_USBDEV_SYNOPSYS_DWC2 if MODULE_PERIPH_USBDEV && HAS_CPU_STM32F7
|
||||
select MODULE_USBDEV_SYNOPSYS_DWC2 if MODULE_PERIPH_USBDEV && HAS_CPU_STM32H7
|
||||
select MODULE_USBDEV_SYNOPSYS_DWC2 if MODULE_PERIPH_USBDEV && HAS_CPU_STM32U5
|
||||
# STM32F105xx and STM32F107xx lines also use the Synopsys DWC2 USB OTG core
|
||||
select MODULE_USBDEV_SYNOPSYS_DWC2 if MODULE_PERIPH_USBDEV && CPU_LINE_STM32F105XC
|
||||
select MODULE_USBDEV_SYNOPSYS_DWC2 if MODULE_PERIPH_USBDEV && CPU_LINE_STM32F107XC
|
||||
# Several lines of STM32L4 family also use the Synopsys DWC2 USB OTG core
|
||||
select MODULE_USBDEV_SYNOPSYS_DWC2 if MODULE_PERIPH_USBDEV && CPU_LINE_STM32L475XX
|
||||
select MODULE_USBDEV_SYNOPSYS_DWC2 if MODULE_PERIPH_USBDEV && CPU_LINE_STM32L476XX
|
||||
select MODULE_USBDEV_SYNOPSYS_DWC2 if MODULE_PERIPH_USBDEV && CPU_LINE_STM32L485XX
|
||||
select MODULE_USBDEV_SYNOPSYS_DWC2 if MODULE_PERIPH_USBDEV && CPU_LINE_STM32L486XX
|
||||
select MODULE_USBDEV_SYNOPSYS_DWC2 if MODULE_PERIPH_USBDEV && CPU_LINE_STM32L496XX
|
||||
select MODULE_USBDEV_SYNOPSYS_DWC2 if MODULE_PERIPH_USBDEV && CPU_LINE_STM32L4A6XX
|
||||
select MODULE_USBDEV_SYNOPSYS_DWC2 if MODULE_PERIPH_USBDEV && CPU_LINE_STM32L4P5XX
|
||||
select MODULE_USBDEV_SYNOPSYS_DWC2 if MODULE_PERIPH_USBDEV && CPU_LINE_STM32L4Q5XX
|
||||
select MODULE_USBDEV_SYNOPSYS_DWC2 if MODULE_PERIPH_USBDEV && CPU_LINE_STM32L4R5XX
|
||||
select MODULE_USBDEV_SYNOPSYS_DWC2 if MODULE_PERIPH_USBDEV && CPU_LINE_STM32L4R7XX
|
||||
select MODULE_USBDEV_SYNOPSYS_DWC2 if MODULE_PERIPH_USBDEV && CPU_LINE_STM32L4R9XX
|
||||
select MODULE_USBDEV_SYNOPSYS_DWC2 if MODULE_PERIPH_USBDEV && CPU_LINE_STM32L4S5XX
|
||||
select MODULE_USBDEV_SYNOPSYS_DWC2 if MODULE_PERIPH_USBDEV && CPU_LINE_STM32L4S7XX
|
||||
select MODULE_USBDEV_SYNOPSYS_DWC2 if MODULE_PERIPH_USBDEV && CPU_LINE_STM32L4S9XX
|
||||
help
|
||||
stm32 common peripheral code.
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user