📄 tuntdrv.h
字号:
/* ----------------------------------------------------------------------------
File Name: tuntdrv.h
Description:
EXTERNAL (ZIF) tuner drivers:
DTT7572
DTT7578
DTT7592
TDLB7
TDQD3
DTT7300X
ENG47402G1
TDM1316
ED5058
MIVAR
TDED4
DTT7102
TECC2849PG
TDCC2345
Copyright (C) 1999-2001 STMicroelectronics
History:
date: 13-Sept-2001
version: 3.1.0
author: GB from work by GJP
comment:
Reference:
---------------------------------------------------------------------------- */
/* define to prevent recursive inclusion */
#ifndef __STTUNER_TER_TUNTDRV_H
#define __STTUNER_TER_TUNTDRV_H
#ifdef __cplusplus
extern "C"
{
#endif /* __cplusplus */
/* includes ---------------------------------------------------------------- */
#include "stddefs.h" /* Standard definitions */
/* internal types */
#include "dbtypes.h" /* data types for databases */
/* constants --------------------------------------------------------------- */
/* In Hz -- Usually 125KHz (Ver1 code in KHz) */
#define TUNTDRV_TUNER_STEP 125000
#define TUNTDRV_IOBUFFER_MAX 5
#define TUNTDRV_BANDWIDTH_MAX 10
#define TUN_MAX_BW 10
/*******************/
/* Sumsung Tuner initialisation */
/* DIV1 */
#define RDTVS223_DIV1 0x00
#define FDTVS223_ZERO 0x000080
#define FDTVS223_N_MSB 0x00007f
/* DIV2 */
#define RDTVS223_DIV2 0x01
#define FDTVS223_N_LSB 0x0100ff
/* CTRL1 */
#define RDTVS223_CTRL1 0x02
#define FDTVS223_ONES 0x0200c0
#define FDTVS223_T 0x020038
#define FDTVS223_R 0x020007
/* CTRL2 */
#define RDTVS223_CTRL2 0x03
#define FDTVS223_CP 0x0300e0
#define FDTVS223_BS5 0x030010
#define FDTVS223_BS4 0x030008
#define FDTVS223_BS3 0x030004
#define FDTVS223_BS21 0x030003
/* CTRL1_2 */
#define RDTVS223_CTRL1_2 0x04
#define FDTVS223_ONE 0x040080
#define FDTVS223_ZEROS 0x040070
#define FDTVS223_ATC 0x040008
#define FDTVS223_AL 0x040007
/* STATUS */
#define RDTVS223_STATUS 0x05
#define FDTVS223_POR 0x050080
#define FDTVS223_FL 0x050040
#define FDTVS223_ALBC 0x050020
#define FDTVS223_R_1 0x050010
#define FDTVS223_AGC 0x050008
#define FDTVS223_A 0x050007
#define DTVS223_NBREGS 6
#define DTVS223_NBFIELDS 21
/* Tuner ALPS TDQD3-002A */
/* DIV1 */
#define RTDQD3_DIV1 0x0000
#define FTDQD3_ZERO 0x00000080
#define FTDQD3_N_MSB 0x0000007F
/* DIV2 */
#define RTDQD3_DIV2 0x0001
#define FTDQD3_N_LSB 0x000100FF
/* CTRL1 */
#define RTDQD3_CTRL1 0x0002
#define FTDQD3_F1 0x000200C0
#define FTDQD3_AGST 0x00020038
#define FTDQD3_R 0x00020007
/* CTRL2 */
#define RTDQD3_CTRL2 0x0003
#define FTDQD3_CP 0x000300C0
#define FTDQD3_TS 0x00030030
#define FTDQD3_BS4 0x00030008
#define FTDQD3_BS3 0x00030004
#define FTDQD3_BS21 0x00030003
/* CTRL3 */
#define RTDQD3_CTRL3 0x0004
#define FTDQD3_F2 0x000400C0
#define FTDQD3_IFW 0x00040030
#define FTDQD3_CP2 0x00040008
#define FTDQD3_XLO 0x00040006
#define FTDQD3_POW 0x00040001
/* STATUS */
#define RTDQD3_STATUS 0x0005
#define FTDQD3_POR 0x00050080
#define FTDQD3_FL 0x00050040
#define FTDQD3_ONES 0x00050038
#define FTDQD3_A 0x00050007
#define TDQD3_NBREGS 6
#define TDQD3_NBFIELDS 20
/*Thomson DTT7300X tuner definition*/
/* P_DIV1 */
#define RDTT7300X_P_DIV1 0x0000
#define FDTT7300X_FIX 0x00000080
#define FDTT7300X_N_MSB 0x0000007f
/* P_DIV2 */
#define RDTT7300X_P_DIV2 0x0001
#define FDTT7300X_N_LSB 0x000100ff
/* CTRL */
#define RDTT7300X_CTRL 0x0002
#define FDTT7300X_ONE 0x00020080
#define FDTT7300X_CP 0x00020040
#define FDTT7300X_T 0x00020038
#define FDTT7300X_RS 0x00020006
#define FDTT7300X_ZERO 0x00020001
/* BW_AUX */
#define RDTT7300X_BW_AUX 0x0003
#define FDTT7300X_ATC 0x00030080
#define FDTT7300X_BW_AUX 0x0003003f
/* STATUS */
#define RDTT7300X_STATUS 0x0004
#define FDTT7300X_POR 0x00040080
#define FDTT7300X_FL 0x00040040
#define FDTT7300X_ONES 0x00040030
#define FDTT7300X_AGC 0x00040008
#define FDTT7300X_A 0x00040007
#define DTT7300X_NBREGS 5
#define DTT7300X_NBFIELDS 15
/************* Tuner TDTGD108**********************/
#define RTDTGD108_DIV1 0x0000
#define FTDTGD108_ZERO 0x00000080
#define FTDTGD108_N_MSB 0x0000007f
/* DIV2 */
#define RTDTGD108_DIV2 0x0001
#define FTDTGD108_N_LSB 0x000100ff
/* CTRL */
#define RTDTGD108_CTRL 0x0002
#define FTDTGD108_ONE 0x00020080
#define FTDTGD108_CP 0x00020040
#define FTDTGD108_T2_1 0x00020030
#define FTDTGD108_T0 0x00020008
#define FTDTGD108_RS 0x00020006
#define FTDTGD108_Z 0x00020001
/* BB_AUX */
#define RTDTGD108_BB_AUX 0x0003
#define FTDTGD108_ATC 0x00030080
#define FTDTGD108_AL2 0x00030040
#define FTDTGD108_AL1 0x00030020
#define FTDTGD108_AL0_P4 0x00030010
#define FTDTGD108_P3 0x00030008
#define FTDTGD108_P0_1_2 0x00030007
/* STATUS */
#define RTDTGD108_STATUS 0x0004
#define FTDTGD108_POR 0x00040080
#define FTDTGD108_FL 0x00040040
#define FTDTGD108_ONES 0x00040030
#define FTDTGD108_AGC 0x00040008
#define FTDTGD108_A 0x00040007
#define TDTGD108_NBREGS 5
#define TDTGD108_NBFIELDS 20
/* PLL type */
typedef enum
{
TUNER_PLL_DTT7572,
TUNER_PLL_DTT7578,
TUNER_PLL_DTT7592,
TUNER_PLL_TDLB7,
TUNER_PLL_TDQD3,
TUNER_PLL_DTT7300X,
TUNER_PLL_ENG47402G1,
TUNER_PLL_EAL2780,
TUNER_PLL_TDA6650,
TUNER_PLL_TDM1316,
TUNER_PLL_TDEB2 ,
TUNER_PLL_ED5058 ,
TUNER_PLL_MIVAR ,
TUNER_PLL_TDED4 ,
TUNER_PLL_DTT7102 ,
TUNER_PLL_TECC2849PG ,
TUNER_PLL_TDCC2345,
/*TUNER_PLL_DTT7600,*/
TUNER_PLL_STB4000,
TUNER_PLL_DTVS223,
TUNER_PLL_RF4000,
TUNER_PLL_TDTGD108
}
TUNTDRV_PLLType_t;
typedef enum
{
TNR_NO_ERR = 0,
TNR_TYPE_ERR,
TNR_ACK_ERR,
TNR_PLL_ERR,
TNR_STEP_ERR
}
TUNER_ERROR;
/* tuner instance data */
typedef struct
{
ST_DeviceName_t *DeviceName; /* unique name for opening under */
STTUNER_Handle_t TopLevelHandle; /* access tuner etc. using this */
IOARCH_Handle_t IOHandle; /* passed in Open() to an instance of this driver */
STTUNER_TunerType_t TunerType; /* tuner ID number */
TUNTDRV_PLLType_t PLLType; /* PLL on this type of tuner */
unsigned char Address; /* I2C address of the tuner */
unsigned char SubAddress; /* I2C subaddress of the tuner */
int I_Q, /* IQ inversion */
FreqFactor, /* Frequency Factor */
StepSize, /* PLL step size */
IF, /* IF */
SelectBW, /* Selected bandwidth */
ChannelBW, /* Channel bandwidth */
Repeator; /* Using repeator */
int WrSize; /* Size of data to write */
unsigned char WrBuffer[20]; /* Data to write */
int WrSubSize; /* Size of data to write */
unsigned char WrSubBuffer[20]; /* Data to write */
int RdSize; /* Size of data to read */
unsigned char RdBuffer[20]; /* Data read */
U32 BandWidth[TUN_MAX_BW + 1]; /* Bandwidths */
ST_Partition_t *MemoryPartition; /* which partition this data block belongs to */
void *InstanceChainPrev; /* previous data block in chain or NULL if not */
void *InstanceChainNext; /* next data block in chain or NULL if last */
TUNER_ERROR Error; /* Last Error */
TUNER_Status_t Status;
#ifndef STTUNER_MINIDRIVER
STTUNER_IOREG_DeviceMap_t DeviceMap; /* Devicemap for tuner registers */
#endif
U8 *TunerRegVal;
} TUNTDRV_InstanceData_t;
/* enumerated types -------------------------------------------------------- */
/* functions --------------------------------------------------------------- */
/* populate database & init driver (not actual hardware) */
ST_ErrorCode_t STTUNER_DRV_TUNER_DTT7572_Install (STTUNER_tuner_dbase_t *Tuner);
ST_ErrorCode_t STTUNER_DRV_TUNER_DTT7578_Install (STTUNER_tuner_dbase_t *Tuner);
ST_ErrorCode_t STTUNER_DRV_TUNER_DTT7592_Install (STTUNER_tuner_dbase_t *Tuner);
ST_ErrorCode_t STTUNER_DRV_TUNER_TDLB7_Install (STTUNER_tuner_dbase_t *Tuner);
ST_ErrorCode_t STTUNER_DRV_TUNER_TDQD3_Install (STTUNER_tuner_dbase_t *Tuner);
ST_ErrorCode_t STTUNER_DRV_TUNER_DTT7300X_Install (STTUNER_tuner_dbase_t *Tuner);
ST_ErrorCode_t STTUNER_DRV_TUNER_ENG47402G1_Install (STTUNER_tuner_dbase_t *Tuner);
ST_ErrorCode_t STTUNER_DRV_TUNER_EAL2780_Install (STTUNER_tuner_dbase_t *Tuner);
ST_ErrorCode_t STTUNER_DRV_TUNER_TDA6650_Install (STTUNER_tuner_dbase_t *Tuner);
/*** New Philips tuner added***/
ST_ErrorCode_t STTUNER_DRV_TUNER_TDM1316_Install (STTUNER_tuner_dbase_t *Tuner);
ST_ErrorCode_t STTUNER_DRV_TUNER_TDEB2_Install (STTUNER_tuner_dbase_t *Tuner);
/*********New tuner added ED5058*********************/
ST_ErrorCode_t STTUNER_DRV_TUNER_ED5058_Install (STTUNER_tuner_dbase_t *Tuner);
/********Tuner MIVAR********************/
ST_ErrorCode_t STTUNER_DRV_TUNER_MIVAR_Install (STTUNER_tuner_dbase_t *Tuner);
/*******Tuner TDED4**********************/
ST_ErrorCode_t STTUNER_DRV_TUNER_TDED4_Install (STTUNER_tuner_dbase_t *Tuner);
/*******Tuner DTT7102*******************/
ST_ErrorCode_t STTUNER_DRV_TUNER_DTT7102_Install (STTUNER_tuner_dbase_t *Tuner);
/*******Tuner TECC2849PG*******************/
ST_ErrorCode_t STTUNER_DRV_TUNER_TECC2849PG_Install (STTUNER_tuner_dbase_t *Tuner);
/*******Tuner TDCC2345*******************/
ST_ErrorCode_t STTUNER_DRV_TUNER_TDCC2345_Install (STTUNER_tuner_dbase_t *Tuner);
/*******Tuner DTT7600*******************/
/*ST_ErrorCode_t STTUNER_DRV_TUNER_DTT7600_Install (STTUNER_tuner_dbase_t *Tuner);*/
/*******Tuner STB4000*******************/
ST_ErrorCode_t STTUNER_DRV_TUNER_STB4000_Install (STTUNER_tuner_dbase_t *Tuner);
/*******Tuner DTSV223*******************/
ST_ErrorCode_t STTUNER_DRV_TUNER_DTVS223_Install (STTUNER_tuner_dbase_t *Tuner);
/*******Tuner RF4000*******************/
ST_ErrorCode_t STTUNER_DRV_TUNER_RF4000_Install (STTUNER_tuner_dbase_t *Tuner);
/*******Tuner TDTGD108*******************/
ST_ErrorCode_t STTUNER_DRV_TUNER_TDTGD108_Install (STTUNER_tuner_dbase_t *Tuner);
/* populate database & init driver (not actual hardware) */
ST_ErrorCode_t STTUNER_DRV_TUNER_DTT7572_UnInstall (STTUNER_tuner_dbase_t *Tuner);
ST_ErrorCode_t STTUNER_DRV_TUNER_DTT7578_UnInstall (STTUNER_tuner_dbase_t *Tuner);
ST_ErrorCode_t STTUNER_DRV_TUNER_DTT7592_UnInstall (STTUNER_tuner_dbase_t *Tuner);
ST_ErrorCode_t STTUNER_DRV_TUNER_TDLB7_UnInstall (STTUNER_tuner_dbase_t *Tuner);
ST_ErrorCode_t STTUNER_DRV_TUNER_TDQD3_UnInstall (STTUNER_tuner_dbase_t *Tuner);
ST_ErrorCode_t STTUNER_DRV_TUNER_DTT7300X_UnInstall (STTUNER_tuner_dbase_t *Tuner);
ST_ErrorCode_t STTUNER_DRV_TUNER_ENG47402G1_UnInstall (STTUNER_tuner_dbase_t *Tuner);
ST_ErrorCode_t STTUNER_DRV_TUNER_EAL2780_UnInstall (STTUNER_tuner_dbase_t *Tuner);
ST_ErrorCode_t STTUNER_DRV_TUNER_TDA6650_UnInstall (STTUNER_tuner_dbase_t *Tuner);
ST_ErrorCode_t STTUNER_DRV_TUNER_TDM1316_UnInstall (STTUNER_tuner_dbase_t *Tuner);
ST_ErrorCode_t STTUNER_DRV_TUNER_TDEB2_UnInstall (STTUNER_tuner_dbase_t *Tuner);
/****************Tuner ED5058************************/
ST_ErrorCode_t STTUNER_DRV_TUNER_ED5058_UnInstall (STTUNER_tuner_dbase_t *Tuner);
/**************MIVAR************************/
ST_ErrorCode_t STTUNER_DRV_TUNER_MIVAR_UnInstall (STTUNER_tuner_dbase_t *Tuner);
/**************Tuner TDED4***********************/
ST_ErrorCode_t STTUNER_DRV_TUNER_TDED4_UnInstall (STTUNER_tuner_dbase_t *Tuner);
/************Tuner DTT7102************************/
ST_ErrorCode_t STTUNER_DRV_TUNER_DTT7102_UnInstall (STTUNER_tuner_dbase_t *Tuner);
/************Tuner TECC2849PG************************/
ST_ErrorCode_t STTUNER_DRV_TUNER_TECC2849PG_UnInstall (STTUNER_tuner_dbase_t *Tuner);
/************Tuner TDCC2345************************/
ST_ErrorCode_t STTUNER_DRV_TUNER_TDCC2345_UnInstall (STTUNER_tuner_dbase_t *Tuner);
/************* Tuner DTT7600**********************/
/*ST_ErrorCode_t STTUNER_DRV_TUNER_DTT7600_UnInstall (STTUNER_tuner_dbase_t *Tuner);*/
/************* Tuner STB4000**********************/
ST_ErrorCode_t STTUNER_DRV_TUNER_STB4000_UnInstall (STTUNER_tuner_dbase_t *Tuner);
/************* Tuner RF4000**********************/
ST_ErrorCode_t STTUNER_DRV_TUNER_RF4000_UnInstall (STTUNER_tuner_dbase_t *Tuner);
/************* Tuner DTSV223**********************/
ST_ErrorCode_t STTUNER_DRV_TUNER_DTVS223_UnInstall (STTUNER_tuner_dbase_t *Tuner);
/************* Tuner TDTGD108**********************/
ST_ErrorCode_t STTUNER_DRV_TUNER_TDTGD108_UnInstall (STTUNER_tuner_dbase_t *Tuner);
#ifndef STTUNER_MINIDRIVER
ST_ErrorCode_t tuner_tuntdrv_SetFrequency (TUNER_Handle_t Handle, U32 Frequency, U32 *NewFrequency);
ST_ErrorCode_t tuner_tuntdrv_GetFrequency (TUNER_Handle_t Handle, U32 *Frequency);
void tuner_tuntdrv_GetProperties (TUNER_Handle_t Handle, void *tnr);
void tuner_tuntdrv_Select (TUNER_Handle_t Handle, STTUNER_TunerType_t type, unsigned char address);
void TunerReadWrite (TUNER_Handle_t Handle, int mode);
#endif
#ifdef STTUNER_MINIDRIVER
ST_ErrorCode_t tuner_tuntdrv_Init(ST_DeviceName_t *DeviceName, TUNER_InitParams_t *InitParams);
ST_ErrorCode_t tuner_tuntdrv_Term(ST_DeviceName_t *DeviceName, TUNER_TermParams_t *TermParams);
ST_ErrorCode_t tuner_tuntdrv_Open(ST_DeviceName_t *DeviceName, TUNER_OpenParams_t *OpenParams,TUNER_Capability_t *TUNER_Capability, TUNER_Handle_t *Handle);
ST_ErrorCode_t tuner_tuntdrv_Close( TUNER_CloseParams_t *CloseParams);
void tuner_tuntdrv_Select(STTUNER_TunerType_t type, unsigned char address);
ST_ErrorCode_t tuner_tuntdrv_SetFrequency ( U32 Frequency, U32 *NewFrequency);
void TunerReadWrite ( int mode);
#endif
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* __STTUNER_TER_TUNTDRV_H */
/* End of tuntdrv.h */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -