📄 tunshdrv.h
字号:
/* ----------------------------------------------------------------------------
File Name: tunshdrv.h
Description:
EXTERNAL shared tuner drivers:
TD1336
Copyright (C) 2005-2006 STMicroelectronics
History:
date:
version:
author:
comment:
Reference:
---------------------------------------------------------------------------- */
/* define to prevent recursive inclusion */
#ifndef __STTUNER_SHARED_TUNSHDRV_H
#define __STTUNER_SHARED_TUNSHDRV_H
#ifdef __cplusplus
extern "C"
{
#endif /* __cplusplus */
/* includes ---------------------------------------------------------------- */
#include "stddefs.h" /* Standard definitions */
/* internal types */
#include "dbtypes.h" /* data types for databases */
/* constants --------------------------------------------------------------- */
#define TUN_MAX_BW 10
/* PLL type */
typedef enum
{
TUNER_PLL_TD1336 =0,
TUNER_PLL_FQD1236 ,
TUNER_PLL_T2000,
TUNER_PLL_DTT7600
}
TUNSHDRV_PLLType_t;
#define TD1336_NBREGS 5
#define TD1336_NBFIELDS 14
/* Tuner Philips 1336 */
/* DIV1 */
#define RTD1336_DIV1 0x0
#define FTD1336_ZERO 0x80
#define FTD1336_N_MSB 0x7f
/* DIV2 */
#define RTD1336_DIV2 0x1
#define FTD1336_N_LSB 0x100ff
/* CTRL */
#define RTD1336_CTRL 0x2
#define FTD1336_CONST 0x0200f8
#define FTD1336_RS 0x020006
#define FTD1336_Z 0x020001
/* BB */
#define RTD1336_BB 0x3
#define FTD1336_ZEROS 0x0300e0
#define FTD1336_AGC 0x030018
#define FTD1336_SP 0x030007
/* STATUS */
#define RTD1336_STATUS 0x4
#define FTD1336_POR 0x040080
#define FTD1336_FL 0x040040
#define FTD1336_ONES 0x040038
#define FTD1336_CA 0x040006
#define FTD1336_RW 0x040001
/* Tuner Philips PLL FQD1236 */
/* DIV1 */
#define FQD1236_NBREGS 5
#define FQD1236_NBFIELDS 19
#define RFQD1236_DIV1 0x0
#define FFQD1236_ZERO 0x80
#define FFQD1236_N_MSB 0x7f
#define RFQD1236_DIV2 0x1
#define FFQD1236_N_LSB 0x100ff
#define RFQD1236_CTRL 0x2
#define FFQD1236_ONE 0x20080
#define FFQD1236_CP 0x20040
#define FFQD1236_T 0x20038
#define FFQD1236_RS 0x20006
#define FFQD1236_Z 0x20001
#define RFQD1236_BB_AUX 0x3
#define FFQD1236_ATC 0x30080
#define FFQD1236_AL2 0x30040
#define FFQD1236_AL1 0x30020
#define FFQD1236_AL0_P4 0x30010
#define FFQD1236_P3 0x30008
#define FFQD1236_P0_1_2 0x30007
#define RFQD1236_STATUS 0x4
#define FFQD1236_POR 0x40080
#define FFQD1236_FL 0x40040
#define FFQD1236_ONES 0x40030
#define FFQD1236_AGC 0x40008
#define FFQD1236_A 0x40007
/* Tuner Philips PLL T2000 */
/* DIV1 */
#define T2000_NBREGS 5
#define T2000_NBFIELDS 15
#define RT2000_DIV1 0x0
#define FT2000_ZERO 0x80
#define FT2000_N_MSB 0x7f
#define RT2000_DIV2 0x1
#define FT2000_N_LSB 0x100ff
#define RT2000_CTRL1 0x2
#define FT2000_ONE 0x20080
#define FT2000_C 0x20060
#define FT2000_R 0x2001f
#define RT2000_CTRL2 0x3
#define FT2000_Z1 0x30080
#define FT2000_BS 0x30060
#define FT2000_Z2 0x30010
#define FT2000_P_3_2 0x3000c
#define FT2000_P1 0x30002
#define FT2000_P0 0x30001
#define RT2000_STATUS 0x4
#define FT2000_POR 0x40080
#define FT2000_FL 0x40040
#define FT2000_ZEROS 0x4003f
#define DTT7600_NBREGS 5
#define DTT7600_NBFIELDS 15
#define RDTT7600_P_DIV1 0x0
#define FDTT7600_FIX 0x80
#define FDTT7600_N_MSB 0x7f
#define RDTT7600_P_DIV2 0x1
#define FDTT7600_N_LSB 0x100ff
#define RDTT7600_CTRL 0x2
#define FDTT7600_ONE 0x20080
#define FDTT7600_CP 0x20040
#define FDTT7600_T 0x20038
#define FDTT7600_RS 0x20006
#define FDTT7600_OS 0x20001
#define RDTT7600_BW_AUX 0x3
#define FDTT7600_ZEROS 0x300f0
#define FDTT7600_P 0x3000f
#define RDTT7600_STATUS 0x4
#define FDTT7600_POR 0x40080
#define FDTT7600_FL 0x40040
#define FDTT7600_ONES 0x40030
#define FDTT7600_AGC 0x40008
#define FDTT7600_A 0x40007
typedef enum
{
TUNER_NO_ERR = 0,
TUNER_TYPE_ERR,
TUNER_ACK_ERR
} SHTUNER_Error_t;
/* 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 */
TUNSHDRV_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 */
SHTUNER_Error_t Error; /* Last Error */
TUNER_Status_t Status;
STTUNER_IOREG_DeviceMap_t DeviceMap; /* Devicemap for tuner registers */
U8 *TunerRegVal;
} TUNSHDRV_InstanceData_t;
/* enumerated types -------------------------------------------------------- */
/* functions --------------------------------------------------------------- */
ST_ErrorCode_t STTUNER_DRV_TUNER_TD1336_Install (STTUNER_tuner_dbase_t *Tuner);
ST_ErrorCode_t STTUNER_DRV_TUNER_TD1336_UnInstall (STTUNER_tuner_dbase_t *Tuner);
ST_ErrorCode_t STTUNER_DRV_TUNER_FQD1236_Install(STTUNER_tuner_dbase_t *Tuner);
ST_ErrorCode_t STTUNER_DRV_TUNER_FQD1236_UnInstall (STTUNER_tuner_dbase_t *Tuner);
ST_ErrorCode_t STTUNER_DRV_TUNER_T2000_Install(STTUNER_tuner_dbase_t *Tuner);
ST_ErrorCode_t STTUNER_DRV_TUNER_T2000_UnInstall (STTUNER_tuner_dbase_t *Tuner);
ST_ErrorCode_t STTUNER_DRV_TUNER_DTT7600_Install(STTUNER_tuner_dbase_t *Tuner);
ST_ErrorCode_t STTUNER_DRV_TUNER_DTT7600_UnInstall (STTUNER_tuner_dbase_t *Tuner);
ST_ErrorCode_t tuner_tunshdrv_SetFrequency (TUNER_Handle_t Handle, U32 Frequency, U32 *NewFrequency);
ST_ErrorCode_t tuner_tunshdrv_GetFrequency (TUNER_Handle_t Handle, U32 *Frequency);
void tuner_tunshdrv_GetProperties (TUNER_Handle_t Handle, void *tnr);
void tuner_tunshdrv_Select (TUNER_Handle_t Handle, STTUNER_TunerType_t type, unsigned char address);
void TunerReadWrite (TUNER_Handle_t Handle, int mode);
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* __STTUNER_SHARED_TUNSHDRV_H */
/* End of tunshdrv.h */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -