| Manu Abraham | e415c68 | 2009-04-06 15:45:20 -0300 | [diff] [blame] | 1 | /* | 
|  | 2 | STV6110(A) Silicon tuner driver | 
|  | 3 |  | 
|  | 4 | Copyright (C) Manu Abraham <abraham.manu@gmail.com> | 
|  | 5 |  | 
|  | 6 | Copyright (C) ST Microelectronics | 
|  | 7 |  | 
|  | 8 | This program is free software; you can redistribute it and/or modify | 
|  | 9 | it under the terms of the GNU General Public License as published by | 
|  | 10 | the Free Software Foundation; either version 2 of the License, or | 
|  | 11 | (at your option) any later version. | 
|  | 12 |  | 
|  | 13 | This program is distributed in the hope that it will be useful, | 
|  | 14 | but WITHOUT ANY WARRANTY; without even the implied warranty of | 
|  | 15 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
|  | 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 | #ifndef __STV6110x_PRIV_H | 
|  | 24 | #define __STV6110x_PRIV_H | 
|  | 25 |  | 
|  | 26 | #define FE_ERROR				0 | 
|  | 27 | #define FE_NOTICE				1 | 
|  | 28 | #define FE_INFO					2 | 
|  | 29 | #define FE_DEBUG				3 | 
|  | 30 | #define FE_DEBUGREG				4 | 
|  | 31 |  | 
|  | 32 | #define dprintk(__y, __z, format, arg...) do {						\ | 
|  | 33 | if (__z) {									\ | 
|  | 34 | if	((verbose > FE_ERROR) && (verbose > __y))			\ | 
|  | 35 | printk(KERN_ERR "%s: " format "\n", __func__ , ##arg);		\ | 
|  | 36 | else if	((verbose > FE_NOTICE) && (verbose > __y))			\ | 
|  | 37 | printk(KERN_NOTICE "%s: " format "\n", __func__ , ##arg);	\ | 
|  | 38 | else if ((verbose > FE_INFO) && (verbose > __y))			\ | 
|  | 39 | printk(KERN_INFO "%s: " format "\n", __func__ , ##arg);		\ | 
|  | 40 | else if ((verbose > FE_DEBUG) && (verbose > __y))			\ | 
|  | 41 | printk(KERN_DEBUG "%s: " format "\n", __func__ , ##arg);	\ | 
|  | 42 | } else {									\ | 
|  | 43 | if (verbose > __y)							\ | 
|  | 44 | printk(format, ##arg);						\ | 
|  | 45 | }										\ | 
|  | 46 | } while (0) | 
|  | 47 |  | 
|  | 48 |  | 
|  | 49 | #define STV6110x_SETFIELD(mask, bitf, val)				\ | 
|  | 50 | (mask = (mask & (~(((1 << STV6110x_WIDTH_##bitf) - 1) <<	\ | 
|  | 51 | STV6110x_OFFST_##bitf))) | 		\ | 
|  | 52 | (val << STV6110x_OFFST_##bitf)) | 
|  | 53 |  | 
|  | 54 | #define STV6110x_GETFIELD(bitf, val)					\ | 
|  | 55 | ((val >> STV6110x_OFFST_##bitf) & 				\ | 
|  | 56 | ((1 << STV6110x_WIDTH_##bitf) - 1)) | 
|  | 57 |  | 
|  | 58 | #define MAKEWORD16(a, b)			(((a) << 8) | (b)) | 
|  | 59 |  | 
|  | 60 | #define LSB(x)					((x & 0xff)) | 
|  | 61 | #define MSB(y)					((y >> 8) & 0xff) | 
|  | 62 |  | 
|  | 63 | #define TRIALS					10 | 
|  | 64 | #define R_DIV(__div)				(1 << (__div + 1)) | 
| Manu Abraham | 017eb03 | 2009-04-07 05:19:54 -0300 | [diff] [blame] | 65 | #define REFCLOCK_kHz				(stv6110x->config->refclk /    1000) | 
|  | 66 | #define REFCLOCK_MHz				(stv6110x->config->refclk / 1000000) | 
| Manu Abraham | e415c68 | 2009-04-06 15:45:20 -0300 | [diff] [blame] | 67 |  | 
|  | 68 | struct stv6110x_state { | 
|  | 69 | struct i2c_adapter		*i2c; | 
|  | 70 | const struct stv6110x_config	*config; | 
| Andreas Regel | ec2d3a6 | 2010-01-05 19:23:13 -0300 | [diff] [blame] | 71 | u8 				regs[8]; | 
| Manu Abraham | e415c68 | 2009-04-06 15:45:20 -0300 | [diff] [blame] | 72 |  | 
|  | 73 | struct stv6110x_devctl		*devctl; | 
| Manu Abraham | e415c68 | 2009-04-06 15:45:20 -0300 | [diff] [blame] | 74 | }; | 
|  | 75 |  | 
|  | 76 | #endif /* __STV6110x_PRIV_H */ |