diff --git a/boards/common/weact-f4x1cx/Kconfig b/boards/common/weact-f4x1cx/Kconfig index 0671430d6b..65ba0425fb 100644 --- a/boards/common/weact-f4x1cx/Kconfig +++ b/boards/common/weact-f4x1cx/Kconfig @@ -17,3 +17,9 @@ config BOARD_COMMON_WEACT_F41XCX select HAS_PERIPH_UART select HAS_PERIPH_USBDEV select HAS_HIGHLEVEL_STDIO + + # Clock configuration + select BOARD_HAS_HSE + select BOARD_HAS_LSE + +source "$(RIOTBOARD)/common/stm32/Kconfig" diff --git a/boards/common/weact-f4x1cx/Makefile.features b/boards/common/weact-f4x1cx/Makefile.features index d2d81aba42..0f65aee573 100644 --- a/boards/common/weact-f4x1cx/Makefile.features +++ b/boards/common/weact-f4x1cx/Makefile.features @@ -12,3 +12,6 @@ FEATURES_PROVIDED += periph_usbdev # Various other features (if any) FEATURES_PROVIDED += highlevel_stdio + +# weact-f4x1cx boards provide a custom default Kconfig clock configuration +KCONFIG_ADD_CONFIG += $(RIOTBOARD)/common/weact-f4x1cx/clock.config diff --git a/boards/common/weact-f4x1cx/clock.config b/boards/common/weact-f4x1cx/clock.config new file mode 100644 index 0000000000..945b9e4add --- /dev/null +++ b/boards/common/weact-f4x1cx/clock.config @@ -0,0 +1,4 @@ +# weact-f4x1cx based boards provide a 25MHz HSE so they need a custom PLL config +# to output a 48MHz clock for USB. +CONFIG_CUSTOM_PLL_PARAMS=y +CONFIG_CLOCK_PLL_M=25 diff --git a/boards/f4vi1/Kconfig b/boards/f4vi1/Kconfig index fb1bcf059f..57d055ab9e 100644 --- a/boards/f4vi1/Kconfig +++ b/boards/f4vi1/Kconfig @@ -16,3 +16,9 @@ config BOARD_F4VI1 # Put defined MCU peripherals here (in alphabetical order) select HAS_PERIPH_TIMER select HAS_PERIPH_UART + + # Clock configuration + select BOARD_HAS_HSE + select BOARD_HAS_LSE + +source "$(RIOTBOARD)/common/stm32/Kconfig" diff --git a/boards/f4vi1/Makefile.features b/boards/f4vi1/Makefile.features index 3ba2fc3e8f..eb610fcaeb 100644 --- a/boards/f4vi1/Makefile.features +++ b/boards/f4vi1/Makefile.features @@ -5,3 +5,6 @@ CPU_MODEL = stm32f415rg # Put defined MCU peripherals here (in alphabetical order) FEATURES_PROVIDED += periph_timer FEATURES_PROVIDED += periph_uart + +# f4vi1 provides a custom default Kconfig clock configuration +KCONFIG_ADD_CONFIG += $(RIOTBOARD)/f4vi1/clock.config diff --git a/boards/f4vi1/clock.config b/boards/f4vi1/clock.config new file mode 100644 index 0000000000..5ce6d857d5 --- /dev/null +++ b/boards/f4vi1/clock.config @@ -0,0 +1,4 @@ +# f4vi1 provides a 16MHz HSE so they need a custom PLL config +# to remain in 180MHz max clock. +CONFIG_CUSTOM_PLL_PARAMS=y +CONFIG_CLOCK_PLL_N=90 diff --git a/boards/msbiot/Kconfig b/boards/msbiot/Kconfig index 734e8f5995..22f64169c7 100644 --- a/boards/msbiot/Kconfig +++ b/boards/msbiot/Kconfig @@ -22,3 +22,9 @@ config BOARD_MSBIOT select HAS_PERIPH_SPI select HAS_PERIPH_TIMER select HAS_PERIPH_UART + + # Clock configuration + select BOARD_HAS_HSE + select BOARD_HAS_LSE + +source "$(RIOTBOARD)/common/stm32/Kconfig" diff --git a/boards/msbiot/Makefile.features b/boards/msbiot/Makefile.features index aaefd4fcad..d4346ad56e 100644 --- a/boards/msbiot/Makefile.features +++ b/boards/msbiot/Makefile.features @@ -10,3 +10,6 @@ FEATURES_PROVIDED += periph_pwm FEATURES_PROVIDED += periph_spi FEATURES_PROVIDED += periph_timer FEATURES_PROVIDED += periph_uart + +# msbiot provides a custom default Kconfig clock configuration +KCONFIG_ADD_CONFIG += $(RIOTBOARD)/msbiot/clock.config diff --git a/boards/msbiot/clock.config b/boards/msbiot/clock.config new file mode 100644 index 0000000000..dbd3b7b887 --- /dev/null +++ b/boards/msbiot/clock.config @@ -0,0 +1,5 @@ +# msbiot provides a 16MHz HSE so its needs a custom PLL config to output a +# 180MHz clock. +CONFIG_CUSTOM_PLL_PARAMS=y +CONFIG_CLOCK_PLL_M=16 +CONFIG_CLOCK_PLL_N=360 diff --git a/boards/nucleo-f401re/Kconfig b/boards/nucleo-f401re/Kconfig index fad2de8768..429824d637 100644 --- a/boards/nucleo-f401re/Kconfig +++ b/boards/nucleo-f401re/Kconfig @@ -25,4 +25,8 @@ config BOARD_NUCLEO_F401RE select HAS_PERIPH_UART select HAS_PERIPH_QDEC + # Clock configuration + select BOARD_HAS_HSE + select BOARD_HAS_LSE + source "$(RIOTBOARD)/common/nucleo64/Kconfig" diff --git a/boards/nucleo-f410rb/Kconfig b/boards/nucleo-f410rb/Kconfig index a37da84d57..4a2f1e7864 100644 --- a/boards/nucleo-f410rb/Kconfig +++ b/boards/nucleo-f410rb/Kconfig @@ -23,4 +23,8 @@ config BOARD_NUCLEO_F410RB select HAS_PERIPH_TIMER select HAS_PERIPH_UART + # Clock configuration + select BOARD_HAS_HSE + select BOARD_HAS_LSE + source "$(RIOTBOARD)/common/nucleo64/Kconfig" diff --git a/boards/nucleo-f411re/Kconfig b/boards/nucleo-f411re/Kconfig index 3e93c88300..e321e1a9a2 100644 --- a/boards/nucleo-f411re/Kconfig +++ b/boards/nucleo-f411re/Kconfig @@ -24,4 +24,8 @@ config BOARD_NUCLEO_F411RE select HAS_PERIPH_TIMER select HAS_PERIPH_UART + # Clock configuration + select BOARD_HAS_HSE + select BOARD_HAS_LSE + source "$(RIOTBOARD)/common/nucleo64/Kconfig" diff --git a/boards/nucleo-f412zg/Kconfig b/boards/nucleo-f412zg/Kconfig index b370bafebc..86c12b53e3 100644 --- a/boards/nucleo-f412zg/Kconfig +++ b/boards/nucleo-f412zg/Kconfig @@ -25,4 +25,8 @@ config BOARD_NUCLEO_F412ZG select HAS_PERIPH_UART select HAS_PERIPH_USBDEV + # Clock configuration + select BOARD_HAS_HSE + select BOARD_HAS_LSE + source "$(RIOTBOARD)/common/nucleo144/Kconfig" diff --git a/boards/nucleo-f413zh/Kconfig b/boards/nucleo-f413zh/Kconfig index a2343df2c8..7b4df97a9e 100644 --- a/boards/nucleo-f413zh/Kconfig +++ b/boards/nucleo-f413zh/Kconfig @@ -28,4 +28,8 @@ config BOARD_NUCLEO_F413ZH select HAS_PERIPH_UART select HAS_PERIPH_USBDEV + # Clock configuration + select BOARD_HAS_HSE + select BOARD_HAS_LSE + source "$(RIOTBOARD)/common/nucleo144/Kconfig" diff --git a/boards/nucleo-f429zi/Kconfig b/boards/nucleo-f429zi/Kconfig index 67369229d7..170d132c28 100644 --- a/boards/nucleo-f429zi/Kconfig +++ b/boards/nucleo-f429zi/Kconfig @@ -25,4 +25,8 @@ config BOARD_NUCLEO_F429ZI select HAS_PERIPH_UART select HAS_PERIPH_USBDEV + # Clock configuration + select BOARD_HAS_HSE + select BOARD_HAS_LSE + source "$(RIOTBOARD)/common/nucleo144/Kconfig" diff --git a/boards/nucleo-f446re/Kconfig b/boards/nucleo-f446re/Kconfig index 569b2f51af..fe4db0760d 100644 --- a/boards/nucleo-f446re/Kconfig +++ b/boards/nucleo-f446re/Kconfig @@ -30,4 +30,8 @@ config BOARD_NUCLEO_F446RE select HAS_MOTOR_DRIVER select HAS_RIOTBOOT + # Clock configuration + select BOARD_HAS_HSE + select BOARD_HAS_LSE + source "$(RIOTBOARD)/common/nucleo64/Kconfig" diff --git a/boards/nucleo-f446ze/Kconfig b/boards/nucleo-f446ze/Kconfig index 631d23d4d9..589f71daff 100644 --- a/boards/nucleo-f446ze/Kconfig +++ b/boards/nucleo-f446ze/Kconfig @@ -25,4 +25,8 @@ config BOARD_NUCLEO_F446ZE select HAS_PERIPH_UART select HAS_PERIPH_USBDEV + # Clock configuration + select BOARD_HAS_HSE + select BOARD_HAS_LSE + source "$(RIOTBOARD)/common/nucleo144/Kconfig" diff --git a/boards/pyboard/Kconfig b/boards/pyboard/Kconfig index 290c608671..614a647dff 100644 --- a/boards/pyboard/Kconfig +++ b/boards/pyboard/Kconfig @@ -21,3 +21,9 @@ config BOARD_PYBOARD select HAS_PERIPH_TIMER select HAS_PERIPH_UART select HAS_PERIPH_USBDEV + + # Clock configuration + select BOARD_HAS_HSE + select BOARD_HAS_LSE + +source "$(RIOTBOARD)/common/stm32/Kconfig" diff --git a/boards/pyboard/Makefile.features b/boards/pyboard/Makefile.features index 1237c2661e..08918f30d4 100644 --- a/boards/pyboard/Makefile.features +++ b/boards/pyboard/Makefile.features @@ -9,3 +9,6 @@ FEATURES_PROVIDED += periph_spi FEATURES_PROVIDED += periph_timer FEATURES_PROVIDED += periph_uart FEATURES_PROVIDED += periph_usbdev + +# pyboard provides a custom default Kconfig clock configuration +KCONFIG_ADD_CONFIG += $(RIOTBOARD)/pyboard/clock.config diff --git a/boards/pyboard/clock.config b/boards/pyboard/clock.config new file mode 100644 index 0000000000..1cd4429bc5 --- /dev/null +++ b/boards/pyboard/clock.config @@ -0,0 +1,5 @@ +# pyboard provides a 12MHz HSE so its needs a custom PLL config to output a +# 48MHz clock for USB. +CONFIG_CUSTOM_PLL_PARAMS=y +CONFIG_CLOCK_PLL_M=12 +CONFIG_CLOCK_PLL_N=336 diff --git a/boards/stm32f429i-disc1/Kconfig b/boards/stm32f429i-disc1/Kconfig index f41e1c3db5..cf3e362eab 100644 --- a/boards/stm32f429i-disc1/Kconfig +++ b/boards/stm32f429i-disc1/Kconfig @@ -23,3 +23,9 @@ config BOARD_STM32F429I_DISC1 # Put other features for this board (in alphabetical order) select HAS_RIOTBOOT + + # Clock configuration + select BOARD_HAS_HSE + select BOARD_HAS_LSE + +source "$(RIOTBOARD)/common/stm32/Kconfig" diff --git a/boards/stm32f429i-disco/Kconfig b/boards/stm32f429i-disco/Kconfig index a67e1bc7d1..53f94d5837 100644 --- a/boards/stm32f429i-disco/Kconfig +++ b/boards/stm32f429i-disco/Kconfig @@ -24,3 +24,9 @@ config BOARD_STM32F429I_DISCO # Put other features for this board (in alphabetical order) select HAS_HIGHLEVEL_STDIO select HAS_RIOTBOOT + + # Clock configuration + select BOARD_HAS_HSE + select BOARD_HAS_LSE + +source "$(RIOTBOARD)/common/stm32/Kconfig" diff --git a/boards/stm32f4discovery/Kconfig b/boards/stm32f4discovery/Kconfig index c5a92163c4..168d141323 100644 --- a/boards/stm32f4discovery/Kconfig +++ b/boards/stm32f4discovery/Kconfig @@ -28,6 +28,11 @@ config BOARD_STM32F4DISCOVERY # Various other features (if any) select HAS_ARDUINO + # Clock configuration + select BOARD_HAS_HSE + +source "$(RIOTBOARD)/common/stm32/Kconfig" + config ERROR_MODULES_CONFLICT default "On stm32f4discovery boards there are the same pins for the DAC and/or SPI_0." if MODULE_PERIPH_SPI && MODULE_PERIPH_DAC depends on BOARD_STM32F4DISCOVERY diff --git a/boards/ublox-c030-u201/Kconfig b/boards/ublox-c030-u201/Kconfig index 8791a80a14..3ce01486a2 100644 --- a/boards/ublox-c030-u201/Kconfig +++ b/boards/ublox-c030-u201/Kconfig @@ -21,3 +21,9 @@ config BOARD_UBLOX_C030_U201 select HAS_PERIPH_SPI select HAS_PERIPH_TIMER select HAS_PERIPH_UART + + # Clock configuration + select BOARD_HAS_HSE + select BOARD_HAS_LSE + +source "$(RIOTBOARD)/common/stm32/Kconfig" diff --git a/boards/ublox-c030-u201/Makefile.features b/boards/ublox-c030-u201/Makefile.features index 2834d664a1..c1313313a3 100644 --- a/boards/ublox-c030-u201/Makefile.features +++ b/boards/ublox-c030-u201/Makefile.features @@ -9,3 +9,6 @@ FEATURES_PROVIDED += periph_rtc FEATURES_PROVIDED += periph_spi FEATURES_PROVIDED += periph_timer FEATURES_PROVIDED += periph_uart + +# ublox-c030-u201 provides a custom default Kconfig clock configuration +KCONFIG_ADD_CONFIG += $(RIOTBOARD)/ublox-c030-u201/clock.config diff --git a/boards/ublox-c030-u201/clock.config b/boards/ublox-c030-u201/clock.config new file mode 100644 index 0000000000..778fb18fa2 --- /dev/null +++ b/boards/ublox-c030-u201/clock.config @@ -0,0 +1,5 @@ +# ublox-c030-u201 provides a 12MHz HSE so its needs a custom PLL config to +# output a 180MHz clock. +CONFIG_CUSTOM_PLL_PARAMS=y +CONFIG_CLOCK_PLL_M=12 +CONFIG_CLOCK_PLL_N=360 diff --git a/boards/weact-f401cc/Makefile.features b/boards/weact-f401cc/Makefile.features index 49c258a11a..bdf5a6e2bb 100644 --- a/boards/weact-f401cc/Makefile.features +++ b/boards/weact-f401cc/Makefile.features @@ -1,3 +1,6 @@ CPU_MODEL = stm32f401cc include $(RIOTBOARD)/common/weact-f4x1cx/Makefile.features + +# weact-f401cc provides a custom default Kconfig clock configuration +KCONFIG_ADD_CONFIG += $(RIOTBOARD)/weact-f401cc/clock.config diff --git a/boards/weact-f401cc/clock.config b/boards/weact-f401cc/clock.config new file mode 100644 index 0000000000..b6a5c5f938 --- /dev/null +++ b/boards/weact-f401cc/clock.config @@ -0,0 +1 @@ +CONFIG_CLOCK_PLL_N=336 diff --git a/boards/weact-f401ce/Makefile.features b/boards/weact-f401ce/Makefile.features index 1417cb4e9d..edb1d08a28 100644 --- a/boards/weact-f401ce/Makefile.features +++ b/boards/weact-f401ce/Makefile.features @@ -1,3 +1,6 @@ CPU_MODEL = stm32f401ce include $(RIOTBOARD)/common/weact-f4x1cx/Makefile.features + +# weact-f401ce provides a custom default Kconfig clock configuration +KCONFIG_ADD_CONFIG += $(RIOTBOARD)/weact-f401ce/clock.config diff --git a/boards/weact-f401ce/clock.config b/boards/weact-f401ce/clock.config new file mode 100644 index 0000000000..b6a5c5f938 --- /dev/null +++ b/boards/weact-f401ce/clock.config @@ -0,0 +1 @@ +CONFIG_CLOCK_PLL_N=336 diff --git a/boards/weact-f411ce/Makefile.features b/boards/weact-f411ce/Makefile.features index 464bf16c20..d457ce74bf 100644 --- a/boards/weact-f411ce/Makefile.features +++ b/boards/weact-f411ce/Makefile.features @@ -1,3 +1,6 @@ CPU_MODEL = stm32f411ce include $(RIOTBOARD)/common/weact-f4x1cx/Makefile.features + +# weact-f411ce provides a custom default Kconfig clock configuration +KCONFIG_ADD_CONFIG += $(RIOTBOARD)/weact-f411ce/clock.config diff --git a/boards/weact-f411ce/clock.config b/boards/weact-f411ce/clock.config new file mode 100644 index 0000000000..2328d09ebe --- /dev/null +++ b/boards/weact-f411ce/clock.config @@ -0,0 +1 @@ +CONFIG_CLOCK_PLL_N=192