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 23 struct tda829x_config { 24 unsigned int lna_cfg; 25 26 unsigned int probe_tuner:1; 27 #define TDA829X_PROBE_TUNER 0 28 #define TDA829X_DONT_PROBE 1 29 unsigned int no_i2c_gate:1; 30 }; 31 32 #if IS_ENABLED(CONFIG_MEDIA_TUNER_TDA8290) 33 extern int tda829x_probe(struct i2c_adapter *i2c_adap, u8 i2c_addr); 34 35 extern struct dvb_frontend *tda829x_attach(struct dvb_frontend *fe, 36 struct i2c_adapter *i2c_adap, 37 u8 i2c_addr, 38 struct tda829x_config *cfg); 39 #else 40 static inline int tda829x_probe(struct i2c_adapter *i2c_adap, u8 i2c_addr) 41 { 42 printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); 43 return -EINVAL; 44 } 45 46 static inline struct dvb_frontend *tda829x_attach(struct dvb_frontend *fe, 47 struct i2c_adapter *i2c_adap, 48 u8 i2c_addr, 49 struct tda829x_config *cfg) 50 { 51 printk(KERN_INFO "%s: not probed - driver disabled by Kconfig\n", 52 __func__); 53 return NULL; 54 } 55 #endif 56 57 #endif /* __TDA8290_H__ */ 58