1* ARM PrimeCell PL330 DMA Controller 2 3The ARM PrimeCell PL330 DMA controller can move blocks of memory contents 4between memory and peripherals or memory to memory. 5 6Required properties: 7 - compatible: should include both "arm,pl330" and "arm,primecell". 8 - reg: physical base address of the controller and length of memory mapped 9 region. 10 - interrupts: interrupt number to the cpu. 11 12Optional properties: 13 - dma-coherent : Present if dma operations are coherent 14 - #dma-cells: must be <1>. used to represent the number of integer 15 cells in the dmas property of client device. 16 - dma-channels: contains the total number of DMA channels supported by the DMAC 17 - dma-requests: contains the total number of DMA requests supported by the DMAC 18 - arm,pl330-broken-no-flushp: quirk for avoiding to execute DMAFLUSHP 19 20Example: 21 22 pdma0: pdma@12680000 { 23 compatible = "arm,pl330", "arm,primecell"; 24 reg = <0x12680000 0x1000>; 25 interrupts = <99>; 26 #dma-cells = <1>; 27 #dma-channels = <8>; 28 #dma-requests = <32>; 29 }; 30 31Client drivers (device nodes requiring dma transfers from dev-to-mem or 32mem-to-dev) should specify the DMA channel numbers and dma channel names 33as shown below. 34 35 [property name] = <[phandle of the dma controller] [dma request id]>; 36 [property name] = <[dma channel name]> 37 38 where 'dma request id' is the dma request number which is connected 39 to the client controller. The 'property name' 'dmas' and 'dma-names' 40 as required by the generic dma device tree binding helpers. The dma 41 names correspond 1:1 with the dma request ids in the dmas property. 42 43 Example: dmas = <&pdma0 12 44 &pdma1 11>; 45 dma-names = "tx", "rx"; 46