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

📄 tuner.h

📁 STV0299 Minituner driver, for ST chipset
💻 H
字号:
#ifndef H_TUNER
	#define H_TUNER
	
	#include "chip.h"
	
	/* sharp VG0011 tuner definition */
	/*	DIVM	*/
	#define RVG0011_DIVM		0
	#define FVG0011_N_MSB		0

	/*	DIVL	*/
	#define RVG0011_DIVL		1
	#define FVG0011_N_LSB		1
	#define FVG0011_A		2

	/*	CTRL1	*/
	#define RVG0011_CTRL1		2
	#define FVG0011_N_HSB		3
	#define FVG0011_R		4

	/*	CTRL2	*/
	#define RVG0011_CTRL2		3
	#define FVG0011_CP		5
	#define FVG0011_P3		6
	#define FVG0011_P2		7
	#define FVG0011_P1		8
	#define FVG0011_P0		9

	/*	STATUS	*/
	#define RVG0011_STATUS		4
	#define FVG0011_POR		10
	#define FVG0011_LOCK		11
	#define FVG0011_MA		12
	
	#define VG0011_NBREGS	5
	#define VG0011_NBFIELDS	13
	
	/* sharp HZ1184_ tuner definition */
	/*	DIVM	*/
	#define RHZ1184_DIVM		0
	#define FHZ1184_N_MSB		0

	/*	DIVL	*/
	#define RHZ1184_DIVL		1
	#define FHZ1184_N_LSB		1
	#define FHZ1184_A		2

	/*	CTRL1	*/
	#define RHZ1184_CTRL1		2
	#define FHZ1184_N_HSB		3
	#define FHZ1184_PD5		4
	#define FHZ1184_PD4		5
	#define FHZ1184_R		6

	/*	CTRL2	*/
	#define RHZ1184_CTRL2		3
	#define FHZ1184_CP		7
	#define FHZ1184_RE		8
	#define FHZ1184_RTS		9
	#define FHZ1184_PD3		10
	#define FHZ1184_PD2		11
	#define FHZ1184_PD1		12
	#define FHZ1184_PD0		13

	/*	STATUS	*/
	#define RHZ1184_STATUS		4
	#define FHZ1184_POR		14
	#define FHZ1184_LOCK		15
	#define FHZ1184_MA		16
	
	#define HZ1184_NBREGS	5
	#define HZ1184_NBFIELDS	17
	
	/* Maxim 2116 tuner definition */      
	/*	SUBADR	*/
	#define RMAX2116_SUBADR		0
	#define FMAX2116_SUBADR		0

	/*	NHIGH	*/
	#define RMAX2116_NHIGH		1
	#define FMAX2116_DIV2		1
	#define FMAX2116_N_MSB		2

	/*	NLOW	*/
	#define RMAX2116_NLOW		2
	#define FMAX2116_N_LSB		3

	/*	R_CP_VCO	*/
	#define RMAX2116_R_CP_VCO		3
	#define FMAX2116_R		4
	#define FMAX2116_CP		5
	#define FMAX2116_VCO		6

	/*	FILT_OUT	*/
	#define RMAX2116_FILT_OUT		4
	#define FMAX2116_F_OUT		7

	/*	LPF_DAC	*/
	#define RMAX2116_LPF_DAC		5
	#define FMAX2116_ADL		8
	#define FMAX2116_ADE		9
	#define FMAX2116_DL		10
	#define FMAX2116_M		11

	/*	GC2_DIAG	*/
	#define RMAX2116_GC2_DIAG		6
	#define FMAX2116_D		12
	#define FMAX2116_G		13

	/*	STATUS	*/
	#define RMAX2116_STATUS		7
	#define FMAX2116_PWR		14
	#define FMAX2116_ADC		15

	/*	FILT_IN	*/
	#define RMAX2116_FILT_IN		8
	#define FMAX2116_F_IN		16
	
	#define MAX2116_NBREGS	9
	#define MAX2116_NBFIELDS	17
	
	/* SU1200 tuner definition */
	/*	DIVM	*/
	#define RSU1200_DIVM		0
	#define FSU1200_DIVM7		0
	#define FSU1200_N_MSB		1

	/*	DIVL	*/
	#define RSU1200_DIVL		1
	#define FSU1200_N_LSB		2

	/*	CTRL1	*/
	#define RSU1200_CTRL1		2
	#define FSU1200_CTRL1_7		3
	#define FSU1200_N_HSB		4
	#define FSU1200_PE		5
	#define FSU1200_R		6

	/*	CTRL2	*/
	#define RSU1200_CTRL2		3
	#define FSU1200_C		7
	#define FSU1200_XCE		8
	#define FSU1200_XCS		9
	#define FSU1200_P3		10
	#define FSU1200_P2		11
	#define FSU1200_P1		12
	#define FSU1200_P0		13

	/*	STATUS	*/
	#define RSU1200_STATUS		4
	#define FSU1200_POR		14
	#define FSU1200_LOCK		15
	#define FSU1200_I		16
	#define FSU1200_A		17
	
	#define SU1200_NBREGS	5
	#define SU1200_NBFIELDS	18
	
	/* TBMU301 tuner definition */
	/*	DIVM	*/
	#define RTBMU301_DIVM		0
	#define FTBMU301_DIVM7		0
	#define FTBMU301_N_MSB		1

	/*	DIVL	*/
	#define RTBMU301_DIVL		1
	#define FTBMU301_N_LSB		2

	/*	CTRL1	*/
	#define RTBMU301_CTRL1		2
	#define FTBMU301_CTRL1_7		3
	#define FTBMU301_N_HSB		4
	#define FTBMU301_PE		5
	#define FTBMU301_R		6

	/*	CTRL2	*/
	#define RTBMU301_CTRL2		3
	#define FTBMU301_C		7
	#define FTBMU301_XCE		8
	#define FTBMU301_XCS		9
	#define FTBMU301_P3		10
	#define FTBMU301_P2		11
	#define FTBMU301_P1		12
	#define FTBMU301_P0		13

	/*	STATUS	*/
	#define RTBMU301_STATUS		4
	#define FTBMU301_POR		14
	#define FTBMU301_LOCK		15
	#define FTBMU301_I		16
	#define FTBMU301_A		17
	
	#define TBMU301_NBREGS	5
	#define TBMU301_NBFIELDS	18
	
	/* Sharp IX2410 tuner definition */      
	/*	NHIGH	*/
	#define RIX2410_NHIGH		0
	#define FIX2410_N_MSB		0

	/*	NLOW_SDIV	*/
	#define RIX2410_NLOW_SDIV		1
	#define FIX2410_N_LSB		1
	#define FIX2410_SDIV		    2

	/*	CP_LPF_R	*/
	#define RIX2410_CP_LPF_R		2
	#define FIX2410_CP		3
	#define FIX2410_PD5		4
	#define FIX2410_PD4		5
	#define FIX2410_TM		6
	#define FIX2410_R		7

	/*	VCO_LPF	*/
	#define RIX2410_VCO_LPF		3
	#define FIX2410_VCO		8
	#define FIX2410_RTS		9
	#define FIX2410_PD3		10
	#define FIX2410_PD2		11
	#define FIX2410_DIV		12
	#define FIX2410_P0		13

	/*	STATUS	*/
	#define RIX2410_STATUS		4
	#define FIX2410_PWR		14
	#define FIX2410_FL		15

	#define IX2410_NBREGS	5
	#define IX2410_NBFIELDS	16
	
	/* RFMagic STB6000 tuner definition */  
	/*	SUBADR	*/
	/*	SUBADR	*/
	#define RSTB6000_SUBADR		0
	#define FSTB6000_SUBADR		0

	/*	ODIV	*/
	#define RSTB6000_ODIV		1
	#define FSTB6000_OSCH		1
	#define FSTB6000_OCK		2
	#define FSTB6000_ODIV		3
	#define FSTB6000_OSM		4

	/*	N	*/
	#define RSTB6000_N		2
	#define FSTB6000_N_MSB		5

	/*	CP_A	*/
	#define RSTB6000_CP_A		3
	#define FSTB6000_N_LSB		6
	#define FSTB6000_A		7

	/*	K_R	*/
	#define RSTB6000_K_R		4
	#define FSTB6000_K		8
	#define FSTB6000_R		9

	/*	G	*/
	#define RSTB6000_G		5
	#define FSTB6000_G		10

	/*	F	*/
	#define RSTB6000_F		6
	#define FSTB6000_F		11

	/*	FCL	*/
	#define RSTB6000_FCL		7
	#define FSTB6000_DLB		12
	#define FSTB6000_FCL		13

	/*	TEST1	*/
	#define RSTB6000_TEST1		8
	#define FSTB6000_TEST1		14

	/*	TEST2	*/
	#define RSTB6000_TEST2		9
	#define FSTB6000_TEST2		15

	/*	LPEN	*/
	#define RSTB6000_LPEN		10
	#define FSTB6000_LPEN		16

	/*	XOG	*/
	#define RSTB6000_XOG		11
	#define FSTB6000_XOG		17
	#define FSTB6000_XOGV		18

	/*	LD	*/
	#define RSTB6000_LD		12
	#define FSTB6000_LD		19
	
	#define STB6000_NBREGS	13
	#define STB6000_NBFIELDS	20
	
	/* RFMagic STB6100 tuner definition */ 	
	/*	SUBADR	*/
	/*	LD	*/
	#define RSTB6100_LD		0
	#define FSTB6100_LD		0

	/*	VCO	*/
	#define RSTB6100_VCO		1
	#define FSTB6100_OSCH		1
	#define FSTB6100_OCK		2
	#define FSTB6100_ODIV		3
	#define FSTB6100_OSM		4

	/*	NI	*/
	#define RSTB6100_NI		2
	#define FSTB6100_NI		5

	/*	NF_LSB	*/
	#define RSTB6100_NF_LSB		3
	#define FSTB6100_NF_LSB		6

	/*	K	*/
	#define RSTB6100_K		4
	#define FSTB6100_K		7
	#define FSTB6100_PSD2		8
	#define FSTB6100_NF_MSB		9

	/*	G	*/
	#define RSTB6100_G		5
	#define FSTB6100_GCT		10
	#define FSTB6100_G		11

	/*	F	*/
	#define RSTB6100_F		6
	#define FSTB6100_F		12

	/*	DLB	*/
	#define RSTB6100_DLB		7
	#define FSTB6100_DLB		13

	/*	TEST1	*/
	#define RSTB6100_TEST1		8
	#define FSTB6100_TEST1		14

	/*	TEST2	*/
	#define RSTB6100_TEST2		9
	#define FSTB6100_FCCK		15

	/*	LPEN	*/
	#define RSTB6100_LPEN		10
	#define FSTB6100_BEN		16
	#define FSTB6100_OSCP		17
	#define FSTB6100_SYNP		18
	#define FSTB6100_LPEN		19

	/*	TEST3	*/
	#define RSTB6100_TEST3		11
	#define FSTB6100_TEST3		20

	
	#define STB6100_NBREGS	12
	#define STB6100_NBFIELDS	21
	
	
	/* Tuner Sat definition */
	/*	TUNING_LSB	*/
	#define RTUNERSAT_TUNING_LSB		0
	#define FTUNERSAT_N_LSB		0

	/*	TUNING_MSB	*/
	#define RTUNERSAT_TUNING_MSB		1
	#define FTUNERSAT_RDIV		1
	#define FTUNERSAT_ODIV		2
	#define FTUNERSAT_N_MSB		3

	/*	CONTROL1	*/
	#define RTUNERSAT_CONTROL1		2
	#define FTUNERSAT_CALVCOSTRT		4
	#define FTUNERSAT_DIV4SEL		5
	#define FTUNERSAT_PRESC32ON		6
	#define FTUNERSAT_CF		7

	/*	CONTROL2	*/
	#define RTUNERSAT_CONTROL2		3
	#define FTUNERSAT_LCP		8
	#define FTUNERSAT_XTALOUT		9
	#define FTUNERSAT_XTALON		10
	#define FTUNERSAT_CALOFF		11
	#define FTUNERSAT_LPT		12
	#define FTUNERSAT_RX		13
	#define FTUNERSAT_SYN		14

	/*	CONTROL3	*/
	#define RTUNERSAT_CONTROL3		4
	#define FTUNERSAT_DIVTEST		15
	#define FTUNERSAT_CPTEST		16
	#define FTUNERSAT_BBGAIN		17

	/*	STATUS1	*/
	#define RTUNERSAT_STATUS1		5
	#define FTUNERSAT_COMP		18
	#define FTUNERSAT_SEL		19
	#define FTUNERSAT_LOCK		20

	/*	STATUS2	*/
	#define RTUNERSAT_STATUS2		6
	#define FTUNERSAT_RON		21
	#define FTUNERSAT_RCCA_LOFF		22
	#define FTUNERSAT_RC		23

	/*	STATUS3	*/
	#define RTUNERSAT_STATUS3		7
	#define FTUNERSAT_RDK		24
	#define FTUNERSAT_CALTIME		25
	#define FTUNERSAT_CALRC_STRT		26
	
	#define TUNERSAT_NBREGS	8
	#define TUNERSAT_NBFIELDS	27	
	
	/* sharp IX2476 tuner definition */
	/*	NHIGH	*/
	#define RIX2476_NHIGH		0
	#define FIX2476_BG		0
	#define FIX2476_N_MSB		1

	/*	NLOW_SDIV	*/
	#define RIX2476_NLOW_SDIV		1
	#define FIX2476_N_LSB		2
	#define FIX2476_A		3

	/*	CP_LPF_R	*/
	#define RIX2476_CP_LPF_R		2
	#define FIX2476_CP		4
	#define FIX2476_PD5		5
	#define FIX2476_PD4		6
	#define FIX2476_TM		7
	#define FIX2476_RTS		8
	#define FIX2476_REF		9

	/*	VCO_LPF	*/
	#define RIX2476_VCO_LPF		3
	#define FIX2476_VCO		10
	#define FIX2476_PSC		11
	#define FIX2476_PD3		12
	#define FIX2476_PD2		13
	#define FIX2476_DIV		14
	#define FIX2476_P0		15

	/*	STATUS	*/
	#define RIX2476_STATUS		4
	#define FIX2476_PWR		16
	#define FIX2476_FL		17
	
	#define IX2476_NBREGS	5
	#define IX2476_NBFIELDS	18	
	
	typedef enum
	{
		TUNER_NO_ERR = 0,
		TUNER_TYPE_ERR,
		TUNER_ACK_ERR
	} TUNER_Error_t;
	
	/* structures -------------------------------------------------------------- */
	typedef enum
	{
		TUNER_NULL = 0,		/* unknown tuner */
		TUNER_VG0011,		/* sharp VG0011 tuner */
		TUNER_HZ1184,		/* sharp HZ1184 nim module */
		TUNER_MAX2116,		/* maxim 2116 tuner */
		TUNER_SU1200,		/* philips SU1200 nim module */  
		TUNER_TBMU301,		/* samsung TBMU301 nim module */
		TUNER_IX2410,		/* Sharp IX2410 tuner */    
		TUNER_STB6000,		/* RF magic STB6000 tuner */
		TUNER_STB6100,		/* RF magic STB6100 tuner */
		TUNER_IX2476		/* sharp IX2476 tuner */
	}
	TUNER_Model_t;
	
	typedef enum
	{
		TUNER_IQ_NORMAL = 1,
		TUNER_IQ_INVERT = -1
	}
	TUNER_IQ_t;

    typedef struct
    {
    	TUNER_Model_t	Model;    	/* Tuner model */
        U32				Reference;	/* reference frequency (Hz) */ 
        U32				IF;       	/* Intermediate frequency (KHz) */
        TUNER_IQ_t		IQ_Wiring; 	/* hardware I/Q invertion */
    } 
    TUNER_InitParams_t;
    
    typedef TUNER_InitParams_t *TUNER_Params_t;

	/* functions --------------------------------------------------------------- */

	STCHIP_Handle_t TunerInit(TUNER_Model_t Model,char *TunerName,U8 TunerI2cAddress,STCHIP_Handle_t RepeaterHost);
	TUNER_Error_t	TunerSetFrequency(STCHIP_Handle_t hChip,U32 Frequency);
	U32				TunerGetFrequency(STCHIP_Handle_t hChip); 
	TUNER_Error_t	TunerSetBandwidth(STCHIP_Handle_t hChip,U32 Bandwidth);
	U32				TunerGetBandwidth(STCHIP_Handle_t hChip);
	TUNER_Model_t	TunerGetModel(STCHIP_Handle_t hChip);  
	void			TunerSetIQ_Wiring(STCHIP_Handle_t hChip, TUNER_IQ_t IQ_Wiring);
	TUNER_IQ_t		TunerGetIQ_Wiring(STCHIP_Handle_t hChip);
	void			TunerSetReferenceFreq(STCHIP_Handle_t hChip, U32 Reference);
	U32				TunerGetReferenceFreq(STCHIP_Handle_t hChip);
	void			TunerSetIF_Freq(STCHIP_Handle_t hChip, U32 IF);
	U32				TunerGetIF_Freq(STCHIP_Handle_t hChip);
	BOOL			TunerGetStatus(STCHIP_Handle_t hChip);
	TUNER_Error_t	TunerWrite(STCHIP_Handle_t hChip); 
	TUNER_Error_t	TunerRead(STCHIP_Handle_t hChip);
	TUNER_Error_t	TunerTerm(STCHIP_Handle_t hChip);
#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -