1 /* 2 DVB Driver for Philips tda827x / tda827xa Silicon tuners 3 4 (c) 2005 Hartmut Hackmann 5 (c) 2007 Michael Krufky 6 7 This program is free software; you can redistribute it and/or modify 8 it under the terms of the GNU General Public License as published by 9 the Free Software Foundation; either version 2 of the License, or 10 (at your option) any later version. 11 12 This program is distributed in the hope that it will be useful, 13 but WITHOUT ANY WARRANTY; without even the implied warranty of 14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 16 GNU General Public License for more details. 17 18 You should have received a copy of the GNU General Public License 19 along with this program; if not, write to the Free Software 20 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 21 22 */ 23 24 #ifndef __DVB_TDA827X_H__ 25 #define __DVB_TDA827X_H__ 26 27 #include <linux/i2c.h> 28 #include "dvb_frontend.h" 29 #include "tda8290.h" 30 31 struct tda827x_config 32 { 33 /* saa7134 - provided callbacks */ 34 int (*init) (struct dvb_frontend *fe); 35 int (*sleep) (struct dvb_frontend *fe); 36 37 /* interface to tda829x driver */ 38 enum tda8290_lna config; 39 int switch_addr; 40 41 void (*agcf)(struct dvb_frontend *fe); 42 }; 43 44 45 /** 46 * Attach a tda827x tuner to the supplied frontend structure. 47 * 48 * @param fe Frontend to attach to. 49 * @param addr i2c address of the tuner. 50 * @param i2c i2c adapter to use. 51 * @param cfg optional callback function pointers. 52 * @return FE pointer on success, NULL on failure. 53 */ 54 #if IS_ENABLED(CONFIG_MEDIA_TUNER_TDA827X) 55 extern struct dvb_frontend* tda827x_attach(struct dvb_frontend *fe, int addr, 56 struct i2c_adapter *i2c, 57 struct tda827x_config *cfg); 58 #else 59 static inline struct dvb_frontend* tda827x_attach(struct dvb_frontend *fe, 60 int addr, 61 struct i2c_adapter *i2c, 62 struct tda827x_config *cfg) 63 { 64 printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); 65 return NULL; 66 } 67 #endif // CONFIG_MEDIA_TUNER_TDA827X 68 69 #endif // __DVB_TDA827X_H__ 70