162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only
262306a36Sopenharmony_ci#
362306a36Sopenharmony_ci# DMA engine configuration
462306a36Sopenharmony_ci#
562306a36Sopenharmony_ci
662306a36Sopenharmony_cimenuconfig DMADEVICES
762306a36Sopenharmony_ci	bool "DMA Engine support"
862306a36Sopenharmony_ci	depends on HAS_DMA
962306a36Sopenharmony_ci	help
1062306a36Sopenharmony_ci	  DMA engines can do asynchronous data transfers without
1162306a36Sopenharmony_ci	  involving the host CPU.  Currently, this framework can be
1262306a36Sopenharmony_ci	  used to offload memory copies in the network stack and
1362306a36Sopenharmony_ci	  RAID operations in the MD driver.  This menu only presents
1462306a36Sopenharmony_ci	  DMA Device drivers supported by the configured arch, it may
1562306a36Sopenharmony_ci	  be empty in some cases.
1662306a36Sopenharmony_ci
1762306a36Sopenharmony_ciconfig DMADEVICES_DEBUG
1862306a36Sopenharmony_ci	bool "DMA Engine debugging"
1962306a36Sopenharmony_ci	depends on DMADEVICES != n
2062306a36Sopenharmony_ci	help
2162306a36Sopenharmony_ci	  This is an option for use by developers; most people should
2262306a36Sopenharmony_ci	  say N here.  This enables DMA engine core and driver debugging.
2362306a36Sopenharmony_ci
2462306a36Sopenharmony_ciconfig DMADEVICES_VDEBUG
2562306a36Sopenharmony_ci	bool "DMA Engine verbose debugging"
2662306a36Sopenharmony_ci	depends on DMADEVICES_DEBUG != n
2762306a36Sopenharmony_ci	help
2862306a36Sopenharmony_ci	  This is an option for use by developers; most people should
2962306a36Sopenharmony_ci	  say N here.  This enables deeper (more verbose) debugging of
3062306a36Sopenharmony_ci	  the DMA engine core and drivers.
3162306a36Sopenharmony_ci
3262306a36Sopenharmony_ci
3362306a36Sopenharmony_ciif DMADEVICES
3462306a36Sopenharmony_ci
3562306a36Sopenharmony_cicomment "DMA Devices"
3662306a36Sopenharmony_ci
3762306a36Sopenharmony_ci#core
3862306a36Sopenharmony_ciconfig ASYNC_TX_ENABLE_CHANNEL_SWITCH
3962306a36Sopenharmony_ci	bool
4062306a36Sopenharmony_ci
4162306a36Sopenharmony_ciconfig ARCH_HAS_ASYNC_TX_FIND_CHANNEL
4262306a36Sopenharmony_ci	bool
4362306a36Sopenharmony_ci
4462306a36Sopenharmony_ciconfig DMA_ENGINE
4562306a36Sopenharmony_ci	bool
4662306a36Sopenharmony_ci
4762306a36Sopenharmony_ciconfig DMA_VIRTUAL_CHANNELS
4862306a36Sopenharmony_ci	tristate
4962306a36Sopenharmony_ci
5062306a36Sopenharmony_ciconfig DMA_ACPI
5162306a36Sopenharmony_ci	def_bool y
5262306a36Sopenharmony_ci	depends on ACPI
5362306a36Sopenharmony_ci
5462306a36Sopenharmony_ciconfig DMA_OF
5562306a36Sopenharmony_ci	def_bool y
5662306a36Sopenharmony_ci	depends on OF
5762306a36Sopenharmony_ci	select DMA_ENGINE
5862306a36Sopenharmony_ci
5962306a36Sopenharmony_ci#devices
6062306a36Sopenharmony_ciconfig ALTERA_MSGDMA
6162306a36Sopenharmony_ci	tristate "Altera / Intel mSGDMA Engine"
6262306a36Sopenharmony_ci	depends on HAS_IOMEM
6362306a36Sopenharmony_ci	select DMA_ENGINE
6462306a36Sopenharmony_ci	help
6562306a36Sopenharmony_ci	  Enable support for Altera / Intel mSGDMA controller.
6662306a36Sopenharmony_ci
6762306a36Sopenharmony_ciconfig AMBA_PL08X
6862306a36Sopenharmony_ci	bool "ARM PrimeCell PL080 or PL081 support"
6962306a36Sopenharmony_ci	depends on ARM_AMBA
7062306a36Sopenharmony_ci	select DMA_ENGINE
7162306a36Sopenharmony_ci	select DMA_VIRTUAL_CHANNELS
7262306a36Sopenharmony_ci	help
7362306a36Sopenharmony_ci	  Say yes if your platform has a PL08x DMAC device which can
7462306a36Sopenharmony_ci	  provide DMA engine support. This includes the original ARM
7562306a36Sopenharmony_ci	  PL080 and PL081, Samsungs PL080 derivative and Faraday
7662306a36Sopenharmony_ci	  Technology's FTDMAC020 PL080 derivative.
7762306a36Sopenharmony_ci
7862306a36Sopenharmony_ciconfig AMCC_PPC440SPE_ADMA
7962306a36Sopenharmony_ci	tristate "AMCC PPC440SPe ADMA support"
8062306a36Sopenharmony_ci	depends on 440SPe || 440SP
8162306a36Sopenharmony_ci	select DMA_ENGINE
8262306a36Sopenharmony_ci	select DMA_ENGINE_RAID
8362306a36Sopenharmony_ci	select ARCH_HAS_ASYNC_TX_FIND_CHANNEL
8462306a36Sopenharmony_ci	select ASYNC_TX_ENABLE_CHANNEL_SWITCH
8562306a36Sopenharmony_ci	help
8662306a36Sopenharmony_ci	  Enable support for the AMCC PPC440SPe RAID engines.
8762306a36Sopenharmony_ci
8862306a36Sopenharmony_ciconfig APPLE_ADMAC
8962306a36Sopenharmony_ci	tristate "Apple ADMAC support"
9062306a36Sopenharmony_ci	depends on ARCH_APPLE || COMPILE_TEST
9162306a36Sopenharmony_ci	select DMA_ENGINE
9262306a36Sopenharmony_ci	default ARCH_APPLE
9362306a36Sopenharmony_ci	help
9462306a36Sopenharmony_ci	  Enable support for Audio DMA Controller found on Apple Silicon SoCs.
9562306a36Sopenharmony_ci
9662306a36Sopenharmony_ciconfig AT_HDMAC
9762306a36Sopenharmony_ci	tristate "Atmel AHB DMA support"
9862306a36Sopenharmony_ci	depends on ARCH_AT91
9962306a36Sopenharmony_ci	select DMA_ENGINE
10062306a36Sopenharmony_ci	select DMA_VIRTUAL_CHANNELS
10162306a36Sopenharmony_ci	help
10262306a36Sopenharmony_ci	  Support the Atmel AHB DMA controller.
10362306a36Sopenharmony_ci
10462306a36Sopenharmony_ciconfig AT_XDMAC
10562306a36Sopenharmony_ci	tristate "Atmel XDMA support"
10662306a36Sopenharmony_ci	depends on ARCH_AT91
10762306a36Sopenharmony_ci	select DMA_ENGINE
10862306a36Sopenharmony_ci	help
10962306a36Sopenharmony_ci	  Support the Atmel XDMA controller.
11062306a36Sopenharmony_ci
11162306a36Sopenharmony_ciconfig AXI_DMAC
11262306a36Sopenharmony_ci	tristate "Analog Devices AXI-DMAC DMA support"
11362306a36Sopenharmony_ci	depends on MICROBLAZE || NIOS2 || ARCH_ZYNQ || ARCH_ZYNQMP || ARCH_INTEL_SOCFPGA || COMPILE_TEST
11462306a36Sopenharmony_ci	select DMA_ENGINE
11562306a36Sopenharmony_ci	select DMA_VIRTUAL_CHANNELS
11662306a36Sopenharmony_ci	select REGMAP_MMIO
11762306a36Sopenharmony_ci	help
11862306a36Sopenharmony_ci	  Enable support for the Analog Devices AXI-DMAC peripheral. This DMA
11962306a36Sopenharmony_ci	  controller is often used in Analog Devices' reference designs for FPGA
12062306a36Sopenharmony_ci	  platforms.
12162306a36Sopenharmony_ci
12262306a36Sopenharmony_ciconfig BCM_SBA_RAID
12362306a36Sopenharmony_ci	tristate "Broadcom SBA RAID engine support"
12462306a36Sopenharmony_ci	depends on ARM64 || COMPILE_TEST
12562306a36Sopenharmony_ci	depends on MAILBOX && RAID6_PQ
12662306a36Sopenharmony_ci	select DMA_ENGINE
12762306a36Sopenharmony_ci	select DMA_ENGINE_RAID
12862306a36Sopenharmony_ci	select ASYNC_TX_DISABLE_XOR_VAL_DMA
12962306a36Sopenharmony_ci	select ASYNC_TX_DISABLE_PQ_VAL_DMA
13062306a36Sopenharmony_ci	default m if ARCH_BCM_IPROC
13162306a36Sopenharmony_ci	help
13262306a36Sopenharmony_ci	  Enable support for Broadcom SBA RAID Engine. The SBA RAID
13362306a36Sopenharmony_ci	  engine is available on most of the Broadcom iProc SoCs. It
13462306a36Sopenharmony_ci	  has the capability to offload memcpy, xor and pq computation
13562306a36Sopenharmony_ci	  for raid5/6.
13662306a36Sopenharmony_ci
13762306a36Sopenharmony_ciconfig DMA_BCM2835
13862306a36Sopenharmony_ci	tristate "BCM2835 DMA engine support"
13962306a36Sopenharmony_ci	depends on ARCH_BCM2835
14062306a36Sopenharmony_ci	select DMA_ENGINE
14162306a36Sopenharmony_ci	select DMA_VIRTUAL_CHANNELS
14262306a36Sopenharmony_ci
14362306a36Sopenharmony_ciconfig DMA_JZ4780
14462306a36Sopenharmony_ci	tristate "JZ4780 DMA support"
14562306a36Sopenharmony_ci	depends on MIPS || COMPILE_TEST
14662306a36Sopenharmony_ci	select DMA_ENGINE
14762306a36Sopenharmony_ci	select DMA_VIRTUAL_CHANNELS
14862306a36Sopenharmony_ci	help
14962306a36Sopenharmony_ci	  This selects support for the DMA controller in Ingenic JZ4780 SoCs.
15062306a36Sopenharmony_ci	  If you have a board based on such a SoC and wish to use DMA for
15162306a36Sopenharmony_ci	  devices which can use the DMA controller, say Y or M here.
15262306a36Sopenharmony_ci
15362306a36Sopenharmony_ciconfig DMA_SA11X0
15462306a36Sopenharmony_ci	tristate "SA-11x0 DMA support"
15562306a36Sopenharmony_ci	depends on ARCH_SA1100 || COMPILE_TEST
15662306a36Sopenharmony_ci	select DMA_ENGINE
15762306a36Sopenharmony_ci	select DMA_VIRTUAL_CHANNELS
15862306a36Sopenharmony_ci	help
15962306a36Sopenharmony_ci	  Support the DMA engine found on Intel StrongARM SA-1100 and
16062306a36Sopenharmony_ci	  SA-1110 SoCs.  This DMA engine can only be used with on-chip
16162306a36Sopenharmony_ci	  devices.
16262306a36Sopenharmony_ci
16362306a36Sopenharmony_ciconfig DMA_SUN4I
16462306a36Sopenharmony_ci	tristate "Allwinner A10 DMA SoCs support"
16562306a36Sopenharmony_ci	depends on MACH_SUN4I || MACH_SUN5I || MACH_SUN7I
16662306a36Sopenharmony_ci	default (MACH_SUN4I || MACH_SUN5I || MACH_SUN7I)
16762306a36Sopenharmony_ci	select DMA_ENGINE
16862306a36Sopenharmony_ci	select DMA_VIRTUAL_CHANNELS
16962306a36Sopenharmony_ci	help
17062306a36Sopenharmony_ci	  Enable support for the DMA controller present in the sun4i,
17162306a36Sopenharmony_ci	  sun5i and sun7i Allwinner ARM SoCs.
17262306a36Sopenharmony_ci
17362306a36Sopenharmony_ciconfig DMA_SUN6I
17462306a36Sopenharmony_ci	tristate "Allwinner A31 SoCs DMA support"
17562306a36Sopenharmony_ci	depends on ARCH_SUNXI || COMPILE_TEST
17662306a36Sopenharmony_ci	depends on RESET_CONTROLLER
17762306a36Sopenharmony_ci	select DMA_ENGINE
17862306a36Sopenharmony_ci	select DMA_VIRTUAL_CHANNELS
17962306a36Sopenharmony_ci	help
18062306a36Sopenharmony_ci	  Support for the DMA engine first found in Allwinner A31 SoCs.
18162306a36Sopenharmony_ci
18262306a36Sopenharmony_ciconfig DW_AXI_DMAC
18362306a36Sopenharmony_ci	tristate "Synopsys DesignWare AXI DMA support"
18462306a36Sopenharmony_ci	depends on OF
18562306a36Sopenharmony_ci	depends on HAS_IOMEM
18662306a36Sopenharmony_ci	select DMA_ENGINE
18762306a36Sopenharmony_ci	select DMA_VIRTUAL_CHANNELS
18862306a36Sopenharmony_ci	help
18962306a36Sopenharmony_ci	  Enable support for Synopsys DesignWare AXI DMA controller.
19062306a36Sopenharmony_ci	  NOTE: This driver wasn't tested on 64 bit platform because
19162306a36Sopenharmony_ci	  of lack 64 bit platform with Synopsys DW AXI DMAC.
19262306a36Sopenharmony_ci
19362306a36Sopenharmony_ciconfig EP93XX_DMA
19462306a36Sopenharmony_ci	bool "Cirrus Logic EP93xx DMA support"
19562306a36Sopenharmony_ci	depends on ARCH_EP93XX || COMPILE_TEST
19662306a36Sopenharmony_ci	select DMA_ENGINE
19762306a36Sopenharmony_ci	help
19862306a36Sopenharmony_ci	  Enable support for the Cirrus Logic EP93xx M2P/M2M DMA controller.
19962306a36Sopenharmony_ci
20062306a36Sopenharmony_ciconfig FSL_DMA
20162306a36Sopenharmony_ci	tristate "Freescale Elo series DMA support"
20262306a36Sopenharmony_ci	depends on FSL_SOC
20362306a36Sopenharmony_ci	select DMA_ENGINE
20462306a36Sopenharmony_ci	select ASYNC_TX_ENABLE_CHANNEL_SWITCH
20562306a36Sopenharmony_ci	help
20662306a36Sopenharmony_ci	  Enable support for the Freescale Elo series DMA controllers.
20762306a36Sopenharmony_ci	  The Elo is the DMA controller on some mpc82xx and mpc83xx parts, the
20862306a36Sopenharmony_ci	  EloPlus is on mpc85xx and mpc86xx and Pxxx parts, and the Elo3 is on
20962306a36Sopenharmony_ci	  some Txxx and Bxxx parts.
21062306a36Sopenharmony_ci
21162306a36Sopenharmony_ciconfig FSL_EDMA
21262306a36Sopenharmony_ci	tristate "Freescale eDMA engine support"
21362306a36Sopenharmony_ci	depends on OF
21462306a36Sopenharmony_ci	depends on HAS_IOMEM
21562306a36Sopenharmony_ci	select DMA_ENGINE
21662306a36Sopenharmony_ci	select DMA_VIRTUAL_CHANNELS
21762306a36Sopenharmony_ci	help
21862306a36Sopenharmony_ci	  Support the Freescale eDMA engine with programmable channel
21962306a36Sopenharmony_ci	  multiplexing capability for DMA request sources(slot).
22062306a36Sopenharmony_ci	  This module can be found on Freescale Vybrid and LS-1 SoCs.
22162306a36Sopenharmony_ci
22262306a36Sopenharmony_ciconfig FSL_QDMA
22362306a36Sopenharmony_ci	tristate "NXP Layerscape qDMA engine support"
22462306a36Sopenharmony_ci	depends on ARM || ARM64
22562306a36Sopenharmony_ci	select DMA_ENGINE
22662306a36Sopenharmony_ci	select DMA_VIRTUAL_CHANNELS
22762306a36Sopenharmony_ci	select DMA_ENGINE_RAID
22862306a36Sopenharmony_ci	select ASYNC_TX_ENABLE_CHANNEL_SWITCH
22962306a36Sopenharmony_ci	help
23062306a36Sopenharmony_ci	 Support the NXP Layerscape qDMA engine with command queue and legacy mode.
23162306a36Sopenharmony_ci	 Channel virtualization is supported through enqueuing of DMA jobs to,
23262306a36Sopenharmony_ci	 or dequeuing DMA jobs from, different work queues.
23362306a36Sopenharmony_ci	 This module can be found on NXP Layerscape SoCs.
23462306a36Sopenharmony_ci	  The qdma driver only work on  SoCs with a DPAA hardware block.
23562306a36Sopenharmony_ci
23662306a36Sopenharmony_ciconfig FSL_RAID
23762306a36Sopenharmony_ci	tristate "Freescale RAID engine Support"
23862306a36Sopenharmony_ci	depends on FSL_SOC && !ASYNC_TX_ENABLE_CHANNEL_SWITCH
23962306a36Sopenharmony_ci	select DMA_ENGINE
24062306a36Sopenharmony_ci	select DMA_ENGINE_RAID
24162306a36Sopenharmony_ci	help
24262306a36Sopenharmony_ci	  Enable support for Freescale RAID Engine. RAID Engine is
24362306a36Sopenharmony_ci	  available on some QorIQ SoCs (like P5020/P5040). It has
24462306a36Sopenharmony_ci	  the capability to offload memcpy, xor and pq computation
24562306a36Sopenharmony_ci	  for raid5/6.
24662306a36Sopenharmony_ci
24762306a36Sopenharmony_ciconfig HISI_DMA
24862306a36Sopenharmony_ci	tristate "HiSilicon DMA Engine support"
24962306a36Sopenharmony_ci	depends on ARCH_HISI || COMPILE_TEST
25062306a36Sopenharmony_ci	depends on PCI_MSI
25162306a36Sopenharmony_ci	select DMA_ENGINE
25262306a36Sopenharmony_ci	select DMA_VIRTUAL_CHANNELS
25362306a36Sopenharmony_ci	help
25462306a36Sopenharmony_ci	  Support HiSilicon Kunpeng DMA engine.
25562306a36Sopenharmony_ci
25662306a36Sopenharmony_ciconfig IMG_MDC_DMA
25762306a36Sopenharmony_ci	tristate "IMG MDC support"
25862306a36Sopenharmony_ci	depends on MIPS || COMPILE_TEST
25962306a36Sopenharmony_ci	depends on MFD_SYSCON
26062306a36Sopenharmony_ci	select DMA_ENGINE
26162306a36Sopenharmony_ci	select DMA_VIRTUAL_CHANNELS
26262306a36Sopenharmony_ci	help
26362306a36Sopenharmony_ci	  Enable support for the IMG multi-threaded DMA controller (MDC).
26462306a36Sopenharmony_ci
26562306a36Sopenharmony_ciconfig IMX_DMA
26662306a36Sopenharmony_ci	tristate "i.MX DMA support"
26762306a36Sopenharmony_ci	depends on ARCH_MXC
26862306a36Sopenharmony_ci	select DMA_ENGINE
26962306a36Sopenharmony_ci	help
27062306a36Sopenharmony_ci	  Support the i.MX DMA engine. This engine is integrated into
27162306a36Sopenharmony_ci	  Freescale i.MX1/21/27 chips.
27262306a36Sopenharmony_ci
27362306a36Sopenharmony_ciconfig IMX_SDMA
27462306a36Sopenharmony_ci	tristate "i.MX SDMA support"
27562306a36Sopenharmony_ci	depends on ARCH_MXC
27662306a36Sopenharmony_ci	select DMA_ENGINE
27762306a36Sopenharmony_ci	select DMA_VIRTUAL_CHANNELS
27862306a36Sopenharmony_ci	help
27962306a36Sopenharmony_ci	  Support the i.MX SDMA engine. This engine is integrated into
28062306a36Sopenharmony_ci	  Freescale i.MX25/31/35/51/53/6 chips.
28162306a36Sopenharmony_ci
28262306a36Sopenharmony_ciconfig INTEL_IDMA64
28362306a36Sopenharmony_ci	tristate "Intel integrated DMA 64-bit support"
28462306a36Sopenharmony_ci	depends on HAS_IOMEM
28562306a36Sopenharmony_ci	select DMA_ENGINE
28662306a36Sopenharmony_ci	select DMA_VIRTUAL_CHANNELS
28762306a36Sopenharmony_ci	help
28862306a36Sopenharmony_ci	  Enable DMA support for Intel Low Power Subsystem such as found on
28962306a36Sopenharmony_ci	  Intel Skylake PCH.
29062306a36Sopenharmony_ci
29162306a36Sopenharmony_ciconfig INTEL_IDXD_BUS
29262306a36Sopenharmony_ci	tristate
29362306a36Sopenharmony_ci	default INTEL_IDXD
29462306a36Sopenharmony_ci
29562306a36Sopenharmony_ciconfig INTEL_IDXD
29662306a36Sopenharmony_ci	tristate "Intel Data Accelerators support"
29762306a36Sopenharmony_ci	depends on PCI && X86_64 && !UML
29862306a36Sopenharmony_ci	depends on PCI_MSI
29962306a36Sopenharmony_ci	depends on PCI_PASID
30062306a36Sopenharmony_ci	depends on SBITMAP
30162306a36Sopenharmony_ci	select DMA_ENGINE
30262306a36Sopenharmony_ci	help
30362306a36Sopenharmony_ci	  Enable support for the Intel(R) data accelerators present
30462306a36Sopenharmony_ci	  in Intel Xeon CPU.
30562306a36Sopenharmony_ci
30662306a36Sopenharmony_ci	  Say Y if you have such a platform.
30762306a36Sopenharmony_ci
30862306a36Sopenharmony_ci	  If unsure, say N.
30962306a36Sopenharmony_ci
31062306a36Sopenharmony_ciconfig INTEL_IDXD_COMPAT
31162306a36Sopenharmony_ci	bool "Legacy behavior for idxd driver"
31262306a36Sopenharmony_ci	depends on PCI && X86_64
31362306a36Sopenharmony_ci	select INTEL_IDXD_BUS
31462306a36Sopenharmony_ci	help
31562306a36Sopenharmony_ci	  Compatible driver to support old /sys/bus/dsa/drivers/dsa behavior.
31662306a36Sopenharmony_ci	  The old behavior performed driver bind/unbind for device and wq
31762306a36Sopenharmony_ci	  devices all under the dsa driver. The compat driver will emulate
31862306a36Sopenharmony_ci	  the legacy behavior in order to allow existing support apps (i.e.
31962306a36Sopenharmony_ci	  accel-config) to continue function. It is expected that accel-config
32062306a36Sopenharmony_ci	  v3.2 and earlier will need the compat mode. A distro with later
32162306a36Sopenharmony_ci	  accel-config version can disable this compat config.
32262306a36Sopenharmony_ci
32362306a36Sopenharmony_ci	  Say Y if you have old applications that require such behavior.
32462306a36Sopenharmony_ci
32562306a36Sopenharmony_ci	  If unsure, say N.
32662306a36Sopenharmony_ci
32762306a36Sopenharmony_ci# Config symbol that collects all the dependencies that's necessary to
32862306a36Sopenharmony_ci# support shared virtual memory for the devices supported by idxd.
32962306a36Sopenharmony_ciconfig INTEL_IDXD_SVM
33062306a36Sopenharmony_ci	bool "Accelerator Shared Virtual Memory Support"
33162306a36Sopenharmony_ci	depends on INTEL_IDXD
33262306a36Sopenharmony_ci	depends on INTEL_IOMMU_SVM
33362306a36Sopenharmony_ci	depends on PCI_PRI
33462306a36Sopenharmony_ci	depends on PCI_PASID
33562306a36Sopenharmony_ci	depends on PCI_IOV
33662306a36Sopenharmony_ci
33762306a36Sopenharmony_ciconfig INTEL_IDXD_PERFMON
33862306a36Sopenharmony_ci	bool "Intel Data Accelerators performance monitor support"
33962306a36Sopenharmony_ci	depends on INTEL_IDXD
34062306a36Sopenharmony_ci	help
34162306a36Sopenharmony_ci	  Enable performance monitor (pmu) support for the Intel(R)
34262306a36Sopenharmony_ci	  data accelerators present in Intel Xeon CPU.  With this
34362306a36Sopenharmony_ci	  enabled, perf can be used to monitor the DSA (Intel Data
34462306a36Sopenharmony_ci	  Streaming Accelerator) events described in the Intel DSA
34562306a36Sopenharmony_ci	  spec.
34662306a36Sopenharmony_ci
34762306a36Sopenharmony_ci	  If unsure, say N.
34862306a36Sopenharmony_ci
34962306a36Sopenharmony_ciconfig INTEL_IOATDMA
35062306a36Sopenharmony_ci	tristate "Intel I/OAT DMA support"
35162306a36Sopenharmony_ci	depends on PCI && X86_64 && !UML
35262306a36Sopenharmony_ci	select DMA_ENGINE
35362306a36Sopenharmony_ci	select DMA_ENGINE_RAID
35462306a36Sopenharmony_ci	select DCA
35562306a36Sopenharmony_ci	help
35662306a36Sopenharmony_ci	  Enable support for the Intel(R) I/OAT DMA engine present
35762306a36Sopenharmony_ci	  in recent Intel Xeon chipsets.
35862306a36Sopenharmony_ci
35962306a36Sopenharmony_ci	  Say Y here if you have such a chipset.
36062306a36Sopenharmony_ci
36162306a36Sopenharmony_ci	  If unsure, say N.
36262306a36Sopenharmony_ci
36362306a36Sopenharmony_ciconfig K3_DMA
36462306a36Sopenharmony_ci	tristate "Hisilicon K3 DMA support"
36562306a36Sopenharmony_ci	depends on ARCH_HI3xxx || ARCH_HISI || COMPILE_TEST
36662306a36Sopenharmony_ci	select DMA_ENGINE
36762306a36Sopenharmony_ci	select DMA_VIRTUAL_CHANNELS
36862306a36Sopenharmony_ci	help
36962306a36Sopenharmony_ci	  Support the DMA engine for Hisilicon K3 platform
37062306a36Sopenharmony_ci	  devices.
37162306a36Sopenharmony_ci
37262306a36Sopenharmony_ciconfig LPC18XX_DMAMUX
37362306a36Sopenharmony_ci	bool "NXP LPC18xx/43xx DMA MUX for PL080"
37462306a36Sopenharmony_ci	depends on ARCH_LPC18XX || COMPILE_TEST
37562306a36Sopenharmony_ci	depends on OF && AMBA_PL08X
37662306a36Sopenharmony_ci	select MFD_SYSCON
37762306a36Sopenharmony_ci	help
37862306a36Sopenharmony_ci	  Enable support for DMA on NXP LPC18xx/43xx platforms
37962306a36Sopenharmony_ci	  with PL080 and multiplexed DMA request lines.
38062306a36Sopenharmony_ci
38162306a36Sopenharmony_ciconfig MCF_EDMA
38262306a36Sopenharmony_ci	tristate "Freescale eDMA engine support, ColdFire mcf5441x SoCs"
38362306a36Sopenharmony_ci	depends on M5441x || COMPILE_TEST
38462306a36Sopenharmony_ci	select DMA_ENGINE
38562306a36Sopenharmony_ci	select DMA_VIRTUAL_CHANNELS
38662306a36Sopenharmony_ci	help
38762306a36Sopenharmony_ci	  Support the Freescale ColdFire eDMA engine, 64-channel
38862306a36Sopenharmony_ci	  implementation that performs complex data transfers with
38962306a36Sopenharmony_ci	  minimal intervention from a host processor.
39062306a36Sopenharmony_ci	  This module can be found on Freescale ColdFire mcf5441x SoCs.
39162306a36Sopenharmony_ci
39262306a36Sopenharmony_ciconfig MILBEAUT_HDMAC
39362306a36Sopenharmony_ci	tristate "Milbeaut AHB DMA support"
39462306a36Sopenharmony_ci	depends on ARCH_MILBEAUT || COMPILE_TEST
39562306a36Sopenharmony_ci	depends on OF
39662306a36Sopenharmony_ci	select DMA_ENGINE
39762306a36Sopenharmony_ci	select DMA_VIRTUAL_CHANNELS
39862306a36Sopenharmony_ci	help
39962306a36Sopenharmony_ci	  Say yes here to support the Socionext Milbeaut
40062306a36Sopenharmony_ci	  HDMAC device.
40162306a36Sopenharmony_ci
40262306a36Sopenharmony_ciconfig MILBEAUT_XDMAC
40362306a36Sopenharmony_ci	tristate "Milbeaut AXI DMA support"
40462306a36Sopenharmony_ci	depends on ARCH_MILBEAUT || COMPILE_TEST
40562306a36Sopenharmony_ci	depends on OF
40662306a36Sopenharmony_ci	select DMA_ENGINE
40762306a36Sopenharmony_ci	select DMA_VIRTUAL_CHANNELS
40862306a36Sopenharmony_ci	help
40962306a36Sopenharmony_ci	  Say yes here to support the Socionext Milbeaut
41062306a36Sopenharmony_ci	  XDMAC device.
41162306a36Sopenharmony_ci
41262306a36Sopenharmony_ciconfig MMP_PDMA
41362306a36Sopenharmony_ci	tristate "MMP PDMA support"
41462306a36Sopenharmony_ci	depends on ARCH_MMP || ARCH_PXA || COMPILE_TEST
41562306a36Sopenharmony_ci	select DMA_ENGINE
41662306a36Sopenharmony_ci	help
41762306a36Sopenharmony_ci	  Support the MMP PDMA engine for PXA and MMP platform.
41862306a36Sopenharmony_ci
41962306a36Sopenharmony_ciconfig MMP_TDMA
42062306a36Sopenharmony_ci	tristate "MMP Two-Channel DMA support"
42162306a36Sopenharmony_ci	depends on ARCH_MMP || COMPILE_TEST
42262306a36Sopenharmony_ci	select DMA_ENGINE
42362306a36Sopenharmony_ci	select GENERIC_ALLOCATOR
42462306a36Sopenharmony_ci	help
42562306a36Sopenharmony_ci	  Support the MMP Two-Channel DMA engine.
42662306a36Sopenharmony_ci	  This engine used for MMP Audio DMA and pxa910 SQU.
42762306a36Sopenharmony_ci
42862306a36Sopenharmony_ciconfig MOXART_DMA
42962306a36Sopenharmony_ci	tristate "MOXART DMA support"
43062306a36Sopenharmony_ci	depends on ARCH_MOXART
43162306a36Sopenharmony_ci	select DMA_ENGINE
43262306a36Sopenharmony_ci	select DMA_VIRTUAL_CHANNELS
43362306a36Sopenharmony_ci	help
43462306a36Sopenharmony_ci	  Enable support for the MOXA ART SoC DMA controller.
43562306a36Sopenharmony_ci 
43662306a36Sopenharmony_ci	  Say Y here if you enabled MMP ADMA, otherwise say N.
43762306a36Sopenharmony_ci
43862306a36Sopenharmony_ciconfig MPC512X_DMA
43962306a36Sopenharmony_ci	tristate "Freescale MPC512x built-in DMA engine support"
44062306a36Sopenharmony_ci	depends on PPC_MPC512x || PPC_MPC831x
44162306a36Sopenharmony_ci	select DMA_ENGINE
44262306a36Sopenharmony_ci	help
44362306a36Sopenharmony_ci	  Enable support for the Freescale MPC512x built-in DMA engine.
44462306a36Sopenharmony_ci
44562306a36Sopenharmony_ciconfig MV_XOR
44662306a36Sopenharmony_ci	bool "Marvell XOR engine support"
44762306a36Sopenharmony_ci	depends on PLAT_ORION || ARCH_MVEBU || COMPILE_TEST
44862306a36Sopenharmony_ci	select DMA_ENGINE
44962306a36Sopenharmony_ci	select DMA_ENGINE_RAID
45062306a36Sopenharmony_ci	select ASYNC_TX_ENABLE_CHANNEL_SWITCH
45162306a36Sopenharmony_ci	help
45262306a36Sopenharmony_ci	  Enable support for the Marvell XOR engine.
45362306a36Sopenharmony_ci
45462306a36Sopenharmony_ciconfig MV_XOR_V2
45562306a36Sopenharmony_ci	bool "Marvell XOR engine version 2 support "
45662306a36Sopenharmony_ci	depends on ARM64
45762306a36Sopenharmony_ci	select DMA_ENGINE
45862306a36Sopenharmony_ci	select DMA_ENGINE_RAID
45962306a36Sopenharmony_ci	select ASYNC_TX_ENABLE_CHANNEL_SWITCH
46062306a36Sopenharmony_ci	select GENERIC_MSI_IRQ
46162306a36Sopenharmony_ci	help
46262306a36Sopenharmony_ci	  Enable support for the Marvell version 2 XOR engine.
46362306a36Sopenharmony_ci
46462306a36Sopenharmony_ci	  This engine provides acceleration for copy, XOR and RAID6
46562306a36Sopenharmony_ci	  operations, and is available on Marvell Armada 7K and 8K
46662306a36Sopenharmony_ci	  platforms.
46762306a36Sopenharmony_ci
46862306a36Sopenharmony_ciconfig MXS_DMA
46962306a36Sopenharmony_ci	bool "MXS DMA support"
47062306a36Sopenharmony_ci	depends on ARCH_MXS || ARCH_MXC || COMPILE_TEST
47162306a36Sopenharmony_ci	select STMP_DEVICE
47262306a36Sopenharmony_ci	select DMA_ENGINE
47362306a36Sopenharmony_ci	help
47462306a36Sopenharmony_ci	  Support the MXS DMA engine. This engine including APBH-DMA
47562306a36Sopenharmony_ci	  and APBX-DMA is integrated into some Freescale chips.
47662306a36Sopenharmony_ci
47762306a36Sopenharmony_ciconfig NBPFAXI_DMA
47862306a36Sopenharmony_ci	tristate "Renesas Type-AXI NBPF DMA support"
47962306a36Sopenharmony_ci	select DMA_ENGINE
48062306a36Sopenharmony_ci	depends on ARM || COMPILE_TEST
48162306a36Sopenharmony_ci	help
48262306a36Sopenharmony_ci	  Support for "Type-AXI" NBPF DMA IPs from Renesas
48362306a36Sopenharmony_ci
48462306a36Sopenharmony_ciconfig OWL_DMA
48562306a36Sopenharmony_ci	tristate "Actions Semi Owl SoCs DMA support"
48662306a36Sopenharmony_ci	depends on ARCH_ACTIONS
48762306a36Sopenharmony_ci	select DMA_ENGINE
48862306a36Sopenharmony_ci	select DMA_VIRTUAL_CHANNELS
48962306a36Sopenharmony_ci	help
49062306a36Sopenharmony_ci	  Enable support for the Actions Semi Owl SoCs DMA controller.
49162306a36Sopenharmony_ci
49262306a36Sopenharmony_ciconfig PCH_DMA
49362306a36Sopenharmony_ci	tristate "Intel EG20T PCH / LAPIS Semicon IOH(ML7213/ML7223/ML7831) DMA"
49462306a36Sopenharmony_ci	depends on PCI && (X86_32 || COMPILE_TEST)
49562306a36Sopenharmony_ci	select DMA_ENGINE
49662306a36Sopenharmony_ci	help
49762306a36Sopenharmony_ci	  Enable support for Intel EG20T PCH DMA engine.
49862306a36Sopenharmony_ci
49962306a36Sopenharmony_ci	  This driver also can be used for LAPIS Semiconductor IOH(Input/
50062306a36Sopenharmony_ci	  Output Hub), ML7213, ML7223 and ML7831.
50162306a36Sopenharmony_ci	  ML7213 IOH is for IVI(In-Vehicle Infotainment) use, ML7223 IOH is
50262306a36Sopenharmony_ci	  for MP(Media Phone) use and ML7831 IOH is for general purpose use.
50362306a36Sopenharmony_ci	  ML7213/ML7223/ML7831 is companion chip for Intel Atom E6xx series.
50462306a36Sopenharmony_ci	  ML7213/ML7223/ML7831 is completely compatible for Intel EG20T PCH.
50562306a36Sopenharmony_ci
50662306a36Sopenharmony_ciconfig PL330_DMA
50762306a36Sopenharmony_ci	tristate "DMA API Driver for PL330"
50862306a36Sopenharmony_ci	select DMA_ENGINE
50962306a36Sopenharmony_ci	depends on ARM_AMBA
51062306a36Sopenharmony_ci	help
51162306a36Sopenharmony_ci	  Select if your platform has one or more PL330 DMACs.
51262306a36Sopenharmony_ci	  You need to provide platform specific settings via
51362306a36Sopenharmony_ci	  platform_data for a dma-pl330 device.
51462306a36Sopenharmony_ci
51562306a36Sopenharmony_ciconfig PXA_DMA
51662306a36Sopenharmony_ci	bool "PXA DMA support"
51762306a36Sopenharmony_ci	depends on (ARCH_MMP || ARCH_PXA)
51862306a36Sopenharmony_ci	select DMA_ENGINE
51962306a36Sopenharmony_ci	select DMA_VIRTUAL_CHANNELS
52062306a36Sopenharmony_ci	help
52162306a36Sopenharmony_ci	  Support the DMA engine for PXA. It is also compatible with MMP PDMA
52262306a36Sopenharmony_ci	  platform. The internal DMA IP of all PXA variants is supported, with
52362306a36Sopenharmony_ci	  16 to 32 channels for peripheral to memory or memory to memory
52462306a36Sopenharmony_ci	  transfers.
52562306a36Sopenharmony_ci
52662306a36Sopenharmony_ciconfig PLX_DMA
52762306a36Sopenharmony_ci	tristate "PLX ExpressLane PEX Switch DMA Engine Support"
52862306a36Sopenharmony_ci	depends on PCI
52962306a36Sopenharmony_ci	select DMA_ENGINE
53062306a36Sopenharmony_ci	help
53162306a36Sopenharmony_ci	  Some PLX ExpressLane PCI Switches support additional DMA engines.
53262306a36Sopenharmony_ci	  These are exposed via extra functions on the switch's
53362306a36Sopenharmony_ci	  upstream port. Each function exposes one DMA channel.
53462306a36Sopenharmony_ci
53562306a36Sopenharmony_ciconfig STE_DMA40
53662306a36Sopenharmony_ci	bool "ST-Ericsson DMA40 support"
53762306a36Sopenharmony_ci	depends on ARCH_U8500
53862306a36Sopenharmony_ci	select DMA_ENGINE
53962306a36Sopenharmony_ci	select SRAM
54062306a36Sopenharmony_ci	help
54162306a36Sopenharmony_ci	  Support for ST-Ericsson DMA40 controller
54262306a36Sopenharmony_ci
54362306a36Sopenharmony_ciconfig ST_FDMA
54462306a36Sopenharmony_ci	tristate "ST FDMA dmaengine support"
54562306a36Sopenharmony_ci	depends on ARCH_STI
54662306a36Sopenharmony_ci	depends on REMOTEPROC
54762306a36Sopenharmony_ci	select ST_SLIM_REMOTEPROC
54862306a36Sopenharmony_ci	select DMA_ENGINE
54962306a36Sopenharmony_ci	select DMA_VIRTUAL_CHANNELS
55062306a36Sopenharmony_ci	help
55162306a36Sopenharmony_ci	  Enable support for ST FDMA controller.
55262306a36Sopenharmony_ci	  It supports 16 independent DMA channels, accepts up to 32 DMA requests
55362306a36Sopenharmony_ci
55462306a36Sopenharmony_ci	  Say Y here if you have such a chipset.
55562306a36Sopenharmony_ci	  If unsure, say N.
55662306a36Sopenharmony_ci
55762306a36Sopenharmony_ciconfig STM32_DMA
55862306a36Sopenharmony_ci	bool "STMicroelectronics STM32 DMA support"
55962306a36Sopenharmony_ci	depends on ARCH_STM32 || COMPILE_TEST
56062306a36Sopenharmony_ci	select DMA_ENGINE
56162306a36Sopenharmony_ci	select DMA_VIRTUAL_CHANNELS
56262306a36Sopenharmony_ci	help
56362306a36Sopenharmony_ci	  Enable support for the on-chip DMA controller on STMicroelectronics
56462306a36Sopenharmony_ci	  STM32 MCUs.
56562306a36Sopenharmony_ci	  If you have a board based on such a MCU and wish to use DMA say Y
56662306a36Sopenharmony_ci	  here.
56762306a36Sopenharmony_ci
56862306a36Sopenharmony_ciconfig STM32_DMAMUX
56962306a36Sopenharmony_ci	bool "STMicroelectronics STM32 dma multiplexer support"
57062306a36Sopenharmony_ci	depends on STM32_DMA || COMPILE_TEST
57162306a36Sopenharmony_ci	help
57262306a36Sopenharmony_ci	  Enable support for the on-chip DMA multiplexer on STMicroelectronics
57362306a36Sopenharmony_ci	  STM32 MCUs.
57462306a36Sopenharmony_ci	  If you have a board based on such a MCU and wish to use DMAMUX say Y
57562306a36Sopenharmony_ci	  here.
57662306a36Sopenharmony_ci
57762306a36Sopenharmony_ciconfig STM32_MDMA
57862306a36Sopenharmony_ci	bool "STMicroelectronics STM32 master dma support"
57962306a36Sopenharmony_ci	depends on ARCH_STM32 || COMPILE_TEST
58062306a36Sopenharmony_ci	depends on OF
58162306a36Sopenharmony_ci	select DMA_ENGINE
58262306a36Sopenharmony_ci	select DMA_VIRTUAL_CHANNELS
58362306a36Sopenharmony_ci	help
58462306a36Sopenharmony_ci	  Enable support for the on-chip MDMA controller on STMicroelectronics
58562306a36Sopenharmony_ci	  STM32 platforms.
58662306a36Sopenharmony_ci	  If you have a board based on STM32 SoC and wish to use the master DMA
58762306a36Sopenharmony_ci	  say Y here.
58862306a36Sopenharmony_ci
58962306a36Sopenharmony_ciconfig SPRD_DMA
59062306a36Sopenharmony_ci	tristate "Spreadtrum DMA support"
59162306a36Sopenharmony_ci	depends on ARCH_SPRD || COMPILE_TEST
59262306a36Sopenharmony_ci	select DMA_ENGINE
59362306a36Sopenharmony_ci	select DMA_VIRTUAL_CHANNELS
59462306a36Sopenharmony_ci	help
59562306a36Sopenharmony_ci	  Enable support for the on-chip DMA controller on Spreadtrum platform.
59662306a36Sopenharmony_ci
59762306a36Sopenharmony_ciconfig TXX9_DMAC
59862306a36Sopenharmony_ci	tristate "Toshiba TXx9 SoC DMA support"
59962306a36Sopenharmony_ci	depends on MACH_TX49XX
60062306a36Sopenharmony_ci	select DMA_ENGINE
60162306a36Sopenharmony_ci	help
60262306a36Sopenharmony_ci	  Support the TXx9 SoC internal DMA controller.  This can be
60362306a36Sopenharmony_ci	  integrated in chips such as the Toshiba TX4927/38/39.
60462306a36Sopenharmony_ci
60562306a36Sopenharmony_ciconfig TEGRA186_GPC_DMA
60662306a36Sopenharmony_ci	tristate "NVIDIA Tegra GPC DMA support"
60762306a36Sopenharmony_ci	depends on (ARCH_TEGRA || COMPILE_TEST) && ARCH_DMA_ADDR_T_64BIT
60862306a36Sopenharmony_ci	depends on IOMMU_API
60962306a36Sopenharmony_ci	select DMA_ENGINE
61062306a36Sopenharmony_ci	select DMA_VIRTUAL_CHANNELS
61162306a36Sopenharmony_ci	help
61262306a36Sopenharmony_ci	  Support for the NVIDIA Tegra General Purpose Central DMA controller.
61362306a36Sopenharmony_ci	  The DMA controller has multiple DMA channels which can be configured
61462306a36Sopenharmony_ci	  for different peripherals like UART, SPI, etc which are on APB bus.
61562306a36Sopenharmony_ci	  This DMA controller transfers data from memory to peripheral FIFO
61662306a36Sopenharmony_ci	  or vice versa. It also supports memory to memory data transfer.
61762306a36Sopenharmony_ci
61862306a36Sopenharmony_ciconfig TEGRA20_APB_DMA
61962306a36Sopenharmony_ci	tristate "NVIDIA Tegra20 APB DMA support"
62062306a36Sopenharmony_ci	depends on ARCH_TEGRA || COMPILE_TEST
62162306a36Sopenharmony_ci	select DMA_ENGINE
62262306a36Sopenharmony_ci	help
62362306a36Sopenharmony_ci	  Support for the NVIDIA Tegra20 APB DMA controller driver. The
62462306a36Sopenharmony_ci	  DMA controller is having multiple DMA channel which can be
62562306a36Sopenharmony_ci	  configured for different peripherals like audio, UART, SPI,
62662306a36Sopenharmony_ci	  I2C etc which is in APB bus.
62762306a36Sopenharmony_ci	  This DMA controller transfers data from memory to peripheral fifo
62862306a36Sopenharmony_ci	  or vice versa. It does not support memory to memory data transfer.
62962306a36Sopenharmony_ci
63062306a36Sopenharmony_ciconfig TEGRA210_ADMA
63162306a36Sopenharmony_ci	tristate "NVIDIA Tegra210 ADMA support"
63262306a36Sopenharmony_ci	depends on (ARCH_TEGRA || COMPILE_TEST)
63362306a36Sopenharmony_ci	select DMA_ENGINE
63462306a36Sopenharmony_ci	select DMA_VIRTUAL_CHANNELS
63562306a36Sopenharmony_ci	help
63662306a36Sopenharmony_ci	  Support for the NVIDIA Tegra210/Tegra186/Tegra194/Tegra234 ADMA
63762306a36Sopenharmony_ci	  controller driver. The DMA controller has multiple DMA channels
63862306a36Sopenharmony_ci	  and is used to service various audio clients in the Tegra210
63962306a36Sopenharmony_ci	  audio processing engine (APE). This DMA controller transfers
64062306a36Sopenharmony_ci	  data from memory to peripheral and vice versa. It does not
64162306a36Sopenharmony_ci	  support memory to memory data transfer.
64262306a36Sopenharmony_ci
64362306a36Sopenharmony_ciconfig TIMB_DMA
64462306a36Sopenharmony_ci	tristate "Timberdale FPGA DMA support"
64562306a36Sopenharmony_ci	depends on MFD_TIMBERDALE || COMPILE_TEST
64662306a36Sopenharmony_ci	select DMA_ENGINE
64762306a36Sopenharmony_ci	help
64862306a36Sopenharmony_ci	  Enable support for the Timberdale FPGA DMA engine.
64962306a36Sopenharmony_ci
65062306a36Sopenharmony_ciconfig UNIPHIER_MDMAC
65162306a36Sopenharmony_ci	tristate "UniPhier MIO DMAC"
65262306a36Sopenharmony_ci	depends on ARCH_UNIPHIER || COMPILE_TEST
65362306a36Sopenharmony_ci	depends on OF
65462306a36Sopenharmony_ci	select DMA_ENGINE
65562306a36Sopenharmony_ci	select DMA_VIRTUAL_CHANNELS
65662306a36Sopenharmony_ci	help
65762306a36Sopenharmony_ci	  Enable support for the MIO DMAC (Media I/O DMA controller) on the
65862306a36Sopenharmony_ci	  UniPhier platform.  This DMA controller is used as the external
65962306a36Sopenharmony_ci	  DMA engine of the SD/eMMC controllers of the LD4, Pro4, sLD8 SoCs.
66062306a36Sopenharmony_ci
66162306a36Sopenharmony_ciconfig UNIPHIER_XDMAC
66262306a36Sopenharmony_ci	tristate "UniPhier XDMAC support"
66362306a36Sopenharmony_ci	depends on ARCH_UNIPHIER || COMPILE_TEST
66462306a36Sopenharmony_ci	depends on OF
66562306a36Sopenharmony_ci	select DMA_ENGINE
66662306a36Sopenharmony_ci	select DMA_VIRTUAL_CHANNELS
66762306a36Sopenharmony_ci	help
66862306a36Sopenharmony_ci	  Enable support for the XDMAC (external DMA controller) on the
66962306a36Sopenharmony_ci	  UniPhier platform. This DMA controller can transfer data from
67062306a36Sopenharmony_ci	  memory to memory, memory to peripheral and peripheral to memory.
67162306a36Sopenharmony_ci
67262306a36Sopenharmony_ciconfig XGENE_DMA
67362306a36Sopenharmony_ci	tristate "APM X-Gene DMA support"
67462306a36Sopenharmony_ci	depends on ARCH_XGENE || COMPILE_TEST
67562306a36Sopenharmony_ci	select DMA_ENGINE
67662306a36Sopenharmony_ci	select DMA_ENGINE_RAID
67762306a36Sopenharmony_ci	select ASYNC_TX_ENABLE_CHANNEL_SWITCH
67862306a36Sopenharmony_ci	help
67962306a36Sopenharmony_ci	  Enable support for the APM X-Gene SoC DMA engine.
68062306a36Sopenharmony_ci
68162306a36Sopenharmony_ciconfig XILINX_DMA
68262306a36Sopenharmony_ci	tristate "Xilinx AXI DMAS Engine"
68362306a36Sopenharmony_ci	depends on HAS_IOMEM
68462306a36Sopenharmony_ci	select DMA_ENGINE
68562306a36Sopenharmony_ci	help
68662306a36Sopenharmony_ci	  Enable support for Xilinx AXI VDMA Soft IP.
68762306a36Sopenharmony_ci
68862306a36Sopenharmony_ci	  AXI VDMA engine provides high-bandwidth direct memory access
68962306a36Sopenharmony_ci	  between memory and AXI4-Stream video type target
69062306a36Sopenharmony_ci	  peripherals including peripherals which support AXI4-
69162306a36Sopenharmony_ci	  Stream Video Protocol.  It has two stream interfaces/
69262306a36Sopenharmony_ci	  channels, Memory Mapped to Stream (MM2S) and Stream to
69362306a36Sopenharmony_ci	  Memory Mapped (S2MM) for the data transfers.
69462306a36Sopenharmony_ci	  AXI CDMA engine provides high-bandwidth direct memory access
69562306a36Sopenharmony_ci	  between a memory-mapped source address and a memory-mapped
69662306a36Sopenharmony_ci	  destination address.
69762306a36Sopenharmony_ci	  AXI DMA engine provides high-bandwidth one dimensional direct
69862306a36Sopenharmony_ci	  memory access between memory and AXI4-Stream target peripherals.
69962306a36Sopenharmony_ci	  AXI MCDMA engine provides high-bandwidth direct memory access
70062306a36Sopenharmony_ci	  between memory and AXI4-Stream target peripherals. It provides
70162306a36Sopenharmony_ci	  the scatter gather interface with multiple channels independent
70262306a36Sopenharmony_ci	  configuration support.
70362306a36Sopenharmony_ci
70462306a36Sopenharmony_ciconfig XILINX_XDMA
70562306a36Sopenharmony_ci	tristate "Xilinx DMA/Bridge Subsystem DMA Engine"
70662306a36Sopenharmony_ci	depends on HAS_IOMEM
70762306a36Sopenharmony_ci	select DMA_ENGINE
70862306a36Sopenharmony_ci	select DMA_VIRTUAL_CHANNELS
70962306a36Sopenharmony_ci	select REGMAP_MMIO
71062306a36Sopenharmony_ci	help
71162306a36Sopenharmony_ci	  Enable support for Xilinx DMA/Bridge Subsystem DMA engine. The DMA
71262306a36Sopenharmony_ci	  provides high performance block data movement between Host memory
71362306a36Sopenharmony_ci	  and the DMA subsystem. These direct memory transfers can be both in
71462306a36Sopenharmony_ci	  the Host to Card (H2C) and Card to Host (C2H) transfers.
71562306a36Sopenharmony_ci	  The core also provides up to 16 user interrupt wires that generate
71662306a36Sopenharmony_ci	  interrupts to the host.
71762306a36Sopenharmony_ci
71862306a36Sopenharmony_ciconfig XILINX_ZYNQMP_DMA
71962306a36Sopenharmony_ci	tristate "Xilinx ZynqMP DMA Engine"
72062306a36Sopenharmony_ci	depends on ARCH_ZYNQ || MICROBLAZE || ARM64 || COMPILE_TEST
72162306a36Sopenharmony_ci	select DMA_ENGINE
72262306a36Sopenharmony_ci	help
72362306a36Sopenharmony_ci	  Enable support for Xilinx ZynqMP DMA controller.
72462306a36Sopenharmony_ci
72562306a36Sopenharmony_ciconfig XILINX_ZYNQMP_DPDMA
72662306a36Sopenharmony_ci	tristate "Xilinx DPDMA Engine"
72762306a36Sopenharmony_ci	depends on HAS_IOMEM && OF
72862306a36Sopenharmony_ci	select DMA_ENGINE
72962306a36Sopenharmony_ci	select DMA_VIRTUAL_CHANNELS
73062306a36Sopenharmony_ci	help
73162306a36Sopenharmony_ci	  Enable support for Xilinx ZynqMP DisplayPort DMA. Choose this option
73262306a36Sopenharmony_ci	  if you have a Xilinx ZynqMP SoC with a DisplayPort subsystem. The
73362306a36Sopenharmony_ci	  driver provides the dmaengine required by the DisplayPort subsystem
73462306a36Sopenharmony_ci	  display driver.
73562306a36Sopenharmony_ci
73662306a36Sopenharmony_ci# driver files
73762306a36Sopenharmony_cisource "drivers/dma/bestcomm/Kconfig"
73862306a36Sopenharmony_ci
73962306a36Sopenharmony_cisource "drivers/dma/mediatek/Kconfig"
74062306a36Sopenharmony_ci
74162306a36Sopenharmony_cisource "drivers/dma/ptdma/Kconfig"
74262306a36Sopenharmony_ci
74362306a36Sopenharmony_cisource "drivers/dma/qcom/Kconfig"
74462306a36Sopenharmony_ci
74562306a36Sopenharmony_cisource "drivers/dma/dw/Kconfig"
74662306a36Sopenharmony_ci
74762306a36Sopenharmony_cisource "drivers/dma/dw-edma/Kconfig"
74862306a36Sopenharmony_ci
74962306a36Sopenharmony_cisource "drivers/dma/hsu/Kconfig"
75062306a36Sopenharmony_ci
75162306a36Sopenharmony_cisource "drivers/dma/sf-pdma/Kconfig"
75262306a36Sopenharmony_ci
75362306a36Sopenharmony_cisource "drivers/dma/sh/Kconfig"
75462306a36Sopenharmony_ci
75562306a36Sopenharmony_cisource "drivers/dma/ti/Kconfig"
75662306a36Sopenharmony_ci
75762306a36Sopenharmony_cisource "drivers/dma/fsl-dpaa2-qdma/Kconfig"
75862306a36Sopenharmony_ci
75962306a36Sopenharmony_cisource "drivers/dma/lgm/Kconfig"
76062306a36Sopenharmony_ci
76162306a36Sopenharmony_ci# clients
76262306a36Sopenharmony_cicomment "DMA Clients"
76362306a36Sopenharmony_ci	depends on DMA_ENGINE
76462306a36Sopenharmony_ci
76562306a36Sopenharmony_ciconfig ASYNC_TX_DMA
76662306a36Sopenharmony_ci	bool "Async_tx: Offload support for the async_tx api"
76762306a36Sopenharmony_ci	depends on DMA_ENGINE
76862306a36Sopenharmony_ci	help
76962306a36Sopenharmony_ci	  This allows the async_tx api to take advantage of offload engines for
77062306a36Sopenharmony_ci	  memcpy, memset, xor, and raid6 p+q operations.  If your platform has
77162306a36Sopenharmony_ci	  a dma engine that can perform raid operations and you have enabled
77262306a36Sopenharmony_ci	  MD_RAID456 say Y.
77362306a36Sopenharmony_ci
77462306a36Sopenharmony_ci	  If unsure, say N.
77562306a36Sopenharmony_ci
77662306a36Sopenharmony_ciconfig DMATEST
77762306a36Sopenharmony_ci	tristate "DMA Test client"
77862306a36Sopenharmony_ci	depends on DMA_ENGINE
77962306a36Sopenharmony_ci	select DMA_ENGINE_RAID
78062306a36Sopenharmony_ci	help
78162306a36Sopenharmony_ci	  Simple DMA test client. Say N unless you're debugging a
78262306a36Sopenharmony_ci	  DMA Device driver.
78362306a36Sopenharmony_ci
78462306a36Sopenharmony_ciconfig DMA_ENGINE_RAID
78562306a36Sopenharmony_ci	bool
78662306a36Sopenharmony_ci
78762306a36Sopenharmony_ciendif
788