dma.txt 4.8 KB

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