mirror of
				https://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
				synced 2025-10-31 14:30:50 +00:00 
			
		
		
		
	 cbdc80ed8f
			
		
	
	
		cbdc80ed8f
		
	
	
	
	
		
			
			QT1010: - old qt1010-code totally rewritten and put in own kernel module - same enhancements as my earlier QT1010 125kHz patch - tuner initialization - register 1f calculation - register 20 calculation - register 25 calculation m920x: (MSI Megasky) - use new QT1010 module instead of old code Signed-off-by: Antti Palosaari <crope@iki.fi> Signed-off-by: Michael Krufky <mkrufky@linuxtv.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
		
			
				
	
	
		
			106 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			106 lines
		
	
	
		
			2.4 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.
 | |
|  *
 | |
|  *  You should have received a copy of the GNU General Public License
 | |
|  *  along with this program; if not, write to the Free Software
 | |
|  *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 | |
|  */
 | |
| 
 | |
| #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         125000 /*  125 kHz used by Windows drivers,
 | |
| 				      hw could be more precise but we don't
 | |
| 				      know how to use */
 | |
| #define QT1010_MIN_FREQ   48000000 /*   48 MHz */
 | |
| #define QT1010_MAX_FREQ  860000000 /*  860 MHz */
 | |
| #define QT1010_OFFSET   1246000000 /* 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;
 | |
| 	u32 bandwidth;
 | |
| };
 | |
| 
 | |
| #endif
 |