📄 panel.c
字号:
/*************************************************************************/
/* */
/* The last modification date: 02-23-2004 */
/* REMARKS: Created initial version 1.0 */
/* */
/* Copyright (C) 2004 Vimicro CO.,LTD */
/*************************************************************************/
#include "v558def.h"
#include "v558api.h"
#include "vregdef.h"
typedef struct tag_V558_PANELWRITEINFO {
UINT8 DataPosition;
UINT8 RegType;
UINT8 BusType;
} V558_PANELWRITEINFO,*pV558_PANELWRITEINFO;
const V558_PANELWRITEINFO Panel_WriteType;
const V558_PANELWRITEINFO SubPanel_WriteType;
enum {
NoReg, //no sub
RegRsLow16,
RegRsHigh16,
RegRsLow8,
RegRsHigh8
};
enum { //lcd 8 bit only
High8,
Low8
};
enum { //lcd 8 bit only
Lcd_Multi16,
Lcd_Multi8
};
void V558_LcdPanelSetReg(UINT16 adr, UINT16 val);
void V558_LcdSubPanelSetReg(UINT16 adr, UINT16 val);
#if LTS180SH_H1I_X
const V558_PANELWRITEINFO Panel_WriteType=
{
0,
(UINT8)RegRsHigh16,
(UINT8)Lcd_Multi16
};
const V558_PANELREGVALUE Panel_powoff[] =
{
{0x10, 0x200, 0},
{0x12, 0x3F09, 0},
{0x13, 0x121B, 0}
};
const V558_PANELREGVALUE Panel_powon[] =
{
{0x1, 0x300, 1},
{0x2, 0x700, 1},
{0x3, 0x30, 1},
{0x4, 0x0, 1},
{0x8, 0x626, 1},
{0x9, 0x0, 1},
{0xB, 0x0, 1},
{0xC, 0x1, 1},
{0xF, 0x0, 1},
{0x7, 0x301, 20},
{0x10, 0x200, 1},
{0x11, 0x7, 1},
{0x12, 0x3F09, 1},
{0x13, 0x121B, 5},
{0x10, 0x270, 1},
{0x12, 0x3F19, 20},
{0x13, 0x321B, 20},
{0x23, 0x0, 1},
{0x24, 0x0, 1},
{0x50, 0x0, 1},
{0x51, 0x83, 1},
{0x52, 0x0, 1},
// {0x53, 0x9F, 1},
{0x53, 0xff, 1},
{0x60, 0x9300, 1},
{0x61, 0x1, 1},
{0x68, 0x0, 1},
{0x69, 0x9f, 1},
{0x6A, 0x0, 1},
{0x70, 0x8B14, 1},
{0x71, 0x1, 1},
{0x78, 0xA0, 1},
{0x79, 0xFF, 1},
{0x7A, 0x0, 1},
{0x80, 0x0, 1},
{0x81, 0x0, 1},
{0x82, 0x0, 1},
{0x83, 0x0, 1},
{0x84, 0x0, 1},
{0x85, 0x0, 1},
{0x86, 0x0, 1},
{0x87, 0x0, 1},
{0x88, 0x0, 20},
{0x30, 0x700, 1},
{0x31, 0x7, 1},
{0x32, 0x0, 1},
{0x33, 0x100, 1},
{0x34, 0x707, 1},
{0x35, 0x7, 1},
{0x36, 0x700, 1},
{0x37, 0x7, 1},
{0x38, 0x1000, 1},
{0x39, 0x001f, 1},
// {0x37, 0x1, 1},
// {0x38, 0x1800, 1},
// {0x39, 0x7, 1},
{0x40, 0x700, 1},
{0x41, 0x7, 1},
{0x42, 0x0, 1},
{0x43, 0x100, 1},
{0x44, 0x707, 1},
{0x45, 0x7, 1},
{0x45, 0x7, 1},
{0x46, 0x700, 1},
{0x47, 0x7, 1},
{0x48, 0x1000, 1},
{0x49, 0x001f, 1},
// {0x47, 0x1, 1},
// {0x48, 0x1800, 1},
// {0x49, 0x7, 1},
{0x7, 0x301, 10},
{0x7, 0x321, 1},
{0x7, 0x323, 20},
{0x7, 0x333, 40},
{0x20, 0x83, 1},
{0x21, 0x0, 1}
};
V558_LCDIFPARM Panel_LcdIF =
{
{ 128, 160 }, //size
{4, 0}, //mp
{32, 160}, //sp
0x0, 0, 0X20, 0x21, 0X0, 0, //hsa, hea, hsxa, hsya, hexa, heya
0xfC85, //lc
0x100, //dpad
0x460, 0x460, //wrcycle, rdcycle
0, //rsPolarity
0x0, //dmap
1, //index select
0x22, //dispadr
LTS180SH_H1I_X_PANEL, //paneltype
0, //reserve
{
0, 0, 1, 4, 9, 0x10, 0x1a, 0x27, 0x37,
0x4a, 0x5f, 0x77, 0x91, 0xac, 0xc8, 0xe4, 0xff
}, //gamma R;
{
0, 0, 1, 4, 9, 0x10, 0x1a, 0x27, 0x37,
0x4a, 0x5f, 0x77, 0x91, 0xac, 0xc8, 0xe4, 0xff
}, //gamma G;
{
0, 0, 1, 4, 9, 0x10, 0x1a, 0x27, 0x37,
0x4a, 0x5f, 0x77, 0x91, 0xac, 0xc8, 0xe4, 0xff
}, //gamma B
{0xff, 0x0, 0x0, 0}
};
const V558_PANELINFO Panel_Info =
{
"Samsung LTS180S3-H1I-X", //description
&Panel_LcdIF,
{sizeof(Panel_powon) / sizeof(V558_PANELREGVALUE), Panel_powon},
{sizeof(Panel_powoff) / sizeof(V558_PANELREGVALUE), Panel_powoff},
{0, NULL},
{0, NULL},
{0, NULL},
{0, NULL},
V558_LcdPanelSetReg,
NULL
};
#endif
//----------------
#if LCT_POWERTIP_V58
const V558_PANELWRITEINFO Panel_WriteType=
{
Low8,
RegRsLow8,
(UINT8)Lcd_Multi8
};
void lct_powertipInit(void)
{
UINT8 temp, State = 0;
UINT16 i;
V558_CtrlSetGpioCfg(0xff);
V558_CtrlSetGpioMode(0xff);
V558_CtrlSetGpioDirection(0x01);
for(temp = 0; temp < 58; temp++)
{
if(State)
{
V558_CtrlSetGpioData(0x00);
State = 0;
}
else
{
State = 1;
V558_CtrlSetGpioData(0x01);
for(i = 0; i < 50; i++);
}
}
V558_CtrlSetGpioData(0x01);
}
const V558_PANELREGVALUE Panel_wakefstd[] =
{
{0x0, 0x01, 10},
{0x3, 0x0, 10}
};
const V558_PANELREGVALUE Panel_stdby[] =
{
{0x7, 0x137, 0},
{0x7, 0x136, 40},
{0x7, 0x126, 40},
{0x7, 0x4, 0},
{0x3, 0x7fd, 0}
};
//static V558_PANELREGVALUE *Panel_wakefs = NULL;
//{
//};
const V558_PANELREGVALUE Panel_sleep[] =
{
{0x7, 0x137, 0},
{0x7, 0x136, 20},
{0x7, 0x126, 20},
{0x7, 0x4, 0},
{0x3, 0x7fe, 0}
};
const V558_PANELREGVALUE Panel_powoff[] =
{
{0x7, 0x136, 20},
{0x7, 0x126, 20},
{0x7, 0x4, 0},
{0x3, 0x7fc, 0}
};
const V558_PANELREGVALUE Panel_powon[] =
{
{0x7, 0x104, 0},
{0xd, 0x100, 0},
{0xe, 0xd18, 20},
{0x1, 0x113, 0},
{0x2, 0x700, 0},
{0x5, 0x1230, 0},
{0x6, 0x0, 0},
{0xb, 0x4008, 0},
{0xc, 0x0, 0},
{0x3, 0x8, 0},//
{0x4, 0x0, 20},
{0xe, 0x2d18, 0},//
{0xd, 0x110, 20},//
{0x21, 0x0, 0},
{0x30, 0x700, 0},
{0x31, 0x7, 0},
{0x32, 0x0, 0},
{0x33, 0x100, 0},
{0x34, 0x707, 0},
{0x35, 0x7, 0},
{0x36, 0x700, 0},
{0x37, 0x0007, 0},
{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, 0},
{0x7, 0x125, 0},
{0x7, 0x127, 0},
{0x7, 0x137, 0},
{0x33, 0x707, 0},
{0x3a, 0x1f00, 0},
{0x30, 0x700, 0},
{0x31, 0x707, 0},
{0x32, 0x700, 0},
{0x21, 0x0, 0}
};
V558_LCDIFPARM Panel_LcdIF =
{
{ 128, 160 }, //size
//{0, 0x0}, //mp 2005.5.6
{0x9f, 0x7f}, //mp //2005.5.6
{0, 0}, //sp
//0x21, 0, 0, 0, 0, 0, //hsa, hea, hsxa, hsya, hexa, heya
0x21, 0, 0x02, 0, 0x82, 0x9f, //2004.5.6
0xff8c, //lc
0x100, //dpad
0x460, 0x460, //wrcycle, rdcycle
0, //rsPolarity
0x0, //dmap
1, //index select
0x22, //dispadr
LCT_POWERTIP_V58_8,
//Truly_128160_16_PANEL, //paneltype
0, //reserve
{
0, 0, 1, 4, 9, 0x10, 0x1a, 0x27, 0x37,
0x4a, 0x5f, 0x77, 0x91, 0xac, 0xc8, 0xe4, 0xff
}, //gamma R;
{
0, 0, 1, 4, 9, 0x10, 0x1a, 0x27, 0x37,
0x4a, 0x5f, 0x77, 0x91, 0xac, 0xc8, 0xe4, 0xff
}, //gamma G;
{
0, 0, 1, 4, 9, 0x10, 0x1a, 0x27, 0x37,
0x4a, 0x5f, 0x77, 0x91, 0xac, 0xc8, 0xe4, 0xff
}, //gamma B
{0xff, 0x0, 0x0, 0}
};
const V558_PANELINFO Panel_Info =
{
"LCT_POWERTIP_V58_8", //description
&Panel_LcdIF,
{sizeof(Panel_powon) / sizeof(V558_PANELREGVALUE), Panel_powon},
{sizeof(Panel_powoff) / sizeof(V558_PANELREGVALUE), Panel_powoff},
{sizeof(Panel_sleep) / sizeof(V558_PANELREGVALUE), Panel_sleep},
{0, NULL },
// {sizeof(Panel_wakefs) / sizeof(V558_PANELREGVALUE), Panel_wakefs},
{sizeof(Panel_stdby) / sizeof(V558_PANELREGVALUE), Panel_stdby},
{sizeof(Panel_wakefstd) / sizeof(V558_PANELREGVALUE), Panel_wakefstd},
V558_LcdPanelSetReg,
lct_powertipInit
// NULL
};
const V558_PANELWRITEINFO SubPanel_WriteType=
{
Low8,
RegRsHigh8,
Lcd_Multi8
};
const V558_PANELREGVALUE SubPanel_powon[] =
{
{0xd1, 0, 0},
{0x20, 0xb, 10},
{0x81, 0x20, 0},
{0xffff, 6, 0},
{0x94, 0, 0},
{0xfb, 0x03, 0},
{0xf7, 0x28, 0},
{0xffff, 0x2e, 0},
{0xffff, 0x5, 0},
{0xf2, 0x08, 0},
{0xffff, 0x06, 0},
{0xbc, 0x3, 0},
{0xffff, 0x0, 0},
{0xffff, 0x02, 0},
{0x15, 0x0, 0},
{0xffff, 0x2f, 0},
{0x75, 0, 0},
{0xffff, 0x3f, 0},
{0xbb, 0x1, 0},
{0xca, 0, 0},
{0xffff, 0xf, 0},
{0xffff, 0, 0},
{0xa2, 0, 0},
{0xa7, 0, 0},
{0xaf, 0, 0}
};
V558_LCDIFPARM SubPanel_LcdIF =
{
{ 96, 64}, //size
{0x0, 0x04}, //mp
{0, 0}, //sp
0x15, 0x75, 0, 0, 0, 0, //hsa, hea, hsxa, hsya, hexa, heya
0xd08c, //lc
0x100, //dpad
0x880, 0x460, //wrcycle, rdcycle
0, //rsPolarity
0x0c, //dmap
0x1, //index select
0x5c, //dispadr
0, //paneltype
0, //reserve
{
0, 0, 1, 4, 9, 0x10, 0x1a, 0x27, 0x37,
0x4a, 0x5f, 0x77, 0x91, 0xac, 0xc8, 0xe4, 0xff
}, //gamma R;
{
0, 0, 1, 4, 9, 0x10, 0x1a, 0x27, 0x37,
0x4a, 0x5f, 0x77, 0x91, 0xac, 0xc8, 0xe4, 0xff
}, //gamma G;
{
0, 0, 1, 4, 9, 0x10, 0x1a, 0x27, 0x37,
0x4a, 0x5f, 0x77, 0x91, 0xac, 0xc8, 0xe4, 0xff
}, //gamma B
{0xff, 0x0, 0x0, 0} //background color
};
const V558_PANELINFO SlavePanel_Info=
{
"truly_128160_ssd1788", //description
&SubPanel_LcdIF,
{sizeof(SubPanel_powon) / sizeof(V558_PANELREGVALUE),SubPanel_powon},
{0, NULL},
{0, NULL},
{0, NULL},
{0, NULL},
{0, NULL},
V558_LcdSubPanelSetReg,
NULL
};
#endif
//--------------
#if LTS180S3_HF1
const V558_PANELWRITEINFO Panel_WriteType=
{
Low8,
RegRsHigh16,
Lcd_Multi8
};
const V558_PANELREGVALUE Panel_wakefstd[] =
{
{0x0, 0x01, 10},
{0x3, 0x0, 10}
};
const V558_PANELREGVALUE Panel_stdby[] =
{
{0x7, 0x137, 0},
{0x7, 0x136, 40},
{0x7, 0x126, 40},
{0x7, 0x4, 0},
{0x3, 0x7fd, 0}
};
//static V558_PANELREGVALUE *Panel_wakefs = NULL;
//{
//};
const V558_PANELREGVALUE Panel_sleep[] =
{
{0x7, 0x137, 0},
{0x7, 0x136, 20},
{0x7, 0x126, 20},
{0x7, 0x4, 0},
{0x3, 0x7fe, 0}
};
const V558_PANELREGVALUE Panel_powoff[] =
{
{0x7, 0x136, 20},
{0x7, 0x126, 20},
{0x7, 0x4, 0},
{0x3, 0x7fc, 0}
};
#if 0
const V558_PANELREGVALUE Panel_powon[] =
{
{0x7, 0x0004, 0},
{0x1, 0x0113, 0},
{0x2, 0x0700, 0},
{0x5, 0x1030, 0},
{0x6, 0x000, 0},
{0xb, 0x0000, 0},
{0xc, 0x0002, 0},
{0x3, 0x0410, 0},
{0x4, 0x0000, 40},
{0xe, 0x351e, 40},//
{0xd, 0x051b, 40},
{0x21, 0x0002, 40},
{0x30, 0x0000, 0},
{0x31, 0x0000, 0},
{0x32, 0x0000, 0},
{0x33, 0x0000, 0},
{0x34, 0x0000, 0},
{0x35, 0x0000, 0},
{0x36, 0x0000, 0},
{0x37, 0x0000, 0},
{0x3a, 0x0000, 0},
{0x3b, 0x0000, 5},
{0x0f, 0x0002, 0},
{0x11, 0x0000, 0},
{0x14, 0x9f00, 0},
{0x15, 0x9f00, 0},
{0x16, 0x8102, 0},
{0x17, 0x9f00, 0},
{0x21, 0x9f81, 0},
{0x7, 0x0005, 40},
{0x7, 0x0025, 40},
{0x7, 0x0027, 40},
{0x7, 0x0037, 40},
};
#elif 1
const V558_PANELREGVALUE Panel_powon[] ={{}};
#else
const V558_PANELREGVALUE Panel_powon[] =
{
{0x7, 0x0104, 0},
{0xd, 0x0100, 0},
{0xe, 0x0d18, 20},
{0x1, 0x0113, 0},
{0x2, 0x0700, 0},
{0x5, 0x1030, 0},
{0x6, 0x0000, 0},
{0xb, 0x4008, 0},
{0xc, 0x0000, 0},
{0x3, 0x0008, 0},//
{0x4, 0x0000, 20},
{0xe, 0x2d18, 0},//
{0xd, 0x0110, 20},//
// {0x21, 0x9f81, 0},
{0x30, 0x0700, 0},
{0x31, 0x0007, 0},
{0x32, 0x0000, 0},
{0x33, 0x0100, 0},
{0x34, 0x0707, 0},
{0x35, 0x0007, 0},
{0x36, 0x0700, 0},
{0x37, 0x0007, 0},
{0x0f, 0x0002, 0},
{0x11, 0x0000, 0},
{0x14, 0x9f00, 0},
{0x15, 0x0002, 0},
{0x16, 0x8102, 0},
{0x17, 0x9f00, 0},
{0x3a, 0x1800, 0},
{0x3b, 0x0007, 5},
{0x7, 0x105, 0},
{0x7, 0x125, 0},
{0x7, 0x127, 0},
{0x7, 0x137, 0},
{0x33, 0x700, 0},
{0x3a, 0x1f00, 0},
{0x30, 0x700, 0},
{0x31, 0x707, 0},
{0x32, 0x700, 0},
{0x21, 0x0002, 0}
};
#endif
V558_LCDIFPARM Panel_LcdIF =
{
{ 128, 160 }, //size
{2, 0}, //mp
{0, 0}, //sp
0x21, 0, 0, 0, 0, 0, //hsa, hea, hsxa, hsya, hexa, heya
0x668a, //lc 0x668a 0x668c open gamm valure adjust
0x100, //dpad
0x460, 0x460, //wrcycle, rdcycle
0, //rsPolarity
0x04, //dmap
0x03, //index select
0x22, //dispadr
LTS180S3_HF1_PANEL, //paneltype
0, //reserve
{
0, 0, 1, 4, 9, 0x10, 0x1a, 0x27, 0x37,
0x4a, 0x5f, 0x77, 0x91, 0xac, 0xc8, 0xe4, 0xff
}, //gamma R;
{
0, 0, 1, 4, 9, 0x10, 0x1a, 0x27, 0x37,
0x4a, 0x5f, 0x77, 0x91, 0xac, 0xc8, 0xe4, 0xff
}, //gamma G;
{
0, 0, 1, 4, 9, 0x10, 0x1a, 0x27, 0x37,
0x4a, 0x5f, 0x77, 0x91, 0xac, 0xc8, 0xe4, 0xff
}, //gamma B
{0xff, 0x0, 0x0, 0}
};
const V558_PANELINFO Panel_Info =
{
"Samsung LTS180S3-HF1", //description
&Panel_LcdIF,
{sizeof(Panel_powon) / sizeof(V558_PANELREGVALUE), Panel_powon},
{sizeof(Panel_powoff) / sizeof(V558_PANELREGVALUE), Panel_powoff},
{sizeof(Panel_sleep) / sizeof(V558_PANELREGVALUE), Panel_sleep},
{0, NULL },
{sizeof(Panel_stdby) / sizeof(V558_PANELREGVALUE), Panel_stdby},
{sizeof(Panel_wakefstd) / sizeof(V558_PANELREGVALUE), Panel_wakefstd},
V558_LcdPanelSetReg,
NULL
};
#endif
#if Truly_128160_16
const V558_PANELWRITEINFO Panel_WriteType=
{
#if 1 // zlj 2005.5.6
0,
(UINT8)RegRsHigh16,
(UINT8)Lcd_Multi16
#else
Low8,
RegRsLow8,
(UINT8)Lcd_Multi8 // zlj 2005.5.6
#endif
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -