www.pudn.com > S3c2410bsp.zip > s3c2410x.h


/* s3c2410x.h - header for Samsung s3c2410x with ARM9 core */


#ifndef __INCs3c2410xh
#define __INCs3c2410xh

#ifdef __cplusplus
extern "C" {
#endif


#define S3C2410X_BWSCON             (0x48000000)
#define S3C2410X_BANKCON0           (0x48000004)
#define S3C2410X_BANKCON1           (0x48000008)
#define S3C2410X_BANKCON2           (0x4800000c)
#define S3C2410X_BANKCON3           (0x48000010)
#define S3C2410X_BANKCON4           (0x48000014)
#define S3C2410X_BANKCON5           (0x48000018)
#define S3C2410X_BANKCON6           (0x4800001c)
#define S3C2410X_BANKCON7           (0x48000020)
#define S3C2410X_REFRESH            (0x48000024)
#define S3C2410X_BANKSIZE           (0x48000028)
#define S3C2410X_MRSRB6             (0x4800002c)
#define S3C2410X_MRSRB7             (0x48000030)

#define rBWSCON           (*(volatile unsigned *)0x48000000)



#define S3C2410X_NFCONF				(0x4e000000)
#define S3C2410X_NFCMD				(0x4e000004)
#define S3C2410X_NFADDR				(0x4e000008)
#define S3C2410X_NFDATA				(0x4e00000c)
#define S3C2410X_NFSTAT				(0x4e000010)
#define S3C2410X_NFECC				(0x4e000014)


#define S3C2410X_LOCKTIME			(0x4c000000)
#define S3C2410X_MPLLCON			(0x4c000004)
#define S3C2410X_UPLLCON			(0x4c000008)
#define S3C2410X_CLKCON				(0x4c00000c)
#define S3C2410X_CLKSLOW			(0x4c000010)
#define S3C2410X_CLKDIVN			(0x4c000014)


#define S3C2410X_DISRC0					(0x4b000000)
#define	S3C2410X_DISRC1					(0x4b000040)
#define S3C2410X_DISRC2					(0x4b000080)
#define S3C2410X_DISRC3					(0x4b0000c0)

#define S3C2410X_DISRCC0				(0x4b000004)
#define S3C2410X_DISRCC1				(0x4b000044)
#define S3C2410X_DISRCC2				(0x4b000084)
#define S3C2410X_DISRCC3				(0x4b0000c4)

#define S3C2410X_DIDST0					(0x4b000008)
#define S3C2410X_DIDST1					(0x4b000048)
#define S3C2410X_DIDST2					(0x4b000088)
#define S3C2410X_DIDST3					(0x4b0000c8)



#define S3C2410X_DIDSTC0				(0x4b00000c)
#define S3C2410X_DIDSTC1				(0x4b00004c)
#define S3C2410X_DIDSTC2				(0x4b00008c)
#define S3C2410X_DIDSTC3				(0x4b0000cc)

#define S3C2410X_DCON0					(0x4b000010)
#define S3C2410X_DCON1					(0x4b000050)
#define S3C2410X_DCON2					(0x4b000090)
#define S3C2410X_DCON3					(0x4b0000d0)

#define S3C2410X_DSTAT0					(0x4b000014)
#define S3C2410X_DSTAT1					(0x4b000054)
#define S3C2410X_DSTAT2					(0x4b000094)
#define S3C2410X_DSTAT3					(0x4b0000d4)

#define S3C2410X_DCSRC0					(0x4b000018)
#define S3C2410X_DCSRC1					(0x4b000058)
#define S3C2410X_DCSRC2					(0x4b000098)
#define S3C2410X_DCSRC3					(0x4b0000d8)

#define S3C2410X_DCDST0					(0x4b00001c)
#define S3C2410X_DCDST1					(0x4b00005c)
#define S3C2410X_DCDST2					(0x4b00009c)
#define S3C2410X_DCDST3					(0x4b0000dc)

#define S3C2410X_DMASKTRIG0				(0x4b000020)
#define S3C2410X_DMASKTRIG1				(0x4b000060)
#define S3C2410X_DMASKTRIG2				(0x4b0000a0)
#define S3C2410X_DMASKTRIG3				(0x4b0000e0)


#define S3C2410X_SRCPND				(0x4a000000)
#define S3C2410X_INTMODE           	(0x4a000004)
#define S3C2410X_INTMASK           	(0x4a000008)
#define S3C2410X_PRIORITY			(0x4a00000c)
#define S3C2410X_INTPEND           	(0x4a000010)
#define S3C2410X_INTOFFSET			(0x4a000014)

#define S3C2410X_SUBSRCPND			(0x4a000018)
#define S3C2410X_INTSUBMSK			(0x4a00001c)

#define S3C2410X_INTLEVEL_NUM       32
#define S3C2410X_INTMASK_VAL        (~((unsigned int)((1<<6)+(1<<24))))
#define S3C2410X_INTMASK_OPEN        0xffffffff
#define S3C2410X_INTBIT_CLR			0xffffffff
#define S3C2410X_INTMODEIRQ         0x0

#define rSRCPND            (*(volatile unsigned *)0x4a000000)
#define rINTMODE            (*(volatile unsigned *)0x4a000004)
#define rINTMASK            (*(volatile unsigned *)0x4a000008)
#define rPRIORITY            (*(volatile unsigned *)0x4a00000c)
#define rINTPEND            (*(volatile unsigned *)0x4a000010)
#define rINTOFFSET            (*(volatile unsigned *)0x4a000014)
#define rSUBSRCPND            (*(volatile unsigned *)0x4a000018)
#define rINTSUBMSK            (*(volatile unsigned *)0x4a00001c)


#define S3C2410X_INTENB         	S3C2410X_INTMASK
#define S3C2410X_INTDIS         	S3C2410X_INTMASK                          


#define S3C2410X_WTCON            	(0x53000000)
#define S3C2410X_WTDAT            	(0x53000004)
#define S3C2410X_WTCNT            	(0x53000008)
#define rWTCON            (*(volatile unsigned *)0x53000000)
#define rWTDAT            (*(volatile unsigned *)0x53000004)
#define rWTCNT            (*(volatile unsigned *)0x53000008)



#define SERIAL_A_BASE_ADR       	(0x50000000)
#define SERIAL_B_BASE_ADR       	(0x50004000)
#define SERIAL_C_BASE_ADR       	(0x50008000)



#define S3C2410X_PCONA            	(0x56000000)
#define S3C2410X_PDATA            	(0x56000004)
                        
#define S3C2410X_PCONB            	(0x56000010)
#define S3C2410X_PDATB            	(0x56000014)
#define S3C2410X_PUPB				(0x56000018)
                        
#define S3C2410X_PCONC            	(0x56000020)
#define S3C2410X_PDATC            	(0x56000024)
#define S3C2410X_PUPC             	(0x56000028)
                        
#define S3C2410X_PCOND            	(0x56000030)
#define S3C2410X_PDATD            	(0x56000034)
#define S3C2410X_PUPD             	(0x56000038)
                        
#define S3C2410X_PCONE            	(0x56000040)
#define S3C2410X_PDATE            	(0x56000044)
#define S3C2410X_PUPE             	(0x56000048)
                          
#define S3C2410X_PCONF            	(0x56000050)
#define S3C2410X_PDATF            	(0x56000054)
#define S3C2410X_PUPF             	(0x56000058)
                          
#define S3C2410X_PCONG            	(0x56000060)
#define S3C2410X_PDATG            	(0x56000064)
#define S3C2410X_PUPG             	(0x56000068)

#define S3C2410X_PCONH            	(0x56000070)
#define S3C2410X_PDATH            	(0x56000074)
#define S3C2410X_PUPH             	(0x56000078)

#define S3C2410X_MISCCR				(0x56000080)
#define S3C2410X_DCLKCON			(0x56000084)

#define S3C2410X_EXTINT0           	(0x56000088)
#define S3C2410X_EXTINT1           	(0x5600008C)
#define S3C2410X_EXTINT2           	(0x56000090)

#define S3C2410X_EXINTFLT0          (0x56000094)
#define S3C2410X_EXINTFLT1          (0x56000098)
#define S3C2410X_EXINTFLT2          (0x5600009C)
#define S3C2410X_EXINTFLT3          (0x560000a0)

#define S3C2410X_EXINTMASK          (0x560000a4)
#define S3C2410X_EXTINTPND        	(0x560000a8)

#define S3C2410X_GSTATUS0           (0x560000ac)
#define S3C2410X_GSTATUS1           (0x560000b0)
#define S3C2410X_GSTATUS2           (0x560000b4)
#define S3C2410X_GSTATUS3           (0x560000b8)
#define S3C2410X_GSTATUS4           (0x560000bc)




#define rPCONA            (*(volatile unsigned *)0x56000000)
#define rPDATA            (*(volatile unsigned *)0x56000004)
                        
#define rPCONB            (*(volatile unsigned *)0x56000010)
#define rPDATB            (*(volatile unsigned *)0x56000014)
#define rPUPB			  (*(volatile unsigned *)0x56000018)
                        
#define rPCONC            (*(volatile unsigned *)0x56000020)
#define rPDATC            (*(volatile unsigned *)0x56000024)
#define rPUPC             (*(volatile unsigned *)0x56000028)
                        
#define rPCOND            (*(volatile unsigned *)0x56000030)
#define rPDATD            (*(volatile unsigned *)0x56000034)
#define rPUPD             (*(volatile unsigned *)0x56000038)
                        
#define rPCONE            (*(volatile unsigned *)0x56000040)
#define rPDATE            (*(volatile unsigned *)0x56000044)
#define rPUPE             (*(volatile unsigned *)0x56000048)
                          
#define rPCONF            (*(volatile unsigned *)0x56000050)
#define rPDATF            (*(volatile unsigned *)0x56000054)
#define rPUPF             (*(volatile unsigned *)0x56000058)

#define rPCONG            	(*(volatile unsigned *)0x56000060)
#define rPDATG            	(*(volatile unsigned *)0x56000064)
#define rPUPG             	(*(volatile unsigned *)0x56000068)

#define rPCONH            	(*(volatile unsigned *)0x56000070)
#define rPDATH            	(*(volatile unsigned *)0x56000074)
#define rPUPH             	(*(volatile unsigned *)0x56000078)

#define rMISCCR				(*(volatile unsigned *)0x56000080)
#define rDCLKCON			(*(volatile unsigned *)0x56000084)

#define rEXTINT0           	(*(volatile unsigned *)0x56000088)
#define rEXTINT1           	(*(volatile unsigned *)0x5600008C)
#define rEXTINT2           	(*(volatile unsigned *)0x56000090)

#define rEXINTFLT0          (*(volatile unsigned *)0x56000094)
#define rEXINTFLT1          (*(volatile unsigned *)0x56000098)
#define rEXINTFLT2          (*(volatile unsigned *)0x5600009C)
#define rEXINTFLT3          (*(volatile unsigned *)0x560000a0)

#define rEXINTMASK          (*(volatile unsigned *)0x560000a4)
#define rEXINTPND        	(*(volatile unsigned *)0x560000a8)

#define rGSTATUS0           (*(volatile unsigned *)0x560000ac)
#define rGSTATUS1           (*(volatile unsigned *)0x560000b0)
#define rGSTATUS2           (*(volatile unsigned *)0x560000b4)
#define rGSTATUS3           (*(volatile unsigned *)0x560000b8)
#define rGSTATUS4           (*(volatile unsigned *)0x560000bc)




#define S3C2410X_TCFG0	   				(0x51000000)
#define S3C2410X_TCFG1	   				(0x51000004)
#define S3C2410X_TCON	   				(0x51000008)
#define S3C2410X_TCNTB0	   				(0x5100000c)
#define S3C2410X_TCMPB0	   				(0x51000010)
#define S3C2410X_TCNTO0	   				(0x51000014)

#define S3C2410X_TCNTB1	   				(0x51000018)
#define S3C2410X_TCMPB1	   				(0x5100001c)
#define S3C2410X_TCNTO1	   				(0x51000020)

#define S3C2410X_TCNTB2	   				(0x51000024)
#define S3C2410X_TCMPB2	   				(0x51000028)
#define S3C2410X_TCNTO2	   				(0x5100002c)

#define S3C2410X_TCNTB3	   				(0x51000030)
#define S3C2410X_TCMPB3	   				(0x51000034)
#define S3C2410X_TCNTO3	   				(0x51000038)

#define S3C2410X_TCNTB4	   				(0x5100003c)
#define S3C2410X_TCNTO4	   				(0x51000040)

#define rTCFG0	   				(*(volatile unsigned *)0x51000000)
#define rTCFG1	   				(*(volatile unsigned *)0x51000004)
#define rTCON	   				(*(volatile unsigned *)0x51000008)
#define rTCNTB0	   				(*(volatile unsigned *)0x5100000c)
#define rTCMPB0	   				(*(volatile unsigned *)0x51000010)
#define rTCNTO0	   				(*(volatile unsigned *)0x51000014)

#define rTCNTB1	   				(*(volatile unsigned *)0x51000018)
#define rTCMPB1	   				(*(volatile unsigned *)0x5100001c)
#define rTCNTO1	   				(*(volatile unsigned *)0x51000020)

#define rTCNTB2	   				(*(volatile unsigned *)0x51000024)
#define rTCMPB2	   				(*(volatile unsigned *)0x51000028)
#define rTCNTO2	   				(*(volatile unsigned *)0x5100002c)

#define rTCNTB3	   				(*(volatile unsigned *)0x51000030)
#define rTCMPB3	   				(*(volatile unsigned *)0x51000034)
#define rTCNTO3	   				(*(volatile unsigned *)0x51000038)

#define rTCNTB4	   				(*(volatile unsigned *)0x5100003c)
#define rTCNTO4	   				(*(volatile unsigned *)0x51000040)


#define S3C2410X_HcRevision					(0x49000000)
#define S3C2410X_HcControl					(0x49000004)
#define S3C2410X_HcCommonStatus				(0x49000008)
#define S3C2410X_HcInterruptStatus			(0x4900000c)
#define S3C2410X_HcInterruptEnable			(0x49000010)
#define S3C2410X_HcInterruptDisable			(0x49000014)

#define S3C2410X_HcHCCA						(0x49000018)
#define S3C2410X_HcPeriodCuttentED			(0x4900001c)
#define S3C2410X_HcControlHeadED			(0x49000020)
#define S3C2410X_HcControlCurrentED			(0x49000024)
#define S3C2410X_HcBulkHeadED				(0x49000028)
#define S3C2410X_HcBulkCurrentED			(0x4900002c)
#define S3C2410X_HcDoneHead					(0x49000030)

#define S3C2410X_HcRmInterval				(0x49000034)
#define S3C2410X_HcFmRemaining				(0x49000038)
#define S3C2410X_HcFmNumber					(0x4900003c)
#define S3C2410X_HcPeriodicStart			(0x49000040)
#define S3C2410X_HcLSThreshold				(0x49000044)

#define S3C2410X_HcRhDescriptorA			(0x49000048)
#define S3C2410X_HcRhDescriptorB			(0x4900004c)
#define S3C2410X_HcRhStatus					(0x49000050)
#define S3C2410X_HcRhPortStatus1			(0x49000054)
#define S3C2410X_HcRhPortStatus2			(0x49000058)


#define S3C2410X_IICCON						(0x54000000)
#define S3C2410X_IICSTAT					(0x54000004)
#define S3C2410X_IICADD						(0x54000008)
#define S3C2410X_IICDS						(0x5400000c)

#define rIICCON		(*(volatile unsigned *)0x54000000)
#define rIICSTAT	(*(volatile unsigned *)0x54000004)
#define rIICADD		(*(volatile unsigned *)0x54000008)
#define rIICDS		(*(volatile unsigned *)0x5400000c)


#define S3C2410X_IISCON						(0x55000000)
#define S3C2410X_IISMOD						(0x55000004)
#define S3C2410X_IISPSR						(0x55000008)
#define S3C2410X_IISFCON					(0x5500000c)
#ifdef BSP_44B0_LITTLE_ENDIAN
#define S3C2410X_IISFIFO					(0x55000010)
#else
#define S3C2410X_IISFIFO					(0x55000012)
#endif

#define rIISCON		(*(volatile unsigned *)0x55000000)
#define rIISMOD		(*(volatile unsigned *)0x55000004)
#define rIISPSR		(*(volatile unsigned *)0x55000008)
#define rIISFCON	(*(volatile unsigned *)0x5500000c)

#ifdef BSP_44B0_LITTLE_ENDIAN
#define rIISFIF		((volatile unsigned short *)0x55000010)
#else 
#define rIISFIF		((volatile unsigned short *)0x55000012)
#endif

#define S3C2410X_SPCON0					(0x59000000)
#define S3C2410X_SPSTA0					(0x59000004)
#define S3C2410X_SPPIN0					(0x59000008)
#define S3C2410X_SPPRE0					(0x5900000C)
#define S3C2410X_SPDTAT0				(0x59000010)
#define S3C2410X_SPRDAT0				(0x59000014)

#define S3C2410X_SPCON1					(0x59000020)
#define S3C2410X_SPSTA1					(0x59000024)
#define S3C2410X_SPPIN1					(0x59000028)
#define S3C2410X_SPPRE1					(0x5900002C)
#define S3C2410X_SPDTAT1				(0x59000030)
#define S3C2410X_SPRDAT1				(0x59000034)

#define rSPCON0					(*(volatile unsigned char *)0x59000000)
#define rSPSTA0					(*(volatile unsigned char *)0x59000004)
#define rSPPIN0					(*(volatile unsigned char *)0x59000008)
#define rSPPRE0					(*(volatile unsigned char *)0x5900000C)
#define rSPDTAT0				(*(volatile unsigned char *)0x59000010)
#define rSPRDAT0				(*(volatile unsigned char *)0x59000014)

#define rSPCON1					(*(volatile unsigned char *)0x59000020)
#define rSPSTA1					(*(volatile unsigned char *)0x59000024)
#define rSPPIN1					(*(volatile unsigned char *)0x59000028)
#define rSPPRE1					(*(volatile unsigned char *)0x5900002C)
#define rSPDTAT1				(*(volatile unsigned char *)0x59000030)
#define rSPRDAT1				(*(volatile unsigned char *)0x59000034)

#ifdef BSP_44B0_LITTLE_ENDIAN
#define S3C2410X_RTCCON				(0x57000040)
#define S3C2410X_TICNT				(0x57000044)
#define S3C2410X_RTCALM				(0x57000050)
#define S3C2410X_ALMSEC				(0x57000054)
#define S3C2410X_ALMMIN				(0x57000058)
#define S3C2410X_ALMHOUR			(0x5700005C)
#define S3C2410X_ALMDATE			(0x57000060)
#define S3C2410X_ALMMON				(0x57000064)
#define S3C2410X_ALMYEAR			(0x57000068)
#define S3C2410X_RTCRST				(0x5700006C)
#define S3C2410X_BCDSEC				(0x57000070)
#define S3C2410X_BCDMIN				(0x57000074)
#define S3C2410X_BCDHOUR			(0x57000078)
#define S3C2410X_BCDDATE			(0x5700007C)
#define S3C2410X_BCDDAY				(0x57000080)
#define S3C2410X_BCDMON				(0x57000084)
#define S3C2410X_BCDYEAR			(0x57000088)
#else
#define S3C2410X_RTCCON				(0x57000043)
#define S3C2410X_TICNT				(0x57000047)
#define S3C2410X_RTCALM				(0x57000053)
#define S3C2410X_ALMSEC				(0x57000057)
#define S3C2410X_ALMMIN				(0x5700005B)
#define S3C2410X_ALMHOUR			(0x5700005F)
#define S3C2410X_ALMDATE			(0x57000063)
#define S3C2410X_ALMMON				(0x57000067)
#define S3C2410X_ALMYEAR			(0x5700006B)
#define S3C2410X_RTCRST				(0x5700006F)
#define S3C2410X_BCDSEC				(0x57000073)
#define S3C2410X_BCDMIN				(0x57000077)
#define S3C2410X_BCDHOUR			(0x5700007B)
#define S3C2410X_BCDDATE			(0x5700007F)
#define S3C2410X_BCDDAY				(0x57000083)
#define S3C2410X_BCDMON				(0x57000087)
#define S3C2410X_BCDYEAR			(0x5700008B)
#endif

#ifdef BSP_44B0_LITTLE_ENDIAN
#define rRTCCON				(*(volatile unsigned char *)0x57000040)
#define rTICNT				(*(volatile unsigned char *)0x57000044)
#define rRTCALM				(*(volatile unsigned char *)0x57000050)
#define rALMSEC				(*(volatile unsigned char *)0x57000054)
#define rALMMIN				(*(volatile unsigned char *)0x57000058)
#define rALMHOUR			(*(volatile unsigned char *)0x5700005C)
#define rALMDATE			(*(volatile unsigned char *)0x57000060)
#define rALMMON				(*(volatile unsigned char *)0x57000064)
#define rALMYEAR			(*(volatile unsigned char *)0x57000068)
#define rRTCRST				(*(volatile unsigned char *)0x5700006C)
#define rBCDSEC				(*(volatile unsigned char *)0x57000070)
#define rBCDMIN				(*(volatile unsigned char *)0x57000074)
#define rBCDHOUR			(*(volatile unsigned char *)0x57000078)
#define rBCDDATE			(*(volatile unsigned char *)0x5700007C)
#define rBCDDAY				(*(volatile unsigned char *)0x57000080)
#define rBCDMON				(*(volatile unsigned char *)0x57000084)
#define rBCDYEAR			(*(volatile unsigned char *)0x57000088)
#else
#define rRTCCON				(*(volatile unsigned char *)0x57000043)
#define rTICNT				(*(volatile unsigned char *)0x57000047)
#define rRTCALM				(*(volatile unsigned char *)0x57000053)
#define rALMSEC				(*(volatile unsigned char *)0x57000057)
#define rALMMIN				(*(volatile unsigned char *)0x5700005B)
#define rALMHOUR			(*(volatile unsigned char *)0x5700005F)
#define rALMDATE			(*(volatile unsigned char *)0x57000063)
#define rALMMON				(*(volatile unsigned char *)0x57000067)
#define rALMYEAR			(*(volatile unsigned char *)0x5700006B)
#define rRTCRST				(*(volatile unsigned char *)0x5700006F)
#define rBCDSEC				(*(volatile unsigned char *)0x57000073)
#define rBCDMIN				(*(volatile unsigned char *)0x57000077)
#define rBCDHOUR			(*(volatile unsigned char *)0x5700007B)
#define rBCDDATE			(*(volatile unsigned char *)0x5700007F)
#define rBCDDAY				(*(volatile unsigned char *)0x57000083)
#define rBCDMON				(*(volatile unsigned char *)0x57000087)
#define rBCDYEAR			(*(volatile unsigned char *)0x5700008B)
#endif

	
#define SZ_1K                           0x00000400
#define SZ_4K                           0x00001000
#define SZ_8K                           0x00002000
#define SZ_16K                          0x00004000
#define SZ_64K                          0x00010000
#define SZ_128K                         0x00020000
#define SZ_256K                         0x00040000
#define SZ_512K                         0x00080000

#define SZ_1M                           0x00100000
#define SZ_2M                           0x00200000
#define SZ_4M                           0x00400000
#define SZ_8M                           0x00800000
#define SZ_16M                          0x01000000
#define SZ_32M                          0x02000000
#define SZ_64M                          0x04000000
#define SZ_128M                         0x08000000
#define SZ_256M                         0x10000000
#define SZ_512M                         0x20000000

#define NETBASE           ((volatile unsigned char  *)(0x18000000))

#define REG8(addr)  		*((volatile unsigned char * const) (addr))
#define REG16(addr) 		*((volatile unsigned short * const) (addr))
#define REG32(addr) 		*((volatile unsigned long * const) (addr))

#ifdef __cplusplus
}
#endif

#endif /* __INCs3c2410xh */