⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sync.c

📁 realtek LCD monitor, TV开发源代码
💻 C
📖 第 1 页 / 共 3 页
字号:
                {               
                    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 + -