| /********************************************************/ |
| /* */ |
| /* Samsung S3C44B0 */ |
| /* tpu <tapu@371.net> */ |
| /* */ |
| /********************************************************/ |
| #ifndef __ASM_ARCH_HARDWARE_H |
| #define __ASM_ARCH_HARDWARE_H |
| |
| #define REGBASE 0x01c00000 |
| #define REGL(addr) (*(volatile unsigned int *)(REGBASE+addr)) |
| #define REGW(addr) (*(volatile unsigned short *)(REGBASE+addr)) |
| #define REGB(addr) (*(volatile unsigned char *)(REGBASE+addr)) |
| |
| |
| /*****************************/ |
| /* CPU Wrapper Registers */ |
| /*****************************/ |
| |
| #define SYSCFG REGL(0x000000) |
| #define NCACHBE0 REGL(0x000004) |
| #define NCACHBE1 REGL(0x000008) |
| #define SBUSCON REGL(0x040000) |
| |
| /************************************/ |
| /* Memory Controller Registers */ |
| /************************************/ |
| |
| #define BWSCON REGL(0x080000) |
| #define BANKCON0 REGL(0x080004) |
| #define BANKCON1 REGL(0x080008) |
| #define BANKCON2 REGL(0x08000c) |
| #define BANKCON3 REGL(0x080010) |
| #define BANKCON4 REGL(0x080014) |
| #define BANKCON5 REGL(0x080018) |
| #define BANKCON6 REGL(0x08001c) |
| #define BANKCON7 REGL(0x080020) |
| #define REFRESH REGL(0x080024) |
| #define BANKSIZE REGL(0x080028) |
| #define MRSRB6 REGL(0x08002c) |
| #define MRSRB7 REGL(0x080030) |
| |
| /*********************/ |
| /* UART Registers */ |
| /*********************/ |
| |
| #define ULCON0 REGL(0x100000) |
| #define ULCON1 REGL(0x104000) |
| #define UCON0 REGL(0x100004) |
| #define UCON1 REGL(0x104004) |
| #define UFCON0 REGL(0x100008) |
| #define UFCON1 REGL(0x104008) |
| #define UMCON0 REGL(0x10000c) |
| #define UMCON1 REGL(0x10400c) |
| #define UTRSTAT0 REGL(0x100010) |
| #define UTRSTAT1 REGL(0x104010) |
| #define UERSTAT0 REGL(0x100014) |
| #define UERSTAT1 REGL(0x104014) |
| #define UFSTAT0 REGL(0x100018) |
| #define UFSTAT1 REGL(0x104018) |
| #define UMSTAT0 REGL(0x10001c) |
| #define UMSTAT1 REGL(0x10401c) |
| #define UTXH0 REGB(0x100020) |
| #define UTXH1 REGB(0x104020) |
| #define URXH0 REGB(0x100024) |
| #define URXH1 REGB(0x104024) |
| #define UBRDIV0 REGL(0x100028) |
| #define UBRDIV1 REGL(0x104028) |
| |
| /*******************/ |
| /* SIO Registers */ |
| /*******************/ |
| |
| #define SIOCON REGL(0x114000) |
| #define SIODAT REGL(0x114004) |
| #define SBRDR REGL(0x114008) |
| #define ITVCNT REGL(0x11400c) |
| #define DCNTZ REGL(0x114010) |
| |
| /********************/ |
| /* IIS Registers */ |
| /********************/ |
| |
| #define IISCON REGL(0x118000) |
| #define IISMOD REGL(0x118004) |
| #define IISPSR REGL(0x118008) |
| #define IISFIFCON REGL(0x11800c) |
| #define IISFIF REGW(0x118010) |
| |
| /**************************/ |
| /* I/O Ports Registers */ |
| /**************************/ |
| |
| #define PCONA REGL(0x120000) |
| #define PDATA REGL(0x120004) |
| #define PCONB REGL(0x120008) |
| #define PDATB REGL(0x12000c) |
| #define PCONC REGL(0x120010) |
| #define PDATC REGL(0x120014) |
| #define PUPC REGL(0x120018) |
| #define PCOND REGL(0x12001c) |
| #define PDATD REGL(0x120020) |
| #define PUPD REGL(0x120024) |
| #define PCONE REGL(0x120028) |
| #define PDATE REGL(0x12002c) |
| #define PUPE REGL(0x120030) |
| #define PCONF REGL(0x120034) |
| #define PDATF REGL(0x120038) |
| #define PUPF REGL(0x12003c) |
| #define PCONG REGL(0x120040) |
| #define PDATG REGL(0x120044) |
| #define PUPG REGL(0x120048) |
| #define SPUCR REGL(0x12004c) |
| #define EXTINT REGL(0x120050) |
| #define EXTINTPND REGL(0x120054) |
| |
| /*********************************/ |
| /* WatchDog Timers Registers */ |
| /*********************************/ |
| |
| #define WTCON REGL(0x130000) |
| #define WTDAT REGL(0x130004) |
| #define WTCNT REGL(0x130008) |
| |
| /*********************************/ |
| /* A/D Converter Registers */ |
| /*********************************/ |
| |
| #define ADCCON REGL(0x140000) |
| #define ADCPSR REGL(0x140004) |
| #define ADCDAT REGL(0x140008) |
| |
| /***************************/ |
| /* PWM Timer Registers */ |
| /***************************/ |
| |
| #define TCFG0 REGL(0x150000) |
| #define TCFG1 REGL(0x150004) |
| #define TCON REGL(0x150008) |
| #define TCNTB0 REGL(0x15000c) |
| #define TCMPB0 REGL(0x150010) |
| #define TCNTO0 REGL(0x150014) |
| #define TCNTB1 REGL(0x150018) |
| #define TCMPB1 REGL(0x15001c) |
| #define TCNTO1 REGL(0x150020) |
| #define TCNTB2 REGL(0x150024) |
| #define TCMPB2 REGL(0x150028) |
| #define TCNTO2 REGL(0x15002c) |
| #define TCNTB3 REGL(0x150030) |
| #define TCMPB3 REGL(0x150034) |
| #define TCNTO3 REGL(0x150038) |
| #define TCNTB4 REGL(0x15003c) |
| #define TCMPB4 REGL(0x150040) |
| #define TCNTO4 REGL(0x150044) |
| #define TCNTB5 REGL(0x150048) |
| #define TCNTO5 REGL(0x15004c) |
| |
| /*********************/ |
| /* IIC Registers */ |
| /*********************/ |
| |
| #define IICCON REGL(0x160000) |
| #define IICSTAT REGL(0x160004) |
| #define IICADD REGL(0x160008) |
| #define IICDS REGL(0x16000c) |
| |
| /*********************/ |
| /* RTC Registers */ |
| /*********************/ |
| |
| #define RTCCON REGB(0x170040) |
| #define RTCALM REGB(0x170050) |
| #define ALMSEC REGB(0x170054) |
| #define ALMMIN REGB(0x170058) |
| #define ALMHOUR REGB(0x17005c) |
| #define ALMDAY REGB(0x170060) |
| #define ALMMON REGB(0x170064) |
| #define ALMYEAR REGB(0x170068) |
| #define RTCRST REGB(0x17006c) |
| #define BCDSEC REGB(0x170070) |
| #define BCDMIN REGB(0x170074) |
| #define BCDHOUR REGB(0x170078) |
| #define BCDDAY REGB(0x17007c) |
| #define BCDDATE REGB(0x170080) |
| #define BCDMON REGB(0x170084) |
| #define BCDYEAR REGB(0x170088) |
| #define TICINT REGB(0x17008c) |
| |
| /*********************************/ |
| /* Clock & Power Registers */ |
| /*********************************/ |
| |
| #define PLLCON REGL(0x180000) |
| #define CLKCON REGL(0x180004) |
| #define CLKSLOW REGL(0x180008) |
| #define LOCKTIME REGL(0x18000c) |
| |
| /**************************************/ |
| /* Interrupt Controller Registers */ |
| /**************************************/ |
| |
| #define INTCON REGL(0x200000) |
| #define INTPND REGL(0x200004) |
| #define INTMOD REGL(0x200008) |
| #define INTMSK REGL(0x20000c) |
| #define I_PSLV REGL(0x200010) |
| #define I_PMST REGL(0x200014) |
| #define I_CSLV REGL(0x200018) |
| #define I_CMST REGL(0x20001c) |
| #define I_ISPR REGL(0x200020) |
| #define I_ISPC REGL(0x200024) |
| #define F_ISPR REGL(0x200038) |
| #define F_ISPC REGL(0x20003c) |
| |
| /********************************/ |
| /* LCD Controller Registers */ |
| /********************************/ |
| |
| #define LCDCON1 REGL(0x300000) |
| #define LCDCON2 REGL(0x300004) |
| #define LCDSADDR1 REGL(0x300008) |
| #define LCDSADDR2 REGL(0x30000c) |
| #define LCDSADDR3 REGL(0x300010) |
| #define REDLUT REGL(0x300014) |
| #define GREENLUT REGL(0x300018) |
| #define BLUELUT REGL(0x30001c) |
| #define DP1_2 REGL(0x300020) |
| #define DP4_7 REGL(0x300024) |
| #define DP3_5 REGL(0x300028) |
| #define DP2_3 REGL(0x30002c) |
| #define DP5_7 REGL(0x300030) |
| #define DP3_4 REGL(0x300034) |
| #define DP4_5 REGL(0x300038) |
| #define DP6_7 REGL(0x30003c) |
| #define LCDCON3 REGL(0x300040) |
| #define DITHMODE REGL(0x300044) |
| |
| /*********************/ |
| /* DMA Registers */ |
| /*********************/ |
| |
| #define ZDCON0 REGL(0x280000) |
| #define ZDISRC0 REGL(0x280004) |
| #define ZDIDES0 REGL(0x280008) |
| #define ZDICNT0 REGL(0x28000c) |
| #define ZDCSRC0 REGL(0x280010) |
| #define ZDCDES0 REGL(0x280014) |
| #define ZDCCNT0 REGL(0x280018) |
| |
| #define ZDCON1 REGL(0x280020) |
| #define ZDISRC1 REGL(0x280024) |
| #define ZDIDES1 REGL(0x280028) |
| #define ZDICNT1 REGL(0x28002c) |
| #define ZDCSRC1 REGL(0x280030) |
| #define ZDCDES1 REGL(0x280034) |
| #define ZDCCNT1 REGL(0x280038) |
| |
| #define BDCON0 REGL(0x380000) |
| #define BDISRC0 REGL(0x380004) |
| #define BDIDES0 REGL(0x380008) |
| #define BDICNT0 REGL(0x38000c) |
| #define BDCSRC0 REGL(0x380010) |
| #define BDCDES0 REGL(0x380014) |
| #define BDCCNT0 REGL(0x380018) |
| |
| #define BDCON1 REGL(0x380020) |
| #define BDISRC1 REGL(0x380024) |
| #define BDIDES1 REGL(0x380028) |
| #define BDICNT1 REGL(0x38002c) |
| #define BDCSRC1 REGL(0x380030) |
| #define BDCDES1 REGL(0x380034) |
| #define BDCCNT1 REGL(0x380038) |
| |
| |
| #define CLEAR_PEND_INT(n) I_ISPC = (1<<(n)) |
| #define INT_ENABLE(n) INTMSK &= ~(1<<(n)) |
| #define INT_DISABLE(n) INTMSK |= (1<<(n)) |
| |
| #define HARD_RESET_NOW() |
| |
| #endif /* __ASM_ARCH_HARDWARE_H */ |