Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
drivers
media
dvb-frontends
stv090x.h
Go to the documentation of this file.
1
/*
2
STV0900/0903 Multistandard Broadcast Frontend driver
3
Copyright (C) Manu Abraham <
[email protected]
>
4
5
Copyright (C) ST Microelectronics
6
7
This program is free software; you can redistribute it and/or modify
8
it under the terms of the GNU General Public License as published by
9
the Free Software Foundation; either version 2 of the License, or
10
(at your option) any later version.
11
12
This program is distributed in the hope that it will be useful,
13
but WITHOUT ANY WARRANTY; without even the implied warranty of
14
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
GNU General Public License for more details.
16
17
You should have received a copy of the GNU General Public License
18
along with this program; if not, write to the Free Software
19
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
20
*/
21
22
#ifndef __STV090x_H
23
#define __STV090x_H
24
25
enum
stv090x_demodulator
{
26
STV090x_DEMODULATOR_0
= 1,
27
STV090x_DEMODULATOR_1
28
};
29
30
enum
stv090x_device
{
31
STV0903
= 0,
32
STV0900
,
33
};
34
35
enum
stv090x_mode
{
36
STV090x_DUAL
= 0,
37
STV090x_SINGLE
38
};
39
40
enum
stv090x_tsmode
{
41
STV090x_TSMODE_SERIAL_PUNCTURED
= 1,
42
STV090x_TSMODE_SERIAL_CONTINUOUS
,
43
STV090x_TSMODE_PARALLEL_PUNCTURED
,
44
STV090x_TSMODE_DVBCI
45
};
46
47
enum
stv090x_clkmode
{
48
STV090x_CLK_INT
= 0,
/* Clk i/p = CLKI */
49
STV090x_CLK_EXT
= 2
/* Clk i/p = XTALI */
50
};
51
52
enum
stv090x_i2crpt
{
53
STV090x_RPTLEVEL_256
= 0,
54
STV090x_RPTLEVEL_128
= 1,
55
STV090x_RPTLEVEL_64
= 2,
56
STV090x_RPTLEVEL_32
= 3,
57
STV090x_RPTLEVEL_16
= 4,
58
STV090x_RPTLEVEL_8
= 5,
59
STV090x_RPTLEVEL_4
= 6,
60
STV090x_RPTLEVEL_2
= 7,
61
};
62
63
enum
stv090x_adc_range
{
64
STV090x_ADC_2Vpp
= 0,
65
STV090x_ADC_1Vpp
= 1
66
};
67
68
struct
stv090x_config
{
69
enum
stv090x_device
device
;
70
enum
stv090x_mode
demod_mode
;
71
enum
stv090x_clkmode
clk_mode
;
72
73
u32
xtal
;
/* default: 8000000 */
74
u8
address
;
/* default: 0x68 */
75
76
u8
ts1_mode
;
77
u8
ts2_mode
;
78
u32
ts1_clk
;
79
u32
ts2_clk
;
80
81
u8
ts1_tei
: 1;
82
u8
ts2_tei
: 1;
83
84
enum
stv090x_i2crpt
repeater_level
;
85
86
u8
tuner_bbgain
;
/* default: 10db */
87
enum
stv090x_adc_range
adc1_range
;
/* default: 2Vpp */
88
enum
stv090x_adc_range
adc2_range
;
/* default: 2Vpp */
89
90
bool
diseqc_envelope_mode
;
91
92
int
(*
tuner_init
) (
struct
dvb_frontend
*fe);
93
int
(*
tuner_sleep
) (
struct
dvb_frontend
*fe);
94
int
(*
tuner_set_mode
) (
struct
dvb_frontend
*fe,
enum
tuner_mode
mode
);
95
int
(*
tuner_set_frequency
) (
struct
dvb_frontend
*fe,
u32
frequency
);
96
int
(*
tuner_get_frequency
) (
struct
dvb_frontend
*fe,
u32
*
frequency
);
97
int
(*
tuner_set_bandwidth
) (
struct
dvb_frontend
*fe,
u32
bandwidth
);
98
int
(*
tuner_get_bandwidth
) (
struct
dvb_frontend
*fe,
u32
*
bandwidth
);
99
int
(*
tuner_set_bbgain
) (
struct
dvb_frontend
*fe,
u32
gain
);
100
int
(*
tuner_get_bbgain
) (
struct
dvb_frontend
*fe,
u32
*
gain
);
101
int
(*
tuner_set_refclk
) (
struct
dvb_frontend
*fe,
u32
refclk);
102
int
(*
tuner_get_status
) (
struct
dvb_frontend
*fe,
u32
*
status
);
103
void
(*
tuner_i2c_lock
) (
struct
dvb_frontend
*fe,
int
lock
);
104
};
105
106
#if defined(CONFIG_DVB_STV090x) || (defined(CONFIG_DVB_STV090x_MODULE) && defined(MODULE))
107
108
extern
struct
dvb_frontend
*
stv090x_attach
(
const
struct
stv090x_config
*
config
,
109
struct
i2c_adapter
*i2c,
110
enum
stv090x_demodulator
demod);
111
112
/* dir = 0 -> output, dir = 1 -> input/open-drain */
113
extern
int
stv090x_set_gpio
(
struct
dvb_frontend
*fe,
u8
gpio
,
114
u8
dir,
u8
value
,
u8
xor_value);
115
116
#else
117
118
static
inline
struct
dvb_frontend
*
stv090x_attach
(
const
struct
stv090x_config
*
config
,
119
struct
i2c_adapter
*i2c,
120
enum
stv090x_demodulator
demod)
121
{
122
printk
(
KERN_WARNING
"%s: driver disabled by Kconfig\n"
, __func__);
123
return
NULL
;
124
}
125
126
static
inline
int
stv090x_set_gpio
(
struct
dvb_frontend
*fe,
u8
gpio
,
127
u8
opd,
u8
value
,
u8
xor_value)
128
{
129
printk
(
KERN_WARNING
"%s: driver disabled by Kconfig\n"
, __func__);
130
return
-
ENODEV
;
131
}
132
#endif
/* CONFIG_DVB_STV090x */
133
134
#endif
/* __STV090x_H */
Generated on Thu Jan 10 2013 13:46:05 for Linux Kernel by
1.8.2