linux/Documentation/devicetree/bindings/dma/shdma.txt
<<
>>
Prefs
   1* SHDMA Device Tree bindings
   2
   3Sh-/r-mobile and r-car systems often have multiple identical DMA controller
   4instances, capable of serving any of a common set of DMA slave devices, using
   5the same configuration. To describe this topology we require all compatible
   6SHDMA DT nodes to be placed under a DMA multiplexer node. All such compatible
   7DMAC instances have the same number of channels and use the same DMA
   8descriptors. Therefore respective DMA DT bindings can also all be placed in the
   9multiplexer node. Even if there is only one such DMAC instance on a system, it
  10still has to be placed under such a multiplexer node.
  11
  12* DMA multiplexer
  13
  14Required properties:
  15- compatible:   should be "renesas,shdma-mux"
  16- #dma-cells:   should be <1>, see "dmas" property below
  17
  18Optional properties (currently unused):
  19- dma-channels: number of DMA channels
  20- dma-requests: number of DMA request signals
  21
  22* DMA controller
  23
  24Required properties:
  25- compatible:   should be "renesas,shdma"
  26
  27Example:
  28        dmac: dma-mux0 {
  29                compatible = "renesas,shdma-mux";
  30                #dma-cells = <1>;
  31                dma-channels = <6>;
  32                dma-requests = <256>;
  33                reg = <0 0>;    /* Needed for AUXDATA */
  34                #address-cells = <1>;
  35                #size-cells = <1>;
  36                ranges;
  37
  38                dma0: shdma@fe008020 {
  39                        compatible = "renesas,shdma";
  40                        reg = <0xfe008020 0x270>,
  41                                <0xfe009000 0xc>;
  42                        interrupt-parent = <&gic>;
  43                        interrupts = <0 34 4
  44                                        0 28 4
  45                                        0 29 4
  46                                        0 30 4
  47                                        0 31 4
  48                                        0 32 4
  49                                        0 33 4>;
  50                        interrupt-names = "error",
  51                                        "ch0", "ch1", "ch2", "ch3",
  52                                        "ch4", "ch5";
  53                };
  54
  55                dma1: shdma@fe018020 {
  56                        ...
  57                };
  58
  59                dma2: shdma@fe028020 {
  60                        ...
  61                };
  62        };
  63
  64* DMA client
  65
  66Required properties:
  67- dmas:         a list of <[DMA multiplexer phandle] [MID/RID value]> pairs,
  68                where MID/RID values are fixed handles, specified in the SoC
  69                manual
  70- dma-names:    a list of DMA channel names, one per "dmas" entry
  71
  72Example:
  73        dmas = <&dmac 0xd1
  74                &dmac 0xd2>;
  75        dma-names = "tx", "rx";
  76