* ARM PrimeCell PL330 DMA Controller The ARM PrimeCell PL330 DMA controller can move blocks of memory contents between memory and peripherals or memory to memory. Required properties: - compatible: should include both "arm,pl330" and "arm,primecell". - reg: physical base address of the controller and length of memory mapped region. - interrupts: interrupt number to the cpu. Optional properties: - dma-coherent : Present if dma operations are coherent - #dma-cells: must be <1>. used to represent the number of integer cells in the dmas property of client device. - dma-channels: contains the total number of DMA channels supported by the DMAC - dma-requests: contains the total number of DMA requests supported by the DMAC - arm,pl330-broken-no-flushp: quirk for avoiding to execute DMAFLUSHP Example: pdma0: pdma@12680000 { compatible = "arm,pl330", "arm,primecell"; reg = <0x12680000 0x1000>; interrupts = <99>; #dma-cells = <1>; #dma-channels = <8>; #dma-requests = <32>; }; Client drivers (device nodes requiring dma transfers from dev-to-mem or mem-to-dev) should specify the DMA channel numbers and dma channel names as shown below. [property name] = <[phandle of the dma controller] [dma request id]>; [property name] = <[dma channel name]> where 'dma request id' is the dma request number which is connected to the client controller. The 'property name' 'dmas' and 'dma-names' as required by the generic dma device tree binding helpers. The dma names correspond 1:1 with the dma request ids in the dmas property. Example: dmas = <&pdma0 12 &pdma1 11>; dma-names = "tx", "rx"; |