mirror of
https://github.com/Dasharo/linux.git
synced 2026-03-06 15:25:10 -08:00
dmaengine: Add hisilicon k3 DMA engine driver
Add dmaengine driver for hisilicon k3 platform based on virt_dma Signed-off-by: Zhangfei Gao <zhangfei.gao@linaro.org> Tested-by: Kai Yang <jean.yangkai@huawei.com> Acked-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Vinod Koul <vinod.koul@intel.com>
This commit is contained in:
46
Documentation/devicetree/bindings/dma/k3dma.txt
Normal file
46
Documentation/devicetree/bindings/dma/k3dma.txt
Normal file
@@ -0,0 +1,46 @@
|
||||
* Hisilicon K3 DMA controller
|
||||
|
||||
See dma.txt first
|
||||
|
||||
Required properties:
|
||||
- compatible: Should be "hisilicon,k3-dma-1.0"
|
||||
- reg: Should contain DMA registers location and length.
|
||||
- interrupts: Should contain one interrupt shared by all channel
|
||||
- #dma-cells: see dma.txt, should be 1, para number
|
||||
- dma-channels: physical channels supported
|
||||
- dma-requests: virtual channels supported, each virtual channel
|
||||
have specific request line
|
||||
- clocks: clock required
|
||||
|
||||
Example:
|
||||
|
||||
Controller:
|
||||
dma0: dma@fcd02000 {
|
||||
compatible = "hisilicon,k3-dma-1.0";
|
||||
reg = <0xfcd02000 0x1000>;
|
||||
#dma-cells = <1>;
|
||||
dma-channels = <16>;
|
||||
dma-requests = <27>;
|
||||
interrupts = <0 12 4>;
|
||||
clocks = <&pclk>;
|
||||
status = "disable";
|
||||
};
|
||||
|
||||
Client:
|
||||
Use specific request line passing from dmax
|
||||
For example, i2c0 read channel request line is 18, while write channel use 19
|
||||
|
||||
i2c0: i2c@fcb08000 {
|
||||
compatible = "snps,designware-i2c";
|
||||
dmas = <&dma0 18 /* read channel */
|
||||
&dma0 19>; /* write channel */
|
||||
dma-names = "rx", "tx";
|
||||
};
|
||||
|
||||
i2c1: i2c@fcb09000 {
|
||||
compatible = "snps,designware-i2c";
|
||||
dmas = <&dma0 20 /* read channel */
|
||||
&dma0 21>; /* write channel */
|
||||
dma-names = "rx", "tx";
|
||||
};
|
||||
|
||||
@@ -300,6 +300,15 @@ config DMA_JZ4740
|
||||
select DMA_ENGINE
|
||||
select DMA_VIRTUAL_CHANNELS
|
||||
|
||||
config K3_DMA
|
||||
tristate "Hisilicon K3 DMA support"
|
||||
depends on ARCH_HI3xxx
|
||||
select DMA_ENGINE
|
||||
select DMA_VIRTUAL_CHANNELS
|
||||
help
|
||||
Support the DMA engine for Hisilicon K3 platform
|
||||
devices.
|
||||
|
||||
config DMA_ENGINE
|
||||
bool
|
||||
|
||||
|
||||
@@ -39,3 +39,4 @@ obj-$(CONFIG_MMP_TDMA) += mmp_tdma.o
|
||||
obj-$(CONFIG_DMA_OMAP) += omap-dma.o
|
||||
obj-$(CONFIG_MMP_PDMA) += mmp_pdma.o
|
||||
obj-$(CONFIG_DMA_JZ4740) += dma-jz4740.o
|
||||
obj-$(CONFIG_K3_DMA) += k3dma.o
|
||||
|
||||
837
drivers/dma/k3dma.c
Normal file
837
drivers/dma/k3dma.c
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user