# All stm32 families provide pm support # include stm32 common periph drivers, clock configurations and vectors USEMODULE += periph stm32_clk stm32_vectors ifneq (,$(filter periph_usbdev,$(FEATURES_USED))) 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 USEMODULE += ztimer USEMODULE += ztimer_msec else ifneq (,$(filter stm32f105% stm32f107%,$(CPU_MODEL))) # STM32F105xx and STM32F107xx also use the Synopsys DWC2 USB OTG core USEMODULE += usbdev_synopsys_dwc2 USEMODULE += ztimer USEMODULE += ztimer_msec 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 USEMODULE += ztimer USEMODULE += ztimer_msec 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 USEMODULE += ztimer USEMODULE += ztimer_msec endif endif ifneq (,$(filter periph_uart_nonblocking,$(USEMODULE))) USEMODULE += tsrb endif ifneq (,$(filter stm32_eth_%,$(USEMODULE))) USEMODULE += stm32_eth endif ifneq (,$(filter stm32_eth_tracing,$(USEMODULE))) FEATURES_REQUIRED += periph_gpio_ll endif ifneq (,$(filter stm32_eth_auto,$(USEMODULE))) USEMODULE += stm32_eth_link_up endif ifneq (,$(filter stm32_eth,$(USEMODULE))) FEATURES_REQUIRED += periph_eth USEMODULE += iolist USEMODULE += netdev_eth USEMODULE += netdev_new_api USEMODULE += ztimer USEMODULE += ztimer_msec # lwip IPv6 supports needs link up events to perform duplicate address # detection ifneq (,$(filter lwip_ipv6,$(USEMODULE))) USEMODULE += stm32_eth_link_up endif endif ifneq (,$(filter lcd_parallel_ll_mcu,$(USEMODULE))) USEMODULE += lcd_fmc endif ifneq (,$(filter periph_can,$(FEATURES_USED))) FEATURES_REQUIRED += periph_gpio FEATURES_REQUIRED += periph_gpio_irq endif ifneq (,$(filter periph_eth periph_ptp,$(USEMODULE))) USEMODULE += periph_eth_common endif # periph_rtc_mem is currently tied to the periph_rtc ifneq (,$(filter periph_rtc_mem,$(USEMODULE))) FEATURES_REQUIRED += periph_rtc endif ifneq (,$(filter periph_adc,$(FEATURES_USED))) ifneq (,$(filter f3 l4 wb wl, $(CPU_FAM))) USEMODULE += ztimer USEMODULE += ztimer_msec endif endif ifneq (,$(filter periph_vbat,$(USEMODULE))) FEATURES_REQUIRED += periph_adc endif ifneq (,$(filter periph_fmc_%,$(USEMODULE))) FEATURES_REQUIRED += periph_fmc endif ifneq (,$(filter periph_sdmmc,$(FEATURES_USED))) FEATURES_REQUIRED += periph_gpio_irq FEATURES_REQUIRED += periph_sdmmc_clk FEATURES_OPTIONAL += periph_dma endif include $(RIOTCPU)/cortexm_common/Makefile.dep