xref: /openbmc/linux/Documentation/devicetree/bindings/powerpc/fsl/dma.txt (revision 3eb66e91a25497065c5322b1268cbc3953642227)
1c3d68d8dSHongbo Zhang* Freescale DMA Controllers
2d524dac9SGrant Likely
3c3d68d8dSHongbo Zhang** Freescale Elo DMA Controller
4c3d68d8dSHongbo Zhang   This is a little-endian 4-channel DMA controller, used in Freescale mpc83xx
5c3d68d8dSHongbo Zhang   series chips such as mpc8315, mpc8349, mpc8379 etc.
6d524dac9SGrant Likely
7d524dac9SGrant LikelyRequired properties:
8d524dac9SGrant Likely
9c3d68d8dSHongbo Zhang- compatible        : must include "fsl,elo-dma"
10c3d68d8dSHongbo Zhang- reg               : DMA General Status Register, i.e. DGSR which contains
11c3d68d8dSHongbo Zhang                      status for all the 4 DMA channels
12c3d68d8dSHongbo Zhang- ranges            : describes the mapping between the address space of the
13c3d68d8dSHongbo Zhang                      DMA channels and the address space of the DMA controller
14d524dac9SGrant Likely- cell-index        : controller index.  0 for controller @ 0x8100
15c3d68d8dSHongbo Zhang- interrupts        : interrupt specifier for DMA IRQ
16d524dac9SGrant Likely
17d524dac9SGrant Likely- DMA channel nodes:
18c3d68d8dSHongbo Zhang        - compatible        : must include "fsl,elo-dma-channel"
19c3d68d8dSHongbo Zhang                              However, see note below.
20c3d68d8dSHongbo Zhang        - reg               : DMA channel specific registers
21c3d68d8dSHongbo Zhang        - cell-index        : DMA channel index starts at 0.
22d524dac9SGrant Likely
23d524dac9SGrant LikelyOptional properties:
24c3d68d8dSHongbo Zhang        - interrupts        : interrupt specifier for DMA channel IRQ
25d524dac9SGrant Likely                              (on 83xx this is expected to be identical to
26d524dac9SGrant Likely                              the interrupts property of the parent node)
27d524dac9SGrant Likely
28d524dac9SGrant LikelyExample:
29d524dac9SGrant Likely	dma@82a8 {
30d524dac9SGrant Likely		#address-cells = <1>;
31d524dac9SGrant Likely		#size-cells = <1>;
32d524dac9SGrant Likely		compatible = "fsl,mpc8349-dma", "fsl,elo-dma";
33d524dac9SGrant Likely		reg = <0x82a8 4>;
34d524dac9SGrant Likely		ranges = <0 0x8100 0x1a4>;
35d524dac9SGrant Likely		interrupt-parent = <&ipic>;
36d524dac9SGrant Likely		interrupts = <71 8>;
37d524dac9SGrant Likely		cell-index = <0>;
38d524dac9SGrant Likely		dma-channel@0 {
39d524dac9SGrant Likely			compatible = "fsl,mpc8349-dma-channel", "fsl,elo-dma-channel";
40d524dac9SGrant Likely			cell-index = <0>;
41d524dac9SGrant Likely			reg = <0 0x80>;
42d524dac9SGrant Likely			interrupt-parent = <&ipic>;
43d524dac9SGrant Likely			interrupts = <71 8>;
44d524dac9SGrant Likely		};
45d524dac9SGrant Likely		dma-channel@80 {
46d524dac9SGrant Likely			compatible = "fsl,mpc8349-dma-channel", "fsl,elo-dma-channel";
47d524dac9SGrant Likely			cell-index = <1>;
48d524dac9SGrant Likely			reg = <0x80 0x80>;
49d524dac9SGrant Likely			interrupt-parent = <&ipic>;
50d524dac9SGrant Likely			interrupts = <71 8>;
51d524dac9SGrant Likely		};
52d524dac9SGrant Likely		dma-channel@100 {
53d524dac9SGrant Likely			compatible = "fsl,mpc8349-dma-channel", "fsl,elo-dma-channel";
54d524dac9SGrant Likely			cell-index = <2>;
55d524dac9SGrant Likely			reg = <0x100 0x80>;
56d524dac9SGrant Likely			interrupt-parent = <&ipic>;
57d524dac9SGrant Likely			interrupts = <71 8>;
58d524dac9SGrant Likely		};
59d524dac9SGrant Likely		dma-channel@180 {
60d524dac9SGrant Likely			compatible = "fsl,mpc8349-dma-channel", "fsl,elo-dma-channel";
61d524dac9SGrant Likely			cell-index = <3>;
62d524dac9SGrant Likely			reg = <0x180 0x80>;
63d524dac9SGrant Likely			interrupt-parent = <&ipic>;
64d524dac9SGrant Likely			interrupts = <71 8>;
65d524dac9SGrant Likely		};
66d524dac9SGrant Likely	};
67d524dac9SGrant Likely
68c3d68d8dSHongbo Zhang** Freescale EloPlus DMA Controller
69c3d68d8dSHongbo Zhang   This is a 4-channel DMA controller with extended addresses and chaining,
70c3d68d8dSHongbo Zhang   mainly used in Freescale mpc85xx/86xx, Pxxx and BSC series chips, such as
71c3d68d8dSHongbo Zhang   mpc8540, mpc8641 p4080, bsc9131 etc.
72d524dac9SGrant Likely
73d524dac9SGrant LikelyRequired properties:
74d524dac9SGrant Likely
75c3d68d8dSHongbo Zhang- compatible        : must include "fsl,eloplus-dma"
76c3d68d8dSHongbo Zhang- reg               : DMA General Status Register, i.e. DGSR which contains
77c3d68d8dSHongbo Zhang                      status for all the 4 DMA channels
78d524dac9SGrant Likely- cell-index        : controller index.  0 for controller @ 0x21000,
79d524dac9SGrant Likely                                         1 for controller @ 0xc000
80c3d68d8dSHongbo Zhang- ranges            : describes the mapping between the address space of the
81c3d68d8dSHongbo Zhang                      DMA channels and the address space of the DMA controller
82d524dac9SGrant Likely
83d524dac9SGrant Likely- DMA channel nodes:
84c3d68d8dSHongbo Zhang        - compatible        : must include "fsl,eloplus-dma-channel"
85c3d68d8dSHongbo Zhang                              However, see note below.
86c3d68d8dSHongbo Zhang        - cell-index        : DMA channel index starts at 0.
87c3d68d8dSHongbo Zhang        - reg               : DMA channel specific registers
88c3d68d8dSHongbo Zhang        - interrupts        : interrupt specifier for DMA channel IRQ
89d524dac9SGrant Likely
90d524dac9SGrant LikelyExample:
91d524dac9SGrant Likely	dma@21300 {
92d524dac9SGrant Likely		#address-cells = <1>;
93d524dac9SGrant Likely		#size-cells = <1>;
94d524dac9SGrant Likely		compatible = "fsl,mpc8540-dma", "fsl,eloplus-dma";
95d524dac9SGrant Likely		reg = <0x21300 4>;
96d524dac9SGrant Likely		ranges = <0 0x21100 0x200>;
97d524dac9SGrant Likely		cell-index = <0>;
98d524dac9SGrant Likely		dma-channel@0 {
99d524dac9SGrant Likely			compatible = "fsl,mpc8540-dma-channel", "fsl,eloplus-dma-channel";
100d524dac9SGrant Likely			reg = <0 0x80>;
101d524dac9SGrant Likely			cell-index = <0>;
102d524dac9SGrant Likely			interrupt-parent = <&mpic>;
103d524dac9SGrant Likely			interrupts = <20 2>;
104d524dac9SGrant Likely		};
105d524dac9SGrant Likely		dma-channel@80 {
106d524dac9SGrant Likely			compatible = "fsl,mpc8540-dma-channel", "fsl,eloplus-dma-channel";
107d524dac9SGrant Likely			reg = <0x80 0x80>;
108d524dac9SGrant Likely			cell-index = <1>;
109d524dac9SGrant Likely			interrupt-parent = <&mpic>;
110d524dac9SGrant Likely			interrupts = <21 2>;
111d524dac9SGrant Likely		};
112d524dac9SGrant Likely		dma-channel@100 {
113d524dac9SGrant Likely			compatible = "fsl,mpc8540-dma-channel", "fsl,eloplus-dma-channel";
114d524dac9SGrant Likely			reg = <0x100 0x80>;
115d524dac9SGrant Likely			cell-index = <2>;
116d524dac9SGrant Likely			interrupt-parent = <&mpic>;
117d524dac9SGrant Likely			interrupts = <22 2>;
118d524dac9SGrant Likely		};
119d524dac9SGrant Likely		dma-channel@180 {
120d524dac9SGrant Likely			compatible = "fsl,mpc8540-dma-channel", "fsl,eloplus-dma-channel";
121d524dac9SGrant Likely			reg = <0x180 0x80>;
122d524dac9SGrant Likely			cell-index = <3>;
123d524dac9SGrant Likely			interrupt-parent = <&mpic>;
124d524dac9SGrant Likely			interrupts = <23 2>;
125d524dac9SGrant Likely		};
126d524dac9SGrant Likely	};
127d524dac9SGrant Likely
128*03aa254fSHongbo Zhang** Freescale Elo3 DMA Controller
129*03aa254fSHongbo Zhang   DMA controller which has same function as EloPlus except that Elo3 has 8
130*03aa254fSHongbo Zhang   channels while EloPlus has only 4, it is used in Freescale Txxx and Bxxx
131*03aa254fSHongbo Zhang   series chips, such as t1040, t4240, b4860.
132*03aa254fSHongbo Zhang
133*03aa254fSHongbo ZhangRequired properties:
134*03aa254fSHongbo Zhang
135*03aa254fSHongbo Zhang- compatible        : must include "fsl,elo3-dma"
136*03aa254fSHongbo Zhang- reg               : contains two entries for DMA General Status Registers,
137*03aa254fSHongbo Zhang                      i.e. DGSR0 which includes status for channel 1~4, and
138*03aa254fSHongbo Zhang                      DGSR1 for channel 5~8
139*03aa254fSHongbo Zhang- ranges            : describes the mapping between the address space of the
140*03aa254fSHongbo Zhang                      DMA channels and the address space of the DMA controller
141*03aa254fSHongbo Zhang
142*03aa254fSHongbo Zhang- DMA channel nodes:
143*03aa254fSHongbo Zhang        - compatible        : must include "fsl,eloplus-dma-channel"
144*03aa254fSHongbo Zhang        - reg               : DMA channel specific registers
145*03aa254fSHongbo Zhang        - interrupts        : interrupt specifier for DMA channel IRQ
146*03aa254fSHongbo Zhang
147*03aa254fSHongbo ZhangExample:
148*03aa254fSHongbo Zhangdma@100300 {
149*03aa254fSHongbo Zhang	#address-cells = <1>;
150*03aa254fSHongbo Zhang	#size-cells = <1>;
151*03aa254fSHongbo Zhang	compatible = "fsl,elo3-dma";
152*03aa254fSHongbo Zhang	reg = <0x100300 0x4>,
153*03aa254fSHongbo Zhang	      <0x100600 0x4>;
154*03aa254fSHongbo Zhang	ranges = <0x0 0x100100 0x500>;
155*03aa254fSHongbo Zhang	dma-channel@0 {
156*03aa254fSHongbo Zhang		compatible = "fsl,eloplus-dma-channel";
157*03aa254fSHongbo Zhang		reg = <0x0 0x80>;
158*03aa254fSHongbo Zhang		interrupts = <28 2 0 0>;
159*03aa254fSHongbo Zhang	};
160*03aa254fSHongbo Zhang	dma-channel@80 {
161*03aa254fSHongbo Zhang		compatible = "fsl,eloplus-dma-channel";
162*03aa254fSHongbo Zhang		reg = <0x80 0x80>;
163*03aa254fSHongbo Zhang		interrupts = <29 2 0 0>;
164*03aa254fSHongbo Zhang	};
165*03aa254fSHongbo Zhang	dma-channel@100 {
166*03aa254fSHongbo Zhang		compatible = "fsl,eloplus-dma-channel";
167*03aa254fSHongbo Zhang		reg = <0x100 0x80>;
168*03aa254fSHongbo Zhang		interrupts = <30 2 0 0>;
169*03aa254fSHongbo Zhang	};
170*03aa254fSHongbo Zhang	dma-channel@180 {
171*03aa254fSHongbo Zhang		compatible = "fsl,eloplus-dma-channel";
172*03aa254fSHongbo Zhang		reg = <0x180 0x80>;
173*03aa254fSHongbo Zhang		interrupts = <31 2 0 0>;
174*03aa254fSHongbo Zhang	};
175*03aa254fSHongbo Zhang	dma-channel@300 {
176*03aa254fSHongbo Zhang		compatible = "fsl,eloplus-dma-channel";
177*03aa254fSHongbo Zhang		reg = <0x300 0x80>;
178*03aa254fSHongbo Zhang		interrupts = <76 2 0 0>;
179*03aa254fSHongbo Zhang	};
180*03aa254fSHongbo Zhang	dma-channel@380 {
181*03aa254fSHongbo Zhang		compatible = "fsl,eloplus-dma-channel";
182*03aa254fSHongbo Zhang		reg = <0x380 0x80>;
183*03aa254fSHongbo Zhang		interrupts = <77 2 0 0>;
184*03aa254fSHongbo Zhang	};
185*03aa254fSHongbo Zhang	dma-channel@400 {
186*03aa254fSHongbo Zhang		compatible = "fsl,eloplus-dma-channel";
187*03aa254fSHongbo Zhang		reg = <0x400 0x80>;
188*03aa254fSHongbo Zhang		interrupts = <78 2 0 0>;
189*03aa254fSHongbo Zhang	};
190*03aa254fSHongbo Zhang	dma-channel@480 {
191*03aa254fSHongbo Zhang		compatible = "fsl,eloplus-dma-channel";
192*03aa254fSHongbo Zhang		reg = <0x480 0x80>;
193*03aa254fSHongbo Zhang		interrupts = <79 2 0 0>;
194*03aa254fSHongbo Zhang	};
195*03aa254fSHongbo Zhang};
196*03aa254fSHongbo Zhang
197d524dac9SGrant LikelyNote on DMA channel compatible properties: The compatible property must say
198d524dac9SGrant Likely"fsl,elo-dma-channel" or "fsl,eloplus-dma-channel" to be used by the Elo DMA
199d524dac9SGrant Likelydriver (fsldma).  Any DMA channel used by fsldma cannot be used by another
200d524dac9SGrant LikelyDMA driver, such as the SSI sound drivers for the MPC8610.  Therefore, any DMA
201d524dac9SGrant Likelychannel that should be used for another driver should not use
202d524dac9SGrant Likely"fsl,elo-dma-channel" or "fsl,eloplus-dma-channel".  For the SSI drivers, for
203d524dac9SGrant Likelyexample, the compatible property should be "fsl,ssi-dma-channel".  See ssi.txt
204d524dac9SGrant Likelyfor more information.
205