Back to home page

OSCL-LXR

 
 

    


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