0001 * BCM2835 DMA controller
0002
0003 The BCM2835 DMA controller has 16 channels in total.
0004 Only the lower 13 channels have an associated IRQ.
0005 Some arbitrary channels are used by the firmware
0006 (1,3,6,7 in the current firmware version).
0007 The channels 0,2 and 3 have special functionality
0008 and should not be used by the driver.
0009
0010 Required properties:
0011 - compatible: Should be "brcm,bcm2835-dma".
0012 - reg: Should contain DMA registers location and length.
0013 - interrupts: Should contain the DMA interrupts associated
0014 to the DMA channels in ascending order.
0015 - interrupt-names: Should contain the names of the interrupt
0016 in the form "dmaXX".
0017 Use "dma-shared-all" for the common interrupt line
0018 that is shared by all dma channels.
0019 - #dma-cells: Must be <1>, the cell in the dmas property of the
0020 client device represents the DREQ number.
0021 - brcm,dma-channel-mask: Bit mask representing the channels
0022 not used by the firmware in ascending order,
0023 i.e. first channel corresponds to LSB.
0024
0025 Example:
0026
0027 dma: dma@7e007000 {
0028 compatible = "brcm,bcm2835-dma";
0029 reg = <0x7e007000 0xf00>;
0030 interrupts = <1 16>,
0031 <1 17>,
0032 <1 18>,
0033 <1 19>,
0034 <1 20>,
0035 <1 21>,
0036 <1 22>,
0037 <1 23>,
0038 <1 24>,
0039 <1 25>,
0040 <1 26>,
0041 /* dma channel 11-14 share one irq */
0042 <1 27>,
0043 <1 27>,
0044 <1 27>,
0045 <1 27>,
0046 /* unused shared irq for all channels */
0047 <1 28>;
0048 interrupt-names = "dma0",
0049 "dma1",
0050 "dma2",
0051 "dma3",
0052 "dma4",
0053 "dma5",
0054 "dma6",
0055 "dma7",
0056 "dma8",
0057 "dma9",
0058 "dma10",
0059 "dma11",
0060 "dma12",
0061 "dma13",
0062 "dma14",
0063 "dma-shared-all";
0064
0065 #dma-cells = <1>;
0066 brcm,dma-channel-mask = <0x7f35>;
0067 };
0068
0069
0070 DMA clients connected to the BCM2835 DMA controller must use the format
0071 described in the dma.txt file, using a two-cell specifier for each channel.
0072
0073 Example:
0074
0075 bcm2835_i2s: i2s@7e203000 {
0076 compatible = "brcm,bcm2835-i2s";
0077 reg = < 0x7e203000 0x24>;
0078 clocks = <&clocks BCM2835_CLOCK_PCM>;
0079
0080 dmas = <&dma 2>,
0081 <&dma 3>;
0082 dma-names = "tx", "rx";
0083 };