mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-29 15:43:59 +08:00
6973886ad5
Add PDMA driver, sf-pdma, to enable DMA engine on HiFive Unleashed Rev A00 board. - Implement dmaengine APIs, support MEM_TO_MEM async copy. - Tested by DMA Test client - Supports 4 channels DMA, each channel has 1 done and 1 err interrupt connected to platform-level interrupt controller (PLIC). - Depends on DMA_ENGINE and DMA_VIRTUAL_CHANNELS The datasheet is here: https://static.dev.sifive.com/FU540-C000-v1.0.pdf Follow the DMAengine controller doc, "./Documentation/driver-api/dmaengine/provider.rst" to implement DMA engine. And use the dma test client in doc, "./Documentation/driver-api/dmaengine/dmatest.rst", to test. Each DMA channel has separate HW regs and support done and error ISRs. 4 channels share 1 done and 1 err ISRs. There's no expander/arbitrator in DMA HW. ------ ------ | |--< done 23 >--|ch 0| | |--< err 24 >--| | (dma0chan0) | | ------ | | ------ | |--< done 25 >--|ch 1| | |--< err 26 >--| | (dma0chan1) |PLIC| ------ | | ------ | |--< done 27 >--|ch 2| | |--< err 28 >--| | (dma0chan2) | | ------ | | ------ | |--< done 29 >--|ch 3| | |--< err 30 >--| | (dma0chan3) ------ ------ Signed-off-by: Green Wan <green.wan@sifive.com> Link: https://lore.kernel.org/r/20191107084955.7580-4-green.wan@sifive.com Signed-off-by: Vinod Koul <vkoul@kernel.org>
87 lines
3.1 KiB
Makefile
87 lines
3.1 KiB
Makefile
# SPDX-License-Identifier: GPL-2.0
|
|
#dmaengine debug flags
|
|
subdir-ccflags-$(CONFIG_DMADEVICES_DEBUG) := -DDEBUG
|
|
subdir-ccflags-$(CONFIG_DMADEVICES_VDEBUG) += -DVERBOSE_DEBUG
|
|
|
|
#core
|
|
obj-$(CONFIG_DMA_ENGINE) += dmaengine.o
|
|
obj-$(CONFIG_DMA_VIRTUAL_CHANNELS) += virt-dma.o
|
|
obj-$(CONFIG_DMA_ACPI) += acpi-dma.o
|
|
obj-$(CONFIG_DMA_OF) += of-dma.o
|
|
|
|
#dmatest
|
|
obj-$(CONFIG_DMATEST) += dmatest.o
|
|
|
|
#devices
|
|
obj-$(CONFIG_ALTERA_MSGDMA) += altera-msgdma.o
|
|
obj-$(CONFIG_AMBA_PL08X) += amba-pl08x.o
|
|
obj-$(CONFIG_AMCC_PPC440SPE_ADMA) += ppc4xx/
|
|
obj-$(CONFIG_AT_HDMAC) += at_hdmac.o
|
|
obj-$(CONFIG_AT_XDMAC) += at_xdmac.o
|
|
obj-$(CONFIG_AXI_DMAC) += dma-axi-dmac.o
|
|
obj-$(CONFIG_BCM_SBA_RAID) += bcm-sba-raid.o
|
|
obj-$(CONFIG_COH901318) += coh901318.o coh901318_lli.o
|
|
obj-$(CONFIG_DMA_BCM2835) += bcm2835-dma.o
|
|
obj-$(CONFIG_DMA_JZ4780) += dma-jz4780.o
|
|
obj-$(CONFIG_DMA_SA11X0) += sa11x0-dma.o
|
|
obj-$(CONFIG_DMA_SUN4I) += sun4i-dma.o
|
|
obj-$(CONFIG_DMA_SUN6I) += sun6i-dma.o
|
|
obj-$(CONFIG_DW_AXI_DMAC) += dw-axi-dmac/
|
|
obj-$(CONFIG_DW_DMAC_CORE) += dw/
|
|
obj-$(CONFIG_DW_EDMA) += dw-edma/
|
|
obj-$(CONFIG_EP93XX_DMA) += ep93xx_dma.o
|
|
obj-$(CONFIG_FSL_DMA) += fsldma.o
|
|
obj-$(CONFIG_FSL_EDMA) += fsl-edma.o fsl-edma-common.o
|
|
obj-$(CONFIG_MCF_EDMA) += mcf-edma.o fsl-edma-common.o
|
|
obj-$(CONFIG_FSL_QDMA) += fsl-qdma.o
|
|
obj-$(CONFIG_FSL_RAID) += fsl_raid.o
|
|
obj-$(CONFIG_HSU_DMA) += hsu/
|
|
obj-$(CONFIG_IMG_MDC_DMA) += img-mdc-dma.o
|
|
obj-$(CONFIG_IMX_DMA) += imx-dma.o
|
|
obj-$(CONFIG_IMX_SDMA) += imx-sdma.o
|
|
obj-$(CONFIG_INTEL_IDMA64) += idma64.o
|
|
obj-$(CONFIG_INTEL_IOATDMA) += ioat/
|
|
obj-$(CONFIG_INTEL_IOP_ADMA) += iop-adma.o
|
|
obj-$(CONFIG_INTEL_MIC_X100_DMA) += mic_x100_dma.o
|
|
obj-$(CONFIG_K3_DMA) += k3dma.o
|
|
obj-$(CONFIG_LPC18XX_DMAMUX) += lpc18xx-dmamux.o
|
|
obj-$(CONFIG_MILBEAUT_HDMAC) += milbeaut-hdmac.o
|
|
obj-$(CONFIG_MILBEAUT_XDMAC) += milbeaut-xdmac.o
|
|
obj-$(CONFIG_MMP_PDMA) += mmp_pdma.o
|
|
obj-$(CONFIG_MMP_TDMA) += mmp_tdma.o
|
|
obj-$(CONFIG_MOXART_DMA) += moxart-dma.o
|
|
obj-$(CONFIG_MPC512X_DMA) += mpc512x_dma.o
|
|
obj-$(CONFIG_MV_XOR) += mv_xor.o
|
|
obj-$(CONFIG_MV_XOR_V2) += mv_xor_v2.o
|
|
obj-$(CONFIG_MXS_DMA) += mxs-dma.o
|
|
obj-$(CONFIG_MX3_IPU) += ipu/
|
|
obj-$(CONFIG_NBPFAXI_DMA) += nbpfaxi.o
|
|
obj-$(CONFIG_OWL_DMA) += owl-dma.o
|
|
obj-$(CONFIG_PCH_DMA) += pch_dma.o
|
|
obj-$(CONFIG_PL330_DMA) += pl330.o
|
|
obj-$(CONFIG_PPC_BESTCOMM) += bestcomm/
|
|
obj-$(CONFIG_PXA_DMA) += pxa_dma.o
|
|
obj-$(CONFIG_RENESAS_DMA) += sh/
|
|
obj-$(CONFIG_SF_PDMA) += sf-pdma/
|
|
obj-$(CONFIG_SIRF_DMA) += sirf-dma.o
|
|
obj-$(CONFIG_STE_DMA40) += ste_dma40.o ste_dma40_ll.o
|
|
obj-$(CONFIG_STM32_DMA) += stm32-dma.o
|
|
obj-$(CONFIG_STM32_DMAMUX) += stm32-dmamux.o
|
|
obj-$(CONFIG_STM32_MDMA) += stm32-mdma.o
|
|
obj-$(CONFIG_SPRD_DMA) += sprd-dma.o
|
|
obj-$(CONFIG_S3C24XX_DMAC) += s3c24xx-dma.o
|
|
obj-$(CONFIG_TXX9_DMAC) += txx9dmac.o
|
|
obj-$(CONFIG_TEGRA20_APB_DMA) += tegra20-apb-dma.o
|
|
obj-$(CONFIG_TEGRA210_ADMA) += tegra210-adma.o
|
|
obj-$(CONFIG_TIMB_DMA) += timb_dma.o
|
|
obj-$(CONFIG_UNIPHIER_MDMAC) += uniphier-mdmac.o
|
|
obj-$(CONFIG_XGENE_DMA) += xgene-dma.o
|
|
obj-$(CONFIG_ZX_DMA) += zx_dma.o
|
|
obj-$(CONFIG_ST_FDMA) += st_fdma.o
|
|
obj-$(CONFIG_FSL_DPAA2_QDMA) += fsl-dpaa2-qdma/
|
|
|
|
obj-y += mediatek/
|
|
obj-y += qcom/
|
|
obj-y += ti/
|
|
obj-y += xilinx/
|