103 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			103 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/*
 | 
						|
 *  Driver for Quantek QT1010 silicon tuner
 | 
						|
 *
 | 
						|
 *  Copyright (C) 2006 Antti Palosaari <crope@iki.fi>
 | 
						|
 *                     Aapo Tahkola <aet@rasterburn.org>
 | 
						|
 *
 | 
						|
 *  This program is free software; you can redistribute it and/or modify
 | 
						|
 *  it under the terms of the GNU General Public License as published by
 | 
						|
 *  the Free Software Foundation; either version 2 of the License, or
 | 
						|
 *  (at your option) any later version.
 | 
						|
 *
 | 
						|
 *  This program is distributed in the hope that it will be useful,
 | 
						|
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
						|
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
						|
 *  GNU General Public License for more details.
 | 
						|
 */
 | 
						|
 | 
						|
#ifndef QT1010_PRIV_H
 | 
						|
#define QT1010_PRIV_H
 | 
						|
 | 
						|
/*
 | 
						|
reg def meaning
 | 
						|
=== === =======
 | 
						|
00  00  ?
 | 
						|
01  a0  ? operation start/stop; start=80, stop=00
 | 
						|
02  00  ?
 | 
						|
03  19  ?
 | 
						|
04  00  ?
 | 
						|
05  00  ? maybe band selection
 | 
						|
06  00  ?
 | 
						|
07  2b  set frequency: 32 MHz scale, n*32 MHz
 | 
						|
08  0b  ?
 | 
						|
09  10  ? changes every 8/24 MHz; values 1d/1c
 | 
						|
0a  08  set frequency: 4 MHz scale, n*4 MHz
 | 
						|
0b  41  ? changes every 2/2 MHz; values 45/45
 | 
						|
0c  e1  ?
 | 
						|
0d  94  ?
 | 
						|
0e  b6  ?
 | 
						|
0f  2c  ?
 | 
						|
10  10  ?
 | 
						|
11  f1  ? maybe device specified adjustment
 | 
						|
12  11  ? maybe device specified adjustment
 | 
						|
13  3f  ?
 | 
						|
14  1f  ?
 | 
						|
15  3f  ?
 | 
						|
16  ff  ?
 | 
						|
17  ff  ?
 | 
						|
18  f7  ?
 | 
						|
19  80  ?
 | 
						|
1a  d0  set frequency: 125 kHz scale, n*125 kHz
 | 
						|
1b  00  ?
 | 
						|
1c  89  ?
 | 
						|
1d  00  ?
 | 
						|
1e  00  ? looks like operation register; write cmd here, read result from 1f-26
 | 
						|
1f  20  ? chip initialization
 | 
						|
20  e0  ? chip initialization
 | 
						|
21  20  ?
 | 
						|
22  d0  ?
 | 
						|
23  d0  ?
 | 
						|
24  d0  ?
 | 
						|
25  40  ? chip initialization
 | 
						|
26  08  ?
 | 
						|
27  29  ?
 | 
						|
28  55  ?
 | 
						|
29  39  ?
 | 
						|
2a  13  ?
 | 
						|
2b  01  ?
 | 
						|
2c  ea  ?
 | 
						|
2d  00  ?
 | 
						|
2e  00  ? not used?
 | 
						|
2f  00  ? not used?
 | 
						|
*/
 | 
						|
 | 
						|
#define QT1010_STEP         (125 * kHz) /*
 | 
						|
					 * used by Windows drivers,
 | 
						|
				         * hw could be more precise but we don't
 | 
						|
				         * know how to use
 | 
						|
					 */
 | 
						|
#define QT1010_MIN_FREQ   (48 * MHz)
 | 
						|
#define QT1010_MAX_FREQ  (860 * MHz)
 | 
						|
#define QT1010_OFFSET   (1246 * MHz)
 | 
						|
 | 
						|
#define QT1010_WR 0
 | 
						|
#define QT1010_RD 1
 | 
						|
#define QT1010_M1 3
 | 
						|
 | 
						|
typedef struct {
 | 
						|
	u8 oper, reg, val;
 | 
						|
} qt1010_i2c_oper_t;
 | 
						|
 | 
						|
struct qt1010_priv {
 | 
						|
	struct qt1010_config *cfg;
 | 
						|
	struct i2c_adapter   *i2c;
 | 
						|
 | 
						|
	u8 reg1f_init_val;
 | 
						|
	u8 reg20_init_val;
 | 
						|
	u8 reg25_init_val;
 | 
						|
 | 
						|
	u32 frequency;
 | 
						|
};
 | 
						|
 | 
						|
#endif
 |