xref: /openbmc/linux/Documentation/devicetree/bindings/dma/ti-edma.txt (revision 470bbff038568ba0ac7e2082bea122851130f87d)
11be5336bSPeter UjfalusiTexas Instruments eDMA
21be5336bSPeter Ujfalusi
31be5336bSPeter UjfalusiThe eDMA3 consists of two components: Channel controller (CC) and Transfer
41be5336bSPeter UjfalusiController(s) (TC). The CC is the main entry for DMA users since it is
51be5336bSPeter Ujfalusiresponsible for the DMA channel handling, while the TCs are responsible to
61be5336bSPeter Ujfalusiexecute the actual DMA tansfer.
71be5336bSPeter Ujfalusi
81be5336bSPeter Ujfalusi------------------------------------------------------------------------------
91be5336bSPeter UjfalusieDMA3 Channel Controller
101be5336bSPeter Ujfalusi
111be5336bSPeter UjfalusiRequired properties:
12*470bbff0SLokesh Vutla--------------------
13*470bbff0SLokesh Vutla- compatible:	Should be:
14*470bbff0SLokesh Vutla		- "ti,edma3-tpcc" for the channel controller(s) on OMAP,
15*470bbff0SLokesh Vutla		  AM33xx and AM43xx SoCs.
16*470bbff0SLokesh Vutla		- "ti,k2g-edma3-tpcc", "ti,edma3-tpcc" for the
17*470bbff0SLokesh Vutla		  channel controller(s) on 66AK2G.
181be5336bSPeter Ujfalusi- #dma-cells:	Should be set to <2>. The first number is the DMA request
191be5336bSPeter Ujfalusi		number and the second is the TC the channel is serviced on.
201be5336bSPeter Ujfalusi- reg:		Memory map of eDMA CC
211be5336bSPeter Ujfalusi- reg-names:	"edma3_cc"
221be5336bSPeter Ujfalusi- interrupts:	Interrupt lines for CCINT, MPERR and CCERRINT.
23a5206553SRobert P. J. Day- interrupt-names: "edma3_ccint", "edma3_mperr" and "edma3_ccerrint"
241be5336bSPeter Ujfalusi- ti,tptcs:	List of TPTCs associated with the eDMA in the following form:
251be5336bSPeter Ujfalusi		<&tptc_phandle TC_priority_number>. The highest priority is 0.
261be5336bSPeter Ujfalusi
27*470bbff0SLokesh VutlaSoC-specific Required properties:
28*470bbff0SLokesh Vutla--------------------------------
29*470bbff0SLokesh VutlaThe following are mandatory properties for OMAP, AM33xx and AM43xx SoCs only:
30*470bbff0SLokesh Vutla- ti,hwmods:	Name of the hwmods associated to the eDMA CC.
31*470bbff0SLokesh Vutla
32*470bbff0SLokesh VutlaThe following are mandatory properties for 66AK2G SoCs only:
33*470bbff0SLokesh Vutla- power-domains:Should contain a phandle to a PM domain provider node
34*470bbff0SLokesh Vutla		and an args specifier containing the device id
35*470bbff0SLokesh Vutla		value. This property is as per the binding,
36*470bbff0SLokesh Vutla		Documentation/devicetree/bindings/soc/ti/sci-pm-domain.txt
37*470bbff0SLokesh Vutla
381be5336bSPeter UjfalusiOptional properties:
39*470bbff0SLokesh Vutla-------------------
401be5336bSPeter Ujfalusi- ti,edma-memcpy-channels: List of channels allocated to be used for memcpy, iow
41ecb7deceSPeter Ujfalusi		these channels will be SW triggered channels. See example.
421be5336bSPeter Ujfalusi- ti,edma-reserved-slot-ranges: PaRAM slot ranges which should not be used by
431be5336bSPeter Ujfalusi		the driver, they are allocated to be used by for example the
441be5336bSPeter Ujfalusi		DSP. See example.
451be5336bSPeter Ujfalusi
461be5336bSPeter Ujfalusi------------------------------------------------------------------------------
471be5336bSPeter UjfalusieDMA3 Transfer Controller
481be5336bSPeter Ujfalusi
491be5336bSPeter UjfalusiRequired properties:
50*470bbff0SLokesh Vutla--------------------
51*470bbff0SLokesh Vutla- compatible:	Should be:
52*470bbff0SLokesh Vutla		- "ti,edma3-tptc" for the transfer controller(s) on OMAP,
53*470bbff0SLokesh Vutla		  AM33xx and AM43xx SoCs.
54*470bbff0SLokesh Vutla		- "ti,k2g-edma3-tptc", "ti,edma3-tptc" for the
55*470bbff0SLokesh Vutla		  transfer controller(s) on 66AK2G.
561be5336bSPeter Ujfalusi- reg:		Memory map of eDMA TC
571be5336bSPeter Ujfalusi- interrupts:	Interrupt number for TCerrint.
581be5336bSPeter Ujfalusi
59*470bbff0SLokesh VutlaSoC-specific Required properties:
60*470bbff0SLokesh Vutla--------------------------------
61*470bbff0SLokesh VutlaThe following are mandatory properties for OMAP, AM33xx and AM43xx SoCs only:
62*470bbff0SLokesh Vutla- ti,hwmods:	Name of the hwmods associated to the eDMA TC.
63*470bbff0SLokesh Vutla
64*470bbff0SLokesh VutlaThe following are mandatory properties for 66AK2G SoCs only:
65*470bbff0SLokesh Vutla- power-domains:Should contain a phandle to a PM domain provider node
66*470bbff0SLokesh Vutla		and an args specifier containing the device id
67*470bbff0SLokesh Vutla		value. This property is as per the binding,
68*470bbff0SLokesh Vutla		Documentation/devicetree/bindings/soc/ti/sci-pm-domain.txt
69*470bbff0SLokesh Vutla
701be5336bSPeter UjfalusiOptional properties:
71*470bbff0SLokesh Vutla-------------------
721be5336bSPeter Ujfalusi- interrupt-names: "edma3_tcerrint"
731be5336bSPeter Ujfalusi
741be5336bSPeter Ujfalusi------------------------------------------------------------------------------
75*470bbff0SLokesh VutlaExamples:
761be5336bSPeter Ujfalusi
77*470bbff0SLokesh Vutla1.
781be5336bSPeter Ujfalusiedma: edma@49000000 {
791be5336bSPeter Ujfalusi	compatible = "ti,edma3-tpcc";
801be5336bSPeter Ujfalusi	ti,hwmods = "tpcc";
811be5336bSPeter Ujfalusi	reg =	<0x49000000 0x10000>;
821be5336bSPeter Ujfalusi	reg-names = "edma3_cc";
831be5336bSPeter Ujfalusi	interrupts = <12 13 14>;
84a5206553SRobert P. J. Day	interrupt-names = "edma3_ccint", "edma3_mperr", "edma3_ccerrint";
851be5336bSPeter Ujfalusi	dma-requests = <64>;
861be5336bSPeter Ujfalusi	#dma-cells = <2>;
871be5336bSPeter Ujfalusi
881be5336bSPeter Ujfalusi	ti,tptcs = <&edma_tptc0 7>, <&edma_tptc1 7>, <&edma_tptc2 0>;
891be5336bSPeter Ujfalusi
901be5336bSPeter Ujfalusi	/* Channel 20 and 21 is allocated for memcpy */
91ecb7deceSPeter Ujfalusi	ti,edma-memcpy-channels = <20 21>;
92ae0add74SPeter Ujfalusi	/* The following PaRAM slots are reserved: 35-44 and 100-109 */
93ae0add74SPeter Ujfalusi	ti,edma-reserved-slot-ranges = <35 10>, <100 10>;
941be5336bSPeter Ujfalusi};
951be5336bSPeter Ujfalusi
961be5336bSPeter Ujfalusiedma_tptc0: tptc@49800000 {
971be5336bSPeter Ujfalusi	compatible = "ti,edma3-tptc";
981be5336bSPeter Ujfalusi	ti,hwmods = "tptc0";
991be5336bSPeter Ujfalusi	reg =	<0x49800000 0x100000>;
1001be5336bSPeter Ujfalusi	interrupts = <112>;
1011be5336bSPeter Ujfalusi	interrupt-names = "edm3_tcerrint";
1021be5336bSPeter Ujfalusi};
1031be5336bSPeter Ujfalusi
1041be5336bSPeter Ujfalusiedma_tptc1: tptc@49900000 {
1051be5336bSPeter Ujfalusi	compatible = "ti,edma3-tptc";
1061be5336bSPeter Ujfalusi	ti,hwmods = "tptc1";
1071be5336bSPeter Ujfalusi	reg =	<0x49900000 0x100000>;
1081be5336bSPeter Ujfalusi	interrupts = <113>;
1091be5336bSPeter Ujfalusi	interrupt-names = "edm3_tcerrint";
1101be5336bSPeter Ujfalusi};
1111be5336bSPeter Ujfalusi
1121be5336bSPeter Ujfalusiedma_tptc2: tptc@49a00000 {
1131be5336bSPeter Ujfalusi	compatible = "ti,edma3-tptc";
1141be5336bSPeter Ujfalusi	ti,hwmods = "tptc2";
1151be5336bSPeter Ujfalusi	reg =	<0x49a00000 0x100000>;
1161be5336bSPeter Ujfalusi	interrupts = <114>;
1171be5336bSPeter Ujfalusi	interrupt-names = "edm3_tcerrint";
1181be5336bSPeter Ujfalusi};
1191be5336bSPeter Ujfalusi
1201be5336bSPeter Ujfalusisham: sham@53100000 {
1211be5336bSPeter Ujfalusi	compatible = "ti,omap4-sham";
1221be5336bSPeter Ujfalusi	ti,hwmods = "sham";
1231be5336bSPeter Ujfalusi	reg = <0x53100000 0x200>;
1241be5336bSPeter Ujfalusi	interrupts = <109>;
1251be5336bSPeter Ujfalusi	/* DMA channel 36 executed on eDMA TC0 - low priority queue */
1261be5336bSPeter Ujfalusi	dmas = <&edma 36 0>;
1271be5336bSPeter Ujfalusi	dma-names = "rx";
1281be5336bSPeter Ujfalusi};
1291be5336bSPeter Ujfalusi
1301be5336bSPeter Ujfalusimcasp0: mcasp@48038000 {
1311be5336bSPeter Ujfalusi	compatible = "ti,am33xx-mcasp-audio";
1321be5336bSPeter Ujfalusi	ti,hwmods = "mcasp0";
1331be5336bSPeter Ujfalusi	reg = <0x48038000 0x2000>,
1341be5336bSPeter Ujfalusi		<0x46000000 0x400000>;
1351be5336bSPeter Ujfalusi	reg-names = "mpu", "dat";
1361be5336bSPeter Ujfalusi	interrupts = <80>, <81>;
1371be5336bSPeter Ujfalusi	interrupt-names = "tx", "rx";
1381be5336bSPeter Ujfalusi	status = "disabled";
1391be5336bSPeter Ujfalusi	/* DMA channels 8 and 9 executed on eDMA TC2 - high priority queue */
1401be5336bSPeter Ujfalusi	dmas = <&edma 8 2>,
1411be5336bSPeter Ujfalusi	       <&edma 9 2>;
1421be5336bSPeter Ujfalusi	dma-names = "tx", "rx";
1431be5336bSPeter Ujfalusi};
1441be5336bSPeter Ujfalusi
145*470bbff0SLokesh Vutla2.
146*470bbff0SLokesh Vutlaedma1: edma@02728000 {
147*470bbff0SLokesh Vutla	compatible = "ti,k2g-edma3-tpcc", "ti,edma3-tpcc";
148*470bbff0SLokesh Vutla	reg =	<0x02728000 0x8000>;
149*470bbff0SLokesh Vutla	reg-names = "edma3_cc";
150*470bbff0SLokesh Vutla	interrupts = <GIC_SPI 208 IRQ_TYPE_EDGE_RISING>,
151*470bbff0SLokesh Vutla			<GIC_SPI 219 IRQ_TYPE_EDGE_RISING>,
152*470bbff0SLokesh Vutla			<GIC_SPI 220 IRQ_TYPE_EDGE_RISING>;
153*470bbff0SLokesh Vutla	interrupt-names = "edma3_ccint", "emda3_mperr",
154*470bbff0SLokesh Vutla			  "edma3_ccerrint";
155*470bbff0SLokesh Vutla	dma-requests = <64>;
156*470bbff0SLokesh Vutla	#dma-cells = <2>;
157*470bbff0SLokesh Vutla
158*470bbff0SLokesh Vutla	ti,tptcs = <&edma1_tptc0 7>, <&edma1_tptc1 0>;
159*470bbff0SLokesh Vutla
160*470bbff0SLokesh Vutla	/*
161*470bbff0SLokesh Vutla	 * memcpy is disabled, can be enabled with:
162*470bbff0SLokesh Vutla	 * ti,edma-memcpy-channels = <12 13 14 15>;
163*470bbff0SLokesh Vutla	 * for example.
164*470bbff0SLokesh Vutla	 */
165*470bbff0SLokesh Vutla
166*470bbff0SLokesh Vutla	power-domains = <&k2g_pds 0x4f>;
167*470bbff0SLokesh Vutla};
168*470bbff0SLokesh Vutla
169*470bbff0SLokesh Vutlaedma1_tptc0: tptc@027b0000 {
170*470bbff0SLokesh Vutla	compatible = "ti,k2g-edma3-tptc", "ti,edma3-tptc";
171*470bbff0SLokesh Vutla	reg =	<0x027b0000 0x400>;
172*470bbff0SLokesh Vutla	power-domains = <&k2g_pds 0x4f>;
173*470bbff0SLokesh Vutla};
174*470bbff0SLokesh Vutla
175*470bbff0SLokesh Vutlaedma1_tptc1: tptc@027b8000 {
176*470bbff0SLokesh Vutla	compatible = "ti, k2g-edma3-tptc", "ti,edma3-tptc";
177*470bbff0SLokesh Vutla	reg =	<0x027b8000 0x400>;
178*470bbff0SLokesh Vutla	power-domains = <&k2g_pds 0x4f>;
179*470bbff0SLokesh Vutla};
180*470bbff0SLokesh Vutla
181*470bbff0SLokesh Vutlammc0: mmc@23000000 {
182*470bbff0SLokesh Vutla	compatible = "ti,k2g-hsmmc", "ti,omap4-hsmmc";
183*470bbff0SLokesh Vutla	reg = <0x23000000 0x400>;
184*470bbff0SLokesh Vutla	interrupts = <GIC_SPI 96 IRQ_TYPE_EDGE_RISING>;
185*470bbff0SLokesh Vutla	dmas = <&edma1 24 0>, <&edma1 25 0>;
186*470bbff0SLokesh Vutla	dma-names = "tx", "rx";
187*470bbff0SLokesh Vutla	bus-width = <4>;
188*470bbff0SLokesh Vutla	ti,needs-special-reset;
189*470bbff0SLokesh Vutla	no-1-8-v;
190*470bbff0SLokesh Vutla	max-frequency = <96000000>;
191*470bbff0SLokesh Vutla	power-domains = <&k2g_pds 0xb>;
192*470bbff0SLokesh Vutla	clocks = <&k2g_clks 0xb 1>, <&k2g_clks 0xb 2>;
193*470bbff0SLokesh Vutla	clock-names = "fck", "mmchsdb_fck";
194*470bbff0SLokesh Vutla	status = "disabled";
195*470bbff0SLokesh Vutla};
196*470bbff0SLokesh Vutla
1971be5336bSPeter Ujfalusi------------------------------------------------------------------------------
1981be5336bSPeter UjfalusiDEPRECATED binding, new DTS files must use the ti,edma3-tpcc/ti,edma3-tptc
1991be5336bSPeter Ujfalusibinding.
200bf3156ddSMatt Porter
201bf3156ddSMatt PorterRequired properties:
202bf3156ddSMatt Porter- compatible : "ti,edma3"
203bf3156ddSMatt Porter- #dma-cells: Should be set to <1>
204bf3156ddSMatt Porter              Clients should use a single channel number per DMA request.
205bf3156ddSMatt Porter- reg: Memory map for accessing module
206bf3156ddSMatt Porter- interrupt-parent: Interrupt controller the interrupt is routed through
207bf3156ddSMatt Porter- interrupts: Exactly 3 interrupts need to be specified in the order:
208bf3156ddSMatt Porter              1. Transfer completion interrupt.
209bf3156ddSMatt Porter              2. Memory protection interrupt.
210bf3156ddSMatt Porter              3. Error interrupt.
211bf3156ddSMatt PorterOptional properties:
212bf3156ddSMatt Porter- ti,hwmods: Name of the hwmods associated to the EDMA
213bf3156ddSMatt Porter- ti,edma-xbar-event-map: Crossbar event to channel map
214bf3156ddSMatt Porter
215efc24e14SPeter UjfalusiDeprecated properties:
216efc24e14SPeter UjfalusiListed here in case one wants to boot an old kernel with new DTB. These
217efc24e14SPeter Ujfalusiproperties might need to be added to the new DTS files.
218efc24e14SPeter Ujfalusi- ti,edma-regions: Number of regions
219efc24e14SPeter Ujfalusi- ti,edma-slots: Number of slots
220efc24e14SPeter Ujfalusi- dma-channels: Specify total DMA channels per CC
221efc24e14SPeter Ujfalusi
222bf3156ddSMatt PorterExample:
223bf3156ddSMatt Porter
224bf3156ddSMatt Porteredma: edma@49000000 {
225bf3156ddSMatt Porter	reg = <0x49000000 0x10000>;
226bf3156ddSMatt Porter	interrupt-parent = <&intc>;
227bf3156ddSMatt Porter	interrupts = <12 13 14>;
228bf3156ddSMatt Porter	compatible = "ti,edma3";
229bf3156ddSMatt Porter	ti,hwmods = "tpcc", "tptc0", "tptc1", "tptc2";
230bf3156ddSMatt Porter	#dma-cells = <1>;
231cf7eb979SThomas Gleixner	ti,edma-xbar-event-map = /bits/ 16 <1 12
232bf3156ddSMatt Porter					    2 13>;
233bf3156ddSMatt Porter};
234