| Davide Ferri | 8d009a0 | 2009-06-23 22:34:06 -0300 | [diff] [blame] | 1 | /* | 
|  | 2 | *  Driver for Xceive XC4000 "QAM/8VSB single chip tuner" | 
|  | 3 | * | 
|  | 4 | *  Copyright (c) 2007 Steven Toth <stoth@linuxtv.org> | 
|  | 5 | * | 
|  | 6 | *  This program is free software; you can redistribute it and/or modify | 
|  | 7 | *  it under the terms of the GNU General Public License as published by | 
|  | 8 | *  the Free Software Foundation; either version 2 of the License, or | 
|  | 9 | *  (at your option) any later version. | 
|  | 10 | * | 
|  | 11 | *  This program is distributed in the hope that it will be useful, | 
|  | 12 | *  but WITHOUT ANY WARRANTY; without even the implied warranty of | 
|  | 13 | *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
|  | 14 | * | 
|  | 15 | *  GNU General Public License for more details. | 
|  | 16 | * | 
|  | 17 | *  You should have received a copy of the GNU General Public License | 
|  | 18 | *  along with this program; if not, write to the Free Software | 
|  | 19 | *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | 
|  | 20 | */ | 
|  | 21 |  | 
|  | 22 | #ifndef __XC4000_H__ | 
|  | 23 | #define __XC4000_H__ | 
|  | 24 |  | 
|  | 25 | #include <linux/firmware.h> | 
|  | 26 |  | 
|  | 27 | struct dvb_frontend; | 
|  | 28 | struct i2c_adapter; | 
|  | 29 |  | 
|  | 30 | struct xc4000_config { | 
| istvan_v@mailbox.hu | 8edeb6e | 2011-06-06 13:03:44 -0300 | [diff] [blame] | 31 | u8	i2c_address; | 
|  | 32 | /* if non-zero, power management is enabled by default */ | 
|  | 33 | u8	default_pm; | 
|  | 34 | /* value to be written to XREG_AMPLITUDE in DVB-T mode (0: no write) */ | 
|  | 35 | u8	dvb_amplitude; | 
|  | 36 | /* if non-zero, register 0x0E is set to filter analog TV video output */ | 
|  | 37 | u8	set_smoothedcvbs; | 
|  | 38 | /* IF for DVB-T */ | 
| Istvan Varga | fbe4a29 | 2011-06-03 10:11:48 -0300 | [diff] [blame] | 39 | u32	if_khz; | 
| Davide Ferri | 8d009a0 | 2009-06-23 22:34:06 -0300 | [diff] [blame] | 40 | }; | 
|  | 41 |  | 
|  | 42 | /* xc4000 callback command */ | 
|  | 43 | #define XC4000_TUNER_RESET		0 | 
|  | 44 |  | 
|  | 45 | /* For each bridge framework, when it attaches either analog or digital, | 
|  | 46 | * it has to store a reference back to its _core equivalent structure, | 
|  | 47 | * so that it can service the hardware by steering gpio's etc. | 
|  | 48 | * Each bridge implementation is different so cast devptr accordingly. | 
|  | 49 | * The xc4000 driver cares not for this value, other than ensuring | 
|  | 50 | * it's passed back to a bridge during tuner_callback(). | 
|  | 51 | */ | 
|  | 52 |  | 
| Mauro Carvalho Chehab | 941830c | 2011-06-06 16:51:11 -0300 | [diff] [blame] | 53 | #if defined(CONFIG_MEDIA_TUNER_XC4000) || (defined(CONFIG_MEDIA_TUNER_XC4000_MODULE) && defined(MODULE)) | 
| Davide Ferri | 8d009a0 | 2009-06-23 22:34:06 -0300 | [diff] [blame] | 54 | extern struct dvb_frontend *xc4000_attach(struct dvb_frontend *fe, | 
|  | 55 | struct i2c_adapter *i2c, | 
|  | 56 | struct xc4000_config *cfg); | 
|  | 57 | #else | 
|  | 58 | static inline struct dvb_frontend *xc4000_attach(struct dvb_frontend *fe, | 
|  | 59 | struct i2c_adapter *i2c, | 
|  | 60 | struct xc4000_config *cfg) | 
|  | 61 | { | 
|  | 62 | printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); | 
|  | 63 | return NULL; | 
|  | 64 | } | 
|  | 65 | #endif | 
|  | 66 |  | 
|  | 67 | #endif |