Florian Meier | 96286b5 | 2014-01-06 20:18:24 +0100 | [diff] [blame] | 1 | * BCM2835 DMA controller |
| 2 | |
| 3 | The BCM2835 DMA controller has 16 channels in total. |
| 4 | Only the lower 13 channels have an associated IRQ. |
| 5 | Some arbitrary channels are used by the firmware |
| 6 | (1,3,6,7 in the current firmware version). |
| 7 | The channels 0,2 and 3 have special functionality |
| 8 | and should not be used by the driver. |
| 9 | |
| 10 | Required properties: |
| 11 | - compatible: Should be "brcm,bcm2835-dma". |
| 12 | - reg: Should contain DMA registers location and length. |
| 13 | - interrupts: Should contain the DMA interrupts associated |
| 14 | to the DMA channels in ascending order. |
| 15 | - #dma-cells: Must be <1>, the cell in the dmas property of the |
| 16 | client device represents the DREQ number. |
| 17 | - brcm,dma-channel-mask: Bit mask representing the channels |
| 18 | not used by the firmware in ascending order, |
| 19 | i.e. first channel corresponds to LSB. |
| 20 | |
| 21 | Example: |
| 22 | |
| 23 | dma: dma@7e007000 { |
| 24 | compatible = "brcm,bcm2835-dma"; |
| 25 | reg = <0x7e007000 0xf00>; |
| 26 | interrupts = <1 16>, |
| 27 | <1 17>, |
| 28 | <1 18>, |
| 29 | <1 19>, |
| 30 | <1 20>, |
| 31 | <1 21>, |
| 32 | <1 22>, |
| 33 | <1 23>, |
| 34 | <1 24>, |
| 35 | <1 25>, |
| 36 | <1 26>, |
| 37 | <1 27>, |
| 38 | <1 28>; |
| 39 | |
| 40 | #dma-cells = <1>; |
| 41 | brcm,dma-channel-mask = <0x7f35>; |
| 42 | }; |
| 43 | |
| 44 | DMA clients connected to the BCM2835 DMA controller must use the format |
| 45 | described in the dma.txt file, using a two-cell specifier for each channel. |
| 46 | |
| 47 | Example: |
| 48 | |
| 49 | bcm2835_i2s: i2s@7e203000 { |
| 50 | compatible = "brcm,bcm2835-i2s"; |
| 51 | reg = < 0x7e203000 0x20>, |
| 52 | < 0x7e101098 0x02>; |
| 53 | |
| 54 | dmas = <&dma 2>, |
| 55 | <&dma 3>; |
| 56 | dma-names = "tx", "rx"; |
| 57 | }; |