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 */