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 __TEA5767_H__ 18 #define __TEA5767_H__ 19 20 #include <linux/i2c.h> 21 #include "dvb_frontend.h" 22 23 enum tea5767_xtal { 24 TEA5767_LOW_LO_32768 = 0, 25 TEA5767_HIGH_LO_32768 = 1, 26 TEA5767_LOW_LO_13MHz = 2, 27 TEA5767_HIGH_LO_13MHz = 3, 28 }; 29 30 struct tea5767_ctrl { 31 unsigned int port1:1; 32 unsigned int port2:1; 33 unsigned int high_cut:1; 34 unsigned int st_noise:1; 35 unsigned int soft_mute:1; 36 unsigned int japan_band:1; 37 unsigned int deemph_75:1; 38 unsigned int pllref:1; 39 enum tea5767_xtal xtal_freq; 40 }; 41 42 #if IS_REACHABLE(CONFIG_MEDIA_TUNER_TEA5767) 43 extern int tea5767_autodetection(struct i2c_adapter* i2c_adap, u8 i2c_addr); 44 45 extern struct dvb_frontend *tea5767_attach(struct dvb_frontend *fe, 46 struct i2c_adapter* i2c_adap, 47 u8 i2c_addr); 48 #else 49 static inline int tea5767_autodetection(struct i2c_adapter* i2c_adap, 50 u8 i2c_addr) 51 { 52 printk(KERN_INFO "%s: not probed - driver disabled by Kconfig\n", 53 __func__); 54 return -EINVAL; 55 } 56 57 static inline struct dvb_frontend *tea5767_attach(struct dvb_frontend *fe, 58 struct i2c_adapter* i2c_adap, 59 u8 i2c_addr) 60 { 61 printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); 62 return NULL; 63 } 64 #endif 65 66 #endif /* __TEA5767_H__ */ 67