/*
 *  linux/include/asm-arm/arch-comcerto/dma.h
 *
 *  Copyright (C) 2004,2005 Mindspeed Technologies
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */
#ifndef __ASM_ARCH_DMA_H
#define __ASM_ARCH_DMA_H



typedef long I32;
typedef char I8;
typedef unsigned char U8;
typedef unsigned short U16;
typedef unsigned long U32;
typedef volatile unsigned char V8;
typedef volatile unsigned short V16;
typedef volatile unsigned long V32;
typedef unsigned int BOOL; 
typedef U32 (*CKSUMFUNC)(void);
typedef U32 (*PLUGINPROC)(void * );

typedef enum _retcode
{
   RETCODE_OK = 0,
   RETCODE_ERROR,
   RETCODE_BAD_PARAMETER,
   RETCODE_MISMATCH,                /* Security violation. */
   RETCODE_INVALID_FUSE_SETTING,    /* Security violation. */
   RETCODE_INVALID_IMAGE_HEADER,    /* Security violation. */
   RETCODE_RSA_ERROR,               /* Security Violation. */
   RETCODE_NO_VALID_COPY,  
   RETCODE_HDCP_KEY_LOAD_FAILED,
   RETCODE_FUSE_PROGRAM_FAILED,
   RETCODE_OTP_ERR,
   RETCODE_FAILED,
   RETCODE_BOOTDEV_UART,
   RETCODE_BOOTDEV_FLASH,
   RETCODE_BOOTDEV_INVALID,
   RETCODE_FLASH_DEVICE_NOT_SUPPORTED,
   RETCODE_FLASH_BAD_BLOCK,
   RETCODE_FLASH_UNCORRECTABLE_ERROR,
   RETCODE_UARTBOOT_ERROR,
   RETCODE_NOT_SUPPORTED,
   RETCODE_INVALID_BOOT_DEV,
   RETCODE_SECURE_BOOT_ENABLE,
   RETCODE_SECURE_BOOT_DISABLE,
   RETCODE_YMODEM_HDR_ERROR,
   RETCODE_YMODEM_PKT_ERROR,
   RETCODE_YMODEM_DONE_ERROR,
   RETCODE_PAD_ERROR,
   RETCODE_ECC_ERR_CORRECTED,
   RETCODE_ECC_ERR_UNCORRECTABLE,
   RETCODE_ECC_DATA_ERROR,
   RETCODE_NAND_BBT_OUT_OF_BOUND
} retcode;



/*
  * DW DMA (HS SPI and UART) Block
  */

#define DW_DMA_DMAC_BASEADDR				(COMCERTO_AXI_UART_SPI_BASE+0x00000000)
#define DW_DMA_UART0_BASEADDR				(COMCERTO_AXI_UART_SPI_BASE+0x00300000)
#define DW_DMA_UART1_BASEADDR				(COMCERTO_AXI_UART_SPI_BASE+0x00400000)
#define DW_DMA_SSI_BASEADDR					(COMCERTO_AXI_UART_SPI_BASE+0x00500000)


/*
  * DW DMA DMAC
  */

/* Channel Registers */  
#define DW_DMA_DMAC_SAR0					(DW_DMA_DMAC_BASEADDR+0x000)
#define DW_DMA_DMAC_DAR0					(DW_DMA_DMAC_BASEADDR+0x008)
#define DW_DMA_DMAC_LLP0					(DW_DMA_DMAC_BASEADDR+0x010)
#define DW_DMA_DMAC_CTL0					(DW_DMA_DMAC_BASEADDR+0x018)
#define DW_DMA_DMAC_SSTAT0					(DW_DMA_DMAC_BASEADDR+0x020)
#define DW_DMA_DMAC_DSTAT0					(DW_DMA_DMAC_BASEADDR+0x028)
#define DW_DMA_DMAC_SSTATAR0				(DW_DMA_DMAC_BASEADDR+0x030)
#define DW_DMA_DMAC_DSTATAR0				(DW_DMA_DMAC_BASEADDR+0x038)
#define DW_DMA_DMAC_CFG0					(DW_DMA_DMAC_BASEADDR+0x040)
#define DW_DMA_DMAC_SGR0					(DW_DMA_DMAC_BASEADDR+0x048)
#define DW_DMA_DMAC_DSR0					(DW_DMA_DMAC_BASEADDR+0x050)

#define DW_DMA_DMAC_SAR1					(DW_DMA_DMAC_BASEADDR+0x058)
#define DW_DMA_DMAC_DAR1					(DW_DMA_DMAC_BASEADDR+0x060)
#define DW_DMA_DMAC_LLP1					(DW_DMA_DMAC_BASEADDR+0x068)
#define DW_DMA_DMAC_CTL1					(DW_DMA_DMAC_BASEADDR+0x070)
#define DW_DMA_DMAC_SSTAT1					(DW_DMA_DMAC_BASEADDR+0x078)
#define DW_DMA_DMAC_DSTAT1					(DW_DMA_DMAC_BASEADDR+0x080)
#define DW_DMA_DMAC_SSTATAR1				(DW_DMA_DMAC_BASEADDR+0x088)
#define DW_DMA_DMAC_DSTATAR1				(DW_DMA_DMAC_BASEADDR+0x090)
#define DW_DMA_DMAC_CFG1					(DW_DMA_DMAC_BASEADDR+0x098)
#define DW_DMA_DMAC_SGR1					(DW_DMA_DMAC_BASEADDR+0x0A0)
#define DW_DMA_DMAC_DSR1					(DW_DMA_DMAC_BASEADDR+0x0A8)

#define DW_DMA_DMAC_SAR2					(DW_DMA_DMAC_BASEADDR+0x0B0)
#define DW_DMA_DMAC_DAR2					(DW_DMA_DMAC_BASEADDR+0x0B8)
#define DW_DMA_DMAC_LLP2					(DW_DMA_DMAC_BASEADDR+0x0C0)
#define DW_DMA_DMAC_CTL2					(DW_DMA_DMAC_BASEADDR+0x0C8)
#define DW_DMA_DMAC_SSTAT2					(DW_DMA_DMAC_BASEADDR+0x0D0)
#define DW_DMA_DMAC_DSTAT2					(DW_DMA_DMAC_BASEADDR+0x0D8)
#define DW_DMA_DMAC_SSTATAR2				(DW_DMA_DMAC_BASEADDR+0x0E0)
#define DW_DMA_DMAC_DSTATAR2				(DW_DMA_DMAC_BASEADDR+0x0E8)
#define DW_DMA_DMAC_CFG2					(DW_DMA_DMAC_BASEADDR+0x0F0)
#define DW_DMA_DMAC_SGR2					(DW_DMA_DMAC_BASEADDR+0x0F8)
#define DW_DMA_DMAC_DSR2					(DW_DMA_DMAC_BASEADDR+0x100)

#define DW_DMA_DMAC_SAR3					(DW_DMA_DMAC_BASEADDR+0x108)
#define DW_DMA_DMAC_DAR3					(DW_DMA_DMAC_BASEADDR+0x110)
#define DW_DMA_DMAC_LLP3					(DW_DMA_DMAC_BASEADDR+0x118)
#define DW_DMA_DMAC_CTL3					(DW_DMA_DMAC_BASEADDR+0x120)
#define DW_DMA_DMAC_SSTAT3					(DW_DMA_DMAC_BASEADDR+0x128)
#define DW_DMA_DMAC_DSTAT3					(DW_DMA_DMAC_BASEADDR+0x130)
#define DW_DMA_DMAC_SSTATAR3				(DW_DMA_DMAC_BASEADDR+0x138)
#define DW_DMA_DMAC_DSTATAR3				(DW_DMA_DMAC_BASEADDR+0x140)
#define DW_DMA_DMAC_CFG3					(DW_DMA_DMAC_BASEADDR+0x148)
#define DW_DMA_DMAC_SGR3					(DW_DMA_DMAC_BASEADDR+0x150)
#define DW_DMA_DMAC_DSR3					(DW_DMA_DMAC_BASEADDR+0x158)

#define DW_DMA_DMAC_SAR4					(DW_DMA_DMAC_BASEADDR+0x160)
#define DW_DMA_DMAC_DAR4					(DW_DMA_DMAC_BASEADDR+0x168)
#define DW_DMA_DMAC_LLP4					(DW_DMA_DMAC_BASEADDR+0x170)
#define DW_DMA_DMAC_CTL4					(DW_DMA_DMAC_BASEADDR+0x178)
#define DW_DMA_DMAC_SSTAT4					(DW_DMA_DMAC_BASEADDR+0x180)
#define DW_DMA_DMAC_DSTAT4					(DW_DMA_DMAC_BASEADDR+0x188)
#define DW_DMA_DMAC_SSTATAR4				(DW_DMA_DMAC_BASEADDR+0x190)
#define DW_DMA_DMAC_DSTATAR4				(DW_DMA_DMAC_BASEADDR+0x198)
#define DW_DMA_DMAC_CFG4					(DW_DMA_DMAC_BASEADDR+0x1A0)
#define DW_DMA_DMAC_SGR4					(DW_DMA_DMAC_BASEADDR+0x1A8)
#define DW_DMA_DMAC_DSR4					(DW_DMA_DMAC_BASEADDR+0x1B0)

#define DW_DMA_DMAC_SAR5					(DW_DMA_DMAC_BASEADDR+0x1B8)
#define DW_DMA_DMAC_DAR5					(DW_DMA_DMAC_BASEADDR+0x1C0)
#define DW_DMA_DMAC_LLP5					(DW_DMA_DMAC_BASEADDR+0x1C8)
#define DW_DMA_DMAC_CTL5					(DW_DMA_DMAC_BASEADDR+0x1D0)
#define DW_DMA_DMAC_SSTAT5					(DW_DMA_DMAC_BASEADDR+0x1D8)
#define DW_DMA_DMAC_DSTAT5					(DW_DMA_DMAC_BASEADDR+0x1E0)
#define DW_DMA_DMAC_SSTATAR5				(DW_DMA_DMAC_BASEADDR+0x1E8)
#define DW_DMA_DMAC_DSTATAR5				(DW_DMA_DMAC_BASEADDR+0x1F0)
#define DW_DMA_DMAC_CFG5					(DW_DMA_DMAC_BASEADDR+0x1F8)
#define DW_DMA_DMAC_SGR5					(DW_DMA_DMAC_BASEADDR+0x200)
#define DW_DMA_DMAC_DSR5					(DW_DMA_DMAC_BASEADDR+0x208)

#define DW_DMA_DMAC_SAR6					(DW_DMA_DMAC_BASEADDR+0x210)
#define DW_DMA_DMAC_DAR6					(DW_DMA_DMAC_BASEADDR+0x218)
#define DW_DMA_DMAC_LLP6					(DW_DMA_DMAC_BASEADDR+0x220)
#define DW_DMA_DMAC_CTL6					(DW_DMA_DMAC_BASEADDR+0x228)
#define DW_DMA_DMAC_SSTAT6					(DW_DMA_DMAC_BASEADDR+0x230)
#define DW_DMA_DMAC_DSTAT6					(DW_DMA_DMAC_BASEADDR+0x238)
#define DW_DMA_DMAC_SSTATAR6				(DW_DMA_DMAC_BASEADDR+0x240)
#define DW_DMA_DMAC_DSTATAR6				(DW_DMA_DMAC_BASEADDR+0x248)
#define DW_DMA_DMAC_CFG6					(DW_DMA_DMAC_BASEADDR+0x250)
#define DW_DMA_DMAC_SGR6					(DW_DMA_DMAC_BASEADDR+0x258)
#define DW_DMA_DMAC_DSR6					(DW_DMA_DMAC_BASEADDR+0x260)

#define DW_DMA_DMAC_SAR7					(DW_DMA_DMAC_BASEADDR+0x268)
#define DW_DMA_DMAC_DAR7					(DW_DMA_DMAC_BASEADDR+0x270)
#define DW_DMA_DMAC_LLP7					(DW_DMA_DMAC_BASEADDR+0x278)
#define DW_DMA_DMAC_CTL7					(DW_DMA_DMAC_BASEADDR+0x280)
#define DW_DMA_DMAC_SSTAT7					(DW_DMA_DMAC_BASEADDR+0x288)
#define DW_DMA_DMAC_DSTAT7					(DW_DMA_DMAC_BASEADDR+0x290)
#define DW_DMA_DMAC_SSTATAR7				(DW_DMA_DMAC_BASEADDR+0x298)
#define DW_DMA_DMAC_DSTATAR7				(DW_DMA_DMAC_BASEADDR+0x2A0)
#define DW_DMA_DMAC_CFG7					(DW_DMA_DMAC_BASEADDR+0x2A8)
#define DW_DMA_DMAC_SGR7					(DW_DMA_DMAC_BASEADDR+0x2B0)
#define DW_DMA_DMAC_DSR7					(DW_DMA_DMAC_BASEADDR+0x2B8)

/* Interrupt Registers */
#define DW_DMA_DMAC_RAW_TFR					(DW_DMA_DMAC_BASEADDR+0x2C0)
#define DW_DMA_DMAC_RAW_BLOCK				(DW_DMA_DMAC_BASEADDR+0x2C8)
#define DW_DMA_DMAC_RAW_SRC_TRAN			(DW_DMA_DMAC_BASEADDR+0x2D0)
#define DW_DMA_DMAC_RAW_DST_TRAN			(DW_DMA_DMAC_BASEADDR+0x2D8)
#define DW_DMA_DMAC_RAW_ERR					(DW_DMA_DMAC_BASEADDR+0x2E0)
#define DW_DMA_DMAC_STATUS_TFR				(DW_DMA_DMAC_BASEADDR+0x2E8)
#define DW_DMA_DMAC_STATUS_BLK				(DW_DMA_DMAC_BASEADDR+0x2F0)
#define DW_DMA_DMAC_STATUS_SRC_TRAN			(DW_DMA_DMAC_BASEADDR+0x2F8)
#define DW_DMA_DMAC_STATUS_DST_TRAN			(DW_DMA_DMAC_BASEADDR+0x300)
#define DW_DMA_DMAC_STATUS_ERR				(DW_DMA_DMAC_BASEADDR+0x308)
#define DW_DMA_DMAC_MASK_TFR				(DW_DMA_DMAC_BASEADDR+0x310)
#define DW_DMA_DMAC_MASK_BLOCK				(DW_DMA_DMAC_BASEADDR+0x318)
#define DW_DMA_DMAC_MASK_SRC_TRAN			(DW_DMA_DMAC_BASEADDR+0x320)
#define DW_DMA_DMAC_MASK_DST_TRAN			(DW_DMA_DMAC_BASEADDR+0x328)
#define DW_DMA_DMAC_MASK_ERR				(DW_DMA_DMAC_BASEADDR+0x330)
#define DW_DMA_DMAC_CLEAR_TFR				(DW_DMA_DMAC_BASEADDR+0x338)
#define DW_DMA_DMAC_CLEAR_BLK				(DW_DMA_DMAC_BASEADDR+0x340)
#define DW_DMA_DMAC_CLEAR_SRC_TRAN			(DW_DMA_DMAC_BASEADDR+0x348)
#define DW_DMA_DMAC_CLEAR_DST_TRAN			(DW_DMA_DMAC_BASEADDR+0x350)
#define DW_DMA_DMAC_CLEAR_ERR				(DW_DMA_DMAC_BASEADDR+0x358)
#define DW_DMA_DMAC_STATUS_INT				(DW_DMA_DMAC_BASEADDR+0x360)

/* Software Handshaking Registers */
#define DW_DMA_DMAC_REQ_SRC_REG				(DW_DMA_DMAC_BASEADDR+0x368)
#define DW_DMA_DMAC_REQ_DST_REG				(DW_DMA_DMAC_BASEADDR+0x370)
#define DW_DMA_DMAC_SGL_REQ_SRC_REG			(DW_DMA_DMAC_BASEADDR+0x378)
#define DW_DMA_DMAC_SGL_REQ_DST_REG			(DW_DMA_DMAC_BASEADDR+0x380)
#define DW_DMA_DMAC_LST_SRC_REG				(DW_DMA_DMAC_BASEADDR+0x388)
#define DW_DMA_DMAC_LST_DST_REG				(DW_DMA_DMAC_BASEADDR+0x390)

/* Miscellaneous Registers */
#define DW_DMA_DMAC_DMA_CFG_REG				(DW_DMA_DMAC_BASEADDR+0x398)
#define DW_DMA_DMAC_CH_EN_REG				(DW_DMA_DMAC_BASEADDR+0x3A0)
#define DW_DMA_DMAC_DMA_LD_REG				(DW_DMA_DMAC_BASEADDR+0x3A8)
#define DW_DMA_DMAC_DMA_TEST_REG			(DW_DMA_DMAC_BASEADDR+0x3B0)
#define DW_DMA_DMAC_DMA_COMP_PA_RAMS_6		(DW_DMA_DMAC_BASEADDR+0x3C8)
#define DW_DMA_DMAC_DMA_COMP_PA_RAMS_5		(DW_DMA_DMAC_BASEADDR+0x3D0)
#define DW_DMA_DMAC_DMA_COMP_PA_RAMS_4		(DW_DMA_DMAC_BASEADDR+0x3D8)
#define DW_DMA_DMAC_DMA_COMP_PA_RAMS_3		(DW_DMA_DMAC_BASEADDR+0x3E0)
#define DW_DMA_DMAC_DMA_COMP_PA_RAMS_2		(DW_DMA_DMAC_BASEADDR+0x3E8)
#define DW_DMA_DMAC_DMA_COMP_PA_RAMS_1		(DW_DMA_DMAC_BASEADDR+0x3F0)
#define DW_DMA_DMAC_DMA_COMP_ID_REG			(DW_DMA_DMAC_BASEADDR+0x3F8)



/*
  * DW DMA UART0
  */

#define DW_DMA_UART0_RBR					(DW_DMA_UART0_BASEADDR+0x00)
#define DW_DMA_UART0_THR					(DW_DMA_UART0_BASEADDR+0x00)
#define DW_DMA_UART0_DLL					(DW_DMA_UART0_BASEADDR+0x00)
#define DW_DMA_UART0_DLH					(DW_DMA_UART0_BASEADDR+0x04)
#define DW_DMA_UART0_IER					(DW_DMA_UART0_BASEADDR+0x04)
#define DW_DMA_UART0_IIR					(DW_DMA_UART0_BASEADDR+0x08)
#define DW_DMA_UART0_FCR					(DW_DMA_UART0_BASEADDR+0x08)
#define DW_DMA_UART0_LCR					(DW_DMA_UART0_BASEADDR+0x0C)
#define DW_DMA_UART0_MCR					(DW_DMA_UART0_BASEADDR+0x10)
#define DW_DMA_UART0_LSR					(DW_DMA_UART0_BASEADDR+0x14)
#define DW_DMA_UART0_MSR					(DW_DMA_UART0_BASEADDR+0x18)
#define DW_DMA_UART0_SCR					(DW_DMA_UART0_BASEADDR+0x1C)
#define DW_DMA_UART0_LPDLL					(DW_DMA_UART0_BASEADDR+0x20)
#define DW_DMA_UART0_LPDLH					(DW_DMA_UART0_BASEADDR+0x24)
#define DW_DMA_UART0_SRBR					(DW_DMA_UART0_BASEADDR+0x30) /* Shadow Receive Buffer Register (0x30 to 0x6C) */
#define DW_DMA_UART0_STHR					(DW_DMA_UART0_BASEADDR+0x30) /* Shadow Transmit Holding Register (0x30 to 0x6C) */
#define DW_DMA_UART0_FAR					(DW_DMA_UART0_BASEADDR+0x40)
#define DW_DMA_UART0_TFR					(DW_DMA_UART0_BASEADDR+0x70)
#define DW_DMA_UART0_RFW					(DW_DMA_UART0_BASEADDR+0x74)
#define DW_DMA_UART0_USR					(DW_DMA_UART0_BASEADDR+0x78)
#define DW_DMA_UART0_TFL					(DW_DMA_UART0_BASEADDR+0x7C)
#define DW_DMA_UART0_RFL					(DW_DMA_UART0_BASEADDR+0x80)
#define DW_DMA_UART0_SRR					(DW_DMA_UART0_BASEADDR+0x84)
#define DW_DMA_UART0_SRTS					(DW_DMA_UART0_BASEADDR+0x88)
#define DW_DMA_UART0_DR						(DW_DMA_UART0_BASEADDR+0x8C)
#define DW_DMA_UART0_SBCR					(DW_DMA_UART0_BASEADDR+0x90)
#define DW_DMA_UART0_SDMAM					(DW_DMA_UART0_BASEADDR+0x94)
#define DW_DMA_UART0_SFE					(DW_DMA_UART0_BASEADDR+0x98)
#define DW_DMA_UART0_SRT					(DW_DMA_UART0_BASEADDR+0x9C)
#define DW_DMA_UART0_STET					(DW_DMA_UART0_BASEADDR+0xA0)
#define DW_DMA_UART0_HTX					(DW_DMA_UART0_BASEADDR+0xA4)
#define DW_DMA_UART0_DMASA					(DW_DMA_UART0_BASEADDR+0xA8)
#define DW_DMA_UART0_CPR					(DW_DMA_UART0_BASEADDR+0xF4)
#define DW_DMA_UART0_UCV					(DW_DMA_UART0_BASEADDR+0xF8)
#define DW_DMA_UART0_CTR					(DW_DMA_UART0_BASEADDR+0xFC)




/*
  * DW DMA UART1
  */

#define DW_DMA_UART1_RBR					(DW_DMA_UART1_BASEADDR+0x00)
#define DW_DMA_UART1_THR					(DW_DMA_UART1_BASEADDR+0x00)
#define DW_DMA_UART1_DLL					(DW_DMA_UART1_BASEADDR+0x00)
#define DW_DMA_UART1_DLH					(DW_DMA_UART1_BASEADDR+0x04)
#define DW_DMA_UART1_IER					(DW_DMA_UART1_BASEADDR+0x04)
#define DW_DMA_UART1_IIR					(DW_DMA_UART1_BASEADDR+0x08)
#define DW_DMA_UART1_FCR					(DW_DMA_UART1_BASEADDR+0x08)
#define DW_DMA_UART1_LCR					(DW_DMA_UART1_BASEADDR+0x0C)
#define DW_DMA_UART1_MCR					(DW_DMA_UART1_BASEADDR+0x10)
#define DW_DMA_UART1_LSR					(DW_DMA_UART1_BASEADDR+0x14)
#define DW_DMA_UART1_MSR					(DW_DMA_UART1_BASEADDR+0x18)
#define DW_DMA_UART1_SCR					(DW_DMA_UART1_BASEADDR+0x1C)
#define DW_DMA_UART1_LPDLL					(DW_DMA_UART1_BASEADDR+0x20)
#define DW_DMA_UART1_LPDLH					(DW_DMA_UART1_BASEADDR+0x24)
#define DW_DMA_UART1_SRBR					(DW_DMA_UART1_BASEADDR+0x30) /* Shadow Receive Buffer Register (0x30 to 0x6C) */
#define DW_DMA_UART1_STHR					(DW_DMA_UART1_BASEADDR+0x30) /* Shadow Transmit Holding Register (0x30 to 0x6C) */
#define DW_DMA_UART1_FAR					(DW_DMA_UART1_BASEADDR+0x40)
#define DW_DMA_UART1_TFR					(DW_DMA_UART1_BASEADDR+0x70)
#define DW_DMA_UART1_RFW					(DW_DMA_UART1_BASEADDR+0x74)
#define DW_DMA_UART1_USR					(DW_DMA_UART1_BASEADDR+0x78)
#define DW_DMA_UART1_TFL					(DW_DMA_UART1_BASEADDR+0x7C)
#define DW_DMA_UART1_RFL					(DW_DMA_UART1_BASEADDR+0x80)
#define DW_DMA_UART1_SRR					(DW_DMA_UART1_BASEADDR+0x84)
#define DW_DMA_UART1_SRTS					(DW_DMA_UART1_BASEADDR+0x88)
#define DW_DMA_UART1_DR						(DW_DMA_UART1_BASEADDR+0x8C)
#define DW_DMA_UART1_SBCR					(DW_DMA_UART1_BASEADDR+0x90)
#define DW_DMA_UART1_SDMAM					(DW_DMA_UART1_BASEADDR+0x94)
#define DW_DMA_UART1_SFE					(DW_DMA_UART1_BASEADDR+0x98)
#define DW_DMA_UART1_SRT					(DW_DMA_UART1_BASEADDR+0x9C)
#define DW_DMA_UART1_STET					(DW_DMA_UART1_BASEADDR+0xA0)
#define DW_DMA_UART1_HTX					(DW_DMA_UART1_BASEADDR+0xA4)
#define DW_DMA_UART1_DMASA					(DW_DMA_UART1_BASEADDR+0xA8)
#define DW_DMA_UART1_CPR					(DW_DMA_UART1_BASEADDR+0xF4)
#define DW_DMA_UART1_UCV					(DW_DMA_UART1_BASEADDR+0xF8)
#define DW_DMA_UART1_CTR					(DW_DMA_UART1_BASEADDR+0xFC)




/* DMA Channels */
#define DMA_CHANNEL_0					0x0
#define DMA_CHANNEL_1					0x1
#define DMA_CHANNEL_2					0x2
#define DMA_CHANNEL_3					0x3
#define DMA_CHANNEL_4					0x4
#define DMA_CHANNEL_5					0x5
#define DMA_CHANNEL_6					0x6
#define DMA_CHANNEL_7					0x7

/* DMA Channel mask */
#define DMA_CHANNEL_0_MASK				0x00000001
#define DMA_CHANNEL_1_MASK				0x00000002
#define DMA_CHANNEL_2_MASK				0x00000004
#define DMA_CHANNEL_3_MASK				0x00000008
#define DMA_CHANNEL_4_MASK				0x00000010
#define DMA_CHANNEL_5_MASK				0x00000020
#define DMA_CHANNEL_6_MASK				0x00000040
#define DMA_CHANNEL_7_MASK				0x00000080

#define DMA_GLOBAL_ENABLE				0x1
#define DMA_REG_WE_SHIFT				0x8


#define DMA_CHANNEL_REG_SAR_BASE		DW_DMA_DMAC_SAR0
#define DMA_CHANNEL_REG_DAR_BASE		DW_DMA_DMAC_DAR0
#define DMA_CHANNEL_REG_LLP_BASE		DW_DMA_DMAC_LLP0
#define DMA_CHANNEL_REG_CTL_BASE		DW_DMA_DMAC_CTL0
#define DMA_CHANNEL_REG_SSTAT_BASE		DW_DMA_DMAC_SSTAT0
#define DMA_CHANNEL_REG_DSTAT_BASE		DW_DMA_DMAC_DSTAT0
#define DMA_CHANNEL_REG_SSTATAR_BASE	DW_DMA_DMAC_SSTATAR0
#define DMA_CHANNEL_REG_DSTATAR_BASE	DW_DMA_DMAC_DSTATAR0
#define DMA_CHANNEL_REG_CFG_BASE		DW_DMA_DMAC_CFG0
#define DMA_CHANNEL_REG_SGR_BASE		DW_DMA_DMAC_SGR0
#define DMA_CHANNEL_REG_DSR_BASE		DW_DMA_DMAC_DSR0


#define DMA_CHANNEL_REG_COUNT			11
#define DMA_CHANNEL_REG_SIZE			8


/* DMA Control Register for Channel [0-31] */

/* 
 * Single-block Transfer -- without write-back 
 * of control and status information enabled at 
 * the end of the single-block transfer
 */
 
#define DMA_CTL_INT_EN					0x1
#define DMA_CTL_INT_EN_MASK				0x1
#define DMA_CTL_INT_EN_SHIFT			0

#define DMA_CTL_DST_TR_WIDTH			0x0 		/* 8 bit */
#define DMA_CTL_DST_TR_WIDTH_MASK		0x7
#define DMA_CTL_DST_TR_WIDTH_SHIFT		1

#define DMA_CTL_SRC_TR_WIDTH			0x0 		/* 8 bit */
#define DMA_CTL_SRC_TR_WIDTH_MASK		0x7
#define DMA_CTL_SRC_TR_WIDTH_SHIFT		4

#define DMA_CTL_DINC					0x0 		/* Incriment */
#define DMA_CTL_DINC_MASK				0x3
#define DMA_CTL_DINC_SHIFT				7

#define DMA_CTL_SINC					0x2 		/* No Change */
#define DMA_CTL_SINC_MASK				0x3
#define DMA_CTL_SINC_SHIFT				9

#define DMA_CTL_DEST_MSIZE				0x3 //0x1 		/* Number of data items to be transferred = 4 */
#define DMA_CTL_DEST_MSIZE_MASK			0x7
#define DMA_CTL_DEST_MSIZE_SHIFT		11

#define DMA_CTL_SRC_MSIZE				0x3 //0x1			/* Number of data items to be transferred = 4 */
#define DMA_CTL_SRC_MSIZE_MASK			0x7
#define DMA_CTL_SRC_MSIZE_SHIFT			14

#define DMA_CTL_SRC_GATHER_EN			0x0			/* Disabled */
#define DMA_CTL_SRC_GATHER_EN_MASK		0x1
#define DMA_CTL_SRC_GATHER_EN_SHIFT		17

#define DMA_CTL_DST_SCATTER_EN			0x0			/* Disabled */
#define DMA_CTL_DST_SCATTER_EN_MASK		0x1
#define DMA_CTL_DST_SCATTER_EN_SHIFT	18

#define DMA_CTL_TT_FC					0x2			/* Peripheral to Memory, Flow Controller -- DW_ahb_dmac */
#define DMA_CTL_TT_FC_MASK				0x7
#define DMA_CTL_TT_FC_SHIFT				20

#define DMA_CTL_DMS						0x0			/* ?????? AHB master 1 */
#define DMA_CTL_DMS_MASK				0x3
#define DMA_CTL_DMS_SHIFT				23

#define DMA_CTL_SMS						0x1			/* ?????? AHB master 2 */
#define DMA_CTL_SMS_MASK				0x3
#define DMA_CTL_SMS_SHIFT				25

#define DMA_CTL_LLP_DST_EN				0x0
#define DMA_CTL_LLP_DST_EN_MASK			0x1
#define DMA_CTL_LLP_DST_EN_SHIFT		27

#define DMA_CTL_LLP_SRC_EN				0x0
#define DMA_CTL_LLP_SRC_EN_MASK			0x1
#define DMA_CTL_LLP_SRC_EN_SHIFT		28


/* DMA Control Register for Channel [32-63] */
/* 
 * Single-block Transfer -- without write-back 
 * of control and status information enabled at 
 * the end of the single-block transfer
 */

/* DMA_CTL_BLOCK_TS
 * When the DW_ahb_dmac is the flow controller, the user writes this
 * field before the channel is enabled in order to indicate the block size.
 *
 * The number programmed into BLOCK_TS indicates the total number
 * of single transactions to perform for every block transfer.
 *
 * The width of the single transaction is determined by
 * DMA_CTL_SRC_TR_WIDTH.
 */
#define DMA_CTL_BLOCK_TS				SPI_NDF 
#define DMA_CTL_BLOCK_TS_MASK			0XFFF
#define DMA_CTL_BLOCK_TS_SHIFT			0

#define DMA_CTL_DONE					0x0
#define DMA_CTL_DONE_MASK				0x1
#define DMA_CTL_DONE_SHIFT				12



/* DMA Config Register for Channel [0-31] */
/* 
 * Single-block Transfer -- without write-back 
 * of control and status information enabled at 
 * the end of the single-block transfer
 */

#define DMA_CFG_RELOAD_DST				0x0			/* Disabled -- No Multi Block xfer */
#define DMA_CFG_RELOAD_DST_MASK			0x1
#define DMA_CFG_RELOAD_DST_SHIFT		31

#define DMA_CFG_RELOAD_SRC				0x0			/* Disabled -- No Multi Block xfer */
#define DMA_CFG_RELOAD_SRC_MASK			0x1
#define DMA_CFG_RELOAD_SRC_SHIFT		30

#define DMA_CFG_MAX_ABRST				0x0			/* max AMBA burst length -- not limited by software  */
#define DMA_CFG_MAX_ABRST_MASK			0x3FF
#define DMA_CFG_MAX_ABRST_SHIFT			20

#define DMA_CFG_SRC_HS_POL				0x0			/* Active high */
#define DMA_CFG_SRC_HS_POL_MASK			0x1
#define DMA_CFG_SRC_HS_POL_SHIFT		19

#define DMA_CFG_DST_HS_POL				0x0			/* Active high */
#define DMA_CFG_DST_HS_POL_MASK			0x1
#define DMA_CFG_DST_HS_POL_SHIFT		18

#define DMA_CFG_LOCK_B					0x0			/* No Locked DMA Transfers */
#define DMA_CFG_LOCK_B_MASK				0x1
#define DMA_CFG_LOCK_B_SHIFT			17

#define DMA_CFG_LOCK_CH					0x0			/* No exclusive Access to the channel */
#define DMA_CFG_LOCK_CH_MASK			0x1
#define DMA_CFG_LOCK_CH_SHIFT			16

#define DMA_CFG_LOCK_B_L				0x0
#define DMA_CFG_LOCK_B_L_MASK			0x3
#define DMA_CFG_LOCK_B_L_SHIFT			14

#define DMA_CFG_LOCK_CH_L				0x0
#define DMA_CFG_LOCK_CH_L_MASK			0x3
#define DMA_CFG_LOCK_CH_L_SHIFT			12

#define DMA_CFG_HS_SEL_SRC				0x0 		/* Hardware handshaking */
#define DMA_CFG_HS_SEL_SRC_MASK			0x1
#define DMA_CFG_HS_SEL_SRC_SHIFT		11

#define DMA_CFG_HS_SEL_DST				0x1 		/* S/w handshaking */
#define DMA_CFG_HS_SEL_DST_MASK			0x1
#define DMA_CFG_HS_SEL_DST_SHIFT		10

#define DMA_CFG_FIFO_EMPTY				0x1			/* Channel FIFO empty */
#define DMA_CFG_FIFO_EMPTY_MASK			0x1
#define DMA_CFG_FIFO_EMPTY_SHIFT		9

#define DMA_CFG_CH_SUSP					0x0			/* Not suspended */
#define DMA_CFG_CH_SUSP_MASK			0x1
#define DMA_CFG_CH_SUSP_SHIFT			8

#define DMA_CFG_CH_PRIOR				0x0			/* Should be kept equal to channel no */
#define DMA_CFG_CH_PRIOR_MASK			0x7
#define DMA_CFG_CH_PRIOR_SHIFT			5


/* DMA Config Register for Channel [32-63] */
/* 
 * Single-block Transfer -- without write-back 
 * of control and status information enabled at 
 * the end of the single-block transfer
 */

#define DMA_CFG_DEST_PER				0x0
#define DMA_CFG_DEST_PER_MASK			0xF
#define DMA_CFG_DEST_PER_SHIFT			11

#define DMA_CFG_SRC_PER					0x4
#define DMA_CFG_SRC_PER_MASK			0xF
#define DMA_CFG_SRC_PER_SHIFT			7

#define DMA_CFG_SS_UPD_EN				0x0			/* Disabled */
#define DMA_CFG_SS_UPD_EN_MASK			0x1
#define DMA_CFG_SS_UPD_EN_SHIFT			6

#define DMA_CFG_DS_UPD_EN				0x0			/* Disabled */
#define DMA_CFG_DS_UPD_EN_MASK			0x1
#define DMA_CFG_DS_UPD_EN_SHIFT			5

#define DMA_CFG_PROTCTL					0x1
#define DMA_CFG_PROTCTL_MASK			0x7
#define DMA_CFG_PROTCTL_SHIFT			2

#define DMA_CFG_FIFO_MODE				0x0			/* Single AHB Space of the specified transfer width */
#define DMA_CFG_FIFO_MODE_MASK			0x1
#define DMA_CFG_FIFO_MODE_SHIFT			1

#define DMA_CFG_FCMODE					0x0
#define DMA_CFG_FCMODE_MASK				0x1
#define DMA_CFG_FCMODE_SHIFT			0

#define DMA_XFER_DLEN					16

#endif /* _ASM_ARCH_DMA_H */

