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 24enum 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 31struct 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) 42extern int tda829x_probe(struct i2c_adapter *i2c_adap, u8 i2c_addr); 43 44extern 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 49static 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 55static 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