Merge branch 'spectre' of git://git.armlinux.org.uk/~rmk/linux-arm
[sfrench/cifs-2.6.git] / Documentation / devicetree / bindings / dma / brcm,bcm2835-dma.txt
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 - 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.
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>,
41                      /* dma channel 11-14 share one irq */
42                      <1 27>,
43                      <1 27>,
44                      <1 27>,
45                      <1 27>,
46                      /* unused shared irq for all channels */
47                      <1 28>;
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";
64
65         #dma-cells = <1>;
66         brcm,dma-channel-mask = <0x7f35>;
67 };
68
69
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 0x24>;
78         clocks = <&clocks BCM2835_CLOCK_PCM>;
79
80         dmas = <&dma 2>,
81                <&dma 3>;
82         dma-names = "tx", "rx";
83 };