18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-or-later */ 28c2ecf20Sopenharmony_ci/* 38c2ecf20Sopenharmony_ci * Driver for Quantek QT1010 silicon tuner 48c2ecf20Sopenharmony_ci * 58c2ecf20Sopenharmony_ci * Copyright (C) 2006 Antti Palosaari <crope@iki.fi> 68c2ecf20Sopenharmony_ci * Aapo Tahkola <aet@rasterburn.org> 78c2ecf20Sopenharmony_ci */ 88c2ecf20Sopenharmony_ci 98c2ecf20Sopenharmony_ci#ifndef QT1010_PRIV_H 108c2ecf20Sopenharmony_ci#define QT1010_PRIV_H 118c2ecf20Sopenharmony_ci 128c2ecf20Sopenharmony_ci/* 138c2ecf20Sopenharmony_cireg def meaning 148c2ecf20Sopenharmony_ci=== === ======= 158c2ecf20Sopenharmony_ci00 00 ? 168c2ecf20Sopenharmony_ci01 a0 ? operation start/stop; start=80, stop=00 178c2ecf20Sopenharmony_ci02 00 ? 188c2ecf20Sopenharmony_ci03 19 ? 198c2ecf20Sopenharmony_ci04 00 ? 208c2ecf20Sopenharmony_ci05 00 ? maybe band selection 218c2ecf20Sopenharmony_ci06 00 ? 228c2ecf20Sopenharmony_ci07 2b set frequency: 32 MHz scale, n*32 MHz 238c2ecf20Sopenharmony_ci08 0b ? 248c2ecf20Sopenharmony_ci09 10 ? changes every 8/24 MHz; values 1d/1c 258c2ecf20Sopenharmony_ci0a 08 set frequency: 4 MHz scale, n*4 MHz 268c2ecf20Sopenharmony_ci0b 41 ? changes every 2/2 MHz; values 45/45 278c2ecf20Sopenharmony_ci0c e1 ? 288c2ecf20Sopenharmony_ci0d 94 ? 298c2ecf20Sopenharmony_ci0e b6 ? 308c2ecf20Sopenharmony_ci0f 2c ? 318c2ecf20Sopenharmony_ci10 10 ? 328c2ecf20Sopenharmony_ci11 f1 ? maybe device specified adjustment 338c2ecf20Sopenharmony_ci12 11 ? maybe device specified adjustment 348c2ecf20Sopenharmony_ci13 3f ? 358c2ecf20Sopenharmony_ci14 1f ? 368c2ecf20Sopenharmony_ci15 3f ? 378c2ecf20Sopenharmony_ci16 ff ? 388c2ecf20Sopenharmony_ci17 ff ? 398c2ecf20Sopenharmony_ci18 f7 ? 408c2ecf20Sopenharmony_ci19 80 ? 418c2ecf20Sopenharmony_ci1a d0 set frequency: 125 kHz scale, n*125 kHz 428c2ecf20Sopenharmony_ci1b 00 ? 438c2ecf20Sopenharmony_ci1c 89 ? 448c2ecf20Sopenharmony_ci1d 00 ? 458c2ecf20Sopenharmony_ci1e 00 ? looks like operation register; write cmd here, read result from 1f-26 468c2ecf20Sopenharmony_ci1f 20 ? chip initialization 478c2ecf20Sopenharmony_ci20 e0 ? chip initialization 488c2ecf20Sopenharmony_ci21 20 ? 498c2ecf20Sopenharmony_ci22 d0 ? 508c2ecf20Sopenharmony_ci23 d0 ? 518c2ecf20Sopenharmony_ci24 d0 ? 528c2ecf20Sopenharmony_ci25 40 ? chip initialization 538c2ecf20Sopenharmony_ci26 08 ? 548c2ecf20Sopenharmony_ci27 29 ? 558c2ecf20Sopenharmony_ci28 55 ? 568c2ecf20Sopenharmony_ci29 39 ? 578c2ecf20Sopenharmony_ci2a 13 ? 588c2ecf20Sopenharmony_ci2b 01 ? 598c2ecf20Sopenharmony_ci2c ea ? 608c2ecf20Sopenharmony_ci2d 00 ? 618c2ecf20Sopenharmony_ci2e 00 ? not used? 628c2ecf20Sopenharmony_ci2f 00 ? not used? 638c2ecf20Sopenharmony_ci*/ 648c2ecf20Sopenharmony_ci 658c2ecf20Sopenharmony_ci#define QT1010_STEP (125 * kHz) /* 668c2ecf20Sopenharmony_ci * used by Windows drivers, 678c2ecf20Sopenharmony_ci * hw could be more precise but we don't 688c2ecf20Sopenharmony_ci * know how to use 698c2ecf20Sopenharmony_ci */ 708c2ecf20Sopenharmony_ci#define QT1010_MIN_FREQ (48 * MHz) 718c2ecf20Sopenharmony_ci#define QT1010_MAX_FREQ (860 * MHz) 728c2ecf20Sopenharmony_ci#define QT1010_OFFSET (1246 * MHz) 738c2ecf20Sopenharmony_ci 748c2ecf20Sopenharmony_ci#define QT1010_WR 0 758c2ecf20Sopenharmony_ci#define QT1010_RD 1 768c2ecf20Sopenharmony_ci#define QT1010_M1 3 778c2ecf20Sopenharmony_ci 788c2ecf20Sopenharmony_citypedef struct { 798c2ecf20Sopenharmony_ci u8 oper, reg, val; 808c2ecf20Sopenharmony_ci} qt1010_i2c_oper_t; 818c2ecf20Sopenharmony_ci 828c2ecf20Sopenharmony_cistruct qt1010_priv { 838c2ecf20Sopenharmony_ci struct qt1010_config *cfg; 848c2ecf20Sopenharmony_ci struct i2c_adapter *i2c; 858c2ecf20Sopenharmony_ci 868c2ecf20Sopenharmony_ci u8 reg1f_init_val; 878c2ecf20Sopenharmony_ci u8 reg20_init_val; 888c2ecf20Sopenharmony_ci u8 reg25_init_val; 898c2ecf20Sopenharmony_ci 908c2ecf20Sopenharmony_ci u32 frequency; 918c2ecf20Sopenharmony_ci}; 928c2ecf20Sopenharmony_ci 938c2ecf20Sopenharmony_ci#endif 94