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/*
26reg def meaning
27=== === =======
2800  00  ?
2901  a0  ? operation start/stop; start=80, stop=00
3002  00  ?
3103  19  ?
3204  00  ?
3305  00  ? maybe band selection
3406  00  ?
3507  2b  set frequency: 32 MHz scale, n*32 MHz
3608  0b  ?
3709  10  ? changes every 8/24 MHz; values 1d/1c
380a  08  set frequency: 4 MHz scale, n*4 MHz
390b  41  ? changes every 2/2 MHz; values 45/45
400c  e1  ?
410d  94  ?
420e  b6  ?
430f  2c  ?
4410  10  ?
4511  f1  ? maybe device specified adjustment
4612  11  ? maybe device specified adjustment
4713  3f  ?
4814  1f  ?
4915  3f  ?
5016  ff  ?
5117  ff  ?
5218  f7  ?
5319  80  ?
541a  d0  set frequency: 125 kHz scale, n*125 kHz
551b  00  ?
561c  89  ?
571d  00  ?
581e  00  ? looks like operation register; write cmd here, read result from 1f-26
591f  20  ? chip initialization
6020  e0  ? chip initialization
6121  20  ?
6222  d0  ?
6323  d0  ?
6424  d0  ?
6525  40  ? chip initialization
6626  08  ?
6727  29  ?
6828  55  ?
6929  39  ?
702a  13  ?
712b  01  ?
722c  ea  ?
732d  00  ?
742e  00  ? not used?
752f  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
89typedef struct {
90	u8 oper, reg, val;
91} qt1010_i2c_oper_t;
92
93struct 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