summaryrefslogtreecommitdiff
path: root/include/tuner_e4000.h
blob: 5aa71f5cf2e9b768169e84a295bbbf5fabb6492e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
#ifndef __TUNER_E4000_H
#define __TUNER_E4000_H

// Definition (implemeted for E4000)
#define E4000_1_SUCCESS			1
#define E4000_1_FAIL			0
#define E4000_I2C_SUCCESS		1
#define E4000_I2C_FAIL			0

#define E4K_I2C_ADDR		0xc8
#define E4K_CHECK_ADDR		0x02
#define E4K_CHECK_VAL		0x40

// Function (implemeted for E4000)
int
I2CReadByte(void *pTuner,
    unsigned char NoUse,
    unsigned char RegAddr,
    unsigned char *pReadingByte
    );

int
I2CWriteByte(
    void *pTuner,
	unsigned char NoUse,
	unsigned char RegAddr,
	unsigned char WritingByte
	);

int
I2CWriteArray(void *pTuner,
    unsigned char NoUse,
    unsigned char RegStartAddr,
    unsigned char ByteNum,
    unsigned char *pWritingBytes
    );



// Functions (from E4000 source code)
int tunerreset (void *pTuner);
int Tunerclock(void *pTuner);
int Qpeak(void *pTuner);
int DCoffloop(void *pTuner);
int GainControlinit(void *pTuner);

int Gainmanual(void *pTuner);
int E4000_gain_freq(void *pTuner, int frequency);
int PLL(void *pTuner, int Ref_clk, int Freq);
int LNAfilter(void *pTuner, int Freq);
int IFfilter(void *pTuner, int bandwidth, int Ref_clk);
int freqband(void *pTuner, int Freq);
int DCoffLUT(void *pTuner);
int GainControlauto(void *pTuner);

int E4000_sensitivity(void *pTuner, int Freq, int bandwidth);
int E4000_linearity(void *pTuner, int Freq, int bandwidth);
int E4000_high_linearity(void *pTuner);
int E4000_nominal(void *pTuner, int Freq, int bandwidth);


// The following context is E4000 tuner API source code

// Definitions

// Bandwidth in Hz
enum E4000_BANDWIDTH_HZ
{
	E4000_BANDWIDTH_6000000HZ = 6000000,
	E4000_BANDWIDTH_7000000HZ = 7000000,
	E4000_BANDWIDTH_8000000HZ = 8000000,
};


// Manipulaing functions
void
e4000_GetTunerType(
    void *pTuner,
	int *pTunerType
	);

void
e4000_GetDeviceAddr(
    void *pTuner,
	unsigned char *pDeviceAddr
	);

int
e4000_Initialize(
    void *pTuner
	);

int
e4000_SetRfFreqHz(
    void *pTuner,
	unsigned long RfFreqHz
	);

int
e4000_GetRfFreqHz(
    void *pTuner,
	unsigned long *pRfFreqHz
	);





// Extra manipulaing functions
int
e4000_GetRegByte(
    void *pTuner,
	unsigned char RegAddr,
	unsigned char *pReadingByte
	);

int
e4000_SetBandwidthHz(
    void *pTuner,
	unsigned long BandwidthHz
	);

int
e4000_GetBandwidthHz(
    void *pTuner,
	unsigned long *pBandwidthHz
	);

#endif