linux/Documentation/devicetree/bindings/dma/dma.txt
<<
>>
Prefs
   1* Generic DMA Controller and DMA request bindings
   2
   3Generic binding to provide a way for a driver using DMA Engine to retrieve the
   4DMA request or channel information that goes from a hardware device to a DMA
   5controller.
   6
   7
   8* DMA controller
   9
  10Required property:
  11- #dma-cells:           Must be at least 1. Used to provide DMA controller
  12                        specific information. See DMA client binding below for
  13                        more details.
  14
  15Optional properties:
  16- dma-channels:         Number of DMA channels supported by the controller.
  17- dma-requests:         Number of DMA requests signals supported by the
  18                        controller.
  19
  20Example:
  21
  22        dma: dma@48000000 {
  23                compatible = "ti,omap-sdma";
  24                reg = <0x48000000 0x1000>;
  25                interrupts = <0 12 0x4
  26                              0 13 0x4
  27                              0 14 0x4
  28                              0 15 0x4>;
  29                #dma-cells = <1>;
  30                dma-channels = <32>;
  31                dma-requests = <127>;
  32        };
  33
  34
  35* DMA client
  36
  37Client drivers should specify the DMA property using a phandle to the controller
  38followed by DMA controller specific data.
  39
  40Required property:
  41- dmas:                 List of one or more DMA specifiers, each consisting of
  42                        - A phandle pointing to DMA controller node
  43                        - A number of integer cells, as determined by the
  44                          #dma-cells property in the node referenced by phandle
  45                          containing DMA controller specific information. This
  46                          typically contains a DMA request line number or a
  47                          channel number, but can contain any data that is used
  48                          required for configuring a channel.
  49- dma-names:            Contains one identifier string for each DMA specifier in
  50                        the dmas property. The specific strings that can be used
  51                        are defined in the binding of the DMA client device.
  52                        Multiple DMA specifiers can be used to represent
  53                        alternatives and in this case the dma-names for those
  54                        DMA specifiers must be identical (see examples).
  55
  56Examples:
  57
  581. A device with one DMA read channel, one DMA write channel:
  59
  60        i2c1: i2c@1 {
  61                ...
  62                dmas = <&dma 2          /* read channel */
  63                        &dma 3>;        /* write channel */
  64                dma-names = "rx", "tx";
  65                ...
  66        };
  67
  682. A single read-write channel with three alternative DMA controllers:
  69
  70        dmas = <&dma1 5
  71                &dma2 7
  72                &dma3 2>;
  73        dma-names = "rx-tx", "rx-tx", "rx-tx";
  74
  753. A device with three channels, one of which has two alternatives:
  76
  77        dmas = <&dma1 2                 /* read channel */
  78                &dma1 3                 /* write channel */
  79                &dma2 0                 /* error read */
  80                &dma3 0>;               /* alternative error read */
  81        dma-names = "rx", "tx", "error", "error";
  82