diff --git a/arch/arm/src/stm32/CMakeLists.txt b/arch/arm/src/stm32/CMakeLists.txt index e193c424b57..9727b096e3b 100644 --- a/arch/arm/src/stm32/CMakeLists.txt +++ b/arch/arm/src/stm32/CMakeLists.txt @@ -205,7 +205,9 @@ if(CONFIG_STM32_CAP) endif() if(CONFIG_SENSORS_QENCODER) - list(APPEND SRCS stm32_qencoder.c) + if(CONFIG_STM32_QE) + list(APPEND SRCS stm32_qencoder.c) + endif() endif() if(CONFIG_SENSORS_HALL3PHASE) diff --git a/arch/arm/src/stm32/Kconfig b/arch/arm/src/stm32/Kconfig index 67ec8612c9d..d811530b5b4 100644 --- a/arch/arm/src/stm32/Kconfig +++ b/arch/arm/src/stm32/Kconfig @@ -12004,6 +12004,10 @@ config STM32_DMA2D_REGDEBUG endmenu endif # STM32_DMA2D +config STM32_QE + bool + default n + menu "STM32 QEncoder Driver" depends on SENSORS_QENCODER depends on STM32_TIM1 || STM32_TIM2 || STM32_TIM3 || STM32_TIM4 || STM32_TIM5 || STM32_TIM8 @@ -12020,6 +12024,7 @@ config STM32_TIM1_QE bool "TIM1 QE" default n depends on STM32_TIM1 + select STM32_QE ---help--- Reserve TIM1 for use by QEncoder. @@ -12038,6 +12043,7 @@ config STM32_TIM2_QE bool "TIM2 QE" default n depends on STM32_TIM2 + select STM32_QE ---help--- Reserve TIM2 for use by QEncoder. @@ -12056,6 +12062,7 @@ config STM32_TIM3_QE bool "TIM3 QE" default n depends on STM32_TIM3 + select STM32_QE ---help--- Reserve TIM3 for use by QEncoder. @@ -12074,6 +12081,7 @@ config STM32_TIM4_QE bool "TIM4 QE" default n depends on STM32_TIM4 + select STM32_QE ---help--- Reserve TIM4 for use by QEncoder. @@ -12092,6 +12100,7 @@ config STM32_TIM5_QE bool "TIM5 QE" default n depends on STM32_TIM5 + select STM32_QE ---help--- Reserve TIM5 for use by QEncoder. @@ -12110,6 +12119,7 @@ config STM32_TIM8_QE bool "TIM8 QE" default n depends on STM32_TIM8 + select STM32_QE ---help--- Reserve TIM8 for use by QEncoder. diff --git a/arch/arm/src/stm32/Make.defs b/arch/arm/src/stm32/Make.defs index fe8e29dfe33..09f2cf8f3bd 100644 --- a/arch/arm/src/stm32/Make.defs +++ b/arch/arm/src/stm32/Make.defs @@ -189,7 +189,9 @@ CHIP_CSRCS += stm32_capture_lowerhalf.c endif ifeq ($(CONFIG_SENSORS_QENCODER),y) -CHIP_CSRCS += stm32_qencoder.c + ifeq ($(CONFIG_STM32_QE),y) + CHIP_CSRCS += stm32_qencoder.c + endif endif ifeq ($(CONFIG_SENSORS_HALL3PHASE),y) diff --git a/boards/arm/stm32/common/src/CMakeLists.txt b/boards/arm/stm32/common/src/CMakeLists.txt index 6883bfaea51..754fe81ce6e 100644 --- a/boards/arm/stm32/common/src/CMakeLists.txt +++ b/boards/arm/stm32/common/src/CMakeLists.txt @@ -87,7 +87,9 @@ if(CONFIG_SENSORS_ZEROCROSS) endif() if(CONFIG_SENSORS_QENCODER) - list(APPEND SRCS stm32_qencoder.c) + if(CONFIG_STM32_QE) + list(APPEND SRCS stm32_qencoder.c) + endif() endif() if(CONFIG_SENSORS_INA219) diff --git a/boards/arm/stm32/common/src/Make.defs b/boards/arm/stm32/common/src/Make.defs index bacc31b1dcf..2839c86bf71 100644 --- a/boards/arm/stm32/common/src/Make.defs +++ b/boards/arm/stm32/common/src/Make.defs @@ -95,7 +95,9 @@ ifeq ($(CONFIG_SENSORS_ZEROCROSS),y) endif ifeq ($(CONFIG_SENSORS_QENCODER),y) - CSRCS += stm32_qencoder.c + ifeq ($(CONFIG_STM32_QE),y) + CSRCS += stm32_qencoder.c + endif endif ifeq ($(CONFIG_SENSORS_HALL3PHASE),y) diff --git a/boards/arm/stm32/stm32f4discovery/src/stm32_bringup.c b/boards/arm/stm32/stm32f4discovery/src/stm32_bringup.c index a49ce53519d..714945164bd 100644 --- a/boards/arm/stm32/stm32f4discovery/src/stm32_bringup.c +++ b/boards/arm/stm32/stm32f4discovery/src/stm32_bringup.c @@ -476,7 +476,7 @@ int stm32_bringup(void) } #endif -#ifdef CONFIG_SENSORS_QENCODER +#if defined(CONFIG_STM32_QE) && defined(CONFIG_SENSORS_QENCODER) /* Initialize and register the qencoder driver */ ret = board_qencoder_initialize(0, CONFIG_STM32F4DISCO_QETIMER);