0001 # SPDX-License-Identifier: GPL-2.0-only
0002 #
0003 # DMA engine configuration
0004 #
0005
0006 menuconfig DMADEVICES
0007 bool "DMA Engine support"
0008 depends on HAS_DMA
0009 help
0010 DMA engines can do asynchronous data transfers without
0011 involving the host CPU. Currently, this framework can be
0012 used to offload memory copies in the network stack and
0013 RAID operations in the MD driver. This menu only presents
0014 DMA Device drivers supported by the configured arch, it may
0015 be empty in some cases.
0016
0017 config DMADEVICES_DEBUG
0018 bool "DMA Engine debugging"
0019 depends on DMADEVICES != n
0020 help
0021 This is an option for use by developers; most people should
0022 say N here. This enables DMA engine core and driver debugging.
0023
0024 config DMADEVICES_VDEBUG
0025 bool "DMA Engine verbose debugging"
0026 depends on DMADEVICES_DEBUG != n
0027 help
0028 This is an option for use by developers; most people should
0029 say N here. This enables deeper (more verbose) debugging of
0030 the DMA engine core and drivers.
0031
0032
0033 if DMADEVICES
0034
0035 comment "DMA Devices"
0036
0037 #core
0038 config ASYNC_TX_ENABLE_CHANNEL_SWITCH
0039 bool
0040
0041 config ARCH_HAS_ASYNC_TX_FIND_CHANNEL
0042 bool
0043
0044 config DMA_ENGINE
0045 bool
0046
0047 config DMA_VIRTUAL_CHANNELS
0048 tristate
0049
0050 config DMA_ACPI
0051 def_bool y
0052 depends on ACPI
0053
0054 config DMA_OF
0055 def_bool y
0056 depends on OF
0057 select DMA_ENGINE
0058
0059 #devices
0060 config ALTERA_MSGDMA
0061 tristate "Altera / Intel mSGDMA Engine"
0062 depends on HAS_IOMEM
0063 select DMA_ENGINE
0064 help
0065 Enable support for Altera / Intel mSGDMA controller.
0066
0067 config AMBA_PL08X
0068 bool "ARM PrimeCell PL080 or PL081 support"
0069 depends on ARM_AMBA
0070 select DMA_ENGINE
0071 select DMA_VIRTUAL_CHANNELS
0072 help
0073 Say yes if your platform has a PL08x DMAC device which can
0074 provide DMA engine support. This includes the original ARM
0075 PL080 and PL081, Samsungs PL080 derivative and Faraday
0076 Technology's FTDMAC020 PL080 derivative.
0077
0078 config AMCC_PPC440SPE_ADMA
0079 tristate "AMCC PPC440SPe ADMA support"
0080 depends on 440SPe || 440SP
0081 select DMA_ENGINE
0082 select DMA_ENGINE_RAID
0083 select ARCH_HAS_ASYNC_TX_FIND_CHANNEL
0084 select ASYNC_TX_ENABLE_CHANNEL_SWITCH
0085 help
0086 Enable support for the AMCC PPC440SPe RAID engines.
0087
0088 config APPLE_ADMAC
0089 tristate "Apple ADMAC support"
0090 depends on ARCH_APPLE || COMPILE_TEST
0091 select DMA_ENGINE
0092 default ARCH_APPLE
0093 help
0094 Enable support for Audio DMA Controller found on Apple Silicon SoCs.
0095
0096 config AT_HDMAC
0097 tristate "Atmel AHB DMA support"
0098 depends on ARCH_AT91
0099 select DMA_ENGINE
0100 help
0101 Support the Atmel AHB DMA controller.
0102
0103 config AT_XDMAC
0104 tristate "Atmel XDMA support"
0105 depends on ARCH_AT91
0106 select DMA_ENGINE
0107 help
0108 Support the Atmel XDMA controller.
0109
0110 config AXI_DMAC
0111 tristate "Analog Devices AXI-DMAC DMA support"
0112 depends on MICROBLAZE || NIOS2 || ARCH_ZYNQ || ARCH_ZYNQMP || ARCH_INTEL_SOCFPGA || COMPILE_TEST
0113 select DMA_ENGINE
0114 select DMA_VIRTUAL_CHANNELS
0115 select REGMAP_MMIO
0116 help
0117 Enable support for the Analog Devices AXI-DMAC peripheral. This DMA
0118 controller is often used in Analog Devices' reference designs for FPGA
0119 platforms.
0120
0121 config BCM_SBA_RAID
0122 tristate "Broadcom SBA RAID engine support"
0123 depends on ARM64 || COMPILE_TEST
0124 depends on MAILBOX && RAID6_PQ
0125 select DMA_ENGINE
0126 select DMA_ENGINE_RAID
0127 select ASYNC_TX_DISABLE_XOR_VAL_DMA
0128 select ASYNC_TX_DISABLE_PQ_VAL_DMA
0129 default m if ARCH_BCM_IPROC
0130 help
0131 Enable support for Broadcom SBA RAID Engine. The SBA RAID
0132 engine is available on most of the Broadcom iProc SoCs. It
0133 has the capability to offload memcpy, xor and pq computation
0134 for raid5/6.
0135
0136 config DMA_BCM2835
0137 tristate "BCM2835 DMA engine support"
0138 depends on ARCH_BCM2835
0139 select DMA_ENGINE
0140 select DMA_VIRTUAL_CHANNELS
0141
0142 config DMA_JZ4780
0143 tristate "JZ4780 DMA support"
0144 depends on MIPS || COMPILE_TEST
0145 select DMA_ENGINE
0146 select DMA_VIRTUAL_CHANNELS
0147 help
0148 This selects support for the DMA controller in Ingenic JZ4780 SoCs.
0149 If you have a board based on such a SoC and wish to use DMA for
0150 devices which can use the DMA controller, say Y or M here.
0151
0152 config DMA_SA11X0
0153 tristate "SA-11x0 DMA support"
0154 depends on ARCH_SA1100 || COMPILE_TEST
0155 select DMA_ENGINE
0156 select DMA_VIRTUAL_CHANNELS
0157 help
0158 Support the DMA engine found on Intel StrongARM SA-1100 and
0159 SA-1110 SoCs. This DMA engine can only be used with on-chip
0160 devices.
0161
0162 config DMA_SUN4I
0163 tristate "Allwinner A10 DMA SoCs support"
0164 depends on MACH_SUN4I || MACH_SUN5I || MACH_SUN7I
0165 default (MACH_SUN4I || MACH_SUN5I || MACH_SUN7I)
0166 select DMA_ENGINE
0167 select DMA_VIRTUAL_CHANNELS
0168 help
0169 Enable support for the DMA controller present in the sun4i,
0170 sun5i and sun7i Allwinner ARM SoCs.
0171
0172 config DMA_SUN6I
0173 tristate "Allwinner A31 SoCs DMA support"
0174 depends on ARCH_SUNXI || COMPILE_TEST
0175 depends on RESET_CONTROLLER
0176 select DMA_ENGINE
0177 select DMA_VIRTUAL_CHANNELS
0178 help
0179 Support for the DMA engine first found in Allwinner A31 SoCs.
0180
0181 config DW_AXI_DMAC
0182 tristate "Synopsys DesignWare AXI DMA support"
0183 depends on OF || COMPILE_TEST
0184 depends on HAS_IOMEM
0185 select DMA_ENGINE
0186 select DMA_VIRTUAL_CHANNELS
0187 help
0188 Enable support for Synopsys DesignWare AXI DMA controller.
0189 NOTE: This driver wasn't tested on 64 bit platform because
0190 of lack 64 bit platform with Synopsys DW AXI DMAC.
0191
0192 config EP93XX_DMA
0193 bool "Cirrus Logic EP93xx DMA support"
0194 depends on ARCH_EP93XX || COMPILE_TEST
0195 select DMA_ENGINE
0196 help
0197 Enable support for the Cirrus Logic EP93xx M2P/M2M DMA controller.
0198
0199 config FSL_DMA
0200 tristate "Freescale Elo series DMA support"
0201 depends on FSL_SOC
0202 select DMA_ENGINE
0203 select ASYNC_TX_ENABLE_CHANNEL_SWITCH
0204 help
0205 Enable support for the Freescale Elo series DMA controllers.
0206 The Elo is the DMA controller on some mpc82xx and mpc83xx parts, the
0207 EloPlus is on mpc85xx and mpc86xx and Pxxx parts, and the Elo3 is on
0208 some Txxx and Bxxx parts.
0209
0210 config FSL_EDMA
0211 tristate "Freescale eDMA engine support"
0212 depends on OF
0213 select DMA_ENGINE
0214 select DMA_VIRTUAL_CHANNELS
0215 help
0216 Support the Freescale eDMA engine with programmable channel
0217 multiplexing capability for DMA request sources(slot).
0218 This module can be found on Freescale Vybrid and LS-1 SoCs.
0219
0220 config FSL_QDMA
0221 tristate "NXP Layerscape qDMA engine support"
0222 depends on ARM || ARM64
0223 select DMA_ENGINE
0224 select DMA_VIRTUAL_CHANNELS
0225 select DMA_ENGINE_RAID
0226 select ASYNC_TX_ENABLE_CHANNEL_SWITCH
0227 help
0228 Support the NXP Layerscape qDMA engine with command queue and legacy mode.
0229 Channel virtualization is supported through enqueuing of DMA jobs to,
0230 or dequeuing DMA jobs from, different work queues.
0231 This module can be found on NXP Layerscape SoCs.
0232 The qdma driver only work on SoCs with a DPAA hardware block.
0233
0234 config FSL_RAID
0235 tristate "Freescale RAID engine Support"
0236 depends on FSL_SOC && !ASYNC_TX_ENABLE_CHANNEL_SWITCH
0237 select DMA_ENGINE
0238 select DMA_ENGINE_RAID
0239 help
0240 Enable support for Freescale RAID Engine. RAID Engine is
0241 available on some QorIQ SoCs (like P5020/P5040). It has
0242 the capability to offload memcpy, xor and pq computation
0243 for raid5/6.
0244
0245 config HISI_DMA
0246 tristate "HiSilicon DMA Engine support"
0247 depends on ARM64 || COMPILE_TEST
0248 depends on PCI_MSI
0249 select DMA_ENGINE
0250 select DMA_VIRTUAL_CHANNELS
0251 help
0252 Support HiSilicon Kunpeng DMA engine.
0253
0254 config IMG_MDC_DMA
0255 tristate "IMG MDC support"
0256 depends on MIPS || COMPILE_TEST
0257 depends on MFD_SYSCON
0258 select DMA_ENGINE
0259 select DMA_VIRTUAL_CHANNELS
0260 help
0261 Enable support for the IMG multi-threaded DMA controller (MDC).
0262
0263 config IMX_DMA
0264 tristate "i.MX DMA support"
0265 depends on ARCH_MXC
0266 select DMA_ENGINE
0267 help
0268 Support the i.MX DMA engine. This engine is integrated into
0269 Freescale i.MX1/21/27 chips.
0270
0271 config IMX_SDMA
0272 tristate "i.MX SDMA support"
0273 depends on ARCH_MXC
0274 select DMA_ENGINE
0275 select DMA_VIRTUAL_CHANNELS
0276 help
0277 Support the i.MX SDMA engine. This engine is integrated into
0278 Freescale i.MX25/31/35/51/53/6 chips.
0279
0280 config INTEL_IDMA64
0281 tristate "Intel integrated DMA 64-bit support"
0282 select DMA_ENGINE
0283 select DMA_VIRTUAL_CHANNELS
0284 help
0285 Enable DMA support for Intel Low Power Subsystem such as found on
0286 Intel Skylake PCH.
0287
0288 config INTEL_IDXD_BUS
0289 tristate
0290 default INTEL_IDXD
0291
0292 config INTEL_IDXD
0293 tristate "Intel Data Accelerators support"
0294 depends on PCI && X86_64 && !UML
0295 depends on PCI_MSI
0296 depends on PCI_PASID
0297 depends on SBITMAP
0298 select DMA_ENGINE
0299 help
0300 Enable support for the Intel(R) data accelerators present
0301 in Intel Xeon CPU.
0302
0303 Say Y if you have such a platform.
0304
0305 If unsure, say N.
0306
0307 config INTEL_IDXD_COMPAT
0308 bool "Legacy behavior for idxd driver"
0309 depends on PCI && X86_64
0310 select INTEL_IDXD_BUS
0311 help
0312 Compatible driver to support old /sys/bus/dsa/drivers/dsa behavior.
0313 The old behavior performed driver bind/unbind for device and wq
0314 devices all under the dsa driver. The compat driver will emulate
0315 the legacy behavior in order to allow existing support apps (i.e.
0316 accel-config) to continue function. It is expected that accel-config
0317 v3.2 and earlier will need the compat mode. A distro with later
0318 accel-config version can disable this compat config.
0319
0320 Say Y if you have old applications that require such behavior.
0321
0322 If unsure, say N.
0323
0324 # Config symbol that collects all the dependencies that's necessary to
0325 # support shared virtual memory for the devices supported by idxd.
0326 config INTEL_IDXD_SVM
0327 bool "Accelerator Shared Virtual Memory Support"
0328 depends on INTEL_IDXD
0329 depends on INTEL_IOMMU_SVM
0330 depends on PCI_PRI
0331 depends on PCI_PASID
0332 depends on PCI_IOV
0333
0334 config INTEL_IDXD_PERFMON
0335 bool "Intel Data Accelerators performance monitor support"
0336 depends on INTEL_IDXD
0337 help
0338 Enable performance monitor (pmu) support for the Intel(R)
0339 data accelerators present in Intel Xeon CPU. With this
0340 enabled, perf can be used to monitor the DSA (Intel Data
0341 Streaming Accelerator) events described in the Intel DSA
0342 spec.
0343
0344 If unsure, say N.
0345
0346 config INTEL_IOATDMA
0347 tristate "Intel I/OAT DMA support"
0348 depends on PCI && X86_64 && !UML
0349 select DMA_ENGINE
0350 select DMA_ENGINE_RAID
0351 select DCA
0352 help
0353 Enable support for the Intel(R) I/OAT DMA engine present
0354 in recent Intel Xeon chipsets.
0355
0356 Say Y here if you have such a chipset.
0357
0358 If unsure, say N.
0359
0360 config INTEL_IOP_ADMA
0361 tristate "Intel IOP32x ADMA support"
0362 depends on ARCH_IOP32X || COMPILE_TEST
0363 select DMA_ENGINE
0364 select ASYNC_TX_ENABLE_CHANNEL_SWITCH
0365 help
0366 Enable support for the Intel(R) IOP Series RAID engines.
0367
0368 config K3_DMA
0369 tristate "Hisilicon K3 DMA support"
0370 depends on ARCH_HI3xxx || ARCH_HISI || COMPILE_TEST
0371 select DMA_ENGINE
0372 select DMA_VIRTUAL_CHANNELS
0373 help
0374 Support the DMA engine for Hisilicon K3 platform
0375 devices.
0376
0377 config LPC18XX_DMAMUX
0378 bool "NXP LPC18xx/43xx DMA MUX for PL080"
0379 depends on ARCH_LPC18XX || COMPILE_TEST
0380 depends on OF && AMBA_PL08X
0381 select MFD_SYSCON
0382 help
0383 Enable support for DMA on NXP LPC18xx/43xx platforms
0384 with PL080 and multiplexed DMA request lines.
0385
0386 config MCF_EDMA
0387 tristate "Freescale eDMA engine support, ColdFire mcf5441x SoCs"
0388 depends on M5441x || COMPILE_TEST
0389 select DMA_ENGINE
0390 select DMA_VIRTUAL_CHANNELS
0391 help
0392 Support the Freescale ColdFire eDMA engine, 64-channel
0393 implementation that performs complex data transfers with
0394 minimal intervention from a host processor.
0395 This module can be found on Freescale ColdFire mcf5441x SoCs.
0396
0397 config MILBEAUT_HDMAC
0398 tristate "Milbeaut AHB DMA support"
0399 depends on ARCH_MILBEAUT || COMPILE_TEST
0400 depends on OF
0401 select DMA_ENGINE
0402 select DMA_VIRTUAL_CHANNELS
0403 help
0404 Say yes here to support the Socionext Milbeaut
0405 HDMAC device.
0406
0407 config MILBEAUT_XDMAC
0408 tristate "Milbeaut AXI DMA support"
0409 depends on ARCH_MILBEAUT || COMPILE_TEST
0410 depends on OF
0411 select DMA_ENGINE
0412 select DMA_VIRTUAL_CHANNELS
0413 help
0414 Say yes here to support the Socionext Milbeaut
0415 XDMAC device.
0416
0417 config MMP_PDMA
0418 tristate "MMP PDMA support"
0419 depends on ARCH_MMP || ARCH_PXA || COMPILE_TEST
0420 select DMA_ENGINE
0421 help
0422 Support the MMP PDMA engine for PXA and MMP platform.
0423
0424 config MMP_TDMA
0425 tristate "MMP Two-Channel DMA support"
0426 depends on ARCH_MMP || COMPILE_TEST
0427 select DMA_ENGINE
0428 select GENERIC_ALLOCATOR
0429 help
0430 Support the MMP Two-Channel DMA engine.
0431 This engine used for MMP Audio DMA and pxa910 SQU.
0432
0433 config MOXART_DMA
0434 tristate "MOXART DMA support"
0435 depends on ARCH_MOXART
0436 select DMA_ENGINE
0437 select DMA_VIRTUAL_CHANNELS
0438 help
0439 Enable support for the MOXA ART SoC DMA controller.
0440
0441 Say Y here if you enabled MMP ADMA, otherwise say N.
0442
0443 config MPC512X_DMA
0444 tristate "Freescale MPC512x built-in DMA engine support"
0445 depends on PPC_MPC512x || PPC_MPC831x
0446 select DMA_ENGINE
0447 help
0448 Enable support for the Freescale MPC512x built-in DMA engine.
0449
0450 config MV_XOR
0451 bool "Marvell XOR engine support"
0452 depends on PLAT_ORION || ARCH_MVEBU || COMPILE_TEST
0453 select DMA_ENGINE
0454 select DMA_ENGINE_RAID
0455 select ASYNC_TX_ENABLE_CHANNEL_SWITCH
0456 help
0457 Enable support for the Marvell XOR engine.
0458
0459 config MV_XOR_V2
0460 bool "Marvell XOR engine version 2 support "
0461 depends on ARM64
0462 select DMA_ENGINE
0463 select DMA_ENGINE_RAID
0464 select ASYNC_TX_ENABLE_CHANNEL_SWITCH
0465 select GENERIC_MSI_IRQ_DOMAIN
0466 help
0467 Enable support for the Marvell version 2 XOR engine.
0468
0469 This engine provides acceleration for copy, XOR and RAID6
0470 operations, and is available on Marvell Armada 7K and 8K
0471 platforms.
0472
0473 config MXS_DMA
0474 bool "MXS DMA support"
0475 depends on ARCH_MXS || ARCH_MXC || COMPILE_TEST
0476 select STMP_DEVICE
0477 select DMA_ENGINE
0478 help
0479 Support the MXS DMA engine. This engine including APBH-DMA
0480 and APBX-DMA is integrated into some Freescale chips.
0481
0482 config MX3_IPU
0483 bool "MX3x Image Processing Unit support"
0484 depends on ARCH_MXC
0485 select DMA_ENGINE
0486 default y
0487 help
0488 If you plan to use the Image Processing unit in the i.MX3x, say
0489 Y here. If unsure, select Y.
0490
0491 config MX3_IPU_IRQS
0492 int "Number of dynamically mapped interrupts for IPU"
0493 depends on MX3_IPU
0494 range 2 137
0495 default 4
0496 help
0497 Out of 137 interrupt sources on i.MX31 IPU only very few are used.
0498 To avoid bloating the irq_desc[] array we allocate a sufficient
0499 number of IRQ slots and map them dynamically to specific sources.
0500
0501 config NBPFAXI_DMA
0502 tristate "Renesas Type-AXI NBPF DMA support"
0503 select DMA_ENGINE
0504 depends on ARM || COMPILE_TEST
0505 help
0506 Support for "Type-AXI" NBPF DMA IPs from Renesas
0507
0508 config OWL_DMA
0509 tristate "Actions Semi Owl SoCs DMA support"
0510 depends on ARCH_ACTIONS
0511 select DMA_ENGINE
0512 select DMA_VIRTUAL_CHANNELS
0513 help
0514 Enable support for the Actions Semi Owl SoCs DMA controller.
0515
0516 config PCH_DMA
0517 tristate "Intel EG20T PCH / LAPIS Semicon IOH(ML7213/ML7223/ML7831) DMA"
0518 depends on PCI && (X86_32 || COMPILE_TEST)
0519 select DMA_ENGINE
0520 help
0521 Enable support for Intel EG20T PCH DMA engine.
0522
0523 This driver also can be used for LAPIS Semiconductor IOH(Input/
0524 Output Hub), ML7213, ML7223 and ML7831.
0525 ML7213 IOH is for IVI(In-Vehicle Infotainment) use, ML7223 IOH is
0526 for MP(Media Phone) use and ML7831 IOH is for general purpose use.
0527 ML7213/ML7223/ML7831 is companion chip for Intel Atom E6xx series.
0528 ML7213/ML7223/ML7831 is completely compatible for Intel EG20T PCH.
0529
0530 config PL330_DMA
0531 tristate "DMA API Driver for PL330"
0532 select DMA_ENGINE
0533 depends on ARM_AMBA
0534 help
0535 Select if your platform has one or more PL330 DMACs.
0536 You need to provide platform specific settings via
0537 platform_data for a dma-pl330 device.
0538
0539 config PXA_DMA
0540 bool "PXA DMA support"
0541 depends on (ARCH_MMP || ARCH_PXA)
0542 select DMA_ENGINE
0543 select DMA_VIRTUAL_CHANNELS
0544 help
0545 Support the DMA engine for PXA. It is also compatible with MMP PDMA
0546 platform. The internal DMA IP of all PXA variants is supported, with
0547 16 to 32 channels for peripheral to memory or memory to memory
0548 transfers.
0549
0550 config PLX_DMA
0551 tristate "PLX ExpressLane PEX Switch DMA Engine Support"
0552 depends on PCI
0553 select DMA_ENGINE
0554 help
0555 Some PLX ExpressLane PCI Switches support additional DMA engines.
0556 These are exposed via extra functions on the switch's
0557 upstream port. Each function exposes one DMA channel.
0558
0559 config STE_DMA40
0560 bool "ST-Ericsson DMA40 support"
0561 depends on ARCH_U8500
0562 select DMA_ENGINE
0563 help
0564 Support for ST-Ericsson DMA40 controller
0565
0566 config ST_FDMA
0567 tristate "ST FDMA dmaengine support"
0568 depends on ARCH_STI
0569 depends on REMOTEPROC
0570 select ST_SLIM_REMOTEPROC
0571 select DMA_ENGINE
0572 select DMA_VIRTUAL_CHANNELS
0573 help
0574 Enable support for ST FDMA controller.
0575 It supports 16 independent DMA channels, accepts up to 32 DMA requests
0576
0577 Say Y here if you have such a chipset.
0578 If unsure, say N.
0579
0580 config STM32_DMA
0581 bool "STMicroelectronics STM32 DMA support"
0582 depends on ARCH_STM32 || COMPILE_TEST
0583 select DMA_ENGINE
0584 select DMA_VIRTUAL_CHANNELS
0585 help
0586 Enable support for the on-chip DMA controller on STMicroelectronics
0587 STM32 MCUs.
0588 If you have a board based on such a MCU and wish to use DMA say Y
0589 here.
0590
0591 config STM32_DMAMUX
0592 bool "STMicroelectronics STM32 dma multiplexer support"
0593 depends on STM32_DMA || COMPILE_TEST
0594 help
0595 Enable support for the on-chip DMA multiplexer on STMicroelectronics
0596 STM32 MCUs.
0597 If you have a board based on such a MCU and wish to use DMAMUX say Y
0598 here.
0599
0600 config STM32_MDMA
0601 bool "STMicroelectronics STM32 master dma support"
0602 depends on ARCH_STM32 || COMPILE_TEST
0603 depends on OF
0604 select DMA_ENGINE
0605 select DMA_VIRTUAL_CHANNELS
0606 help
0607 Enable support for the on-chip MDMA controller on STMicroelectronics
0608 STM32 platforms.
0609 If you have a board based on STM32 SoC and wish to use the master DMA
0610 say Y here.
0611
0612 config SPRD_DMA
0613 tristate "Spreadtrum DMA support"
0614 depends on ARCH_SPRD || COMPILE_TEST
0615 select DMA_ENGINE
0616 select DMA_VIRTUAL_CHANNELS
0617 help
0618 Enable support for the on-chip DMA controller on Spreadtrum platform.
0619
0620 config S3C24XX_DMAC
0621 bool "Samsung S3C24XX DMA support"
0622 depends on ARCH_S3C24XX || COMPILE_TEST
0623 select DMA_ENGINE
0624 select DMA_VIRTUAL_CHANNELS
0625 help
0626 Support for the Samsung S3C24XX DMA controller driver. The
0627 DMA controller is having multiple DMA channels which can be
0628 configured for different peripherals like audio, UART, SPI.
0629 The DMA controller can transfer data from memory to peripheral,
0630 periphal to memory, periphal to periphal and memory to memory.
0631
0632 config TXX9_DMAC
0633 tristate "Toshiba TXx9 SoC DMA support"
0634 depends on MACH_TX49XX
0635 select DMA_ENGINE
0636 help
0637 Support the TXx9 SoC internal DMA controller. This can be
0638 integrated in chips such as the Toshiba TX4927/38/39.
0639
0640 config TEGRA186_GPC_DMA
0641 tristate "NVIDIA Tegra GPC DMA support"
0642 depends on (ARCH_TEGRA || COMPILE_TEST) && ARCH_DMA_ADDR_T_64BIT
0643 depends on IOMMU_API
0644 select DMA_ENGINE
0645 help
0646 Support for the NVIDIA Tegra General Purpose Central DMA controller.
0647 The DMA controller has multiple DMA channels which can be configured
0648 for different peripherals like UART, SPI, etc which are on APB bus.
0649 This DMA controller transfers data from memory to peripheral FIFO
0650 or vice versa. It also supports memory to memory data transfer.
0651
0652 config TEGRA20_APB_DMA
0653 tristate "NVIDIA Tegra20 APB DMA support"
0654 depends on ARCH_TEGRA || COMPILE_TEST
0655 select DMA_ENGINE
0656 help
0657 Support for the NVIDIA Tegra20 APB DMA controller driver. The
0658 DMA controller is having multiple DMA channel which can be
0659 configured for different peripherals like audio, UART, SPI,
0660 I2C etc which is in APB bus.
0661 This DMA controller transfers data from memory to peripheral fifo
0662 or vice versa. It does not support memory to memory data transfer.
0663
0664 config TEGRA210_ADMA
0665 tristate "NVIDIA Tegra210 ADMA support"
0666 depends on (ARCH_TEGRA_210_SOC || COMPILE_TEST)
0667 select DMA_ENGINE
0668 select DMA_VIRTUAL_CHANNELS
0669 help
0670 Support for the NVIDIA Tegra210 ADMA controller driver. The
0671 DMA controller has multiple DMA channels and is used to service
0672 various audio clients in the Tegra210 audio processing engine
0673 (APE). This DMA controller transfers data from memory to
0674 peripheral and vice versa. It does not support memory to
0675 memory data transfer.
0676
0677 config TIMB_DMA
0678 tristate "Timberdale FPGA DMA support"
0679 depends on MFD_TIMBERDALE || COMPILE_TEST
0680 select DMA_ENGINE
0681 help
0682 Enable support for the Timberdale FPGA DMA engine.
0683
0684 config UNIPHIER_MDMAC
0685 tristate "UniPhier MIO DMAC"
0686 depends on ARCH_UNIPHIER || COMPILE_TEST
0687 depends on OF
0688 select DMA_ENGINE
0689 select DMA_VIRTUAL_CHANNELS
0690 help
0691 Enable support for the MIO DMAC (Media I/O DMA controller) on the
0692 UniPhier platform. This DMA controller is used as the external
0693 DMA engine of the SD/eMMC controllers of the LD4, Pro4, sLD8 SoCs.
0694
0695 config UNIPHIER_XDMAC
0696 tristate "UniPhier XDMAC support"
0697 depends on ARCH_UNIPHIER || COMPILE_TEST
0698 depends on OF
0699 select DMA_ENGINE
0700 select DMA_VIRTUAL_CHANNELS
0701 help
0702 Enable support for the XDMAC (external DMA controller) on the
0703 UniPhier platform. This DMA controller can transfer data from
0704 memory to memory, memory to peripheral and peripheral to memory.
0705
0706 config XGENE_DMA
0707 tristate "APM X-Gene DMA support"
0708 depends on ARCH_XGENE || COMPILE_TEST
0709 select DMA_ENGINE
0710 select DMA_ENGINE_RAID
0711 select ASYNC_TX_ENABLE_CHANNEL_SWITCH
0712 help
0713 Enable support for the APM X-Gene SoC DMA engine.
0714
0715 config XILINX_DMA
0716 tristate "Xilinx AXI DMAS Engine"
0717 depends on (ARCH_ZYNQ || MICROBLAZE || ARM64)
0718 select DMA_ENGINE
0719 help
0720 Enable support for Xilinx AXI VDMA Soft IP.
0721
0722 AXI VDMA engine provides high-bandwidth direct memory access
0723 between memory and AXI4-Stream video type target
0724 peripherals including peripherals which support AXI4-
0725 Stream Video Protocol. It has two stream interfaces/
0726 channels, Memory Mapped to Stream (MM2S) and Stream to
0727 Memory Mapped (S2MM) for the data transfers.
0728 AXI CDMA engine provides high-bandwidth direct memory access
0729 between a memory-mapped source address and a memory-mapped
0730 destination address.
0731 AXI DMA engine provides high-bandwidth one dimensional direct
0732 memory access between memory and AXI4-Stream target peripherals.
0733 AXI MCDMA engine provides high-bandwidth direct memory access
0734 between memory and AXI4-Stream target peripherals. It provides
0735 the scatter gather interface with multiple channels independent
0736 configuration support.
0737
0738 config XILINX_ZYNQMP_DMA
0739 tristate "Xilinx ZynqMP DMA Engine"
0740 depends on ARCH_ZYNQ || MICROBLAZE || ARM64 || COMPILE_TEST
0741 select DMA_ENGINE
0742 help
0743 Enable support for Xilinx ZynqMP DMA controller.
0744
0745 config XILINX_ZYNQMP_DPDMA
0746 tristate "Xilinx DPDMA Engine"
0747 depends on HAS_IOMEM && OF
0748 select DMA_ENGINE
0749 select DMA_VIRTUAL_CHANNELS
0750 help
0751 Enable support for Xilinx ZynqMP DisplayPort DMA. Choose this option
0752 if you have a Xilinx ZynqMP SoC with a DisplayPort subsystem. The
0753 driver provides the dmaengine required by the DisplayPort subsystem
0754 display driver.
0755
0756 # driver files
0757 source "drivers/dma/bestcomm/Kconfig"
0758
0759 source "drivers/dma/mediatek/Kconfig"
0760
0761 source "drivers/dma/ptdma/Kconfig"
0762
0763 source "drivers/dma/qcom/Kconfig"
0764
0765 source "drivers/dma/dw/Kconfig"
0766
0767 source "drivers/dma/dw-edma/Kconfig"
0768
0769 source "drivers/dma/hsu/Kconfig"
0770
0771 source "drivers/dma/sf-pdma/Kconfig"
0772
0773 source "drivers/dma/sh/Kconfig"
0774
0775 source "drivers/dma/ti/Kconfig"
0776
0777 source "drivers/dma/fsl-dpaa2-qdma/Kconfig"
0778
0779 source "drivers/dma/lgm/Kconfig"
0780
0781 # clients
0782 comment "DMA Clients"
0783 depends on DMA_ENGINE
0784
0785 config ASYNC_TX_DMA
0786 bool "Async_tx: Offload support for the async_tx api"
0787 depends on DMA_ENGINE
0788 help
0789 This allows the async_tx api to take advantage of offload engines for
0790 memcpy, memset, xor, and raid6 p+q operations. If your platform has
0791 a dma engine that can perform raid operations and you have enabled
0792 MD_RAID456 say Y.
0793
0794 If unsure, say N.
0795
0796 config DMATEST
0797 tristate "DMA Test client"
0798 depends on DMA_ENGINE
0799 select DMA_ENGINE_RAID
0800 help
0801 Simple DMA test client. Say N unless you're debugging a
0802 DMA Device driver.
0803
0804 config DMA_ENGINE_RAID
0805 bool
0806
0807 endif