1 /*****************************************************************************
2 * Copyright 2004 - 2008 Broadcom Corporation. All rights reserved.
4 * Unless you and Broadcom execute a separate written software license
5 * agreement governing use of this software, this software is licensed to you
6 * under the terms of the GNU General Public License version 2, available at
7 * http://www.broadcom.com/licenses/GPLv2.php (the "GPL").
9 * Notwithstanding the above, under no circumstances may you combine this
10 * software in any way with any other Broadcom software provided under a
11 * license other than the GPL, without Broadcom's express prior written
13 *****************************************************************************/
15 /****************************************************************************/
19 * @brief private array of DMA_DeviceAttribute_t
21 /****************************************************************************/
23 DMA_DeviceAttribute_t DMA_gDeviceAttribute
[DMA_NUM_DEVICE_ENTRIES
] = {
24 [DMA_DEVICE_MEM_TO_MEM
] = /* MEM 2 MEM */
26 .flags
= DMA_DEVICE_FLAG_ON_DMA0
| DMA_DEVICE_FLAG_ON_DMA1
,
29 .srcUpdate
= dmacHw_SRC_ADDRESS_UPDATE_MODE_INC
,
30 .dstUpdate
= dmacHw_DST_ADDRESS_UPDATE_MODE_INC
,
31 .transferType
= dmacHw_TRANSFER_TYPE_MEM_TO_MEM
,
32 .transferMode
= dmacHw_TRANSFER_MODE_PERREQUEST
,
33 .srcMasterInterface
= dmacHw_SRC_MASTER_INTERFACE_1
,
34 .dstMasterInterface
= dmacHw_DST_MASTER_INTERFACE_1
,
35 .completeTransferInterrupt
= dmacHw_INTERRUPT_ENABLE
,
36 .errorInterrupt
= dmacHw_INTERRUPT_ENABLE
,
37 .channelPriority
= dmacHw_CHANNEL_PRIORITY_7
,
38 .srcMaxTransactionWidth
= dmacHw_SRC_TRANSACTION_WIDTH_64
,
39 .dstMaxTransactionWidth
= dmacHw_DST_TRANSACTION_WIDTH_64
,
43 [DMA_DEVICE_VPM_MEM_TO_MEM
] = /* VPM */
45 .flags
= DMA_DEVICE_FLAG_IS_DEDICATED
| DMA_DEVICE_FLAG_NO_ISR
,
47 .dedicatedController
= 0,
48 .dedicatedChannel
= 0,
49 /* reserve DMA0:0 for VPM */
51 [DMA_DEVICE_NAND_MEM_TO_MEM
] = /* NAND */
53 .flags
= DMA_DEVICE_FLAG_ON_DMA0
| DMA_DEVICE_FLAG_ON_DMA1
,
56 .srcPeripheralPort
= 0,
57 .dstPeripheralPort
= 0,
58 .srcStatusRegisterAddress
= 0x00000000,
59 .dstStatusRegisterAddress
= 0x00000000,
60 .transferType
= dmacHw_TRANSFER_TYPE_MEM_TO_MEM
,
61 .srcMasterInterface
= dmacHw_SRC_MASTER_INTERFACE_1
,
62 .dstMasterInterface
= dmacHw_DST_MASTER_INTERFACE_1
,
63 .srcMaxTransactionWidth
= dmacHw_SRC_TRANSACTION_WIDTH_32
,
64 .dstMaxTransactionWidth
= dmacHw_DST_TRANSACTION_WIDTH_32
,
65 .srcMaxBurstWidth
= dmacHw_SRC_BURST_WIDTH_4
,
66 .dstMaxBurstWidth
= dmacHw_DST_BURST_WIDTH_4
,
67 .completeTransferInterrupt
= dmacHw_INTERRUPT_ENABLE
,
68 .errorInterrupt
= dmacHw_INTERRUPT_ENABLE
,
69 .channelPriority
= dmacHw_CHANNEL_PRIORITY_6
,
72 [DMA_DEVICE_PIF_MEM_TO_DEV
] = /* PIF TX */
74 .flags
= DMA_DEVICE_FLAG_ON_DMA0
| DMA_DEVICE_FLAG_ON_DMA1
75 | DMA_DEVICE_FLAG_ALLOW_LARGE_FIFO
76 | DMA_DEVICE_FLAG_ALLOC_DMA1_FIRST
| DMA_DEVICE_FLAG_PORT_PER_DMAC
,
80 .srcPeripheralPort
= 0, /* SRC: memory */
81 /* dstPeripheralPort = 5 or 14 */
82 .srcStatusRegisterAddress
= 0x00000000,
83 .dstStatusRegisterAddress
= 0x00000000,
84 .srcUpdate
= dmacHw_SRC_ADDRESS_UPDATE_MODE_INC
,
85 .dstUpdate
= dmacHw_DST_ADDRESS_UPDATE_MODE_INC
,
86 .transferType
= dmacHw_TRANSFER_TYPE_MEM_TO_PERIPHERAL
,
87 .srcMasterInterface
= dmacHw_SRC_MASTER_INTERFACE_1
,
88 .dstMasterInterface
= dmacHw_DST_MASTER_INTERFACE_2
,
89 .completeTransferInterrupt
= dmacHw_INTERRUPT_ENABLE
,
90 .errorInterrupt
= dmacHw_INTERRUPT_ENABLE
,
91 .channelPriority
= dmacHw_CHANNEL_PRIORITY_7
,
92 .srcMaxTransactionWidth
= dmacHw_SRC_TRANSACTION_WIDTH_64
,
93 .dstMaxTransactionWidth
= dmacHw_DST_TRANSACTION_WIDTH_32
,
94 .srcMaxBurstWidth
= dmacHw_SRC_BURST_WIDTH_8
,
95 .dstMaxBurstWidth
= dmacHw_DST_BURST_WIDTH_8
,
96 .maxDataPerBlock
= 16256,
99 [DMA_DEVICE_PIF_DEV_TO_MEM
] = /* PIF RX */
101 .flags
= DMA_DEVICE_FLAG_ON_DMA0
| DMA_DEVICE_FLAG_ON_DMA1
102 | DMA_DEVICE_FLAG_ALLOW_LARGE_FIFO
103 /* DMA_DEVICE_FLAG_ALLOC_DMA1_FIRST */
104 | DMA_DEVICE_FLAG_PORT_PER_DMAC
,
108 /* srcPeripheralPort = 5 or 14 */
109 .dstPeripheralPort
= 0, /* DST: memory */
110 .srcStatusRegisterAddress
= 0x00000000,
111 .dstStatusRegisterAddress
= 0x00000000,
112 .srcUpdate
= dmacHw_SRC_ADDRESS_UPDATE_MODE_INC
,
113 .dstUpdate
= dmacHw_DST_ADDRESS_UPDATE_MODE_INC
,
114 .transferType
= dmacHw_TRANSFER_TYPE_PERIPHERAL_TO_MEM
,
115 .srcMasterInterface
= dmacHw_SRC_MASTER_INTERFACE_2
,
116 .dstMasterInterface
= dmacHw_DST_MASTER_INTERFACE_1
,
117 .completeTransferInterrupt
= dmacHw_INTERRUPT_ENABLE
,
118 .errorInterrupt
= dmacHw_INTERRUPT_ENABLE
,
119 .channelPriority
= dmacHw_CHANNEL_PRIORITY_7
,
120 .srcMaxTransactionWidth
= dmacHw_SRC_TRANSACTION_WIDTH_32
,
121 .dstMaxTransactionWidth
= dmacHw_DST_TRANSACTION_WIDTH_64
,
122 .srcMaxBurstWidth
= dmacHw_SRC_BURST_WIDTH_8
,
123 .dstMaxBurstWidth
= dmacHw_DST_BURST_WIDTH_8
,
124 .maxDataPerBlock
= 16256,
127 [DMA_DEVICE_I2S0_DEV_TO_MEM
] = /* I2S RX */
129 .flags
= DMA_DEVICE_FLAG_ON_DMA0
,
132 .srcPeripheralPort
= 0, /* SRC: I2S0 */
133 .dstPeripheralPort
= 0, /* DST: memory */
134 .srcStatusRegisterAddress
= 0,
135 .dstStatusRegisterAddress
= 0,
136 .transferType
= dmacHw_TRANSFER_TYPE_PERIPHERAL_TO_MEM
,
137 .srcMasterInterface
= dmacHw_SRC_MASTER_INTERFACE_1
,
138 .dstMasterInterface
= dmacHw_DST_MASTER_INTERFACE_1
,
139 .srcMaxTransactionWidth
= dmacHw_SRC_TRANSACTION_WIDTH_16
,
140 .dstMaxTransactionWidth
= dmacHw_DST_TRANSACTION_WIDTH_64
,
141 .srcMaxBurstWidth
= dmacHw_SRC_BURST_WIDTH_4
,
142 .dstMaxBurstWidth
= dmacHw_DST_BURST_WIDTH_0
,
143 .blockTransferInterrupt
= dmacHw_INTERRUPT_ENABLE
,
144 .completeTransferInterrupt
= dmacHw_INTERRUPT_DISABLE
,
145 .errorInterrupt
= dmacHw_INTERRUPT_ENABLE
,
146 .channelPriority
= dmacHw_CHANNEL_PRIORITY_7
,
147 .transferMode
= dmacHw_TRANSFER_MODE_CONTINUOUS
,
150 [DMA_DEVICE_I2S0_MEM_TO_DEV
] = /* I2S TX */
152 .flags
= DMA_DEVICE_FLAG_ON_DMA0
,
155 .srcPeripheralPort
= 0, /* SRC: memory */
156 .dstPeripheralPort
= 1, /* DST: I2S0 */
157 .srcStatusRegisterAddress
= 0,
158 .dstStatusRegisterAddress
= 0,
159 .transferType
= dmacHw_TRANSFER_TYPE_MEM_TO_PERIPHERAL
,
160 .srcMasterInterface
= dmacHw_SRC_MASTER_INTERFACE_1
,
161 .dstMasterInterface
= dmacHw_DST_MASTER_INTERFACE_1
,
162 .srcMaxTransactionWidth
= dmacHw_SRC_TRANSACTION_WIDTH_64
,
163 .dstMaxTransactionWidth
= dmacHw_DST_TRANSACTION_WIDTH_16
,
164 .srcMaxBurstWidth
= dmacHw_SRC_BURST_WIDTH_0
,
165 .dstMaxBurstWidth
= dmacHw_DST_BURST_WIDTH_4
,
166 .blockTransferInterrupt
= dmacHw_INTERRUPT_DISABLE
,
167 .completeTransferInterrupt
= dmacHw_INTERRUPT_ENABLE
,
168 .errorInterrupt
= dmacHw_INTERRUPT_ENABLE
,
169 .channelPriority
= dmacHw_CHANNEL_PRIORITY_7
,
170 .transferMode
= dmacHw_TRANSFER_MODE_PERREQUEST
,
173 [DMA_DEVICE_I2S1_DEV_TO_MEM
] = /* I2S1 RX */
175 .flags
= DMA_DEVICE_FLAG_ON_DMA1
,
178 .srcPeripheralPort
= 2, /* SRC: I2S1 */
179 .dstPeripheralPort
= 0, /* DST: memory */
180 .srcStatusRegisterAddress
= 0,
181 .dstStatusRegisterAddress
= 0,
182 .transferType
= dmacHw_TRANSFER_TYPE_PERIPHERAL_TO_MEM
,
183 .srcMasterInterface
= dmacHw_SRC_MASTER_INTERFACE_1
,
184 .dstMasterInterface
= dmacHw_DST_MASTER_INTERFACE_1
,
185 .srcMaxTransactionWidth
= dmacHw_SRC_TRANSACTION_WIDTH_16
,
186 .dstMaxTransactionWidth
= dmacHw_DST_TRANSACTION_WIDTH_64
,
187 .srcMaxBurstWidth
= dmacHw_SRC_BURST_WIDTH_4
,
188 .dstMaxBurstWidth
= dmacHw_DST_BURST_WIDTH_0
,
189 .blockTransferInterrupt
= dmacHw_INTERRUPT_ENABLE
,
190 .completeTransferInterrupt
= dmacHw_INTERRUPT_DISABLE
,
191 .errorInterrupt
= dmacHw_INTERRUPT_ENABLE
,
192 .channelPriority
= dmacHw_CHANNEL_PRIORITY_7
,
193 .transferMode
= dmacHw_TRANSFER_MODE_CONTINUOUS
,
196 [DMA_DEVICE_I2S1_MEM_TO_DEV
] = /* I2S1 TX */
198 .flags
= DMA_DEVICE_FLAG_ON_DMA1
,
201 .srcPeripheralPort
= 0, /* SRC: memory */
202 .dstPeripheralPort
= 3, /* DST: I2S1 */
203 .srcStatusRegisterAddress
= 0,
204 .dstStatusRegisterAddress
= 0,
205 .transferType
= dmacHw_TRANSFER_TYPE_MEM_TO_PERIPHERAL
,
206 .srcMasterInterface
= dmacHw_SRC_MASTER_INTERFACE_1
,
207 .dstMasterInterface
= dmacHw_DST_MASTER_INTERFACE_1
,
208 .srcMaxTransactionWidth
= dmacHw_SRC_TRANSACTION_WIDTH_64
,
209 .dstMaxTransactionWidth
= dmacHw_DST_TRANSACTION_WIDTH_16
,
210 .srcMaxBurstWidth
= dmacHw_SRC_BURST_WIDTH_0
,
211 .dstMaxBurstWidth
= dmacHw_DST_BURST_WIDTH_4
,
212 .blockTransferInterrupt
= dmacHw_INTERRUPT_DISABLE
,
213 .completeTransferInterrupt
= dmacHw_INTERRUPT_ENABLE
,
214 .errorInterrupt
= dmacHw_INTERRUPT_ENABLE
,
215 .channelPriority
= dmacHw_CHANNEL_PRIORITY_7
,
216 .transferMode
= dmacHw_TRANSFER_MODE_PERREQUEST
,
219 [DMA_DEVICE_ESW_MEM_TO_DEV
] = /* ESW TX */
222 .flags
= DMA_DEVICE_FLAG_IS_DEDICATED
,
223 .dedicatedController
= 1,
224 .dedicatedChannel
= 3,
226 .srcPeripheralPort
= 0, /* SRC: memory */
227 .dstPeripheralPort
= 1, /* DST: ESW (MTP) */
228 .completeTransferInterrupt
= dmacHw_INTERRUPT_ENABLE
,
229 .errorInterrupt
= dmacHw_INTERRUPT_DISABLE
,
230 /* DMAx_AHB_SSTATARy */
231 .srcStatusRegisterAddress
= 0x00000000,
232 /* DMAx_AHB_DSTATARy */
233 .dstStatusRegisterAddress
= 0x30490010,
235 .channelPriority
= dmacHw_CHANNEL_PRIORITY_7
,
237 .srcMasterInterface
= dmacHw_SRC_MASTER_INTERFACE_2
,
238 .dstMasterInterface
= dmacHw_DST_MASTER_INTERFACE_1
,
239 .transferType
= dmacHw_TRANSFER_TYPE_MEM_TO_PERIPHERAL
,
240 .srcMaxBurstWidth
= dmacHw_SRC_BURST_WIDTH_0
,
241 .dstMaxBurstWidth
= dmacHw_DST_BURST_WIDTH_8
,
242 .srcUpdate
= dmacHw_SRC_ADDRESS_UPDATE_MODE_INC
,
243 .dstUpdate
= dmacHw_DST_ADDRESS_UPDATE_MODE_INC
,
244 .srcMaxTransactionWidth
= dmacHw_SRC_TRANSACTION_WIDTH_64
,
245 .dstMaxTransactionWidth
= dmacHw_DST_TRANSACTION_WIDTH_64
,
248 [DMA_DEVICE_ESW_DEV_TO_MEM
] = /* ESW RX */
251 .flags
= DMA_DEVICE_FLAG_IS_DEDICATED
,
252 .dedicatedController
= 1,
253 .dedicatedChannel
= 2,
255 .srcPeripheralPort
= 0, /* SRC: ESW (PTM) */
256 .dstPeripheralPort
= 0, /* DST: memory */
257 .completeTransferInterrupt
= dmacHw_INTERRUPT_ENABLE
,
258 .errorInterrupt
= dmacHw_INTERRUPT_DISABLE
,
259 /* DMAx_AHB_SSTATARy */
260 .srcStatusRegisterAddress
= 0x30480010,
261 /* DMAx_AHB_DSTATARy */
262 .dstStatusRegisterAddress
= 0x00000000,
264 .channelPriority
= dmacHw_CHANNEL_PRIORITY_7
,
266 .srcMasterInterface
= dmacHw_SRC_MASTER_INTERFACE_2
,
267 .dstMasterInterface
= dmacHw_DST_MASTER_INTERFACE_1
,
268 .transferType
= dmacHw_TRANSFER_TYPE_PERIPHERAL_TO_MEM
,
269 .srcMaxBurstWidth
= dmacHw_SRC_BURST_WIDTH_8
,
270 .dstMaxBurstWidth
= dmacHw_DST_BURST_WIDTH_0
,
271 .srcUpdate
= dmacHw_SRC_ADDRESS_UPDATE_MODE_INC
,
272 .dstUpdate
= dmacHw_DST_ADDRESS_UPDATE_MODE_INC
,
273 .srcMaxTransactionWidth
= dmacHw_SRC_TRANSACTION_WIDTH_64
,
274 .dstMaxTransactionWidth
= dmacHw_DST_TRANSACTION_WIDTH_64
,
277 [DMA_DEVICE_APM_CODEC_A_DEV_TO_MEM
] = /* APM Codec A Ingress */
279 .flags
= DMA_DEVICE_FLAG_ON_DMA0
,
282 .srcPeripheralPort
= 2, /* SRC: Codec A Ingress FIFO */
283 .dstPeripheralPort
= 0, /* DST: memory */
284 .srcStatusRegisterAddress
= 0x00000000,
285 .dstStatusRegisterAddress
= 0x00000000,
286 .srcUpdate
= dmacHw_SRC_ADDRESS_UPDATE_MODE_INC
,
287 .dstUpdate
= dmacHw_DST_ADDRESS_UPDATE_MODE_INC
,
288 .transferType
= dmacHw_TRANSFER_TYPE_PERIPHERAL_TO_MEM
,
289 .srcMasterInterface
= dmacHw_SRC_MASTER_INTERFACE_2
,
290 .dstMasterInterface
= dmacHw_DST_MASTER_INTERFACE_1
,
291 .blockTransferInterrupt
= dmacHw_INTERRUPT_ENABLE
,
292 .completeTransferInterrupt
= dmacHw_INTERRUPT_DISABLE
,
293 .errorInterrupt
= dmacHw_INTERRUPT_ENABLE
,
294 .channelPriority
= dmacHw_CHANNEL_PRIORITY_7
,
295 .srcMaxTransactionWidth
= dmacHw_SRC_TRANSACTION_WIDTH_32
,
296 .dstMaxTransactionWidth
= dmacHw_DST_TRANSACTION_WIDTH_64
,
297 .srcMaxBurstWidth
= dmacHw_SRC_BURST_WIDTH_4
,
298 .dstMaxBurstWidth
= dmacHw_DST_BURST_WIDTH_4
,
299 .transferMode
= dmacHw_TRANSFER_MODE_CONTINUOUS
,
302 [DMA_DEVICE_APM_CODEC_A_MEM_TO_DEV
] = /* APM Codec A Egress */
304 .flags
= DMA_DEVICE_FLAG_ON_DMA0
,
307 .srcPeripheralPort
= 0, /* SRC: memory */
308 .dstPeripheralPort
= 3, /* DST: Codec A Egress FIFO */
309 .srcStatusRegisterAddress
= 0x00000000,
310 .dstStatusRegisterAddress
= 0x00000000,
311 .srcUpdate
= dmacHw_SRC_ADDRESS_UPDATE_MODE_INC
,
312 .dstUpdate
= dmacHw_DST_ADDRESS_UPDATE_MODE_INC
,
313 .transferType
= dmacHw_TRANSFER_TYPE_MEM_TO_PERIPHERAL
,
314 .srcMasterInterface
= dmacHw_SRC_MASTER_INTERFACE_1
,
315 .dstMasterInterface
= dmacHw_DST_MASTER_INTERFACE_2
,
316 .blockTransferInterrupt
= dmacHw_INTERRUPT_DISABLE
,
317 .completeTransferInterrupt
= dmacHw_INTERRUPT_ENABLE
,
318 .errorInterrupt
= dmacHw_INTERRUPT_ENABLE
,
319 .channelPriority
= dmacHw_CHANNEL_PRIORITY_7
,
320 .srcMaxTransactionWidth
= dmacHw_SRC_TRANSACTION_WIDTH_64
,
321 .dstMaxTransactionWidth
= dmacHw_DST_TRANSACTION_WIDTH_32
,
322 .srcMaxBurstWidth
= dmacHw_SRC_BURST_WIDTH_4
,
323 .dstMaxBurstWidth
= dmacHw_DST_BURST_WIDTH_4
,
324 .transferMode
= dmacHw_TRANSFER_MODE_PERREQUEST
,
327 [DMA_DEVICE_APM_CODEC_B_DEV_TO_MEM
] = /* APM Codec B Ingress */
329 .flags
= DMA_DEVICE_FLAG_ON_DMA0
,
332 .srcPeripheralPort
= 4, /* SRC: Codec B Ingress FIFO */
333 .dstPeripheralPort
= 0, /* DST: memory */
334 .srcStatusRegisterAddress
= 0x00000000,
335 .dstStatusRegisterAddress
= 0x00000000,
336 .srcUpdate
= dmacHw_SRC_ADDRESS_UPDATE_MODE_INC
,
337 .dstUpdate
= dmacHw_DST_ADDRESS_UPDATE_MODE_INC
,
338 .transferType
= dmacHw_TRANSFER_TYPE_PERIPHERAL_TO_MEM
,
339 .srcMasterInterface
= dmacHw_SRC_MASTER_INTERFACE_2
,
340 .dstMasterInterface
= dmacHw_DST_MASTER_INTERFACE_1
,
341 .blockTransferInterrupt
= dmacHw_INTERRUPT_ENABLE
,
342 .completeTransferInterrupt
= dmacHw_INTERRUPT_DISABLE
,
343 .errorInterrupt
= dmacHw_INTERRUPT_ENABLE
,
344 .channelPriority
= dmacHw_CHANNEL_PRIORITY_7
,
345 .srcMaxTransactionWidth
= dmacHw_SRC_TRANSACTION_WIDTH_32
,
346 .dstMaxTransactionWidth
= dmacHw_DST_TRANSACTION_WIDTH_64
,
347 .srcMaxBurstWidth
= dmacHw_SRC_BURST_WIDTH_4
,
348 .dstMaxBurstWidth
= dmacHw_DST_BURST_WIDTH_4
,
349 .transferMode
= dmacHw_TRANSFER_MODE_CONTINUOUS
,
352 [DMA_DEVICE_APM_CODEC_B_MEM_TO_DEV
] = /* APM Codec B Egress */
354 .flags
= DMA_DEVICE_FLAG_ON_DMA0
,
357 .srcPeripheralPort
= 0, /* SRC: memory */
358 .dstPeripheralPort
= 5, /* DST: Codec B Egress FIFO */
359 .srcStatusRegisterAddress
= 0x00000000,
360 .dstStatusRegisterAddress
= 0x00000000,
361 .srcUpdate
= dmacHw_SRC_ADDRESS_UPDATE_MODE_INC
,
362 .dstUpdate
= dmacHw_DST_ADDRESS_UPDATE_MODE_INC
,
363 .transferType
= dmacHw_TRANSFER_TYPE_MEM_TO_PERIPHERAL
,
364 .srcMasterInterface
= dmacHw_SRC_MASTER_INTERFACE_1
,
365 .dstMasterInterface
= dmacHw_DST_MASTER_INTERFACE_2
,
366 .blockTransferInterrupt
= dmacHw_INTERRUPT_DISABLE
,
367 .completeTransferInterrupt
= dmacHw_INTERRUPT_ENABLE
,
368 .errorInterrupt
= dmacHw_INTERRUPT_ENABLE
,
369 .channelPriority
= dmacHw_CHANNEL_PRIORITY_7
,
370 .srcMaxTransactionWidth
= dmacHw_SRC_TRANSACTION_WIDTH_64
,
371 .dstMaxTransactionWidth
= dmacHw_DST_TRANSACTION_WIDTH_32
,
372 .srcMaxBurstWidth
= dmacHw_SRC_BURST_WIDTH_4
,
373 .dstMaxBurstWidth
= dmacHw_DST_BURST_WIDTH_4
,
374 .transferMode
= dmacHw_TRANSFER_MODE_PERREQUEST
,
377 [DMA_DEVICE_APM_CODEC_C_DEV_TO_MEM
] = /* APM Codec C Ingress */
379 .flags
= DMA_DEVICE_FLAG_ON_DMA1
,
382 .srcPeripheralPort
= 4, /* SRC: Codec C Ingress FIFO */
383 .dstPeripheralPort
= 0, /* DST: memory */
384 .srcStatusRegisterAddress
= 0x00000000,
385 .dstStatusRegisterAddress
= 0x00000000,
386 .srcUpdate
= dmacHw_SRC_ADDRESS_UPDATE_MODE_INC
,
387 .dstUpdate
= dmacHw_DST_ADDRESS_UPDATE_MODE_INC
,
388 .transferType
= dmacHw_TRANSFER_TYPE_PERIPHERAL_TO_MEM
,
389 .srcMasterInterface
= dmacHw_SRC_MASTER_INTERFACE_2
,
390 .dstMasterInterface
= dmacHw_DST_MASTER_INTERFACE_1
,
391 .blockTransferInterrupt
= dmacHw_INTERRUPT_ENABLE
,
392 .completeTransferInterrupt
= dmacHw_INTERRUPT_DISABLE
,
393 .errorInterrupt
= dmacHw_INTERRUPT_ENABLE
,
394 .channelPriority
= dmacHw_CHANNEL_PRIORITY_7
,
395 .srcMaxTransactionWidth
= dmacHw_SRC_TRANSACTION_WIDTH_32
,
396 .dstMaxTransactionWidth
= dmacHw_DST_TRANSACTION_WIDTH_64
,
397 .srcMaxBurstWidth
= dmacHw_SRC_BURST_WIDTH_4
,
398 .dstMaxBurstWidth
= dmacHw_DST_BURST_WIDTH_4
,
399 .transferMode
= dmacHw_TRANSFER_MODE_CONTINUOUS
,
402 [DMA_DEVICE_APM_PCM0_DEV_TO_MEM
] = /* PCM0 RX */
404 .flags
= DMA_DEVICE_FLAG_ON_DMA0
,
407 .srcPeripheralPort
= 12, /* SRC: PCM0 */
408 .dstPeripheralPort
= 0, /* DST: memory */
409 .srcStatusRegisterAddress
= 0,
410 .dstStatusRegisterAddress
= 0,
411 .transferType
= dmacHw_TRANSFER_TYPE_PERIPHERAL_TO_MEM
,
412 .srcMasterInterface
= dmacHw_SRC_MASTER_INTERFACE_2
,
413 .dstMasterInterface
= dmacHw_DST_MASTER_INTERFACE_1
,
414 .srcMaxTransactionWidth
= dmacHw_SRC_TRANSACTION_WIDTH_32
,
415 .dstMaxTransactionWidth
= dmacHw_DST_TRANSACTION_WIDTH_64
,
416 .srcMaxBurstWidth
= dmacHw_SRC_BURST_WIDTH_8
,
417 .dstMaxBurstWidth
= dmacHw_DST_BURST_WIDTH_4
,
418 .blockTransferInterrupt
= dmacHw_INTERRUPT_ENABLE
,
419 .completeTransferInterrupt
= dmacHw_INTERRUPT_DISABLE
,
420 .errorInterrupt
= dmacHw_INTERRUPT_ENABLE
,
421 .channelPriority
= dmacHw_CHANNEL_PRIORITY_7
,
422 .transferMode
= dmacHw_TRANSFER_MODE_CONTINUOUS
,
425 [DMA_DEVICE_APM_PCM0_MEM_TO_DEV
] = /* PCM0 TX */
427 .flags
= DMA_DEVICE_FLAG_ON_DMA0
,
430 .srcPeripheralPort
= 0, /* SRC: memory */
431 .dstPeripheralPort
= 13, /* DST: PCM0 */
432 .srcStatusRegisterAddress
= 0,
433 .dstStatusRegisterAddress
= 0,
434 .transferType
= dmacHw_TRANSFER_TYPE_MEM_TO_PERIPHERAL
,
435 .srcMasterInterface
= dmacHw_SRC_MASTER_INTERFACE_1
,
436 .dstMasterInterface
= dmacHw_DST_MASTER_INTERFACE_2
,
437 .srcMaxTransactionWidth
= dmacHw_SRC_TRANSACTION_WIDTH_64
,
438 .dstMaxTransactionWidth
= dmacHw_DST_TRANSACTION_WIDTH_32
,
439 .srcMaxBurstWidth
= dmacHw_SRC_BURST_WIDTH_4
,
440 .dstMaxBurstWidth
= dmacHw_DST_BURST_WIDTH_8
,
441 .blockTransferInterrupt
= dmacHw_INTERRUPT_DISABLE
,
442 .completeTransferInterrupt
= dmacHw_INTERRUPT_ENABLE
,
443 .errorInterrupt
= dmacHw_INTERRUPT_ENABLE
,
444 .channelPriority
= dmacHw_CHANNEL_PRIORITY_7
,
445 .transferMode
= dmacHw_TRANSFER_MODE_PERREQUEST
,
448 [DMA_DEVICE_APM_PCM1_DEV_TO_MEM
] = /* PCM1 RX */
450 .flags
= DMA_DEVICE_FLAG_ON_DMA1
,
453 .srcPeripheralPort
= 14, /* SRC: PCM1 */
454 .dstPeripheralPort
= 0, /* DST: memory */
455 .srcStatusRegisterAddress
= 0,
456 .dstStatusRegisterAddress
= 0,
457 .transferType
= dmacHw_TRANSFER_TYPE_PERIPHERAL_TO_MEM
,
458 .srcMasterInterface
= dmacHw_SRC_MASTER_INTERFACE_2
,
459 .dstMasterInterface
= dmacHw_DST_MASTER_INTERFACE_1
,
460 .srcMaxTransactionWidth
= dmacHw_SRC_TRANSACTION_WIDTH_32
,
461 .dstMaxTransactionWidth
= dmacHw_DST_TRANSACTION_WIDTH_64
,
462 .srcMaxBurstWidth
= dmacHw_SRC_BURST_WIDTH_8
,
463 .dstMaxBurstWidth
= dmacHw_DST_BURST_WIDTH_4
,
464 .blockTransferInterrupt
= dmacHw_INTERRUPT_ENABLE
,
465 .completeTransferInterrupt
= dmacHw_INTERRUPT_DISABLE
,
466 .errorInterrupt
= dmacHw_INTERRUPT_ENABLE
,
467 .channelPriority
= dmacHw_CHANNEL_PRIORITY_7
,
468 .transferMode
= dmacHw_TRANSFER_MODE_CONTINUOUS
,
471 [DMA_DEVICE_APM_PCM1_MEM_TO_DEV
] = /* PCM1 TX */
473 .flags
= DMA_DEVICE_FLAG_ON_DMA1
,
476 .srcPeripheralPort
= 0, /* SRC: memory */
477 .dstPeripheralPort
= 15, /* DST: PCM1 */
478 .srcStatusRegisterAddress
= 0,
479 .dstStatusRegisterAddress
= 0,
480 .transferType
= dmacHw_TRANSFER_TYPE_MEM_TO_PERIPHERAL
,
481 .srcMasterInterface
= dmacHw_SRC_MASTER_INTERFACE_1
,
482 .dstMasterInterface
= dmacHw_DST_MASTER_INTERFACE_2
,
483 .srcMaxTransactionWidth
= dmacHw_SRC_TRANSACTION_WIDTH_64
,
484 .dstMaxTransactionWidth
= dmacHw_DST_TRANSACTION_WIDTH_32
,
485 .srcMaxBurstWidth
= dmacHw_SRC_BURST_WIDTH_4
,
486 .dstMaxBurstWidth
= dmacHw_DST_BURST_WIDTH_8
,
487 .blockTransferInterrupt
= dmacHw_INTERRUPT_DISABLE
,
488 .completeTransferInterrupt
= dmacHw_INTERRUPT_ENABLE
,
489 .errorInterrupt
= dmacHw_INTERRUPT_ENABLE
,
490 .channelPriority
= dmacHw_CHANNEL_PRIORITY_7
,
491 .transferMode
= dmacHw_TRANSFER_MODE_PERREQUEST
,
494 [DMA_DEVICE_SPUM_DEV_TO_MEM
] = /* SPUM RX */
496 .flags
= DMA_DEVICE_FLAG_ON_DMA0
| DMA_DEVICE_FLAG_ON_DMA1
,
499 .srcPeripheralPort
= 6, /* SRC: Codec A Ingress FIFO */
500 .dstPeripheralPort
= 0, /* DST: memory */
501 .srcStatusRegisterAddress
= 0x00000000,
502 .dstStatusRegisterAddress
= 0x00000000,
503 .srcUpdate
= dmacHw_SRC_ADDRESS_UPDATE_MODE_INC
,
504 .dstUpdate
= dmacHw_DST_ADDRESS_UPDATE_MODE_INC
,
505 .transferType
= dmacHw_TRANSFER_TYPE_PERIPHERAL_TO_MEM
,
506 .srcMasterInterface
= dmacHw_SRC_MASTER_INTERFACE_2
,
507 .dstMasterInterface
= dmacHw_DST_MASTER_INTERFACE_1
,
508 .blockTransferInterrupt
= dmacHw_INTERRUPT_DISABLE
,
509 .completeTransferInterrupt
= dmacHw_INTERRUPT_ENABLE
,
510 .errorInterrupt
= dmacHw_INTERRUPT_ENABLE
,
511 .channelPriority
= dmacHw_CHANNEL_PRIORITY_7
,
512 .srcMaxTransactionWidth
= dmacHw_SRC_TRANSACTION_WIDTH_32
,
513 .dstMaxTransactionWidth
= dmacHw_DST_TRANSACTION_WIDTH_32
,
514 /* Busrt size **MUST** be 16 for SPUM to work */
515 .srcMaxBurstWidth
= dmacHw_SRC_BURST_WIDTH_16
,
516 .dstMaxBurstWidth
= dmacHw_DST_BURST_WIDTH_16
,
517 .transferMode
= dmacHw_TRANSFER_MODE_PERREQUEST
,
518 /* on the RX side, SPU needs to be the flow controller */
519 .flowControler
= dmacHw_FLOW_CONTROL_PERIPHERAL
,
522 [DMA_DEVICE_SPUM_MEM_TO_DEV
] = /* SPUM TX */
524 .flags
= DMA_DEVICE_FLAG_ON_DMA0
| DMA_DEVICE_FLAG_ON_DMA1
,
527 .srcPeripheralPort
= 0, /* SRC: memory */
528 .dstPeripheralPort
= 7, /* DST: SPUM */
529 .srcStatusRegisterAddress
= 0x00000000,
530 .dstStatusRegisterAddress
= 0x00000000,
531 .srcUpdate
= dmacHw_SRC_ADDRESS_UPDATE_MODE_INC
,
532 .dstUpdate
= dmacHw_DST_ADDRESS_UPDATE_MODE_INC
,
533 .transferType
= dmacHw_TRANSFER_TYPE_MEM_TO_PERIPHERAL
,
534 .srcMasterInterface
= dmacHw_SRC_MASTER_INTERFACE_1
,
535 .dstMasterInterface
= dmacHw_DST_MASTER_INTERFACE_2
,
536 .blockTransferInterrupt
= dmacHw_INTERRUPT_DISABLE
,
537 .completeTransferInterrupt
= dmacHw_INTERRUPT_ENABLE
,
538 .errorInterrupt
= dmacHw_INTERRUPT_ENABLE
,
539 .channelPriority
= dmacHw_CHANNEL_PRIORITY_7
,
540 .srcMaxTransactionWidth
= dmacHw_SRC_TRANSACTION_WIDTH_32
,
541 .dstMaxTransactionWidth
= dmacHw_DST_TRANSACTION_WIDTH_32
,
542 /* Busrt size **MUST** be 16 for SPUM to work */
543 .srcMaxBurstWidth
= dmacHw_SRC_BURST_WIDTH_16
,
544 .dstMaxBurstWidth
= dmacHw_DST_BURST_WIDTH_16
,
545 .transferMode
= dmacHw_TRANSFER_MODE_PERREQUEST
,
548 [DMA_DEVICE_MEM_TO_VRAM
] = /* MEM 2 VRAM */
550 .flags
= DMA_DEVICE_FLAG_ON_DMA0
| DMA_DEVICE_FLAG_ON_DMA1
,
551 .name
= "mem-to-vram",
553 .srcPeripheralPort
= 0, /* SRC: memory */
554 .srcStatusRegisterAddress
= 0x00000000,
555 .dstStatusRegisterAddress
= 0x00000000,
556 .srcUpdate
= dmacHw_SRC_ADDRESS_UPDATE_MODE_INC
,
557 .dstUpdate
= dmacHw_DST_ADDRESS_UPDATE_MODE_INC
,
558 .transferType
= dmacHw_TRANSFER_TYPE_MEM_TO_MEM
,
559 .srcMasterInterface
= dmacHw_SRC_MASTER_INTERFACE_1
,
560 .dstMasterInterface
= dmacHw_DST_MASTER_INTERFACE_2
,
561 .completeTransferInterrupt
= dmacHw_INTERRUPT_ENABLE
,
562 .errorInterrupt
= dmacHw_INTERRUPT_ENABLE
,
563 .channelPriority
= dmacHw_CHANNEL_PRIORITY_7
,
564 .srcMaxTransactionWidth
= dmacHw_SRC_TRANSACTION_WIDTH_64
,
565 .dstMaxTransactionWidth
= dmacHw_DST_TRANSACTION_WIDTH_64
,
566 .srcMaxBurstWidth
= dmacHw_SRC_BURST_WIDTH_8
,
567 .dstMaxBurstWidth
= dmacHw_DST_BURST_WIDTH_8
,
570 [DMA_DEVICE_VRAM_TO_MEM
] = /* VRAM 2 MEM */
572 .flags
= DMA_DEVICE_FLAG_ON_DMA0
| DMA_DEVICE_FLAG_ON_DMA1
,
573 .name
= "vram-to-mem",
575 .dstPeripheralPort
= 0, /* DST: memory */
576 .srcStatusRegisterAddress
= 0x00000000,
577 .dstStatusRegisterAddress
= 0x00000000,
578 .srcUpdate
= dmacHw_SRC_ADDRESS_UPDATE_MODE_INC
,
579 .dstUpdate
= dmacHw_DST_ADDRESS_UPDATE_MODE_INC
,
580 .transferType
= dmacHw_TRANSFER_TYPE_MEM_TO_MEM
,
581 .srcMasterInterface
= dmacHw_SRC_MASTER_INTERFACE_2
,
582 .dstMasterInterface
= dmacHw_DST_MASTER_INTERFACE_1
,
583 .completeTransferInterrupt
= dmacHw_INTERRUPT_ENABLE
,
584 .errorInterrupt
= dmacHw_INTERRUPT_ENABLE
,
585 .channelPriority
= dmacHw_CHANNEL_PRIORITY_7
,
586 .srcMaxTransactionWidth
= dmacHw_SRC_TRANSACTION_WIDTH_64
,
587 .dstMaxTransactionWidth
= dmacHw_DST_TRANSACTION_WIDTH_64
,
588 .srcMaxBurstWidth
= dmacHw_SRC_BURST_WIDTH_8
,
589 .dstMaxBurstWidth
= dmacHw_DST_BURST_WIDTH_8
,
593 EXPORT_SYMBOL(DMA_gDeviceAttribute
); /* primarily for dma-test.c */