renesas,rcar-dmac.txt 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. * Renesas R-Car (RZ/G) DMA Controller Device Tree bindings
  2. Renesas R-Car Generation 2 SoCs have multiple multi-channel DMA
  3. controller instances named DMAC capable of serving multiple clients. Channels
  4. can be dedicated to specific clients or shared between a large number of
  5. clients.
  6. Each DMA client is connected to one dedicated port of the DMAC, identified by
  7. an 8-bit port number called the MID/RID. A DMA controller can thus serve up to
  8. 256 clients in total. When the number of hardware channels is lower than the
  9. number of clients to be served, channels must be shared between multiple DMA
  10. clients. The association of DMA clients to DMAC channels is fully dynamic and
  11. not described in these device tree bindings.
  12. Required Properties:
  13. - compatible: "renesas,dmac-<soctype>", "renesas,rcar-dmac" as fallback.
  14. Examples with soctypes are:
  15. - "renesas,dmac-r8a7743" (RZ/G1M)
  16. - "renesas,dmac-r8a7745" (RZ/G1E)
  17. - "renesas,dmac-r8a77470" (RZ/G1C)
  18. - "renesas,dmac-r8a7790" (R-Car H2)
  19. - "renesas,dmac-r8a7791" (R-Car M2-W)
  20. - "renesas,dmac-r8a7792" (R-Car V2H)
  21. - "renesas,dmac-r8a7793" (R-Car M2-N)
  22. - "renesas,dmac-r8a7794" (R-Car E2)
  23. - "renesas,dmac-r8a7795" (R-Car H3)
  24. - "renesas,dmac-r8a7796" (R-Car M3-W)
  25. - "renesas,dmac-r8a77965" (R-Car M3-N)
  26. - "renesas,dmac-r8a77970" (R-Car V3M)
  27. - "renesas,dmac-r8a77980" (R-Car V3H)
  28. - "renesas,dmac-r8a77990" (R-Car E3)
  29. - "renesas,dmac-r8a77995" (R-Car D3)
  30. - reg: base address and length of the registers block for the DMAC
  31. - interrupts: interrupt specifiers for the DMAC, one for each entry in
  32. interrupt-names.
  33. - interrupt-names: one entry for the error interrupt, named "error", plus one
  34. entry per channel, named "ch%u", where %u is the channel number ranging from
  35. zero to the number of channels minus one.
  36. - clock-names: "fck" for the functional clock
  37. - clocks: a list of phandle + clock-specifier pairs, one for each entry
  38. in clock-names.
  39. - clock-names: must contain "fck" for the functional clock.
  40. - #dma-cells: must be <1>, the cell specifies the MID/RID of the DMAC port
  41. connected to the DMA client
  42. - dma-channels: number of DMA channels
  43. Example: R8A7790 (R-Car H2) SYS-DMACs
  44. dmac0: dma-controller@e6700000 {
  45. compatible = "renesas,dmac-r8a7790", "renesas,rcar-dmac";
  46. reg = <0 0xe6700000 0 0x20000>;
  47. interrupts = <0 197 IRQ_TYPE_LEVEL_HIGH
  48. 0 200 IRQ_TYPE_LEVEL_HIGH
  49. 0 201 IRQ_TYPE_LEVEL_HIGH
  50. 0 202 IRQ_TYPE_LEVEL_HIGH
  51. 0 203 IRQ_TYPE_LEVEL_HIGH
  52. 0 204 IRQ_TYPE_LEVEL_HIGH
  53. 0 205 IRQ_TYPE_LEVEL_HIGH
  54. 0 206 IRQ_TYPE_LEVEL_HIGH
  55. 0 207 IRQ_TYPE_LEVEL_HIGH
  56. 0 208 IRQ_TYPE_LEVEL_HIGH
  57. 0 209 IRQ_TYPE_LEVEL_HIGH
  58. 0 210 IRQ_TYPE_LEVEL_HIGH
  59. 0 211 IRQ_TYPE_LEVEL_HIGH
  60. 0 212 IRQ_TYPE_LEVEL_HIGH
  61. 0 213 IRQ_TYPE_LEVEL_HIGH
  62. 0 214 IRQ_TYPE_LEVEL_HIGH>;
  63. interrupt-names = "error",
  64. "ch0", "ch1", "ch2", "ch3",
  65. "ch4", "ch5", "ch6", "ch7",
  66. "ch8", "ch9", "ch10", "ch11",
  67. "ch12", "ch13", "ch14";
  68. clocks = <&mstp2_clks R8A7790_CLK_SYS_DMAC0>;
  69. clock-names = "fck";
  70. #dma-cells = <1>;
  71. dma-channels = <15>;
  72. };
  73. dmac1: dma-controller@e6720000 {
  74. compatible = "renesas,dmac-r8a7790", "renesas,rcar-dmac";
  75. reg = <0 0xe6720000 0 0x20000>;
  76. interrupts = <0 220 IRQ_TYPE_LEVEL_HIGH
  77. 0 216 IRQ_TYPE_LEVEL_HIGH
  78. 0 217 IRQ_TYPE_LEVEL_HIGH
  79. 0 218 IRQ_TYPE_LEVEL_HIGH
  80. 0 219 IRQ_TYPE_LEVEL_HIGH
  81. 0 308 IRQ_TYPE_LEVEL_HIGH
  82. 0 309 IRQ_TYPE_LEVEL_HIGH
  83. 0 310 IRQ_TYPE_LEVEL_HIGH
  84. 0 311 IRQ_TYPE_LEVEL_HIGH
  85. 0 312 IRQ_TYPE_LEVEL_HIGH
  86. 0 313 IRQ_TYPE_LEVEL_HIGH
  87. 0 314 IRQ_TYPE_LEVEL_HIGH
  88. 0 315 IRQ_TYPE_LEVEL_HIGH
  89. 0 316 IRQ_TYPE_LEVEL_HIGH
  90. 0 317 IRQ_TYPE_LEVEL_HIGH
  91. 0 318 IRQ_TYPE_LEVEL_HIGH>;
  92. interrupt-names = "error",
  93. "ch0", "ch1", "ch2", "ch3",
  94. "ch4", "ch5", "ch6", "ch7",
  95. "ch8", "ch9", "ch10", "ch11",
  96. "ch12", "ch13", "ch14";
  97. clocks = <&mstp2_clks R8A7790_CLK_SYS_DMAC1>;
  98. clock-names = "fck";
  99. #dma-cells = <1>;
  100. dma-channels = <15>;
  101. };