Commit | Line | Data |
---|---|---|
910bb3e3 MK |
1 | /* |
2 | This program is free software; you can redistribute it and/or modify | |
3 | it under the terms of the GNU General Public License as published by | |
4 | the Free Software Foundation; either version 2 of the License, or | |
5 | (at your option) any later version. | |
6 | ||
7 | This program is distributed in the hope that it will be useful, | |
8 | but WITHOUT ANY WARRANTY; without even the implied warranty of | |
9 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
10 | GNU General Public License for more details. | |
11 | ||
12 | You should have received a copy of the GNU General Public License | |
13 | along with this program; if not, write to the Free Software | |
14 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | |
15 | */ | |
16 | ||
17 | #ifndef __TDA8290_H__ | |
18 | #define __TDA8290_H__ | |
19 | ||
20 | #include <linux/i2c.h> | |
fada1935 | 21 | #include <media/dvb_frontend.h> |
5b0e5350 | 22 | #include "tda18271.h" |
ab166050 | 23 | |
1bacb2df OZ |
24 | enum tda8290_lna { |
25 | TDA8290_LNA_OFF = 0, | |
26 | TDA8290_LNA_GP0_HIGH_ON = 1, | |
27 | TDA8290_LNA_GP0_HIGH_OFF = 2, | |
28 | TDA8290_LNA_ON_BRIDGE = 3, | |
29 | }; | |
30 | ||
2dcf84b3 | 31 | struct tda829x_config { |
1bacb2df | 32 | enum tda8290_lna lna_cfg; |
c9076279 MK |
33 | |
34 | unsigned int probe_tuner:1; | |
35 | #define TDA829X_PROBE_TUNER 0 | |
36 | #define TDA829X_DONT_PROBE 1 | |
2f719f7a | 37 | unsigned int no_i2c_gate:1; |
5b0e5350 | 38 | struct tda18271_std_map *tda18271_std_map; |
ab166050 | 39 | }; |
910bb3e3 | 40 | |
9b174527 | 41 | #if IS_REACHABLE(CONFIG_MEDIA_TUNER_TDA8290) |
ab166050 | 42 | extern int tda829x_probe(struct i2c_adapter *i2c_adap, u8 i2c_addr); |
ca805d57 | 43 | |
ab166050 MK |
44 | extern struct dvb_frontend *tda829x_attach(struct dvb_frontend *fe, |
45 | struct i2c_adapter *i2c_adap, | |
46 | u8 i2c_addr, | |
47 | struct tda829x_config *cfg); | |
ca805d57 | 48 | #else |
ab166050 | 49 | static inline int tda829x_probe(struct i2c_adapter *i2c_adap, u8 i2c_addr) |
ca805d57 | 50 | { |
7e28adb2 | 51 | printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); |
ca805d57 MK |
52 | return -EINVAL; |
53 | } | |
54 | ||
ab166050 MK |
55 | static inline struct dvb_frontend *tda829x_attach(struct dvb_frontend *fe, |
56 | struct i2c_adapter *i2c_adap, | |
57 | u8 i2c_addr, | |
58 | struct tda829x_config *cfg) | |
5bea1cd3 MK |
59 | { |
60 | printk(KERN_INFO "%s: not probed - driver disabled by Kconfig\n", | |
7e28adb2 | 61 | __func__); |
ab166050 | 62 | return NULL; |
5bea1cd3 | 63 | } |
ca805d57 | 64 | #endif |
910bb3e3 MK |
65 | |
66 | #endif /* __TDA8290_H__ */ |