diff --git a/drivers/dma/Kconfig.stm32 b/drivers/dma/Kconfig.stm32 index b4d50a7f010..7cf6d778aa3 100644 --- a/drivers/dma/Kconfig.stm32 +++ b/drivers/dma/Kconfig.stm32 @@ -6,6 +6,7 @@ DT_COMPAT_ST_STM32_DMA_V1 := st,stm32-dma-v1 DT_COMPAT_ST_STM32_DMA_V2 := st,stm32-dma-v2 +DT_COMPAT_ST_STM32_DMA_V2BIS := st,stm32-dma-v2bis DT_COMPAT_ST_STM32_DMAMUX := st,stm32-dmamux config DMA_STM32 @@ -25,9 +26,13 @@ config DMA_STM32_V1 config DMA_STM32_V2 bool - default y if $(dt_compat_enabled,$(DT_COMPAT_ST_STM32_DMA_V2)) + default y if $(dt_compat_enabled,$(DT_COMPAT_ST_STM32_DMA_V2)) \ + || $(dt_compat_enabled,$(DT_COMPAT_ST_STM32_DMA_V2BIS)) help - Enable DMA V2 support. + Enable DMA V2 or DMA V2bis support. With the versions V2 of DMA, the + peripheral request must be specified in the dma slot of the dma cell + With the versions V2 bis of DMA, the peripheral request (slot) is not + a parameter of the dma-cell. config DMAMUX_STM32 bool diff --git a/drivers/dma/dma_stm32.c b/drivers/dma/dma_stm32.c index e8d35396d66..ddd3c4be9df 100644 --- a/drivers/dma/dma_stm32.c +++ b/drivers/dma/dma_stm32.c @@ -24,6 +24,8 @@ LOG_MODULE_REGISTER(dma_stm32, CONFIG_DMA_LOG_LEVEL); #define DT_DRV_COMPAT st_stm32_dma_v1 #elif DT_HAS_COMPAT_STATUS_OKAY(st_stm32_dma_v2) #define DT_DRV_COMPAT st_stm32_dma_v2 +#elif DT_HAS_COMPAT_STATUS_OKAY(st_stm32_dma_v2bis) +#define DT_DRV_COMPAT st_stm32_dma_v2bis #endif #if DT_NODE_HAS_STATUS(DT_DRV_INST(0), okay) diff --git a/drivers/serial/Kconfig.stm32 b/drivers/serial/Kconfig.stm32 index 720db7cca7c..44395bce614 100644 --- a/drivers/serial/Kconfig.stm32 +++ b/drivers/serial/Kconfig.stm32 @@ -5,6 +5,7 @@ DT_COMPAT_ST_STM32_DMA_V1 := st,stm32-dma-v1 DT_COMPAT_ST_STM32_DMA_V2 := st,stm32-dma-v2 +DT_COMPAT_ST_STM32_DMA_V2BIS := st,stm32-dma-v2bis config UART_STM32 bool "STM32 MCU serial driver" @@ -13,7 +14,8 @@ config UART_STM32 # the ASYNC implementation requires a DMA controller select SERIAL_SUPPORT_ASYNC \ if $(dt_compat_enabled,$(DT_COMPAT_ST_STM32_DMA_V1)) || \ - $(dt_compat_enabled,$(DT_COMPAT_ST_STM32_DMA_V2)) + $(dt_compat_enabled,$(DT_COMPAT_ST_STM32_DMA_V2)) || \ + $(dt_compat_enabled,$(DT_COMPAT_ST_STM32_DMA_V2BIS)) select DMA if UART_ASYNC_API depends on SOC_FAMILY_STM32 help