1 | /* SPDX-License-Identifier: GPL-2.0-or-later */ |
2 | /* |
3 | TDA10021/TDA10023 - Single Chip Cable Channel Receiver driver module |
4 | used on the Siemens DVB-C cards |
5 | |
6 | Copyright (C) 1999 Convergence Integrated Media GmbH <ralph@convergence.de> |
7 | Copyright (C) 2004 Markus Schulz <msc@antzsystem.de> |
8 | Support for TDA10021 |
9 | |
10 | */ |
11 | |
12 | #ifndef TDA1002x_H |
13 | #define TDA1002x_H |
14 | |
15 | #include <linux/dvb/frontend.h> |
16 | |
17 | struct tda1002x_config { |
18 | /* the demodulator's i2c address */ |
19 | u8 demod_address; |
20 | u8 invert; |
21 | }; |
22 | |
23 | enum tda10023_output_mode { |
24 | TDA10023_OUTPUT_MODE_PARALLEL_A = 0xe0, |
25 | TDA10023_OUTPUT_MODE_PARALLEL_B = 0xa1, |
26 | TDA10023_OUTPUT_MODE_PARALLEL_C = 0xa0, |
27 | TDA10023_OUTPUT_MODE_SERIAL, /* TODO: not implemented */ |
28 | }; |
29 | |
30 | struct tda10023_config { |
31 | /* the demodulator's i2c address */ |
32 | u8 demod_address; |
33 | u8 invert; |
34 | |
35 | /* clock settings */ |
36 | u32 xtal; /* defaults: 28920000 */ |
37 | u8 pll_m; /* defaults: 8 */ |
38 | u8 pll_p; /* defaults: 4 */ |
39 | u8 pll_n; /* defaults: 1 */ |
40 | |
41 | /* MPEG2 TS output mode */ |
42 | u8 output_mode; |
43 | |
44 | /* input freq offset + baseband conversion type */ |
45 | u16 deltaf; |
46 | }; |
47 | |
48 | #if IS_REACHABLE(CONFIG_DVB_TDA10021) |
49 | extern struct dvb_frontend* tda10021_attach(const struct tda1002x_config* config, |
50 | struct i2c_adapter* i2c, u8 pwm); |
51 | #else |
52 | static inline struct dvb_frontend* tda10021_attach(const struct tda1002x_config* config, |
53 | struct i2c_adapter* i2c, u8 pwm) |
54 | { |
55 | printk(KERN_WARNING "%s: driver disabled by Kconfig\n" , __func__); |
56 | return NULL; |
57 | } |
58 | #endif // CONFIG_DVB_TDA10021 |
59 | |
60 | #if IS_REACHABLE(CONFIG_DVB_TDA10023) |
61 | extern struct dvb_frontend *tda10023_attach( |
62 | const struct tda10023_config *config, |
63 | struct i2c_adapter *i2c, u8 pwm); |
64 | #else |
65 | static inline struct dvb_frontend *tda10023_attach( |
66 | const struct tda10023_config *config, |
67 | struct i2c_adapter *i2c, u8 pwm) |
68 | { |
69 | printk(KERN_WARNING "%s: driver disabled by Kconfig\n" , __func__); |
70 | return NULL; |
71 | } |
72 | #endif // CONFIG_DVB_TDA10023 |
73 | |
74 | #endif // TDA1002x_H |
75 | |