/**************************************************************************//**
 * @file     N9H20_reg.h
 * @version  V3.00
 * @brief    N9H20 series register header file
 *
 * SPDX-License-Identifier: Apache-2.0
 * @copyright (C) 2020 Nuvoton Technology Corp. All rights reserved.
*****************************************************************************/
/* linux/include/asm-arm/arch-N9H20/N9H20_reg.h
 *
 * Copyright (c) 2008 Nuvoton technology corporation
 * All rights reserved.
 *
 * 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.
 *
 * Changelog:
 *
 *   2009/10/13     CCChang add this file for nuvoton N9H20 MCU ip REG.
 */

#ifndef _N9H20_REG_H
#define _N9H20_REG_H

//#include <asm/arch/map.h>

/*
   Register map
*/
#define 		SYS_BA    		0xB0000000	/* System Manager Control */
#define   	GCR_BA			SYS_BA
#define    	CLK_BA			0xB0000200	/* Clock Controller */
#define 		SDRAM_BA	      0xB0003000	/* SDRAM Inteface Control Registers */
#define    	EDMA_BA			0xB0008000	/* EDMA Controller */
#define    	SPU_BA			0xB1000000	/* SPU Controller */
#define    	I2S_BA			0xB1001000	/* I2S Controller */
#define    	VPOST_BA  		0xB1002000	/* VPOST Controller */
#define    	VIN_BA    		0xB1003000	/* Video-In Controller */
#define    	FSC_BA    		0xB1005000	/* Frame Sync Controller */
#define    	DMAC_BA    		0xB1006000	/* DMA Control */
#define    	FMI_BA    		0xB1006800	/* Flash Memory Card Interface */
#define    	USBD_BA   		0xB1008000	/* USB Device Control */
#define    	USB_BA   		0xB1008000	/* USB Device Control */
#define    	USBH_BA   		0xB1009000	/* USB Host Control */
#define    	JPG_BA    		0xB100A000	/* JPEG Engine Control */
#define    	BLT_BA    		0xB100D000	/* BitBlt Engine Control */
#define    	AIC_BA    		0xB8000000	/* Interrupt Controller */
#define    	GPIO_BA   		0xB8001000	/* GPIO Control */
#define    	TMR_BA    		0xB8002000	/* Timer Control */
#define    	RTC_BA    		0xB8003000	/* Real Time Clock Control */
#define    	I2C_BA    		0xB8004000	/* I2C Control */
#define    	KPI_BA    			0xB8005000	/* KPI Control */
#define    	PWM_BA    		0xB8007000	/* Pulse Width Modulation (PWM) Control */
#define    	UART_BA   		0xB8008000	/* UART Control (console) */
#define    	SPI0_BA  		0xB800C000	/* Serial Interface Control 0 */
#define    	SPI1_BA  		0xB800C400	/* Serial Interface Control 1 */
#define    	ADC_BA    		0xB800E000	/* ADC Control */

// Define one bit mask
#define BIT0	0x00000001
#define BIT1	0x00000002
#define BIT2	0x00000004
#define BIT3	0x00000008
#define BIT4	0x00000010
#define BIT5	0x00000020
#define BIT6	0x00000040
#define BIT7	0x00000080
#define BIT8	0x00000100
#define BIT9	0x00000200
#define BIT10	0x00000400
#define BIT11	0x00000800
#define BIT12	0x00001000
#define BIT13	0x00002000
#define BIT14	0x00004000
#define BIT15	0x00008000
#define BIT16	0x00010000
#define BIT17	0x00020000
#define BIT18	0x00040000
#define BIT19	0x00080000
#define BIT20	0x00100000
#define BIT21	0x00200000
#define BIT22	0x00400000
#define BIT23	0x00800000
#define BIT24	0x01000000
#define BIT25	0x02000000
#define BIT26	0x04000000
#define BIT27	0x08000000
#define BIT28	0x10000000
#define BIT29	0x20000000
#define BIT30	0x40000000
#define BIT31	0x80000000

// Define bits mask
#define NVTBIT(start,end) ((0xFFFFFFFFUL >> (31 - start)) & (0xFFFFFFFFUL >>end  << end))

#define REG_CHIPID	(GCR_BA+0x00)	// R	Chip Identification Register
	#define CHIP_VER			NVTBIT(27, 24)	// Chip Version
	#define CHIP_ID			NVTBIT(23, 0)	// Chip Identification

#define REG_CHIPCFG	(GCR_BA+0x04)	// R/W	Chip Power-On Configuration Register
	#define UDFMODE			NVTBIT(27,24)	// User-Defined Power-On setting mode
	#define MAPSDR			BIT16		// Map SDRAM
	#define USBDEV			BIT7 		// USB Host Selection
	#define CLK_SRC			BIT6		// System Clock Source Selection		
	#define SDRAMSEL			NVTBIT(5, 4)	// SDRAM Type Selection
	#define COPMODE			NVTBIT(3, 0)	// Chip Operation Mode Selection

#define REG_AHBCTL	(GCR_BA+0x10)	// R/W	AHB Bus Arbitration Control Register
	#define IPACT				BIT5 		// Interrupt Active Status
	#define IPEN				BIT4 		// CPU Priority Raising Enable during Interrupt Period
	#define PRTMOD1			BIT1 		// Priority Mode Control 1
	#define PRTMOD0			BIT0 		// Priority Mode Control 0

#define REG_AHBIPRST	(GCR_BA+0x14)	// R/W	AHB IP Reset Control Resister
	#define JPGRST			BIT17 		// JPG Reset
	#define BLTRST			BIT16		// 2D Accelerator Reset	 
	//#define AESRST			BIT15 		// AES Reset
	#define FSCRST			BIT14 		// FSC Reset
	#define GE4PRST			BIT13 		// GE4P Reset
	#define GPURST			BIT12 		// GPU Reset
	#define CAPRST			BIT11 		// CAP Reset
	#define VPOSTRST			BIT10 		// VPOST Reset
	#define I2SRST			BIT9 		// I2S Reset
	#define SPURST			BIT8 		// SPU Reset
	#define UHCRST			BIT7 		// UHC Reset
	#define UDCRST			BIT6 		// UDC Reset
	#define SICRST			BIT5 		// SIC Reset	
	#define TICRST			BIT4 		// TIC Reset
	#define EDMARST			BIT3 		// EDMA Reset
	#define SRAMRST			BIT2 		// SRAM Reset
	#define SDICRST			BIT0 		// SDIC Reset
	
#define REG_APBIPRST	(GCR_BA+0x18)	// R/W	APB IP Reset Control Resister
	#define ADCRST			BIT14		// ADC Reset		
	#define SPI1RST			BIT13 		// SPI 1 Reset
	#define SPI0RST			BIT12 		// SPI 0 Reset
	#define PWMRST			BIT10 		// PWM Reset
	#define I2CRST			BIT8 		// I2C Reset		
		
	#define UART1RST			BIT7 		// UART 1 Reset
	#define UART0RST			BIT6 		// UART 0 Reset
	#define TMR1RST			BIT5 		// TMR1 Reset
	#define TMR0RST			BIT4 		// TMR0 Reset
	#define WDTRST			BIT3 		// WDT Reset
	#define RTCRST			BIT2 		// RTC Reset
	#define GPIORST			BIT1 		// RTC Reset
	#define AICRST			BIT0 		// AIC Reset
	
#define REG_MISCR	(GCR_BA+0x20)	// R/W	Miscellaneous Control Register
	#define LVR_RDY			BIT9 		// Low Voltage Reset Function Ready
	#define LVR_EN			BIT8 		// Low Voltage Reset Function Enable
	#define CPURSTON			BIT1 		// CPU always keep in reset state for TIC 
	#define CPURST		 	BIT0 		// CPU one shutte reset.
		
#define REG_SDRBIST	(GCR_BA+0x24)	// R/W	Power Management Control Register
	#define TEST_BUSY		BIT31 			// Test BUSY
	#define CON_BUSY			BIT30			// Connection Test Busy
	#define BIST_BUSY		BIT29			// BIST Test Busy
	#define TEST_FAIL			BIT28 			// Test Failed
	#define CON_FAIL			BIT27			// Connection Test Failed
	#define BIST_FAIL			BIT26 			// BIST Test Failed	

#define REG_CRBIST	(GCR_BA+0x28)	// R/W	Cache RAM BIST Control & Status Register
	#define ICV_F				BIT29		// I-Cache Valid RAM BIST Failed Flag
	#define ICT_F				BIT28		// I-Cache Tag RAM BIST Failed Flag
	#define ICD3_F			BIT27		// I-Cache Data RAM 3 BIST Failed Flag	
	#define ICD2_F			BIT26		// I-Cache Data RAM 2 BIST Failed Flag
	#define ICD1_F			BIT25		// I-Cache Data RAM 1 BIST Failed Flag
	#define ICD0_F			BIT24		// I-Cache Data RAM 0 BIST Failed Flag
	#define MMU_F			BIT23		// MMU RAM BIST Failed Flag
	#define DCDIR_F			BIT22		// D-Cache Dirty RAM BIST Failed Flag
	#define DCV_F			BIT21		// D-Cache Valid RAM BIST Failed Flag	
	#define DCT_F			BIT20		// D-Cache Tag RAM BIST Failed Flag	
	#define DCD3_F			BIT19		// D-Cache Data RAM 3 BIST Failed Flag
	#define DCD2_F			BIT18		// D-Cache Data RAM 2 BIST Failed Flag
	#define DCD1_F			BIT17		// D-Cache Data RAM 1 BIST Failed Flag
	#define DCD0_F			BIT16		// D-Cache Data RAM 0 BIST Failed Flag
	#define BISTEN			BIT15		// Cache RAM BIST Test Enable

	#define ICV_R				BIT13		// I-Cache Valid RAM BIST Running Flag
	#define ICT_R				BIT12		// I-Cache Tag RAM BIST Running Flag
	#define ICD3_R			BIT11		// I-Cache Data RAM 3 BIST Running Flag
	#define ICD2_R			BIT10		// I-Cache Data RAM 2 BIST Running Flag
	#define ICD1_R			BIT9			// I-Cache Data RAM 1 BIST Running Flag
	#define ICD0_R			BIT8			// I-Cache Data RAM 0 BIST Running Flag	
	#define MMU_R			BIT7			// MMU RAM BIST Running Flag
	#define DCDIR_R			BIT6			// D-Cache Dirty RAM BIST Running Flag
	#define DCV_R			BIT5			// D-Cache Valid RAM BIST Running Flag	
	#define DCT_R			BIT4			// D-Cache Tag RAM BIST Running Flag
	#define DCD3_R			BIT3			// D-Cache Data RAM 3 BIST Running Flag
	#define DCD2_R			BIT2			// D-Cache Data RAM 2 BIST Running Flag
	#define DCD1_R			BIT1			// D-Cache Data RAM 1 BIST Running Flag
	#define DCD0_R			BIT0			// D-Cache Data RAM 0 BIST Running Flag	

#define REG_EDSSR	(GCR_BA+0x2C)	// R/W	EDMA Service Selection Control Register
	#define CH1_RXSEL		NVTBIT(2, 0)		// EDMA Channel 1 Rx Selection
	#define CH2_RXSEL		NVTBIT(6, 4)		// EDMA Channel 2 Rx Selection
	#define CH3_RXSEL		NVTBIT(10, 8)		// EDMA Channel 3 Rx Selection
	#define CH4_RXSEL		NVTBIT(14, 12)	// EDMA Channel 4 Rx Selection
	#define CH1_TXSEL		NVTBIT(18, 16)	// EDMA Channel 1 Tx Selection
	#define CH2_TXSEL		NVTBIT(22, 20)	// EDMA Channel 2 Tx Selection
	#define CH3_TXSEL		NVTBIT(26, 24)	// EDMA Channel 3 Tx Selection
	#define CH4_TXSEL		NVTBIT(30, 28)	// EDMA Channel 4 Tx Selection
	
#define REG_MISSR	(GCR_BA+0x30)	// R/W	Miscellaneous Status Register
	#define KPI_WS			BIT31		//KPI Wake-Up Status
	#define ADC_WS			BIT30		//ADC Wake-Up Status
	#define UHC_WS			BIT29		//UHC Wake-Up Status
	#define UDC_WS			BIT28		//UDC Wake-Up Status
	#define UART_WS			BIT27		//UART Wake-Up Status
	#define SDH_WS			BIT26		//SDH Wake-Up Status
	#define RTC_WS			BIT25		//RTC Wake-Up Status
	#define GPIO_WS			BIT24		//GPIO Wake-Up Status
	#define KPI_WE			BIT23		//KPI Wake-Up Enable
	#define ADC_WE			BIT22		//ADC Wake-Up Enable
	#define UHC_WE			BIT21		//UHC Wake-Up Enable
	#define UDC_WE			BIT20		//UDC Wake-Up Enable
	#define UART_WE			BIT19		//UART Wake-Up Enable
	#define SDH_WE			BIT18		//SDH Wake-Up Enable
	#define RTC_WE			BIT17		//RTC Wake-Up Enable
	#define GPIO_WE			BIT16		//GPIO Wake-Up Enable
	#define CPU_RST			BIT4		//CPU RST
	#define WDT_RST			BIT3		//WDT RST
	#define KPI_RST			BIT2		//KPI RST
	#define LVR_RST			BIT1		//LVR RST
	#define EXT_RST			BIT0		//EXT RST

#define REG_GPAFUN	(GCR_BA+0x80)	// R/W	Multi Function Pin Control Register 0
	#define MF_GPA15			NVTBIT(31, 30)	// GPA[15] Multi Function
	#define MF_GPA14			NVTBIT(29, 28)	// GPA[14] Multi Function
	#define MF_GPA13			NVTBIT(27, 26)	// GPA[13] Multi Function	
	#define MF_GPA12			NVTBIT(25, 24)	// GPA[12] Multi Function	
	#define MF_GPA11			NVTBIT(23, 22)	// GPA[11] Multi Function
	#define MF_GPA10			NVTBIT(21, 20)	// GPA[10] Multi Function
	#define MF_GPA9			NVTBIT(19, 18)	// GPA[9] Multi Function
	#define MF_GPA8			NVTBIT(17, 16)	// GPA[8] Multi Function
	#define MF_GPA7			NVTBIT(15, 14)	// GPA[7] Multi Function 
	#define MF_GPA6			NVTBIT(13, 12)	// GPA[6] Multi Function
	#define MF_GPA5			NVTBIT(11, 10)	// GPA[5] Multi Function
	#define MF_GPA4			NVTBIT(9, 8)		// GPA[4] Multi Function
	#define MF_GPA3			NVTBIT(7, 6)		// GPA[3] Multi Function
	#define MF_GPA2			NVTBIT(5, 4)		// GPA[2] Multi Function
	#define MF_GPA1			NVTBIT(3, 2)		// GPA[1] Multi Function
	#define MF_GPA0			NVTBIT(1, 0)		// GPA[0] Multi Function

#define REG_GPBFUN	(GCR_BA+0x84)	// R/W	Multi Function Pin Control Register 0
	#define MF_GPB15			NVTBIT(31, 30)	// GPB[15] Multi Function
	#define MF_GPB14			NVTBIT(29, 28)	// GPB[14] Multi Function
	#define MF_GPB13			NVTBIT(27, 26)	// GPB[13] Multi Function	
	#define MF_GPB12			NVTBIT(25, 24)	// GPB[12] Multi Function	
	#define MF_GPB11			NVTBIT(23, 22)	// GPB[11] Multi Function
	#define MF_GPB10			NVTBIT(21, 20)	// GPB[10] Multi Function
	#define MF_GPB9			NVTBIT(19, 18)	// GPB[9] Multi Function
	#define MF_GPB8			NVTBIT(17, 16)	// GPB[8] Multi Function
	#define MF_GPB7			NVTBIT(15, 14)	// GPB[7] Multi Function 
	#define MF_GPB6			NVTBIT(13, 12)	// GPB[6] Multi Function
	#define MF_GPB5			NVTBIT(11, 10)	// GPB[5] Multi Function
	#define MF_GPB4			NVTBIT(9, 8)	// GPB[4] Multi Function
	#define MF_GPB3			NVTBIT(7, 6)	// GPB[3] Multi Function
	#define MF_GPB2			NVTBIT(5, 4)	// GPB[2] Multi Function
	#define MF_GPB1			NVTBIT(3, 2)	// GPB[1] Multi Function
	#define MF_GPB0			NVTBIT(1, 0)	// GPB[0] Multi Function

#define REG_GPCFUN	(GCR_BA+0x88)	// R/W	Multi Function Pin Control Register 0
	#define MF_GPC15			NVTBIT(31, 30)	// GPC[15] Multi Function
	#define MF_GPC14			NVTBIT(29, 28)	// GPC[14] Multi Function
	#define MF_GPC13			NVTBIT(27, 26)	// GPC[13] Multi Function	
	#define MF_GPC12			NVTBIT(25, 24)	// GPC[12] Multi Function	
	#define MF_GPC11			NVTBIT(23, 22)	// GPC[11] Multi Function
	#define MF_GPC10			NVTBIT(21, 20)	// GPC[10] Multi Function
	#define MF_GPC9			NVTBIT(19, 18)	// GPC[9] Multi Function
	#define MF_GPC8			NVTBIT(17, 16)	// GPC[8] Multi Function
	#define MF_GPC7			NVTBIT(15, 14)	// GPC[7] Multi Function 
	#define MF_GPC6			NVTBIT(13, 12)	// GPC[6] Multi Function
	#define MF_GPC5			NVTBIT(11, 10)	// GPC[5] Multi Function
	#define MF_GPC4			NVTBIT(9, 8)	// GPC[4] Multi Function
	#define MF_GPC3			NVTBIT(7, 6)	// GPC[3] Multi Function
	#define MF_GPC2			NVTBIT(5, 4)	// GPC[2] Multi Function
	#define MF_GPC1			NVTBIT(3, 2)	// GPC[1] Multi Function
	#define MF_GPC0			NVTBIT(1, 0)	// GPC[0] Multi Function
	
#define REG_GPDFUN	(GCR_BA+0x8C)	// R/W	Multi Function Pin Control Register 0
	#define MF_GPD15			NVTBIT(31, 30)	// GPD[15] Multi Function
	#define MF_GPD14			NVTBIT(29, 28)	// GPD[14] Multi Function
	#define MF_GPD13			NVTBIT(27, 26)	// GPD[13] Multi Function	
	#define MF_GPD12			NVTBIT(25, 24)	// GPD[12] Multi Function	
	#define MF_GPD11			NVTBIT(23, 22)	// GPD[11] Multi Function
	#define MF_GPD10			NVTBIT(21, 20)	// GPD[10] Multi Function
	#define MF_GPD9			NVTBIT(19, 18)	// GPD[9] Multi Function
	#define MF_GPD8			NVTBIT(17, 16)	// GPD[8] Multi Function
	#define MF_GPD7			NVTBIT(15, 14)	// GPD[7] Multi Function 
	#define MF_GPD6			NVTBIT(13, 12)	// GPD[6] Multi Function
	#define MF_GPD5			NVTBIT(11, 10)	// GPD[5] Multi Function
	#define MF_GPD4			NVTBIT(9, 8)	// GPD[4] Multi Function
	#define MF_GPD3			NVTBIT(7, 6)	// GPD[3] Multi Function
	#define MF_GPD2			NVTBIT(5, 4)	// GPD[2] Multi Function
	#define MF_GPD1			NVTBIT(3, 2)	// GPD[1] Multi Function
	#define MF_GPD0			NVTBIT(1, 0)	// GPD[0] Multi Function

#define REG_GPEFUN	(GCR_BA+0x90)	// R/W	Multi Function Pin Control Register 0
	#define MF_GPE15			NVTBIT(31, 30)	// GPE[15] Multi Function
	#define MF_GPE14			NVTBIT(29, 28)	// GPE[14] Multi Function
	#define MF_GPE13			NVTBIT(27, 26)	// GPE[13] Multi Function	
	#define MF_GPE12			NVTBIT(25, 24)	// GPE[12] Multi Function	
	#define MF_GPE11			NVTBIT(23, 22)	// GPE[11] Multi Function
	#define MF_GPE10			NVTBIT(21, 20)	// GPE[10] Multi Function
	#define MF_GPE9			NVTBIT(19, 18)	// GPE[9] Multi Function
	#define MF_GPE8			NVTBIT(17, 16)	// GPE[8] Multi Function
	#define MF_GPE7			NVTBIT(15, 14)	// GPE[7] Multi Function 
	#define MF_GPE6			NVTBIT(13, 12)	// GPE[6] Multi Function
	#define MF_GPE5			NVTBIT(11, 10)	// GPE[5] Multi Function
	#define MF_GPE4			NVTBIT(9, 8)		// GPE[4] Multi Function
	#define MF_GPE3			NVTBIT(7, 6)		// GPE[3] Multi Function
	#define MF_GPE2			NVTBIT(5, 4)		// GPE[2] Multi Function
	#define MF_GPE1			NVTBIT(3, 2)		// GPE[1] Multi Function
	#define MF_GPE0			NVTBIT(1, 0)		// GPE[0] Multi Function

#define REG_MISFUN	(GCR_BA+0x94)	// R/W	Miscellaneous Multi Function Control Register
	#define MF_NCS0			NVTBIT(5, 4)		// MF_NCS0_ Multi Function
	#define MF_EWAIT			NVTBIT(3, 2)		// MF_EWAIT_ Multi Function		
	#define MF_ECS1			NVTBIT(1, 0)		// MF_ECS1_ Multi Function		
	
#define REG_MISCPCR	(GCR_BA+0xA0)	// R/W	Miscellaneous Pin Control Register
	#define SL_MD			BIT7				// MD Pin Slew Rate Control
	#define SL_MA			BIT6				// MA Pin Slew Rate Control	
	#define SL_MCTL			BIT5				// Memory I/F Control Pin Slew Rate Control		
	#define SL_MCLK			BIT4				// MCLK Pin Rate Control
	#define DS_MD			BIT3				// MD Pins Driving Strength Control	
	#define DS_MA			BIT2				// MA Pins Driving Strength Control	
	#define DS_MCTL			BIT1				// MCTL Pins Driving Strength Control	
	#define DS_MCLK			BIT0				// MCLK Pins Driving Strength Control			

/*
	Clock controller Registers
*/
#define REG_PWRCON	(CLK_BA+0x00)	// R/W	System Power Down Control Register	
	#define PRE_SCALAR		NVTBIT(23, 8)		// Pre-Scalar counter
	#define UP2HCLK3X		BIT5				// Ratio of CPU to HCLK
	#define SEN_OFF_ST		BIT4				// Sensor clock level if clock off state
	#define INT_EN			BIT3				// Power On Interrupt Enable
	#define INTSTS			BIT2				// Power Down interrupt status
	#define XIN_CTL			BIT1				// Crystal pre-divide control for Wake-up from power down mode
	#define XTAL_EN			BIT0				// Crystal (Power Down) Control
	
#define REG_AHBCLK	(CLK_BA+0x04)	// R/W�@AHB Clock Enable Control Register
	#define ADO_CKE			BIT30			// Audio DAC Engine Clock Enable Control0 = Disable1 = Enable
	#define SEN_CKE			BIT29			// Sensor Interface Clock Enable Control0 = Disable1 = Enable
	#define CAP_CKE			BIT28			// Capture Clock Enable Control (Also is Capture engine clock enable control)0 = Disable1 = Enable
	#define VPOST_CKE		BIT27			// VPOST Clock Enable Control (Also is VPOST engine clock enable control)0 = Disable1 = Enable
	#define I2S_CKE			BIT26			// I2S Controller Clock Enable Control0 = Disable1 = Enable
	#define SPU_CKE			BIT25			// SPU Clock Enable Control0 = Disable1 = Enable
	#define HCLK4_CKE		BIT24			// HCLK4 Clock Enable Control0 = Disable1 = Enable
	#define SD_CKE			BIT23			// SD Card Controller Engine Clock Enable Control0 = Disable1 = ENable
	#define NAND_CKE			BIT22			// NAND Controller Clock Enable Control0 = Disable1 = ENable
	#define SIC_CKE			BIT21			// SIC Clock Enable Control0 = Disable1 = ENable
	#define GPU_CKE			BIT20			// Graphic Processing Unit Clock Enable Control0 = Disable1 = ENable
	#define GE4P_CKE			BIT19			// GE4P Clock Enable Control0 = Disable1 = ENable
	#define USBD_CKE			BIT18			// USB Device Clock Enable Control0 = Disable1 = Enable
	#define USBH_CKE			BIT17			// USB Host Controller Clock Enable Control0 = Disable1 = Enable
	#define HCLK3_CKE		BIT16			// HCLK3 Clock Enable Control.0 = Disable1 = Enable
	#define DES_CKE			BIT15			// DES Codec Clock Enable Control
	#define EDMA4_CKE		BIT14			// EDMA Controller Channel 4 Clock Enable Control
	#define EDMA3_CKE		BIT13			// EDMA Controller Channel 4 Clock Enable Control
	#define EDMA2_CKE		BIT12			// EDMA Controller Channel 4 Clock Enable Control
	#define EDMA1_CKE		BIT11			// EDMA Controller Channel 4 Clock Enable Control
	#define EDMA0_CKE		BIT10			// EDMA Controller Channel 4 Clock Enable Control			
	#define EBI_CKE		 	BIT9				// EBI	Clock Enable Control0 = Disable1 = Enable
	#define HCLK1_CKE		BIT8				// HCLK1 Clock Enable Control.0 = Disable1 = Enable
	#define JPG_CKE			BIT7				// JPEG Clock Enable	
	#define FSC_CKE			BIT6				// FSC Clock Enable
	#define BLT_CKE		    	BIT5				// GE2D Clock Enable Control0 = Disable1 = Enable
	#define DRAM_CKE			BIT4				// SDRAM and SDRAM Controller Clock Enable Control.0 = Disable1 = Enable
	#define SRAM_CKE			BIT3				// SRAM Controller Clock Enable Control.0 = Disable1 = Enable
	#define HCLK_CKE			BIT2				// HCLK Clock Enable Control. (This clock is used for DRAM controller, SRAM controller and AHB-to-AHB bridge)0 = Disable1 = Enable
	#define APBCLK_CKE		BIT1				// APB Clock Enable Control.0 = Disable1 = Enable
	#define CPU_CKE	 		BIT0				// CPU Clock Enable Control

#define REG_APBCLK	(CLK_BA+0x08)	// R/W�@APB Clock Enable Control Register
	#define KPI_CKE			BIT25 					// KPI Clock Enable Control
	#define	TIC_CKE			BIT24 			// TIC Clock Enable
	#define WDCLK_CKE		BIT15			// Watch Dog Clock Enable Control (Also is Watch Dog engine clock enable control)
	#define TMR1_CKE			BIT9				// Timer1 Clock Enable Control0 = Disable1 = Enable
	#define TMR0_CKE			BIT8				// Timer0 Clock Enable Control0 = Disable1 = Enable
	#define SPIMS1_CKE		BIT7				// SPIM (Master Only) Clock Enable Control0 = Disable1 = Enable
	#define SPIMS0_CKE		BIT6				// SPIMS (Master / Slave) Clock Enable Control0 = Disable1 = Enable
	#define PWM_CKE			BIT5				// PWM Clock Enable Control0 = Disable1 = Enable
	#define UART1_CKE		BIT4				// UART1 Clock Enable Control0 = Disable1 = Enable
	#define UART0_CKE		BIT3				// UART0 Clock Enable Control0 = Disable1 = Enable		
	#define RTC_CKE			BIT2				// RTC Clock Enable Control (NOT X32K clock enable control)0 = Disable1 = Enable
	#define I2C_CKE			BIT1				// I2C Clock Enable Control0 = Disable1 = Enable
	#define ADC_CKE			BIT0				// ADC Clock Enable Control (Also is ADC engine clock enable control)0 = Disable1 = Enable

#define REG_CLKDIV0	(CLK_BA+0x0C)	// R/W�@Clock Divider Register0
	#define SENSOR_N1		NVTBIT(27, 24)	// Sensor clock divide number from sensor clock source
	#define KPI_N1			NVTBIT(23, 21)			// KPI Engine Clock Divider Bits [6:4]
	#define SENSOR_S			NVTBIT(20, 19)	// Sensor clock source select 00 = XIN. 01 = X32K. 10 = APLL. 11 = UPLL
	#define SENSOR_N0		NVTBIT(18, 16)	// Sensor clock pre-divider number from Sensor clock source if Sensor clock source select is APLL or UPLL
	#define KPI_N0			NVTBIT(15, 12)			// KPI Engine Clock Divider Bits [3:0]
	#define SYSTEM_N1		NVTBIT(11, 8)		// SYSTEM clock divide number from system clock source
	#define KPI_S			BIT5						// KPI Engine Clock Source Selection
	#define SYSTEM_S			NVTBIT(4, 3)		// System clock source select 00 = XIN. 01 = X32K. 10 = APLL. 11 = UPLL
	#define SYSTEM_N0			NVTBIT(2, 0)	// SYSTEM clock pre-divider number from system clock source if System clock source select is APLL or UPLL

#define REG_CLKDIV1	(CLK_BA+0x10)	// R/W�@Clock Divider Register1
	#define ADO_N1			NVTBIT(31, 24)	// Audio DAC engine clock divide number from Audio DAC engine clock source
	#define ADO_S				NVTBIT(20, 19)	// Audio DAC engine clock source select 00 = XIN. 01 = X32K. 10 = APLL. 11 = UPLL
	#define ADO_N0			NVTBIT(18, 16)	// Audio DAC engine clock pre-divide number
	#define VPOST_N1			NVTBIT(15, 8)		// VPOST engine clock divide number from VPOST engine clock source
	#define VPOST_S			NVTBIT(4, 3)		// VPOST engine clock source select 00 = XIN. 01 = X32K. 10 = APLL. 11 = UPLL
	#define VPOST_N0			NVTBIT(2, 0)		// VPOST engine clock pre-divide number

#define REG_CLKDIV2	(CLK_BA+0x14)	// R/W�@Clock Divider Register2
	#define SD_N1			NVTBIT(31, 24)	// SD engine clock divide number from SD engine clock source
	#define SD_S				NVTBIT(20, 19)	// SD engine clock source select  00 = XIN. 01 = X32K. 10 = APLL. 11 = UPLL
	#define SD_N0			NVTBIT(18, 16)	// SD engine clock pre-divide number
	#define USB_N1			NVTBIT(11, 8)		// USB engine clock divide number from USB engine clock source
	#define USB_S			NVTBIT(4, 3)		// USB engine clock source select 00 = XIN. 01 = X32K. 10 = APLL. 11 = UPLL
	#define USB_N0			NVTBIT(2, 0)		// USB engine clock Pre-divide number	

#define REG_CLKDIV3	(CLK_BA+0x18)	// R/W�@Clock Divider Register3
	#define ADC_N1			NVTBIT(31, 24) 	// ADC engine clock divide number from ADC engine clock source
	#define ADC_S			NVTBIT(20, 19) 	// ADC engine clock source select 00 = XIN. 01 = X32K. 10 = APLL. 11 = UPLL
	#define ADC_N0			NVTBIT(18, 16) 	// ADC engine clock pre-divide number from ADC engine clock source
	#define UART1_N1			NVTBIT(15, 13) 	// UART1 engine clock divide number from UART1 engine clock source
	#define UART1_S			NVTBIT(12, 11)	// UART1 engine clock source select 00 = XIN. 01 = X32K. 10 = APLL. 11 = UPLL
	#define UART1_N0			NVTBIT(10, 8)  	// UART1 engine clock pre-divide number from UART1 engine clock source
	#define UART0_N1			NVTBIT(7, 5) 		// UART0 engine clock divide number from UART1 engine clock source
	#define UART0_S			NVTBIT(4, 3) 		// UART0 engine clock source select 00 = XIN. 01 = X32K. 10 = APLL. 11 = UPLL
	#define UART0_N0			NVTBIT(2, 0)   	// UART0 engine clock pre-divide number from UART1 engine clock source

#define REG_CLKDIV4	(CLK_BA+0x1C)	// R/W�@Clock Divider Register4
	#define JPG_N				NVTBIT(26, 24)	// JPG 	engine clock divide number from HCLK3
	#define GPIO_N			NVTBIT(23, 17)	// GPIO engine clock divide number from GPIO engine clock source
	#define GPIO_S			BIT16 			// GPIO engine clock source select0 = XIN1 = X32K
	#define CAP_N			NVTBIT(14, 12)	// Capture engine clock divide number from HCLK4 clock.Engine Clock frequency = HCLK4 / (CAP_N + 1)
	#define APB_N			NVTBIT(11, 8) 	// APB clock divide number from HCLK1 clock. The HCLK1 clock frequency is the lower of system clock divided by 2 or the CPU clockThe APB clock frequency = (HCLK1 frequency) / (APB_N + 1)
	#define HCLK234_N		NVTBIT(7, 04)		// HCLK2, HCLK3 and HCLK4 clock divide number from HCLK clock. The HCLK clock frequency is the system clock frequency divided by two.The HCLK2,3,4 clock frequency = (HCLK frequency) / (HCLK234_N + 1)
	#define CPU_N			NVTBIT(3, 0)		// CPU clock divide number from System clock.The CPU clock frequency = (System frequency) / (CPU_N + 1)

#define REG_APLLCON	(CLK_BA+0x20)	// R/W�@APLL Control Register 
#define REG_UPLLCON	(CLK_BA+0x24)	// R/W�@UPLL Control Register 
	#define OE				BIT18			// PLL OE (FOUT enable) pin Control
	#define BP				BIT17			// PLL Bypass Control
	#define PD				BIT16			// Power Down Mode	
	#define OUT_DV			NVTBIT(15,14)	// PLL Output Divider Control Pins (PLL_OD[1:0])
	#define IN_DV				NVTBIT(13,9)		// PLL Input Divider Control Pins (PLL_R[4:0])
	#define FB_DV			NVTBIT(8,0)		// PLL Feedback Divider Control Pins (PLL_F[6:0])	
#define REG_CLK_TREG	(CLK_BA+0x30)

/*
	SDRAM controller registers	
*/
#define REG_SDOPM 	(SDRAM_BA + 0x00)	// R/W	SDRAM Controller Operation Mode Control Register
		#define RD2WR_CTL	BIT20			// Read-To-Write Turn Around Control
		#define OEDELAY		BIT19			// Output Enable Delay Half MCLK
		#define LOWFREQ		BIT18			// Low Frequency Mode
		#define PREACTBNK     	BIT17			// Pre-Active Bank
		#define AUTOPDN       	BIT16			// Auto Power Down Mode
		#define RDBUFTH       	NVTBIT(10, 8)		// The AHB read SDRAM read buffer threshold control 
		#define SD_TYPE       	NVTBIT(6, 5)		// SDRAM Type
		#define PCHMODE      	BIT4				// SDRAM Type
		#define OPMODE        	BIT3				// Open Page Mode
		#define MCLKMODE      	BIT2				// Auto Pre-Charge Mode
		#define DRAM_EN      	BIT1				// SDRAM Controller Enable
		
#define REG_SDCMD 	(SDRAM_BA + 0x04)	// R/W	SDRAM Command Register
		#define AUTOEXSELFREF	BIT5			// Auto Exit Self-Refresh
		#define SELF_REF       	BIT4				// Self-Refresh Command
		#define REF_CMD       	BIT3				// Auto Refresh Command
		#define PALL_CMD       	BIT2				// Pre-Charge All Bank Command
		#define CKE_H           	BIT1    			// CKE High
		#define INITSTATE		BIT0				// Initial State
#define REG_SDREF 	(SDRAM_BA + 0x08)	// R/W	SDRAM Controller Refresh Control Register
		#define REF_EN		BIT15			// Refresh Period Counter Enable
		#define REFRATE		NVTBIT(14, 0)		// Refresh Count Value
#define REG_SDSIZE0	(SDRAM_BA + 0x10)	// R/W	SDRAM 0 Size Register
#define REG_SDSIZE1	(SDRAM_BA + 0x14)	// R/W	SDRAM 0 Size Register
		#define BASADDR		NVTBIT(28, 21) 	// Base Address
		#define BUSWD		BIT3				// SDRAM Data Bus width
		#define DRAMSIZE		NVTBIT(2, 0)		// Size of SDRAM Device

#define REG_SDMR		(SDRAM_BA + 0x18)	// R/W	SDRAM Mode Register
		#define SDMR_CONFIGURE	NVTBIT(17, 7) // SDRAM Dependent Configuration
		#define LATENCY			NVTBIT(6, 4) 	// CAS Latency
		#define BRSTTYPE			BIT3				// Burst Type
		#define BRSTLENGTH		NVTBIT(2, 0) 	// Burst Length
#define REG_SDEMR	(SDRAM_BA + 0x1C)	// R/W	SDRAM Extended Mode Register
		#define SDEMR_CONFIGURE	NVTBIT(17, 2) // SDRAM Dependent Configuration
		#define DRVSTRENGTH	BIT1 			// Output Drive Strength
		#define DLLEN			BIT0				// DLL Enable
#define REG_SDEMR2	(SDRAM_BA + 0x20)	// R/W	SDRAM Extended Mode Register 2
		#define SDEMR2_MR_DEF		NVTBIT(17, 15) 	// Mode Register Definition
		#define SDEMR2_CONFIGURE		NVTBIT(13, 0)		// SDRAM Dependent Configuration
#define REG_SDEMR3		(SDRAM_BA+ 0x24)// R/W	SDRAM Extended Mode Register 3
		#define SDEMR3_MR_DEF		NVTBIT(17, 15) 	// Mode Register Definition
		#define SDEMR3_CONFIGURE		NVTBIT(13, 0)	  	// SDRAM Dependent Configuration
#define REG_SDTIME		(SDRAM_BA + 0x28)	// R/W	SDRAM Timing Control Register
		#define TWTR				NVTBIT(30, 29) 		// Internal Write to Read Command Delay
		#define TRRD				NVTBIT(28, 27) 		// Active Bank a to Active Bank b Command Delay
		#define TRC				NVTBIT(26, 22) 		// Active to Active Command Delay
		#define TXSR				NVTBIT(21, 17) 		// Exit SELF REFRESH to ACTIVE Command Delay
		#define TRFC				NVTBIT(16, 12) 		// AUTO REFRESH Period
		#define TRAS				NVTBIT(11, 8) 		// ACTIVE to PRECHARGE Command Delay
		#define TRCD				NVTBIT(7, 5) 			// Active to READ or WRITE Delay
		#define TRP				NVTBIT(4, 2) 			// PRECHARGE Command Period
		#define TWR 				NVTBIT(1, 0) 			// WRITE Recovery Time
#define REG_DQSODS		(SDRAM_BA + 0x30)	// R/W	DQS Output Delay Selection Register
		#define DQSINVEN			BIT13 				// DQS Invert Enable
		#define DQS1_ODS			NVTBIT(12, 8) 		// DQS1 Output Delay Selection
		#define DQS0_ODS			NVTBIT(4, 0) 			// DQS0 Output Delay Selection
#define REG_CKDQSDS		(SDRAM_BA + 0x34)	// R/W	Clock and DQS Delay Selection Register
		#define DQS1_DS1			NVTBIT(23, 20) 		// DQS1 Input Delay Selection 1
		#define DQS1_DS0			NVTBIT(19, 16) 		// DQS1 Input Delay Selection 0
		#define DQS0_DS1			NVTBIT(15, 12) 		// DQS0 Input Delay Selection 1
		#define DQS0_DS0			NVTBIT(11, 8) 		// DQS0 Input Delay Selection 0
		#define DCLK_DS			NVTBIT(7, 4) 			// Data Clock Delay Selection 
		#define DCLKSRCSEL		BIT3 				// Data Clock Source Selection	
		#define MCLK_ODS		NVTBIT(2, 0) 			// MCLK Output Delay Selection	
#define REG_TESTCR		(SDRAM_BA + 0x40)	// R/W	SDRAM test control register
		#define STATUS_CLR		BIT31 				// Test Status Clear
		#define TEST_EN			BIT30				// Connection Test Enable
		#define BIST_EN			BIT29 				// SDRAM BIST Enable
		#define MARCH_C			BIT28				// MARCH_C Algorithm Used
		#define MAX_ADDR		NVTBIT(26, 0) 		// Maximum Test Address
#define REG_TSTATUS		(SDRAM_BA + 0x44)	// R	SDRAM test status register
		#define TEST_BUSY		BIT31 				// Test BUSY
		#define CON_BUSY		BIT30				// Connection Test Busy
		#define BIST_BUSY		BIT29				// BIST Test Busy
		#define TEST_FAIL			BIT28 				// Test Failed
		#define CON_FAIL			BIT27				// Connection Test Failed
		#define BIST_FAIL			BIT26 				// BIST Test Failed	
#define REG_TFDATA		(SDRAM_BA+ 0x48)	// R	SDRAM test fail data
#define REG_TGDATA		(SDRAM_BA + 0x4C)	// R	SDRAM test Gold data
		#define TGDATA			NVTBIT(31, 0) 		// Test Gold data

/* Timer Registers */
//#define TMR_BA		N9H20_VA_TIMER	/* Timer */
#define REG_TCSR0	(TMR_BA+0x00)  /* Timer Control and Status Register 0 */
#define REG_TCSR1	(TMR_BA+0x04)  /* Timer Control and Status Register 1 */
#define REG_TICR0		(TMR_BA+0x08)  /* Timer Initial Control Register 0 */
#define REG_TICR1		(TMR_BA+0x0C)  /* Timer Initial Control Register 1 */
#define REG_TDR0		(TMR_BA+0x10)  /* Timer Data Register 0 */
#define REG_TDR1		(TMR_BA+0x14)  /* Timer Data Register 1 */
#define REG_TISR		(TMR_BA+0x18)  /* Timer Interrupt Status Register */
#define REG_WTCR		(TMR_BA+0x1C)  /* Watchdog Timer Control Register */


/*
 VPOST Control Registers
*/
#define REG_LCM_LCDCCtl  	 		(VPOST_BA+0x00)  	// R/W: LCD Controller Control Register
	#define LCDCCtl_FSADDR_SEL		BIT31
	#define LCDCCtl_HAW_656			BIT30
	#define LCDCCtl_PRDB_SEL		NVTBIT(21,20)
	#define LCDCCtl_YUVBL			BIT16				// YUV big endian(0) or little endian(1)
	#define LCDCCtl_FBDS 			NVTBIT(3,1)			// Frame Buffer Data Selection
	#define LCDCCtl_LCDRUN 			BIT0				// LCD Controller Run.

#define REG_LCM_LCDCPrm   		(VPOST_BA+0x04)		// R/W: LCD Controller Parameter Register
	#define LCDCPrm_Even_Field_AL	NVTBIT(31,28)
	#define LCDCPrm_Odd_Field_AL	NVTBIT(27,24)
	#define LCDCPrm_F1_EL			NVTBIT(23,15)
	#define LCDCPrm_LCDSynTv		BIT8				// LCD timming Synch with TV
	#define LCDCPrm_SRGB_EL_SEL		NVTBIT(7,6)
	#define LCDCPrm_SRGB_OL_SEL		NVTBIT(5,4)
	#define LCDCPrm_LCDDataSel		NVTBIT(3,2)			// LCD data interface Select
	#define LCDCPrm_LCDTYPE	  		NVTBIT(1,0)			// LCD device Type Select.

#define REG_LCM_LCDCInt 		(VPOST_BA+0x08)		// R/W: LCD Controller Interrupt Register
	#define LCDCInt_MPUCPLINTEN		BIT20 				// MPU Frame Complete Enable
	#define LCDCInt_TVFIELDINTEN	BIT18				// TV Even/Odd Field Interrupt Enable.	
	#define LCDCInt_VINTEN			BIT17				// LCD VSYNC Interrupt Enable.
	#define LCDCInt_HINTEN			BIT16				// LCD HSYNC Interrupt Enable.
	#define LCDCInt_MPUCPL			BIT4				// MPU Frame Complete
	#define LCDCInt_TVFIELDINT		BIT2				// TV Odd/Even Field Interrupt.	
	#define LCDCInt_VINT			BIT1				// LCD VSYNC/RD End Interrupt.
	#define LCDCInt_HINT			BIT0				// LCD HSYNC/WR End Interrupt.

#define REG_FEADDR 			(VPOST_BA+0x0c)		// Reserved

#define REG_LCM_TCON1 			(VPOST_BA+0x10)		// R/W: Timing Control Register 1
	#define TCON1_HSPW   			NVTBIT(23,16)		// Horizontal sync pulse width determines the HSYNC pulse's high level width by counting the number of the LCD Pixel Clock.
	#define TCON1_HBPD   			NVTBIT(15,8)		// Horizontal back porch is the number of LCD Pixel Clock periods between the falling edge of HSYNC and the start of active data.
	#define TCON1_HFPD   			NVTBIT(7,0)			// Horizontal front porch is the number of LCD Pixel Clock periods between the end of active data and the rising edge of HSYNC.

#define REG_LCM_TCON2 			(VPOST_BA+0x14)		// R/W: Timing Control Register 2
	#define TCON2_VSPW				NVTBIT(23,16)		// Vertical sync pulse width determines the VSYNC pulse's high level width by counting the number of inactive lines.
	#define TCON2_VBPD				NVTBIT(15,8)		// Vertical back porch is the number of inactive lines at the start of a frame, after vertical synchronization period.
	#define TCON2_VFPD				NVTBIT(7,0)		// Vertical front porch is the number of inactive lines at the end of a frame, before vertical synchronization period.

#define REG_LCM_TCON3 			(VPOST_BA+0x18)		// R/W: Timing Control Register 3
	#define TCON3_PPL				NVTBIT(31,16)		// Pixel Per-LineThe PPL bit field specifies the number of pixels in each line or row of screen.
	#define TCON3_LPP				NVTBIT(15,0)		// Lines Per-Panel The LPP bit field specifies the number of active lines per screen.

#define REG_LCM_TCON4 			(VPOST_BA+0x1c)		// R : Timing Control Register 4
	#define TCON4_TAPN				NVTBIT(25,16)		// Horizontal Total Active Pixel Number
	#define TCON4_MVPW				NVTBIT(15,8)
	#define TCON4_MPU_FMARKP		BIT5
	#define TCON4_MPU_VSYNCP		BIT4
	#define TCON4_VSP				BIT3				// LCD VSYNC Polarity.
	#define TCON4_HSP				BIT2				// LCD HSYNC Polarity.
	#define TCON4_DEP				BIT1				// LCD VDEN Polarity.
	#define TCON4_PCLKP				BIT0				// LCD Pixel Clock Polarity.

#define REG_LCM_MPUCMD 			(VPOST_BA+0x20)		// R/W: MPU-type LCD Command Register
	#define MPUCMD_MPU_VFPIN_SEL	BIT31
	#define MPUCMD_DIS_SEL			BIT30
	#define MPUCMD_CMD_DISn			BIT29				// Select command mode or display mode
	#define MPUCMD_MPU_CS			BIT28				// Set CS pin
	#define MPUCMD_MPU_ON			BIT27				// Trig to write or read from MPU in command mode
	#define MPUCMD_BUSY				BIT26				// Command interface is busy.
	#define MPUCMD_WR_RS			BIT25				// Write/Read RS Setting.
	#define MPUCMD_MPU_RWn			BIT24				// Read Status or data.
	#define MPUCMD_MPU68			BIT23				// MPU interface selection, reserved in N9H20
	#define MPUCMD_FMARK			BIT22				// Frame Mark Detection Disable/Enable
	#define MPUCMD_MPU_SI_SEL		NVTBIT(19,16)
	#define MPUCMD_MPU_CMD			NVTBIT(15,0)			// MPU-type LCD command/parameter data, read data

#define REG_LCM_MPUTS 			(VPOST_BA+0x24)		// R/W: MPU type LCD timing setting
	#define MPUTS_CSnF2DCt			NVTBIT(31,24)		// CSn fall edge to data change clock counter
	#define MPUTS_WRnR2CSnRt		NVTBIT(23,16)		// WRn rising edge to CSn rising clock counter
	#define MPUTS_WRnLWt			NVTBIT(15, 8)		// WR low pulse clock counter	
	#define MPUTS_CSnF2WRnFt		NVTBIT( 7, 0)		// CSn falling edge to WR falling edge clock counter	

#define REG_LCM_OSD_CTL 		(VPOST_BA+0x28)		// R/W : OSD Control Register
	#define OSD_CTL_OSD_EN			BIT31
	#define OSD_CTL_OSD_FSEL		NVTBIT(27,24)
	#define OSD_CTL_OSD_TC			NVTBIT(23,0)

#define REG_LCM_OSD_SIZE 		(VPOST_BA+0x2C)		// R/W: OSD Picture Size
	#define OSD_SIZE_OSD_VSIZE		NVTBIT(25,16)
	#define OSD_SIZE_OSD_HSIZE		NVTBIT(9,0)

#define REG_LCM_OSD_SP	 		(VPOST_BA+0x30)		// R/W: OSD Start Position
	#define OSD_SP_OSD_SY			NVTBIT(25,16)
	#define OSD_SP_OSD_SX			NVTBIT(9,0)

#define REG_LCM_OSD_BEP	 		(VPOST_BA+0x34)		// R/W: OSD Bar End Position
	#define OSD_BEP_OSD_1BEY		NVTBIT(25,16)
	#define OSD_BEP_OSD_1BEX		NVTBIT(9,0)

#define REG_LCM_OSD_BO			(VPOST_BA+0x38)		// R/W: OSD Bar Offset
	#define OSD_BO_OSD_BOY			NVTBIT(25,16)
	#define OSD_BO_OSD_BOX			NVTBIT(9,0)

#define REG_LCM_CBAR	  		(VPOST_BA+0x3C)		// R/W: Color Burst Avtive Region
	#define CBAR_CTL_EQ6SEL			BIT28
	#define CBAR_CTL_HCBEPC			NVTBIT(25,16)
	#define CBAR_CTL_HCBBPC			NVTBIT(9,0)

#define REG_LCM_TVCtl			(VPOST_BA+0x40)		// R/W: TvControl Register
	#define TVCtl_TvField 			BIT31				// Tv field status (read only)
														//   	 1 = Odd field, 0 = even field
	#define TVCtl_TvCMM 			BIT16				// TV Color Modulation Method, reserved in N9H20
															//   1 = 27 MHz, 0 = 13.5 MHz 
	#define TVCtl_FBSIZE 			NVTBIT(15,14)		// Frame Buffer Size in Tv NonInterlance Mode
															//	00 = 320x240 (QVGA)
															//  01 = 640x240 (HVGA)
															//  10 = 640x480 (VGA)											
															//	11 = reserved
	#define TVCtl_LCDSrc 			NVTBIT(11,10)		// LCD image source selection
	#define TVCtl_TvSrc 			NVTBIT(9,8)			// TV image source selection
	#define TVCtl_TvLBSA 			BIT6				// Tv Line Buffer Scaling Alograthim (320->640)
	#define TVCtl_NotchE 			BIT5				// Notch Filter Enable/Disable
	#define TVCtl_Tvdac 			BIT4				// Tv DAC Enable/Disable
	#define TVCtl_TvInter 			BIT3				// Interlance or Non Interlance
	#define TVCtl_TvSys 			BIT2				// TV System Selection.
	#define TVCtl_TvColor 			BIT1				// TV Color Selection Color/Black.
	#define TVCtl_TvSleep 			BIT0				// TV Encoder Enable/Disable.

#define REG_LCM_IIRA			(VPOST_BA+0x44)		// R/W: IIR Denominator Coefficient Register
	#define IIRA_IIRA3				NVTBIT(26,18)		// IIR Denominator A3 Coefficient
	#define IIRA_IIRA2				NVTBIT(17,9)		// IIR Denominator A2 Coefficient
	#define IIRA_IIRA1				NVTBIT(8,0)			// IIR Denominator A1 Coefficient

#define REG_LCM_IIRB			(VPOST_BA+0x48)		// R/W: IIR notch filter Numberator Coefficient
	#define IIRB_IIRB3				NVTBIT(26,18)		// IIR Denominator B3 Coefficient
	#define IIRB_IIRB2				NVTBIT(17,9)		// IIR Denominator B2 Coefficient
	#define IIRB_IIRB1				NVTBIT(8,0)			// IIR Denominator B1 Coefficient

#define REG_LCM_COLORSET  		(VPOST_BA+0x4C)		// R/W: Backdraw Color Setting Register
	#define  COLORSET_Color_R		NVTBIT(23,16)		// Color R value
	#define  COLORSET_Color_G		NVTBIT(15,8)		// Color G value
	#define  COLORSET_Color_B		NVTBIT(7,0)			// Color B value

#define REG_LCM_FSADDR    		(VPOST_BA+0x50)		// R/W: Frame Buffer Start Address

#define REG_LCM_TVDisCtl  		(VPOST_BA+0x54)		// R/W: TV Display Start Control Register
	#define TVDisCtl_FFRHS			NVTBIT(31,24)
	#define TVDisCtl_LCDHB			NVTBIT(23,16)		// LCD H bland setting for Syn TV Display
	#define TVDisCtl_TVDVS			NVTBIT(15,8)		// TV Display Start Line Register
	#define TVDisCtl_TVDHS			NVTBIT(7,0)			// TV Display Start Pixel Register

#define REG_LCM_CBACtl  		(VPOST_BA+0x58)		// R/W: Color Burst Amplitude Control Register
	#define CBACtl_CBA_CB4			NVTBIT(29,24)
	#define CBACtl_CBA_CB3			NVTBIT(21,16)
	#define CBACtl_CBA_CB2			NVTBIT(13,8)
	#define CBACtl_CBA_CB1			NVTBIT(5,0)

#define REG_LCM_OSD_ADDR  		(VPOST_BA+0x5C)		// R/W: OSD Frame Buffer Start Address
#define REG_RESERVED2 	  	(VPOST_BA+0x60)		// Reserved

#define REG_LCM_TVContrast		(VPOST_BA+0x64)		// R/W: Tv contrast adjust setting register
	#define TVContrast_Cr_contrast	NVTBIT(23,16)		// Cr compoment contrast adjust
	#define TVContrast_Cb_contrast	NVTBIT(15,8)		// Cb compoment contrast adjust
	#define TVContrast_Y_contrast	NVTBIT(7,0)			// Y  compoment contrast adjust

#define REG_LCM_TVBright  		(VPOST_BA+0x68)		// R/W: Tv Bright adjust setting register
	#define TVBright_Cr_gain		NVTBIT(23,16)		// Cr compoment bright adjust
	#define TVBright_Cb_gain		NVTBIT(15,8)		// Cb compoment bright adjust
	#define TVBright_Y_bright		NVTBIT(7,0)			// Y  compoment bright adjust

#define REG_RESERVED3	  	(VPOST_BA+0x6C)		// Reserved

#define REG_LCM_LINE_STRIPE		(VPOST_BA+0x70)		// R/W : Line Stripe Offset
	#define LINE_STRIPE_F1_LSL		NVTBIT(15,0)
	
#define REG_LCM_RGBin		  	(VPOST_BA+0x74)		// RGB888 data input for RGB2YCbCr equation

#define REG_LCM_YCbCrout  		(VPOST_BA+0x78)		// YCbCr data output for RGB2YCbCr equation

#define REG_LCM_YCbCrin	  		(VPOST_BA+0x7C)		// YCbCr data input for YCbCr2RGB equation
	#define YCbCrin_Yin				NVTBIT(23,16)		// Y byte data input
	#define YCbCrin_Cbin			NVTBIT(15, 8)		// Cb byte data input
	#define YCbCrin_Crin			NVTBIT( 7, 0)		// Cr byte data input

#define REG_LCM_RGBout	  		(VPOST_BA+0x80)		// RGB data output for YCbCr2RGB equation
	#define RGBout_Rout				NVTBIT(23,16)		// R byte data output
	#define RGBout_Gout				NVTBIT(15, 8)		// G byte data output
	#define RGBout_Bout				NVTBIT( 7, 0)		// B byte data output
	
	
/*
 VideoIn Control Registers
*/
#define REG_VPECTL  		(VIN_BA + 0x00)	// R/W: Video Pre-processor Control Register
			#define VPRST		BIT24					// Video Pre-processor Reset.
			#define UPDATE 		BIT20					// Video-In Update Register at New Frame	
			#define CAPONE		BIT16					// Video-In One Shutter
			#define VPRBIST		BIT8						// Video-In One Shutter
			#define PKEN			BIT6						// Packet Output Enable
			#define PNEN			BIT5						// Planar Output Enable
			#define ADDRSW		BIT3						// Packet Buffer Address select
			#define FBMODE		BIT2						// Packet Frame Buffer Control by FSC
			#define VPEEN		BIT0						// Planar Output Enable	

#define REG_VPEPAR		(VIN_BA + 0x04)	// R/W: Video Pre-processor Parameter Register
			#define VPEBFIN		BIT28					// BIST Finish [Read Only]
			#define BFAIL			NVTBIT(27, 24)			// BIST Fail Flag [Read Only]
			#define FLDID			BIT20					// Field ID [Read Only]
			#define FLD1EN		BIT17					// Field 1 Input Enable
			#define FLD0EN		BIT16					// Field 0 Input Enable
			#define FLDDETP		BIT15					// Field Detect Position
			#define FLDDETM 		BIT14					// Field Detect Mode (By HSYNC or input FIELD PIN)
			#define FLDSWAP		BIT13					// Swap Input Field
			#define VSP			BIT10					// Sensor Vsync Polarity.
			#define HSP			BIT9						// Sensor Hsync Polarity
			#define PCLKP			BIT8						// Sensor Pixel Clock Polarity	
			#define PNFMT		BIT7						// Planar Output Format
			#define RANGE		BIT6						// Scale Input YUV CCIR601 color range to full range
			#define OUTFMT 		NVTBIT(5, 4)				// Image Data Format Output to System Memory.
			#define PDORD		NVTBIT(3, 2)				// Sensor Output Type
			#define SNRTYPE 		BIT1						// device is CCIR601 or CCIR656
			#define INFMT 		BIT0						// Sensor Output Format


#define REG_VPEINT  		(VIN_BA + 0x08)	// R/W: Video Pre-processor Interrupt  Register
			#define MDINTEN		BIT20					// Motion Detection Interrupt Enable
			#define ADDRMEN  	BIT19					// Address Match Interrupt Enable.	
			#define MEINTEN		BIT17					// System Memory Error Interrupt Enable.
			#define VINTEN		BIT16					// Video Frame End Interrupt Enable.
			#define MDINT		BIT4						// Motion Detection Output Finsish Interrupt		
			#define ADDRMINT		BIT3						// Memory Address Match Interrupt Flag.
			#define MEINT		BIT1						// System Memory Error Interrupt. If read this bit shows 1, Memory Error occurs. Write 0 to clear it.
			#define VINT			BIT0						// Video Frame End Interrupt. If read this bit shows 1, received a frame complete. Write 0 to clear it.


#define REG_VPEMD  		(VIN_BA + 0x10)	// R/W: Motion Detection  Register
			#define MDTHR	  	NVTBIT(20, 16)			// MD Differential Threshold	
			#define MDDF			NVTBIT(11, 10)			// MD Detect Frequence
			#define MDSM			BIT9						// MD Save Mode
			#define MDBS			BIT8						// MD Block Size
			#define MDEN			BIT0						// MD Enable
			
#define REG_MDADDR  		(VIN_BA + 0x14)	// R/W: Motion Detection Output Address Register
#define REG_MDYADDR  	(VIN_BA + 0x18)	// R/W: Motion Detection Output Address Register

#define REG_VPECWSP  	(VIN_BA + 0x20)	// R/W:  Cropping Window Starting Address Register
			#define CWSPV		NVTBIT(26, 16)			// Cropping Window Vertical Starting Address
			#define CWSPH		NVTBIT(11, 0)				// Cropping Window Horizontal  Starting Address

#define REG_VPECWS	 	(VIN_BA + 0x24)	// R/W:  Cropping Window Size Register
			#define CWSH			NVTBIT(26, 16)			// Cropping Image Window Height
			#define CWSW		NVTBIT(11, 0)				// Cropping Image Window Width

#define REG_VPEPKDS  		(VIN_BA + 0x28)	// R/W  : Packet Scaling Vertical/Horizontal Factor Register
#define REG_VPEPNDS 		(VIN_BA + 0x2C)	// R?W  : Planar Scaling Vertical/Horizontal Factor Register	
			#define DSVN			NVTBIT(31, 24)			// Scaling Vertical Factor N
			#define DSVM			NVTBIT(23, 16)			// Scaling Vertical Factor M
			#define DSHN			NVTBIT(15, 8)				// Scaling Horizontal Factor N
			#define DSHM			NVTBIT(7, 0)				// Scaling Horizontal Factor M

#define REG_VPEFRC  		(VIN_BA + 0x30)		// R/W  : Scaling Frame Rate Factor Register
			#define FRCN			NVTBIT(13, 8)				// Scaling Frame Rate Factor N
			#define FRCM			NVTBIT(5, 0)				// Scaling Frame Rate Factor M
		
/*
#define REG_VWIDTH  		(VIN_BA + 0x34)		// R/W  : Frame Output Pixel Straight Width Register
			#define PNOW		BIT(27, 16)					// Planar Frame Output Pixel Straight Width
			#define PKOW		BIT(11, 0)					// Packet Frame Output Pixel Straight Width
*/
#define REG_VSTRIDE 		(VIN_BA + 0x34)		// R/W  : Frame Stride Register
			#define PNSTRIDE		NVTBIT(27, 16)			// Planar Frame Stride
			#define PKSTRIDE		NVTBIT(11, 0)				// Packet Frame Stride

#define REG_VFIFO 		(VIN_BA + 0x3C)		// R/W  : FIFO threshold Register
			#define FTHP			NVTBIT(27, 24)			// Packet FIFO Threshold 
			#define PTHY			NVTBIT(19, 16)			// Planar Y FIFO Threshold 
			#define PTHU			NVTBIT(10, 8)				// Planar U FIFO Threshold 
			#define PTHV			NVTBIT(2, 0)				// Planar V FIFO Threshold 

#define REG_CMPADDR 		(VIN_BA + 0x40)		// R/W  : Current Packet System Memory Address Register
#define REG_CURADDRP 	(VIN_BA + 0x50)		// R/W  : FIFO threshold Register
#define REG_CURADDRY 	(VIN_BA + 0x54)	// R/W  : Current Planar Y System Memory Address Register
#define REG_CURADDRU 	(VIN_BA + 0x58)	// R/W  : Current Planar U System Memory Address Register
#define REG_CURADDRV 	(VIN_BA + 0x5C)	// R/W  : Current Planar V System Memory Address Register
#define REG_PACBA0 		(VIN_BA + 0x60)	// R/W  : System Memory Packet 0 Base Address Register
#define REG_PACBA1 		(VIN_BA + 0x64)	// R/W  : System Memory Packet 1 Base Address Register
#define REG_YBA0 			(VIN_BA + 0x80)	// R/W  : System Memory Planar Y Base Address Register
#define REG_UBA0 			(VIN_BA + 0x84)	// R/W  : System Memory Planar U Base Address Register
#define REG_VBA0 			(VIN_BA + 0x88)	// R/W  : System Memory Planar V Base Address Register

/*
	Frame Synchronization Controller
*/
#define REG_FSC_CTL		(FSC_BA+0x0000)	// R/W	Frame Switch Controller Control Register
			#define FSC_BLANK_SEL		BIT24		// GPU Blank Channel Selection //?? will check with NW and CST
			#define FSC_RIP_SEL			NVTBIT(13, 12)	// FSC Read IP Selection
			#define FSC_WIP_SEL			NVTBIT(9, 8)	// FSC Write IP Selection	
			#define FSC_EN       			BIT0		// Frame Swith Block Enable/Disable

#define REG_FSINT_CTL	(FSC_BA+0x0004)	// R/W	Frame Switch Interrupt Control Register 
			#define FSC1_RE_INT_EN		BIT15		// FSC1 Read Error Interrupt Enable	1'b0: disable1'b1: enable
			#define FSC1_WE_INT_EN		BIT14		// FSC1 Write Error Interrupt Enable	1'b0: disable1'b1: enable
			#define FSC1_RS_INT_EN		BIT13		// FSC1 Read Switch Interrupt Enable	
			#define FSC1_WS_INT_EN		BIT12		// FSC1 Write Switch Interrupt Enable	
			#define FSC0_RE_INT_EN		BIT11		// FSC0 Read Error Interrupt Enable	1'b0: disable1'b1: enable
			#define FSC0_WE_INT_EN		BIT10		// FSC0 Write Error Interrupt Enable	1'b0: disable1'b1: enable
			#define FSC0_RS_INT_EN		BIT9		// FSC0 Read Switch Interrupt Enable 
			#define FSC0_WS_INT_EN		BIT8		// FSC0 Write Switch Interrupt Enable 
			
			#define FSC1_RE_INT			BIT7		// Frame Switch Channel 1 Read Error InterruptIf writing IP reads error happens 
			#define FSC1_WE_INT			BIT6		// Frame Switch Channel 1 Write Error InterruptIf reading IP reads error happnes 
			#define FSC1_RS_INT			BIT5		// Frame Switch Channel 1 Read Switch InterruptTo generate interrupt when writing IP switch the Frame  
			#define FSC1_WS_INT			BIT4		// Frame Switch Channel 1 Write Switch InterruptTo generate interrupt when reading IP switch the Frame  
			#define FSC0_RE_INT			BIT3		// Frame Switch Channel 0 Read Error InterruptIf writing IP reads error happens 
			#define FSC0_WE_INT			BIT2		// Frame Switch Channel 0 Write Error InterruptIf reading IP reads error happnes 
			#define FSC0_RS_INT			BIT1		// Frame Switch Channel 0 Read Switch InterruptTo generate interrupt when writing IP switch the Frame  
			#define FSC0_WS_INT			BIT0		// Frame Switch Channel 0 Write Switch InterruptTo generate interrupt when reading IP switch the Frame  
			
#define REG_FSC0_CTL		(FSC_BA+0x0100)	// R/W	Frame Synchorize Channel 1 Control Register	0x0000_0000
#define REG_FSC1_CTL		(FSC_BA+0x0200)	// R/W	Frame Synchorize Channel 1 Control Register	0x0000_0000
			#define FSC_RST				BIT31		// Frame Synchroize Channel 1 Reset (Low Active)
			#define FSC_WIP_ABANDON		BIT30		// 	
			#define FSC_FR_SRC			BIT24		// Frame Rate Criterion
			#define FSC_RI_BA_SEL			NVTBIT(21, 20)	// FSCX Read IP Frame Base Address Selection in software mode control
			#define FSC_WI_BA_SEL		NVTBIT(17, 16)	// FSCX Write IP Frame Base Address Selection in software mode control
			//#define FSC_RIS				NVTBIT(13, 12)	// FSCX Read IP Selection
			//#define FSC_WIS			NVTBIT(9, 8)	// FSCX Write IP Selection
			#define FSC_FR				NVTBIT(7, 4)	// Frame Rate Synchorize Selection(Read/Write) for Triple Buffer
			#define FSC_FSM				NVTBIT(3, 2)	// Frame Switch Method ( 0=Double, 1=Triple)  
			#define FSC_BN				BIT1		// Frame Switch Channel 1 Buffer Number
			#define FSC_EN				BIT0		// Frame Switch Channel 1 Enable/Disable Selection
			
#define REG_FSC0_BCNT	(FSC_BA+0x0104)	// R/W	Frame Switch Channel BlankCounter	0x0000_0000
#define REG_FSC1_BCNT	(FSC_BA+0x0204)	// R/W	Frame Switch Channel BlankCounter	0x0000_0000
			#define FSCX_BCNT			NVTBIT(15, 0)	// Frame Switch Channel  Blank Counter
			
#define REG_FSC0_WBUF	(FSC_BA+0x0108)	// R	Frame Switch Write Buffer. (GPU)
#define REG_FSC0_RBUF	(FSC_BA+0x010C)	// R	Frame Switch Read Buffer. (VPOST) 
							
#define REG_FSC0_BA0		(FSC_BA+0x0110)	// R/W	Frame Switch Channel Base Address0	0x0000_0000
#define REG_FSC0_BA1		(FSC_BA+0x0114)	// R/W	Frame Switch Channel Base Address1	0x0000_0000
#define REG_FSC0_BA2		(FSC_BA+0x0118)	// R/W	Frame Switch Channel Base Address2	0x0000_0000

#define REG_FSC1_WBUF	(FSC_BA+0x0208)	// R	Frame Switch Write Buffer. (GPU)
#define REG_FSC1_RBUF	(FSC_BA+0x020C)	// R	Frame Switch Read Buffer. (VPOST) 

#define REG_FSC1_BA0		(FSC_BA+0x0210)	// R/W	Frame Switch Channel Base Address0	0x0000_0000
#define REG_FSC1_BA1		(FSC_BA+0x0214)	// R/W	Frame Switch Channel Base Address1	0x0000_0000
#define REG_FSC1_BA2		(FSC_BA+0x0218)	// R/W	Frame Switch Channel Base Address2	0x0000_0000

/*
 SIC Control Registers
*/
//#define DMAC_BA		N9H20_VA_SIC		/* SIC Control */

#define     REG_FB_0			(DMAC_BA+0x000)  /* Shared Buffer (FIFO) */

#define	REG_DMACCSR			(DMAC_BA+0x400)  /* DMAC Control and Status Register */
	#define	FMI_BUSY			BIT9			// FMI DMA transfer is in progress
	#define SG_EN				BIT3			// DMAC Scatter-gather function enable
	#define DMAC_SWRST			BIT1			// DMAC software reset enable 
	#define DMAC_EN				BIT0			// DMAC enable


#define     REG_DMACSAR	(DMAC_BA+0x408)  /* DMAC Transfer Starting Address Register */
#define     REG_DMACBCR		(DMAC_BA+0x40C)  /* DMAC Transfer Byte Count Register */
#define     REG_DMACIER		(DMAC_BA+0x410)  /* DMAC Interrupt Enable Register */
	#define	WEOT_IE				BIT1			// Wrong EOT encounterred interrupt enable
	#define TABORT_IE			BIT0			// DMA R/W target abort interrupt enable

#define     REG_DMACISR		(DMAC_BA+0x414)  /* DMAC Interrupt Status Register */
	#define	WEOT_IF				BIT1			// Wrong EOT encounterred interrupt flag
	#define TABORT_IF			BIT0			// DMA R/W target abort interrupt flag


//#define FMI_BA		(N9H20_VA_SIC+0x800)	/* Flash Memory Card Interface */
/* Flash Memory Card Interface Registers */
#define REG_FMICR				(FMI_BA+0x000)   	/* FMI Control Register */
	#define	FMI_SM_EN				BIT3				// enable FMI SM function
	#define FMI_SD_EN				BIT1				// enable FMI SD function		
	#define FMI_SWRST				BIT0				// enable FMI software reset

#define REG_FMIIER				(FMI_BA+0x004)   	/* FMI DMA Transfer Starting Address Register */
	#define	FMI_DAT_IE				BIT0				// enable DMAC READ/WRITE targe abort interrupt generation
	
#define REG_FMIISR				(FMI_BA+0x008)   	/* FMI DMA Byte Count Register */
	#define	FMI_DAT_IF				BIT0				// DMAC READ/WRITE targe abort interrupt flag register

/* Secure Digit Registers */
#define REG_SDCR				(FMI_BA+0x020)   	/* SD Control Register */
	#define	SDCR_CLK_KEEP1			BIT31				// SD-1 clock keep control
	#define	SDCR_SDPORT				NVTBIT(30,29)		// SD port select
	#define	SDCR_SDPORT_0			0					// SD-0 port selected 
	#define	SDCR_SDPORT_1			BIT29				// SD-1 port selected 	
	#define	SDCR_SDPORT_2			BIT30				// SD-2 port selected 		
	#define	SDCR_CLK_KEEP2			BIT28				// SD-1 clock keep control	
	#define	SDCR_SDNWR				NVTBIT(27,24)		// Nwr paramter for Block Write operation
	#define SDCR_BLKCNT				NVTBIT(23,16)		// Block conut to be transferred or received
	#define	SDCR_DBW				BIT15				// SD data bus width selection
	#define	SDCR_SWRST				BIT14				// enable SD software reset		
	#define	SDCR_CMD_CODE			NVTBIT(13,8)		// SD Command Code
	#define	SDCR_CLK_KEEP			BIT7				// SD Clock Enable
	#define SDCR_8CLK_OE			BIT6				// 8 Clock Cycles Output Enable
	#define SDCR_74CLK_OE			BIT5				// 74 Clock Cycle Output Enable
	#define SDCR_R2_EN				BIT4				// Response R2 Input Enable
	#define SDCR_DO_EN				BIT3				// Data Output Enable
	#define SDCR_DI_EN				BIT2				// Data Input Enable
	#define SDCR_RI_EN				BIT1				// Response Input Enable
	#define SDCR_CO_EN				BIT0				// Command Output Enable

#define REG_SDARG 				(FMI_BA+0x024)   	/* SD command argument register */

#define REG_SDIER				(FMI_BA+0x028)   	/* SD interrupt enable register */
	#define	SDIER_CDSRC				BIT30				// SD card detection source selection: SD-DAT3 or GPIO
	#define	SDIER_R1B_IEN			BIT24				// R1b interrupt enable 
	#define	SDIER_WKUP_EN			BIT14				// SDIO wake-up signal geenrating enable
	#define	SDIER_DITO_IEN			BIT13				// SD data input timeout interrupt enable
	#define	SDIER_RITO_IEN			BIT12				// SD response input timeout interrupt enable		
	#define SDIER_SDIO_IEN			BIT10				// SDIO Interrupt Status Enable (SDIO issue interrupt via DAT[1]
	#define SDIER_CD_IEN			BIT8				// CD# Interrupt Status Enable		
	#define SDIER_CRC_IEN			BIT1				// CRC-7, CRC-16 and CRC status error interrupt enable
	#define SDIER_BLKD_IEN			BIT0				// Block transfer done interrupt interrupt enable

#define REG_SDISR				(FMI_BA+0x02C)   	/* SD interrupt status register */
	#define	SDISR_R1B_IF			BIT24				// R1b interrupt flag                                         
	#define SDISR_SD_DATA1			BIT18			    // SD DAT1 pin status                                         
	#define SDISR_CD_Card			BIT16			    // CD detection pin status                                    
	#define	SDISR_DITO_IF			BIT13			    // SD data input timeout interrupt flag                       
	#define	SDISR_RITO_IF			BIT12			    // SD response input timeout interrupt flag                   
	#define	SDISR_SDIO_IF			BIT10			    // SDIO interrupt flag (SDIO issue interrupt via DAT[1]		  
	#define	SDISR_CD_IF				BIT8			    // CD# interrupt flag                                         
	#define SDISR_SD_DATA0			BIT7			    // SD DATA0 pin status                                        
	#define SDISR_CRC				NVTBIT(6,4)		    // CRC status                                                 
	#define SDISR_CRC_16			BIT3			    // CRC-16 Check Result Status                                 
	#define SDISR_CRC_7				BIT2			    // CRC-7 Check Result Status                                  
	#define	SDISR_CRC_IF			BIT1			    // CRC-7, CRC-16 and CRC status error interrupt status        
	#define	SDISR_BLKD_IF			BIT0			    // Block transfer done interrupt interrupt status             

#define REG_SDRSP0				(FMI_BA+0x030)   	/* SD receive response token register 0 */     
#define REG_SDRSP1				(FMI_BA+0x034)   	/* SD receive response token register 1 */     
#define REG_SDBLEN				(FMI_BA+0x038)   	/* SD block length register */                 
#define REG_SDTMOUT 			(FMI_BA+0x03C)   	/* SD block length register */                 
 
/* NAND-type Flash Registers */
#define     REG_SM_ECC48_ST0		(FMI_BA+0x0D4)   /* ECC Register */
#define     REG_SM_ECC48_ST1		(FMI_BA+0x0D8)   /* ECC Register */
#define     REG_BCH_ECC_BIT_ADDR0	(FMI_BA+0x220)   /* NAND Flash BCH error bit address for error bit 0-7 Register */
#define     REG_BCH_ECC_BIT_ADDR1	(FMI_BA+0x224)   /* NAND Flash BCH error bit address for error bit 8-14 Register */

// new N9H20
#define REG_SMCSR				(FMI_BA+0x0A0)   	/* NAND Flash Control and Status Register */
	#define SMCR_CS1				BIT26				// SM chip select 	
	#define SMCR_CS0				BIT25				// SM chip select 
	#define SMCR_CS					BIT25				// SM chip select 		
	#define SMCR_ECC_EN				BIT23				// SM chip select 	
	#define SMCR_BCH_TSEL 			NVTBIT(22,19)			// BCH T4/8/12/15 selection
		#define BCH_T15 				BIT22			// BCH T15 selected
		#define BCH_T12 				BIT21			// BCH T12 selected
		#define BCH_T8	 				BIT20			// BCH T8 selected
		#define BCH_T4	 				BIT19			// BCH T4 selected	
		
	#define SMCR_PSIZE 				NVTBIT(17,16)			// SM page size selection
		#define PSIZE_8K 			BIT17+BIT16			// page size 8K selected 
		#define PSIZE_4K 			BIT17				// page size 4K selected
		#define PSIZE_2K 			BIT16				// page size 2K selected
		#define PSIZE_512			0					// page size 512 selected

	#define SMCR_SRAM_INIT			BIT9				// SM RA0_RA1 initial bit (to 0xFFFF_FFFF)
	#define SMCR_ECC_3B_PROTECT		BIT8				// ECC protect redundant 3 bytes
	#define SMCR_ECC_CHK			BIT7				// ECC parity check enable bit during read page
	#define SMCR_REDUN_AUTO_WEN 	BIT4				// Redundant auto write enable		
	#define SMCR_REDUN_REN 			BIT3				// Redundant read enable		
	#define SMCR_DWR_EN 			BIT2				// DMA write data enable
	#define SMCR_DRD_EN 			BIT1				// DMA read data enable		
	#define SMCR_SM_SWRST 			BIT0				// SM software reset


#define REG_SMTCR				(FMI_BA+0x0A4)   	/* NAND Flash Timing Control Register */

#define REG_SMIER				(FMI_BA+0x0A8)   	/* NAND Flash Interrupt Control Register */
	#define	SMIER_RB1_IE			BIT11				// RB1 pin rising-edge detection interrupt enable	
	#define	SMIER_RB0_IE			BIT10				// RB0 pin rising-edge detection interrupt enable
	#define	SMIER_RB_IE				BIT10				// RB0 pin rising-edge detection interrupt enable		
	#define SMIER_ECC_FIELD_IE 		BIT2				// ECC field error check interrupt enable
	#define SMIER_DMA_IE			BIT0				// DMA RW data complete interrupr enable

#define REG_SMISR				(FMI_BA+0x0AC)   	/* NAND Flash Interrupt Status Register */
	#define	SMISR_RB1		 		BIT19				// RB1 pin status
	#define	SMISR_RB0 				BIT18				// RB0 pin status			
	#define	SMISR_RB 				BIT18				// RB pin status
	#define	SMISR_RB1_IF		 	BIT11				// RB pin rising-edge detection interrupt flag		
	#define	SMISR_RB0_IF	 		BIT10				// RB pin rising-edge detection interrupt flag
	#define SMISR_ECC_FIELD_IF 		BIT2				// ECC field error check interrupt flag
	#define SMISR_DMA_IF			BIT0				// DMA RW data complete interrupr flag


#define REG_SMCMD				(FMI_BA+0x0B0)   	/* NAND Flash Command Port Register */

#define REG_SMADDR				(FMI_BA+0x0B4)   	/* NAND Flash Address Port Register */
	#define	EOA_SM	 				BIT31				// end of SM address for last SM address
	
#define REG_SMDATA				(FMI_BA+0x0B8)   	/* NAND Flash Data Port Register */

#define REG_SMREAREA_CTL 		(FMI_BA+0x0BC)  	/* NAND Flash redundnat area control register */
	#define SMRE_MECC 				NVTBIT(31,16)		// Mask ECC parity code to NAND during Write Page Data to NAND by DMAC	
	#define	SMRE_REA128_EXT			NVTBIT(8,0)			// Redundant area enabled byte number	

#define REG_SM_ECC_ST0			(FMI_BA+0x0D0)   	/* ECC Register */                                                   
	#define ECCST_F4_ECNT			NVTBIT(28,26)		// error count of ECC for field 4
	#define ECCST_F4_STAT 			NVTBIT(25,24)		// error status of ECC for field 4		
	#define ECCST_F3_ECNT 	        NVTBIT(21,18)		// error count of ECC for field 3        
	#define ECCST_F3_STAT 	        NVTBIT(17,16)		// error status of ECC for field 3		
	#define ECCST_F2_ECNT 	        NVTBIT(13,10)		// error count of ECC for field 2        
	#define ECCST_F2_STAT 	        NVTBIT(9,8)			// error status of ECC for field 2		
	#define ECCST_F1_ECNT 	        NVTBIT(5,2)			// error count of ECC for field 1        
	#define ECCST_F1_STAT 	        NVTBIT(1,0)			// error status of ECC for field 1		

#define REG_SM_ECC_ST1		    (FMI_BA+0x0D4)   	/* ECC Register */                                                   
	#define ECCST_F8_ECNT			NVTBIT(28,26)		// error count of ECC for field 8
	#define ECCST_F8_STAT 			NVTBIT(25,24)		// error status of ECC for field 8		
	#define ECCST_F7_ECNT 	        NVTBIT(21,18)		// error count of ECC for field 7        
	#define ECCST_F7_STAT 	        NVTBIT(17,16)		// error status of ECC for field 7		
	#define ECCST_F6_ECNT 	        NVTBIT(13,10)		// error count of ECC for field 6        
	#define ECCST_F6_STAT 	        NVTBIT(9,8)			// error status of ECC for field 6		
	#define ECCST_F5_ECNT 	        NVTBIT(5,2)			// error count of ECC for field 5        
	#define ECCST_F5_STAT 	        NVTBIT(1,0)			// error status of ECC for field 5		

#define REG_SM_ECC_ST2		    (FMI_BA+0x0D8)   	/* ECC Register */                                                   
	#define ECCST_F12_ECNT			NVTBIT(28,26)		// error count of ECC for field 12
	#define ECCST_F12_STAT 			NVTBIT(25,24)		// error status of ECC for field 12	
	#define ECCST_F11_ECNT 	        NVTBIT(21,18)		// error count of ECC for field 11       
	#define ECCST_F11_STAT 	        NVTBIT(17,16)		// error status of ECC for field 11
	#define ECCST_F10_ECNT 	        NVTBIT(13,10)		// error count of ECC for field 10       
	#define ECCST_F10_STAT 	        NVTBIT(9,8)			// error status of ECC for field 10	
	#define ECCST_F9_ECNT 	        NVTBIT(5,2)			// error count of ECC for field 9        
	#define ECCST_F9_STAT 	        NVTBIT(1,0)			// error status of ECC for field 9		

#define REG_SM_ECC_ST3		    (FMI_BA+0x0DC)   	/* ECC Register */                                                   
	#define ECCST_F16_ECNT			NVTBIT(28,26)		// error count of ECC for field 16
	#define ECCST_F16_STAT 			NVTBIT(25,24)		// error status of ECC for field 16	
	#define ECCST_F15_ECNT 	        NVTBIT(21,18)		// error count of ECC for field 15       
	#define ECCST_F15_STAT 	        NVTBIT(17,16)		// error status of ECC for field 15	
	#define ECCST_F14_ECNT 	        NVTBIT(13,10)		// error count of ECC for field 14       
	#define ECCST_F14_STAT 	        NVTBIT(9,8)			// error status of ECC for field 14	
	#define ECCST_F13_ECNT 	        NVTBIT(5,2)			// error count of ECC for field 13       
	#define ECCST_F13_STAT 	        NVTBIT(1,0)			// error status of ECC for field 13	

                                                                                                                         
#define REG_BCH_ECC_ADDR0	    (FMI_BA+0x100)   	/* NAND Flash BCH error byte address for error bit 0-1 Register */   
#define REG_BCH_ECC_ADDR1	    (FMI_BA+0x104)   	/* NAND Flash BCH error byte address for error bit 2-3 Register */   
#define REG_BCH_ECC_ADDR2	    (FMI_BA+0x108)   	/* NAND Flash BCH error byte address for error bit 4-5 Register */   
#define REG_BCH_ECC_ADDR3	    (FMI_BA+0x10C)   	/* NAND Flash BCH error byte address for error bit 6-7 Register */   
#define REG_BCH_ECC_ADDR4	    (FMI_BA+0x110)   	/* NAND Flash BCH error byte address for error bit 8-9 Register */   
#define REG_BCH_ECC_ADDR5	    (FMI_BA+0x114)   	/* NAND Flash BCH error byte address for error bit 10-11 Register */ 
#define REG_BCH_ECC_ADDR6	    (FMI_BA+0x118)   	/* NAND Flash BCH error byte address for error bit 12-13 Register */ 
#define REG_BCH_ECC_ADDR7	    (FMI_BA+0x11C)   	/* NAND Flash BCH error byte address for error bit 14 Register */    
#define REG_BCH_ECC_DATA0	    (FMI_BA+0x160)   	/* NAND Flash BCH error data for error bit 0-3 Register */           
#define REG_BCH_ECC_DATA1	    (FMI_BA+0x164)   	/* NAND Flash BCH error data for error bit 4-7 Register */           
#define REG_BCH_ECC_DATA2	    (FMI_BA+0x168)   	/* NAND Flash BCH error data for error bit 8-11 Register */          
#define REG_BCH_ECC_DATA3	    (FMI_BA+0x16C)   	/* NAND Flash BCH error data for error bit 12-14 Register */         

#define REG_SMRA_0				(FMI_BA+0x200)   /* NAND Flash Redundant Area Register */
#define REG_SMRA_1		        (FMI_BA+0x204)                                           
#define REG_SMRA_2		        (FMI_BA+0x208)                                           
#define REG_SMRA_3		        (FMI_BA+0x20C)                                           
#define REG_SMRA_4		        (FMI_BA+0x210)                                           
#define REG_SMRA_5		        (FMI_BA+0x214)                                           
#define REG_SMRA_6		        (FMI_BA+0x218)                                           
#define REG_SMRA_7		        (FMI_BA+0x21C)                                           
#define REG_SMRA_8		        (FMI_BA+0x220)                                           
#define REG_SMRA_9		        (FMI_BA+0x224)                                           
#define REG_SMRA_10		        (FMI_BA+0x228)                                           
#define REG_SMRA_11		        (FMI_BA+0x22C)                                           
#define REG_SMRA_12		        (FMI_BA+0x230)                                           
#define REG_SMRA_13		        (FMI_BA+0x234)                                           
#define REG_SMRA_14		        (FMI_BA+0x238)                                           
#define REG_SMRA_15		        (FMI_BA+0x23C)                                           
#define REG_SMRA_16		        (FMI_BA+0x240)                                           
#define REG_SMRA_17		        (FMI_BA+0x244)                                           
#define REG_SMRA_18		        (FMI_BA+0x248)                                           
#define REG_SMRA_19		        (FMI_BA+0x24C)                                           
#define REG_SMRA_20		        (FMI_BA+0x250)                                           
#define REG_SMRA_21		        (FMI_BA+0x254)                                           
#define REG_SMRA_22		        (FMI_BA+0x258)                                           
#define REG_SMRA_23		        (FMI_BA+0x25C)                                           
#define REG_SMRA_24		        (FMI_BA+0x260)                                           
#define REG_SMRA_25		        (FMI_BA+0x264)                                           
#define REG_SMRA_26		        (FMI_BA+0x268)                                           
#define REG_SMRA_27		        (FMI_BA+0x26C)                                           
#define REG_SMRA_28		        (FMI_BA+0x270)                                           
#define REG_SMRA_29		        (FMI_BA+0x274)                                           
#define REG_SMRA_30		        (FMI_BA+0x278)                                           
#define REG_SMRA_31		        (FMI_BA+0x27C)                                           
#define REG_SMRA_32		        (FMI_BA+0x280)                                           
#define REG_SMRA_33		        (FMI_BA+0x284)                                           
#define REG_SMRA_34		        (FMI_BA+0x288)                                           
#define REG_SMRA_35		        (FMI_BA+0x28C)                                           
#define REG_SMRA_36		        (FMI_BA+0x290)                                           
#define REG_SMRA_37		        (FMI_BA+0x294)                                           
#define REG_SMRA_38		        (FMI_BA+0x298)                                           
#define REG_SMRA_39		        (FMI_BA+0x29C)                                           
#define REG_SMRA_40		        (FMI_BA+0x2A0)                                           
#define REG_SMRA_41		        (FMI_BA+0x2A4)                                           
#define REG_SMRA_42		        (FMI_BA+0x2A8)                                           
#define REG_SMRA_43		        (FMI_BA+0x2AC)                                           
#define REG_SMRA_44		        (FMI_BA+0x2B0)                                           
#define REG_SMRA_45		        (FMI_BA+0x2B4)                                           
#define REG_SMRA_46		        (FMI_BA+0x2B8)                                           
#define REG_SMRA_47		        (FMI_BA+0x2BC)                                           
#define REG_SMRA_48		        (FMI_BA+0x2C0)                                           
#define REG_SMRA_49		        (FMI_BA+0x2C4)                                           
#define REG_SMRA_50		        (FMI_BA+0x2C8)                                           
#define REG_SMRA_51		        (FMI_BA+0x2CC)                                           
#define REG_SMRA_52		        (FMI_BA+0x2D0)                                           
#define REG_SMRA_53		        (FMI_BA+0x2D4)                                           
#define REG_SMRA_54		        (FMI_BA+0x2D8)   /* NAND Flash Redundant Area Register */



#define REG_SPU_CTRL			(SPU_BA+0x00)		// SPU control and status register
	#define SPU_SWRST				BIT16				// SPU SW reset
	#define SPU_EN					BIT0				// SPU enable/disable

#define REG_SPU_DAC_PAR			(SPU_BA+0x04)		// DAC parameter register
	#define ZERO_EN					BIT25				// Zero cross detection enable
	#define EQU_EN					BIT24				// Equalizer enable
	#define DISCHARGE_EN			BIT14				// Eenable the discharge path for output coupling capacitor	
	#define DISCHARGE_CON	 		NVTBIT(13,12)		// Control the register on the discharging path
	#define POP_CON					NVTBIT(5,4)			// Pop noise cintrol register

#define REG_SPU_DAC_VOL			(SPU_BA+0x08)		// Sub block reset control
	#define DWA_SEL					NVTBIT(31,30)		// ???
	#define ANA_PD					NVTBIT(25,16)		// Audio DAC Power Down
	#define LHPVL					NVTBIT(12,8)		// Headphone Left Channel Volume
	#define RHPVL					NVTBIT(4,0)			// Headphone Right Channel Volume

#define REG_SPU_EQGain0			(SPU_BA+0x0C)		// Equalizer bands 08 - 01 gain control
	#define Gain08					NVTBIT(31,28)		// Gain08 control 
	#define Gain07					NVTBIT(27,24)		// Gain07 control 
	#define Gain06					NVTBIT(23,20)		// Gain06 control 
	#define Gain05					NVTBIT(19,16)		// Gain05 control 
	#define Gain04					NVTBIT(15,12)		// Gain04 control 
	#define Gain03					NVTBIT(11,8)		// Gain03 control 
	#define Gain02					NVTBIT(07,4)		// Gain02 control 
	#define Gain01					NVTBIT(03,0)		// Gain01 control 

#define REG_SPU_EQGain1			(SPU_BA+0x10)		// Equalizer bands 10 - 09 and DC gain control
	#define Gaindc					NVTBIT(19,16)		// DC control 
	#define Gain10					NVTBIT(07,4)		// Gain10 control 
	#define Gain09					NVTBIT(03,0)		// Gain09 control 

#define REG_SPU_CH_EN			(SPU_BA+0x14)		// Channel enable register
	
#define REG_SPU_CH_IRQ			(SPU_BA+0x018)		// Channel iterrupt request flag register

#define REG_SPU_CH_PAUSE		(SPU_BA+0x1C)		// Channel PAUSE register

#define REG_SPU_CH_CTRL			(SPU_BA+0x20)		// Channel control register
	#define CH_NO					NVTBIT(28,24)		// Select chanel index number
	#define CH_RST					BIT8				// Channel reset register
	#define UP_IRQ					BIT7				// Interrupt for DFA update in partial update function	
	#define UP_DFA					BIT6				// DFA update in partial update function
	#define UP_PAN					BIT5				// PAN update in partial update function	
	#define UP_VOL					BIT4				// Volume update in partial update function		
	#define UP_PAUSE_ADDR			BIT3				// Pause Address update in partial update function	(only for mono/stereo PCM16 use)	
	#define FN_IRQ_EN				BIT2				// Channel function done interrupt enable
	#define CH_FN					NVTBIT(1,0)			// Channel function register
	
#define REG_SPU_S_ADDR			(SPU_BA+0x24)		// Source start (base) address register

#define REG_SPU_M_ADDR			(SPU_BA+0x28)		// Threshold address register

#define REG_SPU_E_ADDR			(SPU_BA+0x2C)		// End start address register

#define REG_SPU_TONE_PULSE		(SPU_BA+0x28)		// Tone Pulse control register
	#define TONE_P1					NVTBIT(31,16)		// Tone Pulse 1 
	#define TONE_P0					NVTBIT(15,0)		// Tone Pulse 0 
	
#define REG_SPU_TONE_AMP		(SPU_BA+0x2C)		// Tone Amplitude control register
	#define TONE_AMP1				NVTBIT(31,16) 		// Tone Amplitude 1  
	#define TONE_AMP0				NVTBIT(15,0)		// Tone Amplitude 0  

#define REG_SPU_CH_PAR_1		(SPU_BA+0x30)		// Channel parameter 1 register
	#define CH_VOL					NVTBIT(30,24) 		// Channel volume register
	#define PAN_L					NVTBIT(20,16)		// Output right channel PAN
	#define PAN_R					NVTBIT(12,8)		// Output left channel PAN
	#define SRC_TYPE				NVTBIT(2,0)			// Channel sound type

#define REG_SPU_CH_PAR_2		(SPU_BA+0x34)		// Channel parameter 2 register
	#define DFA						NVTBIT(12,0)		// DFA

#define REG_SPU_CH_EVENT		(SPU_BA+0x38)		// DMA down counter register
	#define SUB_IDX					NVTBIT(29,24)		// Sub-index of user event
	#define EVENT_IDX				NVTBIT(23,16)		// Index of user event	
	#define EV_USR_FG				BIT13				// User event interrupt flag
	#define EV_SLN_FG				BIT12				// Slient event interrupt flag	
	#define EV_LP_FG				BIT11				// Loop Start event interrupt flag		
	#define EV_PAUSE_FG				BIT11				// Pause Address interrupt flag		
	#define EV_END_FG				BIT10				// End event interrupt flag			
	#define END_FG					BIT9				// End address interrupt flag
	#define TH_FG					BIT8				// Threshold address interrupt flag	

	#define AT_CLR_EN				BIT7				// Enable Bit for auto interrupt flag clear after read event register
	#define EV_USR_EN				BIT5				// Enable Bit for User event interrupt flag
	#define EV_SLN_EN				BIT4				// Enable Bit for Slient event interrupt flag	
	#define EV_LP_EN				BIT3				// Enable Bit for Loop Start event interrupt flag		
	#define EV_PAUSE_EN				BIT3				// Enable Bit for Pause Address event interrupt flag			
	#define EV_END_EN				BIT2				// Enable Bit for End event interrupt flag			
	#define END_EN					BIT1				// Enable Bit for End address
	#define TH_EN					BIT0				// Enable Bit for Threshold address	

#define REG_SPU_CUR_ADDR		(SPU_BA+0x40)			// DMA down counter register

#define REG_SPU_LP_ADDR			(SPU_BA+0x44)			// DMA down counter register
#define REG_SPU_PA_ADDR			(SPU_BA+0x44)			// Pause Address for mono/stereo PCM16 

#define REG_SPU_P_BYTES			(SPU_BA+0x48)			// Chanel loop paly byte conuts

/* I2S Control Registers */

#define REG_I2S_ACTL_CON		(I2S_BA+0x00)		// Audio Control Register
	#define	R_DMA_IRQ_EN			BIT21				// Recording DMA Interrupt Request enable Bit
	#define P_DMA_IRQ_EN			BIT20				// Playback DMA Interrupt Request enable Bit	
	#define R_FIFO_FULL_IRQ_EN		BIT19				// Recording FIFO full Interrupt Request enable Bit		
	#define R_FIFO_EMPTY_IRQ_EN		BIT18				// Recording FIFO empty Interrupt Request enable Bit			
	#define P_FIFO_FULL_IRQ_EN		BIT17				// Playback FIFO full Interrupt Request enable Bit		
	#define P_FIFO_EMPTY_IRQ_EN		BIT16				// Playback FIFO empty Interrupt Request enable Bit			
	#define R_DMA_IRQ_SEL			NVTBIT(15,14)		// Recording DMA Interrupt Request selection Bits	
	#define P_DMA_IRQ_SEL			NVTBIT(13,12)		// Playback DMA Interrupt Request selection Bits		

	#define R_DMA_IRQ				BIT11				// Playback DMA Interrupt Request Bit
	#define P_DMA_IRQ				BIT10				// Recording DMA Interrupt Request Bit
	#define I2S_BITS_16_24			BIT9				// 16/24 bits selection
	#define FIFO_TH					BIT7				// FIFO Threshold Control Bit
	#define IRQ_DMA_CNTER_EN		BIT4				// IRQ_DMA counter function enable Bit
	#define IRQ_DMA_DATA_ZERO_EN	BIT3				// IRQ_DMA_DATA zero and sign detect enable Bit
	#define I2S_EN					BIT1				// I2S interface enable Bit	

#define	REG_I2S_ACTL_RESET		(I2S_BA+0x04)		// Sub block reset control
	#define ACTL_RESET_				BIT16				// Audio Controller Reset Control Bit
	#define RECORD_SINGLE			NVTBIT(15,14)		// Record Single/Dual Channel Select Bits
	#define PLAY_STEREO				BIT12				// Playback Single/Dual Channel Select Bits
	#define I2S_RECORD				BIT6				// I2S Record Control Bit
	#define I2S_PLAY				BIT5				// I2S Playback Control Bit
	#define DMA_CNTER_EN			BIT4				// DMA counter function enable Bit
	#define DMA_DATA_ZERO_EN		BIT3				// DMA_DATA zero and sign detect enable Bit
	#define AC_RESET				BIT1				// AC link Sub Block RESET Control Bit
	#define I2S_RESET				BIT0				// I2S Sub Block RESET Control Bit

#define	REG_I2S_ACTL_RDSTB		(I2S_BA+0x08)		// DMA record destination base address
#define REG_I2S_ACTL_RDST_LENGTH (I2S_BA+0x0C)		// DMA record destination address length
#define REG_I2S_ACTL_RDSTC		(I2S_BA+0x10)		// DMA record destination current address
#define REG_I2S_ACTL_PDSTB		(I2S_BA+0x14)		// DMA play destination base address
#define REG_I2S_ACTL_PDST_LENGTH (I2S_BA+0x18)		// DMA play destination address length
#define REG_I2S_ACTL_PDSTC		(I2S_BA+0x1C)		// DMA play destination current address

#define REG_I2S_ACTL_RSR 		(I2S_BA+0x20)		// Audio controller FIFO and DMA status register for playback
	#define R_DMA_RIA_SN			NVTBIT(7,5)			// Recording DMA inidicative address selection number Bits
	#define R_FIFO_FULL				BIT2				// Playback FIFO Full Indicatior Bit	
	#define R_FIFO_EMPTY			BIT1				// Playback FIFO Empty Indicatior Bit
	#define R_DMA_RIA_IRQ			BIT0				// Recording DMA inidicative address interrupt Request Bit

#define REG_I2S_ACTL_PSR		(I2S_BA+0x24)		// Audio controller FIFO and DMA status register for playback
	#define P_DMA_RIA_SN			NVTBIT(7,5)			// Playback DMA inidicative address selection number Bits
	#define DMA_CNTER_IRQ			BIT4				// DMA counter IRQ
	#define DMA_DATA_ZERO_IRQ		BIT3				// DMA_DATA zero IRQ
	#define P_FIFO_FULL				BIT2				// Playback FIFO Full Indicatior Bit
	#define P_FIFO_EMPTY			BIT1				// Playback FIFO Empty Indicatior Bit	
	#define P_DMA_RIA_IRQ			BIT0				// Playback DMA inidicative address interrupt Request Bit

#define REG_I2S_ACTL_I2SCON		(I2S_BA+0x28)		// I2S controll register
	#define PRS						NVTBIT(19,16)		// I2S Frequency Pre-scaler Selection Bits
//	define	MCLK_SEL1				BIT9				// MCLK clock selection when MCLK_CON is active
//	#define MCLK_CON				BIT8				// MCLK clock selection
	#define BCLK_SEL				NVTBIT(7,6)			// I2S Serial Data Clock Frequency Selection Bit
	#define FS_SEL					BIT5				// I2S Sampling Frequency Selection Bit
	#define MCLK_SEL				BIT4				// I2S MCLK Output Selection Bit
	#define I2S_FORMAT				BIT3				// I2S Format Selection Bit

#define REG_I2S_ACTL_COUNTER	(I2S_BA+0x2C)		// DMA down counter register


/*
	USB Host controller Registers
*/	
#define REG_HC_REVISION         		(USBH_BA+0x000)	// HcRevision - Revision Register                																																				
#define REG_HC_CONTROL         	 	(USBH_BA+0x004)	// HcControl  - Control Register                 																																				
#define REG_HC_CMD_STATUS       	(USBH_BA+0x008)	// HcCommandStatus - Command Status Register     																																				
#define REG_HC_INT_STATUS       	(USBH_BA+0x00C)	// HcInterruptStatus  - Interrupt Status Register																																				
#define REG_HC_INT_ENABLE       	(USBH_BA+0x010)	// HcInterruptEnable - Interrupt Enable Register 																																				
#define REG_HC_INT_DISABLE      	(USBH_BA+0x014)	// HcInterruptDisable - Interrupt Disable Registe																																				r
#define REG_HC_HCCA             		(USBH_BA+0x018)	// HcHCCA - Communication Area Register          																																				
#define REG_HC_PERIOD_CURED     	(USBH_BA+0x01C)	// HcPeriodCurrentED - Period Current ED Register																																				
#define REG_HC_CTRL_HEADED      	(USBH_BA+0x020)	// HcControlHeadED - Control Head ED Register    																																				
#define REG_HC_CTRL_CURED       	(USBH_BA+0x024)	// HcControlCurrentED - Control Current ED Regist																																				er
#define REG_HC_BULK_HEADED      	(USBH_BA+0x028)	// HcBulkHeadED - Bulk Head ED Register          																																				
#define REG_HC_BULK_CURED       	(USBH_BA+0x02C)	// HcBulkCurrentED - Bulk Current ED Register    																																				
#define REG_HC_DONE_HEAD        	(USBH_BA+0x030)	// HcBulkCurrentED - Done Head Register          																																				
#define REG_HC_FM_INTERVAL      	(USBH_BA+0x034)	// HcFmInterval - Frame Interval Register        																																				
#define REG_HC_FM_REMAINING     	(USBH_BA+0x038)	// HcFrameRemaining - Frame Remaining Register   																																				
#define REG_HC_FM_NUMBER        	(USBH_BA+0x03C)	// HcFmNumber - Frame Number Register            																																				
#define REG_HC_PERIOD_START     	(USBH_BA+0x040)	// HcPeriodicStart - Periodic Start Register     																																				
#define REG_HC_LS_THRESHOLD     	(USBH_BA+0x044)	// HcLSThreshold - Low Speed Threshold Register  																																				
#define REG_HC_RH_DESCRIPTORA   	(USBH_BA+0x048)	// HcRhDescriptorA - Root Hub Descriptor A Register
#define REG_HC_RH_DESCRIPTORB   	(USBH_BA+0x04C)	// HcRevision - Root Hub Descriptor B Register
#define REG_HC_RH_STATUS        	(USBH_BA+0x050)	// HcRhStatus - Root Hub Status Register
#define REG_HC_RH_PORT_STATUS1  (USBH_BA+0x054)	// HcRevision - Root Hub Port Status [1]
#define REG_HC_RH_PORT_STATUS2  (USBH_BA+0x058)	// HcRevision - Root Hub Port Status [2]
#define REG_HC_RH_OP_MODE          	(USBH_BA+0x204)	

/* Jpeg Control Registers */
//#define JPEG_BASE	N9H20_VA_JPEG		/* Jpeg Control */

#define JMCR (JPG_BA+0x00)				// R/W: JPEG Mode Control Register
	#define RESUMEI		BIT9				// Resume JPEG Operation for Input On-the-Fly Mode
	#define RESUMEO		BIT8				// Resume JPEG Operation for Output On-the-Fly Mode
	#define ENC_DEC		BIT7				// JPEG Encode/Decode Mode
	#define WIN_DEC		BIT6				// JPEG Window Decode Mode
	#define PRI		BIT5				// Encode Primary Image
	#define THB		BIT4				// Encode Thumbnail Image
	#define EY422		BIT3				// Encode Image Format
	#define QT_BUSY		BIT2				// Quantization-Table Busy Status (Read-Only)
	#define ENG_RST		BIT1				// Soft Reset JPEG Engine (Except JPEG Control Registers)
	#define JPG_EN		BIT0				// JPEG Engine Operation Control

#define JHEADER	(JPG_BA+0x04)			// R/W: JPEG Encode Header Control Register
	#define P_JFIF		BIT7				// Primary JPEG Bit-stream Include JFIF Header
	#define P_HTAB		BIT6				// Primary JPEG Bit-stream Include Huffman-Table
	#define P_QTAB		BIT5				// Primary JPEG Bit-stream Include Quantization-Table
	#define P_DRI		BIT4				// Primary JPEG Bit-stream Include Restart Interval
	#define T_JFIF		BIT3				// Thumbnail JPEG Bit-stream Include JFIF Header
	#define T_HTAB		BIT2				// Thumbnail JPEG Bit-stream Include Huffman-Table
	#define T_QTAB		BIT1				// Thumbnail JPEG Bit-stream Include Quantization-Table
	#define T_DRI		BIT0				// Thumbnail JPEG Bit-stream Include Restart Interval

#define JITCR	(JPG_BA+0x08)			// R/W: JPEG Image Type Control Register
	#define ARGB8888	BIT16				// ARGB8888
	#define PLANAR_ON	BIT15				// Packet On
	#define ORDER		BIT14					// Decode Packet Data Order
	#define RGB_555_565	BIT13				// RGB555 & RGB565	
	#define ROTATE		NVTBIT(12,11)			// Encode Image Rotate
	#define DYUV_MODE	NVTBIT(10,8)			// Decoded Image YUV Color Format (Read-Only)
	#define EXIF		BIT7				// Encode Quantization-Table & Huffman-Table Header Format Selection
	#define EY_ONLY		BIT6				// Encode Gray-level (Y-component Only) Image
	#define DHEND		BIT5				// Header Decode Complete Stop Enable
	#define DTHB		BIT4				// Decode Thumbnail Image Only
	#define E3QTAB		BIT3				// Numbers of Quantization-Table are Used For Encode
	#define D3QTAB		BIT2				// Numbers of Quantization-Table are Used For Decode (Read-Only)
	#define ERR_DIS		BIT1				// Decode Error Engine Abort
	#define PDHTAB		BIT0				// Programmable Huffman-Table Function For Decode
	
#define JPRIQC	(JPG_BA+0x10)			// R/W: JPEG Primary Q-Table Control Register
	#define P_QADJUST	NVTBIT(7,4)			// Primary Quantization-Table Adjustment
	#define P_QVS		NVTBIT(3,0)			// Primary Quantization-Table Scaling Control

#define JTHBQC	(JPG_BA+0x14)			// R/W: JPEG Thumbnail Q-Table Control Register
	#define T_QADJUST	NVTBIT(7,4)			// Thumbnail Quantization-Table Adjustment
	#define T_QVS		NVTBIT(3,0)			// Thumbnail Quantization-Table Scaling Control

#define JPRIWH	(JPG_BA+0x18)			// R/W: JPEG Encode Primary Width/Height Register
	#define P_HEIGHT	NVTBIT(27,16)			// Primary Encode Image Height
	#define P_WIDTH		NVTBIT(11,0)			// Primary Encode Image Width

#define JTHBWH	(JPG_BA+0x1C)			// R/W: JPEG Encode Thumbnail Width/Height Register
	#define T_HEIGHT	NVTBIT(27,16)			// Thumbnail Encode Image Height
	#define T_WIDTH		NVTBIT(11,0)			// Thumbnail Encode Image Width

#define JPRST	(JPG_BA+0x20)			// R/W:  JPEG Encode Primary Restart Interval Register
	#define P_RST		NVTBIT(7,0)				// Primary Encode Restart Interval Value
		
#define JTRST	(JPG_BA+0x24)			// R/W: JPEG Encode Thumbnail Restart Interval
	#define T_RST		NVTBIT(7,0)				// Thumbnail Encode Restart Interval Value
		
#define JDECWH	(JPG_BA+0x28)			// R:  JPEG Decode Image Width/Height Register
	#define DEC_HEIGHT	NVTBIT(31,16)			// 13-bit Bit Stream Buffer threshold 
	#define DEC_WIDTH	NVTBIT(15,0)			// 13-bit Header Offset Address

#define JINTCR	(JPG_BA+0x2C)			// R/W:  JPEG Interrupt Control and Status Register
	#define JPG_WAITI	BIT23				// JPEG Input Wait Status (Read-Only)
	#define JPG_WAITO	BIT22				// JPEG Output Wait Status (Read-Only)
	#define BAbort		BIT16				// JPEG Memory Access Error Status (Read-Only)
	#define CER_INTE	BIT15				// Un-complete Capture On-The-Fly Frame Occur Interrupt Enable
	#define DHE_INTE	BIT14				// JPEG Header Decode End Wait Interrupt Enable
	#define IPW_INTE	BIT13				// Input Wait Interrupt Enable
	#define OPW_INTE	BIT12				// Output Wait Interrupt Enable
	#define ENC_INTE	BIT11				// Encode Complete Interrupt Enable
	#define DEC_INTE	BIT10				// Decode Complete Interrupt Enable
	#define DER_INTE	BIT9				// Decode Error Interrupt Enable
	#define EER_INTE	BIT8				// Encode (On-The-Fly) Error Interrupt Enable
	#define CER_INTS	BIT7				// Un-complete Capture On-The-Fly Frame Occur Interrupt Status
	#define DHE_INTS	BIT6				// JPEG  Header Decode End Wait Interrupt Status
	#define IPW_INTS	BIT5				// Input Wait Interrupt Status
	#define OPW_INTS	BIT4				// Output Wait Interrupt Status	
	#define ENC_INTS	BIT3				// Encode Complete Interrupt Status
	#define DEC_INTS	BIT2				// Decode Complete Interrupt Status
	#define DER_INTS	BIT1				// Decode Error Interrupt Status
	#define EER_INTS	BIT0				// Encode (On-The-Fly) Error Interrupt Status
	
#define JPEG_BSBAD (JPG_BA+0x40)		// R/W:  JPEG Test Control Register
	#define BIST_ST		NVTBIT(23,16)			// Internal SRAM BIST Status (Read-Only)
	#define TEST_DOUT	NVTBIT(15,8)			// Test Data Output (Read-Only)
	#define TEST_ON		BIT7				// Test Enable
	#define BIST_ON		BIT6				// Internal SRAM BIST Mode Enable
	#define BIST_FINI	BIT5				// Internal SRAM BIST Mode Finish (Read-Only)
	#define BSBAD_BIST_FAIL	BIT4				// Internal SRAM BIST Mode Fail (Read-Only)
	#define TEST_SEL	NVTBIT(3,0)			// Test Data Selection

#define JWINDEC0 (JPG_BA+0x44)			// R/W: JPEG Window Decode Mode Control Register 0
	#define MCU_S_Y		NVTBIT(24,16)			// MCU Start Position Y For Window Decode Mode
	#define MCU_S_X		NVTBIT(8,0)			// MCU Start Position X For Window Decode Mode

#define JWINDEC1 (JPG_BA+0x48)			// R/W: JPEG Window Decode Mode Control Register 1
	#define MCU_E_Y		NVTBIT(24,16)			// MCU End Position Y For Window Decode Mode
	#define MCU_E_X		NVTBIT(8,0)			// MCU End Position X For Window Decode Mode
	
#define JWINDEC2 (JPG_BA+0x4C)			// R/W:  JPEG Window Decode Mode Control Register 2
	#define WD_WIDTH	NVTBIT(11,0))			// Image Width (Y-Stride) For Window Decode Mode
	
#define JMACR	 (JPG_BA+0x50)			// R/W: JPEG Memory Address Mode Control Register
	#define FLY_SEL		NVTBIT(29,24)			// Hardware Memory On-the-Fly Access Image Buffer-Size Selection for Encode
	#define FLY_TYPE	NVTBIT(23,22)			// 
	#define BSF_SEL		NVTBIT(17,8)			// Memory On-the-Fly Access Bitstream Buffer-Size Selection
	#define FLY_ON		BIT7				// Hardware Memory On-the-Fly Access Mode
	#define IP_SF_ON	BIT3				// Software Memory On-the-Fly Access Mode for Data Input
	#define OP_SF_ON	BIT2				// Software Memory On-the-Fly Access Mode for Data Output
	#define ENC_MODE	NVTBIT(1,0)			// JPEG Memory Address Mode Control

#define JPSCALU	(JPG_BA+0x54)			// R/W: JPEG Primary Scaling-Up Control Register
	#define JPSCALU_8X	BIT6				// Primary Image Up-Scaling For Encode
	#define A_JUMP		BIT2				// Reserve Buffer Size In JPEG Bit-stream For Software Application

			
#define JPSCALD (JPG_BA+0x58)		// R/W: JPEG Primary Scaling-Down Control Register
	#define PSX_ON		BIT15				// Primary Image Horizontal Down-Scaling For Encode/Decode
	#define PS_LPF_ON	BIT14				// Primary Image Down-Scaling Low Pass Filter For Decode
	#define PSCALX_F	NVTBIT(12,8)			// Primary Image Horizontal Down-Scaling Factor
	#define PSCALY_F	NVTBIT(5,0)			// Primary Image Vertical Down-Scaling Factor
	
#define JTSCALD	(JPG_BA+0x5C)			// R/W: JPEG Thumbnail  Scaling-Down Control Register
	#define TSX_ON		BIT15				// Thumbnail Image Horizontal Down-Scaling For Encode/Decode
	#define TSCALX_F	NVTBIT(14,8)			// Thumbnail Image Horizontal Down-Scaling Factor
	#define TSCALY_F	NVTBIT(7,0)			// Thumbnail Image Vertical Down-Scaling Factor

#define JDBCR	(JPG_BA+0x60)			// R/W: JPEG Dual-Buffer Control Register
	#define DBF_EN		BIT7				// Dual Buffering Control
	#define IP_BUF		BIT4				// Input Dual Buffer Control

#define JRESERVE (JPG_BA+0x70)			// R/W: JPEG Encode Primary Bit-stream Reserved Size Register
	#define RES_SIZE	NVTBIT(15,0)			// Primary Encode Bit-stream Reserved Size

#define JOFFSET	(JPG_BA+0x74)			// R/W: JPEG Offset Between Primary & Thumbnail Register
	#define OFFSET_SIZE	NVTBIT(23,0)		// Primary/Thumbnail Starting Address Offset Size

#define JFSTRIDE (JPG_BA+0x78)			// R/W: JPEG Encode Bit-stream Frame Stride Register
	#define F_STRIDE	NVTBIT(23,0)		// JPEG Encode Bit-stream Frame Stride

#define JYADDR0 (JPG_BA+0x7C)			// R/W: JPEG Y Component Frame Buffer-0 Starting Address Register
	#define Y_IADDR0	NVTBIT(31,0)			// JPEG Y Component Frame Buffer-0 Starting Address

#define JUADDR0 (JPG_BA+0x80)			// R/W: JPEG U Component Frame Buffer-0 Starting Address Register
	#define U_IADDR0	NVTBIT(31,0)			// JPEG U Component Frame Buffer-0 Starting Address

#define JVADDR0	(JPG_BA+0x84)			// R/W: JPEG V Component Frame Buffer-0 Starting Address Register
	#define V_IADDR0	NVTBIT(31,0)			// JPEG V Component Frame Buffer-0 Starting Address

#define JYADDR1 (JPG_BA+0x88)			// R/W: JPEG Y Component Frame Buffer-1 Starting Address Register
	#define Y_IADDR1	NVTBIT(31,0)			// JPEG Y Component Frame Buffer-1 Starting Address

#define JUADDR1 (JPG_BA+0x8C)			// R/W: JPEG U Component Frame Buffer-1 Starting Address Register
	#define U_IADDR1	NVTBIT(31,0)			// JPEG U Component Frame Buffer-1 Starting Address

#define JVADDR1 (JPG_BA+0x90)			// R/W: JPEG V Component Frame Buffer-1 Starting Address Register
	#define V_IADDR1	NVTBIT(31,0)			// JPEG V Component Frame Buffer-1 Starting Address

#define JYSTRIDE (JPG_BA+0x94)			// R/W: JPEG Y Component Frame Buffer Stride Register
	#define Y_STRIDE	NVTBIT(11,0)			// JPEG Y Component Frame Buffer Stride

#define JUSTRIDE (JPG_BA+0x98)			// R/W: JPEG U Component Frame Buffer Stride Register
	#define U_STRIDE	NVTBIT(11,0)			// JPEG U Component Frame Buffer Stride

#define JVSTRIDE (JPG_BA+0x9C)			// R/W: JPEG V Component Frame Buffer Stride Register
	#define V_STRIDE	NVTBIT(11,0)			// JPEG V Component Frame Buffer Stride

#define JIOADDR0 (JPG_BA+0xA0)			// R/W: JPEG Bit-stream Frame Buffer-0 Starting Address Register
	#define IO_IADDR0	NVTBIT(31,0)			// JPEG Bit-stream Frame Buffer-0 Starting Address

#define JIOADDR1 (JPG_BA+0xA4)			// R/W: JPEG Bit-stream Frame Buffer-1 Starting Address Register
	#define IO_IADDR1	NVTBIT(31,0)			// JPEG Bit-stream Frame Buffer-1 Starting Address

#define JPRI_SIZE (JPG_BA+0xA8)		// R  : JPEG Encode Primary Image Bit-stream Size Register
	#define PRI_SIZE	NVTBIT(23,0)			// JPEG Primary Image Encode Bit-stream Size

#define JTHB_SIZE (JPG_BA+0xAC)		// R  : JPEG Encode Thumbnail Image Bit-stream Size Register
	#define THB_SIZE	NVTBIT(15,0)			// JPEG Thumbnail Image Encode Bit-stream Size

#define JUPRAT (JPG_BA+0xB0)			// R/W: JPEG Encode Up-Scale Ratio Register
	#define S_HEIGHT	NVTBIT(29,16)			// JPEG Image Height Up-Scale Ratio
	#define S_WIDTH		NVTBIT(13,0)			// JPEG Image Width Up-Scale Ratio

#define JBSFIFO (JPG_BA+0xB4)			// R/W: JPEG Bit-stream FIFO Control Register
	#define BSFIFO_HT	NVTBIT(6,4)			// Bit-stream FIFO High-Threshold Control
	#define BSFIFO_LT	NVTBIT(2,0)			// Bit-stream FIFO Low-Threshold Control

#define JSRCH (JPG_BA+0xB8)			// R/W: JPEG Bit-stream FIFO Control Register
	#define JSRCH_JSRCH	NVTBIT(11,0)				// JPEG Encode Source Image Height
	
#define JQTAB0 (JPG_BA+0x100)		// R/W: JPEG Quantization-Table 0 Register
	
#define JQTAB1 (JPG_BA+0x140)		// R/W: JPEG Quantization-Table 1 Register
	
#define JQTAB2 (JPG_BA+0x180)		// R/W: JPEG Quantization-Table 2 Register
			

/* Advance Interrupt Controller (AIC) Registers */
//#define AIC_BA		N9H20_VA_IRQ		/* Interrupt Controller */
#define REG_AIC_SCR1    (AIC_BA+0x000)  
#define REG_AIC_IRSR    (AIC_BA+0x100)   /* Interrupt raw status register */
#define REG_AIC_IASR    (AIC_BA+0x104)   /* Interrupt active status register */
#define REG_AIC_ISR     (AIC_BA+0x108)   /* Interrupt status register */
#define REG_AIC_IPER    (AIC_BA+0x10C)   /* Interrupt priority encoding register */
#define REG_AIC_ISNR    (AIC_BA+0x110)   /* Interrupt source number register */
#define REG_AIC_IMR     (AIC_BA+0x114)   /* Interrupt mask register */
#define REG_AIC_OISR    (AIC_BA+0x118)   /* Output interrupt status register */
#define REG_AIC_MECR    (AIC_BA+0x120)   /* Mask enable command register */
#define REG_AIC_MDCR    (AIC_BA+0x124)   /* Mask disable command register */
#define REG_AIC_SSCR    (AIC_BA+0x128)	 /* Source set command register */
#define REG_AIC_SCCR    (AIC_BA+0x12C)   /* Source command register*/
#define REG_AIC_EOSCR   (AIC_BA+0x130)   /* End of service command register */

#define REG_UART_RBR		(UART_BA+0x00)  		/* Receive Buffer Register */
#define REG_UART_THR		(UART_BA+0x00)  		/* Transmit Holding Register */
#define REG_UART_IER		(UART_BA+0x04)  		/* Interrupt Enable Register */
	#define nDBGACK_EN		BIT31			// ICE debug mode acknowledge enable
	#define EDMA_RX_EN		BIT15			// RX EDMA Enable
	#define EDMA_TX_EN		BIT14			// TX EDMA Enable
	#define Auto_CTS_EN		BIT13			// CTS Auto Flow Control Enable
	#define Auto_RTS_EN		BIT12			// RTS Auto Flow Control Enable
	#define Time_out_EN		BIT11			// Time Out Counter Enable
	#define Wake_IEN			BIT6			// Wake up interrupt enable for INTR[wakeup]
	#define BUF_ERR_IEN		BIT5			// Buffer Error interrupt enable
	#define RTO_IEN			BIT4			// RX Time out Interrupt Enable	
	#define MS_IEN				BIT3			// MODEM Status Interrupt (Irpt_MOS) Enable	
	#define RLS_IEN			BIT2			// Receive Line Status Interrupt (Irpt_RLS) Enable
	#define THRE_IEN			BIT1			// Transmit Holding Register Empty Interrupt (Irpt_THRE) Enable
	#define RDA_IEN			BIT0			// Receive Data Available Interrupt (Irpt_RDA) Enable and


#define REG_UART_FCR		(UART_BA+0x08)  		/* FIFO Control Register */
	#define RTS_Tri_lev			NVTBIT(19,16)	// RTS Trigger Level
	#define RFITL				NVTBIT(7,4)	// RX FIFO Interrupt (Irpt_RDA) Trigger Level	
	#define TX_RST				BIT2			// TX Software Reset
	#define RX_RST			BIT1			// RX Software Reset


#define REG_UART_LCR		(UART_BA+0x0C)  		/* Line Control Register */
	#define DLAB            		BIT7			// Divider Latch Access Bit
	#define BCB             			BIT6			// Break Control Bit
	#define SPE             			BIT5			// Stick Parity Enable.										
	#define EPE             			BIT4			// Even Parity Enable
	#define PBE             			BIT3			// Parity Bit Enable
	#define NSB             			BIT2			// Number of "STOP bit"
	#define WLS             			NVTBIT(1,0)	// Word Length Select.

#define REG_UART_MCR		(UART_BA+0x10)  		/* Modem Control Register */
	#define LBME            		BIT4			// Loop-back Mode Enable
	#define OUT2           	 		BIT3			// Complement version of OUT2# (user-designated output) signal
	#define OUT1            		BIT2			// Complement version of OUT1# (user-designated output) signal
	#define RTS             			BIT1			// Complement version of RTS# (Request-To-Send) signal
	#define DTR             			BIT0			// Complement version of DTR# (Data-Terminal-Ready) signal

//#define     REG_UART_LSR	(UART_BA+0x14)  		/* Line Status Register */
#define REG_UART_MSR		(UART_BA+0x14)  		/* MODEM Status Register */
	#define DCD             			BIT7				// Complement version of Data Carrier Detect (nDCD#) input
	#define RI              			BIT6				// Complement version of ring indicator (RI#) input
	#define DSR             			BIT5				// Complement version of data set ready (DSR#) input
	#define CTS             			BIT4				// Complement version of clear to send (CTS#) input
	#define DDCD            		BIT3				// DCD# State Change
	#define TERI            			BIT2				// Tailing Edge of RI#
	#define DDSR            		BIT1				// DSR# State Change
	#define DCTS            		BIT0				// CTS# State Change

#define REG_UART_FSR		(UART_BA+0x18) 	 	/* FIFO Status Register */
	#define Tx_err_Flag      	  	BIT31			// Framing Error Indicator
	#define TE_Flag             		BIT28			// Parity Error Indicator
	#define Tx_Over_IF			BIT24			// RX overflow Error IF
	#define Tx_Full				BIT23			// Transmitter FIFO Full	
	#define Tx_Empty			BIT22			// Transmitter FIFO Empty
	#define Tx_Pointer			NVTBIT(21,16)		// TX FIFO pointer	
	#define Rx_Full				BIT15			// Receiver FIFO Full	
	#define Rx_Empty			BIT14			// Receiver FIFO Empty
	#define Rx_Pointer			NVTBIT(13,8)		// RX FIFO pointer	
	#define Rx_err_IF			BIT7			// RX Error flag
	#define BII         	    		BIT6			// Break Interrupt Indicator
	#define FEI            			BIT5			// Framing Error Indicator
	#define PEI            			BIT4			// Parity Error Indicator
	#define Rx_Over_IF			BIT0			// RX overflow Error IF
#define REG_UART_ISR		(UART_BA+0x1C)  		/* Interrupt Status Register */
	#define EDMA_RX_Flag		BIT31			// EDMA RX Mode Flag
	#define HW_Wake_INT		BIT30			// Wake up Interrupt pin status
	#define HW_Buf_Err_INT		BIT29			// Buffer Error Interrupt pin status
	#define HW_Tout_INT		BIT28			// Time out Interrupt pin status
	#define HW_Modem_INT		BIT27			// MODEM Status Interrupt pin status
	#define HW_RLS_INT		BIT26			// Receive Line Status Interrupt pin status
	#define Rx_ack_st			BIT25			// TX ack pin status
	#define Rx_req_St			BIT24			// TX req pin status	
	#define EDMA_TX_Flag		BIT23			// EDMA TX Mode Flag
	#define HW_Wake_IF		BIT22			// Wake up Flag
	#define	HW_Buf_Err_IF		BIT21			// Buffer Error Flag
	#define HW_Tout_IF			BIT20			// Time out Flag
	#define HW_Modem_IF		BIT19			// MODEM Status Flag
	#define HW_RLS_IF			BIT18			// Receive Line Status Flag
	#define Tx_ack_st			BIT17			// TX ack pin status
	#define Tx_req_St			BIT16			// TX req pin status	
	#define Soft_RX_Flag		BIT15			// Software RX Mode Flag
	#define Wake_INT			BIT14			// Wake up Interrupt pin status
	#define Buf_Err_INT			BIT13			// Buffer Error Interrupt pin status
	#define Tout_INT			BIT12			// Time out interrupt Interrupt pin status
	#define Modem_INT			BIT11			// MODEM Status Interrupt pin status
	#define RLS_INT			BIT10			// Receive Line Status Interrupt pin status
	#define THRE_INT			BIT9			// Transmit Holding Register Empty Interrupt pin status
	#define RDA_INT			BIT8			// Receive Data Available Interrupt pin status	
	#define Soft_TX_Flag		BIT7			// Software TX Mode Flag
	#define Wake_IF			BIT6			// Wake up Flag
	#define Buf_Err_IF			BIT5			// Buffer Error Flag
	#define Tout_IF				BIT4			// Time out interrupt Flag
	#define Modem_IF			BIT3			// MODEM Status Flag
	#define RLS_IF				BIT2			// Receive Line Status Flag
	#define THRE_IF			BIT1			// Transmit Holding Register Empty Flag
	#define RDA_IF				BIT0			// Receive Data Available Flag

#define REG_UART_TOR		(UART_BA+0x20)  		/* Time Out Register */
	#define TOIC				NVTBIT(6,0)			//Time Out Interrupt Comparator
#define REG_UART_BAUD		(UART_BA+0x24)  		/* Baud Rate Divider Register */
	#define DIV_X_EN			BIT29			// Divisor X Enable
	#define DIV_X_ONE			BIT28			// Divisor X equal 1
	#define Divider_X          	 	NVTBIT(27,24)		// Disisor X  
	#define BAUD_RATE_DIVISOR   NVTBIT(15,0)		// Baud Rate Divisor
	




/* SPU Control Registers */
//#define SPU_BA		N9H20_VA_SPU


/* ADC Control Registers */
//#define ADC_BA		N9H20_VA_ADC


/* GPIO Control Registers */
//#define GPIO_BA		N9H20_VA_GPIO		/* GPIO Control */
/*
#define REG_GPIOB_OMD		(GPIO_BA+0x10)
#define REG_GPIOB_PUEN		(GPIO_BA+0x14)
#define REG_GPIOB_DOUT		(GPIO_BA+0x18)
#define REG_GPIOB_PIN		(GPIO_BA+0x1C)
#define REG_DBNCECON            (GPIO-BA+0x70)
#define REG_IRQSRCGPB           (GPIO_BA+0x84)
//#define REG_IRQENGPB            (GPIO_BA+0x94)
#define REG_IRQENGPB            (GPIO_BA+0xA4)	// ycyang
//#define REG_IRQLHSEL            (GPIO_BA+0xA0)
#define REG_IRQLHSEL            (GPIO_BA+0xC0)	// ycyang
//#define REG_IRQTGSRC0           (GPIO_BA+0xB4)
#define REG_IRQTGSRC0           (GPIO_BA+0xF0)	// ycyang
#define REG_IRQTGSRC1           (GPIO_BA+0xB8)

#define IRQLHSEL	(GPIO_BA+0x00A0)  // Interrupt Latch Trigger Selection Register
*/

#define REG_GPIOA_OMD   (GPIO_BA+0x0000)   // GPIO port A bit Output mode Enable
#define REG_GPIOA_PUEN  (GPIO_BA+0x0004)	 // GPIO port A Bit Pull-up Resistor Enable
#define REG_GPIOA_DOUT  (GPIO_BA+0x0008)   // GPIO port A data output value 
#define REG_GPIOA_PIN   (GPIO_BA+0x000C)	 // GPIO port A Pin Value

#define REG_GPIOB_OMD   (GPIO_BA+0x0010)   // GPIO port B bit Output mode Enable
#define REG_GPIOB_PUEN  (GPIO_BA+0x0014)	 // GPIO port B Bit Pull-up Resistor Enable
#define REG_GPIOB_DOUT  (GPIO_BA+0x0018)   // GPIO port B data output value 
#define REG_GPIOB_PIN   (GPIO_BA+ 0x001C)	 // GPIO port B Pin Value

#define REG_GPIOC_OMD   (GPIO_BA+0x0020)  // GPIO port C bit Output mode Enable
#define REG_GPIOC_PUEN  (GPIO_BA+0x0024)	// GPIO port C Bit Pull-up Resistor Enable
#define REG_GPIOC_DOUT  (GPIO_BA+0x0028)  // GPIO port C data output value 

#define REG_GPIOC_PIN   (GPIO_BA+0x002C)	// GPIO port C Pin Value

#define REG_GPIOD_OMD   (GPIO_BA+0x0030)  // GPIO port D bit Output mode Enable
#define REG_GPIOD_PUEN  (GPIO_BA+0x0034)	// GPIO port D Bit Pull-up Resistor Enable
#define REG_GPIOD_DOUT  (GPIO_BA+0x0038)  // GPIO port D data output value 
#define REG_GPIOD_PIN   (GPIO_BA+0x003C)	// GPIO port D Pin Value

#define REG_GPIOE_OMD   (GPIO_BA+0x0040)  // GPIO port E bit Output mode Enable
#define REG_GPIOE_PUEN  (GPIO_BA+0x0044)	// GPIO port E Bit Pull-up Resistor Enable
#define REG_GPIOE_DOUT  (GPIO_BA+0x0048)  // GPIO port E data output value 
#define REG_GPIOE_PIN   (GPIO_BA+ 0x004C)	// GPIO port E Pin Value

#define REG_DBNCECON   (GPIO_BA+0x0070)  // External Interrupt Debounce Control

#define REG_IRQSRCGPA  (GPIO_BA+0x0080)  // GPIO Port A IRQ Source Grouping
#define REG_IRQSRCGPB  (GPIO_BA+0x0084)  // GPIO Port B IRQ Source Grouping
#define REG_IRQSRCGPC  (GPIO_BA+0x0088)  // GPIO Port C IRQ Source Grouping
#define REG_IRQSRCGPD  (GPIO_BA+0x008C)  // GPIO Port D IRQ Source Grouping
#define REG_IRQSRCGPE  (GPIO_BA+0x0090)  // GPIO Port E IRQ Source Grouping

#define REG_IRQENGPA   (GPIO_BA+0x00A0)  // GPIO Port A Interrupt Enable
#define REG_IRQENGPB   (GPIO_BA+0x00A4)  // GPIO Port B Interrupt Enable
#define REG_IRQENGPC   (GPIO_BA+0x00A8)  // GPIO Port C Interrupt Enable
#define REG_IRQENGPD   (GPIO_BA+0x00AC)  // GPIO Port D Interrupt Enable
#define REG_IRQENGPE   (GPIO_BA+0x00B0)  // GPIO Port E Interrupt Enable

#define REG_IRQLHSEL   (GPIO_BA+0x00C0)  // Interrupt Latch Trigger Selection Register

#define REG_IRQLHGPA   (GPIO_BA+0x00D0)  // GPIO Port A Interrupt Latch Value
#define REG_IRQLHGPB   (GPIO_BA+0x00D4)  // GPIO Port B Interrupt Latch Value
#define REG_IRQLHGPC   (GPIO_BA+0x00D8)  // GPIO Port C Interrupt Latch Value
#define REG_IRQLHGPD   (GPIO_BA+0x00DC)  // GPIO Port D Interrupt Latch Value
#define REG_IRQLHGPE   (GPIO_BA+0x00E0)  // GPIO Port E Interrupt Latch Value

#define REG_IRQTGSRC0   (GPIO_BA+0x00F0) // IRQ0~3 Interrupt Trigger Source Indicator from GPIO Port A and GPIO Port B
#define REG_IRQTGSRC1   (GPIO_BA+0x00F4) // IRQ0~3 Interrupt Trigger Source Indicator from GPIO Port C
#define REG_IRQTGSRC2   (GPIO_BA+0x00F8) // IRQ0~3 Interrupt Trigger Source Indicator from GPIO Port E


//#define PA_VA_USB_BASE	N9H20_VA_USBD

#define IRQ_STAT_L			(USBD_BA+0x00)		/* interrupt status low register */
	#define USB_INT		BIT0
	#define CEP_INT		BIT1
	#define EPA_INT		BIT2
	#define EPB_INT		BIT3
	#define EPC_INT		BIT4		
	#define EPD_INT		BIT5

#define IRQ_ENB_L		(USBD_BA+0x08)		/* interrupt enable low register */
	#define USB_IE		BIT0
	#define CEP_IE		BIT1
	#define EPA_IE		BIT2
	#define EPB_IE		BIT3
	#define EPC_IE		BIT4		
	#define EPD_IE		BIT5
	
#define USB_IRQ_STAT		(USBD_BA+0x10)		/* usb interrupt status register */
	#define SOF_IS		BIT0
	#define RST_IS		BIT1
	#define RUM_IS		BIT2
	#define SUS_IS		BIT3
	#define HISPD_IS	BIT4		
	#define DMACOM_IS	BIT5
	#define TCLKOK_IS	BIT6
	#define RUM_NOCLK_IS	BIT7
	#define VBUS_IS		BIT8
	
#define USB_IRQ_ENB		(USBD_BA+0x14)		/* usb interrupt enable register */
	#define SOF_IE		BIT0
	#define RST_IE		BIT1
	#define RUM_IE		BIT2
	#define SUS_IE		BIT3
	#define HISPD_IE	BIT4		
	#define DMACOM_IE	BIT5
	#define TCLKOK_IE	BIT6
	#define RUM_NOCLK_IE	BIT7
	#define VBUS_IE		BIT8
	
#define OPER		(USBD_BA+0x18)		/* usb operation register */
	#define GEN_RUM		BIT0
	#define SET_HISPD	BIT1
	#define CUR_SPD		BIT2

#define FRAME_CNT		(USBD_BA+0x1c)		/* usb frame count register */
	#define MFRAM_CNT	NVTBIT(2,0)
	#define USB_FRAME_CNT	NVTBIT(13,3)

#define ADDR		(USBD_BA+0x20)		/* usb address register */
	#define USB_ADDR		NVTBIT(6,0)

#define USB_TEST		(USBD_BA+0x24)		/* usb test mode register */
	#define TESETMODE	NVTBIT(2,0)

#define CEP_DATA_BUF	(USBD_BA+0x28)		/* control-ep data buffer register */

#define CEP_CTRL_STAT	(USBD_BA+0x2c)		/* control-ep control and status register */
	#define NAK_CLEAR	BIT0
	#define STALL		BIT1
	#define CEP_ZEROLEN	BIT2
	#define FLUSH		BIT3	

#define CEP_IRQ_ENB	(USBD_BA+0x30)		/* control-ep interrupt enable register */
	#define CEP_SETUP_TK_IE	BIT0
	#define CEP_SETUP_PK_IE	BIT1
	#define CEP_OUT_TK_IE	BIT2
	#define CEP_IN_TK_IE	BIT3
	#define CEP_PING_IE		BIT4
	#define CEP_DATA_TxED_IE	BIT5		
	#define CEP_DATA_RxED_IE	BIT6
	#define CEP_NAK_IE		BIT7	
	#define CEP_STALL_IE	BIT8	
	#define CEP_ERR_IE		BIT9
	#define CEP_STACOM_IE	BIT10
	#define CEP_FULL_IE		BIT11
	#define CEP_EMPTY_IE	BIT12
	#define CEP_O_SHORT_IE	BIT13					

#define CEP_IRQ_STAT	(USBD_BA+0x34)		/* control-ep interrupt status register */
	#define CEP_SETUP_TK_IS	BIT0
	#define CEP_SETUP_PK_IS	BIT1
	#define CEP_OUT_TK_IS	BIT2
	#define CEP_IN_TK_IS	BIT3
	#define CEP_PING_IS		BIT4
	#define CEP_DATA_TxED_IS	BIT5		
	#define CEP_DATA_RxED_IS	BIT6
	#define CEP_NAK_IS		BIT7	
	#define CEP_STALL_IS	BIT8	
	#define CEP_ERR_IS		BIT9
	#define CEP_STACOM_IS	BIT10
	#define CEP_FULL_IS		BIT11
	#define CEP_EMPTY_IS	BIT12
	#define CEP_O_SHORT_IS	BIT13

#define IN_TRNSFR_CNT	(USBD_BA+0x38)		/* in-transfer data count register */
	#define IN_TRF_CNT	NVTBIT(7,0)

#define OUT_TRNSFR_CNT	(USBD_BA+0x3c)		/* out-transfer data count register */
	#define OUT_TRF_CNT	NVTBIT(15,0)

#define CEP_CNT		(USBD_BA+0x40)		/* control-ep data count register */

#define SETUP1_0		(USBD_BA+0x44)		/* setup byte1 & byte0 register */
	#define SETUP0		NVTBIT(7,0)
	#define SETUP1		NVTBIT(15,8)

#define SETUP3_2		(USBD_BA+0x48)		/* setup byte3 & byte2 register */
	#define SETUP2		NVTBIT(7,0)
	#define SETUP3		NVTBIT(15,8)

#define SETUP5_4		(USBD_BA+0x4c)		/* setup byte5 & byte4 register */
	#define SETUP4		NVTBIT(7,0)
	#define SETUP5		NVTBIT(15,8)
	
#define SETUP7_6		(USBD_BA+0x50)		/* setup byte7 & byte6 register */
	#define SETUP6		NVTBIT(7,0)
	#define SETUP7		NVTBIT(15,8)

#define CEP_START_ADDR	(USBD_BA+0x54)		/* control-ep ram start address register */
	#define USB_CEP_START_ADDR	NVTBIT(10,0)

#define CEP_END_ADDR	(USBD_BA+0x58)		/* control-ep ram end address register */
	#define USB_CEP_END_ADDR	NVTBIT(10,0)

#define DMA_CTRL_STS	(USBD_BA+0x5c)		/* dma control and status register */
	#define DMA_ADDR	NVTBIT(3,0)
	#define DMA_RD		BIT4	
	#define DMA_EN		BIT5		
	#define SCAT_GA_EN	BIT6	
	#define RST_DMA		BIT7
	
#define DMA_CNT		(USBD_BA+0x60)		/* dma count register */
	#define USB_DMA_CNT	NVTBIT(19,0)

/* endpoint A/B/C/D/E/F data buffer register */
#define EPA_DATA_BUF	(USBD_BA+0x64)		/* endpoint A data buffer register */
#define EPB_DATA_BUF	(USBD_BA+0x8c)		/* endpoint B data buffer register */
#define EPC_DATA_BUF	(USBD_BA+0xb4)		/* endpoint C data buffer register */
#define EPD_DATA_BUF	(USBD_BA+0xdc)		/* endpoint D data buffer register */
#define EPE_DATA_BUF	(USBD_BA+0x104)	/* endpoint E data buffer register */
#define EPF_DATA_BUF	(USBD_BA+0x12c)	/* endpoint F data buffer register */

/* endpoint A/B/C/D/E/F interrupt status register */
#define EPA_IRQ_STAT	(USBD_BA+0x68)		/* endpoint A interrupt status register */
#define EPB_IRQ_STAT	(USBD_BA+0x90)		/* endpoint B interrupt status register */
#define EPC_IRQ_STAT	(USBD_BA+0xb8)		/* endpoint C interrupt status register */
#define EPD_IRQ_STAT	(USBD_BA+0xe0)		/* endpoint D interrupt status register */
#define EPE_IRQ_STAT	(USBD_BA+0x108)	/* endpoint E interrupt status register */
#define EPF_IRQ_STAT	(USBD_BA+0x130)	/* endpoint F interrupt status register */
	#define FULL_IS		BIT0	
	#define EMPTY_IS	BIT1
	#define SHORT_PKT_IS	BIT2
	#define DATA_TxED_IS	BIT3		
	#define DATA_RxED_IS	BIT4
	#define OUT_TK_IS	BIT5
	#define IN_TK_IS	BIT6	
	#define PING_IS		BIT7
	#define NAK_IS		BIT8	
	#define STALL_IS	BIT9						
	#define NYET_IS		BIT10
	#define ERR_IS		BIT11		
	#define O_SHORT_PKT_IS	BIT12

/* endpoint A/B/C/D/E/F interrupt enable register */
#define EPA_IRQ_ENB	(USBD_BA+0x6c)		/* endpoint A interrupt enable register */
#define EPB_IRQ_ENB	(USBD_BA+0x94)		/* endpoint B interrupt enable register */
#define EPC_IRQ_ENB	(USBD_BA+0xbc)		/* endpoint C interrupt enable register */
#define EPD_IRQ_ENB	(USBD_BA+0xe4)		/* endpoint D interrupt enable register */
#define EPE_IRQ_ENB	(USBD_BA+0x10c)	/* endpoint E interrupt enable register */
#define EPF_IRQ_ENB	(USBD_BA+0x134)	/* endpoint F interrupt enable register */
	#define FULL_IE		BIT0	
	#define EMPTY_IE	BIT1
	#define SHORT_PKT_IE	BIT2
	#define DATA_TxED_IE	BIT3		
	#define DATA_RxED_IE	BIT4
	#define OUT_TK_IE	BIT5
	#define IN_TK_IE	BIT6	
	#define PING_IE		BIT7
	#define NAK_IE		BIT8	
	#define STALL_IE	BIT9						
	#define NYET_IE		BIT10
	#define ERR_IE		BIT11		
	#define O_SHORT_PKT_IE	BIT12

/* data count available in endpoint A/B/C/D/E/F buffer */
#define EPA_DATA_CNT	(USBD_BA+0x70)		/* data count available in endpoint A buffer */
#define EPB_DATA_CNT	(USBD_BA+0x98)		/* data count available in endpoint B buffer */
#define EPC_DATA_CNT	(USBD_BA+0xc0)		/* data count available in endpoint C buffer */
#define EPD_DATA_CNT	(USBD_BA+0xe8)		/* data count available in endpoint D buffer */
#define EPE_DATA_CNT	(USBD_BA+0x110)	/* data count available in endpoint E buffer */
#define EPF_DATA_CNT	(USBD_BA+0x138)	/* data count available in endpoint F buffer */
	#define DMA_LOOP	NVTBIT(30,16)
	#define DATA_CNT	NVTBIT(15,0)	

/* endpoint A/B/C/D/E/F response register set/clear */
#define EPA_RSP_SC		(USBD_BA+0x74)		/* endpoint A response register set/clear */
#define EPB_RSP_SC		(USBD_BA+0x9c)		/* endpoint B response register set/clear */
#define EPC_RSP_SC		(USBD_BA+0xc4)		/* endpoint C response register set/clear */
#define EPD_RSP_SC		(USBD_BA+0xec)		/* endpoint D response register set/clear */
#define EPE_RSP_SC		(USBD_BA+0x114)	/* endpoint E response register set/clear */
#define EPF_RSP_SC		(USBD_BA+0x13c)	/* endpoint F response register set/clear */
	#define BUF_FLUSH	BIT0
	#define MODE		NVTBIT(2,1)
	#define TOGGLE		BIT3
	#define HALT		BIT4
	#define ZEROLEN		BIT5
	#define PK_END		BIT6
	#define DIS_BUF		BIT7

/* endpoint A/B/C/D/E/F max packet size register */
#define EPA_MPS		(USBD_BA+0x78)		/* endpoint A max packet size register */
#define EPB_MPS		(USBD_BA+0xa0)		/* endpoint B max packet size register */
#define EPC_MPS		(USBD_BA+0xc8)		/* endpoint C max packet size register */
#define EPD_MPS		(USBD_BA+0xf0)		/* endpoint D max packet size register */
#define EPE_MPS		(USBD_BA+0x118)	/* endpoint E max packet size register */
#define EPF_MPS		(USBD_BA+0x140)	/* endpoint F max packet size register */
	#define EP_MPS		NVTBIT(10,0)

/* endpoint A/B/C/D/E/F transfer count register */
#define EPA_TRF_CNT	(USBD_BA+0x7c)		/* endpoint A transfer count register */
#define EPB_TRF_CNT	(USBD_BA+0xa4)		/* endpoint B transfer count register */
#define EPC_TRF_CNT	(USBD_BA+0xcc)		/* endpoint C transfer count register */
#define EPD_TRF_CNT	(USBD_BA+0xf4)		/* endpoint D transfer count register */
#define EPE_TRF_CNT	(USBD_BA+0x11c)	/* endpoint E transfer count register */
#define EPF_TRF_CNT	(USBD_BA+0x144)	/* endpoint F transfer count register */
	#define EP_TRF_CNT	NVTBIT(10,0)

/* endpoint A/B/C/D/E/F configuration register */
#define EPA_CFG		(USBD_BA+0x80)		/* endpoint A configuration register */
#define EPB_CFG		(USBD_BA+0xa8)		/* endpoint B configuration register */
#define EPC_CFG		(USBD_BA+0xd0)		/* endpoint C configuration register */
#define EPD_CFG		(USBD_BA+0xf8)		/* endpoint D configuration register */
#define EPE_CFG		(USBD_BA+0x120)	/* endpoint E configuration register */
#define EPF_CFG		(USBD_BA+0x148)	/* endpoint F configuration register */
	#define EP_VALID	BIT0
	#define EP_TYPE		NVTBIT(2,1)
	#define EP_DIR		BIT3
	#define EP_NUM		NVTBIT(7,4)
	#define EP_MULT		NVTBIT(9,8)				
	
/* endpoint A/B/C/D/E/F ram start address register */
#define EPA_START_ADDR	(USBD_BA+0x84)		/* endpoint A ram start address register */
#define EPB_START_ADDR	(USBD_BA+0xac)		/* endpoint B ram start address register */
#define EPC_START_ADDR	(USBD_BA+0xd4)		/* endpoint C ram start address register */
#define EPD_START_ADDR	(USBD_BA+0xfc)		/* endpoint D ram start address register */
#define EPE_START_ADDR	(USBD_BA+0x124)	/* endpoint E ram start address register */
#define EPF_START_ADDR	(USBD_BA+0x14c)	/* endpoint F ram start address register */
	#define EP_START_ADDR	NVTBIT(11,0)

#define EPA_END_ADDR	(USBD_BA+0x88)		/* endpoint A ram end address register */
#define EPB_END_ADDR	(USBD_BA+0xb0)		/* endpoint B ram end address register */
#define EPC_END_ADDR	(USBD_BA+0xd8)		/* endpoint C ram end address register */
#define EPD_END_ADDR	(USBD_BA+0x100)	/* endpoint D ram end address register */
#define EPE_END_ADDR	(USBD_BA+0x128)	/* endpoint E ram end address register */
#define EPF_END_ADDR	(USBD_BA+0x150)	/* endpoint F ram end address register */
	#define EP_END_ADDR	NVTBIT(11,0)
	
#define USB_MEM_TEST	(USBD_BA+0x154)	/* endpoint F ram end address register */
	#define MODE_A		BIT0
	#define ERR_A		BIT1
	#define FINISH_A	BIT2
	#define FAIL_A		BIT3
	#define MODE_O		BIT4	
	#define SHIFT_O		BIT5		
	#define FINISH_O	BIT6
	#define FAIL_O		BIT7
	#define OUT_O		BIT8		
	
#define HEAD_WORD0		(USBD_BA+0x158)	/* first head data */	
#define HEAD_WORD1		(USBD_BA+0x15C)	/* second head data */	
#define HEAD_WORD2		(USBD_BA+0x160)	/* third head data */	

#define EPA_HEAD_CNT		(USBD_BA+0x164)	/* EPA head count */
#define EPB_HEAD_CNT		(USBD_BA+0x168)	/* EPB head count */
#define EPC_HEAD_CNT		(USBD_BA+0x16C)	/* EPC head count */
#define EPD_HEAD_CNT		(USBD_BA+0x170)	/* EPD head count */
#define EPE_HEAD_CNT		(USBD_BA+0x174)	/* EPE head count */
#define EPF_HEAD_CNT		(USBD_BA+0x178)	/* EPF head count */

#define AHB_DMA_ADDR	(USBD_BA+0x700)		/* AHB_DMA address register */

#define PHY_CTL		(USBD_BA+0x704)		/* AHB_DMA address register */
	#define bisten		BIT0
	#define bisterr		BIT1
	#define siddq		BIT2
	#define xo_on		BIT3
	#define clk_sel		NVTBIT(5,4)
	#define refclk		BIT6
	#define clk48		BIT7
	#define vbus_detect	BIT8
	#define Phy_suspend	BIT9								
	#define Vbus_status	BIT31







//#define I2C_BASE	N9H20_VA_I2C	/* I2CH Control */
#define REG_I2C_CSR 		(I2C_BA+0x0000)		// R/W: Control and Status  Register
	#define I2C_RXACK 		BIT11			// Received ACK from Slave
    	#define I2C_BUSY 		BIT10			// I2C bus busy
    	#define I2C_AL 			BIT9				// Arbitration lost
    	#define I2C_TIP 			BIT8				// Transfer in progress
    	#define TX_NUM 			NVTBIT(5,4)			// Transmit byte count
    	#define CSR_IF 			BIT2				// Interrupt flag
    	#define CSR_IE 			BIT1				// Interrupt enable
    	#define I2C_EN 			BIT0				// I2C core enabl

#define REG_I2C_DIVIDER (I2C_BA+0x0004)	// R/W:Clock Prescale Register
       #define I2C_DIV 			NVTBIT(15,0)

#define REG_I2C_CMDR 	(I2C_BA+0x0008)			// R/W:Command Register
	#define START 			BIT4				// Generate start condition
	#define STOP 			BIT3				// Generate stop condition
	#define READ 			BIT2				// Read data from slave
    	#define WRITE 			BIT1				// Write data from slave
    	#define ACK 				BIT0					// Send ACK to slave

#define REG_I2C_SWR 	(I2C_BA+0x000C)			// R/W:Software Mode Register
	#define SER 				BIT5					// Serial interface SDO status
	#define SDR 				BIT4					// Serial interface SDA status
    	#define SCR 				BIT3					// Serial interface SCK status
    	#define SEW 				BIT2					// Serial interface SDO output control
    	#define SDW 				BIT1					// Serial interface SDW status control
    	#define SCW 				BIT0					// Serial interface SCW output control

#define REG_I2C_RxR 		(I2C_BA+0x0010)			// R:Data Receive Register
#define REG_I2C_TxR 		(I2C_BA+0x0014)			// R/W:Data Transmit Register
#define REG_KPICONF		(KPI_BA+0x0000)	// R/W	Keypad controller configuration Register
	#define KROW 			NVTBIT(30,28)		// Keypad Matrix ROW number
	#define KCOL 			NVTBIT(26,24)		// Keypad Matrix COL Number
	#define DB_EN			BIT21			// Scan In Signal De-bounce Enable	
	#define DB_CLKSEL 		NVTBIT(19,16)		// Scan In De-bounce sampling cycle selection
	#define PRESCALE		NVTBIT(15,8)		// Row Scan Cycle Pre-scale Value
	#define INPU 			BIT6			// key Scan In Pull-UP Enable Register
	#define WAKEUP			BIT5			// Lower Power Wakeup Enable	
	#define ODEN				BIT4		// Open Drain Enable
	#define INTEN			BIT3		// Key Interrupt Enable Control 
	#define RKINTEN			BIT2			// Release Key Interrupt Enable Cintrol
	#define PKINTEN			BIT1			// Press Key Interrupt Enable Control
	#define ENKP				BIT0			// Keypad Scan Enable
		
#define REG_KPI3KCONF	(KPI_BA+0x0004)	// R/W	Keypad controller 3-keys configuration register	
	#define EN3KYRST 		BIT24			// Enable Three-key Reset
	#define K32R 			NVTBIT(21,19)		// The #2 Key Row Address
	#define K32C				NVTBIT(18,16)		// The #2 Key Column Address
	#define K31R				NVTBIT(13,11)		// The #1 Key Row Address
	#define K31C 			NVTBIT(10,8)		// The #1 Key Column Address
	#define K30R				NVTBIT(5,3)		// The #0 Key Row Address
	#define K30C				NVTBIT(2,0)		//	The #0 Key Column Address

#define REG_KPISTATUS	(KPI_BA+0x0008)	// R/O	Key Pad Interface Status Register
	#define RROW7			BIT23		// Release key row coordinate
	#define RROW6			BIT22
	#define RROW5			BIT21
	#define RROW4			BIT20
	#define RROW3			BIT19
	#define RROW2			BIT18
	#define RROW1			BIT17
	#define RROW0			BIT16
	#define PROW7			BIT15			// Press key row coordinate
	#define PROW6			BIT14
	#define PROW5			BIT13
	#define PROW4			BIT12
	#define PROW3			BIT11
	#define PROW2			BIT10
	#define PROW1			BIT9
	#define PROW0			BIT8
	#define PKEY_INT			BIT4			// Press key interrupt
	#define RKEY_INT			BIT3			// Release key interrupt
	#define KEY_INT			BIT2			// Key Interrupt
	#define RST_3KEY		BIT1			// 3-Keys Reset Flag 
	#define PDWAKE			BIT0			// Power Down Wakeup Flag	

#define REG_KPIRSTC		(KPI_BA+0x000c)	// R/O	Keypad reset period controller register
	#define RSTC				NVTBIT(7,0)			// 3-key Reset Period Count

#define REG_KPIKEST0	(KPI_BA+0x0010)	// R/O	Keypad state register 0	
#define REG_KPIKEST1	(KPI_BA+0x0014)	// R/O	Keypad state register 1	
#define REG_KPIKPE0		(KPI_BA+0x0018)	// R/O	Lower 32 Press Key event indicator
#define REG_KPIKPE1		(KPI_BA+0x001C)	// R/O	Higher 32 Press Key event indicator
#define REG_KPIKRE0		(KPI_BA+0x0020)	// R/O	Lower 32 Realease Key event indicator	
#define REG_KPIKRE1		(KPI_BA+0x0024)	// R/O	Higher 32 Realease Key event indicator
#define REG_KPIPRESCALDIV	(KPI_BA+0x0028)	// Prescale divider
	#define PRESCALDIV 		NVTBIT(7,0)


//#define SPI_BASE_0	(N9H20_VA_SPI0)
#define REG_SPI0_CNTRL		(SPI0_BA + 0x0000)
	#define BYTE_ENDIN		BIT20
	#define BYTE_SLEEP		BIT19
	#define SLAVE			BIT18			// Interrupt Enable�P
	#define IE				BIT17			// Interrupt Enable�P
	#define IFG				BIT16			// Interrupt Flag�P
	#define SLEEP			NVTBIT(15,12)		// Suspend Interval.
	#define CLKP				BIT11			// Send LSB First�P
	#define LSB				BIT10			// Send LSB First�P
	#define Tx_NUM			NVTBIT(9,8)		// Transmit/Receive Numbers.
	#define Tx_BIT_LEN		NVTBIT(7,3)		// Transmit Bit Length.
	#define Tx_NEG			BIT2			// Transmit On Negative Edge�P
	#define Rx_NEG			BIT1			// Receive On Negative Edge�P
	#define GO_BUSY			BIT0			// Go and Busy Status�P
#define REG_SPI0_DIVIDER	(SPI0_BA + 0x0004)
	#define SPI0_DIV			NVTBIT(15,0)		//Clock Divider Register 
#define REG_SPI0_SSR		(SPI0_BA + 0x0008)
	#define LTRIG_FLAG		BIT5			// Level Trigger Flag
	#define SS_LTRIG			BIT4			// Automatic Slave Select�P
	#define ASS				BIT3			// Automatic Slave Select�P
	#define SS_LVL			BIT2			// Slave Select Active Level.
											// It defines the active level of device/slave select signal (mw_ss_o).
	#define SSR				NVTBIT(1,0)		// Slave Select register

#define REG_SPI0_RX0		(SPI0_BA + 0x0010)
#define REG_SPI0_RX1		(SPI0_BA + 0x0014)
#define REG_SPI0_RX2		(SPI0_BA + 0x0018)
#define REG_SPI0_RX3		(SPI0_BA + 0x001c)

#define REG_SPI0_TX0		(SPI0_BA + 0x0010)
#define REG_SPI0_TX1		(SPI0_BA + 0x0014)
#define REG_SPI0_TX2		(SPI0_BA + 0x0018)
#define REG_SPI0_TX3		(SPI0_BA + 0x001c)

#define REG_SPI0_JS			(SPI0_BA + 0x0020)
	#define READY			BIT8			// Slave is ready to transmit / recieve data
	#define JS_INT_FLAG		NVTBIT(7,5)		// Joystick Mode Interrupt Flag
	#define JS_RW			BIT4			// Read / Write Mode
	#define JS				BIT0			// Dongle Joystick mode
#define REG_SPI0_TURBO		(SPI0_BA + 0x0024)
	#define TURBO			BIT0			// SPI Turbo mode
#define REG_SPI0_EDMA		(SPI0_BA + 0x0028)
	#define EDMA_RW		BIT1			// EDMA Read or EDMA Write
	#define EDMA_GO			BIT0			// EDMA Start
//#define SPI_BASE_1	(N9H20_VA_SPI1)
#define REG_SPI1_CNTRL		(SPI1_BA + 0x0000)
#define REG_SPI1_DIVIDER	(SPI1_BA + 0x0004)
#define REG_SPI1_SSR		(SPI1_BA + 0x0008)

#define REG_SPI1_RX0		(SPI1_BA + 0x0010)
#define REG_SPI1_RX1		(SPI1_BA + 0x0014)
#define REG_SPI1_RX2		(SPI1_BA + 0x0018)
#define REG_SPI1_RX3		(SPI1_BA + 0x001c)

#define REG_SPI1_TX0		(SPI1_BA + 0x0010)
#define REG_SPI1_TX1		(SPI1_BA + 0x0014)
#define REG_SPI1_TX2		(SPI1_BA + 0x0018)
#define REG_SPI1_TX3		(SPI1_BA + 0x001c)

#define REG_SPI1_JS			(SPI1_BA + 0x0020)
#define REG_SPI1_TURBO		(SPI1_BA + 0x0024)
#define REG_SPI1_EDMA		(SPI1_BA + 0x0028)

//#define PWM_BASE	(N9H20_VA_PWM)

#define PPR         (PWM_BA+0x000)			// R/W: PWM Prescaler Register
	#define DZI1            NVTBIT(31,24)	 	// Dead zone interval register 1
	#define DZI0            NVTBIT(23,16)			// Dead zone interval register 0
	#define CP1             NVTBIT(15,8)			// Clock prescaler 1 for PWM Timer channel 2 & 3
	#define CP0             NVTBIT(7,0)			// Clock prescaler 0 for PWM Timer channel 0 & 1
		
#define PWM_CSR     (PWM_BA+0x004)		// R/W: PWM Clock Select Register 
	#define CSR3            NVTBIT(14,12)			// Select clock input for channel 3
	#define CSR2            NVTBIT(10,8)			// Select clock input for channel 2
	#define CSR1            NVTBIT(6,4)			// Select clock input for channel 1
	#define CSR0            NVTBIT(2,0)			// Select clock input for channel 0

#define PCR         (PWM_BA+0x008)			// R/W: PWM Control Register
	#define CH3MOD          BIT27				// Channel 3 toggle/one shot mode
	#define CH3INV          BIT26				// Channel 3 inverter on/off
	#define CH3EN           BIT24				// Channel 3 enable/disable
	#define CH2MOD          BIT19				// Channel 2 toggle/one shot mode
	#define CH2INV          BIT18				// Channel 2 inverter on/off
	#define CH2EN           BIT16				// Channel 2 enable/disable		
	#define CH1MOD          BIT11				// Channel 1 toggle/one shot mode
	#define CH1INV          BIT10				// Channel 1 inverter on/off
	#define CH1EN           BIT8				// Channel 1 enable/disable
	#define DZEN1           BIT5				// Dead-Zone generator 1 enable/disable	
	#define DZEN0           BIT4				// Dead-Zone generator 0 enable/disable
	#define CH0MOD          BIT3				// Channel 0 toggle/one shot mode
	#define CH0INV          BIT2				// Channel 0 inverter on/off
	#define CH0EN           BIT0				// Channel 0 enable/disable

#define CNR0        (PWM_BA+0x00C)			// R/W: PWM Counter Register 0
#define CNR1        (PWM_BA+0x018)			// R/W: PWM Counter Register 1
#define CNR2        (PWM_BA+0x024)			// R/W: PWM Counter Register 2
#define CNR3        (PWM_BA+0x030)			// R/W: PWM Counter Register 3
	#define CNR             NVTBIT(15,0)			    // PWM counter/timer buff

#define CMR0        (PWM_BA+0x010)			// R/W: PWM Comparator Register 0
#define CMR1        (PWM_BA+0x01C)			// R/W: PWM Comparator Register 1
#define CMR2        (PWM_BA+0x028)			// R/W: PWM Comparator Register 2
#define CMR3        (PWM_BA+0x034)			// R/W: PWM Comparator Register 3
	#define CMR             NVTBIT(15,0)			    // PWM comparator register

#define PDR0        (PWM_BA+0x014)			// R  : PWM Data Register 0
#define PDR1        (PWM_BA+0x020)			// R  : PWM Data Register 1
#define PDR2        (PWM_BA+0x02C)			// R  : PWM Data Register 2
#define PDR3        (PWM_BA+0x038)			// R  : PWM Data Register 3
	#define PDR             NVTBIT(15,0)			// PWM data register

#define PIER        (PWM_BA+0x040)			// R/W: PWM Interrupt Enable Register
	#define PIER3           BIT3				// PWM timer channel 3 interrupt enable/disable
	#define PIER2           BIT2				// PWM timer channel 2 interrupt enable/disable
	#define PIER1           BIT1				// PWM timer channel 1 interrupt enable/disable
	#define PIER0           BIT0				// PWM timer channel 0 interrupt enable/disable

#define PIIR        (PWM_BA+0x044)			// R/C: PWM Interrupt Identification Register
	#define PIIR3           BIT3				// PWM timer channel 3 interrupt flag
	#define PIIR2           BIT2				// PWM timer channel 2 interrupt flag
	#define PIIR1           BIT1				// PWM timer channel 1 interrupt flag
	#define PIIR0           BIT0				// PWM timer channel 0 interrupt flag

#define CCR0        (PWM_BA+0x050)			//R/W: Capture Control Register
	#define CFLRD1          BIT23			//CFLR1 dirty bit
	#define CRLRD1          BIT22			//CRLR1 dirty bit
	#define CIIR1           BIT20			//Capture Interrupt Indication 1 Enable/Disable
	#define CAPCH1EN        BIT19			//Capture Channel 1 transition Enable/Disable
	#define FL_IE1          BIT18			//Channel1 Falling Interrupt Enable ON/OFF
	#define RL_IE1          BIT17			//Channel1 Rising Interrupt Enable ON/OFF
	#define INV1            BIT16			//Channel 1 Inverter ON/OFF
	#define CFLRD0          BIT7			//CFLR0 dirty bit
	#define CRLRD0          BIT6			//CRLR0 dirty bit
	#define CIIR0           BIT4			//Capture Interrupt Indication 0 Enable/Disable
	#define CAPCH0EN        BIT3			//Capture Channel 0 transition Enable/Disable
	#define FL_IE0          BIT2			//Channel0 Falling Interrupt Enable ON/OFF
	#define RL_IE0          BIT1			//Channel0 Rising Interrupt Enable ON/OFF
	#define INV0            BIT0			//Channel 0 Inverter ON/OFF
		
	
#define CCR1        (PWM_BA+0x054)			//R/W: Capture Control Register
	#define CFLRD3          BIT23			//CFLR3 dirty bit
	#define CRLRD3          BIT22			//CRLR3 dirty bit
	#define CIIR3           BIT20			//Capture Interrupt Indication 3 Enable/Disable
	#define CAPCH3EN        BIT19			//Capture Channel 3 transition Enable/Disable
	#define FL_IE3          BIT18			//Channel3 Falling Interrupt Enable ON/OFF
	#define RL_IE3          BIT17			//Channel3 Rising Interrupt Enable ON/OFF
	#define INV3            BIT16			//Channel 3 Inverter ON/OFF
	#define CFLRD2          BIT7			//CFLR2 dirty bit
	#define CRLRD2          BIT6			//CRLR2 dirty bit
	#define CIIR2           BIT4			//Capture Interrupt Indication 2 Enable/Disable
	#define CAPCH2EN        BIT3			//Capture Channel 2 transition Enable/Disable
	#define FL_IE2          BIT2			//Channel2 Falling Interrupt Enable ON/OFF
	#define RL_IE2          BIT1			//Channel2 Rising Interrupt Enable ON/OFF
	#define INV2            BIT0			//Channel 2 Inverter ON/OFF

#define CRLR0       (PWM_BA+0x058)		//R/W: Capture Rising Latch Register (channel 0)
#define CRLR1       (PWM_BA+0x060)		//R/W: Capture Rising Latch Register (channel 1)
#define CRLR2       (PWM_BA+0x068)		//R/W: Capture Rising Latch Register (channel 2)
#define CRLR3       (PWM_BA+0x070)		//R/W: Capture Rising Latch Register (channel 3)
	#define PWM_CRLR0       NVTBIT(15,0)		//Capture Rising Latch Register	

#define CFLR0       (PWM_BA+0x05C)		//R/W: Capture Falling Latch Register (channel 0)
#define CFLR1       (PWM_BA+0x064)		//R/W: Capture Falling Latch Register (channel 1)
#define CFLR2       (PWM_BA+0x06C)		//R/W: Capture Falling Latch Register (channel 2)
#define CFLR3       (PWM_BA+0x074)		//R/W: Capture Falling Latch Register (channel 3)
	#define PWM_CFLR0       NVTBIT(15,0)		//Capture Falling Latch Register

#define CAPENR      (PWM_BA+0x078)		//R/W: Capture Input Enable Register
	#define PWM_CAPENR      NVTBIT(3,0)		//Capture Input Enable
	
#define POE         (PWM_BA+0x07C)			//R/W: PWM Output Enable Register
	#define PWM3            BIT3			//PWM 3 Output Enable
	#define PWM2            BIT2			//PWM 2 Output Enable
	#define PWM1            BIT1			//PWM 1 Output Enable
	#define PWM0            BIT0			//PWM 0 Output Enable
		

#define INIR    (RTC_BA+0x000)	// R/W: RTC Initiation Register
	#define INIR_INIR   NVTBIT(31,1)		// RTC Initiation
	#define Active      BIT0			// RTC Active Status.

#define AER     (RTC_BA+0x004)	// R/W: RTC Initiation Register
	#define ENF         BIT16			// RTC Initiation
	#define AER_AER     NVTBIT(15,0)		// RTC Active Status.	

#define RTC_FCR (RTC_BA+0x008)	// R/W: RTC Frequency Compensation Register
	#define INTEGER     NVTBIT(11,8)		// Integer  Part
	#define FRACTION    NVTBIT(5,0)		// Fraction Part

#define TLR     (RTC_BA+0x00C)	// R/W: Time Loading Register
	#define TLR_10HR    NVTBIT(21,20)		// 10 Hour Time Digit
	#define TLR_1HR     NVTBIT(19,16)		// 1 Hour Time Digit
	#define TLR_10MIN   NVTBIT(14,12)		// 10 Min Time Digit
	#define TLR_1MIN    NVTBIT(11,8)		// 1 Min Time Digit
	#define TLR_10SEC   NVTBIT(6,4)		// 10 Sec Time Digit
	#define TLR_1SEC    NVTBIT(3,0)		// 1 Sec Time Digit

#define CLR     (RTC_BA+0x010)	// R/W: Calendar Loading Register
	#define CLR_10YEAR  NVTBIT(23,20)		// 10-Year Calendar Digit
	#define CLR_1YEAR   NVTBIT(19,16)		// 1-Year Calendar Digit
	#define CLR_10MON   BIT12			// 10-Month Calendar Digit
	#define CLR_1MON    NVTBIT(11,8)		// 1-Month Calendar Digit
	#define CLR_10DAY   NVTBIT(5,4)		// 10-Day Calendar Digit
	#define CLR_1DAY    NVTBIT(3,0)		// 1-Day Calendar Digit

#define TSSR    (RTC_BA+0x014)	// R/W  : Time Scale Selection Register
	#define TSSR_24_12  BIT0			//24-Hour / 12-Hour Mode Selection

#define DWR     (RTC_BA+0x018)	// R/W: Day of the Week Register
	#define RTC_DWR     NVTBIT(2,0)		//Day of the Week Register 

#define TAR     (RTC_BA+0x01C)	// R/W: Time Alarm Register
	#define TAR_10HR    NVTBIT(21,20)		// 10 Hour Time Digit
	#define TAR_1HR     NVTBIT(19,16)		// 1 Hour Time Digit
	#define TAR_10MIN   NVTBIT(14,12)		// 10 Min Time Digit
	#define TAR_1MIN    NVTBIT(11,8)		// 1 Min Time Digit
	#define TAR_10SEC   NVTBIT(6,4)		// 10 Sec Time Digit
	#define TAR_1SEC    NVTBIT(3,0)		// 1 Sec Time Digit

#define CAR     (RTC_BA+0x020)	// R/W: Calendar Alarm Register
	#define CAR_10YEAR  NVTBIT(23,20)		// 10-Year Calendar Digit
	#define CAR_1YEAR   NVTBIT(19,16)		// 1-Year Calendar Digit
	#define CAR_10MON   BIT12			// 10-Month Calendar Digit
	#define CAR_1MON    NVTBIT(11,8)		// 1-Month Calendar Digit
	#define CAR_10DAY   NVTBIT(5,4)		// 10-Day Calendar Digit
	#define CAR_1DAY    NVTBIT(3,0)		// 1-Day Calendar Digit

#define LIR     (RTC_BA+0x024)	// R: RTC Leap year Indication Register
	#define LIR_LIR     BIT0			// Leap Year Indication REGISTER

#define RIER    (RTC_BA+0x028)	// R/W: RTC Interrupt Enable Register
	#define TIER        BIT1			// Time Tick Interrupt Enable
	#define AIER        BIT0			// Alarm Interrupt Enable

#define RIIR    (RTC_BA+0x02C)	// R/W: RTC Interrupt Enable Register
	#define TI          BIT1			// RTC Time Tick Interrupt Indication
	#define AI          BIT0			// RTC Alarm Interrupt Indication

#define TTR     (RTC_BA+0x030)	// R/W: RTC Time Tick Register
	#define TTR_TTR     NVTBIT(2,0)		// Time Tick Register

#define PWRON 	(RTC_BA+0x034)	// R/W: RTC Power Time On Register
	#define PCLR_TIME     NVTBIT(19,16)	
	#define SW_STATUS     NVTBIT(15,8)	
	#define PWR_KEY     BIT7	
	#define HW_PCLR_EN     BIT2		
	#define SW_PCLR     BIT1
	#define RTC_PWRON	BIT0


//#define EDMA_BA	(N9H20_VA_EDMA)

#define REG_VDMA_CSR  (EDMA_BA + 0x0000)		// VDMA Control and Status Register CH0
#define REG_PDMA_CSR1  (EDMA_BA + 0x0100)		// PDMA Control and Status Register CH1
#define REG_PDMA_CSR2  (EDMA_BA + 0x0200)		// PDMA Control and Status Register CH2
#define REG_PDMA_CSR3  (EDMA_BA + 0x0300)		// PDMA Control and Status Register CH3
#define REG_PDMA_CSR4  (EDMA_BA + 0x0400)		// PDMA Control and Status Register CH4
	#define TRIG_EN	    BIT23		// Enalbe EDMA Data Read or Write Transfer
	#define APB_TWS       NVTBIT(20, 19)// Peripheral Transfer Width Select
	#define WAR_BCR_SEL   NVTBIT(15, 12)// Wrap Around Transfer Byte Count Interrupt Select
	#define EDMASG_EN         BIT9		// EDMA Scatter-Gather Function Enable
	#define EDMA_RST      BIT8		// EDMA Rest
	#define DAD_SEL       NVTBIT(7, 6)	// Transfer Destination Address Direction Select
	#define SAD_SEL       NVTBIT(5, 4)	// Transfer Source Address Direction Select
	#define MODE_SEL      NVTBIT(3, 2)	// EDMA Mode Select
	#define SW_RST        BIT1		// Software Engine Reset	
	#define EDMACEN       BIT0		// EDMA Channel Enable

#define REG_VDMA_SAR  (EDMA_BA + 0x0004)		// VDMA Transfer Source Address Register CH0
#define REG_PDMA_SAR1  (EDMA_BA + 0x0104)		// PDMA Transfer Source Address Register CH1
#define REG_PDMA_SAR2  (EDMA_BA + 0x0204)		// PDMA Transfer Source Address Register CH2
#define REG_PDMA_SAR3  (EDMA_BA + 0x0304)		// PDMA Transfer Source Address Register CH3
#define REG_PDMA_SAR4  (EDMA_BA + 0x0404)		// PDMA Transfer Source Address Register CH4


#define REG_VDMA_DAR  (EDMA_BA + 0x0008)		// VDMA Transfer Destination Address Register CH0
#define REG_PDMA_DAR1  (EDMA_BA + 0x0108)		// PDMA Transfer Destination Address Register CH1
#define REG_PDMA_DAR2  (EDMA_BA + 0x0208)		// PDMA Transfer Destination Address Register CH2
#define REG_PDMA_DAR3  (EDMA_BA + 0x0308)		// PDMA Transfer Destination Address Register CH3
#define REG_PDMA_DAR4  (EDMA_BA + 0x0408)		// PDMA Transfer Destination Address Register CH4


#define REG_VDMA_BCR  (EDMA_BA + 0x000C)		// VDMA Transfer Byte Count Register CH0
#define REG_PDMA_BCR1  (EDMA_BA + 0x010C)		// PDMA Transfer Byte Count Register CH1
#define REG_PDMA_BCR2  (EDMA_BA + 0x020C)		// PDMA Transfer Byte Count Register CH2
#define REG_PDMA_BCR3  (EDMA_BA + 0x030C)		// PDMA Transfer Byte Count Register CH3
#define REG_PDMA_BCR4  (EDMA_BA + 0x040C)		// PDMA Transfer Byte Count Register CH4
	#define WAR_BCR_IF    NVTBIT(23,  0)// PDMA Transfer Byte Count Reigster
	
#define REG_VDMA_SGAR  (EDMA_BA + 0x0010)		// VDMA Scatter-Gather Table Start Address Register	
#define REG_PDMA_SGAR1  (EDMA_BA + 0x0110)		// PDMA Scatter-Gather Table Start Address Register	CH1
#define REG_PDMA_SGAR2  (EDMA_BA + 0x0210)		// PDMA Scatter-Gather Table Start Address Register	CH2
#define REG_PDMA_SGAR3  (EDMA_BA + 0x0310)		// PDMA Scatter-Gather Table Start Address Register	CH3
#define REG_PDMA_SGAR4  (EDMA_BA + 0x0410)		// PDMA Scatter-Gather Table Start Address Register	CH4

	
#define REG_VDMA_CSAR  (EDMA_BA + 0x0014)		// VDMA Current Source Address Register CH0
#define REG_PDMA_CSAR1  (EDMA_BA + 0x0114)		// PDMA Current Source Address Register CH1
#define REG_PDMA_CSAR2  (EDMA_BA + 0x0214)		// PDMA Current Source Address Register CH2
#define REG_PDMA_CSAR3  (EDMA_BA + 0x0314)		// PDMA Current Source Address Register CH3
#define REG_PDMA_CSAR4  (EDMA_BA + 0x0414)		// PDMA Current Source Address Register CH4


#define REG_VDMA_CDAR  (EDMA_BA + 0x0018)		// VDMA Current Destination Address Register CH0
#define REG_PDMA_CDAR1  (EDMA_BA + 0x0118)		// PDMA Current Destination Address Register CH1
#define REG_PDMA_CDAR2  (EDMA_BA + 0x0218)		// PDMA Current Destination Address Register CH2
#define REG_PDMA_CDAR3  (EDMA_BA + 0x0318)		// PDMA Current Destination Address Register CH3
#define REG_PDMA_CDAR4  (EDMA_BA + 0x0418)		// PDMA Current Destination Address Register CH4


#define REG_VDMA_CBCR  (EDMA_BA + 0x001C)		// VDMA Current Byte Counte Register CH0
#define REG_PDMA_CBCR1  (EDMA_BA + 0x011C)		// PDMA Current Byte Counte Register CH1
#define REG_PDMA_CBCR2  (EDMA_BA + 0x021C)		// PDMA Current Byte Counte Register CH2
#define REG_PDMA_CBCR3  (EDMA_BA + 0x031C)		// PDMA Current Byte Counte Register CH3
#define REG_PDMA_CBCR4  (EDMA_BA + 0x041C)		// PDMA Current Byte Counte Register CH4


#define REG_VDMA_IER  (EDMA_BA + 0x0020)		// VDMA Interrupt Enable Control Register CH0
#define REG_PDMA_IER1  (EDMA_BA + 0x0120)		// PDMA Interrupt Enable Control Register CH1
#define REG_PDMA_IER2  (EDMA_BA + 0x0220)		// PDMA Interrupt Enable Control Register CH2
#define REG_PDMA_IER3  (EDMA_BA + 0x0320)		// PDMA Interrupt Enable Control Register CH3
#define REG_PDMA_IER4  (EDMA_BA + 0x0420)		// PDMA Interrupt Enable Control Register CH4
	#define SG_IEN	    BIT3		// PDMA Scatter-Gather Interrupt Enable
	#define WAR_IE	    BIT2		// PDMA Wrap Around Interrupt Enable
	#define BLKD_IE	    BIT1		// PDMA Block Transfer Done Interrupt Enable
	#define EDMATABORT_IE	   BIT0	// PDMA Read/Write Target Abort Interrupt Enable

#define REG_VDMA_ISR  (EDMA_BA + 0x0024)		// VDMA Interrupt Status Register CH0
#define REG_PDMA_ISR1  (EDMA_BA + 0x0124)		// PDMA Interrupt Status Register CH1
#define REG_PDMA_ISR2  (EDMA_BA + 0x0224)		// PDMA Interrupt Status Register CH2
#define REG_PDMA_ISR3  (EDMA_BA + 0x0324)		// PDMA Interrupt Status Register CH3
#define REG_PDMA_ISR4  (EDMA_BA + 0x0424)		// PDMA Interrupt Status Register CH4
	#define INTR  	    BIT31		// Interrupt Pin Status
	#define INTR4 	    BIT28		// Interrupt Pin Status of Channel 4
	#define INTR3 	    BIT27		// Interrupt Pin Status of Channel 3
	#define INTR2 	    BIT26		// Interrupt Pin Status of Channel 2
	#define INTR1 	    BIT25		// Interrupt Pin Status of Channel 1
	#define INTR0 	    BIT24		// Interrupt Pin Status of Channel 0				
	#define EDMABUSY	    BIT15		// EDMA Transfer is in Progress
	#define EDMAWAR_BCR_IF NVTBIT(11,  8)// Wrap Around Transfer Byte Count Interrupt Flag
	#define EDMASG_IF	      BIT3		// Scatter-Gather Interrupt Flag	
	#define EDMABLKD_IF	  BIT1		// Block Transfer Done Interrupt Flag
	#define EDMATABORT_IF	  BIT0		// PDMA Read/Write Target Abort Interrupt Flag
		

#define REG_VDMA_CTCSR  (EDMA_BA + 0x0028)		// VDMA Color Transfer Control Register CH0
	#define SOUR_FORMAT NVTBIT(27, 24)   // Source Address Color Format
	#define DEST_FORMAT NVTBIT(19, 16)   // Destination Address Color Format
	#define CLAMPING_EN	  BIT7		// Clamping Enable
	#define COL_TRA_EN	  BIT1		// Color Transfer Enable
	#define STRIDE_EN 	  BIT0		// Stride Mode Enable

#define REG_VDMA_SASOCR  (EDMA_BA + 0x002C)	// VDMA Source Address Stride Offset Control Register
	#define STBC          NVTBIT(31, 16)// PDMA Stride Transfer Byte Count
	#define SASTOBL       NVTBIT(15,  0)// PDMA Source Address Stride Offset Byte Length

#define REG_VDMA_DASOCR  (EDMA_BA + 0x0030)	// PDMA Destination Address Stride Offset Control Register
	#define DASTOBL       NVTBIT(15,  0)// PDMA Destination Address Stride Offset Byte Length
	
#define REG_PDMA_POINT1  (EDMA_BA + 0x013C)	// PDMA Internal Buffer Pointer Register CH1
#define REG_PDMA_POINT2  (EDMA_BA + 0x023C)	// PDMA Internal Buffer Pointer Register CH2
#define REG_PDMA_POINT3  (EDMA_BA + 0x033C)	// PDMA Internal Buffer Pointer Register CH3
#define REG_PDMA_POINT4  (EDMA_BA + 0x043C)	// PDMA Internal Buffer Pointer Register CH4
	#define PDMA_POINT    NVTBIT(4,  0) // PDMA Internal Buffer Pointer Reigster	
	
#define REG_EDMA_SBUF0_C0  (EDMA_BA + 0x0080)	// VDMA Shared Buffer FIFO 0 Reigster CH0
#define REG_EDMA_SBUF0_C1  (EDMA_BA + 0x0180)	// PDMA Shared Buffer FIFO 0 Reigster CH1
#define REG_EDMA_SBUF0_C2  (EDMA_BA + 0x0280)	// PDMA Shared Buffer FIFO 0 Reigster CH2
#define REG_EDMA_SBUF0_C3  (EDMA_BA + 0x0380)	// PDMA Shared Buffer FIFO 0 Reigster CH3
#define REG_EDMA_SBUF0_C4  (EDMA_BA + 0x0480)	// PDMA Shared Buffer FIFO 0 Reigster CH4

#define REG_EDMA_SBUF1_C0  (EDMA_BA + 0x0084)	// VDMA Shared Buffer FIFO 1 Reigster CH0
#define REG_EDMA_SBUF1_C1  (EDMA_BA + 0x0184)	// PDMA Shared Buffer FIFO 1 Reigster CH1
#define REG_EDMA_SBUF1_C2  (EDMA_BA + 0x0284)	// PDMA Shared Buffer FIFO 1 Reigster CH2
#define REG_EDMA_SBUF1_C3  (EDMA_BA + 0x0384)	// PDMA Shared Buffer FIFO 1 Reigster CH3
#define REG_EDMA_SBUF1_C4  (EDMA_BA + 0x0484)	// PDMA Shared Buffer FIFO 1 Reigster CH4

#define REG_EDMA_SBUF2_C0  (EDMA_BA + 0x0088)	// VDMA Shared Buffer FIFO 2 Reigster CH0
#define REG_EDMA_SBUF2_C1  (EDMA_BA + 0x0188)	// PDMA Shared Buffer FIFO 2 Reigster CH1
#define REG_EDMA_SBUF2_C2  (EDMA_BA + 0x0288)	// PDMA Shared Buffer FIFO 2 Reigster CH2
#define REG_EDMA_SBUF2_C3  (EDMA_BA + 0x0388)	// PDMA Shared Buffer FIFO 2 Reigster CH3
#define REG_EDMA_SBUF2_C4  (EDMA_BA + 0x0488)	// PDMA Shared Buffer FIFO 2 Reigster CH4

#define REG_EDMA_SBUF3_C0  (EDMA_BA + 0x008C)	// VDMA Shared Buffer FIFO 3 Reigster CH0
#define REG_EDMA_SBUF3_C1  (EDMA_BA + 0x018C)	// PDMA Shared Buffer FIFO 3 Reigster CH1
#define REG_EDMA_SBUF3_C2  (EDMA_BA + 0x028C)	// PDMA Shared Buffer FIFO 3 Reigster CH2
#define REG_EDMA_SBUF3_C3  (EDMA_BA + 0x038C)	// PDMA Shared Buffer FIFO 3 Reigster CH3
#define REG_EDMA_SBUF3_C4  (EDMA_BA + 0x048C)	// PDMA Shared Buffer FIFO 3 Reigster CH4

//#define BLT_BA	(N9H20_VA_BLT)
#define REG_SET2DA	(BLT_BA+0x0000)	// BitBlitting Accelerator Enable Set Up Register
	#define FILL_OP		BIT11		// Fill operation to rectangle	
	#define FILL_STYLE	NVTBIT(10, 8)	// Bitmap Fill Style
    #define TRCOLOR_E	BIT7            // RGB565 Transparent Color Enable
	#define TRANS_FLAG	NVTBIT( 6, 4)	// Transform Flag
	#define S_ALPHA		BIT3		// Reveal Source Image Alpha during Transparency
	#define FILL_BLEND	BIT2		// Alpha blending for Fill operation	
	#define L_ENDIAN	BIT1		// Palette Format Data Order
	#define BLIT_EN		BIT0		// Blit a bitmap to the frame buffer using the hardware accelerator
	
#define REG_SFMT	(BLT_BA+0x0004)	// Pixel Format of Source Bitmap Register
	#define S_RGB_bpp8	BIT5		// Bitmap Pixel Format bpp8_clutRGB
	#define S_RGB_bpp4	BIT4		// Bitmap Pixel Format bpp4_clutRGB
	#define S_RGB_bpp2	BIT3		// Bitmap Pixel Format bpp2_clutRGB
	#define S_RGB_bpp1	BIT2		// Bitmap Pixel Format bpp1_clutRGB
	#define S_RGB565	BIT1		// Bitmap Pixel Format bpp16_RGB565
	#define S_ARGB8888	BIT0		// Bitmap Pixel Format bpp32_ARGB8888			
	
#define REG_DFMT	(BLT_BA+0x0008)	// Pixel Format of Destination Bitmap Register
	#define D_RGB555	BIT2		// Display format RGB555 16 bit format
	#define D_RGB565	BIT1		// Display format RGB565 16 bit format
	#define D_ARGB8888	BIT0		// Display format ARGB8888 32 bit format		
	
#define REG_BLTINTCR	(BLT_BA+0x000C)	// BLT Interrupt Control and Status Register
	#define BLT_INTE	BIT1		// Blitting Complete Interrupt Enable
	#define BLT_INTS	BIT0		// Blitting Complete Interrupt Status

	
#define REG_MLTA	(BLT_BA+0x0010)	// Alpha Multiplier Register
	#define OFFSET_A	NVTBIT(31,16)	// Fixed point 8.8 A Color Offset Value
	#define MULTIPLIER_A	NVTBIT(15, 0)	// Fixed point 8.8 A Color Multiplier Value
	
#define REG_MLTR	(BLT_BA+0x0014)	// Red Multiplier Register
	#define OFFSET_R	NVTBIT(31,16)	// Fixed point 8.8 R Color Offset Value
	#define MULTIPLIER_R	NVTBIT(15, 0)	// Fixed point 8.8 R Color Multiplier Value
	
#define REG_MLTG	(BLT_BA+0x0018)	// Green Multiplier Register
	#define OFFSET_G	NVTBIT(31,16)	// Fixed point 8.8 G Color Offset Value
	#define MULTIPLIER_G	NVTBIT(15, 0)	// Fixed point 8.8 G Color Multiplier Value
	
#define REG_MLTB	(BLT_BA+0x001C)	// Blue Multiplier Register
	#define OFFSET_B	NVTBIT(31,16)	// Fixed point 8.8 B Color Offset Value
	#define MULTIPLIER_B	NVTBIT(15, 0)	// Fixed point 8.8 B Color Multiplier Value
	
#define REG_SWIDTH	(BLT_BA+0x0020)	// Width of Source Register
	#define WIDTH_S	NVTBIT(15, 0)		// The width of source Register
	
#define REG_SHEIGHT	(BLT_BA+0x0024)	// Height of Source Register
	#define HEIGHT_S	NVTBIT(15, 0)	// The Height of source Register
	
#define REG_DWIDTH	(BLT_BA+0x0028)	// Width of Destination Register
	#define WIDTH_D		NVTBIT(15, 0)	// The width of Destination Register
	
#define REG_DHEIGHT	(BLT_BA+0x002C)	// Height of Destination Register
	#define HEIGHT_D	NVTBIT(15, 0)	// The Height of Destination Register
	
#define REG_ELEMENTA	(BLT_BA+0x0030)	// Transform Element A Register
#define REG_ELEMENTB	(BLT_BA+0x0034)	// Transform Element B Register
#define REG_ELEMENTC	(BLT_BA+0x0038)	// Transform Element C Register
#define REG_ELEMENTD	(BLT_BA+0x003C)	// Transform Element D Register
#define REG_SADDR	(BLT_BA+0x0040)	// Source Remap Start Address Register
#define REG_DADDR	(BLT_BA+0x0044)	// Frame Buffer Address Register
#define REG_SSTRIDE	(BLT_BA+0x0048)	// Source Stride Register
	#define STRIDE_S	NVTBIT(15, 0)	// The Source Stride
	
#define REG_DSTRIDE	(BLT_BA+0x004C)	// Destination Stride Register
	#define STRIDE_D	NVTBIT(15, 0)	// The Destination Stride
#define REG_OFFSETSX	(BLT_BA+0x0050)	// Offset of Source X Register
#define REG_OFFSETSY	(BLT_BA+0x0054)	// Offset of Source Y Register

#define REG_TRCOLOR		(BLT_BA+0x058)	// RGB565 Transparent Color Register
	#define TRCOLOR	NVTBIT(15, 0)		// RGB565 Transparent Color
	
#define REG_FILLARGB	(BLT_BA+0x0060)	// ARGB Color Values for Fill Operation Register
	#define FILL_A		NVTBIT(31, 24)		// Alpha Values for Fill to a rectangle Operation.
	#define FILL_R		NVTBIT(23, 16)		// Red Color Values for Fill to a rectangle Operation.
	#define FILL_G		NVTBIT(15, 8)		// Green Color Values for Fill to a rectangle Operation.
	#define FILL_B		NVTBIT(7, 0)		// Blue Color Values for Fill to a rectangle Operation.
	
#define REG_PALETTE	(BLT_BA+0x0400)	// Color Palette Register







#define REG_ADC_CON	(ADC_BA+0x0000)	// R/W	ADC control register
		#define ADC_SYSCK_EN	 	BIT29			// R/W	Enable to System Clock Divider to ADC Input Clock		
		#define ADC_SYS_DIV 		NVTBIT(28, 24)	//R/W	System Clock Divider to ADC Input Clock
		#define WT_INT_EN		BIT23			// R/W	Waiting for trigger interrupt enable bit
		#define LVD_INT_EN		BIT22			// R/W	Low voltage detector interrupt enable bit
		#define ADC_INT_EN		BIT21			// R/W	ADC interrupt enable bit
		#define WT_INT			BIT20			// R/W	Waiting for trigger interrupt status bit
		#define LVD_INT			BIT19			// R/W	Low voltage detector (LVD) interrupt status bit
		#define ADC_INT			BIT18			// R/W	ADC interrupt status bit
		#define ADC_CON_ADC_EN	BIT17			// R/W	ADC block enable bit 
		#define ADC_RST			BIT16			// R/W	ADC reset control bit
		#define ADC_TSC_MODE	NVTBIT(15,14)	// R/W	The touch screen conversion mode control bits
		#define ADC_CONV			BIT13			// R	ADC conversion control bit
		#define ADC_READ_CONV	BIT12			// R/W	This bit control if next conversion start after ADC_XDATA register is read in normal conversion mode.
		#define ADC_MUX			NVTBIT(11,9)		// R/W	These bits select ADC input from the 8 analog inputs in normal conversion mode.
		#define ADC_DIV			NVTBIT(8,1)		// R/W	The ADC input clock divider. The real ADC operating clock is the input clock divide (ADC_DIV+1).
		#define ADC_FINISH		BIT0				// R	This bit indicate the ADC is in conversion or not

#define REG_ADC_TSC	(ADC_BA+0x0004)	// R/W	Touch screen control register
	#define ADC_TSC_MAV_EN 		BIT9				// R/W  MAV Filter Enable/Disable for the Touch Screen AutoMode
	#define ADC_TSC_XY			BIT8				// R/W	This bit control the X-position or Y-position detection when in semi-auto conversion mode
	#define ADC_TSC_XP			BIT7				// R/W	This bit control the interface to XP of touch screen when in normal conversion mode
	#define ADC_TSC_XM			BIT6				// R/W	This bit control the interface to XM of touch screen when in normal conversion mode
	#define ADC_TSC_YP			BIT5				// R/W	This bit control the interface to YP of touch screen when in normal conversion mode
	#define ADC_TSC_YM			BIT4				// R/W	This bit control the interface to YM of touch screen when in normal conversion mode
	#define ADC_PU_EN			BIT3				// R/W	This bit control the internal pull up PMOS in switch box is enable or disable
	#define ADC_TSC_TYPE			NVTBIT(2,1)		// R/W	The touch screen type selection bits
	#define ADC_UD				BIT0				// R	The up down state for stylus in waiting for trigger mode


#define REG_ADC_DLY		(ADC_BA+0x0008)	// R/W	ADC delay register
	#define ADC_DELAY			NVTBIT(17,0)		// R/W	Delay for Conversion. 

#define REG_ADC_XDATA	(ADC_BA+0x000C)	// R	10 bits ADC XDATA register
#define REG_ADC_YDATA	(ADC_BA+0x0010)	// R	10 bits ADC YDATA register

#define REG_LV_CON		(ADC_BA+0x0014)	// R/W	Low Voltage Detector Control register
	#define LV_EN				BIT3				// R/W	Low voltage detector enable control pin
	#define SW_CON				NVTBIT(2,0)		// R/W	The low voltage detector voltage level switch control bits

#define REG_LV_STS		(ADC_BA+0x0018)	// R	Low Voltage Detector Status register
	#define LV_STS				BIT0				// R	Low voltage detector status pin

#define REG_AUDIO_CON	(ADC_BA+0x001C)	// R/W: ADC Control Register
	#define AUDIO_INT_MODE 		NVTBIT(31,30) 	// Audio interrupt mode selection
	#define AUDIO_INT				BIT29			// Audio interrupt flag bits
	#define AUDIO_INT_EN			BIT28			// Audio interrupt flag bits
	#define AUDIO_VOL_EN			BIT27			// Volume control enable bit
	#define AUDIO_HPEN			BIT26			// Record path high pass enable bit
	#define AUDIO_EN				BIT25			// Record enable
	#define AUDIO_RESET			BIT24			// Record path high pass enable bit
	#define AUDIO_CCYCLE			NVTBIT(23, 16)	// Audio conversion cycle (Minimum value = 34)
	#define AUDIO_DATA			NVTBIT(15, 0)		// Last converted audio data before AUD_INT

#define REG_AUDIO_BUF0 	(ADC_BA+0x0020)	// R/W: Audio data register 0
#define REG_AUDIO_BUF1 	(ADC_BA+0x0024)	// R/W: Audio data register 1
#define REG_AUDIO_BUF2 	(ADC_BA+0x0028)	// R/W: Audio data register 2
#define REG_AUDIO_BUF3 	(ADC_BA+0x002C)	// R/W: Audio data register 3
	#define AUDIO_DATA1			NVTBIT(31, 16)	// Converted audio dat 1 in bufferx
	#define AUDIO_DATA0			NVTBIT(15, 0)		// Converted audio dat 0 in bufferx

#define REG_AGCP1	 	(ADC_BA+0x0030)// R/W: AGC Parameter Register Setting
	#define EDMA_MODE			BIT31			// EDMA mode Enable/Dislabe
	#define MAXGAIN				NVTBIT(22, 20)	// AGC MAXGAIN Control Register
	#define MINGAIN				NVTBIT(18, 16)	// AGC MINGAIN Control Register
	#define OTL					NVTBIT(15, 12)	// Output Target Level
	#define UPBAND				BIT11			// Up band for AGC
	#define DOWNBAND			BIT10			// Down band for AGC
	#define PRAGA				NVTBIT(9, 8)		// Pre- Amplifer Gain Control
	#define AUDIO_VOL			NVTBIT(5, 0)		// Audio Volume Control

#define REG_AGC_CON		(ADC_BA+0x0034)	// R/W: AGC Control Register
	#define NG_EN				BIT31			// Noise gate enable 
	#define AGC_EN				BIT30			// Auto gain control enable bit
	#define PAVG_MODE			NVTBIT(29, 28)	// Peak average mode
	#define PERIOD				NVTBIT(25, 16)	// Period
	#define AGAIN_STEP 			BIT15			// Up band for AGC
	#define NG_LEVEL				NVTBIT(13, 12)	// Down band for AGC
	#define ATTACK				NVTBIT(11, 8)		// Attack time 
	#define RECOVERY				NVTBIT(7, 4)		// Recovery time 
	#define HOLD					NVTBIT(3, 0)		// Hold time

#define REG_OPOC 		(ADC_BA+0x0038)	// R/W: AGC Parameter Register Setting
	#define MUTE_SW				BIT31			// Mute control under software mode
	#define OOC					BIT30			// Hardware OP Offset Calculation Enable = 0. Disable =1 
	#define OPOCM				BIT29			// OP Offset Cancellation Method
	#define OPOC_SW				NVTBIT(28, 24)	// OP Offset Cancellation
	#define OPOC_TCSN			NVTBIT(17, 16)	// OP Offset Total Calculation Sample Number 
	#define OPOC_DSC				NVTBIT(7, 0)		// OP Offset Caculation Delay Sample Count 

#define REG_OPOCS1 			(ADC_BA+0x0040)	// R: OP Offset Calculation Status
	#define OP_OFFSET_CAL		NVTBIT(29, 20)	// The OP Offset value after hardware calculation
	#define ADC_DATA_SUM		NVTBIT(19, 0)		// ADC Data Sum 

#define REG_TSC_SORT10 	(ADC_BA+0x0070)	// 10th Touch Screen MAV (Minimum)
#define REG_TSC_SORT9 	(ADC_BA+0x0074)	// 9th Touch Screen MAV
#define REG_TSC_SORT8 	(ADC_BA+0x0078)	// 8th Touch Screen MAV
#define REG_TSC_SORT7 	(ADC_BA+0x007C)	// 7th Touch Screen MAV
#define REG_TSC_SORT6 	(ADC_BA+0x0080)	// 6th Touch Screen MAV
#define REG_TSC_SORT5 	(ADC_BA+0x0084)	// 5th Touch Screen MAV
#define REG_TSC_SORT4 	(ADC_BA+0x0088)	// 4th Touch Screen MAV
#define REG_TSC_SORT3 	(ADC_BA+0x008C)	// 3rd Touch Screen MAV
#define REG_TSC_SORT2 	(ADC_BA+0x0090)	// 2nd Touch Screen MAV
#define REG_TSC_SORT1 	(ADC_BA+0x0094)	// 1st Touch Screen MAV	(Maximum)
	#define Y_MAV				NVTBIT(25, 16)		// MAV Y-Data
	#define X_MAV				NVTBIT(9, 0)			// MAV X-Data

#define REG_TSC_MAV_X 	(ADC_BA+0x0098)	// Touch Screen MAV X-Data
	#define X_MAV_AVG	NVTBIT(9, 0)			// MAV X-Data
#define REG_TSC_MAV_Y 	(ADC_BA+0x009C)	// Touch Screen MAV Y-Data
	#define Y_MAV_AVG	NVTBIT(9, 0)			// MAV Y-Data


#endif