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