1 /* 2 * Driver for Quantek QT1010 silicon tuner 3 * 4 * Copyright (C) 2006 Antti Palosaari <crope@iki.fi> 5 * Aapo Tahkola <aet@rasterburn.org> 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 * 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 QT1010_PRIV_H 23 #define QT1010_PRIV_H 24 25 /* 26 reg def meaning 27 === === ======= 28 00 00 ? 29 01 a0 ? operation start/stop; start=80, stop=00 30 02 00 ? 31 03 19 ? 32 04 00 ? 33 05 00 ? maybe band selection 34 06 00 ? 35 07 2b set frequency: 32 MHz scale, n*32 MHz 36 08 0b ? 37 09 10 ? changes every 8/24 MHz; values 1d/1c 38 0a 08 set frequency: 4 MHz scale, n*4 MHz 39 0b 41 ? changes every 2/2 MHz; values 45/45 40 0c e1 ? 41 0d 94 ? 42 0e b6 ? 43 0f 2c ? 44 10 10 ? 45 11 f1 ? maybe device specified adjustment 46 12 11 ? maybe device specified adjustment 47 13 3f ? 48 14 1f ? 49 15 3f ? 50 16 ff ? 51 17 ff ? 52 18 f7 ? 53 19 80 ? 54 1a d0 set frequency: 125 kHz scale, n*125 kHz 55 1b 00 ? 56 1c 89 ? 57 1d 00 ? 58 1e 00 ? looks like operation register; write cmd here, read result from 1f-26 59 1f 20 ? chip initialization 60 20 e0 ? chip initialization 61 21 20 ? 62 22 d0 ? 63 23 d0 ? 64 24 d0 ? 65 25 40 ? chip initialization 66 26 08 ? 67 27 29 ? 68 28 55 ? 69 29 39 ? 70 2a 13 ? 71 2b 01 ? 72 2c ea ? 73 2d 00 ? 74 2e 00 ? not used? 75 2f 00 ? not used? 76 */ 77 78 #define QT1010_STEP 125000 /* 125 kHz used by Windows drivers, 79 hw could be more precise but we don't 80 know how to use */ 81 #define QT1010_MIN_FREQ 48000000 /* 48 MHz */ 82 #define QT1010_MAX_FREQ 860000000 /* 860 MHz */ 83 #define QT1010_OFFSET 1246000000 /* 1246 MHz */ 84 85 #define QT1010_WR 0 86 #define QT1010_RD 1 87 #define QT1010_M1 3 88 89 typedef struct { 90 u8 oper, reg, val; 91 } qt1010_i2c_oper_t; 92 93 struct qt1010_priv { 94 struct qt1010_config *cfg; 95 struct i2c_adapter *i2c; 96 97 u8 reg1f_init_val; 98 u8 reg20_init_val; 99 u8 reg25_init_val; 100 101 u32 frequency; 102 }; 103 104 #endif 105