📄 s3c2410x.h
字号:
/* s3c2410x.h - definitions of "s3c2410x" machine for skyeye Copyright (C) 2004 Skyeye Develop Group for help please send mail to <skyeye-developer@lists.gro.clinux.org> This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *//* * 12/30/2004 initial version * * Shi Yang <shy828301@126.com> * */#ifndef __S3C2410X_H_#define __S3C2410X_H_#define REGW(addr) (*(volatile unsigned int *)(addr))/********************************************* Memory Controller Registers********************************************/#define MEM_CTL_BASE (0x48000000)#define MEM_CTL_SIZE (0x30)#define BWSCON MEM_CTL_BASE+(0x0)#define BANKCON0 MEM_CTL_BASE+(0x4)#define BANKCON1 MEM_CTL_BASE+(0x8)#define BANKCON2 MEM_CTL_BASE+(0xc)#define BANKCON3 MEM_CTL_BASE+(0x10)#define BANKCON4 MEM_CTL_BASE+(0x14)#define BANKCON5 MEM_CTL_BASE+(0x18)#define BANKCON6 MEM_CTL_BASE+(0x1c)#define BANKCON7 MEM_CTL_BASE+(0x20)#define REFRESH MEM_CTL_BASE+(0x24)#define BANKSIZE MEM_CTL_BASE+(0x28)#define MRSRB6 MEM_CTL_BASE+(0x2c)#define MRSRB7 MEM_CTL_BASE+(0x30)/********************************************* LCD Controller Registers********************************************/#define LCD_CTL_BASE (0x4D000000)#define LCD_CTL_SIZE (0x60)/********************************************* GPIO Controller Registers********************************************/#define GPIO_CTL_BASE (0x56000000)#define GPIO_CTL_SIZE (0xC0)#define GPACON GPIO_CTL_BASE+(0x0)#define GPADAT GPIO_CTL_BASE+(0x4)#define GPBCON GPIO_CTL_BASE+(0x10)#define GPBDAT GPIO_CTL_BASE+(0x14)#define GPBUP GPIO_CTL_BASE+(0x18)#define GPCCON GPIO_CTL_BASE+(0x20)#define GPCDAT GPIO_CTL_BASE+(0x24)#define GPCUP GPIO_CTL_BASE+(0x28)#define GPDCON GPIO_CTL_BASE+(0x30)#define GPDDAT GPIO_CTL_BASE+(0x34)#define GPDUP GPIO_CTL_BASE+(0x38)#define GPECON GPIO_CTL_BASE+(0x40)#define GPEDAT GPIO_CTL_BASE+(0x44)#define GPEUP GPIO_CTL_BASE+(0x48)#define GPFCON GPIO_CTL_BASE+(0x50)#define GPFDAT GPIO_CTL_BASE+(0x54)#define GPFUP GPIO_CTL_BASE+(0x58)#define GPGCON GPIO_CTL_BASE+(0x60)#define GPGDAT GPIO_CTL_BASE+(0x64)#define GPGUP GPIO_CTL_BASE+(0x68)#define GPHCON GPIO_CTL_BASE+(0x70)#define GPHDAT GPIO_CTL_BASE+(0x74)#define GPHUP GPIO_CTL_BASE+(0x78)#define MISCCR GPIO_CTL_BASE+(0x80)#define DCLKCON GPIO_CTL_BASE+(0x84)#define EXTINT0 GPIO_CTL_BASE+(0x88)#define EXTINT1 GPIO_CTL_BASE+(0x8c)#define EXTINT2 GPIO_CTL_BASE+(0x90)#define EINTFLT0 GPIO_CTL_BASE+(0x94)#define EINTFLT1 GPIO_CTL_BASE+(0x98)#define EINTFLT2 GPIO_CTL_BASE+(0x9c)#define EINTFLT3 GPIO_CTL_BASE+(0xa0)#define EINTMASK GPIO_CTL_BASE+(0xa4)#define EINTPEND GPIO_CTL_BASE+(0xa8)#define GSTATUS0 GPIO_CTL_BASE+(0xac)#define GSTATUS1 GPIO_CTL_BASE+(0xb0)#define GSTATUS2 GPIO_CTL_BASE+(0xb4)#define GSTATUS3 GPIO_CTL_BASE+(0xb8)#define GSTATUS4 GPIO_CTL_BASE+(0xbc)/********************************************* Clock and Power Management Registers********************************************/#define CLK_CTL_BASE (0x4c000000)#define LOCKTIME CLK_CTL_BASE+(0x0)#define MPLLCON CLK_CTL_BASE+(0x4)#define UPLLCON CLK_CTL_BASE+(0x8)#define CLKCON CLK_CTL_BASE+(0xc)#define CLKSLOW CLK_CTL_BASE+(0x10)#define CLKDIVN CLK_CTL_BASE+(0x14)/********************************************* UART Control Registers********************************************/#define UART_CTL_BASE0 (0x50000000)#define UART_CTL_SIZE (0x802c)#define ULCON (0x0)#define UCON (0x4)#define UFCON (0x8)#define UMCON (0xc)#define UTRSTAT (0x10)#define UERSTAT (0x14)#define UFSTAT (0x18)#define UMSTAT (0x1c)#define UTXH (0x20)#define URXH (0x24)#define UBRDIV (0x28)/**************************************//* Interrupt Controller Registers *//**************************************/#define INT_CTL_BASE (0x4a000000)#define SRCPND INT_CTL_BASE+(0x0)#define INTMOD INT_CTL_BASE+(0x4)#define INTMSK INT_CTL_BASE+(0x8)#define PRIORITY INT_CTL_BASE+(0xc)#define INTPND INT_CTL_BASE+(0x10)#define INTOFFSET INT_CTL_BASE+(0x14)#define SUBSRCPND INT_CTL_BASE+(0x18)#define INTSUBMSK INT_CTL_BASE+(0x1c)#define INT_ADCTC (1 << 31) /* ADC EOC interrupt */#define INT_RTC (1 << 30) /* RTC alarm interrupt */#define INT_SPI1 (1 << 29) /* UART1 transmit interrupt */#define INT_UART0 (1 << 28) /* UART0 transmit interrupt */#define INT_IIC (1 << 27) /* IIC interrupt */#define INT_USBH (1 << 26) /* USB host interrupt */#define INT_USBD (1 << 25) /* USB device interrupt */#define INT_RESERVED24 (1 << 24)#define INT_UART1 (1 << 23) /* UART1 receive interrupt */#define INT_SPI0 (1 << 22) /* SPI interrupt */#define INT_MMC (1 << 21) /* MMC interrupt */#define INT_DMA3 (1 << 20) /* DMA channel 3 interrupt */#define INT_DMA2 (1 << 19) /* DMA channel 2 interrupt */#define INT_DMA1 (1 << 18) /* DMA channel 1 interrupt */#define INT_DMA0 (1 << 17) /* DMA channel 0 interrupt */#define INT_LCD (1 << 16) /* reserved for future use */#define INT_UART2 (1 << 15) /* UART 2 interrupt */#define INT_TIMER4 (1 << 14) /* Timer 4 interrupt */#define INT_TIMER3 (1 << 13) /* Timer 3 interrupt */#define INT_TIMER2 (1 << 12) /* Timer 2 interrupt */#define INT_TIMER1 (1 << 11) /* Timer 1 interrupt */#define INT_TIMER0 (1 << 10) /* Timer 0 interrupt */#define INT_WDT (1 << 9) /* Watch-Dog timer interrupt */#define INT_TICK (1 << 8) /* RTC time tick interrupt */#define INT_BAT_FLT (1 << 7)#define INT_RESERVED6 (1 << 6) /* Reserved for future use */#define INT_EINT8_23 (1 << 5) /* External interrupt 8 ~ 23 */#define INT_EINT4_7 (1 << 4) /* External interrupt 4 ~ 7 */#define INT_EINT3 (1 << 3) /* External interrupt 3 */#define INT_EINT2 (1 << 2) /* External interrupt 2 */#define INT_EINT1 (1 << 1) /* External interrupt 1 */#define INT_EINT0 (1 << 0) /* External interrupt 0 */#define INT_ADC (1 << 10)#define INT_TC (1 << 9)#define INT_ERR2 (1 << 8)#define INT_TXD2 (1 << 7)#define INT_RXD2 (1 << 6)#define INT_ERR1 (1 << 5)#define INT_TXD1 (1 << 4)#define INT_RXD1 (1 << 3)#define INT_ERR0 (1 << 2)#define INT_TXD0 (1 << 1)#define INT_RXD0 (1 << 0)#define INT_MASK_INIT 0xffffffff#define INT_SUBMSK_INIT 0x7ff/*********************//* RTC Registers *//*********************/#define RTC_CTL_BASE (0x57000000)#define RTCCON RTC_CTL_BASE+(0x40)#define TICNT RTC_CTL_BASE+(0x44)#define RTCALM RTC_CTL_BASE+(0x50)#define ALMSEC RTC_CTL_BASE+(0x54)#define ALMMIN RTC_CTL_BASE+(0x58)#define ALMHOUR RTC_CTL_BASE+(0x5c)#define ALMDATE RTC_CTL_BASE+(0x60)#define ALMMON RTC_CTL_BASE+(0x64)#define ALMYEAR RTC_CTL_BASE+(0x68)#define RTCRST RTC_CTL_BASE+(0x6c)#define BCDSEC RTC_CTL_BASE+(0x70)#define BCDMIN RTC_CTL_BASE+(0x74)#define BCDHOUR RTC_CtL_BASE+(0x78)#define BCDDATE RTC_CTL_BASE+(0x7c)#define BCDDAY RTC_CTL_BASE+(0x80)#define BCDMON RTC_CTL_BASE+(0x84)#define BCDYEAR RTC_CTL_BASE+(0x88)/***************************//* WatchDog Timer Registers *//***************************/#define WD_TIMER_BASE 0x53000000#define WDCON (WD_TIMER_BASE + 0)#define WDDAT (WD_TIMER_BASE + 0x4)#define WDCNT (WD_TIMER_BASE + 0x8)/***************************//* PWM Timer Registers *//***************************/#define PWM_CTL_BASE (0x51000000)#define PWM_CTL_SIZE (0x44)#define TCFG0 (0x0)#define TCFG1 (0x4)#define TCON (0x8)#define TCNTB0 (0xc)#define TCMPB0 (0x10)#define TCNTO0 (0x14)#define TCNTB1 (0x18)#define TCMPB1 (0x1c)#define TCNTO1 (0x20)#define TCNTB2 (0x24)#define TCMPB2 (0x28)#define TCNTO2 (0x2c)#define TCNTB3 (0x30)#define TCMPB3 (0x34)#define TCNTO3 (0x38)#define TCNTB4 (0x3c)#define TCNTO4 (0x40)#define S3C2410_TIMER_NUM 5struct s3c2410x_clkpower{ u32 locktime; u32 mpllcon; u32 upllcon; u32 clkcon; u32 clkslow; u32 clkdivn;};struct s3c2410x_timer_io{ u32 tcfg0; u32 tcfg1; u32 tcon; int tcnt[S3C2410_TIMER_NUM]; int tcmp[S3C2410_TIMER_NUM]; int tcntb[S3C2410_TIMER_NUM]; int tcmpb[S3C2410_TIMER_NUM]; int tcnto[S3C2410_TIMER_NUM];};struct s3c2410x_uart_io{ u32 ulcon; /* UART line control register */ u32 ucon; /* UART control register */ u32 ufcon; /* UART FIFO control register */ u32 umcon; /* UART Modem control register */ u32 utrstat; /* UART Tx/Rx status register */ u32 uerstat; /* UART Rx error status register */ u32 ufstat; /* UART FIFO status register */ u32 umstat; /* UART Modem status register */ u32 utxh; /* UART transmit buffer register */ u32 urxh; /* UART receive buffer register */ u32 ubrdiv; /* Baud rate divisor register 0 */};#define UART_INT_RXD 0x1#define UART_INT_TXD 0x2#define UART_INT_EXD 0x4#define UART_UCON_INIT 0x5#define UART_ULCON_INIT 0x3 //8N1#define UART_UTRSTAT_INIT 0x6#endif /* __S3C2410X_H_ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -