162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-or-later */ 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * Driver for Quantek QT1010 silicon tuner 462306a36Sopenharmony_ci * 562306a36Sopenharmony_ci * Copyright (C) 2006 Antti Palosaari <crope@iki.fi> 662306a36Sopenharmony_ci * Aapo Tahkola <aet@rasterburn.org> 762306a36Sopenharmony_ci */ 862306a36Sopenharmony_ci 962306a36Sopenharmony_ci#ifndef QT1010_PRIV_H 1062306a36Sopenharmony_ci#define QT1010_PRIV_H 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_ci/* 1362306a36Sopenharmony_cireg def meaning 1462306a36Sopenharmony_ci=== === ======= 1562306a36Sopenharmony_ci00 00 ? 1662306a36Sopenharmony_ci01 a0 ? operation start/stop; start=80, stop=00 1762306a36Sopenharmony_ci02 00 ? 1862306a36Sopenharmony_ci03 19 ? 1962306a36Sopenharmony_ci04 00 ? 2062306a36Sopenharmony_ci05 00 ? maybe band selection 2162306a36Sopenharmony_ci06 00 ? 2262306a36Sopenharmony_ci07 2b set frequency: 32 MHz scale, n*32 MHz 2362306a36Sopenharmony_ci08 0b ? 2462306a36Sopenharmony_ci09 10 ? changes every 8/24 MHz; values 1d/1c 2562306a36Sopenharmony_ci0a 08 set frequency: 4 MHz scale, n*4 MHz 2662306a36Sopenharmony_ci0b 41 ? changes every 2/2 MHz; values 45/45 2762306a36Sopenharmony_ci0c e1 ? 2862306a36Sopenharmony_ci0d 94 ? 2962306a36Sopenharmony_ci0e b6 ? 3062306a36Sopenharmony_ci0f 2c ? 3162306a36Sopenharmony_ci10 10 ? 3262306a36Sopenharmony_ci11 f1 ? maybe device specified adjustment 3362306a36Sopenharmony_ci12 11 ? maybe device specified adjustment 3462306a36Sopenharmony_ci13 3f ? 3562306a36Sopenharmony_ci14 1f ? 3662306a36Sopenharmony_ci15 3f ? 3762306a36Sopenharmony_ci16 ff ? 3862306a36Sopenharmony_ci17 ff ? 3962306a36Sopenharmony_ci18 f7 ? 4062306a36Sopenharmony_ci19 80 ? 4162306a36Sopenharmony_ci1a d0 set frequency: 125 kHz scale, n*125 kHz 4262306a36Sopenharmony_ci1b 00 ? 4362306a36Sopenharmony_ci1c 89 ? 4462306a36Sopenharmony_ci1d 00 ? 4562306a36Sopenharmony_ci1e 00 ? looks like operation register; write cmd here, read result from 1f-26 4662306a36Sopenharmony_ci1f 20 ? chip initialization 4762306a36Sopenharmony_ci20 e0 ? chip initialization 4862306a36Sopenharmony_ci21 20 ? 4962306a36Sopenharmony_ci22 d0 ? 5062306a36Sopenharmony_ci23 d0 ? 5162306a36Sopenharmony_ci24 d0 ? 5262306a36Sopenharmony_ci25 40 ? chip initialization 5362306a36Sopenharmony_ci26 08 ? 5462306a36Sopenharmony_ci27 29 ? 5562306a36Sopenharmony_ci28 55 ? 5662306a36Sopenharmony_ci29 39 ? 5762306a36Sopenharmony_ci2a 13 ? 5862306a36Sopenharmony_ci2b 01 ? 5962306a36Sopenharmony_ci2c ea ? 6062306a36Sopenharmony_ci2d 00 ? 6162306a36Sopenharmony_ci2e 00 ? not used? 6262306a36Sopenharmony_ci2f 00 ? not used? 6362306a36Sopenharmony_ci*/ 6462306a36Sopenharmony_ci 6562306a36Sopenharmony_ci#define QT1010_STEP (125 * kHz) /* 6662306a36Sopenharmony_ci * used by Windows drivers, 6762306a36Sopenharmony_ci * hw could be more precise but we don't 6862306a36Sopenharmony_ci * know how to use 6962306a36Sopenharmony_ci */ 7062306a36Sopenharmony_ci#define QT1010_MIN_FREQ (48 * MHz) 7162306a36Sopenharmony_ci#define QT1010_MAX_FREQ (860 * MHz) 7262306a36Sopenharmony_ci#define QT1010_OFFSET (1246 * MHz) 7362306a36Sopenharmony_ci 7462306a36Sopenharmony_ci#define QT1010_WR 0 7562306a36Sopenharmony_ci#define QT1010_RD 1 7662306a36Sopenharmony_ci#define QT1010_M1 3 7762306a36Sopenharmony_ci 7862306a36Sopenharmony_citypedef struct { 7962306a36Sopenharmony_ci u8 oper, reg, val; 8062306a36Sopenharmony_ci} qt1010_i2c_oper_t; 8162306a36Sopenharmony_ci 8262306a36Sopenharmony_cistruct qt1010_priv { 8362306a36Sopenharmony_ci struct qt1010_config *cfg; 8462306a36Sopenharmony_ci struct i2c_adapter *i2c; 8562306a36Sopenharmony_ci 8662306a36Sopenharmony_ci u8 reg1f_init_val; 8762306a36Sopenharmony_ci u8 reg20_init_val; 8862306a36Sopenharmony_ci u8 reg25_init_val; 8962306a36Sopenharmony_ci 9062306a36Sopenharmony_ci u32 frequency; 9162306a36Sopenharmony_ci}; 9262306a36Sopenharmony_ci 9362306a36Sopenharmony_ci#endif 94