# DMA configuration options

# Copyright (c) 2016 Intel Corporation
# Copyright (c) 2019 Song Qiang <songqiang1304521@gmail.com>
# SPDX-License-Identifier: Apache-2.0

DT_COMPAT_ST_STM32_DMA_V1 := st,stm32-dma-v1
DT_COMPAT_ST_STM32_DMA_V2 := st,stm32-dma-v2
DT_COMPAT_ST_STM32_DMAMUX := st,stm32-dmamux

config DMA_STM32
	bool "Enable STM32 DMA driver"
	select USE_STM32_LL_DMA
	depends on SOC_FAMILY_STM32
	help
	  DMA driver for STM32 series SoCs.

if DMA_STM32

config DMA_STM32_V1
	bool
	default y if $(dt_compat_enabled,$(DT_COMPAT_ST_STM32_DMA_V1))
	help
	  Enable DMA V1 support.

config DMA_STM32_V2
	bool
	default y if $(dt_compat_enabled,$(DT_COMPAT_ST_STM32_DMA_V2))
	help
	  Enable DMA V2 support.

config DMAMUX_STM32
	bool
	depends on DMA_STM32_V2
	default $(dt_compat_enabled,$(DT_COMPAT_ST_STM32_DMAMUX))
	help
	  Enable DMAMUX support.

config DMA_STM32_SHARED_IRQS
	bool
	default y
	depends on SOC_SERIES_STM32F0X || SOC_SERIES_STM32L0X
	help
	  Enable shared IRQ support on devices where channels share 1 IRQ.

endif # DMA_STM32
