]>
Commit | Line | Data |
---|---|---|
d8667cbb | 1 | /* |
1963c907 | 2 | * Support for LGDT3302 and LGDT3303 - VSB/QAM |
d8667cbb MM |
3 | * |
4 | * Copyright (C) 2005 Wilson Michaels <wilsonmichaels@earthlink.net> | |
5 | * | |
6 | * This program is free software; you can redistribute it and/or modify | |
7 | * it under the terms of the GNU General Public License as published by | |
8 | * the Free Software Foundation; either version 2 of the License, or | |
9 | * (at your option) any later version. | |
10 | * | |
11 | * This program is distributed in the hope that it will be useful, | |
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
14 | * GNU General Public License for more details. | |
15 | * | |
16 | * You should have received a copy of the GNU General Public License | |
17 | * along with this program; if not, write to the Free Software | |
18 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | |
19 | * | |
20 | */ | |
21 | ||
6ddcc919 MK |
22 | #ifndef LGDT330X_H |
23 | #define LGDT330X_H | |
d8667cbb MM |
24 | |
25 | #include <linux/dvb/frontend.h> | |
26 | ||
1963c907 MK |
27 | typedef enum lg_chip_t { |
28 | UNDEFINED, | |
29 | LGDT3302, | |
30 | LGDT3303 | |
31 | }lg_chip_type; | |
32 | ||
6ddcc919 | 33 | struct lgdt330x_config |
d8667cbb MM |
34 | { |
35 | /* The demodulator's i2c address */ | |
36 | u8 demod_address; | |
b6aef071 | 37 | |
1963c907 MK |
38 | /* LG demodulator chip LGDT3302 or LGDT3303 */ |
39 | lg_chip_type demod_chip; | |
40 | ||
41 | /* MPEG hardware interface - 0:parallel 1:serial */ | |
42 | int serial_mpeg; | |
43 | ||
b6aef071 | 44 | /* PLL interface */ |
0ccef6db | 45 | int (*pll_rf_set) (struct dvb_frontend* fe, int index); |
d8667cbb MM |
46 | |
47 | /* Need to set device param for start_dma */ | |
48 | int (*set_ts_params)(struct dvb_frontend* fe, int is_punctured); | |
c0b11b91 MK |
49 | |
50 | /* Flip the polarity of the mpeg data transfer clock using alternate init data | |
51 | * This option applies ONLY to LGDT3303 - 0:disabled (default) 1:enabled */ | |
52 | int clock_polarity_flip; | |
d8667cbb MM |
53 | }; |
54 | ||
9b174527 | 55 | #if IS_REACHABLE(CONFIG_DVB_LGDT330X) |
6ddcc919 | 56 | extern struct dvb_frontend* lgdt330x_attach(const struct lgdt330x_config* config, |
d8667cbb | 57 | struct i2c_adapter* i2c); |
102a342b AQ |
58 | #else |
59 | static inline struct dvb_frontend* lgdt330x_attach(const struct lgdt330x_config* config, | |
60 | struct i2c_adapter* i2c) | |
61 | { | |
271ddbf7 | 62 | printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); |
102a342b AQ |
63 | return NULL; |
64 | } | |
65 | #endif // CONFIG_DVB_LGDT330X | |
d8667cbb | 66 | |
6ddcc919 | 67 | #endif /* LGDT330X_H */ |