
/*******************************************************************
*
* CAUTION: This file is automatically generated by HSI.
* Version: 
* DO NOT EDIT.
*
* Copyright (C) 2010-2017 Xilinx, Inc. All Rights Reserved.*
*Permission is hereby granted, free of charge, to any person obtaining a copy
*of this software and associated documentation files (the Software), to deal
*in the Software without restriction, including without limitation the rights
*to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
*copies of the Software, and to permit persons to whom the Software is
*furnished to do so, subject to the following conditions:
*
*The above copyright notice and this permission notice shall be included in
*all copies or substantial portions of the Software.
* 
* Use of the Software is limited solely to applications:
*(a) running on a Xilinx device, or
*(b) that interact with a Xilinx device through a bus or interconnect.
*
*THE SOFTWARE IS PROVIDED AS IS, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
*IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
*FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 
*XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
*WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT
*OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*
*Except as contained in this notice, the name of the Xilinx shall not be used
*in advertising or otherwise to promote the sale, use or other dealings in
*this Software without prior written authorization from Xilinx.
*

* 
* Description: Driver configuration
*
*******************************************************************/

#include "xparameters.h"
#include "xzdma.h"

/*
* The configuration table for devices
*/

XZDma_Config XZDma_ConfigTable[] =
{
	{
		XPAR_PSU_ADMA_0_DEVICE_ID,
		XPAR_PSU_ADMA_0_BASEADDR,
		XPAR_PSU_ADMA_0_DMA_MODE
	},
	{
		XPAR_PSU_ADMA_1_DEVICE_ID,
		XPAR_PSU_ADMA_1_BASEADDR,
		XPAR_PSU_ADMA_1_DMA_MODE
	},
	{
		XPAR_PSU_ADMA_2_DEVICE_ID,
		XPAR_PSU_ADMA_2_BASEADDR,
		XPAR_PSU_ADMA_2_DMA_MODE
	},
	{
		XPAR_PSU_ADMA_3_DEVICE_ID,
		XPAR_PSU_ADMA_3_BASEADDR,
		XPAR_PSU_ADMA_3_DMA_MODE
	},
	{
		XPAR_PSU_ADMA_4_DEVICE_ID,
		XPAR_PSU_ADMA_4_BASEADDR,
		XPAR_PSU_ADMA_4_DMA_MODE
	},
	{
		XPAR_PSU_ADMA_5_DEVICE_ID,
		XPAR_PSU_ADMA_5_BASEADDR,
		XPAR_PSU_ADMA_5_DMA_MODE
	},
	{
		XPAR_PSU_ADMA_6_DEVICE_ID,
		XPAR_PSU_ADMA_6_BASEADDR,
		XPAR_PSU_ADMA_6_DMA_MODE
	},
	{
		XPAR_PSU_ADMA_7_DEVICE_ID,
		XPAR_PSU_ADMA_7_BASEADDR,
		XPAR_PSU_ADMA_7_DMA_MODE
	},
	{
		XPAR_PSU_GDMA_0_DEVICE_ID,
		XPAR_PSU_GDMA_0_BASEADDR,
		XPAR_PSU_GDMA_0_DMA_MODE
	},
	{
		XPAR_PSU_GDMA_1_DEVICE_ID,
		XPAR_PSU_GDMA_1_BASEADDR,
		XPAR_PSU_GDMA_1_DMA_MODE
	},
	{
		XPAR_PSU_GDMA_2_DEVICE_ID,
		XPAR_PSU_GDMA_2_BASEADDR,
		XPAR_PSU_GDMA_2_DMA_MODE
	},
	{
		XPAR_PSU_GDMA_3_DEVICE_ID,
		XPAR_PSU_GDMA_3_BASEADDR,
		XPAR_PSU_GDMA_3_DMA_MODE
	},
	{
		XPAR_PSU_GDMA_4_DEVICE_ID,
		XPAR_PSU_GDMA_4_BASEADDR,
		XPAR_PSU_GDMA_4_DMA_MODE
	},
	{
		XPAR_PSU_GDMA_5_DEVICE_ID,
		XPAR_PSU_GDMA_5_BASEADDR,
		XPAR_PSU_GDMA_5_DMA_MODE
	},
	{
		XPAR_PSU_GDMA_6_DEVICE_ID,
		XPAR_PSU_GDMA_6_BASEADDR,
		XPAR_PSU_GDMA_6_DMA_MODE
	},
	{
		XPAR_PSU_GDMA_7_DEVICE_ID,
		XPAR_PSU_GDMA_7_BASEADDR,
		XPAR_PSU_GDMA_7_DMA_MODE
	}
};


