2 STV0900/0903 Multistandard Broadcast Frontend driver
3 Copyright (C) Manu Abraham <abraham.manu@gmail.com>
5 Copyright (C) ST Microelectronics
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.
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.
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.
25 enum stv090x_demodulator
{
26 STV090x_DEMODULATOR_0
= 1,
41 STV090x_TSMODE_SERIAL_PUNCTURED
= 1,
42 STV090x_TSMODE_SERIAL_CONTINUOUS
,
43 STV090x_TSMODE_PARALLEL_PUNCTURED
,
47 enum stv090x_clkmode
{
48 STV090x_CLK_INT
= 0, /* Clk i/p = CLKI */
49 STV090x_CLK_EXT
= 2 /* Clk i/p = XTALI */
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,
63 struct stv090x_config
{
64 enum stv090x_device device
;
65 enum stv090x_mode demod_mode
;
66 enum stv090x_clkmode clk_mode
;
68 u32 xtal
; /* default: 8000000 */
69 u8 address
; /* default: 0x68 */
71 u32 ref_clk
; /* default: 16000000 FIXME to tuner config */
76 enum stv090x_i2crpt repeater_level
;
78 int (*tuner_init
) (struct dvb_frontend
*fe
);
79 int (*tuner_set_mode
) (struct dvb_frontend
*fe
, enum tuner_mode mode
);
80 int (*tuner_set_frequency
) (struct dvb_frontend
*fe
, u32 frequency
);
81 int (*tuner_get_frequency
) (struct dvb_frontend
*fe
, u32
*frequency
);
82 int (*tuner_set_bandwidth
) (struct dvb_frontend
*fe
, u32 bandwidth
);
83 int (*tuner_get_bandwidth
) (struct dvb_frontend
*fe
, u32
*bandwidth
);
84 int (*tuner_set_bbgain
) (struct dvb_frontend
*fe
, u32 gain
);
85 int (*tuner_get_bbgain
) (struct dvb_frontend
*fe
, u32
*gain
);
86 int (*tuner_set_refclk
) (struct dvb_frontend
*fe
, u32 refclk
);
87 int (*tuner_get_status
) (struct dvb_frontend
*fe
, u32
*status
);
90 #if defined(CONFIG_DVB_STV090x) || (defined(CONFIG_DVB_STV090x_MODULE) && defined(MODULE))
92 extern struct dvb_frontend
*stv090x_attach(const struct stv090x_config
*config
,
93 struct i2c_adapter
*i2c
,
94 enum stv090x_demodulator demod
);
97 static inline struct dvb_frontend
*stv090x_attach(const struct stv090x_config
*config
,
98 struct i2c_adapter
*i2c
,
99 enum stv090x_demodulator demod
)
101 printk(KERN_WARNING
"%s: driver disabled by Kconfig\n", __func__
);
104 #endif /* CONFIG_DVB_STV090x */
106 #endif /* __STV090x_H */