Back to home page

OSCL-LXR

 
 

    


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 };