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

📄 d0362_init.c

📁 st7710的tuner标准驱动
💻 C
📖 第 1 页 / 共 5 页
字号:
#ifdef ST_OSLINUX
   #include "stos.h"
#else
/*C libs */
#include "string.h"
#endif

#include "d0362_init.h"
#include "d0362_map.h"


ST_ErrorCode_t STV0362_Init(STTUNER_IOREG_DeviceMap_t *DeviceMap)
{
    U32             *DefVal;
    ST_ErrorCode_t Error=ST_NO_ERROR;

    /*
    **   REGISTER CONFIGURATION
    **     ----------------------
    */

    DefVal = DeviceMap->DefVal;
				/*	REGISTER INITIALISATION	*/
				/*	PLLNDIV	*/
STTUNER_IOREG_AddReg(DeviceMap,R0362_PLLNDIV,0x00d9,*DefVal++);
STTUNER_IOREG_AddField(DeviceMap,R0362_PLLNDIV,F0362_PLL_NDIV,0,8,FIELD_TYPE_UNSIGNED);
/*	ID	*/
STTUNER_IOREG_AddReg(DeviceMap,R0362_ID,0x0000,*DefVal++);
STTUNER_IOREG_AddField(DeviceMap,R0362_ID,F0362_IDENTIFICATIONREGISTER,0,8,FIELD_TYPE_UNSIGNED);

/*	I2CRPT	*/
STTUNER_IOREG_AddReg(DeviceMap,R0362_I2CRPT,0x0001,*DefVal++);
STTUNER_IOREG_AddField(DeviceMap,R0362_I2CRPT,F0362_I2CT_ON,7,1,FIELD_TYPE_UNSIGNED);
STTUNER_IOREG_AddField(DeviceMap,R0362_I2CRPT,F0362_ENARPT_LEVEL,4,3,FIELD_TYPE_UNSIGNED);
STTUNER_IOREG_AddField(DeviceMap,R0362_I2CRPT,F0362_SCLT_DELAY,3,1,FIELD_TYPE_UNSIGNED);
STTUNER_IOREG_AddField(DeviceMap,R0362_I2CRPT,F0362_SCLT_NOD,2,1,FIELD_TYPE_UNSIGNED);
STTUNER_IOREG_AddField(DeviceMap,R0362_I2CRPT,F0362_STOP_ENABLE,1,1,FIELD_TYPE_UNSIGNED);
STTUNER_IOREG_AddField(DeviceMap,R0362_I2CRPT,F0362_SDAT_NOD,0,1,FIELD_TYPE_UNSIGNED);

/*	TOPCTRL	*/
STTUNER_IOREG_AddReg(DeviceMap,R0362_TOPCTRL,0x0002,*DefVal++);
STTUNER_IOREG_AddField(DeviceMap,R0362_TOPCTRL,F0362_STDBY,7,1,FIELD_TYPE_UNSIGNED);
STTUNER_IOREG_AddField(DeviceMap,R0362_TOPCTRL,F0362_STDBY_FEC,6,1,FIELD_TYPE_UNSIGNED);
STTUNER_IOREG_AddField(DeviceMap,R0362_TOPCTRL,F0362_STDBY_CORE,5,1,FIELD_TYPE_UNSIGNED);
STTUNER_IOREG_AddField(DeviceMap,R0362_TOPCTRL,F0362_DIR_CLK_54,4,1,FIELD_TYPE_UNSIGNED);
STTUNER_IOREG_AddField(DeviceMap,R0362_TOPCTRL,F0362_TS_DIS,3,1,FIELD_TYPE_UNSIGNED);
STTUNER_IOREG_AddField(DeviceMap,R0362_TOPCTRL,F0362_DIR_CLK_108,2,1,FIELD_TYPE_UNSIGNED);
STTUNER_IOREG_AddField(DeviceMap,R0362_TOPCTRL,F0362_TUNER_BB,1,1,FIELD_TYPE_UNSIGNED);
STTUNER_IOREG_AddField(DeviceMap,R0362_TOPCTRL,F0362_DVBT_H,0,1,FIELD_TYPE_UNSIGNED);

/*	IOCFG0	*/
STTUNER_IOREG_AddReg(DeviceMap,R0362_IOCFG0,0x0003,*DefVal++);
STTUNER_IOREG_AddField(DeviceMap,R0362_IOCFG0,F0362_OP0_SD,7,1,FIELD_TYPE_UNSIGNED);
STTUNER_IOREG_AddField(DeviceMap,R0362_IOCFG0,F0362_OP0_VAL,6,1,FIELD_TYPE_UNSIGNED);
STTUNER_IOREG_AddField(DeviceMap,R0362_IOCFG0,F0362_OP0_OD,5,1,FIELD_TYPE_UNSIGNED);
STTUNER_IOREG_AddField(DeviceMap,R0362_IOCFG0,F0362_OP0_INV,4,1,FIELD_TYPE_UNSIGNED);
STTUNER_IOREG_AddField(DeviceMap,R0362_IOCFG0,F0362_OP0_DACVALUE_HI,0,4,FIELD_TYPE_UNSIGNED);

/*	DAC0R	*/
STTUNER_IOREG_AddReg(DeviceMap,R0362_DAC0R,0x0004,*DefVal++);
STTUNER_IOREG_AddField(DeviceMap,R0362_DAC0R,F0362_OP0_DACVALUE_LO,0,8,FIELD_TYPE_UNSIGNED);

/*	IOCFG1	*/
STTUNER_IOREG_AddReg(DeviceMap,R0362_IOCFG1,0x0005,*DefVal++);
STTUNER_IOREG_AddField(DeviceMap,R0362_IOCFG1,F0362_IP0,6,1,FIELD_TYPE_UNSIGNED);
STTUNER_IOREG_AddField(DeviceMap,R0362_IOCFG1,F0362_OP1_OD,5,1,FIELD_TYPE_UNSIGNED);
STTUNER_IOREG_AddField(DeviceMap,R0362_IOCFG1,F0362_OP1_INV,4,1,FIELD_TYPE_UNSIGNED);
STTUNER_IOREG_AddField(DeviceMap,R0362_IOCFG1,F0362_OP1_DACVALUE_HI,0,4,FIELD_TYPE_UNSIGNED);

/*	DAC1R	*/
STTUNER_IOREG_AddReg(DeviceMap,R0362_DAC1R,0x0006,*DefVal++);
STTUNER_IOREG_AddField(DeviceMap,R0362_DAC1R,F0362_OP1_DACVALUE_LO,0,8,FIELD_TYPE_UNSIGNED);

/*	IOCFG2	*/
STTUNER_IOREG_AddReg(DeviceMap,R0362_IOCFG2,0x0007,*DefVal++);
STTUNER_IOREG_AddField(DeviceMap,R0362_IOCFG2,F0362_OP2_LOCK_CONF,5,3,FIELD_TYPE_UNSIGNED);
STTUNER_IOREG_AddField(DeviceMap,R0362_IOCFG2,F0362_OP2_OD,4,1,FIELD_TYPE_UNSIGNED);
STTUNER_IOREG_AddField(DeviceMap,R0362_IOCFG2,F0362_OP2_VAL,3,1,FIELD_TYPE_UNSIGNED);
STTUNER_IOREG_AddField(DeviceMap,R0362_IOCFG2,F0362_OP1_LOCK_CONF,0,3,FIELD_TYPE_UNSIGNED);

/*	SDFR	*/
STTUNER_IOREG_AddReg(DeviceMap,R0362_SDFR,0x0008,*DefVal++);
STTUNER_IOREG_AddField(DeviceMap,R0362_SDFR,F0362_OP0_FREQ,4,4,FIELD_TYPE_UNSIGNED);
STTUNER_IOREG_AddField(DeviceMap,R0362_SDFR,F0362_OP1_FREQ,0,4,FIELD_TYPE_UNSIGNED);

/*	STATUS	*/
STTUNER_IOREG_AddReg(DeviceMap,R0362_STATUS,0x0009,*DefVal++);
STTUNER_IOREG_AddField(DeviceMap,R0362_STATUS,F0362_TPS_LOCK,7,1,FIELD_TYPE_UNSIGNED);
STTUNER_IOREG_AddField(DeviceMap,R0362_STATUS,F0362_SYR_LOCK,6,1,FIELD_TYPE_UNSIGNED);
STTUNER_IOREG_AddField(DeviceMap,R0362_STATUS,F0362_AGC_LOCK,5,1,FIELD_TYPE_UNSIGNED);
STTUNER_IOREG_AddField(DeviceMap,R0362_STATUS,F0362_PRF,4,1,FIELD_TYPE_UNSIGNED);
STTUNER_IOREG_AddField(DeviceMap,R0362_STATUS,F0362_LK,3,1,FIELD_TYPE_UNSIGNED);
STTUNER_IOREG_AddField(DeviceMap,R0362_STATUS,F0362_PR,0,3,FIELD_TYPE_UNSIGNED);

/*	AUX_CLK	*/
STTUNER_IOREG_AddReg(DeviceMap,R0362_AUX_CLK,0x000a,*DefVal++);
STTUNER_IOREG_AddField(DeviceMap,R0362_AUX_CLK,F0362_AUXFEC_CTL,6,2,FIELD_TYPE_UNSIGNED);
STTUNER_IOREG_AddField(DeviceMap,R0362_AUX_CLK,F0362_DIS_CKX4,5,1,FIELD_TYPE_UNSIGNED);
STTUNER_IOREG_AddField(DeviceMap,R0362_AUX_CLK,F0362_CKSEL,3,2,FIELD_TYPE_UNSIGNED);
STTUNER_IOREG_AddField(DeviceMap,R0362_AUX_CLK,F0362_CKDIV_PROG,1,2,FIELD_TYPE_UNSIGNED);
STTUNER_IOREG_AddField(DeviceMap,R0362_AUX_CLK,F0362_AUXCLK_ENA,0,1,FIELD_TYPE_UNSIGNED);

/*	FREESYS1	*/
STTUNER_IOREG_AddReg(DeviceMap,R0362_FREESYS1,0x000b,*DefVal++);
STTUNER_IOREG_AddField(DeviceMap,R0362_FREESYS1,F0362_FREESYS1,0,8,FIELD_TYPE_UNSIGNED);

/*	FREESYS2	*/
STTUNER_IOREG_AddReg(DeviceMap,R0362_FREESYS2,0x000c,*DefVal++);
STTUNER_IOREG_AddField(DeviceMap,R0362_FREESYS2,F0362_FREESYS2,0,8,FIELD_TYPE_UNSIGNED);

/*	FREESYS3	*/
STTUNER_IOREG_AddReg(DeviceMap,R0362_FREESYS3,0x000d,*DefVal++);
STTUNER_IOREG_AddField(DeviceMap,R0362_FREESYS3,F0362_FREESYS3,0,8,FIELD_TYPE_UNSIGNED);

/*	AGC2MAX	*/
STTUNER_IOREG_AddReg(DeviceMap,R0362_AGC2MAX,0x0010,*DefVal++);
STTUNER_IOREG_AddField(DeviceMap,R0362_AGC2MAX,F0362_AGC2MAX,0,8,FIELD_TYPE_UNSIGNED);

/*	AGC2MIN	*/
STTUNER_IOREG_AddReg(DeviceMap,R0362_AGC2MIN,0x0011,*DefVal++);
STTUNER_IOREG_AddField(DeviceMap,R0362_AGC2MIN,F0362_AGC2MIN,0,8,FIELD_TYPE_UNSIGNED);

/*	AGC1MAX	*/
STTUNER_IOREG_AddReg(DeviceMap,R0362_AGC1MAX,0x0012,*DefVal++);
STTUNER_IOREG_AddField(DeviceMap,R0362_AGC1MAX,F0362_AGC1MAX,0,8,FIELD_TYPE_UNSIGNED);

/*	AGC1MIN	*/
STTUNER_IOREG_AddReg(DeviceMap,R0362_AGC1MIN,0x0013,*DefVal++);
STTUNER_IOREG_AddField(DeviceMap,R0362_AGC1MIN,F0362_AGC1MIN,0,8,FIELD_TYPE_UNSIGNED);

/*	AGCR	*/
STTUNER_IOREG_AddReg(DeviceMap,R0362_AGCR,0x0014,*DefVal++);
STTUNER_IOREG_AddField(DeviceMap,R0362_AGCR,F0362_RATIO_A,5,3,FIELD_TYPE_UNSIGNED);
STTUNER_IOREG_AddField(DeviceMap,R0362_AGCR,F0362_RATIO_B,3,2,FIELD_TYPE_UNSIGNED);
STTUNER_IOREG_AddField(DeviceMap,R0362_AGCR,F0362_RATIO_C,0,3,FIELD_TYPE_UNSIGNED);

/*	AGC2TH	*/
STTUNER_IOREG_AddReg(DeviceMap,R0362_AGC2TH,0x0015,*DefVal++);
STTUNER_IOREG_AddField(DeviceMap,R0362_AGC2TH,F0362_AGC2_THRES,0,8,FIELD_TYPE_UNSIGNED);

/*	AGC12C	*/
STTUNER_IOREG_AddReg(DeviceMap,R0362_AGC12C,0x0016,*DefVal++);
STTUNER_IOREG_AddField(DeviceMap,R0362_AGC12C,F0362_AGC1_IV,7,1,FIELD_TYPE_UNSIGNED);
STTUNER_IOREG_AddField(DeviceMap,R0362_AGC12C,F0362_AGC1_OD,6,1,FIELD_TYPE_UNSIGNED);
STTUNER_IOREG_AddField(DeviceMap,R0362_AGC12C,F0362_AGC1_LOAD,5,1,FIELD_TYPE_UNSIGNED);
STTUNER_IOREG_AddField(DeviceMap,R0362_AGC12C,F0362_AGC2_IV,4,1,FIELD_TYPE_UNSIGNED);
STTUNER_IOREG_AddField(DeviceMap,R0362_AGC12C,F0362_AGC2_OD,3,1,FIELD_TYPE_UNSIGNED);
STTUNER_IOREG_AddField(DeviceMap,R0362_AGC12C,F0362_AGC2_LOAD,2,1,FIELD_TYPE_UNSIGNED);
STTUNER_IOREG_AddField(DeviceMap,R0362_AGC12C,F0362_AGC12_MODE,0,2,FIELD_TYPE_UNSIGNED);

/*	AGCCTRL1	*/
STTUNER_IOREG_AddReg(DeviceMap,R0362_AGCCTRL1,0x0017,*DefVal++);
STTUNER_IOREG_AddField(DeviceMap,R0362_AGCCTRL1,F0362_DAGC_ON,7,1,FIELD_TYPE_UNSIGNED);
STTUNER_IOREG_AddField(DeviceMap,R0362_AGCCTRL1,F0362_INVERT_AGC12,6,1,FIELD_TYPE_UNSIGNED);
STTUNER_IOREG_AddField(DeviceMap,R0362_AGCCTRL1,F0362_AGC1_MODE,3,1,FIELD_TYPE_UNSIGNED);
STTUNER_IOREG_AddField(DeviceMap,R0362_AGCCTRL1,F0362_AGC2_MODE,0,3,FIELD_TYPE_UNSIGNED);

/*	AGCCTRL2	*/
STTUNER_IOREG_AddReg(DeviceMap,R0362_AGCCTRL2,0x0018,*DefVal++);
STTUNER_IOREG_AddField(DeviceMap,R0362_AGCCTRL2,F0362_FRZ2_CTRL,5,2,FIELD_TYPE_UNSIGNED);
STTUNER_IOREG_AddField(DeviceMap,R0362_AGCCTRL2,F0362_FRZ1_CTRL,3,2,FIELD_TYPE_UNSIGNED);
STTUNER_IOREG_AddField(DeviceMap,R0362_AGCCTRL2,F0362_TIME_CST,0,3,FIELD_TYPE_UNSIGNED);

/*	AGC1VAL1	*/
STTUNER_IOREG_AddReg(DeviceMap,R0362_AGC1VAL1,0x0019,*DefVal++);
STTUNER_IOREG_AddField(DeviceMap,R0362_AGC1VAL1,F0362_AGC1_VAL_LO,0,8,FIELD_TYPE_UNSIGNED);

/*	AGC1VAL2	*/
STTUNER_IOREG_AddReg(DeviceMap,R0362_AGC1VAL2,0x001a,*DefVal++);
STTUNER_IOREG_AddField(DeviceMap,R0362_AGC1VAL2,F0362_AGC1_VAL_HI,0,4,FIELD_TYPE_UNSIGNED);

/*	AGC2VAL1	*/
STTUNER_IOREG_AddReg(DeviceMap,R0362_AGC2VAL1,0x001b,*DefVal++);
STTUNER_IOREG_AddField(DeviceMap,R0362_AGC2VAL1,F0362_AGC2_VAL_LO,0,8,FIELD_TYPE_UNSIGNED);

/*	AGC2VAL2	*/
STTUNER_IOREG_AddReg(DeviceMap,R0362_AGC2VAL2,0x001c,*DefVal++);
STTUNER_IOREG_AddField(DeviceMap,R0362_AGC2VAL2,F0362_AGC2_VAL_HI,0,4,FIELD_TYPE_UNSIGNED);

/*	AGC2PGA	*/
STTUNER_IOREG_AddReg(DeviceMap,R0362_AGC2PGA,0x001d,*DefVal++);
STTUNER_IOREG_AddField(DeviceMap,R0362_AGC2PGA,F0362_AGC2PGA,0,8,FIELD_TYPE_UNSIGNED);

/*	OVF_RATE1	*/
STTUNER_IOREG_AddReg(DeviceMap,R0362_OVF_RATE1,0x001e,*DefVal++);
STTUNER_IOREG_AddField(DeviceMap,R0362_OVF_RATE1,F0362_OVF_RATE_HI,0,4,FIELD_TYPE_UNSIGNED);

/*	OVF_RATE2	*/
STTUNER_IOREG_AddReg(DeviceMap,R0362_OVF_RATE2,0x001f,*DefVal++);
STTUNER_IOREG_AddField(DeviceMap,R0362_OVF_RATE2,F0362_OVF_RATE_LO,0,8,FIELD_TYPE_UNSIGNED);

/*	GAIN_SRC1	*/
STTUNER_IOREG_AddReg(DeviceMap,R0362_GAIN_SRC1,0x0020,*DefVal++);
STTUNER_IOREG_AddField(DeviceMap,R0362_GAIN_SRC1,F0362_INV_SPECTR,7,1,FIELD_TYPE_UNSIGNED);
STTUNER_IOREG_AddField(DeviceMap,R0362_GAIN_SRC1,F0362_IQ_INVERT,6,1,FIELD_TYPE_UNSIGNED);
STTUNER_IOREG_AddField(DeviceMap,R0362_GAIN_SRC1,F0362_INR_BYPASS,5,1,FIELD_TYPE_UNSIGNED);
STTUNER_IOREG_AddField(DeviceMap,R0362_GAIN_SRC1,F0362_INS_BYPASS,4,1,FIELD_TYPE_UNSIGNED);
STTUNER_IOREG_AddField(DeviceMap,R0362_GAIN_SRC1,F0362_GAIN_SRC_HI,0,4,FIELD_TYPE_UNSIGNED);

/*	GAIN_SRC2	*/
STTUNER_IOREG_AddReg(DeviceMap,R0362_GAIN_SRC2,0x0021,*DefVal++);
STTUNER_IOREG_AddField(DeviceMap,R0362_GAIN_SRC2,F0362_GAIN_SRC_LO,0,8,FIELD_TYPE_UNSIGNED);

/*	INC_DEROT1	*/
STTUNER_IOREG_AddReg(DeviceMap,R0362_INC_DEROT1,0x0022,*DefVal++);
STTUNER_IOREG_AddField(DeviceMap,R0362_INC_DEROT1,F0362_INC_DEROT_HI,0,8,FIELD_TYPE_UNSIGNED);

/*	INC_DEROT2	*/
STTUNER_IOREG_AddReg(DeviceMap,R0362_INC_DEROT2,0x0023,*DefVal++);
STTUNER_IOREG_AddField(DeviceMap,R0362_INC_DEROT2,F0362_INC_DEROT_LO,0,8,FIELD_TYPE_UNSIGNED);

/*	PPM_CPAMP_DIR	*/
STTUNER_IOREG_AddReg(DeviceMap,R0362_PPM_CPAMP_DIR,0x0024,*DefVal++);
STTUNER_IOREG_AddField(DeviceMap,R0362_PPM_CPAMP_DIR,F0362_PPM_CPAMP_DIRECT,0,8,FIELD_TYPE_UNSIGNED);

/*	PPM_CPAMP_INV	*/
STTUNER_IOREG_AddReg(DeviceMap,R0362_PPM_CPAMP_INV,0x0025,*DefVal++);
STTUNER_IOREG_AddField(DeviceMap,R0362_PPM_CPAMP_INV,F0362_PPM_CPAMP_INV,0,8,FIELD_TYPE_UNSIGNED);

/*	FREESTFE_1	*/
STTUNER_IOREG_AddReg(DeviceMap,R0362_FREESTFE_1,0x0026,*DefVal++);
STTUNER_IOREG_AddField(DeviceMap,R0362_FREESTFE_1,F0362_SYMBOL_NUMBER_INC,6,2,FIELD_TYPE_UNSIGNED);
STTUNER_IOREG_AddField(DeviceMap,R0362_FREESTFE_1,F0362_SEL_LSB,2,1,FIELD_TYPE_UNSIGNED);
STTUNER_IOREG_AddField(DeviceMap,R0362_FREESTFE_1,F0362_AVERAGE_ON,1,1,FIELD_TYPE_UNSIGNED);
STTUNER_IOREG_AddField(DeviceMap,R0362_FREESTFE_1,F0362_DC_ADJ,0,1,FIELD_TYPE_UNSIGNED);

⌨️ 快捷键说明

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