📄 pnl_lg065_at.h
字号:
/******************************************************************************
Copyright (c) 2006 MStar Semiconductor, Inc.
All rights reserved.
[Module Name]: Pnl_LG065_AT.h
[Date]: 15-May-2006
[Comment]:
Panel parameters.[LB065W01] 1440X234
[Reversion History]:
*******************************************************************************/
#if 1 // 4MHZ PANEL CLK
#include "ms_reg.h"
#ifndef _PNL_LG065_H_
#define _PNL_LG065_H_
#include "devvd.h"
#define PanelName "PnlLG065"
#define WidePanel 1
#define PANEL_DOT_WIDTH 107 // unit: um
#define PANEL_DOT_HEIGHT 370 // unit: um
#define PanelDither 8
#define PANEL_TTL 0
#define PANEL_DIGITAL_TCON 0
#define PANEL_ANALOG_TCON 1
#define PanelSwapRB 0
#define PanelSwap8BitML 0
#define PanelSwap6BitML 0
#define PanelDClkDelay 0
#define PanelInvDE 0
#define PanelInvDClk 0
#define PanelInvHSync 0
#define PanelInvVSync 0
// driving current setting 0==>4mA, 1==>6mA, 2==>8mA ,3==>12mA
#define PanelDCLKCurrent 1 // Dclk current
#define PanelDECurrent 1 // DE signal current
#define PANELHSCURRENT 1 // HSYNC current
#define PANELVSCURRENT 1 // VSYNC current
#define PANELBMCURRENT 1 // B data High-Nibble current
#define PANELBLCURRENT 1 // B data Low-Nibble current
#define PANELGMCURRENT 1 // G data High-Nibble current
#define PANELGLCURRENT 1 // G data Low-Nibble current
#define PANELRMCURRENT 1 // R data High-Nibble current
#define PANELRLCURRENT 1 // R data Low-Nibble current
#define PANELADCLKCURRENT 1 // Analog Panel DCLK current
#define PanelOnTiming1 200 // time between panel & data while turn on power
#define PanelOnTiming2 200 // time between data & back light while turn on power
#define PanelOffTiming1 20 // time between back light & data while turn off power
#define PanelOffTiming2 20 // time between data & panel while turn off power
#define PanelHSyncWidth 2
#define PanelHSyncBackPorch 3
#define PanelVSyncWidth 4
#define PanelVSyncBackPorch 50
#define PANEL_DE_VSTART 0
#define PanelHStart (PanelHSyncWidth+PanelHSyncBackPorch)
#define PanelVStart (PanelVSyncWidth+PanelVSyncBackPorch)
#define PanelWidth 640 //480
#define PanelHeight 234
#define PanelHTotal 654
#define PanelVTotal 300
#define PanelVdeEnd PanelHeight+5
#define PanelVSiEnd PanelHeight+5
#define PanelMinHTotal 267
#define PanelDCLK 9//(((DWORD)PanelHTotal*PanelVTotal*60)/1000000/3)
///////////////////////////////////////////////////////
// TCON setting
///////////////////////////////////////////////////////
// PTC Mode setting
#define SET_PTC_MODE1 0x81 // PTC_MODE1(0xD0)
#define SET_PTC_MODE2_NOR 0x7A // BK1_D1_PTC_MODE2(0xD1) ORG:0x18
#define SET_PTC_MODE2_INV 0x71 // BK1_D1_PTC_MODE2(0xD1) ORG:0x18
#define SET_PTC_MODE3 0x8C // PTC_MODE3(0xD2)
// PTC Timming Setting
#define SET_FRP_TRAN 0x56 //0X56 // GPO_FRP_TRAN(0xDC)
#define SET_STH_START 0xB9 // GPO_STH_START(0xDD) ORG:0x2D
#define SET_STH_WIDTH 0x37 // GPO_STH_WIDTH(0xDE)
#define SET_OEH_START 0xB8 //0xB8 // GPO_OEH_START(0xDF)
#define SET_OEH_WIDTH 0x2F // GPO_OEH_WIDTH(0xE0)
#define SET_OEV_START 0x00 // GPO_OEV_START(0xE1)
#define SET_OEV_WIDTH 0x7F //0x3D // GPO_OEV_WIDTH(0xE2)
#define SET_CKV_START 0xD8 //0x3F // GPO_CKV_START(0xE3)
#define SET_CKV_START2 0x00 // GPO_CKV_START2(0xE4)
#define SET_CKV_WIDTH 0x64 // GPO_CKV_WIDTH(0xE5)
#define SET_STV_LINE_TH 0x4B // GPO_STV_LINE_TH(0xE6)
#define SET_STV_START 0x33 // GPO_STV_START(0xE7)
#define SET_STV_WIDTH 0x22 // GPO_STV_WIDTH(0xE8)
#define SET_OEV2_START 0x02 // GPO_OEV2_START(0xE9)
#define SET_OEV3_START 0x04 // GPO_OEV3_START(0xEA)
#define SET_H_ST_DLY_L 0x0A 0x08 // H_ST_DLY_L(0xEB)
#define SET_H_ST_DLY_H 0x0E // H_ST_DLY_H(0xEC)
#define SET_CLK_DLY_SYNC_OUT 0x00 // CLK_DLY_SYNC_OUT(0xED)
#define SET_CKV_END2 0x28 // GPO_CKV_END2(0xEE)
#define SET_Q1H 0x98 // Q1H_SETTING(0xEF)
#define SET_OEV2_WIDTH 0x82 // GPO_OEV2_WIDTH(0xCD)
#define SET_OEV3_WIDTH 0xAD // GPO_OEV3_WIDTH(0xCE)
#define SET_OEV_DELTA 0x34 // GPO_OEV_DELTA(0xCF)
// VCOM setting
#define SET_BVOM_DC 0x80//0x93 //0xAF(DYSON) // BVOM_DC(0x43)
#define SET_BVOM_OUT 0x80//0x5C //0xA0(DYSON) // BVOM_OUT(0x44)
// DAC setting
#define SET_VDAC_ADJ1 0x07 // VADC_ADJ1(0xAA)
#define SET_VDAC_ADJ2 0x00 // VDAC_ADJ2(0xAB)
// Video decoder
#define _656_PLL_VALUE 0x71//0x67 //BK2_9D_DPL_NSPL_HIGH
#if (MST_CHIP==MST710A) //BK0_10_COCTRL1
#define COCTRL1_VALUE 0xA0
#else
#define COCTRL1_VALUE 0x20
#endif
#define SVD_EN_VALUE0 0x40 //BK2_1A_SVD_EN
#define BK1_7B_TERM_SEL_VALUE 0xE4
#define BK1_7C_CROING_VALUE 0x64
#define PANEL_SYNC_MODE_1 0
#define ENABLE_VSYNC_CTL_AUTO_H_TOTAL 1
#define ENABLE_CHECK_AUTO_H_TOTAL 1
#define ENABLE_OVER_SCAN 1
#define VD_OVER_SCAN_H 30 // 1.0%
#define VD_OVER_SCAN_V 30 // 1.0%
#ifdef _VDCaptureSetting_
code _CaptureVideoWinType tMsVDCapture[SIG_NUMS] = // For internal VD
{
{0x36, 0x1B, 640, 480+30}, // NSTC
{0x3D, 0x1A, 640, 576}, // PAL
{0x3D, 0x1A, 640, 576}, // SECAM
{0x3D, 0x05, 640, 480}, // NTSC-443
{0x3D, 0x05, 640, 480}, // PAL-60
{0x3B, 0x10, 640, 480}, // PAL-M
{0x3D, 0x1A, 640, 576}, // PAL-Nc
};
code _CaptureSvideoWinOffsetType tSvideoCaptureOffset[SIG_NUMS] = // For internal VD
{
{-0x10, 0}, // NSTC
{-0x10, 0}, // PAL
{-0x10, 0}, // SECAM
{-0x10, 0}, // NTSC-443
{-0x10, 0}, // PAL-60
{-0x10, 0}, // PAL-M
{-0x10, 0}, // PAL-Nc
};
#endif
#define FreeRunHTotal 0x280
#define PalHTotal 0x2D1
#define NtscHTotal 0x2DD
#define BK0_03_SYNC_Sample_Edge 0x98
#ifdef EnableUseModeTbl
RegUnitType code tENDModeTbl[]=
{
{_END_OF_TBL_,0},
};
RegUnitType code tNtscModeTbl[]=
{//Reg Vale
{BK0_00_REGBK,REG_BANK_SCALER},
{BK0_05_SPRVST_L,0x12},
{BK0_07_SPRHST_L,0x4F},
{BK0_09_SPRVDC_L,0xE0},
{BK0_0A_SPRVDC_H,0x01},
{BK0_0B_SPRHDC_L,0x8A},
{BK0_0C_SPRHDC_H,0x02},
{BK0_0D_LYL,0x03},
{BK0_25_OPL_SET0,0xB5},
{BK0_26_OPL_SET1,0x54},
{BK0_27_OPL_SET2,0x8F},
//{BK0_2B_OPL_SPAN1, 0x80},
{BK0_30_SRH_L, 0x00},
{BK0_31_SRH_M,0xD9},
{BK0_32_SRH_H,0xCE},
{BK0_33_SRV_L, 0xCB},
{BK0_34_SRV_M, 0x50},
{BK0_35_SRV_H, 0x8F},
{BK0_36_VDSUSG, 0x0C},
{BK0_40_VFDEST_L, LOBYTE(PANEL_DE_VSTART)}, // vertical DE start
{BK0_41_VFDEST_H, HIBYTE(PANEL_DE_VSTART)}, // vertical DE start
{BK0_42_HFDEST_L, 0x02},
{BK0_44_VFDEEND_L,0xF8},
{BK0_45_VFDEEND_H,0x00},
{BK0_46_HFDEEND_L,0xA0},
{BK0_47_HFDEEND_H,0x02},
{BK0_48_SIHST_L, 0x02},
{BK0_4A_SIVEND_L,0xF8},
{BK0_4B_SIVEND_H,0x00},
{BK0_4C_SIHEND_L, 0x90},
{BK0_4D_SIHEND_H, 0x02},
{BK0_50_VSST_L, 0x0F}, // vsync start position
{BK0_51_VSST_H, 0x09},
{BK0_52_VSEND_L, 0xFA}, // vsync start position
{BK0_53_VSEND_H, 0x00},
{BK0_54_HDTOT_L,0xDD},
{BK0_55_HDTOT_H, 0x02},
{BK0_56_HSEND, 0x00},
{BK0_57_OSCTRL1, 0x42},
{_END_OF_TBL_, 0x00},
};
RegUnitType code tPalModeTbl[]=
{//Reg Vale
{BK0_00_REGBK,REG_BANK_SCALER},
{BK0_05_SPRVST_L,0x23},
{BK0_07_SPRHST_L,0x56},
{BK0_09_SPRVDC_L,0x27},
{BK0_0A_SPRVDC_H,0x02},
{BK0_0B_SPRHDC_L,0x8A},
{BK0_0C_SPRHDC_H,0x02},
{BK0_0D_LYL,0x03},
{BK0_25_OPL_SET0,0xFF},
{BK0_26_OPL_SET1,0xDF},
{BK0_27_OPL_SET2,0xA3},
//{BK0_2B_OPL_SPAN1, 0x80},
{BK0_30_SRH_L, 0x89},
{BK0_31_SRH_M,0xF9},
{BK0_32_SRH_H,0xCE},
{BK0_33_SRV_L, 0x54},
{BK0_34_SRV_M, 0x17},
{BK0_35_SRV_H, 0x91},
{BK0_36_VDSUSG, 0x0C},
{BK0_40_VFDEST_L, LOBYTE(PANEL_DE_VSTART)}, // vertical DE start
{BK0_41_VFDEST_H, HIBYTE(PANEL_DE_VSTART)}, // vertical DE start
{BK0_42_HFDEST_L, 0x0F},
{BK0_44_VFDEEND_L,0x10},
{BK0_45_VFDEEND_H,0x01},
{BK0_46_HFDEEND_L,0xA0},
{BK0_47_HFDEEND_H,0x02},
{BK0_48_SIHST_L, 0x10},
{BK0_4A_SIVEND_L,0xFF},
{BK0_4B_SIVEND_H,0x00},
{BK0_4C_SIHEND_L, 0x90},
{BK0_4D_SIHEND_H, 0x02},
{BK0_50_VSST_L, 0x26}, // vsync start position
{BK0_51_VSST_H, 0x09},
{BK0_52_VSEND_L, 0xFA}, // vsync start position
{BK0_53_VSEND_H, 0x00},
{BK0_54_HDTOT_L,0xD1},
{BK0_55_HDTOT_H, 0x02},
{BK0_56_HSEND, 0x0A},
{BK0_57_OSCTRL1, 0x42},
{_END_OF_TBL_, 0x00},
};
#if VGA_ENABLE
RegUnitType code t640_480_VGA_ModeTbl[]=
{//Reg Vale
{_END_OF_TBL_, 0x00},
};
RegUnitType code t800_600_VGA_ModeTbl[]=
{//Reg Vale
{_END_OF_TBL_, 0x00},
};
RegUnitType code t1024_768_VGA_ModeTbl[]=
{//Reg Vale
{_END_OF_TBL_, 0x00},
};
#endif
RegUnitType code tFreeRunModeTbl[]=
{//Reg Vale
{BK0_00_REGBK,REG_BANK_SCALER},
{BK0_25_OPL_SET0,0xB5},
{BK0_26_OPL_SET1,0x54},
{BK0_27_OPL_SET2,0x8F},
{BK0_36_VDSUSG, 0x00},
{BK0_42_HFDEST_L, 0x02},
{BK0_44_VFDEEND_L,0xF8},
{BK0_46_HFDEEND_L,0x80},
{BK0_47_HFDEEND_H,0x02},
{BK0_50_VSST_L, 0x0F}, // vsync start position
{BK0_51_VSST_H, 0x09},
{BK0_54_HDTOT_L,0xDD},
{BK0_55_HDTOT_H, 0x02},
{BK0_56_HSEND, 0x00},
{_END_OF_TBL_, 0x00},
};
RegUnitType code tTVSnowModeTbl[]=
{//Reg Vale
{_END_OF_TBL_, 0x00},
};
#endif
//*******************************************************************
//Ace setting
#define CbGain 0x80
#define CrGain 0x80
#define RedGain 0x80
#define GreenGain 0x80
#define BlueGain 0x80
#define INIT_VIDEO_CONTRAST_X0 70//80
#define INIT_VIDEO_CONTRAST_X1 90//95
#define INIT_VIDEO_CONTRAST_X2 110 //115
#define INIT_VIDEO_CONTRAST_X3 120
#define INIT_VIDEO_CONTRAST_X4 130
#define INIT_VIDEO_BRIGHTNESS_X0 0x60//0x30
#define INIT_VIDEO_BRIGHTNESS_X1 0x70 //0x60
#define INIT_VIDEO_BRIGHTNESS_X2 0x80//0x80
#define INIT_VIDEO_BRIGHTNESS_X3 0x90//0xA0
#define INIT_VIDEO_BRIGHTNESS_X4 0xB0//0xC0
#define INIT_VIDEO_SATURATION_X0 0
#define INIT_VIDEO_SATURATION_X1 80
#define INIT_VIDEO_SATURATION_X2 135
#define INIT_VIDEO_SATURATION_X3 150
#define INIT_VIDEO_SATURATION_X4 180
#define INIT_MSVD_COMB_YGAIN 0x90 //BK3_13
#define INIT_MSVD_COMB_CbGAIN 0x96 //BK3_14
#define INIT_MSVD_COMB_CrGAIN 0x6A //BK3_15
#define INIT_MSVD_COMB_CONTRAST 0x90 //BK3_63
#define INIT_MSVD_COMB_BRIGHTNESS 0x95 //BK3_64
#define INIT_MSVD_COMB_SATURATION 0x80 //BK3_65
#define INIT_MSVD_TV_BRIGHTNESS 0x0CE // bk2_38[6] bk2_3a[7:0] MAXVALUE=0X1FF
#ifdef EnableUseGammaTbl
BYTE code tGammaTableNormal[3][33]=
{
{
0x00,0x05,0x0C,0x13,0x1A,0x22,0x2A,0x33,0x3B,0x43,0x4B,
0x53,0x5B,0x63,0x6A,0x71,0x77,0x7D,0x85,0x8C,0x94,0x9B,
0xA3,0xAC,0xB4,0xBC,0xC5,0xCE,0xD7,0xE1,0xEB,0xF4,0xFF,
},
{
0x00,0x05,0x0C,0x13,0x1A,0x22,0x2A,0x33,0x3B,0x43,0x4B,
0x53,0x5B,0x63,0x6A,0x71,0x77,0x7D,0x85,0x8C,0x94,0x9B,
0xA3,0xAC,0xB4,0xBC,0xC5,0xCE,0xD7,0xE1,0xEB,0xF4,0xFF,
},
{
0x00,0x05,0x0C,0x13,0x1A,0x22,0x2A,0x33,0x3B,0x43,0x4B,
0x53,0x5B,0x63,0x6A,0x71,0x77,0x7D,0x85,0x8C,0x94,0x9B,
0xA3,0xAC,0xB4,0xBC,0xC5,0xCE,0xD7,0xE1,0xEB,0xF4,0xFF,
},
};
#endif
#ifdef EnableColorMatrix
short code tVideoColorCorrectionMatrix[][3]=
{
0x040D,-0x0010, 0x0002, 0x0012, 0x03C1, 0x002D, 0x002F,-0x0031,
0x0402,-0xC04F, 0x448C,-0x0CA1, 0xC501,-0xCBE8, 0xA849,-0xB3E7,
-0xF638, 0xE7E0, 0x96E5,-0x60EF, 0x4D2A, 0x98A9,-0x165C, 0x79F5,
-0xA54C, 0x862A,-0x367E, 0x4969,-0x9BA8, 0xFC3D,-0x856F, 0x7B72,
};
#endif
#ifdef _EnableFCC_
RegUnitType code tInitializeFCC[] =
{
/////////////////////////////////////////////////
// Initialize MACE table
/////////////////////////////////////////////////
{BK0_00_REGBK, REG_BANK1_ADC_ACE_MCU},
{BK1_56_FCC_CB_1T, 0x73}, // FCC_
{BK1_57_FCC_CR_1T, 0x9B}, // FCC_
{BK1_58_FCC_CB_2T, 0x6e}, // FCC_
{BK1_59_FCC_CR_2T, 0xac}, // FCC_
{BK1_5A_FCC_CB_3T, 0xa5}, // FCC_
{BK1_5B_FCC_CR_3T, 0x69}, // FCC_
{BK1_5C_FCC_CB_4T, 0x5a}, // FCC_
{BK1_5D_FCC_CR_4T, 0x9a}, // FCC_
{BK1_5E_FCC_CB_5T, 0x5A}, // FCC_
{BK1_5F_FCC_CR_5T, 0x75}, // FCC_
{BK1_60_FCC_CB_6T, 0xb0}, // FCC_
{BK1_61_FCC_CR_6T, 0x48}, // FCC_
{BK1_62_FCC_CB_7T, 0x64}, // FCC_
{BK1_63_FCC_CR_7T, 0xc8}, // FCC_
{BK1_64_FCC_CB_8T, 0x80}, // FCC_
{BK1_65_FCC_CR_8T, 0x80}, // FCC_
{BK1_66_FCC_CB_9T, 0x80}, // FCC_
{BK1_67_FCC_CR_9T, 0x98},// FCC_
{BK1_68_FCC_WIN1, 0xB2}, // FCC_
{BK1_69_FCC_WIN2, 0xba}, // FCC_
{BK1_6A_FCC_WIN3, 0xfb}, // FCC_
{BK1_6B_FCC_WIN4, 0x73}, // FCC_
{BK1_6C_FCC_WIN5, 0xfb}, // FCC_
{BK1_6D_FCC_WIN6, 0xfb}, // FCC_
{BK1_6E_FCC_WIN7, 0xff}, // FCC_
{BK1_6F_FCC_WIN8, 0x6a}, // FCC_
{BK1_70_FCC_WIN9, 0x00}, // FCC_
{BK1_71_FCC_Y_TH, 0xff}, // FCC_
{BK1_72_FCC_K1K2, 0x60}, // FCC_
{BK1_73_FCC_K3K4, 0x8e}, // FCC_
{BK1_74_FCC_K5K6, 0x8B}, // FCC_
{BK1_75_FCC_K7K8, 0x85}, // FCC_
// {BK1_76_FCC_CTRL, 0x4F}, // FCC_
// {BK1_77_APP_CTRL, 0x7E}, // FCC_
{BK1_78_PEAK_BAND1, 0x1D}, // FCC_
{BK1_79_PEAK_BAND2, 0x58}, // FCC_
// {BK1_7A_LTI, 0x98}, // FCC_
{BK1_7D_CTI,0x78},
{BK1_7E_VIP_Y_CTRL,0x02},
{BK1_7F_MAX_PIX, 0xA0}, // MAX_PIX
{BK1_80_MIN_PIX, 0x40}, // MIN_PIX
// {BK1_81_EGE_BAND1_POS,0x40},
// {BK1_82_EGE_BAND1_NEG,0x60},
// {BK1_84_EGE_BAND2_NEG,0x60},
// {BK1_85_M_BRI,0x04},
// {BK1_86_EGE_LTI_POS,0x10},
// {BK1_87_EGE_LTI_NEG,0x20},
// {BK1_88_YC_LPF, 0x9C},
{BK1_89, 0x00},
// {BK1_8A, 0x23},
{BK1_8B, 0x43},
{BK1_8C, 0xFF},
{BK1_8D, 0xAE},
{BK1_8E, 0x36},
{BK1_8F, 0x01},
{BK0_00_REGBK, REG_BANK_SCALER},
{_END_OF_TBL_, 0x00}
};
RegUnitType code tVideoFCC[] =
{
{BK0_00_REGBK, REG_BANK1_ADC_ACE_MCU},
{BK1_77_APP_CTRL, 0x7E}, // FCC_
{BK1_85_M_BRI,0x08},
//{BK1_88_YC_LPF, 0x8C},
{BK0_00_REGBK, REG_BANK_SCALER},
{_END_OF_TBL_, 0x00}
};
#if VGA_ENABLE
RegUnitType code tPCFCC[] =
{
{BK0_00_REGBK, REG_BANK1_ADC_ACE_MCU},
{BK1_77_APP_CTRL, 0}, // FCC_
{BK1_85_M_BRI,0},
{BK1_88_YC_LPF, 0},
{BK0_00_REGBK, REG_BANK_SCALER},
{_END_OF_TBL_, 0x00}
};
#endif
RegUnitType code t_AVInitializeFCC[] =
{
{BK0_00_REGBK, REG_BANK1_ADC_ACE_MCU},
{BK1_76_FCC_CTRL, 0x4F}, // FCC_
{BK1_7A_LTI, 0x98}, // FCC_
{BK1_7C_CROING,0x24},
{BK1_81_EGE_BAND1_POS,0x40},
{BK1_82_EGE_BAND1_NEG,0x60},
{BK1_84_EGE_BAND2_NEG,0x60},
{BK1_86_EGE_LTI_POS,0x10},
{BK1_87_EGE_LTI_NEG,0x20},
{BK1_88_YC_LPF, 0x3C},
{BK1_8A, 0x43},
{BK0_00_REGBK, REG_BANK_SCALER},
{_END_OF_TBL_, 0x00},
};
RegUnitType code t_TVInitializeFCC[] =
{
{BK0_00_REGBK, REG_BANK1_ADC_ACE_MCU},
{BK1_76_FCC_CTRL, 0x2D},
{BK1_7A_LTI, 0x90},
{BK1_7C_CROING,0x64},
{BK1_81_EGE_BAND1_POS,0x00},
{BK1_82_EGE_BAND1_NEG,0x00},
{BK1_84_EGE_BAND2_NEG,0x00},
{BK1_86_EGE_LTI_POS,0x00},
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -