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

📄 d0899.c

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

Description: 

    STB0899 demod driver.


Copyright (C) 2005-2006 STMicroelectronics

History:
  date: 18-Jan-2005
  version: 
  author: SD 
comment: Add support for SatCR.

date: 20-Mar-2006
  version: 
  author: SD 
comment: Linux integration and V3.6 integration.

Reference:
---------------------------------------------------------------------------- */

/* Includes ---------------------------------------------------------------- */
#ifdef ST_OSLINUX
   #include "stos.h"
#else
/* C libs */
#include <string.h>  
#include<stdlib.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 "drv0899.h"   /* driver */
#include "d0899_util.h"  /* utility functions to support stb0899 LLA */
#include "d0899_dvbs2util.h"
#include "d0899_init.h" 
#include "d0899.h"      /* header for this file */

#include "sioctl.h"     /* data structure typedefs for all the the sat ioctl functions */

extern S32 FE_STB0899_GetRFLevel(STTUNER_IOREG_DeviceMap_t *DeviceMap, IOARCH_Handle_t IOHandle, STTUNER_FECType_t FECType, STTUNER_FECMode_t FECMode);
#ifdef STTUNER_DRV_SAT_SCR
extern ST_ErrorCode_t scr_scrdrv_SetFrequency   (STTUNER_Handle_t Handle, DEMOD_Handle_t DemodHandle, ST_DeviceName_t *DeviceName, U32  InitialFrequency,  U8 LNBIndex, U8 SCRBPF );
#endif

   int  ModCodLUT[29][3] = {
        {FE_DUMMY_PLF, STTUNER_MOD_NONE,    STTUNER_FEC_NONE},
		{FE_QPSK_14,   STTUNER_MOD_QPSK,    STTUNER_FEC_1_4},
		{FE_QPSK_13,   STTUNER_MOD_QPSK,    STTUNER_FEC_1_3},
		{FE_QPSK_25,    STTUNER_MOD_QPSK,   STTUNER_FEC_2_5},
		{FE_QPSK_12,    STTUNER_MOD_QPSK,   STTUNER_FEC_1_2},
		{FE_QPSK_35,    STTUNER_MOD_QPSK,   STTUNER_FEC_3_5},
		{FE_QPSK_23,    STTUNER_MOD_QPSK,   STTUNER_FEC_2_3},
		{FE_QPSK_34,    STTUNER_MOD_QPSK,   STTUNER_FEC_3_4},
		{FE_QPSK_45,    STTUNER_MOD_QPSK,   STTUNER_FEC_4_5},
		{FE_QPSK_56,    STTUNER_MOD_QPSK,   STTUNER_FEC_5_6},
		{FE_QPSK_89,    STTUNER_MOD_QPSK,   STTUNER_FEC_8_9},
		{FE_QPSK_910,   STTUNER_MOD_QPSK,   STTUNER_FEC_9_10},
		{FE_8PSK_35,    STTUNER_MOD_8PSK,   STTUNER_FEC_3_5},
		{FE_8PSK_23,    STTUNER_MOD_8PSK,   STTUNER_FEC_2_3},
		{FE_8PSK_34,    STTUNER_MOD_8PSK,   STTUNER_FEC_3_4},
		{FE_8PSK_56,    STTUNER_MOD_8PSK,   STTUNER_FEC_5_6},
		{FE_8PSK_89,    STTUNER_MOD_8PSK,   STTUNER_FEC_8_9},
		{FE_8PSK_910,   STTUNER_MOD_8PSK,   STTUNER_FEC_9_10},
		{FE_16APSK_23,  STTUNER_MOD_16APSK, STTUNER_FEC_2_3},
		{FE_16APSK_34,  STTUNER_MOD_16APSK, STTUNER_FEC_3_4},
		{FE_16APSK_45,  STTUNER_MOD_16APSK, STTUNER_FEC_4_5},
		{FE_16APSK_56,  STTUNER_MOD_16APSK, STTUNER_FEC_5_6},
		{FE_16APSK_89,  STTUNER_MOD_16APSK, STTUNER_FEC_8_9},
		{FE_16APSK_910, STTUNER_MOD_16APSK, STTUNER_FEC_9_10},
		{FE_32APSK_34,  STTUNER_MOD_32APSK, STTUNER_FEC_3_4},
		{FE_32APSK_45,  STTUNER_MOD_32APSK, STTUNER_FEC_4_5},
		{FE_32APSK_56,  STTUNER_MOD_32APSK, STTUNER_FEC_5_6},
		{FE_32APSK_89,  STTUNER_MOD_32APSK, STTUNER_FEC_8_9},
		{FE_32APSK_910, STTUNER_MOD_32APSK, STTUNER_FEC_9_10}
	};
	
	
U32 AddressArray[STB0899_NBREGS]=
{
 0x0000f000 ,	/* ID */
 0x0000f0a0 ,	/* TDISCNTRL1 */
 0x0000f0a1 ,	/* DISCNTRL2 */
 0x0000f0a4 ,	/* DISRX_ST0 */
 0x0000f0a5 ,	/* DISRX_ST1 */
 0x0000f0a6 ,	/* DISPARITY */
 0x0000f0a7 ,	/* DISFIFO */
 0x0000f0a8 ,	/* DISSTATUS */
 0x0000f0a9 ,	/* DISF22 */
 0x0000f0aa ,	/* DISF22RX */
 0x0000f101 ,	/* SYSREG */
 0x0000f110 ,	/* ACRPRESC */
 0x0000f111 ,	/* ACRDIV1 */
 0x0000f112 ,	/* ACRDIV2 */
 0x0000f113 ,	/* DACR1 */
 0x0000f114 ,	/* DACR2 */
 0x0000f11c ,	/* OUTCFG */
 0x0000f11d ,	/* MODECFG */
 0x0000f120 ,	/* IRQSTATUS3 */
 0x0000f121 ,	/* IRQSTATUS2 */
 0x0000f122 ,	/* IRQSTATUS1 */
 0x0000f123 ,	/* IRQSTATUS0 */
 0x0000f124 ,	/* IRQMSK3 */
 0x0000f125 ,	/* IRQMSK2 */
 0x0000f126 ,	/* IRQMSK1 */
 0x0000f127 ,	/* IRQMSK0 */
 0x0000f128 ,	/* IRQCFG */
 0x0000f129 ,	/* I2CCFG */
 0x0000f12a ,	/* I2CRPT */
 0x0000f139 ,	/* IOPVALUE5 */
 0x0000f13a ,	/* IOPVALUE4 */
 0x0000f13b ,	/* IOPVALUE3 */
 0x0000f13c ,	/* IOPVALUE2 */
 0x0000f13d ,	/* IOPVALUE1 */
 0x0000f13e ,	/* IOPVALUE0 */
 0x0000f140 ,	/* GPIO0CFG */
 0x0000f141 ,	/* GPIO1CFG */
 0x0000f142 ,	/* GPIO2CFG */
 0x0000f143 ,	/* GPIO3CFG */
 0x0000f144 ,	/* GPIO4CFG */
 0x0000f145 ,	/* GPIO5CFG */
 0x0000f146 ,	/* GPIO6CFG */
 0x0000f147 ,	/* GPIO7CFG */
 0x0000f148 ,	/* GPIO8CFG */
 0x0000f149 ,	/* GPIO9CFG */
 0x0000f14a ,	/* GPIO10CFG */
 0x0000f14b ,	/* GPIO11CFG */
 0x0000f14c ,	/* GPIO12CFG */
 0x0000f14d ,	/* GPIO13CFG */
 0x0000f14e ,	/* GPIO14CFG */
 0x0000f14f ,	/* GPIO15CFG */
 0x0000f150 ,	/* GPIO16CFG */
 0x0000f151 ,	/* GPIO17CFG */
 0x0000f152 ,	/* GPIO18CFG */
 0x0000f153 ,	/* GPIO19CFG */
 0x0000f154 ,	/* GPIO20CFG */
 0x0000f155 ,	/* SDATCFG */
 0x0000f156 ,	/* SCLTCFG */
 0x0000f157 ,	/* AGCRFCFG */
 0x0000f158 ,	/* AGCBB2CFG */
 0x0000f159 ,	/* AGCBB1CFG */
 0x0000f15a ,	/* DIRCLKCFG */
 0x0000f15b ,	/* CKOUT27CFG */
 0x0000f15c ,	/* STDBYCFG */
 0x0000f15d ,	/* CS0CFG */
 0x0000f15e ,	/* CS1CFG */
 0x0000f15f ,	/* DISEQCOCFG */
 0x0000f160 ,	/* GPIO32CFG */
 0x0000f161 ,	/* GPIO33CFG */
 0x0000f162 ,	/* GPIO34CFG */
 0x0000f163 ,	/* GPIO35CFG */
 0x0000f164 ,	/* GPIO36CFG */
 0x0000f165 ,	/* GPIO37CFG */
 0x0000f166 ,	/* GPIO38CFG */
 0x0000f167 ,	/* GPIO39CFG */
 0x0000f1b3 ,	/* NCOARSE */
 0x0000f1b6 ,	/* SYNTCTRL */
 0x0000f1b7 ,	/* FILTCTRL */
 0x0000f1b8 ,	/* SYSCTRL */
 0x0000f1c2 ,	/* STOPCLK1 */
 0x0000f1c3 ,	/* STOPCLK2 */
 0x0000f1e0 ,	/* TSTTNR1 */
 0x0000f1e1 ,	/* TSTTNR2 */
 0x0000f1e2 ,	/* TSTTNR3 */
 0x0000f200 ,	/* INTBUFSTATUS */
 0x0000f201 ,	/* INTBUFCTRL */
 0x8000f300 ,	/* DMDSTATUS */
 0x8000f304 ,	/* CRLFREQ */
 0x8000f308 ,	/* BTRFREQ */
 0x8000f30c ,	/* IFAGCGAIN */
 0x8000f310 ,	/* BBAGCGAIN */
 0x8000f314 ,	/* DCOFFSET */
 0x8000f31c ,	/* DMDCNTRL */
 0x8000f320 ,	/* IFAGCCNTRL */
 0x8000f324 ,	/* BBAGCCNTRL */
 0x8000f328 ,	/* CRLCNTRL */
 0x8000f32c ,	/* CRLPHSINIT */
 0x8000f330 ,	/* CRLFREQINIT */
 0x8000f334 ,	/* CRLLOOPGAIN */
 0x8000f338 ,	/* CRLNOMFREQ */
 0x8000f33c ,	/* CRLSWPRATE */
 0x8000f340 ,	/* CRLMAXSWP */
 0x8000f344 ,	/* CRLLKCNTRL */
 0x8000f348 ,	/* DECIMCNTRL */
 0x8000f34c ,	/* BTRCNTRL */
 0x8000f350 ,	/* BTRLOOPGAIN */
 0x8000f354 ,	/* BTRPHSINIT */
 0x8000f358 ,	/* BTRFREQINIT */
 0x8000f35c ,	/* BTRNOMFREQ */
 0x8000f360 ,	/* BTRLKCNTRL */
 0x8000f364 ,	/* DECNCNTRL */
 0x8000f368 ,	/* TPCNTRL */
 0x8000f36c ,	/* TPBUFSTATUS */
 0x8000f37c ,	/* DCESTIM */
 0x8020f310 ,	/* FLLCNTRL */
 0x8020f314 ,	/* FLLFREQWD */
 0x8020f358 ,	/* ANTIALIASSEL */
 0x8020f35c ,	/* RRCALPHA */
 0x8020f360 ,	/* DCADAPTISHFT */
 0x8020f364 ,	/* IMBOFFSET */
 0x8020f368 ,	/* IMBESTIMATE */
 0x8020f36c ,	/* IMBCNTRL */
 0x8020f374 ,	/* IFAGCCNTRL2 */
 0x8020f378 ,	/* DMDCNTRL2 */
 0x8040f300 ,	/* TPBUFFER */
 0x8040f304 ,	/* TPBUFFER1 */
 0x8040f308 ,	/* TPBUFFER2 */
 0x8040f30c ,	/* TPBUFFER3 */
 0x8040f310 ,	/* TPBUFFER4 */
 0x8040f314 ,	/* TPBUFFER5 */
 0x8040f318 ,	/* TPBUFFER6 */
 0x8040f31c ,	/* TPBUFFER7 */
 0x8040f320 ,	/* TPBUFFER8 */
 0x8040f324 ,	/* TPBUFFER9 */
 0x8040f328 ,	/* TPBUFFER10 */
 0x8040f32c ,	/* TPBUFFER11 */
 0x8040f330 ,	/* TPBUFFER12 */
 0x8040f334 ,	/* TPBUFFER13 */
 0x8040f338 ,	/* TPBUFFER14 */
 0x8040f33c ,	/* TPBUFFER15 */
 0x8040f340 ,	/* TPBUFFER16 */
 0x8040f344 ,	/* TPBUFFER17 */
 0x8040f348 ,	/* TPBUFFER18 */
 0x8040f34c ,	/* TPBUFFER19 */
 0x8040f350 ,	/* TPBUFFER20 */
 0x8040f354 ,	/* TPBUFFER21 */
 0x8040f358 ,	/* TPBUFFER22 */
 0x8040f35c ,	/* TPBUFFER23 */
 0x8040f360 ,	/* TPBUFFER24 */
 0x8040f364 ,	/* TPBUFFER25 */
 0x8040f368 ,	/* TPBUFFER26 */
 0x8040f36c ,	/* TPBUFFER27 */
 0x8040f370 ,	/* TPBUFFER28 */
 0x8040f374 ,	/* TPBUFFER29 */
 0x8040f378 ,	/* TPBUFFER30 */
 0x8040f37c ,	/* TPBUFFER31 */
 0x8060f300 ,	/* TPBUFFER32 */
 0x8060f304 ,	/* TPBUFFER33 */
 0x8060f308 ,	/* TPBUFFER34 */
 0x8060f30c ,	/* TPBUFFER35 */
 0x8060f310 ,	/* TPBUFFER36 */
 0x8060f314 ,	/* TPBUFFER37 */
 0x8060f318 ,	/* TPBUFFER38 */
 0x8060f31c ,	/* TPBUFFER39 */
 0x8060f320 ,	/* TPBUFFER40 */
 0x8060f324 ,	/* TPBUFFER41 */
 0x8060f328 ,	/* TPBUFFER42 */
 0x8060f32c ,	/* TPBUFFER43 */
 0x8060f330 ,	/* TPBUFFER44 */
 0x8060f334 ,	/* TPBUFFER45 */
 0x8060f338 ,	/* TPBUFFER46 */
 0x8060f33c ,	/* TPBUFFER47 */
 0x8060f340 ,	/* TPBUFFER48 */
 0x8060f344 ,	/* TPBUFFER49 */
 0x8060f348 ,	/* TPBUFFER50 */
 0x8060f34c ,	/* TPBUFFER51 */
 0x8060f350 ,	/* TPBUFFER52 */
 0x8060f354 ,	/* TPBUFFER53 */
 0x8060f358 ,	/* TPBUFFER54 */
 0x8060f35c ,	/* TPBUFFER55 */
 0x8060f360 ,	/* TPBUFFER56 */
 0x8060f364 ,	/* TPBUFFER57 */
 0x8060f368 ,	/* TPBUFFER58 */
 0x8060f36c ,	/* TPBUFFER59 */
 0x8060f370 ,	/* TPBUFFER60 */
 0x8060f374 ,	/* TPBUFFER61 */
 0x8060f378 ,	/* TPBUFFER62 */
 0x8060f37c ,	/* TPBUFFER63 */
 0x8400f300 ,	/* RESETCNTRL */
 0x8400f304 ,	/* ACMENABLE */
 0x8400f30c ,	/* DESCRCNTRL */
 0x8400f310 ,	/* CSMCNTRL1 */
 0x8400f314 ,	/* CSMCNTRL2 */
 0x8400f318 ,	/* CSMCNTRL3 */
 0x8400f31c ,	/* CSMCNTRL4 */
 0x8400f320 ,	/* UWPCNTRL1 */
 0x8400f324 ,	/* UWPCNTRL2 */
 0x8400f328 ,	/* UWPSTAT1 */
 0x8400f32c ,	/* UWPSTAT2 */
 0x8400f340 ,	/* DMDSTAT2 */
 0x8400f344 ,	/* FREQADJSCALE */
 0x8400f34c ,	/* UWPCNTRL3 */
 0x8400f350 ,	/* SYMCLKSEL */
 0x8400f354 ,	/* SOFSRCHTO */
 0x8400f358 ,	/* ACQCNTRL1 */
 0x8400f35c ,	/* ACQCNTRL2 */
 0x8400f360 ,	/* ACQCNTRL3 */
 0x8400f364 ,	/* FESETTLE */
 0x8400f368 ,	/* ACDWELL */
 0x8400f36c ,	/* ACQUIRETRIG */
 0x8400f370 ,	/* LOCKLOST */
 0x8400f374 ,	/* ACQSTAT1 */
 0x8400f378 ,	/* ACQTIMEOUT */
 0x8400f37c ,	/* ACQTIME */
 0x8440f308 ,	/* FINALAGCCNTRL */
 0x8440f30c ,	/* FINALAGCCGAIN */
 0x8440f310 ,	/* EQUILIZERINIT */
 0x8440f314 ,	/* EQCNTL */
 0x8440f320 ,	/* EQIINITCOEFF0 */
 0x8440f324 ,	/* EQIINITCOEFF1 */
 0x8440f328 ,	/* EQIINITCOEFF2 */
 0x8440f32c ,	/* EQIINITCOEFF3 */
 0x8440f330 ,	/* EQIINITCOEFF4 */
 0x8440f334 ,	/* EQIINITCOEFF5 */
 0x8440f338 ,	/* EQIINITCOEFF6 */
 0x8440f33c ,	/* EQIINITCOEFF7 */
 0x8440f340 ,	/* EQIINITCOEFF8 */
 0x8440f344 ,	/* EQIINITCOEFF9 */
 0x8440f348 ,	/* EQIINITCOEFF10 */
 0x8440f350 ,	/* EQQINITCOEFF0 */
 0x8440f354 ,	/* EQQINITCOEFF1 */
 0x8440f358 ,	/* EQQINITCOEFF2 */
 0x8440f35c ,	/* EQQINITCOEFF3 */
 0x8440f360 ,	/* EQQINITCOEFF4 */
 0x8440f364 ,	/* EQQINITCOEFF5 */
 0x8440f368 ,	/* EQQINITCOEFF6 */
 0x8440f36c ,	/* EQQINITCOEFF7 */
 0x8440f370 ,	/* EQQINITCOEFF8 */
 0x8440f374 ,	/* EQQINITCOEFF9 */
 0x8440f378 ,	/* EQQINITCOEFF10 */
 0x8460f300 ,	/* EQICOEFFSOUT0 */
 0x8460f304 ,	/* EQICOEFFSOUT1 */
 0x8460f308 ,	/* EQICOEFFSOUT2 */
 0x8460f30c ,	/* EQICOEFFSOUT3 */
 0x8460f310 ,	/* EQICOEFFSOUT4 */
 0x8460f314 ,	/* EQICOEFFSOUT5 */
 0x8460f318 ,	/* EQICOEFFSOUT6 */
 0x8460f31c ,	/* EQICOEFFSOUT7 */
 0x8460f320 ,	/* EQICOEFFSOUT8 */
 0x8460f324 ,	/* EQICOEFFSOUT9 */
 0x8460f328 ,	/* EQICOEFFSOUT10 */
 0x8460f330 ,	/* EQQCOEFFSOUT0 */
 0x8460f334 ,	/* EQQCOEFFSOUT1 */
 0x8460f338 ,	/* EQQCOEFFSOUT2 */
 0x8460f33c ,	/* EQQCOEFFSOUT3 */
 0x8460f340 ,	/* EQQCOEFFSOUT4 */
 0x8460f344 ,	/* EQQCOEFFSOUT5 */
 0x8460f348 ,	/* EQQCOEFFSOUT6 */
 0x8460f34c ,	/* EQQCOEFFSOUT7 */
 0x8460f350 ,	/* EQQCOEFFSOUT8 */
 0x8460f354 ,	/* EQQCOEFFSOUT9 */
 0x8460f358 ,	/* EQQCOEFFSOUT10 */
 0x0000f40e ,	/* DEMOD */
 0x0000f410 ,	/* RCOMPC */
 0x0000f412 ,	/* AGC1CN */
 0x0000f413 ,	/* AGC1REF */
 0x0000f417 ,	/* RTC */
 0x0000f418 ,	/* TMGCFG */
 0x0000f419 ,	/* AGC2REF */
 0x0000f41a ,	/* TLSR */
 0x0000f41b ,	/* CFD */
 0x0000f41c ,	/* ACLC */
 0x0000f41d ,	/* BCLC */
 0x0000f41e ,	/* EQON */
 0x0000f41f ,	/* LDT */
 0x0000f420 ,	/* LDT2 */
 0x0000f425 ,	/* EQUALREF */
 0x0000f426 ,	/* TMGRAMP */
 0x0000f427 ,	/* TMGTHD */
 0x0000f428 ,	/* IDCCOMP */
 0x0000f429 ,	/* QDCCOMP */
 0x0000f42a ,	/* POWERI */
 0x0000f42b ,	/* POWERQ */
 0x0000f42c ,	/* RCOMP */
 0x0000f42e ,	/* AGCIQIN */
 0x0000f436 ,	/* AGC2I1 */

⌨️ 快捷键说明

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