📄 s2410.h
字号:
BYTE rsvd277; // 0x266
BYTE rsvd278; // 0x267
struct EP4DTMBits EP4DTM; // 0x268
BYTE rsvd279; // 0x269
BYTE rsvd280; // 0x26a
BYTE rsvd281; // 0x26b
struct EP4DTHBits EP4DTH; // 0x26C
};
//
// Registers : Interrupt Controller
//
#define INT_BASE 0xB0A00000 // 0x4A000000
typedef struct {
unsigned int rSRCPND;
unsigned int rINTMOD;
unsigned int rINTMSK;
unsigned int rPRIORITY;
unsigned int rINTPND;
unsigned int rINTOFFSET;
unsigned int rSUBSRCPND;
unsigned int rINTSUBMSK;
}INTreg ;
// S3C2410X01 Interrupt controller bit positions
#define BIT_EINT0 (0x1)
#define BIT_EINT1 (0x1<<1)
#define BIT_EINT2 (0x1<<2)
#define BIT_EINT3 (0x1<<3)
#define BIT_EINT4_7 (0x1<<4)
#define BIT_EINT8_23 (0x1<<5)
#define BIT_RSV1 (0x1<<6)
#define BIT_BAT_FLT (0x1<<7)
#define BIT_TICK (0x1<<8)
#define BIT_WDT (0x1<<9)
#define BIT_TIMER0 (0x1<<10)
#define BIT_TIMER1 (0x1<<11)
#define BIT_TIMER2 (0x1<<12)
#define BIT_TIMER3 (0x1<<13)
#define BIT_TIMER4 (0x1<<14)
#define BIT_UART2 (0x1<<15)
#define BIT_LCD (0x1<<16)
#define BIT_DMA0 (0x1<<17)
#define BIT_DMA1 (0x1<<18)
#define BIT_DMA2 (0x1<<19)
#define BIT_DMA3 (0x1<<20)
#define BIT_MMC (0x1<<21)
#define BIT_SPI0 (0x1<<22)
#define BIT_UART1 (0x1<<23)
#define BIT_RSV2 (0x1<<24)
#define BIT_USBD (0x1<<25)
#define BIT_USBH (0x1<<26)
#define BIT_IIC (0x1<<27)
#define BIT_UART0 (0x1<<28)
#define BIT_SPI1 (0x1<<29)
#define BIT_RTC (0x1<<30)
#define BIT_ADC (0x1<<31)
#define BIT_ALLMSK (0xffffffff)
#define BIT_SUB_ADC (0x1<<10)
#define BIT_SUB_TC (0x1<<9)
#define BIT_SUB_ERR2 (0x1<<8)
#define BIT_SUB_TXD2 (0x1<<7)
#define BIT_SUB_RXD2 (0x1<<6)
#define BIT_SUB_ERR1 (0x1<<5)
#define BIT_SUB_TXD1 (0x1<<4)
#define BIT_SUB_RXD1 (0x1<<3)
#define BIT_SUB_ERR0 (0x1<<2)
#define BIT_SUB_TXD0 (0x1<<1)
#define BIT_SUB_RXD0 (0x1<<0)
#define BIT_SUB_ALLMSK (0x7ff)
// S3C2410X01 Interrupt controller source number
#define INTSRC_EINT0 0
#define INTSRC_EINT1 1
#define INTSRC_EINT2 2
#define INTSRC_EINT3 3
#define INTSRC_EINT4_7 4
#define INTSRC_EINT8_23 5
#define INTSRC_RSV1 6
#define INTSRC_BAT_FLT 7
#define INTSRC_TICK 8
#define INTSRC_WDT 9
#define INTSRC_TIMER0 10
#define INTSRC_TIMER1 11
#define INTSRC_TIMER2 12
#define INTSRC_TIMER3 13
#define INTSRC_TIMER4 14
#define INTSRC_UART2 15
#define INTSRC_LCD 16
#define INTSRC_DMA0 17
#define INTSRC_DMA1 18
#define INTSRC_DMA2 19
#define INTSRC_DMA3 20
#define INTSRC_MMC 21
#define INTSRC_SPI0 22
#define INTSRC_UART1 23
#define INTSRC_RSV2 24
#define INTSRC_USBD 25
#define INTSRC_USBH 26
#define INTSRC_IIC 27
#define INTSRC_UART0 28
#define INTSRC_SPI1 29
#define INTSRC_RTC 30
#define INTSRC_ADC 31
#define INTSRC_ALLMSK (0xffffffff)
// S3C2410X01 Interrupt controller bit positions
// For SUB source pending bit.
#define INTSUB_RXD0 (0x1 << 0)
#define INTSUB_TXD0 (0x1 << 1)
#define INTSUB_ERR0 (0x1 << 2)
#define INTSUB_RXD1 (0x1 << 3)
#define INTSUB_TXD1 (0x1 << 4)
#define INTSUB_ERR1 (0x1 << 5)
#define INTSUB_RXD2 (0x1 << 6)
#define INTSUB_TXD2 (0x1 << 7)
#define INTSUB_ERR2 (0x1 << 8)
#define INTSUB_TC (0x1 << 9)
#define INTSUB_ADC (0x1 << 10)
#define INTSUB_SLLMSK (0xFFFFFFFF)
#define INTSUB_BASE 0xB0A00018 // 0x4A000018 // serial
#define INTSUB_MSK 0xB0A0001C // 0x4A00001C // serial
#define BIT_SUB_ALLMSK (0x7ff)
//
// Registers : LCD Controller
//
#define LCD_BASE 0xB0D00000 // 0x4D000000
typedef struct {
unsigned int rLCDCON1; // 00
unsigned int rLCDCON2; // 04
unsigned int rLCDCON3; // 08
unsigned int rLCDCON4; // 0C
unsigned int rLCDCON5; // 10
unsigned int rLCDSADDR1; // 14
unsigned int rLCDSADDR2; // 18
unsigned int rLCDSADDR3; // 1C
unsigned int rREDLUT; // 20
unsigned int rGREENLUT; // 24
unsigned int rBLUELUT; // 28
unsigned int rPAD[8]; // 2C - 48
unsigned int rDITHMODE; // 4C
unsigned int rTPAL; // 50
unsigned int rLCDINTPND; // 54
unsigned int rLCDSRCPND; // 58
unsigned int rLCDINTMSK; // 5C
unsigned int rLPCSEL; // 60
}LCDreg ;
// LCD register value...
#define MODE_STN_1BIT (1)
#define MODE_STN_2BIT (2)
#define MODE_STN_4BIT (4)
#define MODE_CSTN_8BIT (108)
#define MODE_CSTN_12BIT (112)
#define MODE_TFT_1BIT (201)
//#define MODE_TFT_2BIT (202)
//#define MODE_TFT_4BIT (204)
#define MODE_TFT_8BIT (208)
#define MODE_TFT_16BIT (216)
#define SCR_XSIZE (640) //for virtual screen
#define SCR_YSIZE (480)
//#define SCR_XSIZE_TFT (1280) //for virtual screen
//#define SCR_YSIZE_TFT (960)
#define SCR_XSIZE_TFT (480) //for virtual screen
#define SCR_YSIZE_TFT (640)
#define LCD_XSIZE_STN (320)
#define LCD_YSIZE_STN (240)
#define LCD_XSIZE_CSTN (320)
#define LCD_YSIZE_CSTN (240)
//#define LCD_XSIZE_STN (240)
//#define LCD_YSIZE_STN (320)
//#define LCD_XSIZE_CSTN (240)
//#define LCD_YSIZE_CSTN (320)
//#define LCD_XSIZE_TFT (640)
//#define LCD_YSIZE_TFT (480)
#define LCD_XSIZE_TFT (240)
#define LCD_YSIZE_TFT (320)
#define ARRAY_SIZE_STN_1BIT (SCR_XSIZE/8*SCR_YSIZE)
#define ARRAY_SIZE_STN_2BIT (SCR_XSIZE/4*SCR_YSIZE)
#define ARRAY_SIZE_STN_4BIT (SCR_XSIZE/2*SCR_YSIZE)
#define ARRAY_SIZE_CSTN_8BIT (SCR_XSIZE/1*SCR_YSIZE)
#define ARRAY_SIZE_CSTN_12BIT (SCR_XSIZE*2*SCR_YSIZE)
#define ARRAY_SIZE_TFT_8BIT (SCR_XSIZE/1*SCR_YSIZE)
#define ARRAY_SIZE_TFT_16BIT (SCR_XSIZE*2*SCR_YSIZE)
#define HOZVAL_STN (LCD_XSIZE_STN/4-1)
#define HOZVAL_CSTN (LCD_XSIZE_CSTN*3/8-1)
#define HOZVAL_TFT (LCD_XSIZE_TFT-1)
#define LINEVAL_STN (LCD_YSIZE_STN-1)
#define LINEVAL_CSTN (LCD_YSIZE_CSTN-1)
#define LINEVAL_TFT (LCD_YSIZE_TFT-1)
#define MVAL (13)
#define MVAL_USED (0)
//STN/CSTN timing parameter for LCBHBT161M(NANYA)
#define WLH (3)
#define WDLY (3)
#define LINEBLANK (1 &0xff)
//TFT timing parameter for V16C6448AB(PRIME VIEW)
/*
#define VBPD ((33-1)&0xff)
#define VFPD ((10-1)&0xff)
#define VSPW ((2-1) &0x3f)
#define HBPD ((48-1)&0x7f)
#define HFPD ((16-1)&0xff)
#define HSPW ((96-1)&0xff)
*/
#define VBPD ((1)&0xff)
#define VFPD ((2)&0xff)
#define VSPW ((1) &0x3f)
#define HBPD ((6)&0x7f)
//
#define HFPD ((2)&0xff)
//#define HSPW ((3)&0xff)
#define HSPW ((4)&0xff)
#define CLKVAL_STN_MONO (22)
//69.14hz @60Mhz,WLH=16clk,WDLY=16clk,LINEBLANK=1*8,VD=4
#define CLKVAL_STN_GRAY (12)
//124hz @60Mhz,WLH=16clk,WDLY=16clk,LINEBLANK=1*8,VD=4
#define CLKVAL_CSTN (8)
//135hz @60Mhz,WLH=16clk,WDLY=16clk,LINEBLANK=1*8,VD=8
//#define CLKVAL_TFT (1)
#define CLKVAL_TFT (6)
//#define CLKVAL_TFT (7)
//NOTE: 1)SDRAM should have 32-bit bus width.
// 2)HBPD,HFPD,HSPW should be optimized.
//44.6hz @75Mhz
//VSYNC,HSYNC should be inverted
//HBPD=48VCLK,HFPD=16VCLK,HSPW=96VCLK
//VBPD=33HSYNC,VFPD=10HSYNC,VSPW=2HSYNC
#define M5D(n) ((n) & 0x1fffff)
//
// ADC
//
#define ADC_BASE 0xB1800000 // 0x58000000
typedef struct {
unsigned int rADCCON;
unsigned int rADCTSC;
unsigned int rADCDLY;
unsigned int rADCDAT0;
unsigned int rADCDAT1;
}ADCreg ;
//
// Registers : RTC
//
#define RTC_BASE 0xB1700000 // 0x57000000
typedef struct {
unsigned int rPAD1[16]; // 00 - 3C
unsigned int rRTCCON; // 40
unsigned int rTICINT;
unsigned int rPAD2[2];
unsigned int rRTCALM;
unsigned int rALMSEC;
unsigned int rALMMIN;
unsigned int rALMHOUR;
unsigned int rALMDAY;
unsigned int rALMMON;
unsigned int rALMYEAR;
unsigned int rRTCRST;
unsigned int rBCDSEC;
unsigned int rBCDMIN;
unsigned int rBCDHOUR;
unsigned int rBCDDAY;
unsigned int rBCDDATE;
unsigned int rBCDMON;
unsigned int rBCDYEAR;
} RTCreg;
#if 0 // _BIG_ENDIAN
#define rRTCCON (*(volatile unsigned char *)0xB1700043)
#define rRTCALM (*(volatile unsigned char *)0xB1700053)
#define rALMSEC (*(volatile unsigned char *)0xB1700057)
#define rALMMIN (*(volatile unsigned char *)0xB170005b)
#define rALMHOUR (*(volatile unsigned char *)0xB170005f)
#define rALMDAY (*(volatile unsigned char *)0xB1700063)
#define rALMMON (*(volatile unsigned char *)0xB1700067)
#define rALMYEAR (*(volatile unsigned char *)0xB170006b)
#define rRTCRST (*(volatile unsigned char *)0xB170006f)
#define rBCDSEC (*(volatile unsigned char *)0xB1700073)
#define rBCDMIN (*(volatile unsigned char *)0xB1700077)
#define rBCDHOUR (*(volatile unsigned char *)0xB170007b)
#define rBCDDAY (*(volatile unsigned char *)0xB170007f)
#define rBCDDATE (*(volatile unsigned char *)0xB1700083)
#define rBCDMON (*(volatile unsigned char *)0xB1700087)
#define rBCDYEAR (*(volatile unsigned char *)0xB170008b)
#define rTICINT (*(volatile unsigned char *)0xB1700047)
#endif
//
// Watch-Dog Timver
//
#define WATCH_BASE 0xB1300000 // 0x53000000
typedef struct {
unsigned long rWTCON;
unsigned long rWTDAT;
unsigned long rWTCNT;
} WATCHreg;
//
// SD / MMC
//
#define MMC_BACE 0xB1A00000 // 0x5A000000
typedef struct {
unsigned int rSDICON;
unsigned int rSDIPRE;
unsigned int rSDICMDARG;
unsigned int rSDICMDCON;
unsigned int rSDICMDSTA;
unsigned int rSDIRSP0;
unsigned int rSDIRSP1;
unsigned int rSDIRSP2;
unsigned int rSDIRSP3;
unsigned int rSDIDTIMER;
unsigned int rSDIBSIZE;
unsigned int rSDIDATCON;
unsigned int rSDIDATCNT;
unsigned int rSDIDATSTA;
unsigned int rSDIFSTA;
unsigned int rSDIDAT;
unsigned int rSDIINTMSK;
} MMCreg;
//
// IIC
//
#define IIC_BASE 0xB1400000 // 54000000
#define IICFIF_PHYS 0x54000000 // physical address of IIC
typedef struct {
unsigned int rIICCON;
unsigned int rIICSTAT;
unsigned int rIICADD;
unsigned int rIICDS;
}IICreg;
//
// IIS
//
#define IIS_BASE 0xB1500000
#define IISFIF_PHYS 0x55000010 // physical address of IISFIF for DMA
typedef struct {
unsigned int rIISCON;
unsigned int rIISMOD;
unsigned int rIISPSR;
unsigned int rIISFCON;
unsigned int rIISFIF;
}IISreg;
//
// SPI
//
#define SSP_BASE 0xB1900000 // 0x59000000
typedef struct {
unsigned int rSPCON0; // 00
unsigned int rSPSTA0;
unsigned int rSPPIN0;
unsigned int rSPPRE0;
unsigned int rSPTDAT0; // 10
unsigned int rSPRDAT0;
unsigned int rPAD[2];
unsigned int rSPCON1; // 20
unsigned int rSPSTA1;
unsigned int rSPPIN1;
unsigned int rSPPRE1;
unsigned int rSPTDAT1; // 30
unsigned int rSPRDAT1;
}SSPreg ;
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -