📄 d0899.c
字号:
/* ----------------------------------------------------------------------------
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 + -