Loading Documentation/devicetree/bindings/dma/zxdma.txt 0 → 100644 +38 −0 Original line number Diff line number Diff line * ZTE ZX296702 DMA controller Required properties: - compatible: Should be "zte,zx296702-dma" - 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: dma: dma-controller@0x09c00000{ compatible = "zte,zx296702-dma"; reg = <0x09c00000 0x1000>; clocks = <&topclk ZX296702_DMA_ACLK>; interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>; #dma-cells = <1>; dma-channels = <24>; dma-requests = <24>; }; Client: Use specific request line passing from dmax For example, spdif0 tx channel request line is 4 spdif0: spdif0@0b004000 { #sound-dai-cells = <0>; compatible = "zte,zx296702-spdif"; reg = <0x0b004000 0x1000>; clocks = <&lsp0clk ZX296702_SPDIF0_DIV>; clock-names = "tx"; interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>; dmas = <&dma 4>; dma-names = "tx"; } drivers/dma/Kconfig +7 −0 Original line number Diff line number Diff line Loading @@ -478,6 +478,13 @@ config XGENE_DMA select ASYNC_TX_ENABLE_CHANNEL_SWITCH help Enable support for the APM X-Gene SoC DMA engine. config ZX_DMA tristate "ZTE ZX296702 DMA support" depends on ARCH_ZX select DMA_ENGINE select DMA_VIRTUAL_CHANNELS help Support the DMA engine for ZTE ZX296702 platform devices. config DMA_ENGINE bool Loading drivers/dma/Makefile +1 −0 Original line number Diff line number Diff line Loading @@ -58,3 +58,4 @@ obj-$(CONFIG_DMA_SUN6I) += sun6i-dma.o obj-$(CONFIG_DMA_SUN4I) += sun4i-dma.o obj-$(CONFIG_IMG_MDC_DMA) += img-mdc-dma.o obj-$(CONFIG_XGENE_DMA) += xgene-dma.o obj-$(CONFIG_ZX_DMA) += zx296702_dma.o drivers/dma/zx296702_dma.c 0 → 100644 +951 −0 File added.Preview size limit exceeded, changes collapsed. Show changes Loading
Documentation/devicetree/bindings/dma/zxdma.txt 0 → 100644 +38 −0 Original line number Diff line number Diff line * ZTE ZX296702 DMA controller Required properties: - compatible: Should be "zte,zx296702-dma" - 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: dma: dma-controller@0x09c00000{ compatible = "zte,zx296702-dma"; reg = <0x09c00000 0x1000>; clocks = <&topclk ZX296702_DMA_ACLK>; interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>; #dma-cells = <1>; dma-channels = <24>; dma-requests = <24>; }; Client: Use specific request line passing from dmax For example, spdif0 tx channel request line is 4 spdif0: spdif0@0b004000 { #sound-dai-cells = <0>; compatible = "zte,zx296702-spdif"; reg = <0x0b004000 0x1000>; clocks = <&lsp0clk ZX296702_SPDIF0_DIV>; clock-names = "tx"; interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>; dmas = <&dma 4>; dma-names = "tx"; }
drivers/dma/Kconfig +7 −0 Original line number Diff line number Diff line Loading @@ -478,6 +478,13 @@ config XGENE_DMA select ASYNC_TX_ENABLE_CHANNEL_SWITCH help Enable support for the APM X-Gene SoC DMA engine. config ZX_DMA tristate "ZTE ZX296702 DMA support" depends on ARCH_ZX select DMA_ENGINE select DMA_VIRTUAL_CHANNELS help Support the DMA engine for ZTE ZX296702 platform devices. config DMA_ENGINE bool Loading
drivers/dma/Makefile +1 −0 Original line number Diff line number Diff line Loading @@ -58,3 +58,4 @@ obj-$(CONFIG_DMA_SUN6I) += sun6i-dma.o obj-$(CONFIG_DMA_SUN4I) += sun4i-dma.o obj-$(CONFIG_IMG_MDC_DMA) += img-mdc-dma.o obj-$(CONFIG_XGENE_DMA) += xgene-dma.o obj-$(CONFIG_ZX_DMA) += zx296702_dma.o
drivers/dma/zx296702_dma.c 0 → 100644 +951 −0 File added.Preview size limit exceeded, changes collapsed. Show changes