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

📄 d0372.c

📁 st7710的tuner标准驱动
💻 C
📖 第 1 页 / 共 4 页
字号:
/* ----------------------------------------------------------------------------
File Name: d0372.c

Description:

    stv0372 8VSB demod driver.


Copyright (C) 2004-2006 STMicroelectronics

History:

   date: 
version: 
 author: 
comment: 

Reference:

    
---------------------------------------------------------------------------- */


/* Includes ---------------------------------------------------------------- */

/* C libs */
#ifdef ST_OSLINUX
   #include "stos.h"
#else

#include <string.h>

#include "stlite.h"     /* Standard includes */

/* STAPI */
#include "sttbx.h"
#endif
#include "stevt.h"
#include "sttuner.h"

/* local to sttuner */
#include "util.h"       /* generic utility functions for sttuner */
#include "dbtypes.h"    /* data types for databases */
#include "sysdbase.h"   /* functions to accesss system data */

#include "ioarch.h"     /* I/O for this driver */
#include "ioreg.h"      /* I/O for this driver */


/* LLA */


#include "d0372_drv.h"    /* misc driver functions */
#include "d0372.h"      /* header for this file */
#include "d0372_map.h"

#include "tioctl.h"     /* data structure typedefs for all the ter ioctl functions */


U16  STV0372_Address[STV0372_NBREGS]=
{
0xf000,     /* ID */
0xf001 ,    /* I2C_PAGE */
0xf002,     /* I2CRPT1 */
0xf003,     /* I2CRPT2 */
0xf004,     /* CLK_CTRL */
0xf005,     /* STANDBY */
0xf006 ,    /* IO_CTRL */
0xf007,     /* GPIO_INFO */
0xf610,     /* PLL_CTRL */
0xf611,     /* RESERVED */
0xf61c,     /* AD10_CTRL */
0xf010,     /* DEMOD_CTRL */
0xf011,     /* SYNCCTRL */
0xf012,     /* AGCCTRL1 */
0xf013,     /* AGCCTRL2 */
0xf014,     /* AGCPWR0372_LSB */
0xf015,     /* AGCPWR0372_MSB */
0xf016,     /* AGCITHUP_LSB */
0xf017,     /* AGCITHUP_MSB */
0xf018,     /* AGCITHLOW_LSB */
0xf019,     /* AGCITHLOW_MSB */
0xf01a,     /* AGCTH_LSB */
0xf01b,     /* AGCTH_MSB */
0xf01c,     /* AGCBWSEL */
0xf01d,     /* TAGCBWSEL */
0xf01e,     /* TST_PWM1 */
0xf01f,     /* TST_PWM2 */
0xf020,     /* TST_PWM3 */
0xf021,     /* AGC_IND_LSB */
0xf022,     /* AGC_IND_MSB */
0xf023,     /* AGC_IND_MMSB */
0xf024,     /* VCXOOFFSET1 */
0xf025,     /* VCXOOFFSET2 */
0xf026,     /* VCXOOFFSET3 */
0xf027,     /* VCXOOFFSET4 */
0xf028,     /* GAINSRC_LSB */
0xf029,     /* GAINSRC_MSB */
0xf02a,     /* VCXOINITV */
0xf02b,     /* GAIN1ACQ1_LSB */
0xf02c,     /* GAIN1ACQ1_MSB */
0xf02d,     /* GAIN1ACQ2_LSB */
0xf02e,     /* GAIN1ACQ2_MSB */
0xf02f,     /* GAIN1TRACK_LSB */
0xf030,     /* GAIN1TRACK_MSB */
0xf031,     /* GAIN2ACQ1_LSB */
0xf032,     /* GAIN2ACQ1_MSB */
0xf033,     /* GAIN2ACQ2_LSB */
0xf034,     /* GAIN2ACQ2_MSB */
0xf035,     /* GAIN2TRK_LSB */
0xf036,     /* GAIN2TRK_MSB */
0xf037,     /* GAIN3ACQ */
0xf038,     /* GAIN3TRK */
0xf039,     /* VCXOERR0372_LSB */
0xf03a,     /* VCXOERR0372_MSB */
0xf03b,     /* VCXOERR0372_MMSB */
0xf03c,     /* TIMLOCKDETECT_LSB */
0xf03d,     /* TIMLOCKDETECT_MSB */
0xf03e,     /* TIMLOCKDETECT_MMSB */
0xf03f,     /* FREQLOCK_LSB */
0xf040,     /* FREQLOCK_MSB */
0xf041,     /* FREQLOCK_MMSB */
0xf042,     /* TIMINGAGCREF_LSB */
0xf043 ,    /* TIMINGAGCREF_MSB */
0xf044,     /* NCOCNST_LSB */
0xf045,     /* NCOCNST_MSB */
0xf046,     /* NCOCNST_MMSB */
0xf047,     /* NCOGAIN1ACQ */
0xf048,     /* NCOGAIN1TRACK */
0xf049,     /* NCOGAIN2ACQ */
0xf04a,     /* NCOGAIN2TRACK */
0xf04b,     /* NCOGAIN3 */
0xf04c,     /* NCOERR_LSB */
0xf04d,     /* NCOERR_MSB */
0xf04e,     /* NCOERR_MMSB */
0xf04f ,    /* CARLOCKDETECT1_LSB */
0xf050,     /* CARLOCKDETECT1_MSB */
0xf051,     /* CARLOCKDETECT1_MMSB */
0xf052,     /* CARLOCKDETECT2_LSB */
0xf053,     /* CARLOCKDETECT2_MSB */
0xf054,     /* CARLOCKDETECT2_MMSB */
0xf055,     /* CARRIERLOCKTH_LSB */
0xf056,     /* CARRIERLOCKTH_MSB */
0xf057,     /* CARRIERLOCKTH_MMSB */
0xf058,     /* CARRIERAGCREF_LSB */
0xf059,     /* CARRIERAGCREF_MSB */
0xf05a,     /* CARAGCMIXRATIO */
0xf05b,     /* FSM1 */
0xf05c,     /* FSM2 */
0xf05d,     /* MAINSMUP */
0xf05e,     /* EQSMUP */
0xf05f,     /* STATEVAL_LSB */
0xf060,     /* STATEVAL_MSB */
0xf061,     /* STATEVAL_MMSB */
0xf062,     /* UPDATEVCXO_LSB */
0xf063,     /* UPDATEVCXO_MSB */
0xf064,     /* UPDATEVCXO_MMSB */
0xf065 ,    /* MAXNBFRAMERCA */
0xf066,     /* MAXNBFRAMEDD_LSB */
0xf067 ,    /* MAXNBFRAMEDD_MSB */
0xf068 ,    /* NCO_TIMEOUT_LSB */
0xf069 ,    /* NCO_TIMEOUT_MSB */
0xf06a ,    /* NCO_TIMEOUT_MMSB */
0xf06b ,    /* DEMSTATUS */
0xf06c ,    /* SYSCTRL */
0xf06d ,    /* SEG_INIT_LSB */
0xf06e ,    /* SEG_INIT_MSB */
0xf06f ,    /* CENTROIDCALDONE_LSB */
0xf070 ,    /* CENTROIDCALDONE_MSB */
0xf071 ,    /* CENTROIDOFFSET_LSB */
0xf072 ,    /* CENTROIDOFFSET_MSB */
0xf073 ,    /* FFEGAINTRAIN */
0xf074 ,    /* FFEGAINRCA1 */
0xf075 ,    /* FFEGAINRCA2 */
0xf076 ,    /* FFEGAINDDM1 */
0xf077 ,    /* FFEGAINDDM2 */
0xf078 ,    /* DFEGAINTRAIN */
0xf079 ,    /* DFEGAINRCA1 */
0xf07a ,    /* DFEGAINRCA2 */
0xf07b ,    /* DFEGAINDDM1 */
0xf07c ,    /* DFEGAINDDM2 */
0xf07d ,    /* SNR0372_TH_DDM1 */
0xf07e ,    /* SNR0372_TH_DDM2 */
0xf07f,     /* SNR0372_TH_PT */
0xf080,     /* SNR0372_TH_RCA1 */
0xf081,     /* SNR0372_TH_RCA2 */
0xf082,     /* LEAKFFETRAIN */
0xf083,     /* LEAKFFERCA */
0xf084,     /* LEAKFFEDDM */
0xf085,     /* LEAKDFETRAIN */
0xf086,     /* LEAKDFERCA */
0xf087,     /* LEAKDFEDDM */
0xf088,     /* TRACK_REG */
0xf089,     /* DFE_CTRL */
0xf08a,     /* TAP_CTRL */
0xf08b,     /* TAP_POINTER_LSB */
0xf08c ,    /* TAP_POINTER_MSB */
0xf08d,     /* TAP_GETBYTE */
0xf08e,     /* TAP_PUTBYTE */
0xf08f,     /* DECCTRL */
0xf090,     /* DECSYNCCTRL */
0xf091,     /* SER_LSB */
0xf092,     /* SER_MSB */
0xf093,     /* SER_PERIOD_LSB */
0xf094,     /* SER_PERIOD_MSB */
0xf095,     /* DEC_STATUS */
0xf096,     /* SIGNAL_POWER_LSB */
0xf097,     /* SIGNAL_POWER_MSB */
0xf098,     /* ERROR_POWER_LSB */
0xf099,     /* ERROR_POWER_MSB */
0xf09a,     /* BERCTRL */
0xf09b,     /* BER0372_LSB */
0xf09c,     /* BER_MSB */
0xf09d,     /* BER_PERIOD_LLSB */
0xf09e,     /* BER_PERIOD_LSB */
0xf09f,     /* BER_PERIOD_MSB */
0xf0a0,     /* BER_PERIOD_MMSB */
0xf0a1,     /* FRAMECORTH_LSB */
0xf0a2,     /* FRAMECORTH_MSB */
0xf0a3,     /* FRAMELOCKDELOCK */
0xf0a4,     /* CI_BYTE_CLK */
0xf0a5,     /* TS_FORMAT */
0xf0a6,     /* ACI_CTRL */
0xf0a7,     /* ACI_CHANNEL */
0xf0a8,     /* ACI_PROGRAM_LSB */
0xf0a9     /* ACI_PROGRAM_MSB */ 

};
  
U8  STV0372_DefVal[STV0372_NBREGS]=
{ 
0x10,   /*R0372_ID          	     -   0xf000 */
0x00,   /*R0372_I2C_PAGE   	     -   0xf001 */
0x32,   /*R0372_I2CRPT1     	     -   0xf002 */ 
0x07,   /*R0372_I2CRPT2    	     -   0xf003 */
0x0a,   /*R0372_CLK_CTRL   	     -   0xf004 */
0xcd,   /*R0372_STANDBY   	     -   0xf005 */
0x58,   /*R0372_IO_CTRL    	     -   0xf006 *//*To disable TS O/P from high impedance mode and make TS enable */
0x18,   /*R0372_GPIO_INFO   	     -   0xf007 */ 
0xc7,   /*R0372_PLL_CTRL    	     -   0xf610 */
0x00,    /*R0372_RESERVED    	     -   0xf611 */ /*Given reset value to make compatible with old files*/
0x14,   /*R0372_AD10_CTRL            -   0xf61c */
0x00,   /*R0372_DEMOD_CTRL           -   0xf010 */
0x00,   /*R0372_SYNCCTRL             -   0xf011 */
0x80,   /*R0372_AGCCTRL1             -   0xf012 */
0x00,   /*R0372_AGCCTRL2	     -   0xf013 */
0x72,   /*R0372_AGCPWR_LSB           -   0xf014 */
0xf0,   /*R0372_AGCPWR_MSB           -   0xf015 */
0xff,   /*R0372_AGCITHUP_LSB             -   0xf016 */
0x07,   /*R0372_AGCITHUP_MSB             -   0xf017 */
0x00,   /*R0372_AGCITHLOW_LSB            -   0xf018 */
0x08,   /*R0372_AGCITHLOW_MSB            -   0xf019 */
0x80,   /*R0372_AGCTH_LSB                -   0xf01a */
0x03,   /*R0372_AGCTH_MSB                -   0xf01b */
0x06,   /*R0372_AGCBWSEL                 -   0xf01c */
0x01,   /*R0372_TAGCBWSEL                -   0xf01d */
0x81,   /*R0372_TST_PWM1                 -   0xf01e */
0x53,   /*R0372_TST_PWM2                 -   0xf01f */
0xef,   /*R0372_TST_PWM3                 -   0xf020 */
0xca,   /*R0372_AGC_IND_LSB              -   0xf021 */
0xf1,   /*R0372_AGC_IND_MSB              -   0xf022 */
0x03,   /*R0372_AGC_IND_MMSB             -   0xf023 */
0x98,   /*R0372_VCXOOFFSET1              -   0xf024 */
0x5e,   /*R0372_VCXOOFFSET2              -   0xf025 */
0x05,   /*R0372_VCXOOFFSET3              -   0xf026 */
0xb3,   /*R0372_VCXOOFFSET4              -   0xf027 */
0xba,   /*R0372_GAINSRC_LSB              -   0xf028 */
0x3f,   /*R0372_GAINSRC_MSB              -   0xf029 */
0x00,   /*R0372_VCXOINITV                -   0xf02a */
0x00,   /*R0372_GAIN1ACQ1_LSB            -   0xf02b */
0x7d,   /*R0372_GAIN1ACQ1_MSB            -   0xf02c */
0x20,   /*R0372_GAIN1ACQ2_LSB            -   0xf02d */
0xf4,   /*R0372_GAIN1ACQ2_MSB            -   0xf02e */
0x10,   /*R0372_GAIN1TRACK_LSB           -   0xf02f */
0xd8,   /*R0372_GAIN1TRACK_MSB           -   0xf030 */
0xff,   /*R0372_GAIN2ACQ1_LSB            -   0xf031 */
0x83,   /*R0372_GAIN2ACQ1_MSB            -   0xf032 */
0x00,   /*R0372_GAIN2ACQ2_LSB    	     -   0xf033 */
0x79,   /*R0372_GAIN2ACQ2_MSB            -   0xf034 */
0x80,   /*R0372_GAIN2TRK_LSB             -   0xf035 */
0xe4,   /*R0372_GAIN2TRK_MSB             -   0xf036 */
0x05,   /*R0372_GAIN3ACQ                 -   0xf037 */
0x05,   /*R0372_GAIN3TRK 		     -   0xf038 */
0x5e,   /*R0372_VCXOERR_LSB              -   0xf039 */
0xf0,   /*R0372_VCXOERR_MSB     	     -   0xf03a */
0xfe,   /*R0372_VCXOERR_MMSB             -   0xf03b */
0xa3,   /*R0372_TIMLOCKDETECT_LSB        -   0xf03c */
0xd8,   /*R0372_TIMLOCKDETECT_MSB        -   0xf03d */
0x05,   /*R0372_TIMLOCKDETECT_MMSB       -   0xf03e */
0x00,   /*R0372_FREQLOCK_LSB             -   0xf03f */
0x77,   /*R0372_FREQLOCK_MSB             -   0xf040 */
0x01,   /*R0372_FREQLOCK_MMSB            -   0xf041 */
0x00,   /*R0372_TIMINGAGCREF_LSB         -   0xf042 */
0x14,   /*R0372_TIMINGAGCREF_MSB         -   0xf043 */
0x4b,   /*R0372_NCOCNST_LSB		     -   0xf044 */
0x68,   /*R0372_NCOCNST_MSB              -   0xf045 */
0x2f,   /*R0372_NCOCNST_MMSB             -   0xf046 */
0x02,   /*R0372_NCOGAIN1ACQ              -   0xf047 */
0x02,   /*R0372_NCOGAIN1TRACK            -   0xf048 */
0x08,   /*R0372_NCOGAIN2ACQ              -   0xf049 */
0x08,   /*R0372_NCOGAIN2TRACK            -   0xf04a */
0x06,   /*R0372_NCOGAIN3 		     -   0xf04b */
0xf1,   /*R0372_NCOERR_LSB		     -   0xf04c */
0x0f,   /*R0372_NCOERR_MSB		     -   0xf04d */
0x00,   /*R0372_NCOERR_MMSB		     -   0xf04e */
0x13,   /*R0372_CARLOCKDETECT1_LSB       -   0xf04f */
0x45,   /*R0372_CARLOCKDETECT1_MSB       -   0xf050 */
0x05,   /*R0372_CARLOCKDETECT1_MMSB      -   0xf051 */
0x90,   /*R0372_CARLOCKDETECT2_LSB	     -   0xf052 */
0x8f,   /*R0372_CARLOCKDETECT2_MSB       -   0xf053 */
0x01,   /*R0372_CARLOCKDETECT2_MMSB      -   0xf054 */
0x00,   /*R0372_CARRIERLOCKTH_LSB        -   0xf055 */
0x77,   /*R0372_CARRIERLOCKTH_MSB        -   0xf056 */
0xc5,   /*R0372_CARRIERLOCKTH_MMSB       -   0xf057 */
0x00,   /*R0372_CARRIERAGCREF_LSB        -   0xf058 */
0xc2,   /*R0372_CARRIERAGCREF_MSB        -   0xf059 */
0x14,   /*R0372_CARAGCMIXRATIO 	     -   0xf05a */
0x00,   /*R0372_FSM1                     -   0xf05b */
0x00,   /*R0372_FSM2		     -   0xf05c */
0xff,   /*R0372_MAINSMUP                 -   0xf05d */
0xff,   /*R0372_EQSMUP		     -   0xf05e */
0xff,   /*R0372_STATEVAL_LSB             -   0xf05f */
0x0f,   /*R0372_STATEVAL_MSB             -   0xf060 */
0x90,   /*R0372_STATEVAL_MMSB            -   0xf061 */
0x00,   /*R0372_UPDATEVCXO_LSB           -   0xf062 */
0x00,   /*R0372_UPDATEVCXO_MSB           -   0xf063 */
0x8e,   /*R0372_UPDATEVCXO_MMSB          -   0xf064 */
0x1a,   /*R0372_MAXNBFRAMERCA            -   0xf065 */
0xc8,   /*R0372_MAXNBFRAMEDD_LSB         -   0xf066 */
0x00,   /*R0372_MAXNBFRAMEDD_MSB	     -   0xf067 */
0xff,   /*R0372_NCO_TIMEOUT_LSB          -   0xf068 */
0xff,   /*R0372_NCO_TIMEOUT_MSB          -   0xf069 */
0xff,   /*R0372_NCO_TIMEOUT_MMSB 	     -   0xf06a */
0x5a,   /*R0372_DEMSTATUS		     -   0xf06b */
0x70,   /*R0372_SYSCTRL    		     -   0xf06c */
0x00,   /*R0372_SEG_INIT_LSB	     -   0xf06d */
0xe1,   /*R0372_SEG_INIT_MSB	     -   0xf06e */
0x37,   /*R0372_CENTROIDCALDONE_LSB	     -   0xf06f */
0xf1,   /*R0372_CENTROIDCALDONE_MSB	     -   0xf070 */
0x00,   /*R0372_CENTROIDOFFSET_LSB 	     -   0xf071 */
0x00,   /*R0372_CENTROIDOFFSET_MSB	     -   0xf072 */
0x40,   /*R0372_FFEGAINTRAIN	     -   0xf073 */
0x09,   /*R0372_FFEGAINRCA1	             -   0xf074 */
0x05,   /*R0372_FFEGAINRCA2 	     -   0xf075 */
0x10,   /*R0372_FFEGAINDDM1		     -   0xf076 */
0x08,   /*R0372_FFEGAINDDM2		     -   0xf077 */
0x40,   /*R0372_DFEGAINTRAIN	     -   0xf078 */
0x20,   /*R0372_DFEGAINRCA1 	     -   0xf079 */
0x10,   /*R0372_DFEGAINRCA2 	     -   0xf07a */
0x20,   /*R0372_DFEGAINDDM1		     -   0xf07b */
0x20,   /*R0372_DFEGAINDDM2	             -   0xf07c */
0xca,   /*R0372_SNR_TH_DDM1	             -   0xf07d */
0xca,   /*R0372_SNR_TH_DDM2		     -   0xf07e */
0xd8,   /*R0372_SNR_TH_PT		     -   0xf07f */
0x53,   /*R0372_SNR_TH_RCA1		     -   0xf080 */
0x75,   /*R0372_SNR_TH_RCA2		     -   0xf081 */
0x0d,   /*R0372_LEAKFFETRAIN	     -   0xf082 */
0x77,   /*R0372_LEAKFFERCA		     -   0xf083 */
0x97,   /*R0372_LEAKFFEDDM		     -   0xf084 */
0x08,   /*R0372_LEAKDFETRAIN	     -   0xf085 */
0x44,   /*R0372_LEAKDFERCA		     -   0xf086 */
0x22,   /*R0372_LEAKDFEDDM		     -   0xf087 */
0x30,   /*R0372_TRACK_REG		     -   0xf088 */
0xb8,   /*R0372_DFE_CTRL		     -   0xf089 */
0x00,   /*R0372_TAP_CTRL                 -   0xf08a */
0x3f,   /*R0372_TAP_POINTER_LSB	     -   0xf08b */
0x01,   /*R0372_TAP_POINTER_MSB          -   0xf08c */
0x00,   /*R0372_TAP_GETBYTE 	     -   0xf08d */
0x00,   /*R0372_TAP_PUTBYTE		     -   0xf08e */
0x00,   /*R0372_DECCTRL		     -   0xf08f */
0x00,   /*R0372_DECSYNCCTRL		     -   0xf090 */
0x00,   /*R0372_SER_LSB		     -   0xf091 */
0x00,   /*R0372_SER_MSB		     -   0xf092 */
0x10,   /*R0372_SER_PERIOD_LSB           -   0xf093 */		
0x27,   /*R0372_SER_PERIOD_MSB	     -   0xf094 */  
0x3a,   /*R0372_DEC_STATUS		     -   0xf095 */
0xbe,   /*R0372_SIGNAL_POWER_LSB	     -   0xf096 */
0x03,   /*R0372_SIGNAL_POWER_MSB         -   0xf097 */
0x07,   /*R0372_ERROR_POWER_LSB	     -   0xf098 */
0x00,   /*R0372_ERROR_POWER_MSB	     -   0xf099 */
0x8b,   /*R0372_BERCTRL		     -   0xf09a */
0xff,   /*R0372_BER_LSB		     -   0xf09b */
0xff,   /*R0372_BER_MSB		     -   0xf09c */
0xbe,   /*R0372_BER_PERIOD_LLSB          -   0xf09d */  
0xc8,   /*R0372_BER_PERIOD_LSB 	     -   0xf09e */
0x24,   /*R0372_BER_PERIOD_MSB	     -   0xf09f */
0x00,   /*R0372_BER_PERIOD_MMSB	     -   0xf0a0 */
0x00,   /*R0372_FRAMECORTH_LSB	     -   0xf0a1 */
0x30,   /*R0372_FRAMECORTH_MSB	     -   0xf0a2 */
0x41,   /*R0372_FRAMELOCKDELOCK 	     -   0xf0a3 */
0x44,   /*R0372_CI_BYTE_CLK		     -   0xf0a4 */
0x02,   /*R0372_TS_FORMAT                -   0xf0a5 */	
0x00,   /*R0372_ACI_CTRL		     -   0xf0a6 */
0x00,   /*R0372_ACI_CHANNEL		     -   0xf0a7 */
0x01,   /*R0372_ACI_PROGRAM_LSB	     -   0xf0a8 */
0x00  /*R0372_ACI_PROGRAM_MSB	     -   0xf0a9 */
};

⌨️ 快捷键说明

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