📄 s3c2410.cpp
字号:
#include "precomp.h"
#include "S3C2410.h"
#include "Regmap.h"
//globle:
extern I2C g_i2c;
extern UART g_uart;
extern CHIP_TYPE g_ChipType;
//Method:
CHIP_TYPE FindChrontelChip() // Only search CH7023/7024 and Ch7025
{
UCHAR val=0;
CHIP_TYPE ret;
g_i2c.GetReg(0x00,&val);
switch(val)
{
case 0x54:
ret=CHIP_CH7026;
break;
case 0x55:
ret=CHIP_CH7025;
break;
default:
RETAILMSG(1,(_T("Now Ch7026 or Ch7025 connected!\n")));
ret=CHIP_NUMBER;
break;
}
return ret;
}
void InitChrontelChip(CHIP_TYPE chiptype)
{
RETAILMSG(1,(_T("InitChrontelChip()!\r\n")));
switch(chiptype)
{
case CHIP_CH7023:
CH7023Init();
break;
case CHIP_CH7025:
CH7025Init();
break;
default:
break;
}
}
void CH7023Init()
{
RETAILMSG(1,(_T("CH7023Init()!\r\n")));
int i;
for(i=0;i<initNTSClen7023_320x240;i++)
{
g_i2c.SetReg(initNTSCreg7023_320x240[i][0],&initNTSCreg7023_320x240[i][1]);
}
}
void CH7025Init()
{
RETAILMSG(1,(_T("CH7025Init()!\r\n")));
int i = 0,mfailed = 0,timeout = 20000;
UCHAR val=0;
RETAILMSG(1,(_T("CH7025_240x320!\r\n")));
for(i=0;i<initNTSClen7025_240x320;i++)
{
if(!g_i2c.SetReg(initNTSCreg7025_240x320[i][0],&initNTSCreg7025_240x320[i][1]))
mfailed++;
RETAILMSG(0,(_T("Set Register[0x%x]=0x%x\r\n"),initNTSCreg7025_240x320[i][0],initNTSCreg7025_240x320[i][1]));
}
if(mfailed)
{
RETAILMSG(1,(_T("CH7025 init failed!!!\r\n")));
return;
}
//Now to wait the SDRAM init completed:
val=0x03;
g_i2c.SetReg(0x06,&val);
val=0x01;
g_i2c.SetReg(0x06,&val);
//read status bit:
while(timeout--)
{
g_i2c.GetReg(0x7E,&val);
if(val&0x08)
break;
}
if(timeout==0)
{
RETAILMSG(1,(_T("SDRAM init failed!\n")));
return;
}
val=0x00;
g_i2c.SetReg(0x06,&val);
//stop again:
val=0x01;
g_i2c.SetReg(0x06,&val);
val=0x00;
g_i2c.SetReg(0x06,&val);
RETAILMSG(1,(_T("CH7025Init() completed!\r\n")));
}
void CheckLCDReg()
{
volatile S3C2410_LCDreg *lcd_reg = (S3C2410_LCDreg *)S3C2410_LCD_VA_BASE; //using virtual address in kernel
RETAILMSG(DEBUG_ZONE,(_T("******************begin*******************")));
RETAILMSG(DEBUG_ZONE,(_T("s2410LCD->rLCDCON1=%X\n\r"),lcd_reg->rLCDCON1));
RETAILMSG(DEBUG_ZONE,(_T("s2410LCD->rLCDCON2=%X\n\r"),lcd_reg->rLCDCON2));
RETAILMSG(DEBUG_ZONE,(_T("s2410LCD->rLCDCON3=%X\n\r"),lcd_reg->rLCDCON3));
RETAILMSG(DEBUG_ZONE,(_T("s2410LCD->rLCDCON4=%X\n\r"),lcd_reg->rLCDCON4));
RETAILMSG(DEBUG_ZONE,(_T("s2410LCD->rLCDCON5=%X\n\r"),lcd_reg->rLCDCON5));
RETAILMSG(DEBUG_ZONE,(_T("s2410LCD->rLCDSADDR1=%X\n\r"),lcd_reg->rLCDSADDR1));
RETAILMSG(DEBUG_ZONE,(_T("s2410LCD->rLCDSADDR2=%X\n\r"),lcd_reg->rLCDSADDR2));
RETAILMSG(DEBUG_ZONE,(_T("s2410LCD->rLCDSADDR3=%X\n\r"),lcd_reg->rLCDSADDR3));
RETAILMSG(DEBUG_ZONE,(_T("s2410LCD->rREDLUT=%X\n\r"),lcd_reg->rREDLUT));
RETAILMSG(DEBUG_ZONE,(_T("s2410LCD->rGREENLUT=%X\n\r"),lcd_reg->rGREENLUT));
RETAILMSG(DEBUG_ZONE,(_T("s2410LCD->rBLUELUT=%X\n\r"),lcd_reg->rBLUELUT));
RETAILMSG(DEBUG_ZONE,(_T("s2410LCD->rDITHMODE=%X\n\r"),lcd_reg->rDITHMODE));
RETAILMSG(DEBUG_ZONE,(_T("s2410LCD->rTPAL=%X\n\r"),lcd_reg->rTPAL));
RETAILMSG(DEBUG_ZONE,(_T("s2410LCD->rLCDINTMSK=%X\n\r"),lcd_reg->rLCDINTMSK));
RETAILMSG(DEBUG_ZONE,(_T("s2410LCD->rLPCSEL=%X\n\r"),lcd_reg->rLPCSEL));
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -