| /***************************************************************************** | 
 | * Copyright 2004 - 2008 Broadcom Corporation.  All rights reserved. | 
 | * | 
 | * Unless you and Broadcom execute a separate written software license | 
 | * agreement governing use of this software, this software is licensed to you | 
 | * under the terms of the GNU General Public License version 2, available at | 
 | * http://www.broadcom.com/licenses/GPLv2.php (the "GPL"). | 
 | * | 
 | * Notwithstanding the above, under no circumstances may you combine this | 
 | * software in any way with any other Broadcom software provided under a | 
 | * license other than the GPL, without Broadcom's express prior written | 
 | * consent. | 
 | *****************************************************************************/ | 
 |  | 
 | /****************************************************************************/ | 
 | /** | 
 | *   @file   dma_device.c | 
 | * | 
 | *   @brief  private array of DMA_DeviceAttribute_t | 
 | */ | 
 | /****************************************************************************/ | 
 |  | 
 | DMA_DeviceAttribute_t DMA_gDeviceAttribute[DMA_NUM_DEVICE_ENTRIES] = { | 
 | 	[DMA_DEVICE_MEM_TO_MEM] =	/* MEM 2 MEM */ | 
 | 	{ | 
 | 	 .flags = DMA_DEVICE_FLAG_ON_DMA0 | DMA_DEVICE_FLAG_ON_DMA1, | 
 | 	 .name = "mem-to-mem", | 
 | 	 .config = { | 
 | 		    .srcUpdate = dmacHw_SRC_ADDRESS_UPDATE_MODE_INC, | 
 | 		    .dstUpdate = dmacHw_DST_ADDRESS_UPDATE_MODE_INC, | 
 | 		    .transferType = dmacHw_TRANSFER_TYPE_MEM_TO_MEM, | 
 | 		    .transferMode = dmacHw_TRANSFER_MODE_PERREQUEST, | 
 | 		    .srcMasterInterface = dmacHw_SRC_MASTER_INTERFACE_1, | 
 | 		    .dstMasterInterface = dmacHw_DST_MASTER_INTERFACE_1, | 
 | 		    .completeTransferInterrupt = dmacHw_INTERRUPT_ENABLE, | 
 | 		    .errorInterrupt = dmacHw_INTERRUPT_ENABLE, | 
 | 		    .channelPriority = dmacHw_CHANNEL_PRIORITY_7, | 
 | 		    .srcMaxTransactionWidth = dmacHw_SRC_TRANSACTION_WIDTH_64, | 
 | 		    .dstMaxTransactionWidth = dmacHw_DST_TRANSACTION_WIDTH_64, | 
 |  | 
 | 		    }, | 
 | 	 }, | 
 | 	[DMA_DEVICE_VPM_MEM_TO_MEM] =	/* VPM */ | 
 | 	{ | 
 | 	 .flags = DMA_DEVICE_FLAG_IS_DEDICATED | DMA_DEVICE_FLAG_NO_ISR, | 
 | 	 .name = "vpm", | 
 | 	 .dedicatedController = 0, | 
 | 	 .dedicatedChannel = 0, | 
 | 	 /* reserve DMA0:0 for VPM */ | 
 | 	 }, | 
 | 	[DMA_DEVICE_NAND_MEM_TO_MEM] =	/* NAND */ | 
 | 	{ | 
 | 	 .flags = DMA_DEVICE_FLAG_ON_DMA0 | DMA_DEVICE_FLAG_ON_DMA1, | 
 | 	 .name = "nand", | 
 | 	 .config = { | 
 | 		    .srcPeripheralPort = 0, | 
 | 		    .dstPeripheralPort = 0, | 
 | 		    .srcStatusRegisterAddress = 0x00000000, | 
 | 		    .dstStatusRegisterAddress = 0x00000000, | 
 | 		    .transferType = dmacHw_TRANSFER_TYPE_MEM_TO_MEM, | 
 | 		    .srcMasterInterface = dmacHw_SRC_MASTER_INTERFACE_1, | 
 | 		    .dstMasterInterface = dmacHw_DST_MASTER_INTERFACE_1, | 
 | 		    .srcMaxTransactionWidth = dmacHw_SRC_TRANSACTION_WIDTH_32, | 
 | 		    .dstMaxTransactionWidth = dmacHw_DST_TRANSACTION_WIDTH_32, | 
 | 		    .srcMaxBurstWidth = dmacHw_SRC_BURST_WIDTH_4, | 
 | 		    .dstMaxBurstWidth = dmacHw_DST_BURST_WIDTH_4, | 
 | 		    .completeTransferInterrupt = dmacHw_INTERRUPT_ENABLE, | 
 | 		    .errorInterrupt = dmacHw_INTERRUPT_ENABLE, | 
 | 		    .channelPriority = dmacHw_CHANNEL_PRIORITY_6, | 
 | 		    }, | 
 | 	 }, | 
 | 	[DMA_DEVICE_PIF_MEM_TO_DEV] =	/* PIF TX */ | 
 | 	{ | 
 | 	 .flags = DMA_DEVICE_FLAG_ON_DMA0 | DMA_DEVICE_FLAG_ON_DMA1 | 
 | 	 | DMA_DEVICE_FLAG_ALLOW_LARGE_FIFO | 
 | 	 | DMA_DEVICE_FLAG_ALLOC_DMA1_FIRST | DMA_DEVICE_FLAG_PORT_PER_DMAC, | 
 | 	 .name = "pif_tx", | 
 | 	 .dmacPort = {14, 5}, | 
 | 	 .config = { | 
 | 		    .srcPeripheralPort = 0,	/* SRC: memory */ | 
 | 		    /* dstPeripheralPort          = 5 or 14 */ | 
 | 		    .srcStatusRegisterAddress = 0x00000000, | 
 | 		    .dstStatusRegisterAddress = 0x00000000, | 
 | 		    .srcUpdate = dmacHw_SRC_ADDRESS_UPDATE_MODE_INC, | 
 | 		    .dstUpdate = dmacHw_DST_ADDRESS_UPDATE_MODE_INC, | 
 | 		    .transferType = dmacHw_TRANSFER_TYPE_MEM_TO_PERIPHERAL, | 
 | 		    .srcMasterInterface = dmacHw_SRC_MASTER_INTERFACE_1, | 
 | 		    .dstMasterInterface = dmacHw_DST_MASTER_INTERFACE_2, | 
 | 		    .completeTransferInterrupt = dmacHw_INTERRUPT_ENABLE, | 
 | 		    .errorInterrupt = dmacHw_INTERRUPT_ENABLE, | 
 | 		    .channelPriority = dmacHw_CHANNEL_PRIORITY_7, | 
 | 		    .srcMaxTransactionWidth = dmacHw_SRC_TRANSACTION_WIDTH_64, | 
 | 		    .dstMaxTransactionWidth = dmacHw_DST_TRANSACTION_WIDTH_32, | 
 | 		    .srcMaxBurstWidth = dmacHw_SRC_BURST_WIDTH_8, | 
 | 		    .dstMaxBurstWidth = dmacHw_DST_BURST_WIDTH_8, | 
 | 		    .maxDataPerBlock = 16256, | 
 | 		    }, | 
 | 	 }, | 
 | 	[DMA_DEVICE_PIF_DEV_TO_MEM] =	/* PIF RX */ | 
 | 	{ | 
 | 	 .flags = DMA_DEVICE_FLAG_ON_DMA0 | DMA_DEVICE_FLAG_ON_DMA1 | 
 | 	 | DMA_DEVICE_FLAG_ALLOW_LARGE_FIFO | 
 | 	 /* DMA_DEVICE_FLAG_ALLOC_DMA1_FIRST */ | 
 | 	 | DMA_DEVICE_FLAG_PORT_PER_DMAC, | 
 | 	 .name = "pif_rx", | 
 | 	 .dmacPort = {14, 5}, | 
 | 	 .config = { | 
 | 		    /* srcPeripheralPort          = 5 or 14 */ | 
 | 		    .dstPeripheralPort = 0,	/* DST: memory */ | 
 | 		    .srcStatusRegisterAddress = 0x00000000, | 
 | 		    .dstStatusRegisterAddress = 0x00000000, | 
 | 		    .srcUpdate = dmacHw_SRC_ADDRESS_UPDATE_MODE_INC, | 
 | 		    .dstUpdate = dmacHw_DST_ADDRESS_UPDATE_MODE_INC, | 
 | 		    .transferType = dmacHw_TRANSFER_TYPE_PERIPHERAL_TO_MEM, | 
 | 		    .srcMasterInterface = dmacHw_SRC_MASTER_INTERFACE_2, | 
 | 		    .dstMasterInterface = dmacHw_DST_MASTER_INTERFACE_1, | 
 | 		    .completeTransferInterrupt = dmacHw_INTERRUPT_ENABLE, | 
 | 		    .errorInterrupt = dmacHw_INTERRUPT_ENABLE, | 
 | 		    .channelPriority = dmacHw_CHANNEL_PRIORITY_7, | 
 | 		    .srcMaxTransactionWidth = dmacHw_SRC_TRANSACTION_WIDTH_32, | 
 | 		    .dstMaxTransactionWidth = dmacHw_DST_TRANSACTION_WIDTH_64, | 
 | 		    .srcMaxBurstWidth = dmacHw_SRC_BURST_WIDTH_8, | 
 | 		    .dstMaxBurstWidth = dmacHw_DST_BURST_WIDTH_8, | 
 | 		    .maxDataPerBlock = 16256, | 
 | 		    }, | 
 | 	 }, | 
 | 	[DMA_DEVICE_I2S0_DEV_TO_MEM] =	/* I2S RX */ | 
 | 	{ | 
 | 	 .flags = DMA_DEVICE_FLAG_ON_DMA0, | 
 | 	 .name = "i2s0_rx", | 
 | 	 .config = { | 
 | 		    .srcPeripheralPort = 0,	/* SRC: I2S0 */ | 
 | 		    .dstPeripheralPort = 0,	/* DST: memory */ | 
 | 		    .srcStatusRegisterAddress = 0, | 
 | 		    .dstStatusRegisterAddress = 0, | 
 | 		    .transferType = dmacHw_TRANSFER_TYPE_PERIPHERAL_TO_MEM, | 
 | 		    .srcMasterInterface = dmacHw_SRC_MASTER_INTERFACE_1, | 
 | 		    .dstMasterInterface = dmacHw_DST_MASTER_INTERFACE_1, | 
 | 		    .srcMaxTransactionWidth = dmacHw_SRC_TRANSACTION_WIDTH_16, | 
 | 		    .dstMaxTransactionWidth = dmacHw_DST_TRANSACTION_WIDTH_64, | 
 | 		    .srcMaxBurstWidth = dmacHw_SRC_BURST_WIDTH_4, | 
 | 		    .dstMaxBurstWidth = dmacHw_DST_BURST_WIDTH_0, | 
 | 		    .blockTransferInterrupt = dmacHw_INTERRUPT_ENABLE, | 
 | 		    .completeTransferInterrupt = dmacHw_INTERRUPT_DISABLE, | 
 | 		    .errorInterrupt = dmacHw_INTERRUPT_ENABLE, | 
 | 		    .channelPriority = dmacHw_CHANNEL_PRIORITY_7, | 
 | 		    .transferMode = dmacHw_TRANSFER_MODE_CONTINUOUS, | 
 | 		    }, | 
 | 	 }, | 
 | 	[DMA_DEVICE_I2S0_MEM_TO_DEV] =	/* I2S TX */ | 
 | 	{ | 
 | 	 .flags = DMA_DEVICE_FLAG_ON_DMA0, | 
 | 	 .name = "i2s0_tx", | 
 | 	 .config = { | 
 | 		    .srcPeripheralPort = 0,	/* SRC: memory */ | 
 | 		    .dstPeripheralPort = 1,	/* DST: I2S0 */ | 
 | 		    .srcStatusRegisterAddress = 0, | 
 | 		    .dstStatusRegisterAddress = 0, | 
 | 		    .transferType = dmacHw_TRANSFER_TYPE_MEM_TO_PERIPHERAL, | 
 | 		    .srcMasterInterface = dmacHw_SRC_MASTER_INTERFACE_1, | 
 | 		    .dstMasterInterface = dmacHw_DST_MASTER_INTERFACE_1, | 
 | 		    .srcMaxTransactionWidth = dmacHw_SRC_TRANSACTION_WIDTH_64, | 
 | 		    .dstMaxTransactionWidth = dmacHw_DST_TRANSACTION_WIDTH_16, | 
 | 		    .srcMaxBurstWidth = dmacHw_SRC_BURST_WIDTH_0, | 
 | 		    .dstMaxBurstWidth = dmacHw_DST_BURST_WIDTH_4, | 
 | 		    .blockTransferInterrupt = dmacHw_INTERRUPT_DISABLE, | 
 | 		    .completeTransferInterrupt = dmacHw_INTERRUPT_ENABLE, | 
 | 		    .errorInterrupt = dmacHw_INTERRUPT_ENABLE, | 
 | 		    .channelPriority = dmacHw_CHANNEL_PRIORITY_7, | 
 | 		    .transferMode = dmacHw_TRANSFER_MODE_PERREQUEST, | 
 | 		    }, | 
 | 	 }, | 
 | 	[DMA_DEVICE_I2S1_DEV_TO_MEM] =	/* I2S1 RX */ | 
 | 	{ | 
 | 	 .flags = DMA_DEVICE_FLAG_ON_DMA1, | 
 | 	 .name = "i2s1_rx", | 
 | 	 .config = { | 
 | 		    .srcPeripheralPort = 2,	/* SRC: I2S1 */ | 
 | 		    .dstPeripheralPort = 0,	/* DST: memory */ | 
 | 		    .srcStatusRegisterAddress = 0, | 
 | 		    .dstStatusRegisterAddress = 0, | 
 | 		    .transferType = dmacHw_TRANSFER_TYPE_PERIPHERAL_TO_MEM, | 
 | 		    .srcMasterInterface = dmacHw_SRC_MASTER_INTERFACE_1, | 
 | 		    .dstMasterInterface = dmacHw_DST_MASTER_INTERFACE_1, | 
 | 		    .srcMaxTransactionWidth = dmacHw_SRC_TRANSACTION_WIDTH_16, | 
 | 		    .dstMaxTransactionWidth = dmacHw_DST_TRANSACTION_WIDTH_64, | 
 | 		    .srcMaxBurstWidth = dmacHw_SRC_BURST_WIDTH_4, | 
 | 		    .dstMaxBurstWidth = dmacHw_DST_BURST_WIDTH_0, | 
 | 		    .blockTransferInterrupt = dmacHw_INTERRUPT_ENABLE, | 
 | 		    .completeTransferInterrupt = dmacHw_INTERRUPT_DISABLE, | 
 | 		    .errorInterrupt = dmacHw_INTERRUPT_ENABLE, | 
 | 		    .channelPriority = dmacHw_CHANNEL_PRIORITY_7, | 
 | 		    .transferMode = dmacHw_TRANSFER_MODE_CONTINUOUS, | 
 | 		    }, | 
 | 	 }, | 
 | 	[DMA_DEVICE_I2S1_MEM_TO_DEV] =	/* I2S1 TX */ | 
 | 	{ | 
 | 	 .flags = DMA_DEVICE_FLAG_ON_DMA1, | 
 | 	 .name = "i2s1_tx", | 
 | 	 .config = { | 
 | 		    .srcPeripheralPort = 0,	/* SRC: memory */ | 
 | 		    .dstPeripheralPort = 3,	/* DST: I2S1 */ | 
 | 		    .srcStatusRegisterAddress = 0, | 
 | 		    .dstStatusRegisterAddress = 0, | 
 | 		    .transferType = dmacHw_TRANSFER_TYPE_MEM_TO_PERIPHERAL, | 
 | 		    .srcMasterInterface = dmacHw_SRC_MASTER_INTERFACE_1, | 
 | 		    .dstMasterInterface = dmacHw_DST_MASTER_INTERFACE_1, | 
 | 		    .srcMaxTransactionWidth = dmacHw_SRC_TRANSACTION_WIDTH_64, | 
 | 		    .dstMaxTransactionWidth = dmacHw_DST_TRANSACTION_WIDTH_16, | 
 | 		    .srcMaxBurstWidth = dmacHw_SRC_BURST_WIDTH_0, | 
 | 		    .dstMaxBurstWidth = dmacHw_DST_BURST_WIDTH_4, | 
 | 		    .blockTransferInterrupt = dmacHw_INTERRUPT_DISABLE, | 
 | 		    .completeTransferInterrupt = dmacHw_INTERRUPT_ENABLE, | 
 | 		    .errorInterrupt = dmacHw_INTERRUPT_ENABLE, | 
 | 		    .channelPriority = dmacHw_CHANNEL_PRIORITY_7, | 
 | 		    .transferMode = dmacHw_TRANSFER_MODE_PERREQUEST, | 
 | 		    }, | 
 | 	 }, | 
 | 	[DMA_DEVICE_ESW_MEM_TO_DEV] =	/* ESW TX */ | 
 | 	{ | 
 | 	 .name = "esw_tx", | 
 | 	 .flags = DMA_DEVICE_FLAG_IS_DEDICATED, | 
 | 	 .dedicatedController = 1, | 
 | 	 .dedicatedChannel = 3, | 
 | 	 .config = { | 
 | 		    .srcPeripheralPort = 0,	/* SRC: memory */ | 
 | 		    .dstPeripheralPort = 1,	/* DST: ESW (MTP) */ | 
 | 		    .completeTransferInterrupt = dmacHw_INTERRUPT_ENABLE, | 
 | 		    .errorInterrupt = dmacHw_INTERRUPT_DISABLE, | 
 | 		    /* DMAx_AHB_SSTATARy */ | 
 | 		    .srcStatusRegisterAddress = 0x00000000, | 
 | 		    /* DMAx_AHB_DSTATARy */ | 
 | 		    .dstStatusRegisterAddress = 0x30490010, | 
 | 		    /* DMAx_AHB_CFGy */ | 
 | 		    .channelPriority = dmacHw_CHANNEL_PRIORITY_7, | 
 | 		    /* DMAx_AHB_CTLy */ | 
 | 		    .srcMasterInterface = dmacHw_SRC_MASTER_INTERFACE_2, | 
 | 		    .dstMasterInterface = dmacHw_DST_MASTER_INTERFACE_1, | 
 | 		    .transferType = dmacHw_TRANSFER_TYPE_MEM_TO_PERIPHERAL, | 
 | 		    .srcMaxBurstWidth = dmacHw_SRC_BURST_WIDTH_0, | 
 | 		    .dstMaxBurstWidth = dmacHw_DST_BURST_WIDTH_8, | 
 | 		    .srcUpdate = dmacHw_SRC_ADDRESS_UPDATE_MODE_INC, | 
 | 		    .dstUpdate = dmacHw_DST_ADDRESS_UPDATE_MODE_INC, | 
 | 		    .srcMaxTransactionWidth = dmacHw_SRC_TRANSACTION_WIDTH_64, | 
 | 		    .dstMaxTransactionWidth = dmacHw_DST_TRANSACTION_WIDTH_64, | 
 | 		    }, | 
 | 	 }, | 
 | 	[DMA_DEVICE_ESW_DEV_TO_MEM] =	/* ESW RX */ | 
 | 	{ | 
 | 	 .name = "esw_rx", | 
 | 	 .flags = DMA_DEVICE_FLAG_IS_DEDICATED, | 
 | 	 .dedicatedController = 1, | 
 | 	 .dedicatedChannel = 2, | 
 | 	 .config = { | 
 | 		    .srcPeripheralPort = 0,	/* SRC: ESW (PTM) */ | 
 | 		    .dstPeripheralPort = 0,	/* DST: memory */ | 
 | 		    .completeTransferInterrupt = dmacHw_INTERRUPT_ENABLE, | 
 | 		    .errorInterrupt = dmacHw_INTERRUPT_DISABLE, | 
 | 		    /* DMAx_AHB_SSTATARy */ | 
 | 		    .srcStatusRegisterAddress = 0x30480010, | 
 | 		    /* DMAx_AHB_DSTATARy */ | 
 | 		    .dstStatusRegisterAddress = 0x00000000, | 
 | 		    /* DMAx_AHB_CFGy */ | 
 | 		    .channelPriority = dmacHw_CHANNEL_PRIORITY_7, | 
 | 		    /* DMAx_AHB_CTLy */ | 
 | 		    .srcMasterInterface = dmacHw_SRC_MASTER_INTERFACE_2, | 
 | 		    .dstMasterInterface = dmacHw_DST_MASTER_INTERFACE_1, | 
 | 		    .transferType = dmacHw_TRANSFER_TYPE_PERIPHERAL_TO_MEM, | 
 | 		    .srcMaxBurstWidth = dmacHw_SRC_BURST_WIDTH_8, | 
 | 		    .dstMaxBurstWidth = dmacHw_DST_BURST_WIDTH_0, | 
 | 		    .srcUpdate = dmacHw_SRC_ADDRESS_UPDATE_MODE_INC, | 
 | 		    .dstUpdate = dmacHw_DST_ADDRESS_UPDATE_MODE_INC, | 
 | 		    .srcMaxTransactionWidth = dmacHw_SRC_TRANSACTION_WIDTH_64, | 
 | 		    .dstMaxTransactionWidth = dmacHw_DST_TRANSACTION_WIDTH_64, | 
 | 		    }, | 
 | 	 }, | 
 | 	[DMA_DEVICE_APM_CODEC_A_DEV_TO_MEM] =	/* APM Codec A Ingress */ | 
 | 	{ | 
 | 	 .flags = DMA_DEVICE_FLAG_ON_DMA0, | 
 | 	 .name = "apm_a_rx", | 
 | 	 .config = { | 
 | 		    .srcPeripheralPort = 2,	/* SRC: Codec A Ingress FIFO */ | 
 | 		    .dstPeripheralPort = 0,	/* DST: memory */ | 
 | 		    .srcStatusRegisterAddress = 0x00000000, | 
 | 		    .dstStatusRegisterAddress = 0x00000000, | 
 | 		    .srcUpdate = dmacHw_SRC_ADDRESS_UPDATE_MODE_INC, | 
 | 		    .dstUpdate = dmacHw_DST_ADDRESS_UPDATE_MODE_INC, | 
 | 		    .transferType = dmacHw_TRANSFER_TYPE_PERIPHERAL_TO_MEM, | 
 | 		    .srcMasterInterface = dmacHw_SRC_MASTER_INTERFACE_2, | 
 | 		    .dstMasterInterface = dmacHw_DST_MASTER_INTERFACE_1, | 
 | 		    .blockTransferInterrupt = dmacHw_INTERRUPT_ENABLE, | 
 | 		    .completeTransferInterrupt = dmacHw_INTERRUPT_DISABLE, | 
 | 		    .errorInterrupt = dmacHw_INTERRUPT_ENABLE, | 
 | 		    .channelPriority = dmacHw_CHANNEL_PRIORITY_7, | 
 | 		    .srcMaxTransactionWidth = dmacHw_SRC_TRANSACTION_WIDTH_32, | 
 | 		    .dstMaxTransactionWidth = dmacHw_DST_TRANSACTION_WIDTH_64, | 
 | 		    .srcMaxBurstWidth = dmacHw_SRC_BURST_WIDTH_4, | 
 | 		    .dstMaxBurstWidth = dmacHw_DST_BURST_WIDTH_4, | 
 | 		    .transferMode = dmacHw_TRANSFER_MODE_CONTINUOUS, | 
 | 		    }, | 
 | 	 }, | 
 | 	[DMA_DEVICE_APM_CODEC_A_MEM_TO_DEV] =	/* APM Codec A Egress */ | 
 | 	{ | 
 | 	 .flags = DMA_DEVICE_FLAG_ON_DMA0, | 
 | 	 .name = "apm_a_tx", | 
 | 	 .config = { | 
 | 		    .srcPeripheralPort = 0,	/* SRC: memory */ | 
 | 		    .dstPeripheralPort = 3,	/* DST: Codec A Egress FIFO */ | 
 | 		    .srcStatusRegisterAddress = 0x00000000, | 
 | 		    .dstStatusRegisterAddress = 0x00000000, | 
 | 		    .srcUpdate = dmacHw_SRC_ADDRESS_UPDATE_MODE_INC, | 
 | 		    .dstUpdate = dmacHw_DST_ADDRESS_UPDATE_MODE_INC, | 
 | 		    .transferType = dmacHw_TRANSFER_TYPE_MEM_TO_PERIPHERAL, | 
 | 		    .srcMasterInterface = dmacHw_SRC_MASTER_INTERFACE_1, | 
 | 		    .dstMasterInterface = dmacHw_DST_MASTER_INTERFACE_2, | 
 | 		    .blockTransferInterrupt = dmacHw_INTERRUPT_DISABLE, | 
 | 		    .completeTransferInterrupt = dmacHw_INTERRUPT_ENABLE, | 
 | 		    .errorInterrupt = dmacHw_INTERRUPT_ENABLE, | 
 | 		    .channelPriority = dmacHw_CHANNEL_PRIORITY_7, | 
 | 		    .srcMaxTransactionWidth = dmacHw_SRC_TRANSACTION_WIDTH_64, | 
 | 		    .dstMaxTransactionWidth = dmacHw_DST_TRANSACTION_WIDTH_32, | 
 | 		    .srcMaxBurstWidth = dmacHw_SRC_BURST_WIDTH_4, | 
 | 		    .dstMaxBurstWidth = dmacHw_DST_BURST_WIDTH_4, | 
 | 		    .transferMode = dmacHw_TRANSFER_MODE_PERREQUEST, | 
 | 		    }, | 
 | 	 }, | 
 | 	[DMA_DEVICE_APM_CODEC_B_DEV_TO_MEM] =	/* APM Codec B Ingress */ | 
 | 	{ | 
 | 	 .flags = DMA_DEVICE_FLAG_ON_DMA0, | 
 | 	 .name = "apm_b_rx", | 
 | 	 .config = { | 
 | 		    .srcPeripheralPort = 4,	/* SRC: Codec B Ingress FIFO */ | 
 | 		    .dstPeripheralPort = 0,	/* DST: memory */ | 
 | 		    .srcStatusRegisterAddress = 0x00000000, | 
 | 		    .dstStatusRegisterAddress = 0x00000000, | 
 | 		    .srcUpdate = dmacHw_SRC_ADDRESS_UPDATE_MODE_INC, | 
 | 		    .dstUpdate = dmacHw_DST_ADDRESS_UPDATE_MODE_INC, | 
 | 		    .transferType = dmacHw_TRANSFER_TYPE_PERIPHERAL_TO_MEM, | 
 | 		    .srcMasterInterface = dmacHw_SRC_MASTER_INTERFACE_2, | 
 | 		    .dstMasterInterface = dmacHw_DST_MASTER_INTERFACE_1, | 
 | 		    .blockTransferInterrupt = dmacHw_INTERRUPT_ENABLE, | 
 | 		    .completeTransferInterrupt = dmacHw_INTERRUPT_DISABLE, | 
 | 		    .errorInterrupt = dmacHw_INTERRUPT_ENABLE, | 
 | 		    .channelPriority = dmacHw_CHANNEL_PRIORITY_7, | 
 | 		    .srcMaxTransactionWidth = dmacHw_SRC_TRANSACTION_WIDTH_32, | 
 | 		    .dstMaxTransactionWidth = dmacHw_DST_TRANSACTION_WIDTH_64, | 
 | 		    .srcMaxBurstWidth = dmacHw_SRC_BURST_WIDTH_4, | 
 | 		    .dstMaxBurstWidth = dmacHw_DST_BURST_WIDTH_4, | 
 | 		    .transferMode = dmacHw_TRANSFER_MODE_CONTINUOUS, | 
 | 		    }, | 
 | 	 }, | 
 | 	[DMA_DEVICE_APM_CODEC_B_MEM_TO_DEV] =	/* APM Codec B Egress */ | 
 | 	{ | 
 | 	 .flags = DMA_DEVICE_FLAG_ON_DMA0, | 
 | 	 .name = "apm_b_tx", | 
 | 	 .config = { | 
 | 		    .srcPeripheralPort = 0,	/* SRC: memory */ | 
 | 		    .dstPeripheralPort = 5,	/* DST: Codec B Egress FIFO */ | 
 | 		    .srcStatusRegisterAddress = 0x00000000, | 
 | 		    .dstStatusRegisterAddress = 0x00000000, | 
 | 		    .srcUpdate = dmacHw_SRC_ADDRESS_UPDATE_MODE_INC, | 
 | 		    .dstUpdate = dmacHw_DST_ADDRESS_UPDATE_MODE_INC, | 
 | 		    .transferType = dmacHw_TRANSFER_TYPE_MEM_TO_PERIPHERAL, | 
 | 		    .srcMasterInterface = dmacHw_SRC_MASTER_INTERFACE_1, | 
 | 		    .dstMasterInterface = dmacHw_DST_MASTER_INTERFACE_2, | 
 | 		    .blockTransferInterrupt = dmacHw_INTERRUPT_DISABLE, | 
 | 		    .completeTransferInterrupt = dmacHw_INTERRUPT_ENABLE, | 
 | 		    .errorInterrupt = dmacHw_INTERRUPT_ENABLE, | 
 | 		    .channelPriority = dmacHw_CHANNEL_PRIORITY_7, | 
 | 		    .srcMaxTransactionWidth = dmacHw_SRC_TRANSACTION_WIDTH_64, | 
 | 		    .dstMaxTransactionWidth = dmacHw_DST_TRANSACTION_WIDTH_32, | 
 | 		    .srcMaxBurstWidth = dmacHw_SRC_BURST_WIDTH_4, | 
 | 		    .dstMaxBurstWidth = dmacHw_DST_BURST_WIDTH_4, | 
 | 		    .transferMode = dmacHw_TRANSFER_MODE_PERREQUEST, | 
 | 		    }, | 
 | 	 }, | 
 | 	[DMA_DEVICE_APM_CODEC_C_DEV_TO_MEM] =	/* APM Codec C Ingress */ | 
 | 	{ | 
 | 	 .flags = DMA_DEVICE_FLAG_ON_DMA1, | 
 | 	 .name = "apm_c_rx", | 
 | 	 .config = { | 
 | 		    .srcPeripheralPort = 4,	/* SRC: Codec C Ingress FIFO */ | 
 | 		    .dstPeripheralPort = 0,	/* DST: memory */ | 
 | 		    .srcStatusRegisterAddress = 0x00000000, | 
 | 		    .dstStatusRegisterAddress = 0x00000000, | 
 | 		    .srcUpdate = dmacHw_SRC_ADDRESS_UPDATE_MODE_INC, | 
 | 		    .dstUpdate = dmacHw_DST_ADDRESS_UPDATE_MODE_INC, | 
 | 		    .transferType = dmacHw_TRANSFER_TYPE_PERIPHERAL_TO_MEM, | 
 | 		    .srcMasterInterface = dmacHw_SRC_MASTER_INTERFACE_2, | 
 | 		    .dstMasterInterface = dmacHw_DST_MASTER_INTERFACE_1, | 
 | 		    .blockTransferInterrupt = dmacHw_INTERRUPT_ENABLE, | 
 | 		    .completeTransferInterrupt = dmacHw_INTERRUPT_DISABLE, | 
 | 		    .errorInterrupt = dmacHw_INTERRUPT_ENABLE, | 
 | 		    .channelPriority = dmacHw_CHANNEL_PRIORITY_7, | 
 | 		    .srcMaxTransactionWidth = dmacHw_SRC_TRANSACTION_WIDTH_32, | 
 | 		    .dstMaxTransactionWidth = dmacHw_DST_TRANSACTION_WIDTH_64, | 
 | 		    .srcMaxBurstWidth = dmacHw_SRC_BURST_WIDTH_4, | 
 | 		    .dstMaxBurstWidth = dmacHw_DST_BURST_WIDTH_4, | 
 | 		    .transferMode = dmacHw_TRANSFER_MODE_CONTINUOUS, | 
 | 		    }, | 
 | 	 }, | 
 | 	[DMA_DEVICE_APM_PCM0_DEV_TO_MEM] =	/* PCM0 RX */ | 
 | 	{ | 
 | 	 .flags = DMA_DEVICE_FLAG_ON_DMA0, | 
 | 	 .name = "pcm0_rx", | 
 | 	 .config = { | 
 | 		    .srcPeripheralPort = 12,	/* SRC: PCM0 */ | 
 | 		    .dstPeripheralPort = 0,	/* DST: memory */ | 
 | 		    .srcStatusRegisterAddress = 0, | 
 | 		    .dstStatusRegisterAddress = 0, | 
 | 		    .transferType = dmacHw_TRANSFER_TYPE_PERIPHERAL_TO_MEM, | 
 | 		    .srcMasterInterface = dmacHw_SRC_MASTER_INTERFACE_2, | 
 | 		    .dstMasterInterface = dmacHw_DST_MASTER_INTERFACE_1, | 
 | 		    .srcMaxTransactionWidth = dmacHw_SRC_TRANSACTION_WIDTH_32, | 
 | 		    .dstMaxTransactionWidth = dmacHw_DST_TRANSACTION_WIDTH_64, | 
 | 		    .srcMaxBurstWidth = dmacHw_SRC_BURST_WIDTH_8, | 
 | 		    .dstMaxBurstWidth = dmacHw_DST_BURST_WIDTH_4, | 
 | 		    .blockTransferInterrupt = dmacHw_INTERRUPT_ENABLE, | 
 | 		    .completeTransferInterrupt = dmacHw_INTERRUPT_DISABLE, | 
 | 		    .errorInterrupt = dmacHw_INTERRUPT_ENABLE, | 
 | 		    .channelPriority = dmacHw_CHANNEL_PRIORITY_7, | 
 | 		    .transferMode = dmacHw_TRANSFER_MODE_CONTINUOUS, | 
 | 		    }, | 
 | 	 }, | 
 | 	[DMA_DEVICE_APM_PCM0_MEM_TO_DEV] =	/* PCM0 TX */ | 
 | 	{ | 
 | 	 .flags = DMA_DEVICE_FLAG_ON_DMA0, | 
 | 	 .name = "pcm0_tx", | 
 | 	 .config = { | 
 | 		    .srcPeripheralPort = 0,	/* SRC: memory */ | 
 | 		    .dstPeripheralPort = 13,	/* DST: PCM0 */ | 
 | 		    .srcStatusRegisterAddress = 0, | 
 | 		    .dstStatusRegisterAddress = 0, | 
 | 		    .transferType = dmacHw_TRANSFER_TYPE_MEM_TO_PERIPHERAL, | 
 | 		    .srcMasterInterface = dmacHw_SRC_MASTER_INTERFACE_1, | 
 | 		    .dstMasterInterface = dmacHw_DST_MASTER_INTERFACE_2, | 
 | 		    .srcMaxTransactionWidth = dmacHw_SRC_TRANSACTION_WIDTH_64, | 
 | 		    .dstMaxTransactionWidth = dmacHw_DST_TRANSACTION_WIDTH_32, | 
 | 		    .srcMaxBurstWidth = dmacHw_SRC_BURST_WIDTH_4, | 
 | 		    .dstMaxBurstWidth = dmacHw_DST_BURST_WIDTH_8, | 
 | 		    .blockTransferInterrupt = dmacHw_INTERRUPT_DISABLE, | 
 | 		    .completeTransferInterrupt = dmacHw_INTERRUPT_ENABLE, | 
 | 		    .errorInterrupt = dmacHw_INTERRUPT_ENABLE, | 
 | 		    .channelPriority = dmacHw_CHANNEL_PRIORITY_7, | 
 | 		    .transferMode = dmacHw_TRANSFER_MODE_PERREQUEST, | 
 | 		    }, | 
 | 	 }, | 
 | 	[DMA_DEVICE_APM_PCM1_DEV_TO_MEM] =	/* PCM1 RX */ | 
 | 	{ | 
 | 	 .flags = DMA_DEVICE_FLAG_ON_DMA1, | 
 | 	 .name = "pcm1_rx", | 
 | 	 .config = { | 
 | 		    .srcPeripheralPort = 14,	/* SRC: PCM1 */ | 
 | 		    .dstPeripheralPort = 0,	/* DST: memory */ | 
 | 		    .srcStatusRegisterAddress = 0, | 
 | 		    .dstStatusRegisterAddress = 0, | 
 | 		    .transferType = dmacHw_TRANSFER_TYPE_PERIPHERAL_TO_MEM, | 
 | 		    .srcMasterInterface = dmacHw_SRC_MASTER_INTERFACE_2, | 
 | 		    .dstMasterInterface = dmacHw_DST_MASTER_INTERFACE_1, | 
 | 		    .srcMaxTransactionWidth = dmacHw_SRC_TRANSACTION_WIDTH_32, | 
 | 		    .dstMaxTransactionWidth = dmacHw_DST_TRANSACTION_WIDTH_64, | 
 | 		    .srcMaxBurstWidth = dmacHw_SRC_BURST_WIDTH_8, | 
 | 		    .dstMaxBurstWidth = dmacHw_DST_BURST_WIDTH_4, | 
 | 		    .blockTransferInterrupt = dmacHw_INTERRUPT_ENABLE, | 
 | 		    .completeTransferInterrupt = dmacHw_INTERRUPT_DISABLE, | 
 | 		    .errorInterrupt = dmacHw_INTERRUPT_ENABLE, | 
 | 		    .channelPriority = dmacHw_CHANNEL_PRIORITY_7, | 
 | 		    .transferMode = dmacHw_TRANSFER_MODE_CONTINUOUS, | 
 | 		    }, | 
 | 	 }, | 
 | 	[DMA_DEVICE_APM_PCM1_MEM_TO_DEV] =	/* PCM1 TX */ | 
 | 	{ | 
 | 	 .flags = DMA_DEVICE_FLAG_ON_DMA1, | 
 | 	 .name = "pcm1_tx", | 
 | 	 .config = { | 
 | 		    .srcPeripheralPort = 0,	/* SRC: memory */ | 
 | 		    .dstPeripheralPort = 15,	/* DST: PCM1 */ | 
 | 		    .srcStatusRegisterAddress = 0, | 
 | 		    .dstStatusRegisterAddress = 0, | 
 | 		    .transferType = dmacHw_TRANSFER_TYPE_MEM_TO_PERIPHERAL, | 
 | 		    .srcMasterInterface = dmacHw_SRC_MASTER_INTERFACE_1, | 
 | 		    .dstMasterInterface = dmacHw_DST_MASTER_INTERFACE_2, | 
 | 		    .srcMaxTransactionWidth = dmacHw_SRC_TRANSACTION_WIDTH_64, | 
 | 		    .dstMaxTransactionWidth = dmacHw_DST_TRANSACTION_WIDTH_32, | 
 | 		    .srcMaxBurstWidth = dmacHw_SRC_BURST_WIDTH_4, | 
 | 		    .dstMaxBurstWidth = dmacHw_DST_BURST_WIDTH_8, | 
 | 		    .blockTransferInterrupt = dmacHw_INTERRUPT_DISABLE, | 
 | 		    .completeTransferInterrupt = dmacHw_INTERRUPT_ENABLE, | 
 | 		    .errorInterrupt = dmacHw_INTERRUPT_ENABLE, | 
 | 		    .channelPriority = dmacHw_CHANNEL_PRIORITY_7, | 
 | 		    .transferMode = dmacHw_TRANSFER_MODE_PERREQUEST, | 
 | 		    }, | 
 | 	 }, | 
 | 	[DMA_DEVICE_SPUM_DEV_TO_MEM] =	/* SPUM RX */ | 
 | 	{ | 
 | 	 .flags = DMA_DEVICE_FLAG_ON_DMA0 | DMA_DEVICE_FLAG_ON_DMA1, | 
 | 	 .name = "spum_rx", | 
 | 	 .config = { | 
 | 		    .srcPeripheralPort = 6,	/* SRC: Codec A Ingress FIFO */ | 
 | 		    .dstPeripheralPort = 0,	/* DST: memory */ | 
 | 		    .srcStatusRegisterAddress = 0x00000000, | 
 | 		    .dstStatusRegisterAddress = 0x00000000, | 
 | 		    .srcUpdate = dmacHw_SRC_ADDRESS_UPDATE_MODE_INC, | 
 | 		    .dstUpdate = dmacHw_DST_ADDRESS_UPDATE_MODE_INC, | 
 | 		    .transferType = dmacHw_TRANSFER_TYPE_PERIPHERAL_TO_MEM, | 
 | 		    .srcMasterInterface = dmacHw_SRC_MASTER_INTERFACE_2, | 
 | 		    .dstMasterInterface = dmacHw_DST_MASTER_INTERFACE_1, | 
 | 		    .blockTransferInterrupt = dmacHw_INTERRUPT_DISABLE, | 
 | 		    .completeTransferInterrupt = dmacHw_INTERRUPT_ENABLE, | 
 | 		    .errorInterrupt = dmacHw_INTERRUPT_ENABLE, | 
 | 		    .channelPriority = dmacHw_CHANNEL_PRIORITY_7, | 
 | 		    .srcMaxTransactionWidth = dmacHw_SRC_TRANSACTION_WIDTH_32, | 
 | 		    .dstMaxTransactionWidth = dmacHw_DST_TRANSACTION_WIDTH_32, | 
 | 		    /* Busrt size **MUST** be 16 for SPUM to work */ | 
 | 		    .srcMaxBurstWidth = dmacHw_SRC_BURST_WIDTH_16, | 
 | 		    .dstMaxBurstWidth = dmacHw_DST_BURST_WIDTH_16, | 
 | 		    .transferMode = dmacHw_TRANSFER_MODE_PERREQUEST, | 
 | 		    /* on the RX side, SPU needs to be the flow controller */ | 
 | 		    .flowControler = dmacHw_FLOW_CONTROL_PERIPHERAL, | 
 | 		    }, | 
 | 	 }, | 
 | 	[DMA_DEVICE_SPUM_MEM_TO_DEV] =	/* SPUM TX */ | 
 | 	{ | 
 | 	 .flags = DMA_DEVICE_FLAG_ON_DMA0 | DMA_DEVICE_FLAG_ON_DMA1, | 
 | 	 .name = "spum_tx", | 
 | 	 .config = { | 
 | 		    .srcPeripheralPort = 0,	/* SRC: memory */ | 
 | 		    .dstPeripheralPort = 7,	/* DST: SPUM */ | 
 | 		    .srcStatusRegisterAddress = 0x00000000, | 
 | 		    .dstStatusRegisterAddress = 0x00000000, | 
 | 		    .srcUpdate = dmacHw_SRC_ADDRESS_UPDATE_MODE_INC, | 
 | 		    .dstUpdate = dmacHw_DST_ADDRESS_UPDATE_MODE_INC, | 
 | 		    .transferType = dmacHw_TRANSFER_TYPE_MEM_TO_PERIPHERAL, | 
 | 		    .srcMasterInterface = dmacHw_SRC_MASTER_INTERFACE_1, | 
 | 		    .dstMasterInterface = dmacHw_DST_MASTER_INTERFACE_2, | 
 | 		    .blockTransferInterrupt = dmacHw_INTERRUPT_DISABLE, | 
 | 		    .completeTransferInterrupt = dmacHw_INTERRUPT_ENABLE, | 
 | 		    .errorInterrupt = dmacHw_INTERRUPT_ENABLE, | 
 | 		    .channelPriority = dmacHw_CHANNEL_PRIORITY_7, | 
 | 		    .srcMaxTransactionWidth = dmacHw_SRC_TRANSACTION_WIDTH_32, | 
 | 		    .dstMaxTransactionWidth = dmacHw_DST_TRANSACTION_WIDTH_32, | 
 | 		    /* Busrt size **MUST** be 16 for SPUM to work */ | 
 | 		    .srcMaxBurstWidth = dmacHw_SRC_BURST_WIDTH_16, | 
 | 		    .dstMaxBurstWidth = dmacHw_DST_BURST_WIDTH_16, | 
 | 		    .transferMode = dmacHw_TRANSFER_MODE_PERREQUEST, | 
 | 		    }, | 
 | 	 }, | 
 | 	[DMA_DEVICE_MEM_TO_VRAM] =	/* MEM 2 VRAM */ | 
 | 	{ | 
 | 	 .flags = DMA_DEVICE_FLAG_ON_DMA0 | DMA_DEVICE_FLAG_ON_DMA1, | 
 | 	 .name = "mem-to-vram", | 
 | 	 .config = { | 
 | 		    .srcPeripheralPort = 0,	/* SRC: memory */ | 
 | 		    .srcStatusRegisterAddress = 0x00000000, | 
 | 		    .dstStatusRegisterAddress = 0x00000000, | 
 | 		    .srcUpdate = dmacHw_SRC_ADDRESS_UPDATE_MODE_INC, | 
 | 		    .dstUpdate = dmacHw_DST_ADDRESS_UPDATE_MODE_INC, | 
 | 		    .transferType = dmacHw_TRANSFER_TYPE_MEM_TO_MEM, | 
 | 		    .srcMasterInterface = dmacHw_SRC_MASTER_INTERFACE_1, | 
 | 		    .dstMasterInterface = dmacHw_DST_MASTER_INTERFACE_2, | 
 | 		    .completeTransferInterrupt = dmacHw_INTERRUPT_ENABLE, | 
 | 		    .errorInterrupt = dmacHw_INTERRUPT_ENABLE, | 
 | 		    .channelPriority = dmacHw_CHANNEL_PRIORITY_7, | 
 | 		    .srcMaxTransactionWidth = dmacHw_SRC_TRANSACTION_WIDTH_64, | 
 | 		    .dstMaxTransactionWidth = dmacHw_DST_TRANSACTION_WIDTH_64, | 
 | 		    .srcMaxBurstWidth = dmacHw_SRC_BURST_WIDTH_8, | 
 | 		    .dstMaxBurstWidth = dmacHw_DST_BURST_WIDTH_8, | 
 | 		    }, | 
 | 	 }, | 
 | 	[DMA_DEVICE_VRAM_TO_MEM] =	/* VRAM 2 MEM */ | 
 | 	{ | 
 | 	 .flags = DMA_DEVICE_FLAG_ON_DMA0 | DMA_DEVICE_FLAG_ON_DMA1, | 
 | 	 .name = "vram-to-mem", | 
 | 	 .config = { | 
 | 		    .dstPeripheralPort = 0,	/* DST: memory */ | 
 | 		    .srcStatusRegisterAddress = 0x00000000, | 
 | 		    .dstStatusRegisterAddress = 0x00000000, | 
 | 		    .srcUpdate = dmacHw_SRC_ADDRESS_UPDATE_MODE_INC, | 
 | 		    .dstUpdate = dmacHw_DST_ADDRESS_UPDATE_MODE_INC, | 
 | 		    .transferType = dmacHw_TRANSFER_TYPE_MEM_TO_MEM, | 
 | 		    .srcMasterInterface = dmacHw_SRC_MASTER_INTERFACE_2, | 
 | 		    .dstMasterInterface = dmacHw_DST_MASTER_INTERFACE_1, | 
 | 		    .completeTransferInterrupt = dmacHw_INTERRUPT_ENABLE, | 
 | 		    .errorInterrupt = dmacHw_INTERRUPT_ENABLE, | 
 | 		    .channelPriority = dmacHw_CHANNEL_PRIORITY_7, | 
 | 		    .srcMaxTransactionWidth = dmacHw_SRC_TRANSACTION_WIDTH_64, | 
 | 		    .dstMaxTransactionWidth = dmacHw_DST_TRANSACTION_WIDTH_64, | 
 | 		    .srcMaxBurstWidth = dmacHw_SRC_BURST_WIDTH_8, | 
 | 		    .dstMaxBurstWidth = dmacHw_DST_BURST_WIDTH_8, | 
 | 		    }, | 
 | 	 }, | 
 | }; | 
 | EXPORT_SYMBOL(DMA_gDeviceAttribute);	/* primarily for dma-test.c */ |