?? panel.c
字號(hào):
#include "..\inc\Panel.h"
//extern void Delay(int time); // 1ms
typedef void (*LcdSetReg)(UINT8 Status, UINT32 Byte_Length);
#define LCD_POWERON_BYPASS 1
void V5_BySetRSHigh(UINT16 value)
{
*(volatile UINT16 *)0x8000200=value;
}
void V5_BySetRSLow(UINT16 addr)
{
*(volatile UINT16 *)0x8000000=addr;
}
#if 0
#if GITEK_TFT_HD66773_8
/*******************************************************
driver ic bias size
mainpanel:HD66773_8 (0x2,0x0) 128*160
********************************************************/
void MLcdSetReg(int adr,int val)
{
V5_BySetRSLow(adr>>8);
V5_BySetRSLow(adr);
V5_BySetRSHigh(val>>8);
V5_BySetRSHigh(val);
}
static LCDReg gMLCD_powon[] =
{
{0x0, 0x0001, 5},
//power setting 1
{0xe, 0x1019, 0},
{0xc, 0x0001, 0},
{0xd, 0x0404, 0},
{0x4, 0x8000, 0},
{0x3b, 0x0602, 0},
{0x3a, 0x1490, 0},
//Initfun 1
{0x7, 0x0104, 0},
{0x1, 0x0113, 0},
{0x2, 0x0700, 0},
{0x5, 0x1030, 0},
{0x6, 0x0000, 0},
{0xb, 0x0004, 0},
{0x3, 0x000c, 5},
//power setting 2
{0xe, 0x301a, 0},
{0xd, 0x0414, 5},
//Initfun 2
{0x30, 0x0000, 0},
{0x31, 0x0000, 0},
{0x32, 0x0000, 0},
{0x33, 0x0000, 0},
{0x34, 0x0000, 0},
{0x35, 0x0000, 0},
{0x36, 0x0000, 0},
{0x37, 0x0000, 0},
{0xf, 0x0002, 0},
{0x11, 0x0000, 0},
{0x14, 0x5c00, 0},
{0x15, 0x9f00, 0},
{0x16, 0x8102, 0},
{0x17, 0x9f00, 0},
{0x21, 0x0002, 5},
//display control on
{0x7, 0x0105, 5},
{0x7, 0x0125, 5},
{0x7, 0x0127, 5},
{0x7, 0x0137, 0},
};
LCDParm MLcdParm =
{
{ sizeof(gMLCD_powon) / sizeof(LCDReg), (PLCDReg)&gMLCD_powon }, //power on
{ 0, NULL }, //stand by
{ 0, NULL }, //sleep
{ 0, NULL }, //stand by
};
#endif
#endif
#if LTS180S3_HF1
/*******************************************************
driver ic bias size
mainpanel:HD66773_16 (0x0,0x0) 128*160
********************************************************/
void MLcdSetReg(int adr,int val)
{
#if LCD_POWERON_BYPASS
if(adr==0xffff)
{
V5_BySetRSHigh((UINT16)val);
return;
}
if(val==0xffff)
{
V5_BySetRSLow((UINT16)adr);
return;
}
V5_BySetRSLow(adr);
V5_BySetRSHigh(val);
//*(volatile UINT16*)(0x8000000) =adr;
//*(volatile UINT16*)(0x8000200) =val;
#else
VIM_HAPI_SetWorkMode(VIM_HAPI_MODE_CAMERAON);
if(adr==0xffff)
{
VIM_LCDIF_RsHExW((UINT16)val);
return;
}
if(val==0xffff)
{
VIM_LCDIF_RsLExW((UINT16)adr);
return;
}
VIM_LCDIF_RsLExW(adr);
VIM_LCDIF_RsHExW(val);
#endif
}
UINT16 MLcdGetReg(int adr)
{
UINT16 i;
//V5B_LcdifRsLExW(adr);
//i=V5B_LcdifRsHExR();
return i;
}
const LCDReg gMPanel_wakefstd[] =
{
{0x0, 0x01, 10},
{0x3, 0x0, 10}
};
const LCDReg gMPanel_stdby[] =
{
{0x7, 0x137, 0},
{0x7, 0x136, 40},
{0x7, 0x126, 40},
{0x7, 0x4, 0},
{0x3, 0x7fd, 0}
};
const LCDReg gMPanel_sleep[] =
{
{0x7, 0x137, 0},
{0x7, 0x136, 20},
{0x7, 0x126, 20},
{0x7, 0x4, 0},
{0x3, 0x7fe, 0}
};
const LCDReg gMPanel_powoff[] =
{
{0x7, 0x136, 20},
{0x7, 0x126, 20},
{0x7, 0x4, 0},
{0x3, 0x7fc, 0}
};
const LCDReg gMLCD_powon[] =
{
{0x7, 0x104, 0},
{0xd, 0x0201, 0},//0x100
{0xe, 0x0e19, 20},//0x0d18
{0x1, 0x113, 0},
{0x2, 0x700, 0},
{0x5, 0x1230, 0},
{0x6, 0x0, 0},
{0xb, 0x4008, 0},
{0xc, 0x0, 0},
{0x3, 0x0508, 0},//0x0008
{0x4, 0x0, 20},
{0xe, 0x2e19, 0},//0x2d18
{0xd, 0x0211, 20},//0x110
{0x30, 0x700, 0},
{0x31, 0x7, 0},
{0x32, 0x0, 0},
{0x33, 0x100, 0},
{0x34, 0x707, 0},
{0x35, 0x7, 0},
{0x36, 0x700, 0},
{0x37, 0x0001, 0},//0x0007
{0x0f, 0x0, 0},
{0x11, 0x0, 0},
{0x14, 0x5c00, 0},
{0x15, 0x9f5d, 0},
{0x16, 0x7f00, 0},
{0x17, 0x9f00, 0},
{0x3a, 0x1800, 0},
{0x3b, 0x7, 5},
{0x7, 0x105, 20},
{0x7, 0x125, 0},
{0x7, 0x127, 20},
{0x7, 0x137, 0},
{0x21, 0x0000, 0}
};
LCDParm MLcdParm =
{
{ sizeof(gMLCD_powon) / sizeof(LCDReg), (PLCDReg)&gMLCD_powon }, //power on
{ sizeof(gMPanel_stdby) / sizeof(LCDReg), (PLCDReg)&gMPanel_stdby }, //stand by
{ sizeof(gMPanel_sleep) / sizeof(LCDReg), (PLCDReg)&gMPanel_sleep }, //sleep
{ sizeof(gMPanel_wakefstd) / sizeof(LCDReg), (PLCDReg)&gMPanel_wakefstd }, //wake up
};
LcdSetReg SLcdSetReg =NULL;
#endif
#if BU_TCL_S6B33B2_CSTN
/*******************************************************
driver ic bias size
mainpanel:S6B33B2_16 (0x0,0x0) 128*160
********************************************************/
void MLcdSetReg(int adr,int val)
{
if(adr==0xffff)
{
V5_BySetRSLow((UINT8)val);
return;
}
if(val==0xffff)
{
V5_BySetRSLow((UINT8)adr);
return;
}
V5_BySetRSLow(adr);
V5_BySetRSLow(val);
}
const LCDReg gMLCD_powon[] =
{
{0x2c, 0xffff, 25}, //STANDBY_MODE_OFF
{0x2, 0x01, 25}, //DD_TURN_OSC_ON
{0x20, 0x05, 0}, //DD_POWER_ON_POWER_CIRCUIT
{0x26, 0x1, 50}, //DCDC_AMP_ONOFF
{0x26, 0x9, 25},
{0x26, 0xb, 25},
{0x26, 0xf, 25},
{0x24, 0x03, 25},
{0x2a, 0x8c, 25}, //?
{0x28, 0x02, 0},
{0x30, 0x1B, 0},
{0x32, 0x0E, 0},
{0x34, 0x1f, 0},//?
{0x40, 0x01, 0},
{0x10, 0x22, 0},
{0x42, 0x0, 0},
{0xffff, 0xa0, 0},
{0x43, 0x0, 0},
{0xffff, 0x7f, 0},
{0x22, 0x11, 0},
{0x51, 0xffff, 0}
};
LCDParm MLcdParm =
{
{ sizeof(gMLCD_powon) / sizeof(LCDReg), (PLCDReg)&gMLCD_powon }, //power on
{ 0, NULL },
{ 0, NULL },
{ 0, NULL },
};
LcdSetReg SLcdSetReg =NULL;
#endif
#if BYD_SUNLIGHT_S6B33B2_CSTN
/*******************************************************
driver ic bias size
mainpanel:S6B33B2_8 (0x0,0x4) 128*160
********************************************************/
void MLcdSetReg(int adr,int val)
{
if(adr==0xffff)
{
V5_BySetRSLow((UINT8)val);
return;
}
if(val==0xffff)
{
V5_BySetRSLow((UINT8)adr);
return;
}
V5_BySetRSLow((UINT8)adr);
V5_BySetRSLow((UINT8)val);
}
const LCDReg gMLCD_powon[] =
{
{0x2c, 0xffff, 25},
{0x2, 0x01, 25},
{0x20, 0x05, 0},
{0x26, 0x1, 50},
{0x26, 0x9, 25},
{0x26, 0xb, 25},
{0x26, 0xf, 25},
{0x28, 0x00, 0},
{0x2e, 0xffff, 0},
{0x45, 0x00, 0},
{0x53, 0x00, 0},
{0x10, 0x02, 0},
{0x24, 0x22, 25},
{0x30, 0x00, 25},
{0x32, 0x0e, 0},
{0x40, 0x01, 0},
{0x42, 0x04, 0},
{0xffff, 0x83, 0},
{0x43, 0x0, 0},
{0xffff, 0x7f, 0},
{0x34, 0x10, 0},
{0x36, 0x00, 0},
{0x2a, 0xa0, 0},
{0x2b, 0x60, 0},
{0x22, 0x22, 0},
{0x55, 0x00, 0},
{0x56, 0x04, 0},
{0x57, 0x83, 0},
{0x59, 0x00, 0},
{0xffff, 0x04, 0},
{0xffff, 0x83, 0},
{0xffff, 0x00, 0},
{0x51, 0x00, 0},
};
LCDParm MLcdParm =
{
{ sizeof(gMLCD_powon) / sizeof(LCDReg), (PLCDReg)&gMLCD_powon }, //power on
{ 0, NULL },
{ 0, NULL },
{ 0, NULL },
};
LcdSetReg SLcdSetReg =NULL;
#endif
#if TRULY_STEPTECH_LIDES183_CSTN
/*******************************************************
driver ic bias size
mainpanel:LDS183_16 (0x0,0x0) 128*128
********************************************************/
void MLcdSetReg(int adr,int val)
{
if(adr==0xffff)
{
V5_BySetRSHigh((UINT8)val);
return;
}
if(val==0xffff)
{
V5_BySetRSLow((UINT8)adr);
return;
}
V5_BySetRSLow(adr);
V5_BySetRSHigh(val);
}
const LCDReg gMLCD_powon[] =
{
{0x11, 0xffff, 10},
{0xba, 0x07, 0},
{0xffff, 0x18, 0},
{0xb6, 0x1a, 0},
{0xffff, 0x29, 0},
{0xffff, 0x38, 0},
{0xb4, 0x01, 0},
{0xffff, 0x05, 0},
{0xffff, 0x11, 0},
{0xffff, 0x11, 0},
{0xb5, 0x01, 0},
{0xffff, 0x04, 0},
{0xffff, 0x06, 0},
{0xffff, 0x08, 0},
{0x2a, 0x00, 0},
{0xffff, 0x7f, 0},
{0x29, 0xffff, 0},
{0x25, 0x54, 0}
};
LCDParm MLcdParm =
{
{ sizeof(gMLCD_powon) / sizeof(LCDReg), (PLCDReg)&gMLCD_powon }, //power on
{ 0, NULL },
{ 0, NULL },
{ 0, NULL },
};
LcdSetReg SLcdSetReg =NULL;
#endif
#if PHILIPS_LP8937_LIDES183_CSTN
/*******************************************************
driver ic bias size
mainpanel:LDS183_8 (0x0,0x0) 128*128
********************************************************/
void MLcdSetReg(int adr,int val)
{
if(adr==0xffff)
{
V5_BySetRSHigh((UINT8)val);
return;
}
if(val==0xffff)
{
V5_BySetRSLow((UINT8)adr);
return;
}
V5_BySetRSLow((UINT8)adr);
V5_BySetRSHigh((UINT8)val);
}
const LCDReg gMLCD_powon[] =
{
{0x01, 0xffff, 20},//added by wangrui
{0x25, 0x3f, 0},
{0x11, 0xffff, 10},
{0x20, 0xffff, 10}, //added by wangrui
{0x38, 0xffff, 10}, //added by wangrui
{0x13, 0xffff, 10}, //added by wangrui
{0xb4, 0x01, 0},
{0xffff, 0x05, 0},
{0xffff, 0x09, 0},
{0xffff, 0x0c, 0},
{0xb5, 0x01, 0},
{0xffff, 0x04, 0},
{0xffff, 0x06, 0},
{0xffff, 0x08, 0},
{0xb6, 0x19, 0},
{0xffff, 0x23, 0},
{0xffff, 0x2D, 0},
{0xb7, 0x05, 0},
{0xba, 0x07, 0},
{0xffff, 0x24, 0},
{0x36, 0x00, 0},
{0x3a, 0x05, 0},
{0x2D, 0x01, 0},
{0xffff, 0x02, 0},
{0xffff, 0x03, 0},
{0xffff, 0x04, 0},
{0xffff, 0x05, 0},
{0xffff, 0x06, 0},
{0xffff, 0x07, 0},
{0xffff,0x08, 0},
{0xffff, 0x09, 0},
{0xffff, 0x0A, 0},
{0xffff, 0x0B, 0},
{0xffff, 0x0C, 0},
{0xffff, 0x0D, 0},
{0xffff, 0x0E, 0},
{0xffff,0x0F, 0},
{0xffff, 0x10, 0},
{0xffff, 0x11, 0},
{0xffff, 0x12, 0},
{0xffff, 0x13, 0},
{0xffff, 0x14, 0},
{0xffff, 0x15, 0},
{0xffff,0x16, 0},
{0xffff, 0x17, 0},
{0xffff, 0x18, 0},
{0xffff, 0x19, 0},
{0xffff, 0x1A, 0},
{0xffff, 0x1B, 0},
{0xffff, 0x1C, 0},
{0xffff,0x1D, 0},
{0xffff, 0x1E, 0},
{0xffff, 0x1F, 0},
{0xffff, 0x21, 0},
{0xffff, 0x22, 0},
{0xffff, 0x23, 0},
{0xffff, 0x24, 0},
{0xffff, 0x25, 0},
{0xffff, 0x26, 0},
{0xffff, 0x27, 0},
{0xffff,0x28, 0},
{0xffff, 0x29, 0},
{0xffff, 0x2A, 0},
{0xffff, 0x2B, 0},
{0xffff, 0x2C, 0},
{0xffff, 0x2D, 0},
{0xffff, 0x2E, 0},
{0xffff,0x2F, 0},
{0xffff, 0x30, 0},
{0x2a, 0x0, 0},
{0xffff, 0x7f, 0},
{0x2b, 0x0, 0},
{0xffff, 0x7f, 0},
{0x29, 0xffff, 0},
{0x34, 0xffff, 0},
};
LCDParm MLcdParm =
{
{ sizeof(gMLCD_powon) / sizeof(LCDReg), (PLCDReg)&gMLCD_powon }, //power on
{ 0, NULL },
{ 0, NULL },
{ 0, NULL },
};
LcdSetReg SLcdSetReg =NULL;
#endif
#if TIANMA_CAPITELS750_S6B33B5
/*******************************************************
driver ic bias size
mainpanel:PLT2001 (0x0,0x0) 128*160
subpanel: S6B33B5 (0x0,0x0) 96*96
********************************************************/
void MLcdSetReg(int adr,int val)
{
V5_BySetRSLow(adr);
V5_BySetRSHigh(val);
}
const LCDReg gMLCD_powon[] =
{
{0x01, 0x02, 100},
{0x02, 0x12, 100},
{0x03, 0x60, 100},
{0x05, 0x08, 100},
{0x06, 0xc5, 100},
{0x18, 0x00, 100},
{0x19, 0x00, 100},
{0x17, 0x00, 200},
};
LCDParm MLcdParm =
{
{ sizeof(gMLCD_powon) / sizeof(LCDReg), (PLCDReg)&gMLCD_powon }, //power on
{ 0, NULL },
{ 0, NULL },
{ 0, NULL },
};
#ifdef V5_TEST_THROUGH
void SLcdSetReg(int adr,int val)
{
if(adr==0xffff)
{
V5B_LcdifRsLExW((UINT8)val);
return;
}
if(val==0xffff)
{
V5B_LcdifRsLExW((UINT8)adr);
return;
}
V5B_LcdifRsLExW((UINT8)adr);
V5B_LcdifRsLExW((UINT8)val);
Delay(20);
}
#else
void SLcdSetReg(int adr,int val)
{
if(adr==0xffff)
{
V5_BySetRSLow((UINT8)val);
return;
}
if(val==0xffff)
{
V5_BySetRSLow((UINT8)adr);
return;
}
V5_BySetRSLow((UINT8)adr);
V5_BySetRSLow((UINT8)val);
}
#endif
const LCDReg gSPanel_powon[] =
{
{0x2c, 0xffff, 25}, //standby off
{0x2, 0x01, 00}, // 25 DD_TURN_OSC_ON ***0x00
{0x10, 0x15, 0}, //0x02 output mode set
{0x20, 0x05, 00}, //0x0a DC-DC select, DD_POWER_ON_POWER_CIRCUI***0x00
{0x26, 0x01, 00}, //50 DCDC_AMP_ONOFF
{0x26, 0x09, 00}, //25
{0x26, 0x0b, 00},
{0x26, 0x0f, 00},
{0x28, 0x00, 0}, //0x01
{0x2a, 0x9a, 25},//0xc5,25 //90
{0x30, 0x00, 0},//0x0d
{0x32, 0x00, 0},//0x0c
{0x36, 0x00, 0},//display pattern set ;add zhang
{0x40, 0x80, 0},//0x01
{0x42, 0x0, 0},
{0xffff, 0x5f, 0},//96
{0x43, 0x0, 0},
{0xffff,0x5f,0},//96
{0x45, 0x00, 0},
{0x51, 0xffff, 0}
};
LCDParm SLcdParm =
{
{ sizeof(gSPanel_powon) / sizeof(LCDReg), (PLCDReg)&gSPanel_powon }, //power on
{ 0, NULL },
{ 0, NULL },
{ 0, NULL },
};
#endif
#if TIANMA_CAPITELS750_SSD1788
/*******************************************************
driver ic bias size
mainpanel:PLT2001 (0x0,0x0) 128*160
subpanel: SSD1788 (0x1,0x4) 96*64
********************************************************/
void MLcdSetReg(int adr,int val)
{
V5_BySetRSLow(adr);
V5_BySetRSHigh(val);
}
const LCDReg gMLCD_powon[] =
{
{0x01, 0x02, 100},
{0x02, 0x12, 100},
{0x03, 0x60, 100},
{0x05, 0x08, 100},
{0x06, 0xc5, 100},
{0x18, 0x00, 100},
{0x19, 0x00, 100},
{0x17, 0x00, 200},
};
LCDParm MLcdParm =
{
{ sizeof(gMLCD_powon) / sizeof(LCDReg), (PLCDReg)&gMLCD_powon }, //power on
{ 0, NULL },
{ 0, NULL },
{ 0, NULL },
};
#ifdef V5_TEST_THROUGH
void SLcdSetReg(int adr,int val)
{
if(adr==0xffff)
{
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -