[go: nahoru, domu]

16ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky/*
226151c32d3d001f64e75871588acd0aff3f216d7Michael Krufky    tda18271-maps.c - driver for the Philips / NXP TDA18271 silicon tuner
36ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky
459067f7ed491ec95e6e9033e35e1ae726cff3ceeMichael Krufky    Copyright (C) 2007, 2008 Michael Krufky <mkrufky@linuxtv.org>
56ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky
66ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky    This program is free software; you can redistribute it and/or modify
76ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky    it under the terms of the GNU General Public License as published by
86ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky    the Free Software Foundation; either version 2 of the License, or
96ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky    (at your option) any later version.
106ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky
116ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky    This program is distributed in the hope that it will be useful,
126ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky    but WITHOUT ANY WARRANTY; without even the implied warranty of
136ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
146ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky    GNU General Public License for more details.
156ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky
166ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky    You should have received a copy of the GNU General Public License
176ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky    along with this program; if not, write to the Free Software
186ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
196ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky*/
206ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky
216ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky#include "tda18271-priv.h"
226ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky
23b5f3e1e153b60f7bc338cdd6eefacd59c2dfb375Michael Krufkystruct tda18271_pll_map {
24b5f3e1e153b60f7bc338cdd6eefacd59c2dfb375Michael Krufky	u32 lomax;
25b5f3e1e153b60f7bc338cdd6eefacd59c2dfb375Michael Krufky	u8 pd; /* post div */
26b5f3e1e153b60f7bc338cdd6eefacd59c2dfb375Michael Krufky	u8 d;  /*      div */
27b5f3e1e153b60f7bc338cdd6eefacd59c2dfb375Michael Krufky};
28b5f3e1e153b60f7bc338cdd6eefacd59c2dfb375Michael Krufky
29b5f3e1e153b60f7bc338cdd6eefacd59c2dfb375Michael Krufkystruct tda18271_map {
30b5f3e1e153b60f7bc338cdd6eefacd59c2dfb375Michael Krufky	u32 rfmax;
31b5f3e1e153b60f7bc338cdd6eefacd59c2dfb375Michael Krufky	u8  val;
32b5f3e1e153b60f7bc338cdd6eefacd59c2dfb375Michael Krufky};
33b5f3e1e153b60f7bc338cdd6eefacd59c2dfb375Michael Krufky
34b5f3e1e153b60f7bc338cdd6eefacd59c2dfb375Michael Krufky/*---------------------------------------------------------------------*/
35b5f3e1e153b60f7bc338cdd6eefacd59c2dfb375Michael Krufky
36255b5113b4ed683898a24e381155c081f03411f7Michael Krufkystatic struct tda18271_pll_map tda18271c1_main_pll[] = {
376ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .lomax =  32000, .pd = 0x5f, .d = 0xf0 },
386ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .lomax =  35000, .pd = 0x5e, .d = 0xe0 },
396ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .lomax =  37000, .pd = 0x5d, .d = 0xd0 },
406ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .lomax =  41000, .pd = 0x5c, .d = 0xc0 },
416ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .lomax =  44000, .pd = 0x5b, .d = 0xb0 },
426ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .lomax =  49000, .pd = 0x5a, .d = 0xa0 },
436ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .lomax =  54000, .pd = 0x59, .d = 0x90 },
446ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .lomax =  61000, .pd = 0x58, .d = 0x80 },
456ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .lomax =  65000, .pd = 0x4f, .d = 0x78 },
466ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .lomax =  70000, .pd = 0x4e, .d = 0x70 },
476ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .lomax =  75000, .pd = 0x4d, .d = 0x68 },
486ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .lomax =  82000, .pd = 0x4c, .d = 0x60 },
496ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .lomax =  89000, .pd = 0x4b, .d = 0x58 },
506ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .lomax =  98000, .pd = 0x4a, .d = 0x50 },
516ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .lomax = 109000, .pd = 0x49, .d = 0x48 },
526ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .lomax = 123000, .pd = 0x48, .d = 0x40 },
536ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .lomax = 131000, .pd = 0x3f, .d = 0x3c },
546ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .lomax = 141000, .pd = 0x3e, .d = 0x38 },
556ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .lomax = 151000, .pd = 0x3d, .d = 0x34 },
566ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .lomax = 164000, .pd = 0x3c, .d = 0x30 },
576ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .lomax = 179000, .pd = 0x3b, .d = 0x2c },
586ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .lomax = 197000, .pd = 0x3a, .d = 0x28 },
596ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .lomax = 219000, .pd = 0x39, .d = 0x24 },
606ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .lomax = 246000, .pd = 0x38, .d = 0x20 },
616ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .lomax = 263000, .pd = 0x2f, .d = 0x1e },
626ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .lomax = 282000, .pd = 0x2e, .d = 0x1c },
636ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .lomax = 303000, .pd = 0x2d, .d = 0x1a },
646ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .lomax = 329000, .pd = 0x2c, .d = 0x18 },
656ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .lomax = 359000, .pd = 0x2b, .d = 0x16 },
666ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .lomax = 395000, .pd = 0x2a, .d = 0x14 },
676ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .lomax = 438000, .pd = 0x29, .d = 0x12 },
686ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .lomax = 493000, .pd = 0x28, .d = 0x10 },
696ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .lomax = 526000, .pd = 0x1f, .d = 0x0f },
706ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .lomax = 564000, .pd = 0x1e, .d = 0x0e },
716ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .lomax = 607000, .pd = 0x1d, .d = 0x0d },
726ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .lomax = 658000, .pd = 0x1c, .d = 0x0c },
736ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .lomax = 718000, .pd = 0x1b, .d = 0x0b },
746ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .lomax = 790000, .pd = 0x1a, .d = 0x0a },
756ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .lomax = 877000, .pd = 0x19, .d = 0x09 },
766ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .lomax = 987000, .pd = 0x18, .d = 0x08 },
776ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .lomax =      0, .pd = 0x00, .d = 0x00 }, /* end */
786ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky};
796ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky
80255b5113b4ed683898a24e381155c081f03411f7Michael Krufkystatic struct tda18271_pll_map tda18271c2_main_pll[] = {
81255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .lomax =  33125, .pd = 0x57, .d = 0xf0 },
82255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .lomax =  35500, .pd = 0x56, .d = 0xe0 },
83255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .lomax =  38188, .pd = 0x55, .d = 0xd0 },
84255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .lomax =  41375, .pd = 0x54, .d = 0xc0 },
85255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .lomax =  45125, .pd = 0x53, .d = 0xb0 },
86255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .lomax =  49688, .pd = 0x52, .d = 0xa0 },
87255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .lomax =  55188, .pd = 0x51, .d = 0x90 },
88255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .lomax =  62125, .pd = 0x50, .d = 0x80 },
89255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .lomax =  66250, .pd = 0x47, .d = 0x78 },
90255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .lomax =  71000, .pd = 0x46, .d = 0x70 },
91255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .lomax =  76375, .pd = 0x45, .d = 0x68 },
92255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .lomax =  82750, .pd = 0x44, .d = 0x60 },
93255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .lomax =  90250, .pd = 0x43, .d = 0x58 },
94255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .lomax =  99375, .pd = 0x42, .d = 0x50 },
95255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .lomax = 110375, .pd = 0x41, .d = 0x48 },
96255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .lomax = 124250, .pd = 0x40, .d = 0x40 },
97255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .lomax = 132500, .pd = 0x37, .d = 0x3c },
98255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .lomax = 142000, .pd = 0x36, .d = 0x38 },
99255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .lomax = 152750, .pd = 0x35, .d = 0x34 },
100255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .lomax = 165500, .pd = 0x34, .d = 0x30 },
101255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .lomax = 180500, .pd = 0x33, .d = 0x2c },
102255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .lomax = 198750, .pd = 0x32, .d = 0x28 },
103255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .lomax = 220750, .pd = 0x31, .d = 0x24 },
104255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .lomax = 248500, .pd = 0x30, .d = 0x20 },
105255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .lomax = 265000, .pd = 0x27, .d = 0x1e },
106255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .lomax = 284000, .pd = 0x26, .d = 0x1c },
107255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .lomax = 305500, .pd = 0x25, .d = 0x1a },
108255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .lomax = 331000, .pd = 0x24, .d = 0x18 },
109255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .lomax = 361000, .pd = 0x23, .d = 0x16 },
110255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .lomax = 397500, .pd = 0x22, .d = 0x14 },
111255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .lomax = 441500, .pd = 0x21, .d = 0x12 },
112255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .lomax = 497000, .pd = 0x20, .d = 0x10 },
113255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .lomax = 530000, .pd = 0x17, .d = 0x0f },
114255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .lomax = 568000, .pd = 0x16, .d = 0x0e },
115255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .lomax = 611000, .pd = 0x15, .d = 0x0d },
116255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .lomax = 662000, .pd = 0x14, .d = 0x0c },
117255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .lomax = 722000, .pd = 0x13, .d = 0x0b },
118255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .lomax = 795000, .pd = 0x12, .d = 0x0a },
119255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .lomax = 883000, .pd = 0x11, .d = 0x09 },
120255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .lomax = 994000, .pd = 0x10, .d = 0x08 },
121255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .lomax =      0, .pd = 0x00, .d = 0x00 }, /* end */
122255b5113b4ed683898a24e381155c081f03411f7Michael Krufky};
123255b5113b4ed683898a24e381155c081f03411f7Michael Krufky
124255b5113b4ed683898a24e381155c081f03411f7Michael Krufkystatic struct tda18271_pll_map tda18271c1_cal_pll[] = {
1256ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .lomax =   33000, .pd = 0xdd, .d = 0xd0 },
1266ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .lomax =   36000, .pd = 0xdc, .d = 0xc0 },
1276ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .lomax =   40000, .pd = 0xdb, .d = 0xb0 },
1286ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .lomax =   44000, .pd = 0xda, .d = 0xa0 },
1296ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .lomax =   49000, .pd = 0xd9, .d = 0x90 },
1306ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .lomax =   55000, .pd = 0xd8, .d = 0x80 },
1316ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .lomax =   63000, .pd = 0xd3, .d = 0x70 },
1326ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .lomax =   67000, .pd = 0xcd, .d = 0x68 },
1336ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .lomax =   73000, .pd = 0xcc, .d = 0x60 },
1346ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .lomax =   80000, .pd = 0xcb, .d = 0x58 },
1356ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .lomax =   88000, .pd = 0xca, .d = 0x50 },
1366ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .lomax =   98000, .pd = 0xc9, .d = 0x48 },
1376ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .lomax =  110000, .pd = 0xc8, .d = 0x40 },
1386ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .lomax =  126000, .pd = 0xc3, .d = 0x38 },
1396ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .lomax =  135000, .pd = 0xbd, .d = 0x34 },
1406ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .lomax =  147000, .pd = 0xbc, .d = 0x30 },
1416ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .lomax =  160000, .pd = 0xbb, .d = 0x2c },
1426ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .lomax =  176000, .pd = 0xba, .d = 0x28 },
1436ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .lomax =  196000, .pd = 0xb9, .d = 0x24 },
1446ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .lomax =  220000, .pd = 0xb8, .d = 0x20 },
1456ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .lomax =  252000, .pd = 0xb3, .d = 0x1c },
1466ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .lomax =  271000, .pd = 0xad, .d = 0x1a },
1476ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .lomax =  294000, .pd = 0xac, .d = 0x18 },
1486ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .lomax =  321000, .pd = 0xab, .d = 0x16 },
1496ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .lomax =  353000, .pd = 0xaa, .d = 0x14 },
1506ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .lomax =  392000, .pd = 0xa9, .d = 0x12 },
1516ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .lomax =  441000, .pd = 0xa8, .d = 0x10 },
1526ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .lomax =  505000, .pd = 0xa3, .d = 0x0e },
1536ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .lomax =  543000, .pd = 0x9d, .d = 0x0d },
1546ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .lomax =  589000, .pd = 0x9c, .d = 0x0c },
1556ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .lomax =  642000, .pd = 0x9b, .d = 0x0b },
1566ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .lomax =  707000, .pd = 0x9a, .d = 0x0a },
1576ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .lomax =  785000, .pd = 0x99, .d = 0x09 },
1586ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .lomax =  883000, .pd = 0x98, .d = 0x08 },
1596ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .lomax = 1010000, .pd = 0x93, .d = 0x07 },
1606ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .lomax =       0, .pd = 0x00, .d = 0x00 }, /* end */
1616ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky};
1626ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky
163255b5113b4ed683898a24e381155c081f03411f7Michael Krufkystatic struct tda18271_pll_map tda18271c2_cal_pll[] = {
164255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .lomax =   33813, .pd = 0xdd, .d = 0xd0 },
165255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .lomax =   36625, .pd = 0xdc, .d = 0xc0 },
166255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .lomax =   39938, .pd = 0xdb, .d = 0xb0 },
167255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .lomax =   43938, .pd = 0xda, .d = 0xa0 },
168255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .lomax =   48813, .pd = 0xd9, .d = 0x90 },
169255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .lomax =   54938, .pd = 0xd8, .d = 0x80 },
170255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .lomax =   62813, .pd = 0xd3, .d = 0x70 },
171255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .lomax =   67625, .pd = 0xcd, .d = 0x68 },
172255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .lomax =   73250, .pd = 0xcc, .d = 0x60 },
173255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .lomax =   79875, .pd = 0xcb, .d = 0x58 },
174255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .lomax =   87875, .pd = 0xca, .d = 0x50 },
175255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .lomax =   97625, .pd = 0xc9, .d = 0x48 },
176255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .lomax =  109875, .pd = 0xc8, .d = 0x40 },
177255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .lomax =  125625, .pd = 0xc3, .d = 0x38 },
178255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .lomax =  135250, .pd = 0xbd, .d = 0x34 },
179255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .lomax =  146500, .pd = 0xbc, .d = 0x30 },
180255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .lomax =  159750, .pd = 0xbb, .d = 0x2c },
181255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .lomax =  175750, .pd = 0xba, .d = 0x28 },
182255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .lomax =  195250, .pd = 0xb9, .d = 0x24 },
183255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .lomax =  219750, .pd = 0xb8, .d = 0x20 },
184255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .lomax =  251250, .pd = 0xb3, .d = 0x1c },
185255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .lomax =  270500, .pd = 0xad, .d = 0x1a },
186255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .lomax =  293000, .pd = 0xac, .d = 0x18 },
187255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .lomax =  319500, .pd = 0xab, .d = 0x16 },
188255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .lomax =  351500, .pd = 0xaa, .d = 0x14 },
189255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .lomax =  390500, .pd = 0xa9, .d = 0x12 },
190255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .lomax =  439500, .pd = 0xa8, .d = 0x10 },
191255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .lomax =  502500, .pd = 0xa3, .d = 0x0e },
192255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .lomax =  541000, .pd = 0x9d, .d = 0x0d },
193255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .lomax =  586000, .pd = 0x9c, .d = 0x0c },
194255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .lomax =  639000, .pd = 0x9b, .d = 0x0b },
195255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .lomax =  703000, .pd = 0x9a, .d = 0x0a },
196255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .lomax =  781000, .pd = 0x99, .d = 0x09 },
197255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .lomax =  879000, .pd = 0x98, .d = 0x08 },
198255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .lomax =       0, .pd = 0x00, .d = 0x00 }, /* end */
199255b5113b4ed683898a24e381155c081f03411f7Michael Krufky};
200255b5113b4ed683898a24e381155c081f03411f7Michael Krufky
201b5f3e1e153b60f7bc338cdd6eefacd59c2dfb375Michael Krufkystatic struct tda18271_map tda18271_bp_filter[] = {
2026ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax =  62000, .val = 0x00 },
2036ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax =  84000, .val = 0x01 },
2046ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax = 100000, .val = 0x02 },
2056ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax = 140000, .val = 0x03 },
2066ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax = 170000, .val = 0x04 },
2076ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax = 180000, .val = 0x05 },
2086ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax = 865000, .val = 0x06 },
2096ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax =      0, .val = 0x00 }, /* end */
2106ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky};
2116ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky
212255b5113b4ed683898a24e381155c081f03411f7Michael Krufkystatic struct tda18271_map tda18271c1_km[] = {
2136ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax =  61100, .val = 0x74 },
2146ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax = 350000, .val = 0x40 },
2156ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax = 720000, .val = 0x30 },
2166ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax = 865000, .val = 0x40 },
2176ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax =      0, .val = 0x00 }, /* end */
2186ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky};
2196ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky
220255b5113b4ed683898a24e381155c081f03411f7Michael Krufkystatic struct tda18271_map tda18271c2_km[] = {
221255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax =  47900, .val = 0x38 },
222255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax =  61100, .val = 0x44 },
223255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 350000, .val = 0x30 },
224255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 720000, .val = 0x24 },
225255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 865000, .val = 0x3c },
226255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax =      0, .val = 0x00 }, /* end */
227255b5113b4ed683898a24e381155c081f03411f7Michael Krufky};
228255b5113b4ed683898a24e381155c081f03411f7Michael Krufky
229b5f3e1e153b60f7bc338cdd6eefacd59c2dfb375Michael Krufkystatic struct tda18271_map tda18271_rf_band[] = {
2306ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax =  47900, .val = 0x00 },
2316ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax =  61100, .val = 0x01 },
232786e86ae5efff8552f5ae07977324c226e0fcfe7Michael Krufky	{ .rfmax = 152600, .val = 0x02 },
2336ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax = 164700, .val = 0x03 },
2346ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax = 203500, .val = 0x04 },
2356ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax = 457800, .val = 0x05 },
2366ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax = 865000, .val = 0x06 },
2376ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax =      0, .val = 0x00 }, /* end */
2386ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky};
2396ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky
240b5f3e1e153b60f7bc338cdd6eefacd59c2dfb375Michael Krufkystatic struct tda18271_map tda18271_gain_taper[] = {
2416ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax =  45400, .val = 0x1f },
2426ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax =  45800, .val = 0x1e },
2436ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax =  46200, .val = 0x1d },
2446ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax =  46700, .val = 0x1c },
2456ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax =  47100, .val = 0x1b },
2466ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax =  47500, .val = 0x1a },
2476ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax =  47900, .val = 0x19 },
2486ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax =  49600, .val = 0x17 },
2496ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax =  51200, .val = 0x16 },
2506ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax =  52900, .val = 0x15 },
2516ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax =  54500, .val = 0x14 },
2526ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax =  56200, .val = 0x13 },
2536ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax =  57800, .val = 0x12 },
2546ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax =  59500, .val = 0x11 },
2556ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax =  61100, .val = 0x10 },
2566ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax =  67600, .val = 0x0d },
2576ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax =  74200, .val = 0x0c },
2586ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax =  80700, .val = 0x0b },
2596ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax =  87200, .val = 0x0a },
2606ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax =  93800, .val = 0x09 },
2616ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax = 100300, .val = 0x08 },
2626ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax = 106900, .val = 0x07 },
2636ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax = 113400, .val = 0x06 },
2646ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax = 119900, .val = 0x05 },
2656ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax = 126500, .val = 0x04 },
2666ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax = 133000, .val = 0x03 },
2676ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax = 139500, .val = 0x02 },
2686ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax = 146100, .val = 0x01 },
2696ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax = 152600, .val = 0x00 },
2706ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax = 154300, .val = 0x1f },
2716ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax = 156100, .val = 0x1e },
2726ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax = 157800, .val = 0x1d },
2736ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax = 159500, .val = 0x1c },
2746ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax = 161200, .val = 0x1b },
2756ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax = 163000, .val = 0x1a },
2766ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax = 164700, .val = 0x19 },
2776ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax = 170200, .val = 0x17 },
2786ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax = 175800, .val = 0x16 },
2796ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax = 181300, .val = 0x15 },
2806ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax = 186900, .val = 0x14 },
2816ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax = 192400, .val = 0x13 },
2826ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax = 198000, .val = 0x12 },
2836ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax = 203500, .val = 0x11 },
2846ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax = 216200, .val = 0x14 },
2856ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax = 228900, .val = 0x13 },
2866ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax = 241600, .val = 0x12 },
2876ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax = 254400, .val = 0x11 },
2886ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax = 267100, .val = 0x10 },
2896ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax = 279800, .val = 0x0f },
2906ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax = 292500, .val = 0x0e },
2916ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax = 305200, .val = 0x0d },
2926ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax = 317900, .val = 0x0c },
2936ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax = 330700, .val = 0x0b },
2946ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax = 343400, .val = 0x0a },
2956ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax = 356100, .val = 0x09 },
2966ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax = 368800, .val = 0x08 },
2976ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax = 381500, .val = 0x07 },
2986ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax = 394200, .val = 0x06 },
2996ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax = 406900, .val = 0x05 },
3006ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax = 419700, .val = 0x04 },
3016ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax = 432400, .val = 0x03 },
3026ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax = 445100, .val = 0x02 },
3036ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax = 457800, .val = 0x01 },
3046ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax = 476300, .val = 0x19 },
3056ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax = 494800, .val = 0x18 },
3066ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax = 513300, .val = 0x17 },
3076ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax = 531800, .val = 0x16 },
3086ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax = 550300, .val = 0x15 },
3096ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax = 568900, .val = 0x14 },
3106ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax = 587400, .val = 0x13 },
3116ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax = 605900, .val = 0x12 },
3126ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax = 624400, .val = 0x11 },
3136ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax = 642900, .val = 0x10 },
3146ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax = 661400, .val = 0x0f },
3156ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax = 679900, .val = 0x0e },
3166ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax = 698400, .val = 0x0d },
3176ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax = 716900, .val = 0x0c },
3186ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax = 735400, .val = 0x0b },
3196ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax = 753900, .val = 0x0a },
3206ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax = 772500, .val = 0x09 },
3216ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax = 791000, .val = 0x08 },
3226ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax = 809500, .val = 0x07 },
3236ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax = 828000, .val = 0x06 },
3246ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax = 846500, .val = 0x05 },
3256ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax = 865000, .val = 0x04 },
3266ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax =      0, .val = 0x00 }, /* end */
3276ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky};
3286ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky
329255b5113b4ed683898a24e381155c081f03411f7Michael Krufkystatic struct tda18271_map tda18271c1_rf_cal[] = {
3306ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax = 41000, .val = 0x1e },
3316ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax = 43000, .val = 0x30 },
3326ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax = 45000, .val = 0x43 },
3336ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax = 46000, .val = 0x4d },
3346ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax = 47000, .val = 0x54 },
3356ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax = 47900, .val = 0x64 },
3366ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax = 49100, .val = 0x20 },
3376ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax = 50000, .val = 0x22 },
3386ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax = 51000, .val = 0x2a },
3396ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax = 53000, .val = 0x32 },
3406ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax = 55000, .val = 0x35 },
3416ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax = 56000, .val = 0x3c },
3426ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax = 57000, .val = 0x3f },
3436ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax = 58000, .val = 0x48 },
3446ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax = 59000, .val = 0x4d },
3456ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax = 60000, .val = 0x58 },
3466ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax = 61100, .val = 0x5f },
3476ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky	{ .rfmax =     0, .val = 0x00 }, /* end */
3486ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky};
3496ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky
350255b5113b4ed683898a24e381155c081f03411f7Michael Krufkystatic struct tda18271_map tda18271c2_rf_cal[] = {
351255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax =  41000, .val = 0x0f },
352255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax =  43000, .val = 0x1c },
353255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax =  45000, .val = 0x2f },
354255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax =  46000, .val = 0x39 },
355255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax =  47000, .val = 0x40 },
356255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax =  47900, .val = 0x50 },
357255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax =  49100, .val = 0x16 },
358255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax =  50000, .val = 0x18 },
359255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax =  51000, .val = 0x20 },
360255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax =  53000, .val = 0x28 },
361255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax =  55000, .val = 0x2b },
362255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax =  56000, .val = 0x32 },
363255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax =  57000, .val = 0x35 },
364255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax =  58000, .val = 0x3e },
365255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax =  59000, .val = 0x43 },
366255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax =  60000, .val = 0x4e },
367255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax =  61100, .val = 0x55 },
368255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax =  63000, .val = 0x0f },
369255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax =  64000, .val = 0x11 },
370255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax =  65000, .val = 0x12 },
371255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax =  66000, .val = 0x15 },
372255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax =  67000, .val = 0x16 },
373255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax =  68000, .val = 0x17 },
374255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax =  70000, .val = 0x19 },
375255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax =  71000, .val = 0x1c },
376255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax =  72000, .val = 0x1d },
377255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax =  73000, .val = 0x1f },
378255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax =  74000, .val = 0x20 },
379255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax =  75000, .val = 0x21 },
380255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax =  76000, .val = 0x24 },
381255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax =  77000, .val = 0x25 },
382255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax =  78000, .val = 0x27 },
383255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax =  80000, .val = 0x28 },
384255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax =  81000, .val = 0x29 },
385255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax =  82000, .val = 0x2d },
386255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax =  83000, .val = 0x2e },
387255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax =  84000, .val = 0x2f },
388255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax =  85000, .val = 0x31 },
389255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax =  86000, .val = 0x33 },
390255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax =  87000, .val = 0x34 },
391255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax =  88000, .val = 0x35 },
392255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax =  89000, .val = 0x37 },
393255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax =  90000, .val = 0x38 },
394255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax =  91000, .val = 0x39 },
395255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax =  93000, .val = 0x3c },
396255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax =  94000, .val = 0x3e },
397255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax =  95000, .val = 0x3f },
398255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax =  96000, .val = 0x40 },
399255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax =  97000, .val = 0x42 },
400255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax =  99000, .val = 0x45 },
401255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 100000, .val = 0x46 },
402255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 102000, .val = 0x48 },
403255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 103000, .val = 0x4a },
404255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 105000, .val = 0x4d },
405255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 106000, .val = 0x4e },
406255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 107000, .val = 0x50 },
407255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 108000, .val = 0x51 },
408255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 110000, .val = 0x54 },
409255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 111000, .val = 0x56 },
410255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 112000, .val = 0x57 },
411255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 113000, .val = 0x58 },
412255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 114000, .val = 0x59 },
413255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 115000, .val = 0x5c },
414255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 116000, .val = 0x5d },
415255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 117000, .val = 0x5f },
416255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 119000, .val = 0x60 },
417255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 120000, .val = 0x64 },
418255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 121000, .val = 0x65 },
419255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 122000, .val = 0x66 },
420255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 123000, .val = 0x68 },
421255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 124000, .val = 0x69 },
422255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 125000, .val = 0x6c },
423255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 126000, .val = 0x6d },
424255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 127000, .val = 0x6e },
425255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 128000, .val = 0x70 },
426255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 129000, .val = 0x71 },
427255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 130000, .val = 0x75 },
428255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 131000, .val = 0x77 },
429255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 132000, .val = 0x78 },
430255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 133000, .val = 0x7b },
431255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 134000, .val = 0x7e },
432255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 135000, .val = 0x81 },
433255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 136000, .val = 0x82 },
434255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 137000, .val = 0x87 },
435255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 138000, .val = 0x88 },
436255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 139000, .val = 0x8d },
437255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 140000, .val = 0x8e },
438255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 141000, .val = 0x91 },
439255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 142000, .val = 0x95 },
440255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 143000, .val = 0x9a },
441255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 144000, .val = 0x9d },
442255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 145000, .val = 0xa1 },
443255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 146000, .val = 0xa2 },
444255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 147000, .val = 0xa4 },
445255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 148000, .val = 0xa9 },
446255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 149000, .val = 0xae },
447255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 150000, .val = 0xb0 },
448255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 151000, .val = 0xb1 },
449255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 152000, .val = 0xb7 },
4505b9a81d14fcf0bf166f73bc3b31463efbdb2660aMichael Krufky	{ .rfmax = 152600, .val = 0xbd },
451255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 154000, .val = 0x20 },
452255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 155000, .val = 0x22 },
453255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 156000, .val = 0x24 },
454255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 157000, .val = 0x25 },
455255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 158000, .val = 0x27 },
456255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 159000, .val = 0x29 },
457255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 160000, .val = 0x2c },
458255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 161000, .val = 0x2d },
459255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 163000, .val = 0x2e },
460255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 164000, .val = 0x2f },
4615b9a81d14fcf0bf166f73bc3b31463efbdb2660aMichael Krufky	{ .rfmax = 164700, .val = 0x30 },
462255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 166000, .val = 0x11 },
463255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 167000, .val = 0x12 },
464255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 168000, .val = 0x13 },
465255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 169000, .val = 0x14 },
466255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 170000, .val = 0x15 },
467255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 172000, .val = 0x16 },
468255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 173000, .val = 0x17 },
469255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 174000, .val = 0x18 },
470255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 175000, .val = 0x1a },
471255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 176000, .val = 0x1b },
472255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 178000, .val = 0x1d },
473255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 179000, .val = 0x1e },
474255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 180000, .val = 0x1f },
475255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 181000, .val = 0x20 },
476255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 182000, .val = 0x21 },
477255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 183000, .val = 0x22 },
478255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 184000, .val = 0x24 },
479255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 185000, .val = 0x25 },
480255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 186000, .val = 0x26 },
481255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 187000, .val = 0x27 },
482255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 188000, .val = 0x29 },
483255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 189000, .val = 0x2a },
484255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 190000, .val = 0x2c },
485255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 191000, .val = 0x2d },
486255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 192000, .val = 0x2e },
487255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 193000, .val = 0x2f },
488255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 194000, .val = 0x30 },
489255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 195000, .val = 0x33 },
490255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 196000, .val = 0x35 },
491255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 198000, .val = 0x36 },
492255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 200000, .val = 0x38 },
493255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 201000, .val = 0x3c },
494255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 202000, .val = 0x3d },
495255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 203500, .val = 0x3e },
496255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 206000, .val = 0x0e },
497255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 208000, .val = 0x0f },
498255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 212000, .val = 0x10 },
499255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 216000, .val = 0x11 },
500255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 217000, .val = 0x12 },
501255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 218000, .val = 0x13 },
502255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 220000, .val = 0x14 },
503255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 222000, .val = 0x15 },
504255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 225000, .val = 0x16 },
505255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 228000, .val = 0x17 },
506255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 231000, .val = 0x18 },
507255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 234000, .val = 0x19 },
508255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 235000, .val = 0x1a },
509255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 236000, .val = 0x1b },
510255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 237000, .val = 0x1c },
511255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 240000, .val = 0x1d },
5125b9a81d14fcf0bf166f73bc3b31463efbdb2660aMichael Krufky	{ .rfmax = 242000, .val = 0x1e },
5135b9a81d14fcf0bf166f73bc3b31463efbdb2660aMichael Krufky	{ .rfmax = 244000, .val = 0x1f },
514255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 247000, .val = 0x20 },
515255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 249000, .val = 0x21 },
516255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 252000, .val = 0x22 },
517255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 253000, .val = 0x23 },
518255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 254000, .val = 0x24 },
519255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 256000, .val = 0x25 },
520255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 259000, .val = 0x26 },
521255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 262000, .val = 0x27 },
522255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 264000, .val = 0x28 },
523255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 267000, .val = 0x29 },
524255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 269000, .val = 0x2a },
525255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 271000, .val = 0x2b },
526255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 273000, .val = 0x2c },
527255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 275000, .val = 0x2d },
528255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 277000, .val = 0x2e },
529255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 279000, .val = 0x2f },
530255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 282000, .val = 0x30 },
531255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 284000, .val = 0x31 },
532255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 286000, .val = 0x32 },
533255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 287000, .val = 0x33 },
534255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 290000, .val = 0x34 },
535255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 293000, .val = 0x35 },
536255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 295000, .val = 0x36 },
537255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 297000, .val = 0x37 },
538255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 300000, .val = 0x38 },
539255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 303000, .val = 0x39 },
540255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 305000, .val = 0x3a },
541255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 306000, .val = 0x3b },
542255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 307000, .val = 0x3c },
543255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 310000, .val = 0x3d },
544255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 312000, .val = 0x3e },
545255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 315000, .val = 0x3f },
546255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 318000, .val = 0x40 },
547255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 320000, .val = 0x41 },
548255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 323000, .val = 0x42 },
549255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 324000, .val = 0x43 },
550255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 325000, .val = 0x44 },
551255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 327000, .val = 0x45 },
552255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 331000, .val = 0x46 },
553255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 334000, .val = 0x47 },
554255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 337000, .val = 0x48 },
555255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 339000, .val = 0x49 },
556255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 340000, .val = 0x4a },
557255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 341000, .val = 0x4b },
558255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 343000, .val = 0x4c },
559255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 345000, .val = 0x4d },
560255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 349000, .val = 0x4e },
561255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 352000, .val = 0x4f },
562255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 353000, .val = 0x50 },
563255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 355000, .val = 0x51 },
564255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 357000, .val = 0x52 },
565255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 359000, .val = 0x53 },
566255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 361000, .val = 0x54 },
567255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 362000, .val = 0x55 },
568255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 364000, .val = 0x56 },
569255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 368000, .val = 0x57 },
570255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 370000, .val = 0x58 },
571255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 372000, .val = 0x59 },
572255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 375000, .val = 0x5a },
573255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 376000, .val = 0x5b },
574255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 377000, .val = 0x5c },
575255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 379000, .val = 0x5d },
576255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 382000, .val = 0x5e },
577255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 384000, .val = 0x5f },
578255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 385000, .val = 0x60 },
579255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 386000, .val = 0x61 },
580255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 388000, .val = 0x62 },
581255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 390000, .val = 0x63 },
582255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 393000, .val = 0x64 },
583255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 394000, .val = 0x65 },
584255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 396000, .val = 0x66 },
585255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 397000, .val = 0x67 },
586255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 398000, .val = 0x68 },
587255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 400000, .val = 0x69 },
588255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 402000, .val = 0x6a },
589255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 403000, .val = 0x6b },
590255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 407000, .val = 0x6c },
591255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 408000, .val = 0x6d },
592255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 409000, .val = 0x6e },
593255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 410000, .val = 0x6f },
594255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 411000, .val = 0x70 },
595255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 412000, .val = 0x71 },
596255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 413000, .val = 0x72 },
597255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 414000, .val = 0x73 },
598255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 417000, .val = 0x74 },
599255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 418000, .val = 0x75 },
600255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 420000, .val = 0x76 },
601255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 422000, .val = 0x77 },
602255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 423000, .val = 0x78 },
603255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 424000, .val = 0x79 },
604255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 427000, .val = 0x7a },
605255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 428000, .val = 0x7b },
606255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 429000, .val = 0x7d },
607255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 432000, .val = 0x7f },
608255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 434000, .val = 0x80 },
609255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 435000, .val = 0x81 },
610255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 436000, .val = 0x83 },
611255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 437000, .val = 0x84 },
612255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 438000, .val = 0x85 },
613255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 439000, .val = 0x86 },
614255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 440000, .val = 0x87 },
615255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 441000, .val = 0x88 },
616255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 442000, .val = 0x89 },
617255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 445000, .val = 0x8a },
618255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 446000, .val = 0x8b },
619255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 447000, .val = 0x8c },
620255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 448000, .val = 0x8e },
621255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 449000, .val = 0x8f },
622255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 450000, .val = 0x90 },
623255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 452000, .val = 0x91 },
624255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 453000, .val = 0x93 },
625255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 454000, .val = 0x94 },
626255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 456000, .val = 0x96 },
6275b9a81d14fcf0bf166f73bc3b31463efbdb2660aMichael Krufky	{ .rfmax = 457800, .val = 0x98 },
628255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 461000, .val = 0x11 },
629255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 468000, .val = 0x12 },
630255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 472000, .val = 0x13 },
631255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 473000, .val = 0x14 },
632255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 474000, .val = 0x15 },
633255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 481000, .val = 0x16 },
634255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 486000, .val = 0x17 },
635255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 491000, .val = 0x18 },
636255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 498000, .val = 0x19 },
637255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 499000, .val = 0x1a },
638255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 501000, .val = 0x1b },
639255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 506000, .val = 0x1c },
640255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 511000, .val = 0x1d },
641255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 516000, .val = 0x1e },
642255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 520000, .val = 0x1f },
643255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 521000, .val = 0x20 },
644255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 525000, .val = 0x21 },
645255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 529000, .val = 0x22 },
646255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 533000, .val = 0x23 },
647255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 539000, .val = 0x24 },
648255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 541000, .val = 0x25 },
649255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 547000, .val = 0x26 },
650255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 549000, .val = 0x27 },
651255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 551000, .val = 0x28 },
652255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 556000, .val = 0x29 },
653255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 561000, .val = 0x2a },
654255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 563000, .val = 0x2b },
655255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 565000, .val = 0x2c },
656255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 569000, .val = 0x2d },
657255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 571000, .val = 0x2e },
658255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 577000, .val = 0x2f },
659255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 580000, .val = 0x30 },
660255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 582000, .val = 0x31 },
661255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 584000, .val = 0x32 },
662255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 588000, .val = 0x33 },
663255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 591000, .val = 0x34 },
664255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 596000, .val = 0x35 },
665255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 598000, .val = 0x36 },
666255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 603000, .val = 0x37 },
667255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 604000, .val = 0x38 },
668255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 606000, .val = 0x39 },
669255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 612000, .val = 0x3a },
670255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 615000, .val = 0x3b },
671255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 617000, .val = 0x3c },
672255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 621000, .val = 0x3d },
673255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 622000, .val = 0x3e },
674255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 625000, .val = 0x3f },
675255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 632000, .val = 0x40 },
676255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 633000, .val = 0x41 },
677255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 634000, .val = 0x42 },
678255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 642000, .val = 0x43 },
679255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 643000, .val = 0x44 },
680255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 647000, .val = 0x45 },
681255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 650000, .val = 0x46 },
682255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 652000, .val = 0x47 },
683255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 657000, .val = 0x48 },
684255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 661000, .val = 0x49 },
685255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 662000, .val = 0x4a },
686255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 665000, .val = 0x4b },
687255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 667000, .val = 0x4c },
688255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 670000, .val = 0x4d },
689255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 673000, .val = 0x4e },
690255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 676000, .val = 0x4f },
691255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 677000, .val = 0x50 },
692255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 681000, .val = 0x51 },
693255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 683000, .val = 0x52 },
694255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 686000, .val = 0x53 },
695255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 688000, .val = 0x54 },
696255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 689000, .val = 0x55 },
697255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 691000, .val = 0x56 },
698255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 695000, .val = 0x57 },
699255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 698000, .val = 0x58 },
700255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 703000, .val = 0x59 },
701255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 704000, .val = 0x5a },
702255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 705000, .val = 0x5b },
703255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 707000, .val = 0x5c },
704255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 710000, .val = 0x5d },
705255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 712000, .val = 0x5e },
706255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 717000, .val = 0x5f },
707255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 718000, .val = 0x60 },
708255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 721000, .val = 0x61 },
709255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 722000, .val = 0x62 },
710255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 723000, .val = 0x63 },
711255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 725000, .val = 0x64 },
712255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 727000, .val = 0x65 },
713255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 730000, .val = 0x66 },
714255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 732000, .val = 0x67 },
715255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 735000, .val = 0x68 },
716255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 740000, .val = 0x69 },
717255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 741000, .val = 0x6a },
718255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 742000, .val = 0x6b },
719255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 743000, .val = 0x6c },
720255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 745000, .val = 0x6d },
721255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 747000, .val = 0x6e },
722255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 748000, .val = 0x6f },
723255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 750000, .val = 0x70 },
724255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 752000, .val = 0x71 },
725255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 754000, .val = 0x72 },
726255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 757000, .val = 0x73 },
727255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 758000, .val = 0x74 },
728255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 760000, .val = 0x75 },
729255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 763000, .val = 0x76 },
730255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 764000, .val = 0x77 },
731255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 766000, .val = 0x78 },
732255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 767000, .val = 0x79 },
733255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 768000, .val = 0x7a },
734255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 773000, .val = 0x7b },
735255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 774000, .val = 0x7c },
736255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 776000, .val = 0x7d },
737255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 777000, .val = 0x7e },
738255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 778000, .val = 0x7f },
739255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 779000, .val = 0x80 },
740255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 781000, .val = 0x81 },
741255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 783000, .val = 0x82 },
742255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 784000, .val = 0x83 },
743255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 785000, .val = 0x84 },
744255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 786000, .val = 0x85 },
745255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 793000, .val = 0x86 },
746255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 794000, .val = 0x87 },
747255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 795000, .val = 0x88 },
748255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 797000, .val = 0x89 },
749255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 799000, .val = 0x8a },
750255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 801000, .val = 0x8b },
751255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 802000, .val = 0x8c },
752255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 803000, .val = 0x8d },
753255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 804000, .val = 0x8e },
754255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 810000, .val = 0x90 },
755255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 811000, .val = 0x91 },
756255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 812000, .val = 0x92 },
757255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 814000, .val = 0x93 },
758255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 816000, .val = 0x94 },
759255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 817000, .val = 0x96 },
760255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 818000, .val = 0x97 },
761255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 820000, .val = 0x98 },
762255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 821000, .val = 0x99 },
763255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 822000, .val = 0x9a },
764255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 828000, .val = 0x9b },
765255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 829000, .val = 0x9d },
766255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 830000, .val = 0x9f },
767255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 831000, .val = 0xa0 },
768255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 833000, .val = 0xa1 },
769255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 835000, .val = 0xa2 },
770255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 836000, .val = 0xa3 },
771255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 837000, .val = 0xa4 },
772255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 838000, .val = 0xa6 },
773255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 840000, .val = 0xa8 },
774255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 842000, .val = 0xa9 },
775255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 845000, .val = 0xaa },
776255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 846000, .val = 0xab },
777255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 847000, .val = 0xad },
778255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 848000, .val = 0xae },
779255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 852000, .val = 0xaf },
780255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 853000, .val = 0xb0 },
781255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 858000, .val = 0xb1 },
782255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 860000, .val = 0xb2 },
783255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 861000, .val = 0xb3 },
784255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 862000, .val = 0xb4 },
785255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 863000, .val = 0xb6 },
786255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 864000, .val = 0xb8 },
787255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 865000, .val = 0xb9 },
788255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax =      0, .val = 0x00 }, /* end */
789255b5113b4ed683898a24e381155c081f03411f7Michael Krufky};
790255b5113b4ed683898a24e381155c081f03411f7Michael Krufky
791b5f3e1e153b60f7bc338cdd6eefacd59c2dfb375Michael Krufkystatic struct tda18271_map tda18271_ir_measure[] = {
7927686b574a1507ecf5fd7c419b43f26222668aa4dMichael Krufky	{ .rfmax =  30000, .val = 4 },
7937686b574a1507ecf5fd7c419b43f26222668aa4dMichael Krufky	{ .rfmax = 200000, .val = 5 },
7947686b574a1507ecf5fd7c419b43f26222668aa4dMichael Krufky	{ .rfmax = 600000, .val = 6 },
7957686b574a1507ecf5fd7c419b43f26222668aa4dMichael Krufky	{ .rfmax = 865000, .val = 7 },
7967686b574a1507ecf5fd7c419b43f26222668aa4dMichael Krufky	{ .rfmax =      0, .val = 0 }, /* end */
797aaeccba68a60eedee5fe90f9e1478367b1f97345Michael Krufky};
798aaeccba68a60eedee5fe90f9e1478367b1f97345Michael Krufky
799255b5113b4ed683898a24e381155c081f03411f7Michael Krufkystatic struct tda18271_map tda18271_rf_cal_dc_over_dt[] = {
800255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax =  47900, .val = 0x00 },
801255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax =  55000, .val = 0x00 },
802255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax =  61100, .val = 0x0a },
803255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax =  64000, .val = 0x0a },
804255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax =  82000, .val = 0x14 },
805255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax =  84000, .val = 0x19 },
806255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 119000, .val = 0x1c },
807255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 124000, .val = 0x20 },
808255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 129000, .val = 0x2a },
809255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 134000, .val = 0x32 },
810255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 139000, .val = 0x39 },
811255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 144000, .val = 0x3e },
812255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 149000, .val = 0x3f },
813255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 152600, .val = 0x40 },
814255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 154000, .val = 0x40 },
815255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 164700, .val = 0x41 },
816255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 203500, .val = 0x32 },
817255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 353000, .val = 0x19 },
818255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 356000, .val = 0x1a },
819255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 359000, .val = 0x1b },
820255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 363000, .val = 0x1c },
821255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 366000, .val = 0x1d },
822255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 369000, .val = 0x1e },
823255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 373000, .val = 0x1f },
824255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 376000, .val = 0x20 },
825255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 379000, .val = 0x21 },
826255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 383000, .val = 0x22 },
827255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 386000, .val = 0x23 },
828255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 389000, .val = 0x24 },
829255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 393000, .val = 0x25 },
830255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 396000, .val = 0x26 },
831255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 399000, .val = 0x27 },
832255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 402000, .val = 0x28 },
833255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 404000, .val = 0x29 },
834255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 407000, .val = 0x2a },
835255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 409000, .val = 0x2b },
836255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 412000, .val = 0x2c },
837255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 414000, .val = 0x2d },
838255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 417000, .val = 0x2e },
839255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 419000, .val = 0x2f },
840255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 422000, .val = 0x30 },
841255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 424000, .val = 0x31 },
842255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 427000, .val = 0x32 },
843255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 429000, .val = 0x33 },
844255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 432000, .val = 0x34 },
845255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 434000, .val = 0x35 },
846255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 437000, .val = 0x36 },
847255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 439000, .val = 0x37 },
848255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 442000, .val = 0x38 },
849255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 444000, .val = 0x39 },
850255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 447000, .val = 0x3a },
851255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 449000, .val = 0x3b },
852255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 457800, .val = 0x3c },
853255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 465000, .val = 0x0f },
854255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 477000, .val = 0x12 },
855255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 483000, .val = 0x14 },
856255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 502000, .val = 0x19 },
857255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 508000, .val = 0x1b },
858255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 519000, .val = 0x1c },
859255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 522000, .val = 0x1d },
860255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 524000, .val = 0x1e },
861255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 534000, .val = 0x1f },
862255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 549000, .val = 0x20 },
863255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 554000, .val = 0x22 },
864255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 584000, .val = 0x24 },
865255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 589000, .val = 0x26 },
866255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 658000, .val = 0x27 },
867255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 664000, .val = 0x2c },
868255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 669000, .val = 0x2d },
869255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 699000, .val = 0x2e },
870255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 704000, .val = 0x30 },
871255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 709000, .val = 0x31 },
872255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 714000, .val = 0x32 },
873255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 724000, .val = 0x33 },
874255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 729000, .val = 0x36 },
875255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 739000, .val = 0x38 },
876255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 744000, .val = 0x39 },
877255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 749000, .val = 0x3b },
878255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 754000, .val = 0x3c },
879255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 759000, .val = 0x3d },
880255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 764000, .val = 0x3e },
881255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 769000, .val = 0x3f },
882255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 774000, .val = 0x40 },
883255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 779000, .val = 0x41 },
884255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 784000, .val = 0x43 },
885255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 789000, .val = 0x46 },
886255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 794000, .val = 0x48 },
887255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 799000, .val = 0x4b },
888255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 804000, .val = 0x4f },
889255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 809000, .val = 0x54 },
890255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 814000, .val = 0x59 },
891255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 819000, .val = 0x5d },
892255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 824000, .val = 0x61 },
893255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 829000, .val = 0x68 },
894255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 834000, .val = 0x6e },
895255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 839000, .val = 0x75 },
896255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 844000, .val = 0x7e },
897255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 849000, .val = 0x82 },
898255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 854000, .val = 0x84 },
899255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 859000, .val = 0x8f },
900255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 865000, .val = 0x9a },
901255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax =      0, .val = 0x00 }, /* end */
902255b5113b4ed683898a24e381155c081f03411f7Michael Krufky};
903255b5113b4ed683898a24e381155c081f03411f7Michael Krufky
904255b5113b4ed683898a24e381155c081f03411f7Michael Krufky/*---------------------------------------------------------------------*/
905255b5113b4ed683898a24e381155c081f03411f7Michael Krufky
906255b5113b4ed683898a24e381155c081f03411f7Michael Krufkystruct tda18271_thermo_map {
907255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	u8 d;
908255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	u8 r0;
909255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	u8 r1;
910255b5113b4ed683898a24e381155c081f03411f7Michael Krufky};
911255b5113b4ed683898a24e381155c081f03411f7Michael Krufky
912255b5113b4ed683898a24e381155c081f03411f7Michael Krufkystatic struct tda18271_thermo_map tda18271_thermometer[] = {
913255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .d = 0x00, .r0 = 60, .r1 =  92 },
914255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .d = 0x01, .r0 = 62, .r1 =  94 },
915255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .d = 0x02, .r0 = 66, .r1 =  98 },
916255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .d = 0x03, .r0 = 64, .r1 =  96 },
917255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .d = 0x04, .r0 = 74, .r1 = 106 },
918255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .d = 0x05, .r0 = 72, .r1 = 104 },
919255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .d = 0x06, .r0 = 68, .r1 = 100 },
920255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .d = 0x07, .r0 = 70, .r1 = 102 },
921255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .d = 0x08, .r0 = 90, .r1 = 122 },
922255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .d = 0x09, .r0 = 88, .r1 = 120 },
923255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .d = 0x0a, .r0 = 84, .r1 = 116 },
924255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .d = 0x0b, .r0 = 86, .r1 = 118 },
925255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .d = 0x0c, .r0 = 76, .r1 = 108 },
926255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .d = 0x0d, .r0 = 78, .r1 = 110 },
927255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .d = 0x0e, .r0 = 82, .r1 = 114 },
928255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .d = 0x0f, .r0 = 80, .r1 = 112 },
929255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .d = 0x00, .r0 =  0, .r1 =   0 }, /* end */
930255b5113b4ed683898a24e381155c081f03411f7Michael Krufky};
931255b5113b4ed683898a24e381155c081f03411f7Michael Krufky
932255b5113b4ed683898a24e381155c081f03411f7Michael Krufkyint tda18271_lookup_thermometer(struct dvb_frontend *fe)
933255b5113b4ed683898a24e381155c081f03411f7Michael Krufky{
934255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	struct tda18271_priv *priv = fe->tuner_priv;
935255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	unsigned char *regs = priv->tda18271_regs;
936255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	int val, i = 0;
937255b5113b4ed683898a24e381155c081f03411f7Michael Krufky
938255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	while (tda18271_thermometer[i].d < (regs[R_TM] & 0x0f)) {
939255b5113b4ed683898a24e381155c081f03411f7Michael Krufky		if (tda18271_thermometer[i + 1].d == 0)
940255b5113b4ed683898a24e381155c081f03411f7Michael Krufky			break;
941255b5113b4ed683898a24e381155c081f03411f7Michael Krufky		i++;
942255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	}
943255b5113b4ed683898a24e381155c081f03411f7Michael Krufky
944255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	if ((regs[R_TM] & 0x20) == 0x20)
945255b5113b4ed683898a24e381155c081f03411f7Michael Krufky		val = tda18271_thermometer[i].r1;
946255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	else
947255b5113b4ed683898a24e381155c081f03411f7Michael Krufky		val = tda18271_thermometer[i].r0;
948255b5113b4ed683898a24e381155c081f03411f7Michael Krufky
949255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	tda_map("(%d) tm = %d\n", i, val);
950255b5113b4ed683898a24e381155c081f03411f7Michael Krufky
951255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	return val;
952255b5113b4ed683898a24e381155c081f03411f7Michael Krufky}
953255b5113b4ed683898a24e381155c081f03411f7Michael Krufky
954255b5113b4ed683898a24e381155c081f03411f7Michael Krufky/*---------------------------------------------------------------------*/
955255b5113b4ed683898a24e381155c081f03411f7Michael Krufky
956255b5113b4ed683898a24e381155c081f03411f7Michael Krufkystruct tda18271_cid_target_map {
957255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	u32 rfmax;
958255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	u8  target;
959255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	u16 limit;
960255b5113b4ed683898a24e381155c081f03411f7Michael Krufky};
961255b5113b4ed683898a24e381155c081f03411f7Michael Krufky
962255b5113b4ed683898a24e381155c081f03411f7Michael Krufkystatic struct tda18271_cid_target_map tda18271_cid_target[] = {
963255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax =  46000, .target = 0x04, .limit =  1800 },
964255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax =  52200, .target = 0x0a, .limit =  1500 },
965d1f7510b9179ef7249db08e50d51654f1bf8e261Henk Vergonet	{ .rfmax =  70100, .target = 0x01, .limit =  4000 },
966255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 136800, .target = 0x18, .limit =  4000 },
967255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 156700, .target = 0x18, .limit =  4000 },
968255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 186250, .target = 0x0a, .limit =  4000 },
969255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 230000, .target = 0x0a, .limit =  4000 },
970255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 345000, .target = 0x18, .limit =  4000 },
971255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 426000, .target = 0x0e, .limit =  4000 },
972255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 489500, .target = 0x1e, .limit =  4000 },
973255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 697500, .target = 0x32, .limit =  4000 },
974255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 842000, .target = 0x3a, .limit =  4000 },
975255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax =      0, .target = 0x00, .limit =     0 }, /* end */
976255b5113b4ed683898a24e381155c081f03411f7Michael Krufky};
977255b5113b4ed683898a24e381155c081f03411f7Michael Krufky
978255b5113b4ed683898a24e381155c081f03411f7Michael Krufkyint tda18271_lookup_cid_target(struct dvb_frontend *fe,
979255b5113b4ed683898a24e381155c081f03411f7Michael Krufky			       u32 *freq, u8 *cid_target, u16 *count_limit)
980255b5113b4ed683898a24e381155c081f03411f7Michael Krufky{
981c0faeee5a3b70c894a27fa81a0d98a3ab223aff0Michael Krufky	struct tda18271_priv *priv = fe->tuner_priv;
982255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	int i = 0;
983255b5113b4ed683898a24e381155c081f03411f7Michael Krufky
984255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	while ((tda18271_cid_target[i].rfmax * 1000) < *freq) {
985255b5113b4ed683898a24e381155c081f03411f7Michael Krufky		if (tda18271_cid_target[i + 1].rfmax == 0)
986255b5113b4ed683898a24e381155c081f03411f7Michael Krufky			break;
987255b5113b4ed683898a24e381155c081f03411f7Michael Krufky		i++;
988255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	}
989255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	*cid_target  = tda18271_cid_target[i].target;
990255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	*count_limit = tda18271_cid_target[i].limit;
991255b5113b4ed683898a24e381155c081f03411f7Michael Krufky
992255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	tda_map("(%d) cid_target = %02x, count_limit = %d\n", i,
993255b5113b4ed683898a24e381155c081f03411f7Michael Krufky		tda18271_cid_target[i].target, tda18271_cid_target[i].limit);
994255b5113b4ed683898a24e381155c081f03411f7Michael Krufky
995255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	return 0;
996255b5113b4ed683898a24e381155c081f03411f7Michael Krufky}
997255b5113b4ed683898a24e381155c081f03411f7Michael Krufky
998255b5113b4ed683898a24e381155c081f03411f7Michael Krufky/*---------------------------------------------------------------------*/
999255b5113b4ed683898a24e381155c081f03411f7Michael Krufky
1000255b5113b4ed683898a24e381155c081f03411f7Michael Krufkystatic struct tda18271_rf_tracking_filter_cal tda18271_rf_band_template[] = {
1001255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax =  47900, .rfband = 0x00,
1002255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	  .rf1_def =  46000, .rf2_def =      0, .rf3_def =      0 },
1003255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax =  61100, .rfband = 0x01,
1004255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	  .rf1_def =  52200, .rf2_def =      0, .rf3_def =      0 },
1005255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 152600, .rfband = 0x02,
1006255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	  .rf1_def =  70100, .rf2_def = 136800, .rf3_def =      0 },
1007255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 164700, .rfband = 0x03,
1008255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	  .rf1_def = 156700, .rf2_def =      0, .rf3_def =      0 },
1009255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 203500, .rfband = 0x04,
1010255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	  .rf1_def = 186250, .rf2_def =      0, .rf3_def =      0 },
1011255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 457800, .rfband = 0x05,
1012255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	  .rf1_def = 230000, .rf2_def = 345000, .rf3_def = 426000 },
1013255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax = 865000, .rfband = 0x06,
1014255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	  .rf1_def = 489500, .rf2_def = 697500, .rf3_def = 842000 },
1015255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	{ .rfmax =      0, .rfband = 0x00,
1016255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	  .rf1_def =      0, .rf2_def =      0, .rf3_def =      0 }, /* end */
1017255b5113b4ed683898a24e381155c081f03411f7Michael Krufky};
1018255b5113b4ed683898a24e381155c081f03411f7Michael Krufky
1019255b5113b4ed683898a24e381155c081f03411f7Michael Krufkyint tda18271_lookup_rf_band(struct dvb_frontend *fe, u32 *freq, u8 *rf_band)
1020255b5113b4ed683898a24e381155c081f03411f7Michael Krufky{
1021255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	struct tda18271_priv *priv = fe->tuner_priv;
1022255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	struct tda18271_rf_tracking_filter_cal *map = priv->rf_cal_state;
1023255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	int i = 0;
1024255b5113b4ed683898a24e381155c081f03411f7Michael Krufky
1025255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	while ((map[i].rfmax * 1000) < *freq) {
1026255b5113b4ed683898a24e381155c081f03411f7Michael Krufky		if (tda18271_debug & DBG_ADV)
1027255b5113b4ed683898a24e381155c081f03411f7Michael Krufky			tda_map("(%d) rfmax = %d < freq = %d, "
1028255b5113b4ed683898a24e381155c081f03411f7Michael Krufky				"rf1_def = %d, rf2_def = %d, rf3_def = %d, "
1029255b5113b4ed683898a24e381155c081f03411f7Michael Krufky				"rf1 = %d, rf2 = %d, rf3 = %d, "
1030255b5113b4ed683898a24e381155c081f03411f7Michael Krufky				"rf_a1 = %d, rf_a2 = %d, "
1031255b5113b4ed683898a24e381155c081f03411f7Michael Krufky				"rf_b1 = %d, rf_b2 = %d\n",
1032255b5113b4ed683898a24e381155c081f03411f7Michael Krufky				i, map[i].rfmax * 1000, *freq,
1033255b5113b4ed683898a24e381155c081f03411f7Michael Krufky				map[i].rf1_def, map[i].rf2_def, map[i].rf3_def,
1034255b5113b4ed683898a24e381155c081f03411f7Michael Krufky				map[i].rf1, map[i].rf2, map[i].rf3,
1035255b5113b4ed683898a24e381155c081f03411f7Michael Krufky				map[i].rf_a1, map[i].rf_a2,
1036255b5113b4ed683898a24e381155c081f03411f7Michael Krufky				map[i].rf_b1, map[i].rf_b2);
1037255b5113b4ed683898a24e381155c081f03411f7Michael Krufky		if (map[i].rfmax == 0)
1038255b5113b4ed683898a24e381155c081f03411f7Michael Krufky			return -EINVAL;
1039255b5113b4ed683898a24e381155c081f03411f7Michael Krufky		i++;
1040255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	}
1041255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	if (rf_band)
1042255b5113b4ed683898a24e381155c081f03411f7Michael Krufky		*rf_band = map[i].rfband;
1043255b5113b4ed683898a24e381155c081f03411f7Michael Krufky
1044255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	tda_map("(%d) rf_band = %02x\n", i, map[i].rfband);
1045255b5113b4ed683898a24e381155c081f03411f7Michael Krufky
1046255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	return i;
1047255b5113b4ed683898a24e381155c081f03411f7Michael Krufky}
1048255b5113b4ed683898a24e381155c081f03411f7Michael Krufky
1049b5f3e1e153b60f7bc338cdd6eefacd59c2dfb375Michael Krufky/*---------------------------------------------------------------------*/
1050b5f3e1e153b60f7bc338cdd6eefacd59c2dfb375Michael Krufky
1051255b5113b4ed683898a24e381155c081f03411f7Michael Krufkystruct tda18271_map_layout {
1052255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	struct tda18271_pll_map *main_pll;
1053255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	struct tda18271_pll_map *cal_pll;
1054255b5113b4ed683898a24e381155c081f03411f7Michael Krufky
1055255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	struct tda18271_map *rf_cal;
1056255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	struct tda18271_map *rf_cal_kmco;
1057255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	struct tda18271_map *rf_cal_dc_over_dt;
1058255b5113b4ed683898a24e381155c081f03411f7Michael Krufky
1059255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	struct tda18271_map *bp_filter;
1060255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	struct tda18271_map *rf_band;
1061255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	struct tda18271_map *gain_taper;
1062255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	struct tda18271_map *ir_measure;
1063255b5113b4ed683898a24e381155c081f03411f7Michael Krufky};
1064255b5113b4ed683898a24e381155c081f03411f7Michael Krufky
1065255b5113b4ed683898a24e381155c081f03411f7Michael Krufky/*---------------------------------------------------------------------*/
1066255b5113b4ed683898a24e381155c081f03411f7Michael Krufky
1067255b5113b4ed683898a24e381155c081f03411f7Michael Krufkyint tda18271_lookup_pll_map(struct dvb_frontend *fe,
1068255b5113b4ed683898a24e381155c081f03411f7Michael Krufky			    enum tda18271_map_type map_type,
10692f27dfc98cc0a183be9e3c2fc0da0450b85e5fdeMichael Krufky			    u32 *freq, u8 *post_div, u8 *div)
1070b5f3e1e153b60f7bc338cdd6eefacd59c2dfb375Michael Krufky{
1071255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	struct tda18271_priv *priv = fe->tuner_priv;
10722f27dfc98cc0a183be9e3c2fc0da0450b85e5fdeMichael Krufky	struct tda18271_pll_map *map = NULL;
10732f27dfc98cc0a183be9e3c2fc0da0450b85e5fdeMichael Krufky	unsigned int i = 0;
10742f27dfc98cc0a183be9e3c2fc0da0450b85e5fdeMichael Krufky	char *map_name;
107533f25b42753f464c5927e8b828352333780c14bdMichael Krufky	int ret = 0;
10762f27dfc98cc0a183be9e3c2fc0da0450b85e5fdeMichael Krufky
1077255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	BUG_ON(!priv->maps);
1078255b5113b4ed683898a24e381155c081f03411f7Michael Krufky
10792f27dfc98cc0a183be9e3c2fc0da0450b85e5fdeMichael Krufky	switch (map_type) {
10802f27dfc98cc0a183be9e3c2fc0da0450b85e5fdeMichael Krufky	case MAIN_PLL:
1081255b5113b4ed683898a24e381155c081f03411f7Michael Krufky		map = priv->maps->main_pll;
10822f27dfc98cc0a183be9e3c2fc0da0450b85e5fdeMichael Krufky		map_name = "main_pll";
10832f27dfc98cc0a183be9e3c2fc0da0450b85e5fdeMichael Krufky		break;
10842f27dfc98cc0a183be9e3c2fc0da0450b85e5fdeMichael Krufky	case CAL_PLL:
1085255b5113b4ed683898a24e381155c081f03411f7Michael Krufky		map = priv->maps->cal_pll;
10862f27dfc98cc0a183be9e3c2fc0da0450b85e5fdeMichael Krufky		map_name = "cal_pll";
10872f27dfc98cc0a183be9e3c2fc0da0450b85e5fdeMichael Krufky		break;
10882f27dfc98cc0a183be9e3c2fc0da0450b85e5fdeMichael Krufky	default:
10892f27dfc98cc0a183be9e3c2fc0da0450b85e5fdeMichael Krufky		/* we should never get here */
10902f27dfc98cc0a183be9e3c2fc0da0450b85e5fdeMichael Krufky		map_name = "undefined";
10912f27dfc98cc0a183be9e3c2fc0da0450b85e5fdeMichael Krufky		break;
10922f27dfc98cc0a183be9e3c2fc0da0450b85e5fdeMichael Krufky	}
10932f27dfc98cc0a183be9e3c2fc0da0450b85e5fdeMichael Krufky
10942f27dfc98cc0a183be9e3c2fc0da0450b85e5fdeMichael Krufky	if (!map) {
1095182519f4c99f73f376323580dda494d986b4760bMichael Krufky		tda_warn("%s map is not set!\n", map_name);
109633f25b42753f464c5927e8b828352333780c14bdMichael Krufky		ret = -EINVAL;
109733f25b42753f464c5927e8b828352333780c14bdMichael Krufky		goto fail;
1098b5f3e1e153b60f7bc338cdd6eefacd59c2dfb375Michael Krufky	}
1099b5f3e1e153b60f7bc338cdd6eefacd59c2dfb375Michael Krufky
1100b5f3e1e153b60f7bc338cdd6eefacd59c2dfb375Michael Krufky	while ((map[i].lomax * 1000) < *freq) {
1101d2c932a1f7aca16727ce6670c5eccb0a4e2b47a5Michael Krufky		if (map[i + 1].lomax == 0) {
110233f25b42753f464c5927e8b828352333780c14bdMichael Krufky			tda_map("%s: frequency (%d) out of range\n",
110333f25b42753f464c5927e8b828352333780c14bdMichael Krufky				map_name, *freq);
110433f25b42753f464c5927e8b828352333780c14bdMichael Krufky			ret = -ERANGE;
1105b5f3e1e153b60f7bc338cdd6eefacd59c2dfb375Michael Krufky			break;
110633f25b42753f464c5927e8b828352333780c14bdMichael Krufky		}
1107b5f3e1e153b60f7bc338cdd6eefacd59c2dfb375Michael Krufky		i++;
1108b5f3e1e153b60f7bc338cdd6eefacd59c2dfb375Michael Krufky	}
1109b5f3e1e153b60f7bc338cdd6eefacd59c2dfb375Michael Krufky	*post_div = map[i].pd;
1110b5f3e1e153b60f7bc338cdd6eefacd59c2dfb375Michael Krufky	*div      = map[i].d;
1111b5f3e1e153b60f7bc338cdd6eefacd59c2dfb375Michael Krufky
1112255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	tda_map("(%d) %s: post div = 0x%02x, div = 0x%02x\n",
1113255b5113b4ed683898a24e381155c081f03411f7Michael Krufky		i, map_name, *post_div, *div);
111433f25b42753f464c5927e8b828352333780c14bdMichael Krufkyfail:
111533f25b42753f464c5927e8b828352333780c14bdMichael Krufky	return ret;
1116b5f3e1e153b60f7bc338cdd6eefacd59c2dfb375Michael Krufky}
1117b5f3e1e153b60f7bc338cdd6eefacd59c2dfb375Michael Krufky
1118255b5113b4ed683898a24e381155c081f03411f7Michael Krufkyint tda18271_lookup_map(struct dvb_frontend *fe,
1119255b5113b4ed683898a24e381155c081f03411f7Michael Krufky			enum tda18271_map_type map_type,
1120255b5113b4ed683898a24e381155c081f03411f7Michael Krufky			u32 *freq, u8 *val)
1121b5f3e1e153b60f7bc338cdd6eefacd59c2dfb375Michael Krufky{
1122255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	struct tda18271_priv *priv = fe->tuner_priv;
11232f27dfc98cc0a183be9e3c2fc0da0450b85e5fdeMichael Krufky	struct tda18271_map *map = NULL;
11242f27dfc98cc0a183be9e3c2fc0da0450b85e5fdeMichael Krufky	unsigned int i = 0;
11252f27dfc98cc0a183be9e3c2fc0da0450b85e5fdeMichael Krufky	char *map_name;
112633f25b42753f464c5927e8b828352333780c14bdMichael Krufky	int ret = 0;
1127b5f3e1e153b60f7bc338cdd6eefacd59c2dfb375Michael Krufky
1128255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	BUG_ON(!priv->maps);
1129255b5113b4ed683898a24e381155c081f03411f7Michael Krufky
11302f27dfc98cc0a183be9e3c2fc0da0450b85e5fdeMichael Krufky	switch (map_type) {
11312f27dfc98cc0a183be9e3c2fc0da0450b85e5fdeMichael Krufky	case BP_FILTER:
1132255b5113b4ed683898a24e381155c081f03411f7Michael Krufky		map = priv->maps->bp_filter;
11332f27dfc98cc0a183be9e3c2fc0da0450b85e5fdeMichael Krufky		map_name = "bp_filter";
11342f27dfc98cc0a183be9e3c2fc0da0450b85e5fdeMichael Krufky		break;
11352f27dfc98cc0a183be9e3c2fc0da0450b85e5fdeMichael Krufky	case RF_CAL_KMCO:
1136255b5113b4ed683898a24e381155c081f03411f7Michael Krufky		map = priv->maps->rf_cal_kmco;
11372f27dfc98cc0a183be9e3c2fc0da0450b85e5fdeMichael Krufky		map_name = "km";
11382f27dfc98cc0a183be9e3c2fc0da0450b85e5fdeMichael Krufky		break;
11392f27dfc98cc0a183be9e3c2fc0da0450b85e5fdeMichael Krufky	case RF_BAND:
1140255b5113b4ed683898a24e381155c081f03411f7Michael Krufky		map = priv->maps->rf_band;
11412f27dfc98cc0a183be9e3c2fc0da0450b85e5fdeMichael Krufky		map_name = "rf_band";
11422f27dfc98cc0a183be9e3c2fc0da0450b85e5fdeMichael Krufky		break;
11432f27dfc98cc0a183be9e3c2fc0da0450b85e5fdeMichael Krufky	case GAIN_TAPER:
1144255b5113b4ed683898a24e381155c081f03411f7Michael Krufky		map = priv->maps->gain_taper;
11452f27dfc98cc0a183be9e3c2fc0da0450b85e5fdeMichael Krufky		map_name = "gain_taper";
11462f27dfc98cc0a183be9e3c2fc0da0450b85e5fdeMichael Krufky		break;
11472f27dfc98cc0a183be9e3c2fc0da0450b85e5fdeMichael Krufky	case RF_CAL:
1148255b5113b4ed683898a24e381155c081f03411f7Michael Krufky		map = priv->maps->rf_cal;
11492f27dfc98cc0a183be9e3c2fc0da0450b85e5fdeMichael Krufky		map_name = "rf_cal";
11502f27dfc98cc0a183be9e3c2fc0da0450b85e5fdeMichael Krufky		break;
11512f27dfc98cc0a183be9e3c2fc0da0450b85e5fdeMichael Krufky	case IR_MEASURE:
1152255b5113b4ed683898a24e381155c081f03411f7Michael Krufky		map = priv->maps->ir_measure;
11532f27dfc98cc0a183be9e3c2fc0da0450b85e5fdeMichael Krufky		map_name = "ir_measure";
11542f27dfc98cc0a183be9e3c2fc0da0450b85e5fdeMichael Krufky		break;
1155255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	case RF_CAL_DC_OVER_DT:
1156255b5113b4ed683898a24e381155c081f03411f7Michael Krufky		map = priv->maps->rf_cal_dc_over_dt;
1157255b5113b4ed683898a24e381155c081f03411f7Michael Krufky		map_name = "rf_cal_dc_over_dt";
1158255b5113b4ed683898a24e381155c081f03411f7Michael Krufky		break;
11592f27dfc98cc0a183be9e3c2fc0da0450b85e5fdeMichael Krufky	default:
11602f27dfc98cc0a183be9e3c2fc0da0450b85e5fdeMichael Krufky		/* we should never get here */
11612f27dfc98cc0a183be9e3c2fc0da0450b85e5fdeMichael Krufky		map_name = "undefined";
11622f27dfc98cc0a183be9e3c2fc0da0450b85e5fdeMichael Krufky		break;
11632f27dfc98cc0a183be9e3c2fc0da0450b85e5fdeMichael Krufky	}
1164b5f3e1e153b60f7bc338cdd6eefacd59c2dfb375Michael Krufky
11652f27dfc98cc0a183be9e3c2fc0da0450b85e5fdeMichael Krufky	if (!map) {
1166182519f4c99f73f376323580dda494d986b4760bMichael Krufky		tda_warn("%s map is not set!\n", map_name);
116733f25b42753f464c5927e8b828352333780c14bdMichael Krufky		ret = -EINVAL;
116833f25b42753f464c5927e8b828352333780c14bdMichael Krufky		goto fail;
11692f27dfc98cc0a183be9e3c2fc0da0450b85e5fdeMichael Krufky	}
1170b5f3e1e153b60f7bc338cdd6eefacd59c2dfb375Michael Krufky
11712f27dfc98cc0a183be9e3c2fc0da0450b85e5fdeMichael Krufky	while ((map[i].rfmax * 1000) < *freq) {
1172d2c932a1f7aca16727ce6670c5eccb0a4e2b47a5Michael Krufky		if (map[i + 1].rfmax == 0) {
117333f25b42753f464c5927e8b828352333780c14bdMichael Krufky			tda_map("%s: frequency (%d) out of range\n",
117433f25b42753f464c5927e8b828352333780c14bdMichael Krufky				map_name, *freq);
117533f25b42753f464c5927e8b828352333780c14bdMichael Krufky			ret = -ERANGE;
11762f27dfc98cc0a183be9e3c2fc0da0450b85e5fdeMichael Krufky			break;
117733f25b42753f464c5927e8b828352333780c14bdMichael Krufky		}
11782f27dfc98cc0a183be9e3c2fc0da0450b85e5fdeMichael Krufky		i++;
11792f27dfc98cc0a183be9e3c2fc0da0450b85e5fdeMichael Krufky	}
11802f27dfc98cc0a183be9e3c2fc0da0450b85e5fdeMichael Krufky	*val = map[i].val;
1181b5f3e1e153b60f7bc338cdd6eefacd59c2dfb375Michael Krufky
1182255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	tda_map("(%d) %s: 0x%02x\n", i, map_name, *val);
118333f25b42753f464c5927e8b828352333780c14bdMichael Krufkyfail:
118433f25b42753f464c5927e8b828352333780c14bdMichael Krufky	return ret;
1185b5f3e1e153b60f7bc338cdd6eefacd59c2dfb375Michael Krufky}
1186b5f3e1e153b60f7bc338cdd6eefacd59c2dfb375Michael Krufky
1187255b5113b4ed683898a24e381155c081f03411f7Michael Krufky/*---------------------------------------------------------------------*/
1188255b5113b4ed683898a24e381155c081f03411f7Michael Krufky
1189255b5113b4ed683898a24e381155c081f03411f7Michael Krufkystatic struct tda18271_std_map tda18271c1_std_map = {
1190c0dc0c1122b585193dd6650c749e919542dd3e23Michael Krufky	.fm_radio = { .if_freq = 1250, .fm_rfn = 1, .agc_mode = 3, .std = 0,
1191c0dc0c1122b585193dd6650c749e919542dd3e23Michael Krufky		      .if_lvl = 0, .rfagc_top = 0x2c, }, /* EP3[4:0] 0x18 */
1192c0dc0c1122b585193dd6650c749e919542dd3e23Michael Krufky	.atv_b    = { .if_freq = 6750, .fm_rfn = 0, .agc_mode = 1, .std = 6,
1193c0dc0c1122b585193dd6650c749e919542dd3e23Michael Krufky		      .if_lvl = 0, .rfagc_top = 0x2c, }, /* EP3[4:0] 0x0e */
1194c0dc0c1122b585193dd6650c749e919542dd3e23Michael Krufky	.atv_dk   = { .if_freq = 7750, .fm_rfn = 0, .agc_mode = 1, .std = 7,
1195c0dc0c1122b585193dd6650c749e919542dd3e23Michael Krufky		      .if_lvl = 0, .rfagc_top = 0x2c, }, /* EP3[4:0] 0x0f */
1196c0dc0c1122b585193dd6650c749e919542dd3e23Michael Krufky	.atv_gh   = { .if_freq = 7750, .fm_rfn = 0, .agc_mode = 1, .std = 7,
1197c0dc0c1122b585193dd6650c749e919542dd3e23Michael Krufky		      .if_lvl = 0, .rfagc_top = 0x2c, }, /* EP3[4:0] 0x0f */
1198c0dc0c1122b585193dd6650c749e919542dd3e23Michael Krufky	.atv_i    = { .if_freq = 7750, .fm_rfn = 0, .agc_mode = 1, .std = 7,
1199c0dc0c1122b585193dd6650c749e919542dd3e23Michael Krufky		      .if_lvl = 0, .rfagc_top = 0x2c, }, /* EP3[4:0] 0x0f */
1200c0dc0c1122b585193dd6650c749e919542dd3e23Michael Krufky	.atv_l    = { .if_freq = 7750, .fm_rfn = 0, .agc_mode = 1, .std = 7,
1201c0dc0c1122b585193dd6650c749e919542dd3e23Michael Krufky		      .if_lvl = 0, .rfagc_top = 0x2c, }, /* EP3[4:0] 0x0f */
1202c0dc0c1122b585193dd6650c749e919542dd3e23Michael Krufky	.atv_lc   = { .if_freq = 1250, .fm_rfn = 0, .agc_mode = 1, .std = 7,
1203c0dc0c1122b585193dd6650c749e919542dd3e23Michael Krufky		      .if_lvl = 0, .rfagc_top = 0x2c, }, /* EP3[4:0] 0x0f */
1204c0dc0c1122b585193dd6650c749e919542dd3e23Michael Krufky	.atv_mn   = { .if_freq = 5750, .fm_rfn = 0, .agc_mode = 1, .std = 5,
1205c0dc0c1122b585193dd6650c749e919542dd3e23Michael Krufky		      .if_lvl = 0, .rfagc_top = 0x2c, }, /* EP3[4:0] 0x0d */
1206c0dc0c1122b585193dd6650c749e919542dd3e23Michael Krufky	.atsc_6   = { .if_freq = 3250, .fm_rfn = 0, .agc_mode = 3, .std = 4,
1207c0dc0c1122b585193dd6650c749e919542dd3e23Michael Krufky		      .if_lvl = 1, .rfagc_top = 0x37, }, /* EP3[4:0] 0x1c */
1208c0dc0c1122b585193dd6650c749e919542dd3e23Michael Krufky	.dvbt_6   = { .if_freq = 3300, .fm_rfn = 0, .agc_mode = 3, .std = 4,
1209c0dc0c1122b585193dd6650c749e919542dd3e23Michael Krufky		      .if_lvl = 1, .rfagc_top = 0x37, }, /* EP3[4:0] 0x1c */
1210c0dc0c1122b585193dd6650c749e919542dd3e23Michael Krufky	.dvbt_7   = { .if_freq = 3800, .fm_rfn = 0, .agc_mode = 3, .std = 5,
1211c0dc0c1122b585193dd6650c749e919542dd3e23Michael Krufky		      .if_lvl = 1, .rfagc_top = 0x37, }, /* EP3[4:0] 0x1d */
1212c0dc0c1122b585193dd6650c749e919542dd3e23Michael Krufky	.dvbt_8   = { .if_freq = 4300, .fm_rfn = 0, .agc_mode = 3, .std = 6,
1213c0dc0c1122b585193dd6650c749e919542dd3e23Michael Krufky		      .if_lvl = 1, .rfagc_top = 0x37, }, /* EP3[4:0] 0x1e */
1214c0dc0c1122b585193dd6650c749e919542dd3e23Michael Krufky	.qam_6    = { .if_freq = 4000, .fm_rfn = 0, .agc_mode = 3, .std = 5,
1215c0dc0c1122b585193dd6650c749e919542dd3e23Michael Krufky		      .if_lvl = 1, .rfagc_top = 0x37, }, /* EP3[4:0] 0x1d */
1216ce0e93a52a01d0074b2bd12c056cbbf7a8a300c4Mauro Carvalho Chehab	.qam_7    = { .if_freq = 4500, .fm_rfn = 0, .agc_mode = 3, .std = 6,
1217ce0e93a52a01d0074b2bd12c056cbbf7a8a300c4Mauro Carvalho Chehab		      .if_lvl = 1, .rfagc_top = 0x37, }, /* EP3[4:0] 0x1e */
1218c0dc0c1122b585193dd6650c749e919542dd3e23Michael Krufky	.qam_8    = { .if_freq = 5000, .fm_rfn = 0, .agc_mode = 3, .std = 7,
1219c0dc0c1122b585193dd6650c749e919542dd3e23Michael Krufky		      .if_lvl = 1, .rfagc_top = 0x37, }, /* EP3[4:0] 0x1f */
1220255b5113b4ed683898a24e381155c081f03411f7Michael Krufky};
1221255b5113b4ed683898a24e381155c081f03411f7Michael Krufky
1222255b5113b4ed683898a24e381155c081f03411f7Michael Krufkystatic struct tda18271_std_map tda18271c2_std_map = {
1223c0dc0c1122b585193dd6650c749e919542dd3e23Michael Krufky	.fm_radio = { .if_freq = 1250, .fm_rfn = 1, .agc_mode = 3, .std = 0,
1224c0dc0c1122b585193dd6650c749e919542dd3e23Michael Krufky		      .if_lvl = 0, .rfagc_top = 0x2c, }, /* EP3[4:0] 0x18 */
1225c0dc0c1122b585193dd6650c749e919542dd3e23Michael Krufky	.atv_b    = { .if_freq = 6000, .fm_rfn = 0, .agc_mode = 1, .std = 5,
1226c0dc0c1122b585193dd6650c749e919542dd3e23Michael Krufky		      .if_lvl = 0, .rfagc_top = 0x2c, }, /* EP3[4:0] 0x0d */
1227c0dc0c1122b585193dd6650c749e919542dd3e23Michael Krufky	.atv_dk   = { .if_freq = 6900, .fm_rfn = 0, .agc_mode = 1, .std = 6,
1228c0dc0c1122b585193dd6650c749e919542dd3e23Michael Krufky		      .if_lvl = 0, .rfagc_top = 0x2c, }, /* EP3[4:0] 0x0e */
1229c0dc0c1122b585193dd6650c749e919542dd3e23Michael Krufky	.atv_gh   = { .if_freq = 7100, .fm_rfn = 0, .agc_mode = 1, .std = 6,
1230c0dc0c1122b585193dd6650c749e919542dd3e23Michael Krufky		      .if_lvl = 0, .rfagc_top = 0x2c, }, /* EP3[4:0] 0x0e */
1231c0dc0c1122b585193dd6650c749e919542dd3e23Michael Krufky	.atv_i    = { .if_freq = 7250, .fm_rfn = 0, .agc_mode = 1, .std = 6,
1232c0dc0c1122b585193dd6650c749e919542dd3e23Michael Krufky		      .if_lvl = 0, .rfagc_top = 0x2c, }, /* EP3[4:0] 0x0e */
1233c0dc0c1122b585193dd6650c749e919542dd3e23Michael Krufky	.atv_l    = { .if_freq = 6900, .fm_rfn = 0, .agc_mode = 1, .std = 6,
1234c0dc0c1122b585193dd6650c749e919542dd3e23Michael Krufky		      .if_lvl = 0, .rfagc_top = 0x2c, }, /* EP3[4:0] 0x0e */
1235c0dc0c1122b585193dd6650c749e919542dd3e23Michael Krufky	.atv_lc   = { .if_freq = 1250, .fm_rfn = 0, .agc_mode = 1, .std = 6,
1236c0dc0c1122b585193dd6650c749e919542dd3e23Michael Krufky		      .if_lvl = 0, .rfagc_top = 0x2c, }, /* EP3[4:0] 0x0e */
1237c0dc0c1122b585193dd6650c749e919542dd3e23Michael Krufky	.atv_mn   = { .if_freq = 5400, .fm_rfn = 0, .agc_mode = 1, .std = 4,
1238c0dc0c1122b585193dd6650c749e919542dd3e23Michael Krufky		      .if_lvl = 0, .rfagc_top = 0x2c, }, /* EP3[4:0] 0x0c */
1239c0dc0c1122b585193dd6650c749e919542dd3e23Michael Krufky	.atsc_6   = { .if_freq = 3250, .fm_rfn = 0, .agc_mode = 3, .std = 4,
1240c0dc0c1122b585193dd6650c749e919542dd3e23Michael Krufky		      .if_lvl = 1, .rfagc_top = 0x37, }, /* EP3[4:0] 0x1c */
1241c0dc0c1122b585193dd6650c749e919542dd3e23Michael Krufky	.dvbt_6   = { .if_freq = 3300, .fm_rfn = 0, .agc_mode = 3, .std = 4,
1242c0dc0c1122b585193dd6650c749e919542dd3e23Michael Krufky		      .if_lvl = 1, .rfagc_top = 0x37, }, /* EP3[4:0] 0x1c */
1243c0dc0c1122b585193dd6650c749e919542dd3e23Michael Krufky	.dvbt_7   = { .if_freq = 3500, .fm_rfn = 0, .agc_mode = 3, .std = 4,
1244c0dc0c1122b585193dd6650c749e919542dd3e23Michael Krufky		      .if_lvl = 1, .rfagc_top = 0x37, }, /* EP3[4:0] 0x1c */
1245c0dc0c1122b585193dd6650c749e919542dd3e23Michael Krufky	.dvbt_8   = { .if_freq = 4000, .fm_rfn = 0, .agc_mode = 3, .std = 5,
1246c0dc0c1122b585193dd6650c749e919542dd3e23Michael Krufky		      .if_lvl = 1, .rfagc_top = 0x37, }, /* EP3[4:0] 0x1d */
1247c0dc0c1122b585193dd6650c749e919542dd3e23Michael Krufky	.qam_6    = { .if_freq = 4000, .fm_rfn = 0, .agc_mode = 3, .std = 5,
1248c0dc0c1122b585193dd6650c749e919542dd3e23Michael Krufky		      .if_lvl = 1, .rfagc_top = 0x37, }, /* EP3[4:0] 0x1d */
1249ce0e93a52a01d0074b2bd12c056cbbf7a8a300c4Mauro Carvalho Chehab	.qam_7    = { .if_freq = 4500, .fm_rfn = 0, .agc_mode = 3, .std = 6,
1250ce0e93a52a01d0074b2bd12c056cbbf7a8a300c4Mauro Carvalho Chehab		      .if_lvl = 1, .rfagc_top = 0x37, }, /* EP3[4:0] 0x1e */
1251c0dc0c1122b585193dd6650c749e919542dd3e23Michael Krufky	.qam_8    = { .if_freq = 5000, .fm_rfn = 0, .agc_mode = 3, .std = 7,
1252c0dc0c1122b585193dd6650c749e919542dd3e23Michael Krufky		      .if_lvl = 1, .rfagc_top = 0x37, }, /* EP3[4:0] 0x1f */
1253255b5113b4ed683898a24e381155c081f03411f7Michael Krufky};
1254255b5113b4ed683898a24e381155c081f03411f7Michael Krufky
1255255b5113b4ed683898a24e381155c081f03411f7Michael Krufky/*---------------------------------------------------------------------*/
1256255b5113b4ed683898a24e381155c081f03411f7Michael Krufky
1257255b5113b4ed683898a24e381155c081f03411f7Michael Krufkystatic struct tda18271_map_layout tda18271c1_map_layout = {
1258255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	.main_pll          = tda18271c1_main_pll,
1259255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	.cal_pll           = tda18271c1_cal_pll,
1260255b5113b4ed683898a24e381155c081f03411f7Michael Krufky
1261255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	.rf_cal            = tda18271c1_rf_cal,
1262255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	.rf_cal_kmco       = tda18271c1_km,
1263255b5113b4ed683898a24e381155c081f03411f7Michael Krufky
1264255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	.bp_filter         = tda18271_bp_filter,
1265255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	.rf_band           = tda18271_rf_band,
1266255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	.gain_taper        = tda18271_gain_taper,
1267255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	.ir_measure        = tda18271_ir_measure,
1268255b5113b4ed683898a24e381155c081f03411f7Michael Krufky};
1269255b5113b4ed683898a24e381155c081f03411f7Michael Krufky
1270255b5113b4ed683898a24e381155c081f03411f7Michael Krufkystatic struct tda18271_map_layout tda18271c2_map_layout = {
1271255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	.main_pll          = tda18271c2_main_pll,
1272255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	.cal_pll           = tda18271c2_cal_pll,
1273255b5113b4ed683898a24e381155c081f03411f7Michael Krufky
1274255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	.rf_cal            = tda18271c2_rf_cal,
1275255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	.rf_cal_kmco       = tda18271c2_km,
1276255b5113b4ed683898a24e381155c081f03411f7Michael Krufky
1277255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	.rf_cal_dc_over_dt = tda18271_rf_cal_dc_over_dt,
1278255b5113b4ed683898a24e381155c081f03411f7Michael Krufky
1279255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	.bp_filter         = tda18271_bp_filter,
1280255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	.rf_band           = tda18271_rf_band,
1281255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	.gain_taper        = tda18271_gain_taper,
1282255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	.ir_measure        = tda18271_ir_measure,
1283255b5113b4ed683898a24e381155c081f03411f7Michael Krufky};
1284255b5113b4ed683898a24e381155c081f03411f7Michael Krufky
1285255b5113b4ed683898a24e381155c081f03411f7Michael Krufkyint tda18271_assign_map_layout(struct dvb_frontend *fe)
1286255b5113b4ed683898a24e381155c081f03411f7Michael Krufky{
1287255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	struct tda18271_priv *priv = fe->tuner_priv;
1288255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	int ret = 0;
1289255b5113b4ed683898a24e381155c081f03411f7Michael Krufky
1290255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	switch (priv->id) {
1291255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	case TDA18271HDC1:
1292255b5113b4ed683898a24e381155c081f03411f7Michael Krufky		priv->maps = &tda18271c1_map_layout;
12937f05b24536f068c0a5072929fb6c0fb2099d273cEzequiel Garcia		priv->std = tda18271c1_std_map;
1294255b5113b4ed683898a24e381155c081f03411f7Michael Krufky		break;
1295255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	case TDA18271HDC2:
1296255b5113b4ed683898a24e381155c081f03411f7Michael Krufky		priv->maps = &tda18271c2_map_layout;
12977f05b24536f068c0a5072929fb6c0fb2099d273cEzequiel Garcia		priv->std = tda18271c2_std_map;
1298255b5113b4ed683898a24e381155c081f03411f7Michael Krufky		break;
1299255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	default:
1300255b5113b4ed683898a24e381155c081f03411f7Michael Krufky		ret = -EINVAL;
1301255b5113b4ed683898a24e381155c081f03411f7Michael Krufky		break;
1302255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	}
1303255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	memcpy(priv->rf_cal_state, &tda18271_rf_band_template,
1304255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	       sizeof(tda18271_rf_band_template));
1305255b5113b4ed683898a24e381155c081f03411f7Michael Krufky
1306255b5113b4ed683898a24e381155c081f03411f7Michael Krufky	return ret;
1307255b5113b4ed683898a24e381155c081f03411f7Michael Krufky}
1308255b5113b4ed683898a24e381155c081f03411f7Michael Krufky
13096ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky/*
13106ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky * Overrides for Emacs so that we follow Linus's tabbing style.
13116ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky * ---------------------------------------------------------------------------
13126ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky * Local variables:
13136ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky * c-basic-offset: 8
13146ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky * End:
13156ca04de36b05aaf2f8122d0e566940969c6df801Michael Krufky */
1316