# 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))) # All STM32 families except for STM32F1, STM32F3 and STM32WG use synopsys_dwc2 ifeq (,$(filter f1 f3 wb,$(CPU_FAM))) USEMODULE += usbdev_synopsys_dwc2 endif # In STM32F1 family STM32F105xx and STM32F107xx also use synopsys_dwc2 ifneq (,$(filter stm32f105% stm32f107%,$(CPU_MODEL))) USEMODULE += usbdev_synopsys_dwc2 endif USEMODULE += ztimer USEMODULE += ztimer_msec 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_legacy_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 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 wl, $(CPU_FAM))) USEMODULE += ztimer USEMODULE += ztimer_msec endif endif ifneq (,$(filter periph_vbat,$(USEMODULE))) FEATURES_REQUIRED += periph_adc endif include $(RIOTCPU)/cortexm_common/Makefile.dep