dma.txt 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. * Freescale DMA Controllers
  2. ** Freescale Elo DMA Controller
  3. This is a little-endian 4-channel DMA controller, used in Freescale mpc83xx
  4. series chips such as mpc8315, mpc8349, mpc8379 etc.
  5. Required properties:
  6. - compatible : must include "fsl,elo-dma"
  7. - reg : DMA General Status Register, i.e. DGSR which contains
  8. status for all the 4 DMA channels
  9. - ranges : describes the mapping between the address space of the
  10. DMA channels and the address space of the DMA controller
  11. - cell-index : controller index. 0 for controller @ 0x8100
  12. - interrupts : interrupt specifier for DMA IRQ
  13. - interrupt-parent : optional, if needed for interrupt mapping
  14. - DMA channel nodes:
  15. - compatible : must include "fsl,elo-dma-channel"
  16. However, see note below.
  17. - reg : DMA channel specific registers
  18. - cell-index : DMA channel index starts at 0.
  19. Optional properties:
  20. - interrupts : interrupt specifier for DMA channel IRQ
  21. (on 83xx this is expected to be identical to
  22. the interrupts property of the parent node)
  23. - interrupt-parent : optional, if needed for interrupt mapping
  24. Example:
  25. dma@82a8 {
  26. #address-cells = <1>;
  27. #size-cells = <1>;
  28. compatible = "fsl,mpc8349-dma", "fsl,elo-dma";
  29. reg = <0x82a8 4>;
  30. ranges = <0 0x8100 0x1a4>;
  31. interrupt-parent = <&ipic>;
  32. interrupts = <71 8>;
  33. cell-index = <0>;
  34. dma-channel@0 {
  35. compatible = "fsl,mpc8349-dma-channel", "fsl,elo-dma-channel";
  36. cell-index = <0>;
  37. reg = <0 0x80>;
  38. interrupt-parent = <&ipic>;
  39. interrupts = <71 8>;
  40. };
  41. dma-channel@80 {
  42. compatible = "fsl,mpc8349-dma-channel", "fsl,elo-dma-channel";
  43. cell-index = <1>;
  44. reg = <0x80 0x80>;
  45. interrupt-parent = <&ipic>;
  46. interrupts = <71 8>;
  47. };
  48. dma-channel@100 {
  49. compatible = "fsl,mpc8349-dma-channel", "fsl,elo-dma-channel";
  50. cell-index = <2>;
  51. reg = <0x100 0x80>;
  52. interrupt-parent = <&ipic>;
  53. interrupts = <71 8>;
  54. };
  55. dma-channel@180 {
  56. compatible = "fsl,mpc8349-dma-channel", "fsl,elo-dma-channel";
  57. cell-index = <3>;
  58. reg = <0x180 0x80>;
  59. interrupt-parent = <&ipic>;
  60. interrupts = <71 8>;
  61. };
  62. };
  63. ** Freescale EloPlus DMA Controller
  64. This is a 4-channel DMA controller with extended addresses and chaining,
  65. mainly used in Freescale mpc85xx/86xx, Pxxx and BSC series chips, such as
  66. mpc8540, mpc8641 p4080, bsc9131 etc.
  67. Required properties:
  68. - compatible : must include "fsl,eloplus-dma"
  69. - reg : DMA General Status Register, i.e. DGSR which contains
  70. status for all the 4 DMA channels
  71. - cell-index : controller index. 0 for controller @ 0x21000,
  72. 1 for controller @ 0xc000
  73. - ranges : describes the mapping between the address space of the
  74. DMA channels and the address space of the DMA controller
  75. - DMA channel nodes:
  76. - compatible : must include "fsl,eloplus-dma-channel"
  77. However, see note below.
  78. - cell-index : DMA channel index starts at 0.
  79. - reg : DMA channel specific registers
  80. - interrupts : interrupt specifier for DMA channel IRQ
  81. - interrupt-parent : optional, if needed for interrupt mapping
  82. Example:
  83. dma@21300 {
  84. #address-cells = <1>;
  85. #size-cells = <1>;
  86. compatible = "fsl,mpc8540-dma", "fsl,eloplus-dma";
  87. reg = <0x21300 4>;
  88. ranges = <0 0x21100 0x200>;
  89. cell-index = <0>;
  90. dma-channel@0 {
  91. compatible = "fsl,mpc8540-dma-channel", "fsl,eloplus-dma-channel";
  92. reg = <0 0x80>;
  93. cell-index = <0>;
  94. interrupt-parent = <&mpic>;
  95. interrupts = <20 2>;
  96. };
  97. dma-channel@80 {
  98. compatible = "fsl,mpc8540-dma-channel", "fsl,eloplus-dma-channel";
  99. reg = <0x80 0x80>;
  100. cell-index = <1>;
  101. interrupt-parent = <&mpic>;
  102. interrupts = <21 2>;
  103. };
  104. dma-channel@100 {
  105. compatible = "fsl,mpc8540-dma-channel", "fsl,eloplus-dma-channel";
  106. reg = <0x100 0x80>;
  107. cell-index = <2>;
  108. interrupt-parent = <&mpic>;
  109. interrupts = <22 2>;
  110. };
  111. dma-channel@180 {
  112. compatible = "fsl,mpc8540-dma-channel", "fsl,eloplus-dma-channel";
  113. reg = <0x180 0x80>;
  114. cell-index = <3>;
  115. interrupt-parent = <&mpic>;
  116. interrupts = <23 2>;
  117. };
  118. };
  119. Note on DMA channel compatible properties: The compatible property must say
  120. "fsl,elo-dma-channel" or "fsl,eloplus-dma-channel" to be used by the Elo DMA
  121. driver (fsldma). Any DMA channel used by fsldma cannot be used by another
  122. DMA driver, such as the SSI sound drivers for the MPC8610. Therefore, any DMA
  123. channel that should be used for another driver should not use
  124. "fsl,elo-dma-channel" or "fsl,eloplus-dma-channel". For the SSI drivers, for
  125. example, the compatible property should be "fsl,ssi-dma-channel". See ssi.txt
  126. for more information.