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

📄 tunshdrv.h

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