Commit | Line | Data |
---|---|---|
96286b57 FM |
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. | |
e7679db7 MS |
15 | - interrupt-names: Should contain the names of the interrupt |
16 | in the form "dmaXX". | |
17 | Use "dma-shared-all" for the common interrupt line | |
18 | that is shared by all dma channels. | |
96286b57 FM |
19 | - #dma-cells: Must be <1>, the cell in the dmas property of the |
20 | client device represents the DREQ number. | |
21 | - brcm,dma-channel-mask: Bit mask representing the channels | |
22 | not used by the firmware in ascending order, | |
23 | i.e. first channel corresponds to LSB. | |
24 | ||
25 | Example: | |
26 | ||
27 | dma: dma@7e007000 { | |
28 | compatible = "brcm,bcm2835-dma"; | |
29 | reg = <0x7e007000 0xf00>; | |
30 | interrupts = <1 16>, | |
31 | <1 17>, | |
32 | <1 18>, | |
33 | <1 19>, | |
34 | <1 20>, | |
35 | <1 21>, | |
36 | <1 22>, | |
37 | <1 23>, | |
38 | <1 24>, | |
39 | <1 25>, | |
40 | <1 26>, | |
e7679db7 | 41 | /* dma channel 11-14 share one irq */ |
96286b57 | 42 | <1 27>, |
e7679db7 MS |
43 | <1 27>, |
44 | <1 27>, | |
45 | <1 27>, | |
46 | /* unused shared irq for all channels */ | |
96286b57 | 47 | <1 28>; |
e7679db7 MS |
48 | interrupt-names = "dma0", |
49 | "dma1", | |
50 | "dma2", | |
51 | "dma3", | |
52 | "dma4", | |
53 | "dma5", | |
54 | "dma6", | |
55 | "dma7", | |
56 | "dma8", | |
57 | "dma9", | |
58 | "dma10", | |
59 | "dma11", | |
60 | "dma12", | |
61 | "dma13", | |
62 | "dma14", | |
63 | "dma-shared-all"; | |
96286b57 FM |
64 | |
65 | #dma-cells = <1>; | |
66 | brcm,dma-channel-mask = <0x7f35>; | |
67 | }; | |
68 | ||
e7679db7 | 69 | |
96286b57 FM |
70 | DMA clients connected to the BCM2835 DMA controller must use the format |
71 | described in the dma.txt file, using a two-cell specifier for each channel. | |
72 | ||
73 | Example: | |
74 | ||
75 | bcm2835_i2s: i2s@7e203000 { | |
76 | compatible = "brcm,bcm2835-i2s"; | |
77 | reg = < 0x7e203000 0x20>, | |
78 | < 0x7e101098 0x02>; | |
79 | ||
80 | dmas = <&dma 2>, | |
81 | <&dma 3>; | |
82 | dma-names = "tx", "rx"; | |
83 | }; |