mirror of
https://github.com/torvalds/linux.git
synced 2024-11-29 07:31:29 +00:00
f561ec8b2b
STM32 DMA3 driver supports the 3 hardware configurations of the STM32 DMA3 controller: - LPDMA (Low Power): 4 channels, no FIFO - GPDMA (General Purpose): 16 channels, FIFO from 8 to 32 bytes - HPDMA (High Performance): 16 channels, FIFO from 8 to 256 bytes Hardware configuration of the channels is retrieved from the hardware configuration registers. The client can specify its channel requirements through device tree. STM32 DMA3 channels can be individually reserved either because they are secure, or dedicated to another CPU. Indeed, channels availability depends on Resource Isolation Framework (RIF) configuration. RIF grants access to buses with Compartment ID (CID) filtering, secure and privilege level. It also assigns DMA channels to one or several processors. DMA channels used by Linux should be CID-filtered and statically assigned to CID1 or shared with other CPUs but using semaphore. In case CID filtering is not configured, dma-channel-mask property can be used to specify available DMA channels to the kernel, otherwise such channels will be marked as reserved and can't be used by Linux. STM32 DMA3 is a new STM32 DMA controller, not a new version of an existing one. stm32-dma is not considered for reuse because register layout is completely different and doesn't rely on descriptors mechanism. stm32-mdma is based on descriptors mechanism but there are significant differences in register layout and descriptors structure. Signed-off-by: Amelie Delaunay <amelie.delaunay@foss.st.com> Link: https://lore.kernel.org/r/20240531150712.2503554-6-amelie.delaunay@foss.st.com Signed-off-by: Vinod Koul <vkoul@kernel.org>
48 lines
1.3 KiB
Plaintext
48 lines
1.3 KiB
Plaintext
# SPDX-License-Identifier: GPL-2.0-only
|
|
#
|
|
# STM32 DMA controllers drivers
|
|
#
|
|
if ARCH_STM32 || COMPILE_TEST
|
|
|
|
config STM32_DMA
|
|
bool "STMicroelectronics STM32 DMA support"
|
|
select DMA_ENGINE
|
|
select DMA_VIRTUAL_CHANNELS
|
|
help
|
|
Enable support for the on-chip DMA controller on STMicroelectronics
|
|
STM32 platforms.
|
|
If you have a board based on STM32 SoC with such DMA controller
|
|
and want to use DMA say Y here.
|
|
|
|
config STM32_DMAMUX
|
|
bool "STMicroelectronics STM32 DMA multiplexer support"
|
|
depends on STM32_DMA
|
|
help
|
|
Enable support for the on-chip DMA multiplexer on STMicroelectronics
|
|
STM32 platforms.
|
|
If you have a board based on STM32 SoC with such DMA multiplexer
|
|
and want to use DMAMUX say Y here.
|
|
|
|
config STM32_MDMA
|
|
bool "STMicroelectronics STM32 master DMA support"
|
|
depends on OF
|
|
select DMA_ENGINE
|
|
select DMA_VIRTUAL_CHANNELS
|
|
help
|
|
Enable support for the on-chip MDMA controller on STMicroelectronics
|
|
STM32 platforms.
|
|
If you have a board based on STM32 SoC with such DMA controller
|
|
and want to use MDMA say Y here.
|
|
|
|
config STM32_DMA3
|
|
tristate "STMicroelectronics STM32 DMA3 support"
|
|
select DMA_ENGINE
|
|
select DMA_VIRTUAL_CHANNELS
|
|
help
|
|
Enable support for the on-chip DMA3 controller on STMicroelectronics
|
|
STM32 platforms.
|
|
If you have a board based on STM32 SoC with such DMA3 controller
|
|
and want to use DMA3, say Y here.
|
|
|
|
endif
|