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

📄 tuntdrv.h

📁 st7710的tuner标准驱动
💻 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 + -