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> 21 #include "dvb_frontend.h" 22 #include "tda18271.h" 23 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 31 struct tda829x_config { 32 enum tda8290_lna lna_cfg; 33 34 unsigned int probe_tuner:1; 35 #define TDA829X_PROBE_TUNER 0 36 #define TDA829X_DONT_PROBE 1 37 unsigned int no_i2c_gate:1; 38 struct tda18271_std_map *tda18271_std_map; 39 }; 40 41 #if IS_ENABLED(CONFIG_MEDIA_TUNER_TDA8290) 42 extern int tda829x_probe(struct i2c_adapter *i2c_adap, u8 i2c_addr); 43 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); 48 #else 49 static inline int tda829x_probe(struct i2c_adapter *i2c_adap, u8 i2c_addr) 50 { 51 printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); 52 return -EINVAL; 53 } 54 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) 59 { 60 printk(KERN_INFO "%s: not probed - driver disabled by Kconfig\n", 61 __func__); 62 return NULL; 63 } 64 #endif 65 66 #endif /* __TDA8290_H__ */ 67