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