This is an automated email from the ASF dual-hosted git repository.

acassis pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx.git

commit c22a3d67d6da5a4079de1754dd30e4237eb60ed0
Author: raiden00pl <[email protected]>
AuthorDate: Tue Jun 9 09:00:52 2026 +0200

    arch/stm32: add common STM32 Kconfig support
    
    Add the shared STM32 Kconfig include and introduce the hidden
    common ARCH_CHIP_STM32 selector used by concrete STM32 families.
    
    Signed-off-by: raiden00pl <[email protected]>
---
 arch/arm/Kconfig                  |    3 +
 arch/arm/src/common/stm32/Kconfig | 1307 +++++++++++++++++++++++++++++++++++++
 arch/arm/src/stm32/Kconfig        | 1034 +----------------------------
 3 files changed, 1335 insertions(+), 1009 deletions(-)

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 4eb585a6d76..f5d75cd9c05 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -1839,6 +1839,9 @@ endif
 if ARCH_CHIP_STM32WL5
 source "arch/arm/src/stm32wl5/Kconfig"
 endif
+if ARCH_CHIP_STM32
+source "arch/arm/src/common/stm32/Kconfig"
+endif
 if ARCH_CHIP_STR71X
 source "arch/arm/src/str71x/Kconfig"
 endif
diff --git a/arch/arm/src/common/stm32/Kconfig 
b/arch/arm/src/common/stm32/Kconfig
new file mode 100644
index 00000000000..37c61bcc2c9
--- /dev/null
+++ b/arch/arm/src/common/stm32/Kconfig
@@ -0,0 +1,1307 @@
+#
+# Common STM32 Kconfig options shared by STM32 families.
+#
+
+menu "Common STM32 Configuration Options"
+       depends on ARCH_CHIP_STM32
+
+config STM32_SERIALDRIVER
+       bool
+
+config STM32_1WIREDRIVER
+       bool
+
+config STM32_HCIUART
+       bool
+
+choice
+       prompt "JTAG Configuration"
+       default STM32_JTAG_DISABLE
+       ---help---
+               JTAG Enable settings (by default JTAG-DP and SW-DP are disabled)
+
+config STM32_JTAG_DISABLE
+       bool "Disable all JTAG clocking"
+
+config STM32_JTAG_FULL_ENABLE
+       bool "Enable full SWJ (JTAG-DP + SW-DP)"
+
+config STM32_JTAG_NOJNTRST_ENABLE
+       bool "Enable full SWJ (JTAG-DP + SW-DP) but without JNTRST"
+
+config STM32_JTAG_SW_ENABLE
+       bool "Set JTAG-DP disabled and SW-DP enabled"
+
+endchoice
+
+choice
+       prompt "Select TIM1 ADC channel"
+       depends on STM32_TIM1_ADC
+       default STM32_TIM1_ADC1
+
+config STM32_TIM1_ADC1
+       bool "TIM1 ADC channel 1"
+       depends on STM32_ADC1
+       select STM32_HAVE_ADC1_TIMER
+       ---help---
+               Reserve TIM1 to trigger ADC1
+
+config STM32_TIM1_ADC2
+       bool "TIM1 ADC channel 2"
+       depends on STM32_ADC2
+       select STM32_HAVE_ADC2_TIMER
+       ---help---
+               Reserve TIM1 to trigger ADC2
+
+config STM32_TIM1_ADC3
+       bool "TIM1 ADC channel 3"
+       depends on STM32_ADC3
+       select STM32_HAVE_ADC3_TIMER
+       ---help---
+               Reserve TIM1 to trigger ADC3
+
+endchoice
+
+choice
+       prompt "Select TIM2 ADC channel"
+       depends on STM32_TIM2_ADC
+       default STM32_TIM2_ADC1
+
+config STM32_TIM2_ADC1
+       bool "TIM2 ADC channel 1"
+       depends on STM32_ADC1
+       select STM32_HAVE_ADC1_TIMER
+       ---help---
+               Reserve TIM2 to trigger ADC1
+
+config STM32_TIM2_ADC2
+       bool "TIM2 ADC channel 2"
+       depends on STM32_ADC2
+       select STM32_HAVE_ADC2_TIMER
+       ---help---
+               Reserve TIM2 to trigger ADC2
+
+config STM32_TIM2_ADC3
+       bool "TIM2 ADC channel 3"
+       depends on STM32_ADC3
+       select STM32_HAVE_ADC3_TIMER
+       ---help---
+               Reserve TIM2 to trigger ADC3
+
+endchoice
+
+choice
+       prompt "Select TIM3 ADC channel"
+       depends on STM32_TIM3_ADC
+       default STM32_TIM3_ADC1
+
+config STM32_TIM3_ADC1
+       bool "TIM3 ADC channel 1"
+       depends on STM32_ADC1
+       select STM32_HAVE_ADC1_TIMER
+       ---help---
+               Reserve TIM3 to trigger ADC1
+
+config STM32_TIM3_ADC2
+       bool "TIM3 ADC channel 2"
+       depends on STM32_ADC2
+       select STM32_HAVE_ADC2_TIMER
+       ---help---
+               Reserve TIM3 to trigger ADC2
+
+config STM32_TIM3_ADC3
+       bool "TIM3 ADC channel 3"
+       depends on STM32_ADC3
+       select STM32_HAVE_ADC3_TIMER
+       ---help---
+               Reserve TIM3 to trigger ADC3
+
+endchoice
+
+choice
+       prompt "Select TIM4 ADC channel"
+       depends on STM32_TIM4_ADC
+       default STM32_TIM4_ADC1
+
+config STM32_TIM4_ADC1
+       bool "TIM4 ADC channel 1"
+       depends on STM32_ADC1
+       select STM32_HAVE_ADC1_TIMER
+       ---help---
+               Reserve TIM4 to trigger ADC1
+
+config STM32_TIM4_ADC2
+       bool "TIM4 ADC channel 2"
+       depends on STM32_ADC2
+       select STM32_HAVE_ADC2_TIMER
+       ---help---
+               Reserve TIM4 to trigger ADC2
+
+config STM32_TIM4_ADC3
+       bool "TIM4 ADC channel 3"
+       depends on STM32_ADC3
+       select STM32_HAVE_ADC3_TIMER
+       ---help---
+               Reserve TIM4 to trigger ADC3
+
+endchoice
+
+choice
+       prompt "Select TIM5 ADC channel"
+       depends on STM32_TIM5_ADC
+       default STM32_TIM5_ADC1
+
+config STM32_TIM5_ADC1
+       bool "TIM5 ADC channel 1"
+       depends on STM32_ADC1
+       select STM32_HAVE_ADC1_TIMER
+       ---help---
+               Reserve TIM5 to trigger ADC1
+
+config STM32_TIM5_ADC2
+       bool "TIM5 ADC channel 2"
+       depends on STM32_ADC2
+       select STM32_HAVE_ADC2_TIMER
+       ---help---
+               Reserve TIM5 to trigger ADC2
+
+config STM32_TIM5_ADC3
+       bool "TIM5 ADC channel 3"
+       depends on STM32_ADC3
+       select STM32_HAVE_ADC3_TIMER
+       ---help---
+               Reserve TIM5 to trigger ADC3
+
+endchoice
+
+choice
+       prompt "Select TIM8 ADC channel"
+       depends on STM32_TIM8_ADC
+       default STM32_TIM8_ADC1
+
+config STM32_TIM8_ADC1
+       bool "TIM8 ADC channel 1"
+       depends on STM32_ADC1
+       select STM32_HAVE_ADC1_TIMER
+       ---help---
+               Reserve TIM8 to trigger ADC1
+
+config STM32_TIM8_ADC2
+       bool "TIM8 ADC channel 2"
+       depends on STM32_ADC2
+       select STM32_HAVE_ADC2_TIMER
+       ---help---
+               Reserve TIM8 to trigger ADC2
+
+config STM32_TIM8_ADC3
+       bool "TIM8 ADC channel 3"
+       depends on STM32_ADC3
+       select STM32_HAVE_ADC3_TIMER
+       ---help---
+               Reserve TIM8 to trigger ADC3
+
+endchoice
+
+choice
+       prompt "Select TIM1 DAC channel"
+       depends on STM32_TIM1_DAC
+       default STM32_TIM1_DAC1
+
+config STM32_TIM1_DAC1
+       bool "TIM1 DAC channel 1"
+       ---help---
+               Reserve TIM1 to trigger DAC1
+
+config STM32_TIM1_DAC2
+       bool "TIM1 DAC channel 2"
+       ---help---
+               Reserve TIM1 to trigger DAC2
+
+endchoice
+
+choice
+       prompt "Select TIM2 DAC channel"
+       depends on STM32_TIM2_DAC
+       default STM32_TIM2_DAC1
+
+config STM32_TIM2_DAC1
+       bool "TIM2 DAC channel 1"
+       ---help---
+               Reserve TIM2 to trigger DAC1
+
+config STM32_TIM2_DAC2
+       bool "TIM2 DAC channel 2"
+       ---help---
+               Reserve TIM2 to trigger DAC2
+
+endchoice
+
+choice
+       prompt "Select TIM3 DAC channel"
+       depends on STM32_TIM3_DAC
+       default STM32_TIM3_DAC1
+
+config STM32_TIM3_DAC1
+       bool "TIM3 DAC channel 1"
+       ---help---
+               Reserve TIM3 to trigger DAC1
+
+config STM32_TIM3_DAC2
+       bool "TIM3 DAC channel 2"
+       ---help---
+               Reserve TIM3 to trigger DAC2
+
+endchoice
+
+choice
+       prompt "Select TIM4 DAC channel"
+       depends on STM32_TIM4_DAC
+       default STM32_TIM4_DAC1
+
+config STM32_TIM4_DAC1
+       bool "TIM4 DAC channel 1"
+       ---help---
+               Reserve TIM4 to trigger DAC1
+
+config STM32_TIM4_DAC2
+       bool "TIM4 DAC channel 2"
+       ---help---
+               Reserve TIM4 to trigger DAC2
+
+endchoice
+
+choice
+       prompt "Select TIM5 DAC channel"
+       depends on STM32_TIM5_DAC
+       default STM32_TIM5_DAC1
+
+config STM32_TIM5_DAC1
+       bool "TIM5 DAC channel 1"
+       ---help---
+               Reserve TIM5 to trigger DAC1
+
+config STM32_TIM5_DAC2
+       bool "TIM5 DAC channel 2"
+       ---help---
+               Reserve TIM5 to trigger DAC2
+
+endchoice
+
+choice
+       prompt "Select TIM6 DAC channel"
+       depends on STM32_TIM6_DAC
+       default STM32_TIM6_DAC1
+
+config STM32_TIM6_DAC1
+       bool "TIM6 DAC channel 1"
+       ---help---
+               Reserve TIM6 to trigger DAC1
+
+config STM32_TIM6_DAC2
+       bool "TIM6 DAC channel 2"
+       ---help---
+               Reserve TIM6 to trigger DAC2
+
+endchoice
+
+choice
+       prompt "Select TIM7 DAC channel"
+       depends on STM32_TIM7_DAC
+       default STM32_TIM7_DAC1
+
+config STM32_TIM7_DAC1
+       bool "TIM7 DAC channel 1"
+       ---help---
+               Reserve TIM7 to trigger DAC1
+
+config STM32_TIM7_DAC2
+       bool "TIM7 DAC channel 2"
+       ---help---
+               Reserve TIM7 to trigger DAC2
+
+endchoice
+
+choice
+       prompt "Select TIM8 DAC channel"
+       depends on STM32_TIM8_DAC
+       default STM32_TIM8_DAC1
+
+config STM32_TIM8_DAC1
+       bool "TIM8 DAC channel 1"
+       ---help---
+               Reserve TIM8 to trigger DAC1
+
+config STM32_TIM8_DAC2
+       bool "TIM8 DAC channel 2"
+       ---help---
+               Reserve TIM8 to trigger DAC2
+
+endchoice
+
+choice
+       prompt "Select TIM9 DAC channel"
+       depends on STM32_TIM9_DAC
+       default STM32_TIM9_DAC1
+
+config STM32_TIM9_DAC1
+       bool "TIM9 DAC channel 1"
+       ---help---
+               Reserve TIM9 to trigger DAC1
+
+config STM32_TIM9_DAC2
+       bool "TIM9 DAC channel 2"
+       ---help---
+               Reserve TIM9 to trigger DAC2
+
+endchoice
+
+choice
+       prompt "Select TIM10 DAC channel"
+       depends on STM32_TIM10_DAC
+       default STM32_TIM10_DAC1
+
+config STM32_TIM10_DAC1
+       bool "TIM10 DAC channel 1"
+       ---help---
+               Reserve TIM10 to trigger DAC1
+
+config STM32_TIM10_DAC2
+       bool "TIM10 DAC channel 2"
+       ---help---
+               Reserve TIM10 to trigger DAC2
+
+endchoice
+
+choice
+       prompt "Select TIM11 DAC channel"
+       depends on STM32_TIM11_DAC
+       default STM32_TIM11_DAC1
+
+config STM32_TIM11_DAC1
+       bool "TIM11 DAC channel 1"
+       ---help---
+               Reserve TIM11 to trigger DAC1
+
+config STM32_TIM11_DAC2
+       bool "TIM11 DAC channel 2"
+       ---help---
+               Reserve TIM11 to trigger DAC2
+
+endchoice
+
+choice
+       prompt "Select TIM12 DAC channel"
+       depends on STM32_TIM12_DAC
+       default STM32_TIM12_DAC1
+
+config STM32_TIM12_DAC1
+       bool "TIM12 DAC channel 1"
+       ---help---
+               Reserve TIM12 to trigger DAC1
+
+config STM32_TIM12_DAC2
+       bool "TIM12 DAC channel 2"
+       ---help---
+               Reserve TIM12 to trigger DAC2
+
+endchoice
+
+choice
+       prompt "Select TIM13 DAC channel"
+       depends on STM32_TIM13_DAC
+       default STM32_TIM13_DAC1
+
+config STM32_TIM13_DAC1
+       bool "TIM13 DAC channel 1"
+       ---help---
+               Reserve TIM13 to trigger DAC1
+
+config STM32_TIM13_DAC2
+       bool "TIM13 DAC channel 2"
+       ---help---
+               Reserve TIM13 to trigger DAC2
+
+endchoice
+
+choice
+       prompt "Select TIM14 DAC channel"
+       depends on STM32_TIM14_DAC
+       default STM32_TIM14_DAC1
+
+config STM32_TIM14_DAC1
+       bool "TIM14 DAC channel 1"
+       ---help---
+               Reserve TIM14 to trigger DAC1
+
+config STM32_TIM14_DAC2
+       bool "TIM14 DAC channel 2"
+       ---help---
+               Reserve TIM14 to trigger DAC2
+
+endchoice
+
+choice
+       prompt "USART1 Driver Configuration"
+       depends on STM32_USART1
+       default STM32_USART1_SERIALDRIVER
+
+config STM32_USART1_SERIALDRIVER
+       bool "Standard serial driver"
+       select USART1_SERIALDRIVER
+       select ARCH_HAVE_SERIAL_TERMIOS
+       select STM32_SERIALDRIVER
+
+config STM32_USART1_1WIREDRIVER
+       bool "1-Wire driver"
+       select STM32_1WIREDRIVER
+
+config STM32_USART1_HCIUART
+       bool "Bluetooth HCI-UART"
+       select STM32_HCIUART
+       depends on WIRELESS_BLUETOOTH
+
+endchoice # USART1 Driver Configuration
+
+choice
+       prompt "USART2 Driver Configuration"
+       depends on STM32_USART2
+       default STM32_USART2_SERIALDRIVER
+
+config STM32_USART2_SERIALDRIVER
+       bool "Standard serial driver"
+       select USART2_SERIALDRIVER
+       select ARCH_HAVE_SERIAL_TERMIOS
+       select STM32_SERIALDRIVER
+
+config STM32_USART2_1WIREDRIVER
+       bool "1-Wire driver"
+       select STM32_1WIREDRIVER
+
+config STM32_USART2_HCIUART
+       bool "Bluetooth HCI-UART"
+       select STM32_HCIUART
+       depends on WIRELESS_BLUETOOTH
+
+endchoice # USART2 Driver Configuration
+
+choice
+       prompt "USART3 Driver Configuration"
+       depends on STM32_USART3
+       default STM32_USART3_SERIALDRIVER
+
+config STM32_USART3_SERIALDRIVER
+       bool "Standard serial driver"
+       select USART3_SERIALDRIVER
+       select ARCH_HAVE_SERIAL_TERMIOS
+       select STM32_SERIALDRIVER
+
+config STM32_USART3_1WIREDRIVER
+       bool "1-Wire driver"
+       select STM32_1WIREDRIVER
+
+config STM32_USART3_HCIUART
+       bool "Bluetooth HCI-UART"
+       select STM32_HCIUART
+       depends on WIRELESS_BLUETOOTH
+
+endchoice # USART3 Driver Configuration
+
+choice
+       prompt "UART4 Driver Configuration"
+       depends on STM32_UART4
+       default STM32_UART4_SERIALDRIVER
+
+config STM32_UART4_SERIALDRIVER
+       bool "Standard serial driver"
+       select UART4_SERIALDRIVER
+       select ARCH_HAVE_SERIAL_TERMIOS
+       select STM32_SERIALDRIVER
+
+config STM32_UART4_1WIREDRIVER
+       bool "1-Wire driver"
+       select STM32_1WIREDRIVER
+
+endchoice # UART1 Driver Configuration
+
+choice
+       prompt "UART5 Driver Configuration"
+       depends on STM32_UART5
+       default STM32_UART5_SERIALDRIVER
+
+config STM32_UART5_SERIALDRIVER
+       bool "Standard serial driver"
+       select UART5_SERIALDRIVER
+       select ARCH_HAVE_SERIAL_TERMIOS
+       select STM32_SERIALDRIVER
+
+config STM32_UART5_1WIREDRIVER
+       bool "1-Wire driver"
+       select STM32_1WIREDRIVER
+
+endchoice # UART5 Driver Configuration
+
+choice
+       prompt "USART6 Driver Configuration"
+       depends on STM32_USART6
+       default STM32_USART6_SERIALDRIVER
+
+config STM32_USART6_SERIALDRIVER
+       bool "Standard serial driver"
+       select USART6_SERIALDRIVER
+       select ARCH_HAVE_SERIAL_TERMIOS
+       select STM32_SERIALDRIVER
+
+config STM32_USART6_1WIREDRIVER
+       bool "1-Wire driver"
+       select STM32_1WIREDRIVER
+
+config STM32_USART6_HCIUART
+       bool "Bluetooth HCI-UART"
+       select STM32_HCIUART
+       depends on WIRELESS_BLUETOOTH
+
+endchoice # USART6 Driver Configuration
+
+choice
+       prompt "LPUART1 Driver Configuration"
+       depends on STM32_LPUART1
+       default STM32_LPUART1_SERIALDRIVER
+
+config STM32_LPUART1_SERIALDRIVER
+       bool "Standard serial driver"
+       select LPUART1_SERIALDRIVER
+       select ARCH_HAVE_SERIAL_TERMIOS
+       select STM32_SERIALDRIVER
+
+config STM32_LPUART1_1WIREDRIVER
+       bool "1-Wire driver"
+       select STM32_1WIREDRIVER
+
+endchoice # LPUART1 Driver Configuration
+
+choice
+       prompt "RTC clock source"
+       depends on STM32_RTC
+       default STM32_RTC_LSECLOCK
+
+config STM32_RTC_LSECLOCK
+       bool "LSE clock"
+       ---help---
+               Drive the RTC with the LSE clock
+
+config STM32_RTC_LSICLOCK
+       bool "LSI clock"
+       ---help---
+               Drive the RTC with the LSI clock
+
+config STM32_RTC_HSECLOCK
+       bool "HSE clock"
+       ---help---
+               Drive the RTC with the HSE clock, divided down to 1MHz.
+
+endchoice # RTC clock source
+
+choice
+       prompt "MII clock configuration"
+       depends on STM32_MII
+       default STM32_MII_MCO if STM32_STM32F10XX
+       default STM32_MII_MCO1 if STM32_STM32F20XX || STM32_STM32F4XXX
+       default STM32_MII_EXTCLK
+
+config STM32_MII_MCO
+       bool "Use MC0 as MII clock"
+       depends on STM32_STM32F10XX
+       ---help---
+               Use MCO to clock the MII interface.  Default:  Use MC0
+
+config STM32_MII_MCO1
+       bool "Use MC01 as MII clock"
+       depends on (STM32_STM32F20XX || STM32_STM32F4XXX)
+       ---help---
+               Use MCO1 to clock the MII interface.  Default:  Use MC01
+
+config STM32_MII_MCO2
+       bool "Use MC02 as MII clock"
+       depends on (STM32_STM32F20XX || STM32_STM32F4XXX)
+       ---help---
+               Use MCO2 to clock the MII interface.  Default:  Use MC01
+
+config STM32_MII_EXTCLK
+       bool "External MII clock"
+       ---help---
+               Clocking is provided by external logic.  Don't use MCO for MII
+               clock.  Default:  Use MC0[1]
+
+endchoice
+
+choice
+       prompt "RMII clock configuration"
+       depends on STM32_RMII
+       default STM32_RMII_MCO if STM32_STM32F10XX
+       default STM32_RMII_MCO1 if STM32_STM32F20XX || STM32_STM32F4XXX
+       default STM32_RMII_EXTCLK
+
+config STM32_RMII_MCO
+       bool "Use MC0 as RMII clock"
+       depends on STM32_STM32F10XX
+       ---help---
+               Use MCO to clock the RMII interface.  Default:  Use MC0
+
+config STM32_RMII_MCO1
+       bool "Use MC01 as RMII clock"
+       depends on (STM32_STM32F20XX || STM32_STM32F4XXX)
+       ---help---
+               Use MCO1 to clock the RMII interface.  Default:  Use MC01
+
+config STM32_RMII_MCO2
+       bool "Use MC02 as RMII clock"
+       depends on (STM32_STM32F20XX || STM32_STM32F4XXX)
+       ---help---
+               Use MCO2 to clock the RMII interface.  Default:  Use MC01
+
+config STM32_RMII_EXTCLK
+       bool "External RMII clock"
+       ---help---
+               Clocking is provided by external logic.  Don't use MCO for RMII
+               clock.  Default:  Use MC0[1]
+
+endchoice
+
+choice
+       prompt "CAN character driver or SocketCAN support"
+       depends on STM32_CAN
+       default STM32_CAN_CHARDRIVER
+
+config STM32_CAN_CHARDRIVER
+       bool "STM32F7 CAN character driver support"
+       select ARCH_HAVE_CAN_ERRORS
+       select CAN
+
+config STM32_CAN_SOCKET
+       bool "STM32F7 CAN SocketCAN support"
+       select NET_CAN_HAVE_ERRORS
+
+endchoice # CAN character driver or SocketCAN support
+
+choice
+       prompt "FDCAN character driver or SocketCAN support"
+       depends on STM32_FDCAN
+       default STM32_FDCAN_CHARDRIVER
+
+config STM32_FDCAN_CHARDRIVER
+       bool "STM32 FDCAN character driver support"
+       select ARCH_HAVE_CAN_ERRORS
+       select CAN
+
+config STM32_FDCAN_SOCKET
+       bool "STM32 FDCAN SocketCAN support"
+       select NET_CAN_HAVE_ERRORS
+       select NET_CAN_HAVE_CANFD
+
+endchoice # FDCAN character driver or SocketCAN support
+
+choice
+       prompt "FDCAN1 frame format"
+       depends on STM32_FDCAN1
+       default STM32_FDCAN1_ISO11898_1
+
+config STM32_FDCAN1_ISO11898_1
+       bool "ISO11898-1"
+       ---help---
+               Enable ISO11898-1 frame format
+
+config STM32_FDCAN1_NONISO_FORMAT
+       bool "Non ISO"
+       ---help---
+               Enable Non ISO, Bosch CAN FD Specification V1.0
+
+endchoice # FDCAN1 frame format
+
+choice
+       prompt "FDCAN1 mode"
+       depends on STM32_FDCAN1
+       default STM32_FDCAN1_CLASSIC
+
+config STM32_FDCAN1_CLASSIC
+       bool "Classic CAN"
+       ---help---
+               Enable Classic CAN mode
+
+config STM32_FDCAN1_FD
+       bool "CAN FD"
+       depends on CAN_FD || NET_CAN_CANFD
+       ---help---
+               Enable CAN FD mode
+
+config STM32_FDCAN1_FD_BRS
+       bool "CAN FD with fast bit rate switching"
+       depends on CAN_FD || NET_CAN_CANFD
+       ---help---
+               Enable CAN FD mode with fast bit rate switching mode.
+
+endchoice # FDCAN1 mode
+
+choice
+       prompt "FDCAN2 frame format"
+       depends on STM32_FDCAN2
+       default STM32_FDCAN2_ISO11898_1
+
+config STM32_FDCAN2_ISO11898_1
+       bool "ISO11898-1"
+       ---help---
+               Enable ISO11898-1 frame format
+
+config STM32_FDCAN2_NONISO_FORMAT
+       bool "Non ISO"
+       ---help---
+               Enable Non ISO, Bosch CAN FD Specification V1.0
+
+endchoice # FDCAN2 frame format
+
+choice
+       prompt "FDCAN2 mode"
+       depends on STM32_FDCAN2
+       default STM32_FDCAN2_CLASSIC
+
+config STM32_FDCAN2_CLASSIC
+       bool "Classic CAN"
+       ---help---
+               Enable Classic CAN mode
+
+config STM32_FDCAN2_FD
+       bool "CAN FD"
+       depends on CAN_FD || NET_CAN_CANFD
+       ---help---
+               Enable CAN FD mode
+
+config STM32_FDCAN2_FD_BRS
+       bool "CAN FD with fast bit rate switching"
+       depends on CAN_FD || NET_CAN_CANFD
+       ---help---
+               Enable CAN FD mode with fast bit rate switching mode.
+
+endchoice # FDCAN2 mode
+
+choice
+       prompt "Layer 1 color format"
+       depends on STM32_LTDC
+       default STM32_LTDC_L1_RGB565
+
+config STM32_LTDC_L1_L8
+       bool "8 bpp L8 (8-bit CLUT)"
+       depends on STM32_FB_CMAP
+
+config STM32_LTDC_L1_AL44
+       bool "8 bpp AL44 (4-bit alpha + 4-bit CLUT)"
+       depends on STM32_FB_CMAP
+
+config STM32_LTDC_L1_AL88
+       bool "16 bpp AL88 (8-bit alpha + 8-bit CLUT)"
+       depends on STM32_FB_CMAP
+
+config STM32_LTDC_L1_RGB565
+       bool "16 bpp RGB 565"
+       depends on !STM32_FB_CMAP
+
+config STM32_LTDC_L1_ARGB4444
+       bool "16 bpp ARGB 4444"
+       depends on !STM32_FB_CMAP
+
+config STM32_LTDC_L1_ARGB1555
+       bool "16 bpp ARGB 1555"
+       depends on !STM32_FB_CMAP
+
+config STM32_LTDC_L1_RGB888
+       bool "24 bpp RGB 888"
+       depends on !STM32_FB_CMAP
+
+config STM32_LTDC_L1_ARGB8888
+       bool "32 bpp ARGB 8888"
+       depends on !STM32_FB_CMAP
+
+endchoice # Layer 1 color format
+
+choice
+       prompt "Layer 2 (top layer) color format"
+       depends on STM32_LTDC && STM32_LTDC_L2
+       default STM32_LTDC_L2_RGB565
+
+config STM32_LTDC_L2_L8
+       bool "8 bpp L8 (8-bit CLUT)"
+       depends on STM32_LTDC_L1_L8
+
+config STM32_LTDC_L2_AL44
+       bool "8 bpp AL44 (4-bit alpha + 4-bit CLUT)"
+       depends on STM32_LTDC_L1_AL44
+
+config STM32_LTDC_L2_AL88
+       bool "16 bpp AL88 (8-bit alpha + 8-bit CLUT)"
+       depends on STM32_LTDC_L1_AL88
+
+config STM32_LTDC_L2_RGB565
+       bool "16 bpp RGB 565"
+       depends on STM32_LTDC_L1_RGB565
+
+config STM32_LTDC_L2_ARGB4444
+       bool "16 bpp ARGB 4444"
+       depends on STM32_LTDC_L1_ARGB4444
+
+config STM32_LTDC_L2_ARGB1555
+       bool "16 bpp ARGB 1555"
+       depends on STM32_LTDC_L1_ARGB1555
+
+config STM32_LTDC_L2_RGB888
+       bool "24 bpp RGB 888"
+       depends on STM32_LTDC_L1_RGB888
+
+config STM32_LTDC_L2_ARGB8888
+       bool "32 bpp ARGB 8888"
+       depends on STM32_LTDC_L1_ARGB8888
+
+endchoice # Layer 2 color format
+
+choice
+       prompt "Input channel sampling frequency"
+       depends on STM32_QENCODER_FILTER
+       default STM32_QENCODER_SAMPLE_FDTS_4
+
+config STM32_QENCODER_SAMPLE_FDTS
+       bool "fDTS"
+
+config STM32_QENCODER_SAMPLE_CKINT
+       bool "fCK_INT"
+
+config STM32_QENCODER_SAMPLE_FDTS_2
+       bool "fDTS/2"
+
+config STM32_QENCODER_SAMPLE_FDTS_4
+       bool "fDTS/4"
+
+config STM32_QENCODER_SAMPLE_FDTS_8
+       bool "fDTS/8"
+
+config STM32_QENCODER_SAMPLE_FDTS_16
+       bool "fDTS/16"
+
+config STM32_QENCODER_SAMPLE_FDTS_32
+       bool "fDTS/32"
+
+endchoice
+
+choice
+       prompt "Input channel event count"
+       depends on STM32_QENCODER_FILTER
+       default STM32_QENCODER_SAMPLE_EVENT_6
+
+config STM32_QENCODER_SAMPLE_EVENT_1
+       bool "1"
+       depends on STM32_QENCODER_SAMPLE_FDTS
+
+config STM32_QENCODER_SAMPLE_EVENT_2
+       bool "2"
+       depends on STM32_QENCODER_SAMPLE_CKINT
+
+config STM32_QENCODER_SAMPLE_EVENT_4
+       bool "4"
+       depends on STM32_QENCODER_SAMPLE_CKINT
+
+config STM32_QENCODER_SAMPLE_EVENT_5
+       bool "5"
+       depends on STM32_QENCODER_SAMPLE_FDTS_16 || 
STM32_QENCODER_SAMPLE_FDTS_32
+
+config STM32_QENCODER_SAMPLE_EVENT_6
+       bool "6"
+       depends on !STM32_QENCODER_SAMPLE_FDTS && !STM32_QENCODER_SAMPLE_CKINT
+
+config STM32_QENCODER_SAMPLE_EVENT_8
+       bool "8"
+       depends on !STM32_QENCODER_SAMPLE_FDTS
+
+endchoice
+
+choice
+       prompt "FOC ADC trigger selection"
+       depends on STM32_FOC
+       default STM32_FOC_ADC_TRGO
+
+config STM32_FOC_ADC_CCR4
+       bool "FOC uses CCR4 as ADC trigger"
+       ---help---
+               This option uses the software frequency prescaler and is
+               not possible for 4-phase output.
+
+config STM32_FOC_ADC_TRGO
+       bool "FOC uses TRGO as ADC trigger"
+       depends on STM32_HAVE_IP_ADC_V2 || (STM32_HAVE_IP_ADC_V1 && 
!STM32_FOC_FOC1)
+       select STM32_PWM_TRGO
+       ---help---
+               This option allows you to use higher PWM frequency and works 
for 4-phase output.
+               It is not possible for ADC IPv1 if FOC1 enabled (no T8TRGO in 
JEXTSEL).
+
+endchoice # "FOC ADC trigger selection"
+
+choice
+       prompt "FOC0 device ADC selection"
+       depends on STM32_FOC_FOC0
+       default STM32_FOC_FOC0_ADC1
+
+config STM32_FOC_FOC0_ADC1
+       bool "FOC0 uses ADC1"
+       depends on STM32_HAVE_ADC1
+       select STM32_FOC_USE_ADC1
+
+config STM32_FOC_FOC0_ADC2
+       bool "FOC0 uses ADC2"
+       depends on STM32_HAVE_ADC2
+       select STM32_FOC_USE_ADC2
+
+config STM32_FOC_FOC0_ADC3
+       bool "FOC0 uses ADC3"
+       depends on STM32_HAVE_ADC3
+       select STM32_FOC_USE_ADC3
+
+config STM32_FOC_FOC0_ADC4
+       bool "FOC0 uses ADC4"
+       depends on STM32_HAVE_ADC4
+       select STM32_FOC_USE_ADC4
+
+endchoice # "FOC0 device ADC selection"
+
+choice
+       prompt "FOC1 device ADC selection"
+       depends on STM32_FOC_FOC1
+       default STM32_FOC_FOC1_ADC2
+
+config STM32_FOC_FOC1_ADC1
+       bool "FOC1 uses ADC1"
+       depends on STM32_HAVE_ADC1
+       select STM32_FOC_USE_ADC1
+
+config STM32_FOC_FOC1_ADC2
+       bool "FOC1 uses ADC2"
+       depends on STM32_HAVE_ADC2
+       select STM32_FOC_USE_ADC2
+
+config STM32_FOC_FOC1_ADC3
+       bool "FOC1 uses ADC3"
+       depends on STM32_HAVE_ADC3
+       select STM32_FOC_USE_ADC3
+
+config STM32_FOC_FOC1_ADC4
+       bool "FOC1 uses ADC4"
+       depends on STM32_HAVE_ADC4
+       select STM32_FOC_USE_ADC4
+
+endchoice # "FOC0 device ADC selection"
+
+choice
+       prompt "Override Flash Size Designator"
+       default STM32_FLASH_OVERRIDE_DEFAULT
+       ---help---
+               STM32F series parts numbering (sans the package type) ends with 
a number or letter
+               that designates the FLASH size.
+
+                       Designator  Size in KiB
+                               4    16
+                               6    32
+                               8    64
+                               B    128
+                               C    256
+                               D    384
+                               E    512
+                               F    768
+                               G    1024
+                               I    2048
+
+               This configuration option defaults to using the configuration 
based on that designator
+               or the default smaller size if there is no last character 
designator is present in the
+               STM32 Chip Selection.
+
+               Examples:
+                       If the STM32G071RB is chosen, the Flash configuration 
would be 'B', if a variant of
+                       the part with a  2048 KiB Flash is released in the 
future one could simply select
+                       the 'I' designator here.
+
+config STM32_FLASH_OVERRIDE_4
+       bool "4 16KiB"
+
+config STM32_FLASH_OVERRIDE_6
+       bool "6 32KiB"
+
+config STM32_FLASH_OVERRIDE_8
+       bool "8 64KiB"
+
+config STM32_FLASH_OVERRIDE_B
+       bool "B 128KiB"
+
+config STM32_FLASH_OVERRIDE_C
+       bool "C 256KiB"
+
+config STM32_FLASH_OVERRIDE_D
+       bool "D 384KiB"
+
+config STM32_FLASH_OVERRIDE_E
+       bool "E 512KiB"
+
+config STM32_FLASH_OVERRIDE_F
+       bool "F 768KiB"
+
+config STM32_FLASH_OVERRIDE_G
+       bool "G 1024KiB"
+
+config STM32_FLASH_OVERRIDE_I
+       bool "I 2048KiB"
+
+config STM32_FLASH_OVERRIDE_DEFAULT
+       bool "Default"
+
+config STM32_FLASH_OVERRIDE_C_256
+       bool "C 256 KB"
+
+config STM32_FLASH_OVERRIDE_C_320
+       bool "C 320 KB"
+
+config STM32_FLASH_OVERRIDE_E_512
+       bool "E 512 KB"
+
+config STM32_FLASH_OVERRIDE_Y_640
+       bool "Y 640 KB"
+
+config STM32_FLASH_OVERRIDE_G_1024
+       bool "G 1024 KB"
+
+endchoice # Override Flash Size Designator
+
+choice
+       prompt "Select TIM15 ADC channel"
+       depends on STM32_TIM15_ADC
+       default STM32_TIM15_ADC1
+
+config STM32_TIM15_ADC1
+       bool "TIM15 ADC channel 1"
+       depends on STM32_ADC1
+       select STM32_HAVE_ADC1_TIMER
+       ---help---
+               Reserve TIM15 to trigger ADC1
+
+config STM32_TIM15_ADC2
+       bool "TIM15 ADC channel 2"
+       depends on STM32_ADC2
+       select STM32_HAVE_ADC2_TIMER
+       ---help---
+               Reserve TIM15 to trigger ADC2
+
+config STM32_TIM15_ADC3
+       bool "TIM15 ADC channel 3"
+       depends on STM32_ADC3
+       select STM32_HAVE_ADC3_TIMER
+       ---help---
+               Reserve TIM15 to trigger ADC3
+
+endchoice
+
+choice
+       prompt "Transfer technique"
+       depends on STM32_QSPI
+       default STM32_QSPI_DMA
+       ---help---
+               You can choose between using polling, interrupts, or DMA to 
transfer data
+               over the QSPI interface.
+
+config STM32_QSPI_POLLING
+       bool "Polling"
+       ---help---
+               Use conventional register I/O with status polling to transfer 
data.
+
+config STM32_QSPI_INTERRUPTS
+       bool "Interrupts"
+       ---help---
+               User interrupt driven I/O transfers.
+
+config STM32_QSPI_DMA
+       bool "DMA"
+       depends on STM32_DMA
+       ---help---
+               Use DMA to improve QSPI transfer performance.
+
+endchoice
+
+choice
+       prompt "Bank selection"
+       depends on STM32_QSPI
+       default STM32_QSPI_MODE_BANK1
+       ---help---
+               You can choose between using polling, interrupts, or DMA to 
transfer data
+               over the QSPI interface.
+
+config STM32_QSPI_MODE_BANK1
+       bool "Bank 1"
+
+config STM32_QSPI_MODE_BANK2
+       bool "Bank 2"
+
+config STM32_QSPI_MODE_DUAL
+       bool "Dual Bank"
+
+endchoice
+
+choice
+       prompt "DMA Priority"
+       depends on STM32_QSPI && STM32_QSPI_DMA && STM32_DMA
+       default STM32_QSPI_DMAPRIORITY_MEDIUM
+       ---help---
+               The DMA controller supports priority levels.  You are probably 
fine
+               with the default of 'medium' except for special cases.  In the 
event
+               of contention between to channels at the same priority, the 
lower
+               numbered channel has hardware priority over the higher numbered 
one.
+
+config STM32_QSPI_DMAPRIORITY_VERYHIGH
+       bool "Very High priority"
+       depends on STM32_DMA
+       ---help---
+               'Highest' priority.
+
+config STM32_QSPI_DMAPRIORITY_HIGH
+       bool "High priority"
+       depends on STM32_DMA
+       ---help---
+               'High' priority.
+
+config STM32_QSPI_DMAPRIORITY_MEDIUM
+       bool "Medium priority"
+       depends on STM32_DMA
+       ---help---
+               'Medium' priority.
+
+config STM32_QSPI_DMAPRIORITY_LOW
+       bool "Low priority"
+       depends on STM32_DMA
+       ---help---
+               'Low' priority.
+
+endchoice
+
+choice
+       prompt "Operation mode"
+       depends on STM32_SAI
+       default STM32_SAI_DMA
+       ---help---
+               Select the operation mode the SAI driver should use.
+
+config STM32_SAI_POLLING
+       bool "Polling"
+       ---help---
+               The SAI registers are polled for events.
+
+config STM32_SAI_INTERRUPTS
+       bool "Interrupt"
+       ---help---
+               Select to enable interrupt driven SAI support.
+
+config STM32_SAI_DMA
+       bool "DMA"
+       ---help---
+               Use DMA to improve SAI transfer performance.
+
+endchoice # Operation mode
+
+choice
+       prompt "SAI1 synchronization enable"
+       depends on STM32_SAI1_A && STM32_SAI1_B
+       default STM32_SAI1_BOTH_ASYNC
+       ---help---
+               Select the synchronization mode of the SAI sub-blocks
+
+config STM32_SAI1_BOTH_ASYNC
+       bool "Both asynchronous"
+
+config STM32_SAI1_A_SYNC_WITH_B
+       bool "Block A is synchronous with Block B"
+
+config STM32_SAI1_B_SYNC_WITH_A
+       bool "Block B is synchronous with Block A"
+
+endchoice # SAI1 synchronization enable
+
+choice
+       prompt "SAI2 synchronization enable"
+       depends on STM32_SAI2_A && STM32_SAI2_B
+       default STM32_SAI2_BOTH_ASYNC
+       ---help---
+               Select the synchronization mode of the SAI sub-blocks
+
+config STM32_SAI2_BOTH_ASYNC
+       bool "Both asynchronous"
+
+config STM32_SAI2_A_SYNC_WITH_B
+       bool "Block A is synchronous with Block B"
+
+config STM32_SAI2_B_SYNC_WITH_A
+       bool "Block B is synchronous with Block A"
+
+endchoice # SAI2 synchronization enable
+
+choice
+       prompt "Select ADC for use with TIM6"
+       depends on STM32_TIM6_ADC
+       default STM32_TIM6_ADC1
+
+config STM32_TIM6_ADC1
+       bool "Use TIM6 for ADC1"
+       depends on STM32_ADC1
+       select STM32_HAVE_ADC1_TIMER
+       ---help---
+               Reserve TIM6 to trigger ADC1
+
+config STM32_TIM6_ADC2
+       bool "Use TIM6 for ADC2"
+       depends on STM32_ADC2
+       select STM32_HAVE_ADC2_TIMER
+       ---help---
+               Reserve TIM6 to trigger ADC2
+
+config STM32_TIM6_ADC3
+       bool "Use TIM6 for ADC3"
+       depends on STM32_ADC3
+       select STM32_HAVE_ADC3_TIMER
+       ---help---
+               Reserve TIM6 to trigger ADC3
+
+endchoice
+
+choice
+       prompt "LPTIM1 clock source"
+       default STM32_LPTIM1_CLK_APB1
+
+config STM32_LPTIM1_CLK_APB1
+       bool "Clock LPTIM1 from APB1"
+
+config STM32_LPTIM1_CLK_LSE
+       bool "Clock LPTIM1 from LSE"
+
+config STM32_LPTIM1_CLK_LSI
+       bool "Clock LPTIM1 from LSI"
+
+config STM32_LPTIM1_CLK_HSI
+       bool "Clock LPTIM1 from HSI"
+
+endchoice
+
+choice
+       prompt "LPTIM2 clock source"
+       default STM32_LPTIM2_CLK_APB1
+
+config STM32_LPTIM2_CLK_APB1
+       bool "Clock LPTIM2 from APB1"
+
+config STM32_LPTIM2_CLK_LSE
+       bool "Clock LPTIM2 from LSE"
+
+config STM32_LPTIM2_CLK_LSI
+       bool "Clock LPTIM2 from LSI"
+
+config STM32_LPTIM2_CLK_HSI
+       bool "Clock LPTIM2 from HSI"
+
+endchoice
+endmenu # Common STM32 Configuration Options
diff --git a/arch/arm/src/stm32/Kconfig b/arch/arm/src/stm32/Kconfig
index f9666d1c84e..b0315f1a414 100644
--- a/arch/arm/src/stm32/Kconfig
+++ b/arch/arm/src/stm32/Kconfig
@@ -1207,77 +1207,41 @@ config ARCH_CHIP_STM32G474V
 
 endchoice
 
-choice
-       prompt "Override Flash Size Designator"
-       default STM32_FLASH_CONFIG_DEFAULT
-       depends on ARCH_CHIP_STM32
-       ---help---
-               STM32F/STM32G/STM32L series parts numbering (sans the package 
type)
-               ends with a number or letter that designates the FLASH size.
-
-                               Designator  Size in KiB
-                                  4    16
-                                  6    32
-                                  8    64
-                                  B    128
-                                  Z    192
-                                  C    256
-                                  D    384
-                                  E    512
-                                  F    768
-                                  G    1024
-                                  I    2048
-
-               This configuration option defaults to using the configuration 
based
-               on that designator or the default smaller size if there is no 
last
-               character designator is present in the STM32 Chip Selection.
-
-               Examples:
-                  If the STM32F407VE is chosen, the Flash configuration would 
be
-                  'E', if a variant of the part with a 2048 KiB Flash is 
released
-                  in the future one could simply select the 'I' designator 
here.
-
-                  If an STM32F42xxx or  Series parts is chosen the default 
Flash
-                  configuration will be 'G' and can be set herein to 'I' to 
choose
-                  the larger FLASH part.
-
 config STM32_FLASH_CONFIG_DEFAULT
-       bool "Default"
+       bool
 
 config STM32_FLASH_CONFIG_4
-       bool "4 16KiB"
+       bool
 
 config STM32_FLASH_CONFIG_6
-       bool "6 32KiB"
+       bool
 
 config STM32_FLASH_CONFIG_8
-       bool "8 64KiB"
+       bool
 
 config STM32_FLASH_CONFIG_B
-       bool "B 128KiB"
+       bool
 
 config STM32_FLASH_CONFIG_Z
-       bool "Z 192KiB"
+       bool
 
 config STM32_FLASH_CONFIG_C
-       bool "C 256KiB"
+       bool
 
 config STM32_FLASH_CONFIG_D
-       bool "D 384KiB"
+       bool
 
 config STM32_FLASH_CONFIG_E
-       bool "E 512KiB"
+       bool
 
 config STM32_FLASH_CONFIG_F
-       bool "F 768KiB"
+       bool
 
 config STM32_FLASH_CONFIG_G
-       bool "G 1024KiB"
+       bool
 
 config STM32_FLASH_CONFIG_I
-       bool "I 2048KiB"
-
-endchoice
+       bool
 
 # This is really 15XX/16XX, but we treat the two the same.
 config STM32_STM32L15XX
@@ -2260,6 +2224,10 @@ config STM32_HAVE_LTDC
        bool
        default n
 
+config STM32_HAVE_USART2
+       bool
+       default n
+
 config STM32_HAVE_USART3
        bool
        default n
@@ -2504,6 +2472,10 @@ config STM32_HAVE_ETHMAC
        bool
        default n
 
+config STM32_HAVE_I2C1
+       bool
+       default n
+
 config STM32_HAVE_I2C2
        bool
        default n
@@ -2524,6 +2496,10 @@ config STM32_HAVE_LPUART1
        bool
        default n
 
+config STM32_HAVE_SPI1
+       bool
+       default n
+
 config STM32_HAVE_SPI2
        bool
        default n
@@ -3709,26 +3685,6 @@ config STM32_FLASH_PREFETCH
                on F1 parts).  Some early revisions of F4 parts do not support 
FLASH pre-fetch
                properly and enabling this option may interfere with ADC 
accuracy.
 
-choice
-       prompt "JTAG Configuration"
-       default STM32_JTAG_DISABLE
-       ---help---
-               JTAG Enable settings (by default JTAG-DP and SW-DP are disabled)
-
-config STM32_JTAG_DISABLE
-       bool "Disable all JTAG clocking"
-
-config STM32_JTAG_FULL_ENABLE
-       bool "Enable full SWJ (JTAG-DP + SW-DP)"
-
-config STM32_JTAG_NOJNTRST_ENABLE
-       bool "Enable full SWJ (JTAG-DP + SW-DP) but without JNTRST"
-
-config STM32_JTAG_SW_ENABLE
-       bool "Set JTAG-DP disabled and SW-DP enabled"
-
-endchoice
-
 config STM32_DISABLE_IDLE_SLEEP_DURING_DEBUG
        bool "Disable IDLE Sleep (WFI) in debug mode"
        default n
@@ -6131,34 +6087,6 @@ config STM32_TIM1_ADC
                for used by the ADC, but then you also have to configure which 
ADC
                channel it is assigned to.
 
-choice
-       prompt "Select TIM1 ADC channel"
-       default STM32_TIM1_ADC1
-       depends on STM32_TIM1_ADC
-
-config STM32_TIM1_ADC1
-       bool "TIM1 ADC channel 1"
-       depends on STM32_ADC1
-       select STM32_HAVE_ADC1_TIMER
-       ---help---
-               Reserve TIM1 to trigger ADC1
-
-config STM32_TIM1_ADC2
-       bool "TIM1 ADC channel 2"
-       depends on STM32_ADC2
-       select STM32_HAVE_ADC2_TIMER
-       ---help---
-               Reserve TIM1 to trigger ADC2
-
-config STM32_TIM1_ADC3
-       bool "TIM1 ADC channel 3"
-       depends on STM32_ADC3
-       select STM32_HAVE_ADC3_TIMER
-       ---help---
-               Reserve TIM1 to trigger ADC3
-
-endchoice
-
 config STM32_TIM2_ADC
        bool "TIM2 ADC"
        default n
@@ -6173,34 +6101,6 @@ config STM32_TIM2_ADC
                for used by the ADC, but then you also have to configure which 
ADC
                channel it is assigned to.
 
-choice
-       prompt "Select TIM2 ADC channel"
-       default STM32_TIM2_ADC1
-       depends on STM32_TIM2_ADC
-
-config STM32_TIM2_ADC1
-       bool "TIM2 ADC channel 1"
-       depends on STM32_ADC1
-       select STM32_HAVE_ADC1_TIMER
-       ---help---
-               Reserve TIM2 to trigger ADC1
-
-config STM32_TIM2_ADC2
-       bool "TIM2 ADC channel 2"
-       depends on STM32_ADC2
-       select STM32_HAVE_ADC2_TIMER
-       ---help---
-               Reserve TIM2 to trigger ADC2
-
-config STM32_TIM2_ADC3
-       bool "TIM2 ADC channel 3"
-       depends on STM32_ADC3
-       select STM32_HAVE_ADC3_TIMER
-       ---help---
-               Reserve TIM2 to trigger ADC3
-
-endchoice
-
 config STM32_TIM3_ADC
        bool "TIM3 ADC"
        default n
@@ -6215,34 +6115,6 @@ config STM32_TIM3_ADC
                for used by the ADC, but then you also have to configure which 
ADC
                channel it is assigned to.
 
-choice
-       prompt "Select TIM3 ADC channel"
-       default STM32_TIM3_ADC1
-       depends on STM32_TIM3_ADC
-
-config STM32_TIM3_ADC1
-       bool "TIM3 ADC channel 1"
-       depends on STM32_ADC1
-       select STM32_HAVE_ADC1_TIMER
-       ---help---
-               Reserve TIM3 to trigger ADC1
-
-config STM32_TIM3_ADC2
-       bool "TIM3 ADC channel 2"
-       depends on STM32_ADC2
-       select STM32_HAVE_ADC2_TIMER
-       ---help---
-               Reserve TIM3 to trigger ADC2
-
-config STM32_TIM3_ADC3
-       bool "TIM3 ADC channel 3"
-       depends on STM32_ADC3
-       select STM32_HAVE_ADC3_TIMER
-       ---help---
-               Reserve TIM3 to trigger ADC3
-
-endchoice
-
 config STM32_TIM4_ADC
        bool "TIM4 ADC"
        default n
@@ -6257,34 +6129,6 @@ config STM32_TIM4_ADC
                for used by the ADC, but then you also have to configure which 
ADC
                channel it is assigned to.
 
-choice
-       prompt "Select TIM4 ADC channel"
-       default STM32_TIM4_ADC1
-       depends on STM32_TIM4_ADC
-
-config STM32_TIM4_ADC1
-       bool "TIM4 ADC channel 1"
-       depends on STM32_ADC1
-       select STM32_HAVE_ADC1_TIMER
-       ---help---
-               Reserve TIM4 to trigger ADC1
-
-config STM32_TIM4_ADC2
-       bool "TIM4 ADC channel 2"
-       depends on STM32_ADC2
-       select STM32_HAVE_ADC2_TIMER
-       ---help---
-               Reserve TIM4 to trigger ADC2
-
-config STM32_TIM4_ADC3
-       bool "TIM4 ADC channel 3"
-       depends on STM32_ADC3
-       select STM32_HAVE_ADC3_TIMER
-       ---help---
-               Reserve TIM4 to trigger ADC3
-
-endchoice
-
 config STM32_TIM5_ADC
        bool "TIM5 ADC"
        default n
@@ -6299,34 +6143,6 @@ config STM32_TIM5_ADC
                for used by the ADC, but then you also have to configure which 
ADC
                channel it is assigned to.
 
-choice
-       prompt "Select TIM5 ADC channel"
-       default STM32_TIM5_ADC1
-       depends on STM32_TIM5_ADC
-
-config STM32_TIM5_ADC1
-       bool "TIM5 ADC channel 1"
-       depends on STM32_ADC1
-       select STM32_HAVE_ADC1_TIMER
-       ---help---
-               Reserve TIM5 to trigger ADC1
-
-config STM32_TIM5_ADC2
-       bool "TIM5 ADC channel 2"
-       depends on STM32_ADC2
-       select STM32_HAVE_ADC2_TIMER
-       ---help---
-               Reserve TIM5 to trigger ADC2
-
-config STM32_TIM5_ADC3
-       bool "TIM5 ADC channel 3"
-       depends on STM32_ADC3
-       select STM32_HAVE_ADC3_TIMER
-       ---help---
-               Reserve TIM5 to trigger ADC3
-
-endchoice
-
 config STM32_TIM8_ADC
        bool "TIM8 ADC"
        default n
@@ -6341,34 +6157,6 @@ config STM32_TIM8_ADC
                for used by the ADC, but then you also have to configure which 
ADC
                channel it is assigned to.
 
-choice
-       prompt "Select TIM8 ADC channel"
-       default STM32_TIM8_ADC1
-       depends on STM32_TIM8_ADC
-
-config STM32_TIM8_ADC1
-       bool "TIM8 ADC channel 1"
-       depends on STM32_ADC1
-       select STM32_HAVE_ADC1_TIMER
-       ---help---
-               Reserve TIM8 to trigger ADC1
-
-config STM32_TIM8_ADC2
-       bool "TIM8 ADC channel 2"
-       depends on STM32_ADC2
-       select STM32_HAVE_ADC2_TIMER
-       ---help---
-               Reserve TIM8 to trigger ADC2
-
-config STM32_TIM8_ADC3
-       bool "TIM8 ADC channel 3"
-       depends on STM32_ADC3
-       select STM32_HAVE_ADC3_TIMER
-       ---help---
-               Reserve TIM8 to trigger ADC3
-
-endchoice
-
 config STM32_HAVE_ADC1_TIMER
        bool
 
@@ -6443,23 +6231,6 @@ config STM32_TIM1_DAC
                for used by the DAC, but then you also have to configure which 
DAC
                channel it is assigned to.
 
-choice
-       prompt "Select TIM1 DAC channel"
-       default STM32_TIM1_DAC1
-       depends on STM32_TIM1_DAC
-
-config STM32_TIM1_DAC1
-       bool "TIM1 DAC channel 1"
-       ---help---
-               Reserve TIM1 to trigger DAC1
-
-config STM32_TIM1_DAC2
-       bool "TIM1 DAC channel 2"
-       ---help---
-               Reserve TIM1 to trigger DAC2
-
-endchoice
-
 config STM32_TIM2_DAC
        bool "TIM2 DAC"
        default n
@@ -6474,23 +6245,6 @@ config STM32_TIM2_DAC
                for used by the DAC, but then you also have to configure which 
DAC
                channel it is assigned to.
 
-choice
-       prompt "Select TIM2 DAC channel"
-       default STM32_TIM2_DAC1
-       depends on STM32_TIM2_DAC
-
-config STM32_TIM2_DAC1
-       bool "TIM2 DAC channel 1"
-       ---help---
-               Reserve TIM2 to trigger DAC1
-
-config STM32_TIM2_DAC2
-       bool "TIM2 DAC channel 2"
-       ---help---
-               Reserve TIM2 to trigger DAC2
-
-endchoice
-
 config STM32_TIM3_DAC
        bool "TIM3 DAC"
        default n
@@ -6505,23 +6259,6 @@ config STM32_TIM3_DAC
                for used by the DAC, but then you also have to configure which 
DAC
                channel it is assigned to.
 
-choice
-       prompt "Select TIM3 DAC channel"
-       default STM32_TIM3_DAC1
-       depends on STM32_TIM3_DAC
-
-config STM32_TIM3_DAC1
-       bool "TIM3 DAC channel 1"
-       ---help---
-               Reserve TIM3 to trigger DAC1
-
-config STM32_TIM3_DAC2
-       bool "TIM3 DAC channel 2"
-       ---help---
-               Reserve TIM3 to trigger DAC2
-
-endchoice
-
 config STM32_TIM4_DAC
        bool "TIM4 DAC"
        default n
@@ -6536,23 +6273,6 @@ config STM32_TIM4_DAC
                for used by the DAC, but then you also have to configure which 
DAC
                channel it is assigned to.
 
-choice
-       prompt "Select TIM4 DAC channel"
-       default STM32_TIM4_DAC1
-       depends on STM32_TIM4_DAC
-
-config STM32_TIM4_DAC1
-       bool "TIM4 DAC channel 1"
-       ---help---
-               Reserve TIM4 to trigger DAC1
-
-config STM32_TIM4_DAC2
-       bool "TIM4 DAC channel 2"
-       ---help---
-               Reserve TIM4 to trigger DAC2
-
-endchoice
-
 config STM32_TIM5_DAC
        bool "TIM5 DAC"
        default n
@@ -6567,23 +6287,6 @@ config STM32_TIM5_DAC
                for used by the DAC, but then you also have to configure which 
DAC
                channel it is assigned to.
 
-choice
-       prompt "Select TIM5 DAC channel"
-       default STM32_TIM5_DAC1
-       depends on STM32_TIM5_DAC
-
-config STM32_TIM5_DAC1
-       bool "TIM5 DAC channel 1"
-       ---help---
-               Reserve TIM5 to trigger DAC1
-
-config STM32_TIM5_DAC2
-       bool "TIM5 DAC channel 2"
-       ---help---
-               Reserve TIM5 to trigger DAC2
-
-endchoice
-
 config STM32_TIM6_DAC
        bool "TIM6 DAC"
        default n
@@ -6598,23 +6301,6 @@ config STM32_TIM6_DAC
                for used by the DAC, but then you also have to configure which 
DAC
                channel it is assigned to.
 
-choice
-       prompt "Select TIM6 DAC channel"
-       default STM32_TIM6_DAC1
-       depends on STM32_TIM6_DAC
-
-config STM32_TIM6_DAC1
-       bool "TIM6 DAC channel 1"
-       ---help---
-               Reserve TIM6 to trigger DAC1
-
-config STM32_TIM6_DAC2
-       bool "TIM6 DAC channel 2"
-       ---help---
-               Reserve TIM6 to trigger DAC2
-
-endchoice
-
 config STM32_TIM7_DAC
        bool "TIM7 DAC"
        default n
@@ -6629,23 +6315,6 @@ config STM32_TIM7_DAC
                for used by the DAC, but then you also have to configure which 
DAC
                channel it is assigned to.
 
-choice
-       prompt "Select TIM7 DAC channel"
-       default STM32_TIM7_DAC1
-       depends on STM32_TIM7_DAC
-
-config STM32_TIM7_DAC1
-       bool "TIM7 DAC channel 1"
-       ---help---
-               Reserve TIM7 to trigger DAC1
-
-config STM32_TIM7_DAC2
-       bool "TIM7 DAC channel 2"
-       ---help---
-               Reserve TIM7 to trigger DAC2
-
-endchoice
-
 config STM32_TIM8_DAC
        bool "TIM8 DAC"
        default n
@@ -6660,23 +6329,6 @@ config STM32_TIM8_DAC
                for used by the DAC, but then you also have to configure which 
DAC
                channel it is assigned to.
 
-choice
-       prompt "Select TIM8 DAC channel"
-       default STM32_TIM8_DAC1
-       depends on STM32_TIM8_DAC
-
-config STM32_TIM8_DAC1
-       bool "TIM8 DAC channel 1"
-       ---help---
-               Reserve TIM8 to trigger DAC1
-
-config STM32_TIM8_DAC2
-       bool "TIM8 DAC channel 2"
-       ---help---
-               Reserve TIM8 to trigger DAC2
-
-endchoice
-
 config STM32_TIM9_DAC
        bool "TIM9 DAC"
        default n
@@ -6691,23 +6343,6 @@ config STM32_TIM9_DAC
                for used by the DAC, but then you also have to configure which 
DAC
                channel it is assigned to.
 
-choice
-       prompt "Select TIM9 DAC channel"
-       default STM32_TIM9_DAC1
-       depends on STM32_TIM9_DAC
-
-config STM32_TIM9_DAC1
-       bool "TIM9 DAC channel 1"
-       ---help---
-               Reserve TIM9 to trigger DAC1
-
-config STM32_TIM9_DAC2
-       bool "TIM9 DAC channel 2"
-       ---help---
-               Reserve TIM9 to trigger DAC2
-
-endchoice
-
 config STM32_TIM10_DAC
        bool "TIM10 DAC"
        default n
@@ -6722,23 +6357,6 @@ config STM32_TIM10_DAC
                for used by the DAC, but then you also have to configure which 
DAC
                channel it is assigned to.
 
-choice
-       prompt "Select TIM10 DAC channel"
-       default STM32_TIM10_DAC1
-       depends on STM32_TIM10_DAC
-
-config STM32_TIM10_DAC1
-       bool "TIM10 DAC channel 1"
-       ---help---
-               Reserve TIM10 to trigger DAC1
-
-config STM32_TIM10_DAC2
-       bool "TIM10 DAC channel 2"
-       ---help---
-               Reserve TIM10 to trigger DAC2
-
-endchoice
-
 config STM32_TIM11_DAC
        bool "TIM11 DAC"
        default n
@@ -6753,23 +6371,6 @@ config STM32_TIM11_DAC
                for used by the DAC, but then you also have to configure which 
DAC
                channel it is assigned to.
 
-choice
-       prompt "Select TIM11 DAC channel"
-       default STM32_TIM11_DAC1
-       depends on STM32_TIM11_DAC
-
-config STM32_TIM11_DAC1
-       bool "TIM11 DAC channel 1"
-       ---help---
-               Reserve TIM11 to trigger DAC1
-
-config STM32_TIM11_DAC2
-       bool "TIM11 DAC channel 2"
-       ---help---
-               Reserve TIM11 to trigger DAC2
-
-endchoice
-
 config STM32_TIM12_DAC
        bool "TIM12 DAC"
        default n
@@ -6784,23 +6385,6 @@ config STM32_TIM12_DAC
                for used by the DAC, but then you also have to configure which 
DAC
                channel it is assigned to.
 
-choice
-       prompt "Select TIM12 DAC channel"
-       default STM32_TIM12_DAC1
-       depends on STM32_TIM12_DAC
-
-config STM32_TIM12_DAC1
-       bool "TIM12 DAC channel 1"
-       ---help---
-               Reserve TIM12 to trigger DAC1
-
-config STM32_TIM12_DAC2
-       bool "TIM12 DAC channel 2"
-       ---help---
-               Reserve TIM12 to trigger DAC2
-
-endchoice
-
 config STM32_TIM13_DAC
        bool "TIM13 DAC"
        default n
@@ -6815,23 +6399,6 @@ config STM32_TIM13_DAC
                for used by the DAC, but then you also have to configure which 
DAC
                channel it is assigned to.
 
-choice
-       prompt "Select TIM13 DAC channel"
-       default STM32_TIM13_DAC1
-       depends on STM32_TIM13_DAC
-
-config STM32_TIM13_DAC1
-       bool "TIM13 DAC channel 1"
-       ---help---
-               Reserve TIM13 to trigger DAC1
-
-config STM32_TIM13_DAC2
-       bool "TIM13 DAC channel 2"
-       ---help---
-               Reserve TIM13 to trigger DAC2
-
-endchoice
-
 config STM32_TIM14_DAC
        bool "TIM14 DAC"
        default n
@@ -6846,23 +6413,6 @@ config STM32_TIM14_DAC
                for used by the DAC, but then you also have to configure which 
DAC
                channel it is assigned to.
 
-choice
-       prompt "Select TIM14 DAC channel"
-       default STM32_TIM14_DAC1
-       depends on STM32_TIM14_DAC
-
-config STM32_TIM14_DAC1
-       bool "TIM14 DAC channel 1"
-       ---help---
-               Reserve TIM14 to trigger DAC1
-
-config STM32_TIM14_DAC2
-       bool "TIM14 DAC channel 2"
-       ---help---
-               Reserve TIM14 to trigger DAC2
-
-endchoice
-
 config STM32_TIM1_CAP
        bool "TIM1 Capture"
        default n
@@ -9705,28 +9255,6 @@ menu "U[S]ART Configuration"
 
 comment "U[S]ART Device Configuration"
 
-choice
-       prompt "USART1 Driver Configuration"
-       default STM32_USART1_SERIALDRIVER
-       depends on STM32_USART1
-
-config STM32_USART1_SERIALDRIVER
-       bool "Standard serial driver"
-       select USART1_SERIALDRIVER
-       select ARCH_HAVE_SERIAL_TERMIOS
-       select STM32_SERIALDRIVER
-
-config STM32_USART1_1WIREDRIVER
-       bool "1-Wire driver"
-       select STM32_1WIREDRIVER
-
-config STM32_USART1_HCIUART
-       bool "Bluetooth HCI-UART"
-       select STM32_HCIUART
-       depends on WIRELESS_BLUETOOTH
-
-endchoice # USART1 Driver Configuration
-
 if STM32_USART1_SERIALDRIVER
 
 config USART1_RS485
@@ -9798,28 +9326,6 @@ config STM32_HCIUART1_RXDMA
 
 endif # STM32_USART1_HCIUART
 
-choice
-       prompt "USART2 Driver Configuration"
-       default STM32_USART2_SERIALDRIVER
-       depends on STM32_USART2
-
-config STM32_USART2_SERIALDRIVER
-       bool "Standard serial driver"
-       select USART2_SERIALDRIVER
-       select ARCH_HAVE_SERIAL_TERMIOS
-       select STM32_SERIALDRIVER
-
-config STM32_USART2_1WIREDRIVER
-       bool "1-Wire driver"
-       select STM32_1WIREDRIVER
-
-config STM32_USART2_HCIUART
-       bool "Bluetooth HCI-UART"
-       select STM32_HCIUART
-       depends on WIRELESS_BLUETOOTH
-
-endchoice # USART2 Driver Configuration
-
 if STM32_USART2_SERIALDRIVER
 
 config USART2_RS485
@@ -9891,28 +9397,6 @@ config STM32_HCIUART2_RXDMA
 
 endif # STM32_USART2_HCIUART
 
-choice
-       prompt "USART3 Driver Configuration"
-       default STM32_USART3_SERIALDRIVER
-       depends on STM32_USART3
-
-config STM32_USART3_SERIALDRIVER
-       bool "Standard serial driver"
-       select USART3_SERIALDRIVER
-       select ARCH_HAVE_SERIAL_TERMIOS
-       select STM32_SERIALDRIVER
-
-config STM32_USART3_1WIREDRIVER
-       bool "1-Wire driver"
-       select STM32_1WIREDRIVER
-
-config STM32_USART3_HCIUART
-       bool "Bluetooth HCI-UART"
-       select STM32_HCIUART
-       depends on WIRELESS_BLUETOOTH
-
-endchoice # USART3 Driver Configuration
-
 if STM32_USART3_SERIALDRIVER
 
 config USART3_RS485
@@ -9984,23 +9468,6 @@ config STM32_HCIUART3_RXDMA
 
 endif # STM32_USART3_HCIUART
 
-choice
-       prompt "UART4 Driver Configuration"
-       default STM32_UART4_SERIALDRIVER
-       depends on STM32_UART4
-
-config STM32_UART4_SERIALDRIVER
-       bool "Standard serial driver"
-       select UART4_SERIALDRIVER
-       select ARCH_HAVE_SERIAL_TERMIOS
-       select STM32_SERIALDRIVER
-
-config STM32_UART4_1WIREDRIVER
-       bool "1-Wire driver"
-       select STM32_1WIREDRIVER
-
-endchoice # UART1 Driver Configuration
-
 if STM32_UART4_SERIALDRIVER
 
 config UART4_RS485
@@ -10036,23 +9503,6 @@ config UART4_TXDMA
 
 endif # STM32_UART4_SERIALDRIVER
 
-choice
-       prompt "UART5 Driver Configuration"
-       default STM32_UART5_SERIALDRIVER
-       depends on STM32_UART5
-
-config STM32_UART5_SERIALDRIVER
-       bool "Standard serial driver"
-       select UART5_SERIALDRIVER
-       select ARCH_HAVE_SERIAL_TERMIOS
-       select STM32_SERIALDRIVER
-
-config STM32_UART5_1WIREDRIVER
-       bool "1-Wire driver"
-       select STM32_1WIREDRIVER
-
-endchoice # UART5 Driver Configuration
-
 if STM32_UART5_SERIALDRIVER
 
 config UART5_RS485
@@ -10088,28 +9538,6 @@ config UART5_TXDMA
 
 endif # STM32_UART5_SERIALDRIVER
 
-choice
-       prompt "USART6 Driver Configuration"
-       default STM32_USART6_SERIALDRIVER
-       depends on STM32_USART6
-
-config STM32_USART6_SERIALDRIVER
-       bool "Standard serial driver"
-       select USART6_SERIALDRIVER
-       select ARCH_HAVE_SERIAL_TERMIOS
-       select STM32_SERIALDRIVER
-
-config STM32_USART6_1WIREDRIVER
-       bool "1-Wire driver"
-       select STM32_1WIREDRIVER
-
-config STM32_USART6_HCIUART
-       bool "Bluetooth HCI-UART"
-       select STM32_HCIUART
-       depends on WIRELESS_BLUETOOTH
-
-endchoice # USART6 Driver Configuration
-
 if STM32_USART6_SERIALDRIVER
 
 config USART6_RS485
@@ -10367,19 +9795,6 @@ config STM32_HCIUART8_RXDMA
 
 endif # STM32_UART8_HCIUART
 
-choice
-       prompt "LPUART1 Driver Configuration"
-       default STM32_LPUART1_SERIALDRIVER
-       depends on STM32_LPUART1
-
-config STM32_LPUART1_SERIALDRIVER
-       bool "Standard serial driver"
-       select LPUART1_SERIALDRIVER
-       select ARCH_HAVE_SERIAL_TERMIOS
-       select STM32_SERIALDRIVER
-
-endchoice # LPUART1 Driver Configuration
-
 if STM32_LPUART1_SERIALDRIVER
 
 config LPUART1_RS485
@@ -10919,26 +10334,6 @@ config STM32_RTC_MAGIC_TIME_SET
                Value used as Magic to determine if the RTC has been setup and 
has
                time set
 
-choice
-       prompt "RTC clock source"
-       default STM32_RTC_LSECLOCK
-
-config STM32_RTC_LSECLOCK
-       bool "LSE clock"
-       ---help---
-               Drive the RTC with the LSE clock
-
-config STM32_RTC_LSICLOCK
-       bool "LSI clock"
-       ---help---
-               Drive the RTC with the LSI clock
-
-config STM32_RTC_HSECLOCK
-       bool "HSE clock"
-       ---help---
-               Drive the RTC with the HSE clock, divided down to 1MHz.
-
-endchoice # RTC clock source
 endmenu # RTC configuration
 
 menu "Ethernet MAC configuration"
@@ -10966,38 +10361,6 @@ config STM32_MII
        ---help---
                Support Ethernet MII interface.
 
-choice
-       prompt "MII clock configuration"
-       default STM32_MII_MCO if STM32_STM32F10XX
-       default STM32_MII_MCO1 if STM32_STM32F20XX || STM32_STM32F4XXX
-       depends on STM32_MII
-
-config STM32_MII_MCO
-       bool "Use MC0 as MII clock"
-       depends on STM32_STM32F10XX
-       ---help---
-               Use MCO to clock the MII interface.  Default:  Use MC0
-
-config STM32_MII_MCO1
-       bool "Use MC01 as MII clock"
-       depends on (STM32_STM32F20XX || STM32_STM32F4XXX)
-       ---help---
-               Use MCO1 to clock the MII interface.  Default:  Use MC01
-
-config STM32_MII_MCO2
-       bool "Use MC02 as MII clock"
-       depends on (STM32_STM32F20XX || STM32_STM32F4XXX)
-       ---help---
-               Use MCO2 to clock the MII interface.  Default:  Use MC01
-
-config STM32_MII_EXTCLK
-       bool "External MII clock"
-       ---help---
-               Clocking is provided by external logic.  Don't use MCO for MII
-               clock.  Default:  Use MC0[1]
-
-endchoice
-
 config STM32_AUTONEG
        bool "Use autonegotiation"
        default y
@@ -11147,38 +10510,6 @@ config STM32_RMII
        bool
        default !STM32_MII
 
-choice
-       prompt "RMII clock configuration"
-       default STM32_RMII_MCO if STM32_STM32F10XX
-       default STM32_RMII_MCO1 if STM32_STM32F20XX || STM32_STM32F4XXX
-       depends on STM32_RMII
-
-config STM32_RMII_MCO
-       bool "Use MC0 as RMII clock"
-       depends on STM32_STM32F10XX
-       ---help---
-               Use MCO to clock the RMII interface.  Default:  Use MC0
-
-config STM32_RMII_MCO1
-       bool "Use MC01 as RMII clock"
-       depends on (STM32_STM32F20XX || STM32_STM32F4XXX)
-       ---help---
-               Use MCO1 to clock the RMII interface.  Default:  Use MC01
-
-config STM32_RMII_MCO2
-       bool "Use MC02 as RMII clock"
-       depends on (STM32_STM32F20XX || STM32_STM32F4XXX)
-       ---help---
-               Use MCO2 to clock the RMII interface.  Default:  Use MC01
-
-config STM32_RMII_EXTCLK
-       bool "External RMII clock"
-       ---help---
-               Clocking is provided by external logic.  Don't use MCO for RMII
-               clock.  Default:  Use MC0[1]
-
-endchoice
-
 config STM32_ETHMAC_REGDEBUG
        bool "Register-Level Debug"
        default n
@@ -11340,21 +10671,6 @@ config STM32_USB_ITRMP
 menu "CAN driver configuration"
        depends on STM32_CAN
 
-choice
-       prompt "CAN character driver or SocketCAN support"
-       default STM32_CAN_CHARDRIVER
-
-config STM32_CAN_CHARDRIVER
-       bool "STM32 CAN character driver support"
-       select ARCH_HAVE_CAN_ERRORS
-       select CAN
-
-config STM32_CAN_SOCKET
-       bool "STM32 CAN SocketCAN support"
-       select NET_CAN_HAVE_ERRORS
-
-endchoice # CAN character driver or SocketCAN support
-
 config STM32_CAN1_BAUD
        int "CAN1 BAUD"
        default 250000
@@ -11394,22 +10710,6 @@ endmenu # "CAN driver configuration"
 menu "FDCAN driver configuration"
        depends on STM32_FDCAN
 
-choice
-       prompt "FDCAN character driver or SocketCAN support"
-       default STM32_FDCAN_CHARDRIVER
-
-config STM32_FDCAN_CHARDRIVER
-       bool "STM32 FDCAN character driver support"
-       select ARCH_HAVE_CAN_ERRORS
-       select CAN
-
-config STM32_FDCAN_SOCKET
-       bool "STM32 FDCAN SocketCAN support"
-       select NET_CAN_HAVE_ERRORS
-       select NET_CAN_HAVE_CANFD
-
-endchoice # FDCAN character driver or SocketCAN support
-
 config STM32_FDCAN_REGDEBUG
        bool "CAN Register level debug"
        depends on DEBUG_CAN_INFO
@@ -11425,45 +10725,6 @@ config STM32_FDCAN_QUEUE_MODE
 menu "FDCAN1 device driver options"
        depends on STM32_FDCAN1
 
-choice
-       prompt "FDCAN1 frame format"
-       default STM32_FDCAN1_ISO11898_1
-
-config STM32_FDCAN1_ISO11898_1
-       bool "ISO11898-1"
-       ---help---
-               Enable ISO11898-1 frame format
-
-config STM32_FDCAN1_NONISO_FORMAT
-       bool "Non ISO"
-       ---help---
-               Enable Non ISO, Bosch CAN FD Specification V1.0
-
-endchoice # FDCAN1 frame format
-
-choice
-       prompt "FDCAN1 mode"
-       default STM32_FDCAN1_CLASSIC
-
-config STM32_FDCAN1_CLASSIC
-       bool "Classic CAN"
-       ---help---
-               Enable Classic CAN mode
-
-config STM32_FDCAN1_FD
-       bool "CAN FD"
-       depends on CAN_FD || NET_CAN_CANFD
-       ---help---
-               Enable CAN FD mode
-
-config STM32_FDCAN1_FD_BRS
-       bool "CAN FD with fast bit rate switching"
-       depends on CAN_FD || NET_CAN_CANFD
-       ---help---
-               Enable CAN FD mode with fast bit rate switching mode.
-
-endchoice # FDCAN1 mode
-
 config STM32_FDCAN1_LOOPBACK
        bool "Enable FDCAN1 loopback mode"
        default n
@@ -11539,45 +10800,6 @@ endmenu # FDCAN1 device driver options
 menu "FDCAN2 device driver options"
        depends on STM32_FDCAN2
 
-choice
-       prompt "FDCAN2 frame format"
-       default STM32_FDCAN2_ISO11898_1
-
-config STM32_FDCAN2_ISO11898_1
-       bool "ISO11898-1"
-       ---help---
-               Enable ISO11898-1 frame format
-
-config STM32_FDCAN2_NONISO_FORMAT
-       bool "Non ISO"
-       ---help---
-               Enable Non ISO, Bosch CAN FD Specification V1.0
-
-endchoice # FDCAN2 frame format
-
-choice
-       prompt "FDCAN2 mode"
-       default STM32_FDCAN2_CLASSIC
-
-config STM32_FDCAN2_CLASSIC
-       bool "Classic CAN"
-       ---help---
-               Enable Classic CAN mode
-
-config STM32_FDCAN2_FD
-       bool "CAN FD"
-       depends on CAN_FD || NET_CAN_CANFD
-       ---help---
-               Enable CAN FD mode
-
-config STM32_FDCAN2_FD_BRS
-       bool "CAN FD with fast bit rate switching"
-       depends on CAN_FD || NET_CAN_CANFD
-       ---help---
-               Enable CAN FD mode with fast bit rate switching mode.
-
-endchoice # FDCAN2 mode
-
 config STM32_FDCAN2_LOOPBACK
        bool "Enable FDCAN2 loopback mode"
        default n
@@ -11839,44 +11061,6 @@ config STM32_LTDC_L1_COLOR
        hex "Layer L1 default color"
        default 0x00000000
 
-choice
-       prompt "Layer 1 color format"
-       default STM32_LTDC_L1_RGB565
-
-config STM32_LTDC_L1_L8
-       bool "8 bpp L8 (8-bit CLUT)"
-       depends on STM32_FB_CMAP
-
-config STM32_LTDC_L1_AL44
-       bool "8 bpp AL44 (4-bit alpha + 4-bit CLUT)"
-       depends on STM32_FB_CMAP
-
-config STM32_LTDC_L1_AL88
-       bool "16 bpp AL88 (8-bit alpha + 8-bit CLUT)"
-       depends on STM32_FB_CMAP
-
-config STM32_LTDC_L1_RGB565
-       bool "16 bpp RGB 565"
-       depends on !STM32_FB_CMAP
-
-config STM32_LTDC_L1_ARGB4444
-       bool "16 bpp ARGB 4444"
-       depends on !STM32_FB_CMAP
-
-config STM32_LTDC_L1_ARGB1555
-       bool "16 bpp ARGB 1555"
-       depends on !STM32_FB_CMAP
-
-config STM32_LTDC_L1_RGB888
-       bool "24 bpp RGB 888"
-       depends on !STM32_FB_CMAP
-
-config STM32_LTDC_L1_ARGB8888
-       bool "32 bpp ARGB 8888"
-       depends on !STM32_FB_CMAP
-
-endchoice # Layer 1 color format
-
 config STM32_LTDC_L2
        bool "Enable Layer 2 support"
        default y
@@ -11895,44 +11079,6 @@ config STM32_LTDC_L2_CHROMAKEY
        hex "Layer L2 initial chroma key"
        default 0x00000000
 
-choice
-       prompt "Layer 2 (top layer) color format"
-       default STM32_LTDC_L2_RGB565
-
-config STM32_LTDC_L2_L8
-       depends on STM32_LTDC_L1_L8
-       bool "8 bpp L8 (8-bit CLUT)"
-
-config STM32_LTDC_L2_AL44
-       depends on STM32_LTDC_L1_AL44
-       bool "8 bpp AL44 (4-bit alpha + 4-bit CLUT)"
-
-config STM32_LTDC_L2_AL88
-       depends on STM32_LTDC_L1_AL88
-       bool "16 bpp AL88 (8-bit alpha + 8-bit CLUT)"
-
-config STM32_LTDC_L2_RGB565
-       depends on STM32_LTDC_L1_RGB565
-       bool "16 bpp RGB 565"
-
-config STM32_LTDC_L2_ARGB4444
-       depends on STM32_LTDC_L1_ARGB4444
-       bool "16 bpp ARGB 4444"
-
-config STM32_LTDC_L2_ARGB1555
-       depends on STM32_LTDC_L1_ARGB1555
-       bool "16 bpp ARGB 1555"
-
-config STM32_LTDC_L2_RGB888
-       depends on STM32_LTDC_L1_RGB888
-       bool "24 bpp RGB 888"
-
-config STM32_LTDC_L2_ARGB8888
-       depends on STM32_LTDC_L1_ARGB8888
-       bool "32 bpp ARGB 8888"
-
-endchoice # Layer 2 color format
-
 endif # STM32_LTDC_L2
 
 config STM32_FB_CMAP
@@ -12189,71 +11335,13 @@ config STM32_QENCODER_FILTER
        bool "Enable filtering on STM32 QEncoder input"
        default y
 
-choice
-       depends on STM32_QENCODER_FILTER
-       prompt "Input channel sampling frequency"
-       default STM32_QENCODER_SAMPLE_FDTS_4
-
-config STM32_QENCODER_SAMPLE_FDTS
-       bool "fDTS"
-
-config STM32_QENCODER_SAMPLE_CKINT
-       bool "fCK_INT"
-
-config STM32_QENCODER_SAMPLE_FDTS_2
-       bool "fDTS/2"
-
-config STM32_QENCODER_SAMPLE_FDTS_4
-       bool "fDTS/4"
-
-config STM32_QENCODER_SAMPLE_FDTS_8
-       bool "fDTS/8"
-
-config STM32_QENCODER_SAMPLE_FDTS_16
-       bool "fDTS/16"
-
-config STM32_QENCODER_SAMPLE_FDTS_32
-       bool "fDTS/32"
-
-endchoice
-
-choice
-       depends on STM32_QENCODER_FILTER
-       prompt "Input channel event count"
-       default STM32_QENCODER_SAMPLE_EVENT_6
-
-config STM32_QENCODER_SAMPLE_EVENT_1
-       depends on STM32_QENCODER_SAMPLE_FDTS
-       bool "1"
-
-config STM32_QENCODER_SAMPLE_EVENT_2
-       depends on STM32_QENCODER_SAMPLE_CKINT
-       bool "2"
-
-config STM32_QENCODER_SAMPLE_EVENT_4
-       depends on STM32_QENCODER_SAMPLE_CKINT
-       bool "4"
-
-config STM32_QENCODER_SAMPLE_EVENT_5
-       depends on STM32_QENCODER_SAMPLE_FDTS_16 || 
STM32_QENCODER_SAMPLE_FDTS_32
-       bool "5"
-
-config STM32_QENCODER_SAMPLE_EVENT_6
-       depends on !STM32_QENCODER_SAMPLE_FDTS && !STM32_QENCODER_SAMPLE_CKINT
-       bool "6"
-
-config STM32_QENCODER_SAMPLE_EVENT_8
-       depends on !STM32_QENCODER_SAMPLE_FDTS
-       bool "8"
-
-endchoice
-
 endmenu
 
 menuconfig STM32_FOC
        bool "STM32 lower-half FOC support"
        default n
        select ARCH_IRQPRIO
+       select STM32_ADC
        select STM32_PWM_MULTICHAN
        select STM32_PWM_LL_OPS
        select STM32_ADC_LL_OPS
@@ -12278,84 +11366,12 @@ config STM32_FOC_FOC1
        ---help---
                Enable support for FOC1 device that uses TIM8 for PWM modulation
 
-choice
-       prompt "FOC ADC trigger selection"
-       default STM32_FOC_ADC_TRGO
-
-config STM32_FOC_ADC_CCR4
-       bool "FOC uses CCR4 as ADC trigger"
-       ---help---
-               This option uses the software frequency prescaler and is
-               not possible for 4-phase output.
-
-config STM32_FOC_ADC_TRGO
-       bool "FOC uses TRGO as ADC trigger"
-       depends on STM32_HAVE_IP_ADC_V2 || (STM32_HAVE_IP_ADC_V1 && 
!STM32_FOC_FOC1)
-       select STM32_PWM_TRGO
-       ---help---
-               This option allows you to use higher PWM frequency and works 
for 4-phase output.
-               It is not possible for ADC IPv1 if FOC1 enabled (no T8TRGO in 
JEXTSEL).
-
-endchoice # "FOC ADC trigger selection"
-
 if STM32_FOC_FOC0
 
-choice
-       prompt "FOC0 device ADC selection"
-       default STM32_FOC_FOC0_ADC1
-
-config STM32_FOC_FOC0_ADC1
-       bool "FOC0 uses ADC1"
-       depends on STM32_HAVE_ADC1
-       select STM32_FOC_USE_ADC1
-
-config STM32_FOC_FOC0_ADC2
-       bool "FOC0 uses ADC2"
-       depends on STM32_HAVE_ADC2
-       select STM32_FOC_USE_ADC2
-
-config STM32_FOC_FOC0_ADC3
-       bool "FOC0 uses ADC3"
-       depends on STM32_HAVE_ADC3
-       select STM32_FOC_USE_ADC3
-
-config STM32_FOC_FOC0_ADC4
-       bool "FOC0 uses ADC4"
-       depends on STM32_HAVE_ADC4
-       select STM32_FOC_USE_ADC4
-
-endchoice # "FOC0 device ADC selection"
-
 endif # STM32_FOC_FOC0
 
 if STM32_FOC_FOC1
 
-choice
-       prompt "FOC1 device ADC selection"
-       default STM32_FOC_FOC1_ADC2
-
-config STM32_FOC_FOC1_ADC1
-       bool "FOC1 uses ADC1"
-       depends on STM32_HAVE_ADC1
-       select STM32_FOC_USE_ADC1
-
-config STM32_FOC_FOC1_ADC2
-       bool "FOC1 uses ADC2"
-       depends on STM32_HAVE_ADC2
-       select STM32_FOC_USE_ADC2
-
-config STM32_FOC_FOC1_ADC3
-       bool "FOC1 uses ADC3"
-       depends on STM32_HAVE_ADC3
-       select STM32_FOC_USE_ADC3
-
-config STM32_FOC_FOC1_ADC4
-       bool "FOC1 uses ADC4"
-       depends on STM32_HAVE_ADC4
-       select STM32_FOC_USE_ADC4
-
-endchoice # "FOC0 device ADC selection"
-
 endif # STM32_FOC_FOC1
 
 config STM32_FOC_HAS_PWM_COMPLEMENTARY

Reply via email to