Thomas Abraham | 93ed554 | 2011-10-24 11:43:31 +0200 | [diff] [blame] | 1 | * ARM PrimeCell PL330 DMA Controller |
| 2 | |
| 3 | The ARM PrimeCell PL330 DMA controller can move blocks of memory contents |
| 4 | between memory and peripherals or memory to memory. |
| 5 | |
| 6 | Required 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 | |
Rob Herring | 1dc737c | 2012-08-21 12:31:06 +0200 | [diff] [blame] | 12 | Optional properties: |
Padmavathi Venna | 42cf209 | 2013-02-14 09:10:08 +0530 | [diff] [blame] | 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 |
Shawn Lin | 2318a3d | 2016-01-22 19:06:45 +0800 | [diff] [blame] | 18 | - arm,pl330-broken-no-flushp: quirk for avoiding to execute DMAFLUSHP |
Rob Herring | 1dc737c | 2012-08-21 12:31:06 +0200 | [diff] [blame] | 19 | |
Thomas Abraham | 93ed554 | 2011-10-24 11:43:31 +0200 | [diff] [blame] | 20 | Example: |
| 21 | |
| 22 | pdma0: pdma@12680000 { |
| 23 | compatible = "arm,pl330", "arm,primecell"; |
| 24 | reg = <0x12680000 0x1000>; |
| 25 | interrupts = <99>; |
Padmavathi Venna | 42cf209 | 2013-02-14 09:10:08 +0530 | [diff] [blame] | 26 | #dma-cells = <1>; |
| 27 | #dma-channels = <8>; |
| 28 | #dma-requests = <32>; |
Thomas Abraham | 93ed554 | 2011-10-24 11:43:31 +0200 | [diff] [blame] | 29 | }; |
| 30 | |
| 31 | Client drivers (device nodes requiring dma transfers from dev-to-mem or |
Padmavathi Venna | 42cf209 | 2013-02-14 09:10:08 +0530 | [diff] [blame] | 32 | mem-to-dev) should specify the DMA channel numbers and dma channel names |
Thomas Abraham | 93ed554 | 2011-10-24 11:43:31 +0200 | [diff] [blame] | 33 | as shown below. |
| 34 | |
| 35 | [property name] = <[phandle of the dma controller] [dma request id]>; |
Padmavathi Venna | 42cf209 | 2013-02-14 09:10:08 +0530 | [diff] [blame] | 36 | [property name] = <[dma channel name]> |
Thomas Abraham | 93ed554 | 2011-10-24 11:43:31 +0200 | [diff] [blame] | 37 | |
| 38 | where 'dma request id' is the dma request number which is connected |
Padmavathi Venna | 42cf209 | 2013-02-14 09:10:08 +0530 | [diff] [blame] | 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. |
Thomas Abraham | 93ed554 | 2011-10-24 11:43:31 +0200 | [diff] [blame] | 42 | |
Padmavathi Venna | 42cf209 | 2013-02-14 09:10:08 +0530 | [diff] [blame] | 43 | Example: dmas = <&pdma0 12 |
| 44 | &pdma1 11>; |
| 45 | dma-names = "tx", "rx"; |