📄 sync.c
字号:
{
CScalerSetByte(_PB_DP_CDR_01_A1,0x72);
CScalerSetByte(_PB_DP_CDR_02_A2,0x21);
CScalerSetByte(_PB_DP_CDR_03_A3,0x8c);
CScalerSetByte(_PB_DP_FLD_09_AD,0x07);
CScalerSetByte(_PB_DP_RESERVED_05_BF,0xF0);
CScalerSetByte(_PB_DP_RXMISC_01_AE,0x01);
CScalerSetByte(_PB_DP_ADP_EQ_B2,0x76);
// V010 Patch Note (21) : Add PHY Frequency Detection in TMDS mode.
g_ucPhyFreq = _PHY_FREQUENCY_100_150;
}
else if(pData[0] == 0x30) //150~200MHz
{
CScalerSetByte(_PB_DP_CDR_01_A1,0x72);
CScalerSetByte(_PB_DP_CDR_02_A2,0x21);
CScalerSetByte(_PB_DP_CDR_03_A3,0x8c);
CScalerSetByte(_PB_DP_FLD_09_AD,0x07);
CScalerSetByte(_PB_DP_RESERVED_05_BF,0xF0);
CScalerSetByte(_PB_DP_RXMISC_01_AE,0x01);
CScalerSetByte(_PB_DP_ADP_EQ_B2,0x76);
// V010 Patch Note (21) : Add PHY Frequency Detection in TMDS mode.
g_ucPhyFreq = _PHY_FREQUENCY_150_200;
}
}
else if(pData[0] == 0x30) // 200~340MHz
{
CScalerSetByte(_PB_DP_CDR_01_A1,0x32);
CScalerSetByte(_PB_DP_CDR_02_A2,0x21);
CScalerSetByte(_PB_DP_CDR_03_A3,0x8c);
CScalerSetByte(_PB_DP_FLD_09_AD,0x07);
CScalerSetByte(_PB_DP_RESERVED_05_BF,0xF0);
CScalerSetByte(_PB_DP_RXMISC_01_AE,0x01);
CScalerSetByte(_PB_DP_ADP_EQ_B2,0x7E); // enable boost2
CScalerSetByte(_PB_DP_RESERVED_05_BF,0xf4); //more HPF
// V010 Patch Note (21) : Add PHY Frequency Detection in TMDS mode.
g_ucPhyFreq = _PHY_FREQUENCY_200_340;
}
CScalerSetByte(_PB_DP_RXMISC_02_AF,0xC7);
CScalerSetByte(_PB_DIG01_E1,0xf0);
CSyncScanInputPortResetPhy();
//CTimerDelayXms(100);
CScalerSetByte(_PB_DP_PWR_CTL_B4,0x7f);
#elif(_SCALER_TYPE == _RTD2545LR)
CScalerRead(_PB_DP_FLD_03_A7, 1, pData, _NON_AUTOINC);
pData[0] &= 0xf0;
if(pData[0] == 0x80) // 25~50MHz
{
CScalerSetByte(_PB_DP_CDR_01_A1,0x80);
CScalerSetByte(_PB_DP_CDR_02_A2,0x39);
CScalerSetByte(_PB_DP_CDR_03_A3,0x94);
CScalerSetByte(_PB_DP_FLD_09_AD,0x2F);
CScalerSetByte(_PB_DP_RESERVED_05_BF,0xF1);
CScalerSetByte(_PB_DP_RXMISC_01_AE,0x01);
CScalerSetByte(_PB_DP_ADP_EQ_B2,0x76);
// V010 Patch Note (21) : Add PHY Frequency Detection in TMDS mode.
g_ucPhyFreq = _PHY_FREQUENCY_25_50;
}
else if(pData[0] == 0xb0) // 50~100MHz
{
CScalerSetByte(_PB_DP_FLD_05_A9,0x2c);
CScalerSetByte(_PB_DP_FLD_06_AA,0x4B);
CScalerSetByte(_PB_DP_FLD_07_AB,0xb2);
CSyncScanInputPortResetPhy();
CScalerRead(_PB_DP_FLD_03_A7, 1, pData, _NON_AUTOINC);
pData[0] &= 0xf0;
if(pData[0] == 0xb0) //50~62.5MHz
{
CScalerSetByte(_PB_DP_CDR_01_A1,0x40);
CScalerSetByte(_PB_DP_CDR_02_A2,0xba);
CScalerSetByte(_PB_DP_CDR_03_A3,0x94);
CScalerSetByte(_PB_DP_FLD_09_AD,0x2F);
CScalerSetByte(_PB_DP_RESERVED_05_BF,0xF1);
CScalerSetByte(_PB_DP_RXMISC_01_AE,0x01);
CScalerSetByte(_PB_DP_ADP_EQ_B2,0x76);
// V010 Patch Note (21) : Add PHY Frequency Detection in TMDS mode.
g_ucPhyFreq = _PHY_FREQUENCY_50_62;
}
else if(pData[0] == 0x70) //62.5~100MHz
{
CScalerSetByte(_PB_DP_CDR_01_A1,0xB0);
CScalerSetByte(_PB_DP_CDR_02_A2,0x21);
CScalerSetByte(_PB_DP_CDR_03_A3,0x8c);
CScalerSetByte(_PB_DP_FLD_09_AD,0x07);
CScalerSetByte(_PB_DP_RESERVED_05_BF,0xF0);
CScalerSetByte(_PB_DP_RXMISC_01_AE,0x01);
CScalerSetByte(_PB_DP_ADP_EQ_B2,0x76);
// V010 Patch Note (21) : Add PHY Frequency Detection in TMDS mode.
g_ucPhyFreq = _PHY_FREQUENCY_62_100;
}
}
else if(pData[0] == 0x70) // 100~200MHz
{
CScalerSetByte(_PB_DP_FLD_05_A9,0x2c);
CScalerSetByte(_PB_DP_FLD_06_AA,0x59);
CScalerSetByte(_PB_DP_FLD_07_AB,0xb2);
CSyncScanInputPortResetPhy();
CScalerRead(_PB_DP_FLD_03_A7, 1, pData, _NON_AUTOINC);
pData[0] &= 0xf0;
if(pData[0] == 0x70) //100~150MHz
{
CScalerSetByte(_PB_DP_CDR_01_A1,0x70);
CScalerSetByte(_PB_DP_CDR_02_A2,0x21);
CScalerSetByte(_PB_DP_CDR_03_A3,0x8c);
CScalerSetByte(_PB_DP_FLD_09_AD,0x07);
CScalerSetByte(_PB_DP_RESERVED_05_BF,0xF0);
CScalerSetByte(_PB_DP_RXMISC_01_AE,0x01);
CScalerSetByte(_PB_DP_ADP_EQ_B2,0x76);
// V010 Patch Note (21) : Add PHY Frequency Detection in TMDS mode.
g_ucPhyFreq = _PHY_FREQUENCY_100_150;
}
else if(pData[0] == 0x30) //150~200MHz
{
CScalerSetByte(_PB_DP_CDR_01_A1,0x70);
CScalerSetByte(_PB_DP_CDR_02_A2,0x21);
CScalerSetByte(_PB_DP_CDR_03_A3,0x8c);
CScalerSetByte(_PB_DP_FLD_09_AD,0x07);
CScalerSetByte(_PB_DP_RESERVED_05_BF,0xF0);
CScalerSetByte(_PB_DP_RXMISC_01_AE,0x01);
CScalerSetByte(_PB_DP_ADP_EQ_B2,0x76);
// V010 Patch Note (21) : Add PHY Frequency Detection in TMDS mode.
g_ucPhyFreq = _PHY_FREQUENCY_150_200;
}
}
else if(pData[0] == 0x30) // 200~340MHz
{
CScalerSetByte(_PB_DP_CDR_01_A1,0x30);
CScalerSetByte(_PB_DP_CDR_02_A2,0x21);
CScalerSetByte(_PB_DP_CDR_03_A3,0x8c);
CScalerSetByte(_PB_DP_FLD_09_AD,0x07);
CScalerSetByte(_PB_DP_RESERVED_05_BF,0xF0);
CScalerSetByte(_PB_DP_RXMISC_01_AE,0x01);
CScalerSetByte(_PB_DP_ADP_EQ_B2,0x7E); // enable boost2
CScalerSetByte(_PB_DP_RESERVED_05_BF,0xf4); //more HPF
// V010 Patch Note (21) : Add PHY Frequency Detection in TMDS mode.
g_ucPhyFreq = _PHY_FREQUENCY_200_340;
}
CScalerSetByte(_PB_DP_RXMISC_02_AF,0xC7);
CScalerSetByte(_PB_DIG01_E1,0xf0);
CSyncScanInputPortResetPhy();
//CTimerDelayXms(100);
CScalerSetByte(_PB_DP_PWR_CTL_B4,0x7f);
#else
No Setting !!
#endif // End of #if(_SCALER_TYPE == _RTD2472D)
CTimerDelayXms(100);
}
if((ucCurrState == _SLEEP_STATE) && (!bSleepByOverRange))//1212 sephinroth
{
CScalerPageSelect(_PAGEB);
CScalerSetByte(_PB_DP_Z0_CALIBRATION_B6,0xf4);
cnt1 = 0;
for(cnt0=0;cnt0<4;cnt0++)
{
CScalerPageSelect(_PAGE2);
CScalerRead(_P2_UP_DOWN_CTRL1_B6, 1, pData, _NON_AUTOINC);
pData[0] = ((pData[0] & 0x80) == 0x80) ? _FALSE : _TRUE;
if(pData[0])
{
CScalerPageSelect(_PAGEB);
CScalerSetByte(_PB_DIG00_E0, 0xD0);
CScalerSetByte(_PB_DP_PWR_CTL_B4,0x08);
CScalerSetByte(_PB_DP_RXMISC_02_AF,0x87);
CScalerSetByte(_PB_DP_ADP_EQ_B2,0x16);
CScalerSetByte(_PB_DP_AUX_00_B3,0x92);
CScalerSetByte(_PB_DP_FLD_05_A9,0x0b);
CScalerSetByte(_PB_DP_FLD_06_AA,0x17);
CScalerSetByte(_PB_DP_FLD_07_AB,0x1d);
CSyncScanInputPortResetPhy();
CTimerDelayXms(2);
CScalerRead(_PB_DP_FLD_03_A7, 1, pData, _NON_AUTOINC);
pData[0] &= 0xf0;
if(pData[0] == 0x30)
{
cnt1++;
}
else
{
cnt1 = 0;
return _FALSE;
}
}
}
CScalerPageSelect(_PAGEB);
CScalerSetByte(_PB_DP_FLD_05_A9,0xc4);//ryan 081230
CScalerSetByte(_PB_DP_FLD_06_AA,0x82);
CScalerSetByte(_PB_DP_FLD_07_AB,0x0a);
CSyncScanInputPortResetPhy();
CTimerDelayXms(10);
CScalerRead(_PB_DP_FLD_03_A7, 1, pData, _NON_AUTOINC);
pData[0] &= 0xf0;
if (pData[0] == 0x80)
{
CScalerSetByte(_PB_DP_FLD_05_A9,0x1f);//1c
CScalerSetByte(_PB_DP_FLD_06_AA,0x2d);//28
CScalerSetByte(_PB_DP_FLD_07_AB,0x44);//3d
}
else if (pData[0] == 0xb0)
{
CScalerSetByte(_PB_DP_FLD_05_A9,0x44);//3d
CScalerSetByte(_PB_DP_FLD_06_AA,0x6c);//60
CScalerSetByte(_PB_DP_FLD_07_AB,0x82);//74
}
else if (pData[0] == 0x70)
{
CScalerSetByte(_PB_DP_FLD_05_A9,0xff);//74
CScalerSetByte(_PB_DP_FLD_06_AA,0xc9);//b3
CScalerSetByte(_PB_DP_FLD_07_AB,0x0a);//ed
}
else
{
CScalerSetByte(_PB_DP_FLD_05_A9,0xff);//fd
CScalerSetByte(_PB_DP_FLD_06_AA,0xff);//ff
CScalerSetByte(_PB_DP_FLD_07_AB,0x32);//10
}
cnt1 = 0;
for(cnt0=0;cnt0<30;cnt0++)
{
CScalerPageSelect(_PAGE2);
CScalerRead(_P2_UP_DOWN_CTRL1_B6, 1, pData, _NON_AUTOINC);
pData[0] = ((pData[0] & 0x80) == 0x80) ? _FALSE : _TRUE;
if(pData[0])
{
CScalerPageSelect(_PAGEB);
CScalerSetByte(_PB_DIG00_E0, 0xD0);
CScalerSetByte(_PB_DP_PWR_CTL_B4,0x08);
CScalerSetByte(_PB_DP_RXMISC_02_AF,0x87);
CScalerSetByte(_PB_DP_ADP_EQ_B2,0x16);
CScalerSetByte(_PB_DP_AUX_00_B3,0x92);
CSyncScanInputPortResetPhy();
CTimerDelayXms(2);
CScalerRead(_PB_DP_FLD_03_A7, 1, pData, _NON_AUTOINC);
pData[0] &= 0xf0;
if (cnt0==0)
{
pData[1] = pData[0];
}
if((pData[0] == pData[1]) && (pData[0]!=0x80) && (pData[0]!=0x30))
{
cnt1++;
}
else
{
cnt1 = 0;
return _FALSE;
}
}
}
cnt1 = 0;
for(cnt0=0;cnt0<30;cnt0++)
{
CScalerPageSelect(_PAGE2);
CScalerRead(_P2_UP_DOWN_CTRL1_B6, 1, pData, _NON_AUTOINC);
pData[0] = ((pData[0] & 0x80) == 0x80) ? _FALSE : _TRUE;
if(pData[0])
{
CScalerPageSelect(_PAGEB);
CScalerSetByte(_PB_DIG00_E0, 0xD0);
CScalerSetByte(_PB_DP_PWR_CTL_B4,0x08);
CScalerSetByte(_PB_DP_RXMISC_02_AF,0x87);
CScalerSetByte(_PB_DP_ADP_EQ_B2,0x16);
CScalerSetByte(_PB_DP_AUX_00_B3,0x92);
CSyncScanInputPortResetPhy();
CTimerDelayXms(2);
CScalerRead(_PB_DP_FLD_03_A7, 1, pData, _NON_AUTOINC);
pData[0] &= 0xf0;
if (cnt0==0)
{
pData[1] = pData[0];
}
if((pData[0] == pData[1]) && (pData[0]!=0x80) && (pData[0]!=0x30))
{
cnt1++;
if(cnt1 == 30)
{
CScalerPageSelect(_PAGEB);
CScalerRead(0xb4, 1, pData, _NON_AUTOINC);
CScalerSetByte(_PB_DP_PWR_CTL_B4,0x7f);
return _TRUE;
}
}
else
{
cnt1 = 0;
return _FALSE;
}
}
}
}
//ming V009_20080822
for(cnt0=0;cnt0<2;cnt0++)
{
//for(cnt1=0;cnt1<2;cnt1++)
{
CScalerPageSelect(_PAGE2);
/*
// V010 Patch Note (19) : Modify Source Scan Handler.
CTimerDelayXms(40);
CScalerRead(_P2_UP_DOWN_CTRL1_B6, 1, pData, _NON_AUTOINC);
if((pData[0] & 0x80) == 0x80) // no clock
{
return _FALSE;
}
else
CTimerDelayXms(45);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -