diff options
Diffstat (limited to 'drivers/media/dvb-frontends/tda1002x.h')
-rw-r--r-- | drivers/media/dvb-frontends/tda1002x.h | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/drivers/media/dvb-frontends/tda1002x.h b/drivers/media/dvb-frontends/tda1002x.h new file mode 100644 index 000000000000..04d19418bf20 --- /dev/null +++ b/drivers/media/dvb-frontends/tda1002x.h | |||
@@ -0,0 +1,87 @@ | |||
1 | /* | ||
2 | TDA10021/TDA10023 - Single Chip Cable Channel Receiver driver module | ||
3 | used on the the Siemens DVB-C cards | ||
4 | |||
5 | Copyright (C) 1999 Convergence Integrated Media GmbH <ralph@convergence.de> | ||
6 | Copyright (C) 2004 Markus Schulz <msc@antzsystem.de> | ||
7 | Support for TDA10021 | ||
8 | |||
9 | This program is free software; you can redistribute it and/or modify | ||
10 | it under the terms of the GNU General Public License as published by | ||
11 | the Free Software Foundation; either version 2 of the License, or | ||
12 | (at your option) any later version. | ||
13 | |||
14 | This program is distributed in the hope that it will be useful, | ||
15 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
17 | GNU General Public License for more details. | ||
18 | |||
19 | You should have received a copy of the GNU General Public License | ||
20 | along with this program; if not, write to the Free Software | ||
21 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
22 | */ | ||
23 | |||
24 | #ifndef TDA1002x_H | ||
25 | #define TDA1002x_H | ||
26 | |||
27 | #include <linux/dvb/frontend.h> | ||
28 | |||
29 | struct tda1002x_config { | ||
30 | /* the demodulator's i2c address */ | ||
31 | u8 demod_address; | ||
32 | u8 invert; | ||
33 | }; | ||
34 | |||
35 | enum tda10023_output_mode { | ||
36 | TDA10023_OUTPUT_MODE_PARALLEL_A = 0xe0, | ||
37 | TDA10023_OUTPUT_MODE_PARALLEL_B = 0xa1, | ||
38 | TDA10023_OUTPUT_MODE_PARALLEL_C = 0xa0, | ||
39 | TDA10023_OUTPUT_MODE_SERIAL, /* TODO: not implemented */ | ||
40 | }; | ||
41 | |||
42 | struct tda10023_config { | ||
43 | /* the demodulator's i2c address */ | ||
44 | u8 demod_address; | ||
45 | u8 invert; | ||
46 | |||
47 | /* clock settings */ | ||
48 | u32 xtal; /* defaults: 28920000 */ | ||
49 | u8 pll_m; /* defaults: 8 */ | ||
50 | u8 pll_p; /* defaults: 4 */ | ||
51 | u8 pll_n; /* defaults: 1 */ | ||
52 | |||
53 | /* MPEG2 TS output mode */ | ||
54 | u8 output_mode; | ||
55 | |||
56 | /* input freq offset + baseband conversion type */ | ||
57 | u16 deltaf; | ||
58 | }; | ||
59 | |||
60 | #if defined(CONFIG_DVB_TDA10021) || (defined(CONFIG_DVB_TDA10021_MODULE) && defined(MODULE)) | ||
61 | extern struct dvb_frontend* tda10021_attach(const struct tda1002x_config* config, | ||
62 | struct i2c_adapter* i2c, u8 pwm); | ||
63 | #else | ||
64 | static inline struct dvb_frontend* tda10021_attach(const struct tda1002x_config* config, | ||
65 | struct i2c_adapter* i2c, u8 pwm) | ||
66 | { | ||
67 | printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); | ||
68 | return NULL; | ||
69 | } | ||
70 | #endif // CONFIG_DVB_TDA10021 | ||
71 | |||
72 | #if defined(CONFIG_DVB_TDA10023) || \ | ||
73 | (defined(CONFIG_DVB_TDA10023_MODULE) && defined(MODULE)) | ||
74 | extern struct dvb_frontend *tda10023_attach( | ||
75 | const struct tda10023_config *config, | ||
76 | struct i2c_adapter *i2c, u8 pwm); | ||
77 | #else | ||
78 | static inline struct dvb_frontend *tda10023_attach( | ||
79 | const struct tda10023_config *config, | ||
80 | struct i2c_adapter *i2c, u8 pwm) | ||
81 | { | ||
82 | printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); | ||
83 | return NULL; | ||
84 | } | ||
85 | #endif // CONFIG_DVB_TDA10023 | ||
86 | |||
87 | #endif // TDA1002x_H | ||