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

📄 reg0299.c

📁 这是DVB tuner驱动部分和其它相关的源码和一些技术资料文档.
💻 C
📖 第 1 页 / 共 4 页
字号:
   /* AddReg(Dev_p, R_I2CRPT,"I2CRPT",0x05,0x00);    */#if defined(mb5518)    AddReg(Dev_p, R_I2CRPT,"I2CRPT",0x05,0x05);  /* FORCE */#else    AddReg(Dev_p, R_I2CRPT,"I2CRPT",0x05,0x00);#endif    AddField(Dev_p, R_I2CRPT,I2CT,"I2CT",7,1,UNSIGNED);    AddField(Dev_p, R_I2CRPT,SCLT,"SCLT",2,1,UNSIGNED);    AddField(Dev_p, R_I2CRPT,SDAT,"SDAT",0,1,UNSIGNED);    /*	DACR1	*/    AddReg(Dev_p, R_DACR1,"DACR1",0x06,0x02);    AddField(Dev_p, R_DACR1,DACMODE,"DACMODE",5,3,UNSIGNED);    AddField(Dev_p, R_DACR1,DACMSB,"DACMSB",0,4,UNSIGNED);    /*	DACR2	*/    AddReg(Dev_p, R_DACR2,"DACR2",0x07,0x00);    AddField(Dev_p, R_DACR2,DACLSB,"DACLSB",0,8,UNSIGNED);    /*	DISEQC	*/    AddReg(Dev_p, R_DISEQC,"DISEQC",0x08,0x47);    AddField(Dev_p, R_DISEQC,LOCKOUTPUT,"LOCKOUTPUT",6,2,UNSIGNED);    AddField(Dev_p, R_DISEQC,LOCKCONFIGURATION,"LOCKCONFIGURATION",5,1,UNSIGNED);    AddField(Dev_p, R_DISEQC,UNMODULATEDBURST,"UNMODULATEDBURST",2,1,UNSIGNED);    AddField(Dev_p, R_DISEQC,DISEQCMODE,"DISEQCMODE",0,2,UNSIGNED);    /*	DISEQCFIFO	*/    AddReg(Dev_p, R_DISEQCFIFO,"DISEQCFIFO",0x09,0x00);    AddField(Dev_p, R_DISEQCFIFO,DISEQCFIFO,"DISEQCFIFO",0,8,UNSIGNED);    /*	DISEQCSTATUS	*/    AddReg(Dev_p, R_DISEQCSTATUS,"DISEQCSTATUS",0x0A,0x82);    AddField(Dev_p, R_DISEQCSTATUS,INPORT,"INPUTPORT",7,1,UNSIGNED);    AddField(Dev_p, R_DISEQCSTATUS,SDATINPUTSTATE,"SDATINPUTSTATE",6,1,UNSIGNED);    AddField(Dev_p, R_DISEQCSTATUS,FIFOEMPTY,"FIFOEMPTY",1,1,UNSIGNED);    AddField(Dev_p, R_DISEQCSTATUS,FIFOFULL,"FIFOFULL",0,1,UNSIGNED);    /*	RES	*/    AddReg(Dev_p, R_RES,"RES",0x0B,0x00);    AddField(Dev_p, R_RES,RESERVED,"RESERVED",0,8,UNSIGNED);    /*	IOCFG	*/    AddReg(Dev_p, R_IOCFG,"IOCFG",0x0C,0x51);    AddField(Dev_p, R_IOCFG,OP1CONTROL,"OP1CONTROL",7,1,UNSIGNED);    AddField(Dev_p, R_IOCFG,OP1VALUE,"OP1VALUE",6,1,UNSIGNED);    AddField(Dev_p, R_IOCFG,OP0CONTROL,"OP0CONTROL",5,1,UNSIGNED);    AddField(Dev_p, R_IOCFG,OP0VALUE,"OP0VALUE",4,1,UNSIGNED);    AddField(Dev_p, R_IOCFG,NYQUISTFILTER,"NYQUISTFILTER",1,2,UNSIGNED);    AddField(Dev_p, R_IOCFG,IQ,"IQ",0,1,UNSIGNED);    /*	AGC1C	*/    AddReg(Dev_p, R_AGC1C,"AGC1C",0x0D,0x81);    AddField(Dev_p, R_AGC1C,DCADJ,"DCADJ",7,1,UNSIGNED);    AddField(Dev_p, R_AGC1C,BETA_AGC1,"BETA_AGC1",0,3,UNSIGNED);    /*	RTC	*/    AddReg(Dev_p, R_RTC,"RTC",0x0E,0x23);    AddField(Dev_p, R_RTC,ALPHA_TMG,"ALPHA_TMG",4,3,UNSIGNED);    AddField(Dev_p, R_RTC,BETA_TMG,"BETA_TMG",0,3,UNSIGNED);    /*	AGC1R	*/    AddReg(Dev_p, R_AGC1R,"AGC1R",0x0F,0x1a);    AddField(Dev_p, R_AGC1R,IAGC,"IAGC",7,1,UNSIGNED);    AddField(Dev_p, R_AGC1R,AGC1_REF,"AGC1_REF",0,6,UNSIGNED);    /*	AGC2O	*/    AddReg(Dev_p, R_AGC2O,"AGC2O",0x10,0x34);    AddField(Dev_p, R_AGC2O,AGC2COEF,"AGC2COEF",5,3,UNSIGNED);    AddField(Dev_p, R_AGC2O,AGC2_REF,"AGC2_REF",0,5,UNSIGNED);    /*	TLSR	*/    AddReg(Dev_p, R_TLSR,"TLSR",0x11,0x84);    AddField(Dev_p, R_TLSR,STEP_MINUS,"STEP_MINUS",4,4,UNSIGNED);    AddField(Dev_p, R_TLSR,STEP_PLUS,"STEP_PLUS",0,4,UNSIGNED);    /*	CFD	*/    AddReg(Dev_p, R_CFD,"CFD",0x12,0xb9);    AddField(Dev_p, R_CFD,CFD_ALGO,"CFD_ALGO",7,1,UNSIGNED);    AddField(Dev_p, R_CFD,BETA_FC,"BETA_FC",4,3,UNSIGNED);    AddField(Dev_p, R_CFD,FDTC,"FDTC",2,2,UNSIGNED);    AddField(Dev_p, R_CFD,LDL,"LDL",0,2,UNSIGNED);    /*	ACLC	*/    AddReg(Dev_p, R_ACLC,"ACLC",0x13,0x9b);    AddField(Dev_p, R_ACLC,DEROTATOR,"DEROTATOR",7,1,UNSIGNED);    AddField(Dev_p, R_ACLC,NOISEESTIMATORTIMECONSTANT,"NOISEESTIMATORTIMECONSTANT",4,2,UNSIGNED);    AddField(Dev_p, R_ACLC,ALPHA_CAR,"ALPHA_CAR",0,4,UNSIGNED);    /*	BCLC	*/    AddReg(Dev_p, R_BCLC,"BCLC",0x14,0x9e);    AddField(Dev_p, R_BCLC,PHASE_DETECTOR_ALGO,"PHASE_DETECTOR_ALGO",6,2,UNSIGNED);    AddField(Dev_p, R_BCLC,BETA_CAR,"BETA_CAR",0,6,UNSIGNED);    /*	CLDT	*/    AddReg(Dev_p, R_CLDT,"CLDT",0x15,0xe3);    AddField(Dev_p, R_CLDT,CLDT,"CLDT",0,8,SIGNED);    /*	AGC1I	*/    AddReg(Dev_p, R_AGC1I,"AGC1I",0x16,0x80);    AddField(Dev_p, R_AGC1I,AGCINTEGRATORVALUE,"AGCINTEGRATORVALUE",0,8,SIGNED);    /*	TLIR	*/    AddReg(Dev_p, R_TLIR,"TLIR",0x17,0x18);    AddField(Dev_p, R_TLIR,TLIR,"TLIR",0,8,UNSIGNED);    /*	AGC2I1	*/    AddReg(Dev_p, R_AGC2I1,"AGC2I1",0x18,0xff);    AddField(Dev_p, R_AGC2I1,AGC2INTEGRATORMSB,"AGC2INTEGRATORMSB",0,8,UNSIGNED);    /*	AGC2I2	*/    AddReg(Dev_p, R_AGC2I2,"AGC2I2",0x19,0xff);    AddField(Dev_p, R_AGC2I2,AGC2INTEGRATORLSB,"AGC2INTEGRATORLSB",0,8,UNSIGNED);    /*	RTF	*/    AddReg(Dev_p, R_RTF,"RTF",0x1A,0x82);    AddField(Dev_p, R_RTF,RTF,"RTF",0,8,SIGNED);    /*	VSTATUS	*/    AddReg(Dev_p, R_VSTATUS,"VSTATUS",0x1B,0x00);    AddField(Dev_p, R_VSTATUS,CF,"CF",7,1,UNSIGNED);    AddField(Dev_p, R_VSTATUS,PRF,"PRF",4,1,UNSIGNED);    AddField(Dev_p, R_VSTATUS,LK,"LK",3,1,UNSIGNED);    AddField(Dev_p, R_VSTATUS,CPR,"CPR",0,3,UNSIGNED);    /*	CLDI	*/    AddReg(Dev_p, R_CLDI,"CLDI",0x1C,0x7f);    AddField(Dev_p, R_CLDI,CLDI,"CLDI",0,8,SIGNED);    /*	ERRCNT_HIGH	*/    AddReg(Dev_p, R_ERRCNT_HIGH,"ERRCNT_HIGH",0x1D,0x00);    AddField(Dev_p, R_ERRCNT_HIGH,ERRCNTMSB,"ERRCNTMSB",0,8,UNSIGNED);    /*	ERRCNT_LOW	*/    AddReg(Dev_p, R_ERRCNT_LOW,"ERRCNT_LOW",0x1E,0x00);    AddField(Dev_p, R_ERRCNT_LOW,ERRCNTLSB,"ERRCNTLSB",0,8,UNSIGNED);    /*	SFRH	*/    AddReg(Dev_p, R_SFRH,"SFRH",0x1F,0x00);    AddField(Dev_p, R_SFRH,SYMB_FREQH,"SYMB_FREQH",0,8,UNSIGNED);    /*	SFRM	*/    AddReg(Dev_p, R_SFRM,"SFRM",0x20,0x00);    AddField(Dev_p, R_SFRM,SYMB_FREQM,"SYMB_FREQM",0,8,UNSIGNED);    /*	SFRL	*/    AddReg(Dev_p, R_SFRL,"SRFL",0x21,0x00);    AddField(Dev_p, R_SFRL,SYMB_FREQL,"SYMB_FREQL",4,4,UNSIGNED);    /*	CFRM	*/    AddReg(Dev_p, R_CFRM,"CFRM",0x22,0x80);    AddField(Dev_p, R_CFRM,DEROTATORFREQUENCYMSB,"DEROTATORFREQUENCYMSB",0,8,UNSIGNED);    /*	CFRL	*/    AddReg(Dev_p, R_CFRL,"CFRL",0x23,0x0b);    AddField(Dev_p, R_CFRL,DEROTATORFREQUENCYLSB,"DEROTATORFREQUENCYLSB",0,8,UNSIGNED);    /*	NIRH	*/    AddReg(Dev_p, R_NIRH,"NIRH",0x24,0x2b);    AddField(Dev_p, R_NIRH,NOISEINDICATORMSB,"NOISEINDICATORMSB",0,8,UNSIGNED);    /*	NIRL	*/    AddReg(Dev_p, R_NIRL,"NIRL",0x25,0x75);    AddField(Dev_p, R_NIRL,NOISEINDICATORLSB,"NOISEINDICATORLSB",0,8,UNSIGNED);    /*	VERROR	*/    AddReg(Dev_p, R_VERROR,"VERROR",0x26,0x1a);    AddField(Dev_p, R_VERROR,ERRORRATE,"ERRORRATE",0,8,UNSIGNED);    /*	FECM	*/    AddReg(Dev_p, R_FECM,"FECM",0x28,0x00);    AddField(Dev_p, R_FECM,FECMODE,"FECMODE",4,4,UNSIGNED);    AddField(Dev_p, R_FECM,OUTPUTTYPE,"OUTPUTTYPE",1,1,UNSIGNED);    AddField(Dev_p, R_FECM,OUTPUTIMPEDANCE,"OUTPUTIMPEDANCE",0,1,UNSIGNED);    /*	VTH0	*/    AddReg(Dev_p, R_VTH0,"VTH0",0x29,0x1E);    AddField(Dev_p, R_VTH0,VTH0,"VTH0",0,8,UNSIGNED);    /*	VTH1	*/    AddReg(Dev_p, R_VTH1,"VTH1",0x2A,0x14);    AddField(Dev_p, R_VTH1,VTH1,"VTH1",0,8,UNSIGNED);    /*	VTH2	*/    AddReg(Dev_p, R_VTH2,"VTH2",0x2B,0x0F);    AddField(Dev_p, R_VTH2,VTH2,"VTH2",0,8,UNSIGNED);    /*	VTH3	*/    AddReg(Dev_p, R_VTH3,"VTH3",0x2C,0x09);    AddField(Dev_p, R_VTH3,VTH3,"VTH3",0,8,UNSIGNED);    /*	VTH4	*/    AddReg(Dev_p, R_VTH4,"VTH4",0x2D,0x05);    AddField(Dev_p, R_VTH4,VTH4,"VTH4",0,8,UNSIGNED);    /*	PR	*/    AddReg(Dev_p, R_PR,"PR",0x31,0x1F);    AddField(Dev_p, R_PR,RATE,"RATE",0,8,UNSIGNED);    /*	VSEARCH	*/    AddReg(Dev_p, R_VSEARCH,"VSEARCH",0x32,0x19);    AddField(Dev_p, R_VSEARCH,SEARCHMODE,"SEARCHMODE",7,1,UNSIGNED);    AddField(Dev_p, R_VSEARCH,FREEZE,"FREEZE",6,1,UNSIGNED);    AddField(Dev_p, R_VSEARCH,SN,"SN",4,2,UNSIGNED);    AddField(Dev_p, R_VSEARCH,TO,"TO",2,2,UNSIGNED);    AddField(Dev_p, R_VSEARCH,H,"H",0,2,UNSIGNED);    /*	RS	*/    AddReg(Dev_p, R_RS,"RS",0x33,0xFc);    AddField(Dev_p, R_RS,DEINTERLEAVER,"DEINTERLEAVER",7,1,UNSIGNED);    AddField(Dev_p, R_RS,SYNCHRO,"SYNCHRO",6,1,UNSIGNED);    AddField(Dev_p, R_RS,REEDSOLOMON,"REEDSOLOMON",5,1,UNSIGNED);    AddField(Dev_p, R_RS,DESCRAMBLER,"DESCRAMBLER",4,1,UNSIGNED);    AddField(Dev_p, R_RS,WRITEERRORBIT,"WRITEERRORBIT",3,1,UNSIGNED);    AddField(Dev_p, R_RS,BLOCKSYNCHRO,"BLOCKSYNCHRO",2,1,UNSIGNED);    AddField(Dev_p, R_RS,OUTPUTCLOCKPOLARITY,"OUTPUTCLOCKPOLARITY",1,1,UNSIGNED);    AddField(Dev_p, R_RS,OUTPUTCLOCKCONFIG,"OUTPUTCLOCKCONFIG",0,1,UNSIGNED);    /*	ERRCNT	*/    AddReg(Dev_p, R_ERRCNT,"ERRCNT",0x34,0x13);    AddField(Dev_p, R_ERRCNT,ERRORMODE,"ERRORMODE",7,1,UNSIGNED);    AddField(Dev_p, R_ERRCNT,ERRORSOURCE,"ERRORSOURCE",4,2,UNSIGNED);    AddField(Dev_p, R_ERRCNT,NOE,"NOE",0,2,UNSIGNED);    /*	TEST REGISTERS	*/    AddReg(Dev_p, R_TFEC1,"TFEC1",0x40,0x00);    AddField(Dev_p, R_TFEC1,TFEC1,"TFEC1",0,8,UNSIGNED);    AddReg(Dev_p, R_TFEC2,"TFEC2",0x41,0x00);    AddField(Dev_p, R_TFEC2,TFEC2,"TFEC2",0,8,UNSIGNED);    AddReg(Dev_p, R_TSTRAM1,"TSTRAM1",0x42,0x00);    AddField(Dev_p, R_TSTRAM1,TSTRAM1,"TSTRAM1",0,8,UNSIGNED);    AddReg(Dev_p, R_TSTRATE,"TSTRATE",0x43,0x00);    AddField(Dev_p, R_TSTRATE,TSTRATE,"TSTRATE",0,8,UNSIGNED);    AddReg(Dev_p, R_SELOUT,"SELOUT",0x44,0x00);    AddField(Dev_p, R_SELOUT,SELOUT,"SELOUT",0,8,UNSIGNED);    AddReg(Dev_p, R_FORCEIN,"FORCEIN",0x45,0x00);    AddField(Dev_p, R_FORCEIN,FORCEIN,"FORCEIN",0,8,UNSIGNED);    AddReg(Dev_p, R_TSRTESCK,"TSRTESCK",0x46,0x00);    AddField(Dev_p, R_TSRTESCK,TSRTESCK,"TSRTESCK",0,8,UNSIGNED);    AddReg(Dev_p, R_TSTOUT,"TSTOUT",0x47,0x00);    AddField(Dev_p, R_TSTOUT,TSTOUT,"TSTOUT",0,8,UNSIGNED);    AddReg(Dev_p, R_TSTR,"TSTR",0x48,0x00);    AddField(Dev_p, R_TSTR,TSTR,"TSTR",0,8,UNSIGNED);    AddReg(Dev_p, R_TAGC2,"TAGC2",0x49,0x00);    AddField(Dev_p, R_TAGC2,TAGC2,"TAGC2",0,8,UNSIGNED);    AddReg(Dev_p, R_TCTL,"TCTL",0x4A,0x00);    AddField(Dev_p, R_TCTL,TCTL,"TCTL",0,8,UNSIGNED);    AddReg(Dev_p, R_TCTL2,"TCTL2",0x4B,0x00);    AddField(Dev_p, R_TCTL2,TCTL2,"TCTL2",0,8,UNSIGNED);    AddReg(Dev_p, R_TAGC1,"TAGC1",0x4C,0x00);    AddField(Dev_p, R_TAGC1,TAGC1,"TAGC1",0,8,UNSIGNED);    AddReg(Dev_p, R_TSTFIFO,"TSTFIFO",0x4D,0x00);    AddField(Dev_p, R_TSTFIFO,TSTFIFO,"TSTFIFO",0,8,UNSIGNED);    AddReg(Dev_p, R_TSTVCO,"TSTVCO",0x4E,0x00);    AddField(Dev_p, R_TSTVCO,TSTVCO,"TSTVCO",0,8,UNSIGNED);    AddReg(Dev_p, R_GHOST,"GHOST",0x4F,0x00);    AddField(Dev_p, R_GHOST,GHOST,"GHOST",0,8,UNSIGNED);    return RegReset(Dev_p);}/***************************************************** **FUNCTION	::	PowOf2 **ACTION	::	Compute  2^n (where n is an integer) **PARAMS IN	::	number -> n **PARAMS OUT::	NONE **RETURN	::	2^n *****************************************************/long PowOf2(int number){    int i;    long result=1;    for(i=0;i<number;i++)        result*=2;    return result;}/***************************************************** **FUNCTION	::	LongSqrt **ACTION	::	Compute  the square root of n (where n is a long integer) **PARAMS IN	::	number -> n **PARAMS OUT::	NONE **RETURN	::	sqrt(n) *****************************************************/long LongSqrt(long Value){    /* this performs a classical root extraction     ** on long integers */    long Factor=1;    long Root=1;    long R;    long Ltmp;    if(Value<=1)        return (Value);    Ltmp=Value;    while (Ltmp>3)    {        Factor<<=2;        Ltmp>>=2;    }    R=Value-Factor; /*	Ratio	*/    Factor>>=2;    while(Factor>0)    {        Root<<=1;        Ltmp=Root<<1;        Ltmp*=Factor;        Ltmp+=Factor;        Factor>>=2;        if(R-Ltmp>=0)        {            R=R-Ltmp;            Root+=1;        }    }    return (Root) ;}/***************************************************** **FUNCTION	::	RegSetExtClk **ACTION	::	Set the value of the external clock variable **PARAMS IN	::	NONE **PARAMS OUT::	NONE **RETURN	::	NONE *****************************************************/void RegSetExtClk(STV0299_ControlBlock_t *Dev_p, long _Value){    Dev_p->RegExtClk = _Value;}/***************************************************** **FUNCTION	::	RegGetExtClk **ACTION	::	Get the external clock value **PARAMS IN	::	NONE **PARAMS OUT::	NONE **RETURN	::	External clock value *****************************************************/long RegGetExtClk(STV0299_ControlBlock_t *Dev_p){    return (Dev_p->RegExtClk);}/***************************************************** **FUNCTION	::	CalcRefFrequency **ACTION	::	Compute reference frequency **PARAMS IN	::	NONE **PARAMS OUT::	NONE **RETURN	::	Reference frequency *****************************************************/long CalcRefFrequency(STV0299_ControlBlock_t *Dev_p, int k){    return (RegGetExtClk(Dev_p)/((long)k+1));   /* cast to eliminate compiler warning --SFS */}/***************************************************** **FUNCTION	::	CalcVCOFrequency **ACTION	::	Compute VCO frequency **PARAMS IN	::	NONE **PARAMS OUT::	NONE **RETURN	::	VCO frequency *****************************************************/long CalcVCOFrequency(STV0299_ControlBlock_t *Dev_p, int k,int m){    return (CalcRefFrequency(Dev_p, k)*4*((long)m+1));  /* cast to eliminate compiler warning --SFS */}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -