Add the rt linux 4.1.3-rt3 as base
[kvmfornfv.git] / kernel / drivers / media / tuners / tuner-types.c
1 /*
2  *
3  * i2c tv tuner chip device type database.
4  *
5  */
6
7 #include <linux/i2c.h>
8 #include <linux/module.h>
9 #include <media/tuner.h>
10 #include <media/tuner-types.h>
11
12 /* ---------------------------------------------------------------------- */
13
14 /*
15  *      The floats in the tuner struct are computed at compile time
16  *      by gcc and cast back to integers. Thus we don't violate the
17  *      "no float in kernel" rule.
18  *
19  *      A tuner_range may be referenced by multiple tuner_params structs.
20  *      There are many duplicates in here. Reusing tuner_range structs,
21  *      rather than defining new ones for each tuner, will cut down on
22  *      memory usage, and is preferred when possible.
23  *
24  *      Each tuner_params array may contain one or more elements, one
25  *      for each video standard.
26  *
27  *      FIXME: tuner_params struct contains an element, tda988x. We must
28  *      set this for all tuners that contain a tda988x chip, and then we
29  *      can remove this setting from the various card structs.
30  *
31  *      FIXME: Right now, all tuners are using the first tuner_params[]
32  *      array element for analog mode. In the future, we will be merging
33  *      similar tuner definitions together, such that each tuner definition
34  *      will have a tuner_params struct for each available video standard.
35  *      At that point, the tuner_params[] array element will be chosen
36  *      based on the video standard in use.
37  */
38
39 /* The following was taken from dvb-pll.c: */
40
41 /* Set AGC TOP value to 103 dBuV:
42  *      0x80 = Control Byte
43  *      0x40 = 250 uA charge pump (irrelevant)
44  *      0x18 = Aux Byte to follow
45  *      0x06 = 64.5 kHz divider (irrelevant)
46  *      0x01 = Disable Vt (aka sleep)
47  *
48  *      0x00 = AGC Time constant 2s Iagc = 300 nA (vs 0x80 = 9 nA)
49  *      0x50 = AGC Take over point = 103 dBuV
50  */
51 static u8 tua603x_agc103[] = { 2, 0x80|0x40|0x18|0x06|0x01, 0x00|0x50 };
52
53 /*      0x04 = 166.67 kHz divider
54  *
55  *      0x80 = AGC Time constant 50ms Iagc = 9 uA
56  *      0x20 = AGC Take over point = 112 dBuV
57  */
58 static u8 tua603x_agc112[] = { 2, 0x80|0x40|0x18|0x04|0x01, 0x80|0x20 };
59
60 /* 0-9 */
61 /* ------------ TUNER_TEMIC_PAL - TEMIC PAL ------------ */
62
63 static struct tuner_range tuner_temic_pal_ranges[] = {
64         { 16 * 140.25 /*MHz*/, 0x8e, 0x02, },
65         { 16 * 463.25 /*MHz*/, 0x8e, 0x04, },
66         { 16 * 999.99        , 0x8e, 0x01, },
67 };
68
69 static struct tuner_params tuner_temic_pal_params[] = {
70         {
71                 .type   = TUNER_PARAM_TYPE_PAL,
72                 .ranges = tuner_temic_pal_ranges,
73                 .count  = ARRAY_SIZE(tuner_temic_pal_ranges),
74         },
75 };
76
77 /* ------------ TUNER_PHILIPS_PAL_I - Philips PAL_I ------------ */
78
79 static struct tuner_range tuner_philips_pal_i_ranges[] = {
80         { 16 * 140.25 /*MHz*/, 0x8e, 0xa0, },
81         { 16 * 463.25 /*MHz*/, 0x8e, 0x90, },
82         { 16 * 999.99        , 0x8e, 0x30, },
83 };
84
85 static struct tuner_params tuner_philips_pal_i_params[] = {
86         {
87                 .type   = TUNER_PARAM_TYPE_PAL,
88                 .ranges = tuner_philips_pal_i_ranges,
89                 .count  = ARRAY_SIZE(tuner_philips_pal_i_ranges),
90         },
91 };
92
93 /* ------------ TUNER_PHILIPS_NTSC - Philips NTSC ------------ */
94
95 static struct tuner_range tuner_philips_ntsc_ranges[] = {
96         { 16 * 157.25 /*MHz*/, 0x8e, 0xa0, },
97         { 16 * 451.25 /*MHz*/, 0x8e, 0x90, },
98         { 16 * 999.99        , 0x8e, 0x30, },
99 };
100
101 static struct tuner_params tuner_philips_ntsc_params[] = {
102         {
103                 .type   = TUNER_PARAM_TYPE_NTSC,
104                 .ranges = tuner_philips_ntsc_ranges,
105                 .count  = ARRAY_SIZE(tuner_philips_ntsc_ranges),
106                 .cb_first_if_lower_freq = 1,
107         },
108 };
109
110 /* ------------ TUNER_PHILIPS_SECAM - Philips SECAM ------------ */
111
112 static struct tuner_range tuner_philips_secam_ranges[] = {
113         { 16 * 168.25 /*MHz*/, 0x8e, 0xa7, },
114         { 16 * 447.25 /*MHz*/, 0x8e, 0x97, },
115         { 16 * 999.99        , 0x8e, 0x37, },
116 };
117
118 static struct tuner_params tuner_philips_secam_params[] = {
119         {
120                 .type   = TUNER_PARAM_TYPE_SECAM,
121                 .ranges = tuner_philips_secam_ranges,
122                 .count  = ARRAY_SIZE(tuner_philips_secam_ranges),
123                 .cb_first_if_lower_freq = 1,
124         },
125 };
126
127 /* ------------ TUNER_PHILIPS_PAL - Philips PAL ------------ */
128
129 static struct tuner_range tuner_philips_pal_ranges[] = {
130         { 16 * 168.25 /*MHz*/, 0x8e, 0xa0, },
131         { 16 * 447.25 /*MHz*/, 0x8e, 0x90, },
132         { 16 * 999.99        , 0x8e, 0x30, },
133 };
134
135 static struct tuner_params tuner_philips_pal_params[] = {
136         {
137                 .type   = TUNER_PARAM_TYPE_PAL,
138                 .ranges = tuner_philips_pal_ranges,
139                 .count  = ARRAY_SIZE(tuner_philips_pal_ranges),
140                 .cb_first_if_lower_freq = 1,
141         },
142 };
143
144 /* ------------ TUNER_TEMIC_NTSC - TEMIC NTSC ------------ */
145
146 static struct tuner_range tuner_temic_ntsc_ranges[] = {
147         { 16 * 157.25 /*MHz*/, 0x8e, 0x02, },
148         { 16 * 463.25 /*MHz*/, 0x8e, 0x04, },
149         { 16 * 999.99        , 0x8e, 0x01, },
150 };
151
152 static struct tuner_params tuner_temic_ntsc_params[] = {
153         {
154                 .type   = TUNER_PARAM_TYPE_NTSC,
155                 .ranges = tuner_temic_ntsc_ranges,
156                 .count  = ARRAY_SIZE(tuner_temic_ntsc_ranges),
157         },
158 };
159
160 /* ------------ TUNER_TEMIC_PAL_I - TEMIC PAL_I ------------ */
161
162 static struct tuner_range tuner_temic_pal_i_ranges[] = {
163         { 16 * 170.00 /*MHz*/, 0x8e, 0x02, },
164         { 16 * 450.00 /*MHz*/, 0x8e, 0x04, },
165         { 16 * 999.99        , 0x8e, 0x01, },
166 };
167
168 static struct tuner_params tuner_temic_pal_i_params[] = {
169         {
170                 .type   = TUNER_PARAM_TYPE_PAL,
171                 .ranges = tuner_temic_pal_i_ranges,
172                 .count  = ARRAY_SIZE(tuner_temic_pal_i_ranges),
173         },
174 };
175
176 /* ------------ TUNER_TEMIC_4036FY5_NTSC - TEMIC NTSC ------------ */
177
178 static struct tuner_range tuner_temic_4036fy5_ntsc_ranges[] = {
179         { 16 * 157.25 /*MHz*/, 0x8e, 0xa0, },
180         { 16 * 463.25 /*MHz*/, 0x8e, 0x90, },
181         { 16 * 999.99        , 0x8e, 0x30, },
182 };
183
184 static struct tuner_params tuner_temic_4036fy5_ntsc_params[] = {
185         {
186                 .type   = TUNER_PARAM_TYPE_NTSC,
187                 .ranges = tuner_temic_4036fy5_ntsc_ranges,
188                 .count  = ARRAY_SIZE(tuner_temic_4036fy5_ntsc_ranges),
189         },
190 };
191
192 /* ------------ TUNER_ALPS_TSBH1_NTSC - TEMIC NTSC ------------ */
193
194 static struct tuner_range tuner_alps_tsb_1_ranges[] = {
195         { 16 * 137.25 /*MHz*/, 0x8e, 0x01, },
196         { 16 * 385.25 /*MHz*/, 0x8e, 0x02, },
197         { 16 * 999.99        , 0x8e, 0x08, },
198 };
199
200 static struct tuner_params tuner_alps_tsbh1_ntsc_params[] = {
201         {
202                 .type   = TUNER_PARAM_TYPE_NTSC,
203                 .ranges = tuner_alps_tsb_1_ranges,
204                 .count  = ARRAY_SIZE(tuner_alps_tsb_1_ranges),
205         },
206 };
207
208 /* 10-19 */
209 /* ------------ TUNER_ALPS_TSBE1_PAL - TEMIC PAL ------------ */
210
211 static struct tuner_params tuner_alps_tsb_1_params[] = {
212         {
213                 .type   = TUNER_PARAM_TYPE_PAL,
214                 .ranges = tuner_alps_tsb_1_ranges,
215                 .count  = ARRAY_SIZE(tuner_alps_tsb_1_ranges),
216         },
217 };
218
219 /* ------------ TUNER_ALPS_TSBB5_PAL_I - Alps PAL_I ------------ */
220
221 static struct tuner_range tuner_alps_tsb_5_pal_ranges[] = {
222         { 16 * 133.25 /*MHz*/, 0x8e, 0x01, },
223         { 16 * 351.25 /*MHz*/, 0x8e, 0x02, },
224         { 16 * 999.99        , 0x8e, 0x08, },
225 };
226
227 static struct tuner_params tuner_alps_tsbb5_params[] = {
228         {
229                 .type   = TUNER_PARAM_TYPE_PAL,
230                 .ranges = tuner_alps_tsb_5_pal_ranges,
231                 .count  = ARRAY_SIZE(tuner_alps_tsb_5_pal_ranges),
232         },
233 };
234
235 /* ------------ TUNER_ALPS_TSBE5_PAL - Alps PAL ------------ */
236
237 static struct tuner_params tuner_alps_tsbe5_params[] = {
238         {
239                 .type   = TUNER_PARAM_TYPE_PAL,
240                 .ranges = tuner_alps_tsb_5_pal_ranges,
241                 .count  = ARRAY_SIZE(tuner_alps_tsb_5_pal_ranges),
242         },
243 };
244
245 /* ------------ TUNER_ALPS_TSBC5_PAL - Alps PAL ------------ */
246
247 static struct tuner_params tuner_alps_tsbc5_params[] = {
248         {
249                 .type   = TUNER_PARAM_TYPE_PAL,
250                 .ranges = tuner_alps_tsb_5_pal_ranges,
251                 .count  = ARRAY_SIZE(tuner_alps_tsb_5_pal_ranges),
252         },
253 };
254
255 /* ------------ TUNER_TEMIC_4006FH5_PAL - TEMIC PAL ------------ */
256
257 static struct tuner_range tuner_lg_pal_ranges[] = {
258         { 16 * 170.00 /*MHz*/, 0x8e, 0xa0, },
259         { 16 * 450.00 /*MHz*/, 0x8e, 0x90, },
260         { 16 * 999.99        , 0x8e, 0x30, },
261 };
262
263 static struct tuner_params tuner_temic_4006fh5_params[] = {
264         {
265                 .type   = TUNER_PARAM_TYPE_PAL,
266                 .ranges = tuner_lg_pal_ranges,
267                 .count  = ARRAY_SIZE(tuner_lg_pal_ranges),
268         },
269 };
270
271 /* ------------ TUNER_ALPS_TSHC6_NTSC - Alps NTSC ------------ */
272
273 static struct tuner_range tuner_alps_tshc6_ntsc_ranges[] = {
274         { 16 * 137.25 /*MHz*/, 0x8e, 0x14, },
275         { 16 * 385.25 /*MHz*/, 0x8e, 0x12, },
276         { 16 * 999.99        , 0x8e, 0x11, },
277 };
278
279 static struct tuner_params tuner_alps_tshc6_params[] = {
280         {
281                 .type   = TUNER_PARAM_TYPE_NTSC,
282                 .ranges = tuner_alps_tshc6_ntsc_ranges,
283                 .count  = ARRAY_SIZE(tuner_alps_tshc6_ntsc_ranges),
284         },
285 };
286
287 /* ------------ TUNER_TEMIC_PAL_DK - TEMIC PAL ------------ */
288
289 static struct tuner_range tuner_temic_pal_dk_ranges[] = {
290         { 16 * 168.25 /*MHz*/, 0x8e, 0xa0, },
291         { 16 * 456.25 /*MHz*/, 0x8e, 0x90, },
292         { 16 * 999.99        , 0x8e, 0x30, },
293 };
294
295 static struct tuner_params tuner_temic_pal_dk_params[] = {
296         {
297                 .type   = TUNER_PARAM_TYPE_PAL,
298                 .ranges = tuner_temic_pal_dk_ranges,
299                 .count  = ARRAY_SIZE(tuner_temic_pal_dk_ranges),
300         },
301 };
302
303 /* ------------ TUNER_PHILIPS_NTSC_M - Philips NTSC ------------ */
304
305 static struct tuner_range tuner_philips_ntsc_m_ranges[] = {
306         { 16 * 160.00 /*MHz*/, 0x8e, 0xa0, },
307         { 16 * 454.00 /*MHz*/, 0x8e, 0x90, },
308         { 16 * 999.99        , 0x8e, 0x30, },
309 };
310
311 static struct tuner_params tuner_philips_ntsc_m_params[] = {
312         {
313                 .type   = TUNER_PARAM_TYPE_NTSC,
314                 .ranges = tuner_philips_ntsc_m_ranges,
315                 .count  = ARRAY_SIZE(tuner_philips_ntsc_m_ranges),
316         },
317 };
318
319 /* ------------ TUNER_TEMIC_4066FY5_PAL_I - TEMIC PAL_I ------------ */
320
321 static struct tuner_range tuner_temic_40x6f_5_pal_ranges[] = {
322         { 16 * 169.00 /*MHz*/, 0x8e, 0xa0, },
323         { 16 * 454.00 /*MHz*/, 0x8e, 0x90, },
324         { 16 * 999.99        , 0x8e, 0x30, },
325 };
326
327 static struct tuner_params tuner_temic_4066fy5_pal_i_params[] = {
328         {
329                 .type   = TUNER_PARAM_TYPE_PAL,
330                 .ranges = tuner_temic_40x6f_5_pal_ranges,
331                 .count  = ARRAY_SIZE(tuner_temic_40x6f_5_pal_ranges),
332         },
333 };
334
335 /* ------------ TUNER_TEMIC_4006FN5_MULTI_PAL - TEMIC PAL ------------ */
336
337 static struct tuner_params tuner_temic_4006fn5_multi_params[] = {
338         {
339                 .type   = TUNER_PARAM_TYPE_PAL,
340                 .ranges = tuner_temic_40x6f_5_pal_ranges,
341                 .count  = ARRAY_SIZE(tuner_temic_40x6f_5_pal_ranges),
342         },
343 };
344
345 /* 20-29 */
346 /* ------------ TUNER_TEMIC_4009FR5_PAL - TEMIC PAL ------------ */
347
348 static struct tuner_range tuner_temic_4009f_5_pal_ranges[] = {
349         { 16 * 141.00 /*MHz*/, 0x8e, 0xa0, },
350         { 16 * 464.00 /*MHz*/, 0x8e, 0x90, },
351         { 16 * 999.99        , 0x8e, 0x30, },
352 };
353
354 static struct tuner_params tuner_temic_4009f_5_params[] = {
355         {
356                 .type   = TUNER_PARAM_TYPE_PAL,
357                 .ranges = tuner_temic_4009f_5_pal_ranges,
358                 .count  = ARRAY_SIZE(tuner_temic_4009f_5_pal_ranges),
359         },
360 };
361
362 /* ------------ TUNER_TEMIC_4039FR5_NTSC - TEMIC NTSC ------------ */
363
364 static struct tuner_range tuner_temic_4x3x_f_5_ntsc_ranges[] = {
365         { 16 * 158.00 /*MHz*/, 0x8e, 0xa0, },
366         { 16 * 453.00 /*MHz*/, 0x8e, 0x90, },
367         { 16 * 999.99        , 0x8e, 0x30, },
368 };
369
370 static struct tuner_params tuner_temic_4039fr5_params[] = {
371         {
372                 .type   = TUNER_PARAM_TYPE_NTSC,
373                 .ranges = tuner_temic_4x3x_f_5_ntsc_ranges,
374                 .count  = ARRAY_SIZE(tuner_temic_4x3x_f_5_ntsc_ranges),
375         },
376 };
377
378 /* ------------ TUNER_TEMIC_4046FM5 - TEMIC PAL ------------ */
379
380 static struct tuner_params tuner_temic_4046fm5_params[] = {
381         {
382                 .type   = TUNER_PARAM_TYPE_PAL,
383                 .ranges = tuner_temic_40x6f_5_pal_ranges,
384                 .count  = ARRAY_SIZE(tuner_temic_40x6f_5_pal_ranges),
385         },
386 };
387
388 /* ------------ TUNER_PHILIPS_PAL_DK - Philips PAL ------------ */
389
390 static struct tuner_params tuner_philips_pal_dk_params[] = {
391         {
392                 .type   = TUNER_PARAM_TYPE_PAL,
393                 .ranges = tuner_lg_pal_ranges,
394                 .count  = ARRAY_SIZE(tuner_lg_pal_ranges),
395         },
396 };
397
398 /* ------------ TUNER_PHILIPS_FQ1216ME - Philips PAL ------------ */
399
400 static struct tuner_params tuner_philips_fq1216me_params[] = {
401         {
402                 .type   = TUNER_PARAM_TYPE_PAL,
403                 .ranges = tuner_lg_pal_ranges,
404                 .count  = ARRAY_SIZE(tuner_lg_pal_ranges),
405                 .has_tda9887 = 1,
406                 .port1_active = 1,
407                 .port2_active = 1,
408                 .port2_invert_for_secam_lc = 1,
409         },
410 };
411
412 /* ------------ TUNER_LG_PAL_I_FM - LGINNOTEK PAL_I ------------ */
413
414 static struct tuner_params tuner_lg_pal_i_fm_params[] = {
415         {
416                 .type   = TUNER_PARAM_TYPE_PAL,
417                 .ranges = tuner_lg_pal_ranges,
418                 .count  = ARRAY_SIZE(tuner_lg_pal_ranges),
419         },
420 };
421
422 /* ------------ TUNER_LG_PAL_I - LGINNOTEK PAL_I ------------ */
423
424 static struct tuner_params tuner_lg_pal_i_params[] = {
425         {
426                 .type   = TUNER_PARAM_TYPE_PAL,
427                 .ranges = tuner_lg_pal_ranges,
428                 .count  = ARRAY_SIZE(tuner_lg_pal_ranges),
429         },
430 };
431
432 /* ------------ TUNER_LG_NTSC_FM - LGINNOTEK NTSC ------------ */
433
434 static struct tuner_range tuner_lg_ntsc_fm_ranges[] = {
435         { 16 * 210.00 /*MHz*/, 0x8e, 0xa0, },
436         { 16 * 497.00 /*MHz*/, 0x8e, 0x90, },
437         { 16 * 999.99        , 0x8e, 0x30, },
438 };
439
440 static struct tuner_params tuner_lg_ntsc_fm_params[] = {
441         {
442                 .type   = TUNER_PARAM_TYPE_NTSC,
443                 .ranges = tuner_lg_ntsc_fm_ranges,
444                 .count  = ARRAY_SIZE(tuner_lg_ntsc_fm_ranges),
445         },
446 };
447
448 /* ------------ TUNER_LG_PAL_FM - LGINNOTEK PAL ------------ */
449
450 static struct tuner_params tuner_lg_pal_fm_params[] = {
451         {
452                 .type   = TUNER_PARAM_TYPE_PAL,
453                 .ranges = tuner_lg_pal_ranges,
454                 .count  = ARRAY_SIZE(tuner_lg_pal_ranges),
455         },
456 };
457
458 /* ------------ TUNER_LG_PAL - LGINNOTEK PAL ------------ */
459
460 static struct tuner_params tuner_lg_pal_params[] = {
461         {
462                 .type   = TUNER_PARAM_TYPE_PAL,
463                 .ranges = tuner_lg_pal_ranges,
464                 .count  = ARRAY_SIZE(tuner_lg_pal_ranges),
465         },
466 };
467
468 /* 30-39 */
469 /* ------------ TUNER_TEMIC_4009FN5_MULTI_PAL_FM - TEMIC PAL ------------ */
470
471 static struct tuner_params tuner_temic_4009_fn5_multi_pal_fm_params[] = {
472         {
473                 .type   = TUNER_PARAM_TYPE_PAL,
474                 .ranges = tuner_temic_4009f_5_pal_ranges,
475                 .count  = ARRAY_SIZE(tuner_temic_4009f_5_pal_ranges),
476         },
477 };
478
479 /* ------------ TUNER_SHARP_2U5JF5540_NTSC - SHARP NTSC ------------ */
480
481 static struct tuner_range tuner_sharp_2u5jf5540_ntsc_ranges[] = {
482         { 16 * 137.25 /*MHz*/, 0x8e, 0x01, },
483         { 16 * 317.25 /*MHz*/, 0x8e, 0x02, },
484         { 16 * 999.99        , 0x8e, 0x08, },
485 };
486
487 static struct tuner_params tuner_sharp_2u5jf5540_params[] = {
488         {
489                 .type   = TUNER_PARAM_TYPE_NTSC,
490                 .ranges = tuner_sharp_2u5jf5540_ntsc_ranges,
491                 .count  = ARRAY_SIZE(tuner_sharp_2u5jf5540_ntsc_ranges),
492         },
493 };
494
495 /* ------------ TUNER_Samsung_PAL_TCPM9091PD27 - Samsung PAL ------------ */
496
497 static struct tuner_range tuner_samsung_pal_tcpm9091pd27_ranges[] = {
498         { 16 * 169 /*MHz*/, 0x8e, 0xa0, },
499         { 16 * 464 /*MHz*/, 0x8e, 0x90, },
500         { 16 * 999.99     , 0x8e, 0x30, },
501 };
502
503 static struct tuner_params tuner_samsung_pal_tcpm9091pd27_params[] = {
504         {
505                 .type   = TUNER_PARAM_TYPE_PAL,
506                 .ranges = tuner_samsung_pal_tcpm9091pd27_ranges,
507                 .count  = ARRAY_SIZE(tuner_samsung_pal_tcpm9091pd27_ranges),
508         },
509 };
510
511 /* ------------ TUNER_TEMIC_4106FH5 - TEMIC PAL ------------ */
512
513 static struct tuner_params tuner_temic_4106fh5_params[] = {
514         {
515                 .type   = TUNER_PARAM_TYPE_PAL,
516                 .ranges = tuner_temic_4009f_5_pal_ranges,
517                 .count  = ARRAY_SIZE(tuner_temic_4009f_5_pal_ranges),
518         },
519 };
520
521 /* ------------ TUNER_TEMIC_4012FY5 - TEMIC PAL ------------ */
522
523 static struct tuner_params tuner_temic_4012fy5_params[] = {
524         {
525                 .type   = TUNER_PARAM_TYPE_PAL,
526                 .ranges = tuner_temic_pal_ranges,
527                 .count  = ARRAY_SIZE(tuner_temic_pal_ranges),
528         },
529 };
530
531 /* ------------ TUNER_TEMIC_4136FY5 - TEMIC NTSC ------------ */
532
533 static struct tuner_params tuner_temic_4136_fy5_params[] = {
534         {
535                 .type   = TUNER_PARAM_TYPE_NTSC,
536                 .ranges = tuner_temic_4x3x_f_5_ntsc_ranges,
537                 .count  = ARRAY_SIZE(tuner_temic_4x3x_f_5_ntsc_ranges),
538         },
539 };
540
541 /* ------------ TUNER_LG_PAL_NEW_TAPC - LGINNOTEK PAL ------------ */
542
543 static struct tuner_range tuner_lg_new_tapc_ranges[] = {
544         { 16 * 170.00 /*MHz*/, 0x8e, 0x01, },
545         { 16 * 450.00 /*MHz*/, 0x8e, 0x02, },
546         { 16 * 999.99        , 0x8e, 0x08, },
547 };
548
549 static struct tuner_params tuner_lg_pal_new_tapc_params[] = {
550         {
551                 .type   = TUNER_PARAM_TYPE_PAL,
552                 .ranges = tuner_lg_new_tapc_ranges,
553                 .count  = ARRAY_SIZE(tuner_lg_new_tapc_ranges),
554         },
555 };
556
557 /* ------------ TUNER_PHILIPS_FM1216ME_MK3 - Philips PAL ------------ */
558
559 static struct tuner_range tuner_fm1216me_mk3_pal_ranges[] = {
560         { 16 * 158.00 /*MHz*/, 0x8e, 0x01, },
561         { 16 * 442.00 /*MHz*/, 0x8e, 0x02, },
562         { 16 * 999.99        , 0x8e, 0x04, },
563 };
564
565 static struct tuner_params tuner_fm1216me_mk3_params[] = {
566         {
567                 .type   = TUNER_PARAM_TYPE_PAL,
568                 .ranges = tuner_fm1216me_mk3_pal_ranges,
569                 .count  = ARRAY_SIZE(tuner_fm1216me_mk3_pal_ranges),
570                 .cb_first_if_lower_freq = 1,
571                 .has_tda9887 = 1,
572                 .port1_active = 1,
573                 .port2_active = 1,
574                 .port2_invert_for_secam_lc = 1,
575                 .port1_fm_high_sensitivity = 1,
576                 .default_top_mid = -2,
577                 .default_top_secam_mid = -2,
578                 .default_top_secam_high = -2,
579         },
580 };
581
582 /* ------------ TUNER_PHILIPS_FM1216MK5 - Philips PAL ------------ */
583
584 static struct tuner_range tuner_fm1216mk5_pal_ranges[] = {
585         { 16 * 158.00 /*MHz*/, 0xce, 0x01, },
586         { 16 * 441.00 /*MHz*/, 0xce, 0x02, },
587         { 16 * 864.00        , 0xce, 0x04, },
588 };
589
590 static struct tuner_params tuner_fm1216mk5_params[] = {
591         {
592                 .type   = TUNER_PARAM_TYPE_PAL,
593                 .ranges = tuner_fm1216mk5_pal_ranges,
594                 .count  = ARRAY_SIZE(tuner_fm1216mk5_pal_ranges),
595                 .cb_first_if_lower_freq = 1,
596                 .has_tda9887 = 1,
597                 .port1_active = 1,
598                 .port2_active = 1,
599                 .port2_invert_for_secam_lc = 1,
600                 .port1_fm_high_sensitivity = 1,
601                 .default_top_mid = -2,
602                 .default_top_secam_mid = -2,
603                 .default_top_secam_high = -2,
604         },
605 };
606
607 /* ------------ TUNER_LG_NTSC_NEW_TAPC - LGINNOTEK NTSC ------------ */
608
609 static struct tuner_params tuner_lg_ntsc_new_tapc_params[] = {
610         {
611                 .type   = TUNER_PARAM_TYPE_NTSC,
612                 .ranges = tuner_lg_new_tapc_ranges,
613                 .count  = ARRAY_SIZE(tuner_lg_new_tapc_ranges),
614         },
615 };
616
617 /* 40-49 */
618 /* ------------ TUNER_HITACHI_NTSC - HITACHI NTSC ------------ */
619
620 static struct tuner_params tuner_hitachi_ntsc_params[] = {
621         {
622                 .type   = TUNER_PARAM_TYPE_NTSC,
623                 .ranges = tuner_lg_new_tapc_ranges,
624                 .count  = ARRAY_SIZE(tuner_lg_new_tapc_ranges),
625         },
626 };
627
628 /* ------------ TUNER_PHILIPS_PAL_MK - Philips PAL ------------ */
629
630 static struct tuner_range tuner_philips_pal_mk_pal_ranges[] = {
631         { 16 * 140.25 /*MHz*/, 0x8e, 0x01, },
632         { 16 * 463.25 /*MHz*/, 0x8e, 0xc2, },
633         { 16 * 999.99        , 0x8e, 0xcf, },
634 };
635
636 static struct tuner_params tuner_philips_pal_mk_params[] = {
637         {
638                 .type   = TUNER_PARAM_TYPE_PAL,
639                 .ranges = tuner_philips_pal_mk_pal_ranges,
640                 .count  = ARRAY_SIZE(tuner_philips_pal_mk_pal_ranges),
641         },
642 };
643
644 /* ---- TUNER_PHILIPS_FCV1236D - Philips FCV1236D (ATSC/NTSC) ---- */
645
646 static struct tuner_range tuner_philips_fcv1236d_ntsc_ranges[] = {
647         { 16 * 157.25 /*MHz*/, 0x8e, 0xa2, },
648         { 16 * 451.25 /*MHz*/, 0x8e, 0x92, },
649         { 16 * 999.99        , 0x8e, 0x32, },
650 };
651
652 static struct tuner_range tuner_philips_fcv1236d_atsc_ranges[] = {
653         { 16 * 159.00 /*MHz*/, 0x8e, 0xa0, },
654         { 16 * 453.00 /*MHz*/, 0x8e, 0x90, },
655         { 16 * 999.99        , 0x8e, 0x30, },
656 };
657
658 static struct tuner_params tuner_philips_fcv1236d_params[] = {
659         {
660                 .type   = TUNER_PARAM_TYPE_NTSC,
661                 .ranges = tuner_philips_fcv1236d_ntsc_ranges,
662                 .count  = ARRAY_SIZE(tuner_philips_fcv1236d_ntsc_ranges),
663         },
664         {
665                 .type   = TUNER_PARAM_TYPE_DIGITAL,
666                 .ranges = tuner_philips_fcv1236d_atsc_ranges,
667                 .count  = ARRAY_SIZE(tuner_philips_fcv1236d_atsc_ranges),
668                 .iffreq = 16 * 44.00,
669         },
670 };
671
672 /* ------------ TUNER_PHILIPS_FM1236_MK3 - Philips NTSC ------------ */
673
674 static struct tuner_range tuner_fm1236_mk3_ntsc_ranges[] = {
675         { 16 * 160.00 /*MHz*/, 0x8e, 0x01, },
676         { 16 * 442.00 /*MHz*/, 0x8e, 0x02, },
677         { 16 * 999.99        , 0x8e, 0x04, },
678 };
679
680 static struct tuner_params tuner_fm1236_mk3_params[] = {
681         {
682                 .type   = TUNER_PARAM_TYPE_NTSC,
683                 .ranges = tuner_fm1236_mk3_ntsc_ranges,
684                 .count  = ARRAY_SIZE(tuner_fm1236_mk3_ntsc_ranges),
685                 .cb_first_if_lower_freq = 1,
686                 .has_tda9887 = 1,
687                 .port1_active = 1,
688                 .port2_active = 1,
689                 .port1_fm_high_sensitivity = 1,
690         },
691 };
692
693 /* ------------ TUNER_PHILIPS_4IN1 - Philips NTSC ------------ */
694
695 static struct tuner_params tuner_philips_4in1_params[] = {
696         {
697                 .type   = TUNER_PARAM_TYPE_NTSC,
698                 .ranges = tuner_fm1236_mk3_ntsc_ranges,
699                 .count  = ARRAY_SIZE(tuner_fm1236_mk3_ntsc_ranges),
700         },
701 };
702
703 /* ------------ TUNER_MICROTUNE_4049FM5 - Microtune PAL ------------ */
704
705 static struct tuner_params tuner_microtune_4049_fm5_params[] = {
706         {
707                 .type   = TUNER_PARAM_TYPE_PAL,
708                 .ranges = tuner_temic_4009f_5_pal_ranges,
709                 .count  = ARRAY_SIZE(tuner_temic_4009f_5_pal_ranges),
710                 .has_tda9887 = 1,
711                 .port1_invert_for_secam_lc = 1,
712                 .default_pll_gating_18 = 1,
713                 .fm_gain_normal=1,
714                 .radio_if = 1, /* 33.3 MHz */
715         },
716 };
717
718 /* ------------ TUNER_PANASONIC_VP27 - Panasonic NTSC ------------ */
719
720 static struct tuner_range tuner_panasonic_vp27_ntsc_ranges[] = {
721         { 16 * 160.00 /*MHz*/, 0xce, 0x01, },
722         { 16 * 454.00 /*MHz*/, 0xce, 0x02, },
723         { 16 * 999.99        , 0xce, 0x08, },
724 };
725
726 static struct tuner_params tuner_panasonic_vp27_params[] = {
727         {
728                 .type   = TUNER_PARAM_TYPE_NTSC,
729                 .ranges = tuner_panasonic_vp27_ntsc_ranges,
730                 .count  = ARRAY_SIZE(tuner_panasonic_vp27_ntsc_ranges),
731                 .has_tda9887 = 1,
732                 .intercarrier_mode = 1,
733                 .default_top_low = -3,
734                 .default_top_mid = -3,
735                 .default_top_high = -3,
736         },
737 };
738
739 /* ------------ TUNER_TNF_8831BGFF - Philips PAL ------------ */
740
741 static struct tuner_range tuner_tnf_8831bgff_pal_ranges[] = {
742         { 16 * 161.25 /*MHz*/, 0x8e, 0xa0, },
743         { 16 * 463.25 /*MHz*/, 0x8e, 0x90, },
744         { 16 * 999.99        , 0x8e, 0x30, },
745 };
746
747 static struct tuner_params tuner_tnf_8831bgff_params[] = {
748         {
749                 .type   = TUNER_PARAM_TYPE_PAL,
750                 .ranges = tuner_tnf_8831bgff_pal_ranges,
751                 .count  = ARRAY_SIZE(tuner_tnf_8831bgff_pal_ranges),
752         },
753 };
754
755 /* ------------ TUNER_MICROTUNE_4042FI5 - Microtune NTSC ------------ */
756
757 static struct tuner_range tuner_microtune_4042fi5_ntsc_ranges[] = {
758         { 16 * 162.00 /*MHz*/, 0x8e, 0xa2, },
759         { 16 * 457.00 /*MHz*/, 0x8e, 0x94, },
760         { 16 * 999.99        , 0x8e, 0x31, },
761 };
762
763 static struct tuner_range tuner_microtune_4042fi5_atsc_ranges[] = {
764         { 16 * 162.00 /*MHz*/, 0x8e, 0xa1, },
765         { 16 * 457.00 /*MHz*/, 0x8e, 0x91, },
766         { 16 * 999.99        , 0x8e, 0x31, },
767 };
768
769 static struct tuner_params tuner_microtune_4042fi5_params[] = {
770         {
771                 .type   = TUNER_PARAM_TYPE_NTSC,
772                 .ranges = tuner_microtune_4042fi5_ntsc_ranges,
773                 .count  = ARRAY_SIZE(tuner_microtune_4042fi5_ntsc_ranges),
774         },
775         {
776                 .type   = TUNER_PARAM_TYPE_DIGITAL,
777                 .ranges = tuner_microtune_4042fi5_atsc_ranges,
778                 .count  = ARRAY_SIZE(tuner_microtune_4042fi5_atsc_ranges),
779                 .iffreq = 16 * 44.00 /*MHz*/,
780         },
781 };
782
783 /* 50-59 */
784 /* ------------ TUNER_TCL_2002N - TCL NTSC ------------ */
785
786 static struct tuner_range tuner_tcl_2002n_ntsc_ranges[] = {
787         { 16 * 172.00 /*MHz*/, 0x8e, 0x01, },
788         { 16 * 448.00 /*MHz*/, 0x8e, 0x02, },
789         { 16 * 999.99        , 0x8e, 0x08, },
790 };
791
792 static struct tuner_params tuner_tcl_2002n_params[] = {
793         {
794                 .type   = TUNER_PARAM_TYPE_NTSC,
795                 .ranges = tuner_tcl_2002n_ntsc_ranges,
796                 .count  = ARRAY_SIZE(tuner_tcl_2002n_ntsc_ranges),
797                 .cb_first_if_lower_freq = 1,
798         },
799 };
800
801 /* ------------ TUNER_PHILIPS_FM1256_IH3 - Philips PAL ------------ */
802
803 static struct tuner_params tuner_philips_fm1256_ih3_params[] = {
804         {
805                 .type   = TUNER_PARAM_TYPE_PAL,
806                 .ranges = tuner_fm1236_mk3_ntsc_ranges,
807                 .count  = ARRAY_SIZE(tuner_fm1236_mk3_ntsc_ranges),
808                 .radio_if = 1, /* 33.3 MHz */
809         },
810 };
811
812 /* ------------ TUNER_THOMSON_DTT7610 - THOMSON ATSC ------------ */
813
814 /* single range used for both ntsc and atsc */
815 static struct tuner_range tuner_thomson_dtt7610_ntsc_ranges[] = {
816         { 16 * 157.25 /*MHz*/, 0x8e, 0x39, },
817         { 16 * 454.00 /*MHz*/, 0x8e, 0x3a, },
818         { 16 * 999.99        , 0x8e, 0x3c, },
819 };
820
821 static struct tuner_params tuner_thomson_dtt7610_params[] = {
822         {
823                 .type   = TUNER_PARAM_TYPE_NTSC,
824                 .ranges = tuner_thomson_dtt7610_ntsc_ranges,
825                 .count  = ARRAY_SIZE(tuner_thomson_dtt7610_ntsc_ranges),
826         },
827         {
828                 .type   = TUNER_PARAM_TYPE_DIGITAL,
829                 .ranges = tuner_thomson_dtt7610_ntsc_ranges,
830                 .count  = ARRAY_SIZE(tuner_thomson_dtt7610_ntsc_ranges),
831                 .iffreq = 16 * 44.00 /*MHz*/,
832         },
833 };
834
835 /* ------------ TUNER_PHILIPS_FQ1286 - Philips NTSC ------------ */
836
837 static struct tuner_range tuner_philips_fq1286_ntsc_ranges[] = {
838         { 16 * 160.00 /*MHz*/, 0x8e, 0x41, },
839         { 16 * 454.00 /*MHz*/, 0x8e, 0x42, },
840         { 16 * 999.99        , 0x8e, 0x04, },
841 };
842
843 static struct tuner_params tuner_philips_fq1286_params[] = {
844         {
845                 .type   = TUNER_PARAM_TYPE_NTSC,
846                 .ranges = tuner_philips_fq1286_ntsc_ranges,
847                 .count  = ARRAY_SIZE(tuner_philips_fq1286_ntsc_ranges),
848         },
849 };
850
851 /* ------------ TUNER_TCL_2002MB - TCL PAL ------------ */
852
853 static struct tuner_range tuner_tcl_2002mb_pal_ranges[] = {
854         { 16 * 170.00 /*MHz*/, 0xce, 0x01, },
855         { 16 * 450.00 /*MHz*/, 0xce, 0x02, },
856         { 16 * 999.99        , 0xce, 0x08, },
857 };
858
859 static struct tuner_params tuner_tcl_2002mb_params[] = {
860         {
861                 .type   = TUNER_PARAM_TYPE_PAL,
862                 .ranges = tuner_tcl_2002mb_pal_ranges,
863                 .count  = ARRAY_SIZE(tuner_tcl_2002mb_pal_ranges),
864         },
865 };
866
867 /* ------------ TUNER_PHILIPS_FQ1216AME_MK4 - Philips PAL ------------ */
868
869 static struct tuner_range tuner_philips_fq12_6a___mk4_pal_ranges[] = {
870         { 16 * 160.00 /*MHz*/, 0xce, 0x01, },
871         { 16 * 442.00 /*MHz*/, 0xce, 0x02, },
872         { 16 * 999.99        , 0xce, 0x04, },
873 };
874
875 static struct tuner_params tuner_philips_fq1216ame_mk4_params[] = {
876         {
877                 .type   = TUNER_PARAM_TYPE_PAL,
878                 .ranges = tuner_philips_fq12_6a___mk4_pal_ranges,
879                 .count  = ARRAY_SIZE(tuner_philips_fq12_6a___mk4_pal_ranges),
880                 .has_tda9887 = 1,
881                 .port1_active = 1,
882                 .port2_invert_for_secam_lc = 1,
883                 .default_top_mid = -2,
884                 .default_top_secam_low = -2,
885                 .default_top_secam_mid = -2,
886                 .default_top_secam_high = -2,
887         },
888 };
889
890 /* ------------ TUNER_PHILIPS_FQ1236A_MK4 - Philips NTSC ------------ */
891
892 static struct tuner_params tuner_philips_fq1236a_mk4_params[] = {
893         {
894                 .type   = TUNER_PARAM_TYPE_NTSC,
895                 .ranges = tuner_fm1236_mk3_ntsc_ranges,
896                 .count  = ARRAY_SIZE(tuner_fm1236_mk3_ntsc_ranges),
897         },
898 };
899
900 /* ------------ TUNER_YMEC_TVF_8531MF - Philips NTSC ------------ */
901
902 static struct tuner_params tuner_ymec_tvf_8531mf_params[] = {
903         {
904                 .type   = TUNER_PARAM_TYPE_NTSC,
905                 .ranges = tuner_philips_ntsc_m_ranges,
906                 .count  = ARRAY_SIZE(tuner_philips_ntsc_m_ranges),
907         },
908 };
909
910 /* ------------ TUNER_YMEC_TVF_5533MF - Philips NTSC ------------ */
911
912 static struct tuner_range tuner_ymec_tvf_5533mf_ntsc_ranges[] = {
913         { 16 * 160.00 /*MHz*/, 0x8e, 0x01, },
914         { 16 * 454.00 /*MHz*/, 0x8e, 0x02, },
915         { 16 * 999.99        , 0x8e, 0x04, },
916 };
917
918 static struct tuner_params tuner_ymec_tvf_5533mf_params[] = {
919         {
920                 .type   = TUNER_PARAM_TYPE_NTSC,
921                 .ranges = tuner_ymec_tvf_5533mf_ntsc_ranges,
922                 .count  = ARRAY_SIZE(tuner_ymec_tvf_5533mf_ntsc_ranges),
923         },
924 };
925
926 /* 60-69 */
927 /* ------------ TUNER_THOMSON_DTT761X - THOMSON ATSC ------------ */
928 /* DTT 7611 7611A 7612 7613 7613A 7614 7615 7615A */
929
930 static struct tuner_range tuner_thomson_dtt761x_ntsc_ranges[] = {
931         { 16 * 145.25 /*MHz*/, 0x8e, 0x39, },
932         { 16 * 415.25 /*MHz*/, 0x8e, 0x3a, },
933         { 16 * 999.99        , 0x8e, 0x3c, },
934 };
935
936 static struct tuner_range tuner_thomson_dtt761x_atsc_ranges[] = {
937         { 16 * 147.00 /*MHz*/, 0x8e, 0x39, },
938         { 16 * 417.00 /*MHz*/, 0x8e, 0x3a, },
939         { 16 * 999.99        , 0x8e, 0x3c, },
940 };
941
942 static struct tuner_params tuner_thomson_dtt761x_params[] = {
943         {
944                 .type   = TUNER_PARAM_TYPE_NTSC,
945                 .ranges = tuner_thomson_dtt761x_ntsc_ranges,
946                 .count  = ARRAY_SIZE(tuner_thomson_dtt761x_ntsc_ranges),
947                 .has_tda9887 = 1,
948                 .fm_gain_normal = 1,
949                 .radio_if = 2, /* 41.3 MHz */
950         },
951         {
952                 .type   = TUNER_PARAM_TYPE_DIGITAL,
953                 .ranges = tuner_thomson_dtt761x_atsc_ranges,
954                 .count  = ARRAY_SIZE(tuner_thomson_dtt761x_atsc_ranges),
955                 .iffreq = 16 * 44.00, /*MHz*/
956         },
957 };
958
959 /* ------------ TUNER_TENA_9533_DI - Philips PAL ------------ */
960
961 static struct tuner_range tuner_tena_9533_di_pal_ranges[] = {
962         { 16 * 160.25 /*MHz*/, 0x8e, 0x01, },
963         { 16 * 464.25 /*MHz*/, 0x8e, 0x02, },
964         { 16 * 999.99        , 0x8e, 0x04, },
965 };
966
967 static struct tuner_params tuner_tena_9533_di_params[] = {
968         {
969                 .type   = TUNER_PARAM_TYPE_PAL,
970                 .ranges = tuner_tena_9533_di_pal_ranges,
971                 .count  = ARRAY_SIZE(tuner_tena_9533_di_pal_ranges),
972         },
973 };
974
975 /* ------------ TUNER_TENA_TNF_5337 - Tena tnf5337MFD STD M/N ------------ */
976
977 static struct tuner_range tuner_tena_tnf_5337_ntsc_ranges[] = {
978         { 16 * 166.25 /*MHz*/, 0x86, 0x01, },
979         { 16 * 466.25 /*MHz*/, 0x86, 0x02, },
980         { 16 * 999.99        , 0x86, 0x08, },
981 };
982
983 static struct tuner_params tuner_tena_tnf_5337_params[] = {
984         {
985                 .type   = TUNER_PARAM_TYPE_NTSC,
986                 .ranges = tuner_tena_tnf_5337_ntsc_ranges,
987                 .count  = ARRAY_SIZE(tuner_tena_tnf_5337_ntsc_ranges),
988         },
989 };
990
991 /* ------------ TUNER_PHILIPS_FMD1216ME(X)_MK3 - Philips PAL ------------ */
992
993 static struct tuner_range tuner_philips_fmd1216me_mk3_pal_ranges[] = {
994         { 16 * 160.00 /*MHz*/, 0x86, 0x51, },
995         { 16 * 442.00 /*MHz*/, 0x86, 0x52, },
996         { 16 * 999.99        , 0x86, 0x54, },
997 };
998
999 static struct tuner_range tuner_philips_fmd1216me_mk3_dvb_ranges[] = {
1000         { 16 * 143.87 /*MHz*/, 0xbc, 0x41 },
1001         { 16 * 158.87 /*MHz*/, 0xf4, 0x41 },
1002         { 16 * 329.87 /*MHz*/, 0xbc, 0x42 },
1003         { 16 * 441.87 /*MHz*/, 0xf4, 0x42 },
1004         { 16 * 625.87 /*MHz*/, 0xbc, 0x44 },
1005         { 16 * 803.87 /*MHz*/, 0xf4, 0x44 },
1006         { 16 * 999.99        , 0xfc, 0x44 },
1007 };
1008
1009 static struct tuner_params tuner_philips_fmd1216me_mk3_params[] = {
1010         {
1011                 .type   = TUNER_PARAM_TYPE_PAL,
1012                 .ranges = tuner_philips_fmd1216me_mk3_pal_ranges,
1013                 .count  = ARRAY_SIZE(tuner_philips_fmd1216me_mk3_pal_ranges),
1014                 .has_tda9887 = 1,
1015                 .port1_active = 1,
1016                 .port2_active = 1,
1017                 .port2_fm_high_sensitivity = 1,
1018                 .port2_invert_for_secam_lc = 1,
1019                 .port1_set_for_fm_mono = 1,
1020         },
1021         {
1022                 .type   = TUNER_PARAM_TYPE_DIGITAL,
1023                 .ranges = tuner_philips_fmd1216me_mk3_dvb_ranges,
1024                 .count  = ARRAY_SIZE(tuner_philips_fmd1216me_mk3_dvb_ranges),
1025                 .iffreq = 16 * 36.125, /*MHz*/
1026         },
1027 };
1028
1029 static struct tuner_params tuner_philips_fmd1216mex_mk3_params[] = {
1030         {
1031                 .type   = TUNER_PARAM_TYPE_PAL,
1032                 .ranges = tuner_philips_fmd1216me_mk3_pal_ranges,
1033                 .count  = ARRAY_SIZE(tuner_philips_fmd1216me_mk3_pal_ranges),
1034                 .has_tda9887 = 1,
1035                 .port1_active = 1,
1036                 .port2_active = 1,
1037                 .port2_fm_high_sensitivity = 1,
1038                 .port2_invert_for_secam_lc = 1,
1039                 .port1_set_for_fm_mono = 1,
1040                 .radio_if = 1,
1041                 .fm_gain_normal = 1,
1042         },
1043         {
1044                 .type   = TUNER_PARAM_TYPE_DIGITAL,
1045                 .ranges = tuner_philips_fmd1216me_mk3_dvb_ranges,
1046                 .count  = ARRAY_SIZE(tuner_philips_fmd1216me_mk3_dvb_ranges),
1047                 .iffreq = 16 * 36.125, /*MHz*/
1048         },
1049 };
1050
1051 /* ------ TUNER_LG_TDVS_H06XF - LG INNOTEK / INFINEON ATSC ----- */
1052
1053 static struct tuner_range tuner_tua6034_ntsc_ranges[] = {
1054         { 16 * 165.00 /*MHz*/, 0x8e, 0x01 },
1055         { 16 * 450.00 /*MHz*/, 0x8e, 0x02 },
1056         { 16 * 999.99        , 0x8e, 0x04 },
1057 };
1058
1059 static struct tuner_range tuner_tua6034_atsc_ranges[] = {
1060         { 16 * 165.00 /*MHz*/, 0xce, 0x01 },
1061         { 16 * 450.00 /*MHz*/, 0xce, 0x02 },
1062         { 16 * 999.99        , 0xce, 0x04 },
1063 };
1064
1065 static struct tuner_params tuner_lg_tdvs_h06xf_params[] = {
1066         {
1067                 .type   = TUNER_PARAM_TYPE_NTSC,
1068                 .ranges = tuner_tua6034_ntsc_ranges,
1069                 .count  = ARRAY_SIZE(tuner_tua6034_ntsc_ranges),
1070         },
1071         {
1072                 .type   = TUNER_PARAM_TYPE_DIGITAL,
1073                 .ranges = tuner_tua6034_atsc_ranges,
1074                 .count  = ARRAY_SIZE(tuner_tua6034_atsc_ranges),
1075                 .iffreq = 16 * 44.00,
1076         },
1077 };
1078
1079 /* ------------ TUNER_YMEC_TVF66T5_B_DFF - Philips PAL ------------ */
1080
1081 static struct tuner_range tuner_ymec_tvf66t5_b_dff_pal_ranges[] = {
1082         { 16 * 160.25 /*MHz*/, 0x8e, 0x01, },
1083         { 16 * 464.25 /*MHz*/, 0x8e, 0x02, },
1084         { 16 * 999.99        , 0x8e, 0x08, },
1085 };
1086
1087 static struct tuner_params tuner_ymec_tvf66t5_b_dff_params[] = {
1088         {
1089                 .type   = TUNER_PARAM_TYPE_PAL,
1090                 .ranges = tuner_ymec_tvf66t5_b_dff_pal_ranges,
1091                 .count  = ARRAY_SIZE(tuner_ymec_tvf66t5_b_dff_pal_ranges),
1092         },
1093 };
1094
1095 /* ------------ TUNER_LG_NTSC_TALN_MINI - LGINNOTEK NTSC ------------ */
1096
1097 static struct tuner_range tuner_lg_taln_ntsc_ranges[] = {
1098         { 16 * 137.25 /*MHz*/, 0x8e, 0x01, },
1099         { 16 * 373.25 /*MHz*/, 0x8e, 0x02, },
1100         { 16 * 999.99        , 0x8e, 0x08, },
1101 };
1102
1103 static struct tuner_range tuner_lg_taln_pal_secam_ranges[] = {
1104         { 16 * 150.00 /*MHz*/, 0x8e, 0x01, },
1105         { 16 * 425.00 /*MHz*/, 0x8e, 0x02, },
1106         { 16 * 999.99        , 0x8e, 0x08, },
1107 };
1108
1109 static struct tuner_params tuner_lg_taln_params[] = {
1110         {
1111                 .type   = TUNER_PARAM_TYPE_NTSC,
1112                 .ranges = tuner_lg_taln_ntsc_ranges,
1113                 .count  = ARRAY_SIZE(tuner_lg_taln_ntsc_ranges),
1114         },{
1115                 .type   = TUNER_PARAM_TYPE_PAL,
1116                 .ranges = tuner_lg_taln_pal_secam_ranges,
1117                 .count  = ARRAY_SIZE(tuner_lg_taln_pal_secam_ranges),
1118         },
1119 };
1120
1121 /* ------------ TUNER_PHILIPS_TD1316 - Philips PAL ------------ */
1122
1123 static struct tuner_range tuner_philips_td1316_pal_ranges[] = {
1124         { 16 * 160.00 /*MHz*/, 0xc8, 0xa1, },
1125         { 16 * 442.00 /*MHz*/, 0xc8, 0xa2, },
1126         { 16 * 999.99        , 0xc8, 0xa4, },
1127 };
1128
1129 static struct tuner_range tuner_philips_td1316_dvb_ranges[] = {
1130         { 16 *  93.834 /*MHz*/, 0xca, 0x60, },
1131         { 16 * 123.834 /*MHz*/, 0xca, 0xa0, },
1132         { 16 * 163.834 /*MHz*/, 0xca, 0xc0, },
1133         { 16 * 253.834 /*MHz*/, 0xca, 0x60, },
1134         { 16 * 383.834 /*MHz*/, 0xca, 0xa0, },
1135         { 16 * 443.834 /*MHz*/, 0xca, 0xc0, },
1136         { 16 * 583.834 /*MHz*/, 0xca, 0x60, },
1137         { 16 * 793.834 /*MHz*/, 0xca, 0xa0, },
1138         { 16 * 999.999        , 0xca, 0xe0, },
1139 };
1140
1141 static struct tuner_params tuner_philips_td1316_params[] = {
1142         {
1143                 .type   = TUNER_PARAM_TYPE_PAL,
1144                 .ranges = tuner_philips_td1316_pal_ranges,
1145                 .count  = ARRAY_SIZE(tuner_philips_td1316_pal_ranges),
1146         },
1147         {
1148                 .type   = TUNER_PARAM_TYPE_DIGITAL,
1149                 .ranges = tuner_philips_td1316_dvb_ranges,
1150                 .count  = ARRAY_SIZE(tuner_philips_td1316_dvb_ranges),
1151                 .iffreq = 16 * 36.166667 /*MHz*/,
1152         },
1153 };
1154
1155 /* ------------ TUNER_PHILIPS_TUV1236D - Philips ATSC ------------ */
1156
1157 static struct tuner_range tuner_tuv1236d_ntsc_ranges[] = {
1158         { 16 * 157.25 /*MHz*/, 0xce, 0x01, },
1159         { 16 * 454.00 /*MHz*/, 0xce, 0x02, },
1160         { 16 * 999.99        , 0xce, 0x04, },
1161 };
1162
1163 static struct tuner_range tuner_tuv1236d_atsc_ranges[] = {
1164         { 16 * 157.25 /*MHz*/, 0xc6, 0x41, },
1165         { 16 * 454.00 /*MHz*/, 0xc6, 0x42, },
1166         { 16 * 999.99        , 0xc6, 0x44, },
1167 };
1168
1169 static struct tuner_params tuner_tuv1236d_params[] = {
1170         {
1171                 .type   = TUNER_PARAM_TYPE_NTSC,
1172                 .ranges = tuner_tuv1236d_ntsc_ranges,
1173                 .count  = ARRAY_SIZE(tuner_tuv1236d_ntsc_ranges),
1174         },
1175         {
1176                 .type   = TUNER_PARAM_TYPE_DIGITAL,
1177                 .ranges = tuner_tuv1236d_atsc_ranges,
1178                 .count  = ARRAY_SIZE(tuner_tuv1236d_atsc_ranges),
1179                 .iffreq = 16 * 44.00,
1180         },
1181 };
1182
1183 /* ------------ TUNER_TNF_xxx5  - Texas Instruments--------- */
1184 /* This is known to work with Tenna TVF58t5-MFF and TVF5835 MFF
1185  *      but it is expected to work also with other Tenna/Ymec
1186  *      models based on TI SN 761677 chip on both PAL and NTSC
1187  */
1188
1189 static struct tuner_range tuner_tnf_5335_d_if_pal_ranges[] = {
1190         { 16 * 168.25 /*MHz*/, 0x8e, 0x01, },
1191         { 16 * 471.25 /*MHz*/, 0x8e, 0x02, },
1192         { 16 * 999.99        , 0x8e, 0x08, },
1193 };
1194
1195 static struct tuner_range tuner_tnf_5335mf_ntsc_ranges[] = {
1196         { 16 * 169.25 /*MHz*/, 0x8e, 0x01, },
1197         { 16 * 469.25 /*MHz*/, 0x8e, 0x02, },
1198         { 16 * 999.99        , 0x8e, 0x08, },
1199 };
1200
1201 static struct tuner_params tuner_tnf_5335mf_params[] = {
1202         {
1203                 .type   = TUNER_PARAM_TYPE_NTSC,
1204                 .ranges = tuner_tnf_5335mf_ntsc_ranges,
1205                 .count  = ARRAY_SIZE(tuner_tnf_5335mf_ntsc_ranges),
1206         },
1207         {
1208                 .type   = TUNER_PARAM_TYPE_PAL,
1209                 .ranges = tuner_tnf_5335_d_if_pal_ranges,
1210                 .count  = ARRAY_SIZE(tuner_tnf_5335_d_if_pal_ranges),
1211         },
1212 };
1213
1214 /* 70-79 */
1215 /* ------------ TUNER_SAMSUNG_TCPN_2121P30A - Samsung NTSC ------------ */
1216
1217 /* '+ 4' turns on the Low Noise Amplifier */
1218 static struct tuner_range tuner_samsung_tcpn_2121p30a_ntsc_ranges[] = {
1219         { 16 * 130.00 /*MHz*/, 0xce, 0x01 + 4, },
1220         { 16 * 364.50 /*MHz*/, 0xce, 0x02 + 4, },
1221         { 16 * 999.99        , 0xce, 0x08 + 4, },
1222 };
1223
1224 static struct tuner_params tuner_samsung_tcpn_2121p30a_params[] = {
1225         {
1226                 .type   = TUNER_PARAM_TYPE_NTSC,
1227                 .ranges = tuner_samsung_tcpn_2121p30a_ntsc_ranges,
1228                 .count  = ARRAY_SIZE(tuner_samsung_tcpn_2121p30a_ntsc_ranges),
1229         },
1230 };
1231
1232 /* ------------ TUNER_THOMSON_FE6600 - DViCO Hybrid PAL ------------ */
1233
1234 static struct tuner_range tuner_thomson_fe6600_pal_ranges[] = {
1235         { 16 * 160.00 /*MHz*/, 0xfe, 0x11, },
1236         { 16 * 442.00 /*MHz*/, 0xf6, 0x12, },
1237         { 16 * 999.99        , 0xf6, 0x18, },
1238 };
1239
1240 static struct tuner_range tuner_thomson_fe6600_dvb_ranges[] = {
1241         { 16 * 250.00 /*MHz*/, 0xb4, 0x12, },
1242         { 16 * 455.00 /*MHz*/, 0xfe, 0x11, },
1243         { 16 * 775.50 /*MHz*/, 0xbc, 0x18, },
1244         { 16 * 999.99        , 0xf4, 0x18, },
1245 };
1246
1247 static struct tuner_params tuner_thomson_fe6600_params[] = {
1248         {
1249                 .type   = TUNER_PARAM_TYPE_PAL,
1250                 .ranges = tuner_thomson_fe6600_pal_ranges,
1251                 .count  = ARRAY_SIZE(tuner_thomson_fe6600_pal_ranges),
1252         },
1253         {
1254                 .type   = TUNER_PARAM_TYPE_DIGITAL,
1255                 .ranges = tuner_thomson_fe6600_dvb_ranges,
1256                 .count  = ARRAY_SIZE(tuner_thomson_fe6600_dvb_ranges),
1257                 .iffreq = 16 * 36.125 /*MHz*/,
1258         },
1259 };
1260
1261 /* ------------ TUNER_SAMSUNG_TCPG_6121P30A - Samsung PAL ------------ */
1262
1263 /* '+ 4' turns on the Low Noise Amplifier */
1264 static struct tuner_range tuner_samsung_tcpg_6121p30a_pal_ranges[] = {
1265         { 16 * 146.25 /*MHz*/, 0xce, 0x01 + 4, },
1266         { 16 * 428.50 /*MHz*/, 0xce, 0x02 + 4, },
1267         { 16 * 999.99        , 0xce, 0x08 + 4, },
1268 };
1269
1270 static struct tuner_params tuner_samsung_tcpg_6121p30a_params[] = {
1271         {
1272                 .type   = TUNER_PARAM_TYPE_PAL,
1273                 .ranges = tuner_samsung_tcpg_6121p30a_pal_ranges,
1274                 .count  = ARRAY_SIZE(tuner_samsung_tcpg_6121p30a_pal_ranges),
1275                 .has_tda9887 = 1,
1276                 .port1_active = 1,
1277                 .port2_active = 1,
1278                 .port2_invert_for_secam_lc = 1,
1279         },
1280 };
1281
1282 /* ------------ TUNER_TCL_MF02GIP-5N-E - TCL MF02GIP-5N ------------ */
1283
1284 static struct tuner_range tuner_tcl_mf02gip_5n_ntsc_ranges[] = {
1285         { 16 * 172.00 /*MHz*/, 0x8e, 0x01, },
1286         { 16 * 448.00 /*MHz*/, 0x8e, 0x02, },
1287         { 16 * 999.99        , 0x8e, 0x04, },
1288 };
1289
1290 static struct tuner_params tuner_tcl_mf02gip_5n_params[] = {
1291         {
1292                 .type   = TUNER_PARAM_TYPE_NTSC,
1293                 .ranges = tuner_tcl_mf02gip_5n_ntsc_ranges,
1294                 .count  = ARRAY_SIZE(tuner_tcl_mf02gip_5n_ntsc_ranges),
1295                 .cb_first_if_lower_freq = 1,
1296         },
1297 };
1298
1299 /* 80-89 */
1300 /* --------- TUNER_PHILIPS_FQ1216LME_MK3 -- active loopthrough, no FM ------- */
1301
1302 static struct tuner_params tuner_fq1216lme_mk3_params[] = {
1303         {
1304                 .type   = TUNER_PARAM_TYPE_PAL,
1305                 .ranges = tuner_fm1216me_mk3_pal_ranges,
1306                 .count  = ARRAY_SIZE(tuner_fm1216me_mk3_pal_ranges),
1307                 .cb_first_if_lower_freq = 1, /* not specified, but safe to do */
1308                 .has_tda9887 = 1, /* TDA9886 */
1309                 .port1_active = 1,
1310                 .port2_active = 1,
1311                 .port2_invert_for_secam_lc = 1,
1312                 .default_top_low = 4,
1313                 .default_top_mid = 4,
1314                 .default_top_high = 4,
1315                 .default_top_secam_low = 4,
1316                 .default_top_secam_mid = 4,
1317                 .default_top_secam_high = 4,
1318         },
1319 };
1320
1321 /* ----- TUNER_PARTSNIC_PTI_5NF05 - Partsnic (Daewoo) PTI-5NF05 NTSC ----- */
1322
1323 static struct tuner_range tuner_partsnic_pti_5nf05_ranges[] = {
1324         /* The datasheet specified channel ranges and the bandswitch byte */
1325         /* The control byte value of 0x8e is just a guess */
1326         { 16 * 133.25 /*MHz*/, 0x8e, 0x01, }, /* Channels    2 -    B */
1327         { 16 * 367.25 /*MHz*/, 0x8e, 0x02, }, /* Channels    C - W+11 */
1328         { 16 * 999.99        , 0x8e, 0x08, }, /* Channels W+12 -   69 */
1329 };
1330
1331 static struct tuner_params tuner_partsnic_pti_5nf05_params[] = {
1332         {
1333                 .type   = TUNER_PARAM_TYPE_NTSC,
1334                 .ranges = tuner_partsnic_pti_5nf05_ranges,
1335                 .count  = ARRAY_SIZE(tuner_partsnic_pti_5nf05_ranges),
1336                 .cb_first_if_lower_freq = 1, /* not specified but safe to do */
1337         },
1338 };
1339
1340 /* --------- TUNER_PHILIPS_CU1216L - DVB-C NIM ------------------------- */
1341
1342 static struct tuner_range tuner_cu1216l_ranges[] = {
1343         { 16 * 160.25 /*MHz*/, 0xce, 0x01 },
1344         { 16 * 444.25 /*MHz*/, 0xce, 0x02 },
1345         { 16 * 999.99        , 0xce, 0x04 },
1346 };
1347
1348 static struct tuner_params tuner_philips_cu1216l_params[] = {
1349         {
1350                 .type   = TUNER_PARAM_TYPE_DIGITAL,
1351                 .ranges = tuner_cu1216l_ranges,
1352                 .count  = ARRAY_SIZE(tuner_cu1216l_ranges),
1353                 .iffreq = 16 * 36.125, /*MHz*/
1354         },
1355 };
1356
1357 /* ---------------------- TUNER_SONY_BTF_PXN01Z ------------------------ */
1358
1359 static struct tuner_range tuner_sony_btf_pxn01z_ranges[] = {
1360         { 16 * 137.25 /*MHz*/, 0x8e, 0x01, },
1361         { 16 * 367.25 /*MHz*/, 0x8e, 0x02, },
1362         { 16 * 999.99        , 0x8e, 0x04, },
1363 };
1364
1365 static struct tuner_params tuner_sony_btf_pxn01z_params[] = {
1366         {
1367                 .type   = TUNER_PARAM_TYPE_NTSC,
1368                 .ranges = tuner_sony_btf_pxn01z_ranges,
1369                 .count  = ARRAY_SIZE(tuner_sony_btf_pxn01z_ranges),
1370         },
1371 };
1372
1373 /* ------------ TUNER_PHILIPS_FQ1236_MK5 - Philips NTSC ------------ */
1374
1375 static struct tuner_params tuner_philips_fq1236_mk5_params[] = {
1376         {
1377                 .type   = TUNER_PARAM_TYPE_NTSC,
1378                 .ranges = tuner_fm1236_mk3_ntsc_ranges,
1379                 .count  = ARRAY_SIZE(tuner_fm1236_mk3_ntsc_ranges),
1380                 .has_tda9887 = 1, /* TDA9885, no FM radio */
1381         },
1382 };
1383
1384 /* --------- Sony BTF-PG472Z PAL/SECAM ------- */
1385
1386 static struct tuner_range tuner_sony_btf_pg472z_ranges[] = {
1387         { 16 * 144.25 /*MHz*/, 0xc6, 0x01, },
1388         { 16 * 427.25 /*MHz*/, 0xc6, 0x02, },
1389         { 16 * 999.99        , 0xc6, 0x04, },
1390 };
1391
1392 static struct tuner_params tuner_sony_btf_pg472z_params[] = {
1393         {
1394                 .type   = TUNER_PARAM_TYPE_PAL,
1395                 .ranges = tuner_sony_btf_pg472z_ranges,
1396                 .count  = ARRAY_SIZE(tuner_sony_btf_pg472z_ranges),
1397                 .has_tda9887 = 1,
1398                 .port1_active = 1,
1399                 .port2_invert_for_secam_lc = 1,
1400         },
1401 };
1402
1403 /* 90-99 */
1404 /* --------- Sony BTF-PG467Z NTSC-M-JP ------- */
1405
1406 static struct tuner_range tuner_sony_btf_pg467z_ranges[] = {
1407         { 16 * 220.25 /*MHz*/, 0xc6, 0x01, },
1408         { 16 * 467.25 /*MHz*/, 0xc6, 0x02, },
1409         { 16 * 999.99        , 0xc6, 0x04, },
1410 };
1411
1412 static struct tuner_params tuner_sony_btf_pg467z_params[] = {
1413         {
1414                 .type   = TUNER_PARAM_TYPE_NTSC,
1415                 .ranges = tuner_sony_btf_pg467z_ranges,
1416                 .count  = ARRAY_SIZE(tuner_sony_btf_pg467z_ranges),
1417         },
1418 };
1419
1420 /* --------- Sony BTF-PG463Z NTSC-M ------- */
1421
1422 static struct tuner_range tuner_sony_btf_pg463z_ranges[] = {
1423         { 16 * 130.25 /*MHz*/, 0xc6, 0x01, },
1424         { 16 * 364.25 /*MHz*/, 0xc6, 0x02, },
1425         { 16 * 999.99        , 0xc6, 0x04, },
1426 };
1427
1428 static struct tuner_params tuner_sony_btf_pg463z_params[] = {
1429         {
1430                 .type   = TUNER_PARAM_TYPE_NTSC,
1431                 .ranges = tuner_sony_btf_pg463z_ranges,
1432                 .count  = ARRAY_SIZE(tuner_sony_btf_pg463z_ranges),
1433         },
1434 };
1435
1436 /* --------------------------------------------------------------------- */
1437
1438 struct tunertype tuners[] = {
1439         /* 0-9 */
1440         [TUNER_TEMIC_PAL] = { /* TEMIC PAL */
1441                 .name   = "Temic PAL (4002 FH5)",
1442                 .params = tuner_temic_pal_params,
1443                 .count  = ARRAY_SIZE(tuner_temic_pal_params),
1444         },
1445         [TUNER_PHILIPS_PAL_I] = { /* Philips PAL_I */
1446                 .name   = "Philips PAL_I (FI1246 and compatibles)",
1447                 .params = tuner_philips_pal_i_params,
1448                 .count  = ARRAY_SIZE(tuner_philips_pal_i_params),
1449         },
1450         [TUNER_PHILIPS_NTSC] = { /* Philips NTSC */
1451                 .name   = "Philips NTSC (FI1236,FM1236 and compatibles)",
1452                 .params = tuner_philips_ntsc_params,
1453                 .count  = ARRAY_SIZE(tuner_philips_ntsc_params),
1454         },
1455         [TUNER_PHILIPS_SECAM] = { /* Philips SECAM */
1456                 .name   = "Philips (SECAM+PAL_BG) (FI1216MF, FM1216MF, FR1216MF)",
1457                 .params = tuner_philips_secam_params,
1458                 .count  = ARRAY_SIZE(tuner_philips_secam_params),
1459         },
1460         [TUNER_ABSENT] = { /* Tuner Absent */
1461                 .name   = "NoTuner",
1462         },
1463         [TUNER_PHILIPS_PAL] = { /* Philips PAL */
1464                 .name   = "Philips PAL_BG (FI1216 and compatibles)",
1465                 .params = tuner_philips_pal_params,
1466                 .count  = ARRAY_SIZE(tuner_philips_pal_params),
1467         },
1468         [TUNER_TEMIC_NTSC] = { /* TEMIC NTSC */
1469                 .name   = "Temic NTSC (4032 FY5)",
1470                 .params = tuner_temic_ntsc_params,
1471                 .count  = ARRAY_SIZE(tuner_temic_ntsc_params),
1472         },
1473         [TUNER_TEMIC_PAL_I] = { /* TEMIC PAL_I */
1474                 .name   = "Temic PAL_I (4062 FY5)",
1475                 .params = tuner_temic_pal_i_params,
1476                 .count  = ARRAY_SIZE(tuner_temic_pal_i_params),
1477         },
1478         [TUNER_TEMIC_4036FY5_NTSC] = { /* TEMIC NTSC */
1479                 .name   = "Temic NTSC (4036 FY5)",
1480                 .params = tuner_temic_4036fy5_ntsc_params,
1481                 .count  = ARRAY_SIZE(tuner_temic_4036fy5_ntsc_params),
1482         },
1483         [TUNER_ALPS_TSBH1_NTSC] = { /* TEMIC NTSC */
1484                 .name   = "Alps HSBH1",
1485                 .params = tuner_alps_tsbh1_ntsc_params,
1486                 .count  = ARRAY_SIZE(tuner_alps_tsbh1_ntsc_params),
1487         },
1488
1489         /* 10-19 */
1490         [TUNER_ALPS_TSBE1_PAL] = { /* TEMIC PAL */
1491                 .name   = "Alps TSBE1",
1492                 .params = tuner_alps_tsb_1_params,
1493                 .count  = ARRAY_SIZE(tuner_alps_tsb_1_params),
1494         },
1495         [TUNER_ALPS_TSBB5_PAL_I] = { /* Alps PAL_I */
1496                 .name   = "Alps TSBB5",
1497                 .params = tuner_alps_tsbb5_params,
1498                 .count  = ARRAY_SIZE(tuner_alps_tsbb5_params),
1499         },
1500         [TUNER_ALPS_TSBE5_PAL] = { /* Alps PAL */
1501                 .name   = "Alps TSBE5",
1502                 .params = tuner_alps_tsbe5_params,
1503                 .count  = ARRAY_SIZE(tuner_alps_tsbe5_params),
1504         },
1505         [TUNER_ALPS_TSBC5_PAL] = { /* Alps PAL */
1506                 .name   = "Alps TSBC5",
1507                 .params = tuner_alps_tsbc5_params,
1508                 .count  = ARRAY_SIZE(tuner_alps_tsbc5_params),
1509         },
1510         [TUNER_TEMIC_4006FH5_PAL] = { /* TEMIC PAL */
1511                 .name   = "Temic PAL_BG (4006FH5)",
1512                 .params = tuner_temic_4006fh5_params,
1513                 .count  = ARRAY_SIZE(tuner_temic_4006fh5_params),
1514         },
1515         [TUNER_ALPS_TSHC6_NTSC] = { /* Alps NTSC */
1516                 .name   = "Alps TSCH6",
1517                 .params = tuner_alps_tshc6_params,
1518                 .count  = ARRAY_SIZE(tuner_alps_tshc6_params),
1519         },
1520         [TUNER_TEMIC_PAL_DK] = { /* TEMIC PAL */
1521                 .name   = "Temic PAL_DK (4016 FY5)",
1522                 .params = tuner_temic_pal_dk_params,
1523                 .count  = ARRAY_SIZE(tuner_temic_pal_dk_params),
1524         },
1525         [TUNER_PHILIPS_NTSC_M] = { /* Philips NTSC */
1526                 .name   = "Philips NTSC_M (MK2)",
1527                 .params = tuner_philips_ntsc_m_params,
1528                 .count  = ARRAY_SIZE(tuner_philips_ntsc_m_params),
1529         },
1530         [TUNER_TEMIC_4066FY5_PAL_I] = { /* TEMIC PAL_I */
1531                 .name   = "Temic PAL_I (4066 FY5)",
1532                 .params = tuner_temic_4066fy5_pal_i_params,
1533                 .count  = ARRAY_SIZE(tuner_temic_4066fy5_pal_i_params),
1534         },
1535         [TUNER_TEMIC_4006FN5_MULTI_PAL] = { /* TEMIC PAL */
1536                 .name   = "Temic PAL* auto (4006 FN5)",
1537                 .params = tuner_temic_4006fn5_multi_params,
1538                 .count  = ARRAY_SIZE(tuner_temic_4006fn5_multi_params),
1539         },
1540
1541         /* 20-29 */
1542         [TUNER_TEMIC_4009FR5_PAL] = { /* TEMIC PAL */
1543                 .name   = "Temic PAL_BG (4009 FR5) or PAL_I (4069 FR5)",
1544                 .params = tuner_temic_4009f_5_params,
1545                 .count  = ARRAY_SIZE(tuner_temic_4009f_5_params),
1546         },
1547         [TUNER_TEMIC_4039FR5_NTSC] = { /* TEMIC NTSC */
1548                 .name   = "Temic NTSC (4039 FR5)",
1549                 .params = tuner_temic_4039fr5_params,
1550                 .count  = ARRAY_SIZE(tuner_temic_4039fr5_params),
1551         },
1552         [TUNER_TEMIC_4046FM5] = { /* TEMIC PAL */
1553                 .name   = "Temic PAL/SECAM multi (4046 FM5)",
1554                 .params = tuner_temic_4046fm5_params,
1555                 .count  = ARRAY_SIZE(tuner_temic_4046fm5_params),
1556         },
1557         [TUNER_PHILIPS_PAL_DK] = { /* Philips PAL */
1558                 .name   = "Philips PAL_DK (FI1256 and compatibles)",
1559                 .params = tuner_philips_pal_dk_params,
1560                 .count  = ARRAY_SIZE(tuner_philips_pal_dk_params),
1561         },
1562         [TUNER_PHILIPS_FQ1216ME] = { /* Philips PAL */
1563                 .name   = "Philips PAL/SECAM multi (FQ1216ME)",
1564                 .params = tuner_philips_fq1216me_params,
1565                 .count  = ARRAY_SIZE(tuner_philips_fq1216me_params),
1566         },
1567         [TUNER_LG_PAL_I_FM] = { /* LGINNOTEK PAL_I */
1568                 .name   = "LG PAL_I+FM (TAPC-I001D)",
1569                 .params = tuner_lg_pal_i_fm_params,
1570                 .count  = ARRAY_SIZE(tuner_lg_pal_i_fm_params),
1571         },
1572         [TUNER_LG_PAL_I] = { /* LGINNOTEK PAL_I */
1573                 .name   = "LG PAL_I (TAPC-I701D)",
1574                 .params = tuner_lg_pal_i_params,
1575                 .count  = ARRAY_SIZE(tuner_lg_pal_i_params),
1576         },
1577         [TUNER_LG_NTSC_FM] = { /* LGINNOTEK NTSC */
1578                 .name   = "LG NTSC+FM (TPI8NSR01F)",
1579                 .params = tuner_lg_ntsc_fm_params,
1580                 .count  = ARRAY_SIZE(tuner_lg_ntsc_fm_params),
1581         },
1582         [TUNER_LG_PAL_FM] = { /* LGINNOTEK PAL */
1583                 .name   = "LG PAL_BG+FM (TPI8PSB01D)",
1584                 .params = tuner_lg_pal_fm_params,
1585                 .count  = ARRAY_SIZE(tuner_lg_pal_fm_params),
1586         },
1587         [TUNER_LG_PAL] = { /* LGINNOTEK PAL */
1588                 .name   = "LG PAL_BG (TPI8PSB11D)",
1589                 .params = tuner_lg_pal_params,
1590                 .count  = ARRAY_SIZE(tuner_lg_pal_params),
1591         },
1592
1593         /* 30-39 */
1594         [TUNER_TEMIC_4009FN5_MULTI_PAL_FM] = { /* TEMIC PAL */
1595                 .name   = "Temic PAL* auto + FM (4009 FN5)",
1596                 .params = tuner_temic_4009_fn5_multi_pal_fm_params,
1597                 .count  = ARRAY_SIZE(tuner_temic_4009_fn5_multi_pal_fm_params),
1598         },
1599         [TUNER_SHARP_2U5JF5540_NTSC] = { /* SHARP NTSC */
1600                 .name   = "SHARP NTSC_JP (2U5JF5540)",
1601                 .params = tuner_sharp_2u5jf5540_params,
1602                 .count  = ARRAY_SIZE(tuner_sharp_2u5jf5540_params),
1603         },
1604         [TUNER_Samsung_PAL_TCPM9091PD27] = { /* Samsung PAL */
1605                 .name   = "Samsung PAL TCPM9091PD27",
1606                 .params = tuner_samsung_pal_tcpm9091pd27_params,
1607                 .count  = ARRAY_SIZE(tuner_samsung_pal_tcpm9091pd27_params),
1608         },
1609         [TUNER_MT2032] = { /* Microtune PAL|NTSC */
1610                 .name   = "MT20xx universal",
1611                 /* see mt20xx.c for details */ },
1612         [TUNER_TEMIC_4106FH5] = { /* TEMIC PAL */
1613                 .name   = "Temic PAL_BG (4106 FH5)",
1614                 .params = tuner_temic_4106fh5_params,
1615                 .count  = ARRAY_SIZE(tuner_temic_4106fh5_params),
1616         },
1617         [TUNER_TEMIC_4012FY5] = { /* TEMIC PAL */
1618                 .name   = "Temic PAL_DK/SECAM_L (4012 FY5)",
1619                 .params = tuner_temic_4012fy5_params,
1620                 .count  = ARRAY_SIZE(tuner_temic_4012fy5_params),
1621         },
1622         [TUNER_TEMIC_4136FY5] = { /* TEMIC NTSC */
1623                 .name   = "Temic NTSC (4136 FY5)",
1624                 .params = tuner_temic_4136_fy5_params,
1625                 .count  = ARRAY_SIZE(tuner_temic_4136_fy5_params),
1626         },
1627         [TUNER_LG_PAL_NEW_TAPC] = { /* LGINNOTEK PAL */
1628                 .name   = "LG PAL (newer TAPC series)",
1629                 .params = tuner_lg_pal_new_tapc_params,
1630                 .count  = ARRAY_SIZE(tuner_lg_pal_new_tapc_params),
1631         },
1632         [TUNER_PHILIPS_FM1216ME_MK3] = { /* Philips PAL */
1633                 .name   = "Philips PAL/SECAM multi (FM1216ME MK3)",
1634                 .params = tuner_fm1216me_mk3_params,
1635                 .count  = ARRAY_SIZE(tuner_fm1216me_mk3_params),
1636         },
1637         [TUNER_LG_NTSC_NEW_TAPC] = { /* LGINNOTEK NTSC */
1638                 .name   = "LG NTSC (newer TAPC series)",
1639                 .params = tuner_lg_ntsc_new_tapc_params,
1640                 .count  = ARRAY_SIZE(tuner_lg_ntsc_new_tapc_params),
1641         },
1642
1643         /* 40-49 */
1644         [TUNER_HITACHI_NTSC] = { /* HITACHI NTSC */
1645                 .name   = "HITACHI V7-J180AT",
1646                 .params = tuner_hitachi_ntsc_params,
1647                 .count  = ARRAY_SIZE(tuner_hitachi_ntsc_params),
1648         },
1649         [TUNER_PHILIPS_PAL_MK] = { /* Philips PAL */
1650                 .name   = "Philips PAL_MK (FI1216 MK)",
1651                 .params = tuner_philips_pal_mk_params,
1652                 .count  = ARRAY_SIZE(tuner_philips_pal_mk_params),
1653         },
1654         [TUNER_PHILIPS_FCV1236D] = { /* Philips ATSC */
1655                 .name   = "Philips FCV1236D ATSC/NTSC dual in",
1656                 .params = tuner_philips_fcv1236d_params,
1657                 .count  = ARRAY_SIZE(tuner_philips_fcv1236d_params),
1658                 .min = 16 *  53.00,
1659                 .max = 16 * 803.00,
1660                 .stepsize = 62500,
1661         },
1662         [TUNER_PHILIPS_FM1236_MK3] = { /* Philips NTSC */
1663                 .name   = "Philips NTSC MK3 (FM1236MK3 or FM1236/F)",
1664                 .params = tuner_fm1236_mk3_params,
1665                 .count  = ARRAY_SIZE(tuner_fm1236_mk3_params),
1666         },
1667         [TUNER_PHILIPS_4IN1] = { /* Philips NTSC */
1668                 .name   = "Philips 4 in 1 (ATI TV Wonder Pro/Conexant)",
1669                 .params = tuner_philips_4in1_params,
1670                 .count  = ARRAY_SIZE(tuner_philips_4in1_params),
1671         },
1672         [TUNER_MICROTUNE_4049FM5] = { /* Microtune PAL */
1673                 .name   = "Microtune 4049 FM5",
1674                 .params = tuner_microtune_4049_fm5_params,
1675                 .count  = ARRAY_SIZE(tuner_microtune_4049_fm5_params),
1676         },
1677         [TUNER_PANASONIC_VP27] = { /* Panasonic NTSC */
1678                 .name   = "Panasonic VP27s/ENGE4324D",
1679                 .params = tuner_panasonic_vp27_params,
1680                 .count  = ARRAY_SIZE(tuner_panasonic_vp27_params),
1681         },
1682         [TUNER_LG_NTSC_TAPE] = { /* LGINNOTEK NTSC */
1683                 .name   = "LG NTSC (TAPE series)",
1684                 .params = tuner_fm1236_mk3_params,
1685                 .count  = ARRAY_SIZE(tuner_fm1236_mk3_params),
1686         },
1687         [TUNER_TNF_8831BGFF] = { /* Philips PAL */
1688                 .name   = "Tenna TNF 8831 BGFF)",
1689                 .params = tuner_tnf_8831bgff_params,
1690                 .count  = ARRAY_SIZE(tuner_tnf_8831bgff_params),
1691         },
1692         [TUNER_MICROTUNE_4042FI5] = { /* Microtune NTSC */
1693                 .name   = "Microtune 4042 FI5 ATSC/NTSC dual in",
1694                 .params = tuner_microtune_4042fi5_params,
1695                 .count  = ARRAY_SIZE(tuner_microtune_4042fi5_params),
1696                 .min    = 16 *  57.00,
1697                 .max    = 16 * 858.00,
1698                 .stepsize = 62500,
1699         },
1700
1701         /* 50-59 */
1702         [TUNER_TCL_2002N] = { /* TCL NTSC */
1703                 .name   = "TCL 2002N",
1704                 .params = tuner_tcl_2002n_params,
1705                 .count  = ARRAY_SIZE(tuner_tcl_2002n_params),
1706         },
1707         [TUNER_PHILIPS_FM1256_IH3] = { /* Philips PAL */
1708                 .name   = "Philips PAL/SECAM_D (FM 1256 I-H3)",
1709                 .params = tuner_philips_fm1256_ih3_params,
1710                 .count  = ARRAY_SIZE(tuner_philips_fm1256_ih3_params),
1711         },
1712         [TUNER_THOMSON_DTT7610] = { /* THOMSON ATSC */
1713                 .name   = "Thomson DTT 7610 (ATSC/NTSC)",
1714                 .params = tuner_thomson_dtt7610_params,
1715                 .count  = ARRAY_SIZE(tuner_thomson_dtt7610_params),
1716                 .min    = 16 *  44.00,
1717                 .max    = 16 * 958.00,
1718                 .stepsize = 62500,
1719         },
1720         [TUNER_PHILIPS_FQ1286] = { /* Philips NTSC */
1721                 .name   = "Philips FQ1286",
1722                 .params = tuner_philips_fq1286_params,
1723                 .count  = ARRAY_SIZE(tuner_philips_fq1286_params),
1724         },
1725         [TUNER_PHILIPS_TDA8290] = { /* Philips PAL|NTSC */
1726                 .name   = "Philips/NXP TDA 8290/8295 + 8275/8275A/18271",
1727                 /* see tda8290.c for details */ },
1728         [TUNER_TCL_2002MB] = { /* TCL PAL */
1729                 .name   = "TCL 2002MB",
1730                 .params = tuner_tcl_2002mb_params,
1731                 .count  = ARRAY_SIZE(tuner_tcl_2002mb_params),
1732         },
1733         [TUNER_PHILIPS_FQ1216AME_MK4] = { /* Philips PAL */
1734                 .name   = "Philips PAL/SECAM multi (FQ1216AME MK4)",
1735                 .params = tuner_philips_fq1216ame_mk4_params,
1736                 .count  = ARRAY_SIZE(tuner_philips_fq1216ame_mk4_params),
1737         },
1738         [TUNER_PHILIPS_FQ1236A_MK4] = { /* Philips NTSC */
1739                 .name   = "Philips FQ1236A MK4",
1740                 .params = tuner_philips_fq1236a_mk4_params,
1741                 .count  = ARRAY_SIZE(tuner_philips_fq1236a_mk4_params),
1742         },
1743         [TUNER_YMEC_TVF_8531MF] = { /* Philips NTSC */
1744                 .name   = "Ymec TVision TVF-8531MF/8831MF/8731MF",
1745                 .params = tuner_ymec_tvf_8531mf_params,
1746                 .count  = ARRAY_SIZE(tuner_ymec_tvf_8531mf_params),
1747         },
1748         [TUNER_YMEC_TVF_5533MF] = { /* Philips NTSC */
1749                 .name   = "Ymec TVision TVF-5533MF",
1750                 .params = tuner_ymec_tvf_5533mf_params,
1751                 .count  = ARRAY_SIZE(tuner_ymec_tvf_5533mf_params),
1752         },
1753
1754         /* 60-69 */
1755         [TUNER_THOMSON_DTT761X] = { /* THOMSON ATSC */
1756                 /* DTT 7611 7611A 7612 7613 7613A 7614 7615 7615A */
1757                 .name   = "Thomson DTT 761X (ATSC/NTSC)",
1758                 .params = tuner_thomson_dtt761x_params,
1759                 .count  = ARRAY_SIZE(tuner_thomson_dtt761x_params),
1760                 .min    = 16 *  57.00,
1761                 .max    = 16 * 863.00,
1762                 .stepsize = 62500,
1763                 .initdata = tua603x_agc103,
1764         },
1765         [TUNER_TENA_9533_DI] = { /* Philips PAL */
1766                 .name   = "Tena TNF9533-D/IF/TNF9533-B/DF",
1767                 .params = tuner_tena_9533_di_params,
1768                 .count  = ARRAY_SIZE(tuner_tena_9533_di_params),
1769         },
1770         [TUNER_TEA5767] = { /* Philips RADIO */
1771                 .name   = "Philips TEA5767HN FM Radio",
1772                 /* see tea5767.c for details */
1773         },
1774         [TUNER_PHILIPS_FMD1216ME_MK3] = { /* Philips PAL */
1775                 .name   = "Philips FMD1216ME MK3 Hybrid Tuner",
1776                 .params = tuner_philips_fmd1216me_mk3_params,
1777                 .count  = ARRAY_SIZE(tuner_philips_fmd1216me_mk3_params),
1778                 .min = 16 *  50.87,
1779                 .max = 16 * 858.00,
1780                 .stepsize = 166667,
1781                 .initdata = tua603x_agc112,
1782                 .sleepdata = (u8[]){ 4, 0x9c, 0x60, 0x85, 0x54 },
1783         },
1784         [TUNER_LG_TDVS_H06XF] = { /* LGINNOTEK ATSC */
1785                 .name   = "LG TDVS-H06xF", /* H061F, H062F & H064F */
1786                 .params = tuner_lg_tdvs_h06xf_params,
1787                 .count  = ARRAY_SIZE(tuner_lg_tdvs_h06xf_params),
1788                 .min    = 16 *  54.00,
1789                 .max    = 16 * 863.00,
1790                 .stepsize = 62500,
1791                 .initdata = tua603x_agc103,
1792         },
1793         [TUNER_YMEC_TVF66T5_B_DFF] = { /* Philips PAL */
1794                 .name   = "Ymec TVF66T5-B/DFF",
1795                 .params = tuner_ymec_tvf66t5_b_dff_params,
1796                 .count  = ARRAY_SIZE(tuner_ymec_tvf66t5_b_dff_params),
1797         },
1798         [TUNER_LG_TALN] = { /* LGINNOTEK NTSC / PAL / SECAM */
1799                 .name   = "LG TALN series",
1800                 .params = tuner_lg_taln_params,
1801                 .count  = ARRAY_SIZE(tuner_lg_taln_params),
1802         },
1803         [TUNER_PHILIPS_TD1316] = { /* Philips PAL */
1804                 .name   = "Philips TD1316 Hybrid Tuner",
1805                 .params = tuner_philips_td1316_params,
1806                 .count  = ARRAY_SIZE(tuner_philips_td1316_params),
1807                 .min    = 16 *  87.00,
1808                 .max    = 16 * 895.00,
1809                 .stepsize = 166667,
1810         },
1811         [TUNER_PHILIPS_TUV1236D] = { /* Philips ATSC */
1812                 .name   = "Philips TUV1236D ATSC/NTSC dual in",
1813                 .params = tuner_tuv1236d_params,
1814                 .count  = ARRAY_SIZE(tuner_tuv1236d_params),
1815                 .min    = 16 *  54.00,
1816                 .max    = 16 * 864.00,
1817                 .stepsize = 62500,
1818         },
1819         [TUNER_TNF_5335MF] = { /* Tenna PAL/NTSC */
1820                 .name   = "Tena TNF 5335 and similar models",
1821                 .params = tuner_tnf_5335mf_params,
1822                 .count  = ARRAY_SIZE(tuner_tnf_5335mf_params),
1823         },
1824
1825         /* 70-79 */
1826         [TUNER_SAMSUNG_TCPN_2121P30A] = { /* Samsung NTSC */
1827                 .name   = "Samsung TCPN 2121P30A",
1828                 .params = tuner_samsung_tcpn_2121p30a_params,
1829                 .count  = ARRAY_SIZE(tuner_samsung_tcpn_2121p30a_params),
1830         },
1831         [TUNER_XC2028] = { /* Xceive 2028 */
1832                 .name   = "Xceive xc2028/xc3028 tuner",
1833                 /* see tuner-xc2028.c for details */
1834         },
1835         [TUNER_THOMSON_FE6600] = { /* Thomson PAL / DVB-T */
1836                 .name   = "Thomson FE6600",
1837                 .params = tuner_thomson_fe6600_params,
1838                 .count  = ARRAY_SIZE(tuner_thomson_fe6600_params),
1839                 .min    = 16 *  44.25,
1840                 .max    = 16 * 858.00,
1841                 .stepsize = 166667,
1842         },
1843         [TUNER_SAMSUNG_TCPG_6121P30A] = { /* Samsung PAL */
1844                 .name   = "Samsung TCPG 6121P30A",
1845                 .params = tuner_samsung_tcpg_6121p30a_params,
1846                 .count  = ARRAY_SIZE(tuner_samsung_tcpg_6121p30a_params),
1847         },
1848         [TUNER_TDA9887] = { /* Philips TDA 9887 IF PLL Demodulator.
1849                                 This chip is part of some modern tuners */
1850                 .name   = "Philips TDA988[5,6,7] IF PLL Demodulator",
1851                 /* see tda9887.c for details */
1852         },
1853         [TUNER_TEA5761] = { /* Philips RADIO */
1854                 .name   = "Philips TEA5761 FM Radio",
1855                 /* see tea5767.c for details */
1856         },
1857         [TUNER_XC5000] = { /* Xceive 5000 */
1858                 .name   = "Xceive 5000 tuner",
1859                 /* see xc5000.c for details */
1860         },
1861         [TUNER_XC4000] = { /* Xceive 4000 */
1862                 .name   = "Xceive 4000 tuner",
1863                 /* see xc4000.c for details */
1864         },
1865         [TUNER_TCL_MF02GIP_5N] = { /* TCL tuner MF02GIP-5N-E */
1866                 .name   = "TCL tuner MF02GIP-5N-E",
1867                 .params = tuner_tcl_mf02gip_5n_params,
1868                 .count  = ARRAY_SIZE(tuner_tcl_mf02gip_5n_params),
1869         },
1870         [TUNER_PHILIPS_FMD1216MEX_MK3] = { /* Philips PAL */
1871                 .name   = "Philips FMD1216MEX MK3 Hybrid Tuner",
1872                 .params = tuner_philips_fmd1216mex_mk3_params,
1873                 .count  = ARRAY_SIZE(tuner_philips_fmd1216mex_mk3_params),
1874                 .min = 16 *  50.87,
1875                 .max = 16 * 858.00,
1876                 .stepsize = 166667,
1877                 .initdata = tua603x_agc112,
1878                 .sleepdata = (u8[]){ 4, 0x9c, 0x60, 0x85, 0x54 },
1879         },
1880                 [TUNER_PHILIPS_FM1216MK5] = { /* Philips PAL */
1881                 .name   = "Philips PAL/SECAM multi (FM1216 MK5)",
1882                 .params = tuner_fm1216mk5_params,
1883                 .count  = ARRAY_SIZE(tuner_fm1216mk5_params),
1884         },
1885
1886         /* 80-89 */
1887         [TUNER_PHILIPS_FQ1216LME_MK3] = { /* PAL/SECAM, Loop-thru, no FM */
1888                 .name = "Philips FQ1216LME MK3 PAL/SECAM w/active loopthrough",
1889                 .params = tuner_fq1216lme_mk3_params,
1890                 .count  = ARRAY_SIZE(tuner_fq1216lme_mk3_params),
1891         },
1892
1893         [TUNER_PARTSNIC_PTI_5NF05] = {
1894                 .name = "Partsnic (Daewoo) PTI-5NF05",
1895                 .params = tuner_partsnic_pti_5nf05_params,
1896                 .count  = ARRAY_SIZE(tuner_partsnic_pti_5nf05_params),
1897         },
1898         [TUNER_PHILIPS_CU1216L] = {
1899                 .name = "Philips CU1216L",
1900                 .params = tuner_philips_cu1216l_params,
1901                 .count  = ARRAY_SIZE(tuner_philips_cu1216l_params),
1902                 .stepsize = 62500,
1903         },
1904         [TUNER_NXP_TDA18271] = {
1905                 .name   = "NXP TDA18271",
1906                 /* see tda18271-fe.c for details */
1907         },
1908         [TUNER_SONY_BTF_PXN01Z] = {
1909                 .name   = "Sony BTF-Pxn01Z",
1910                 .params = tuner_sony_btf_pxn01z_params,
1911                 .count  = ARRAY_SIZE(tuner_sony_btf_pxn01z_params),
1912         },
1913         [TUNER_PHILIPS_FQ1236_MK5] = { /* NTSC, TDA9885, no FM radio */
1914                 .name   = "Philips FQ1236 MK5",
1915                 .params = tuner_philips_fq1236_mk5_params,
1916                 .count  = ARRAY_SIZE(tuner_philips_fq1236_mk5_params),
1917         },
1918         [TUNER_TENA_TNF_5337] = { /* Tena 5337 MFD */
1919                 .name   = "Tena TNF5337 MFD",
1920                 .params = tuner_tena_tnf_5337_params,
1921                 .count  = ARRAY_SIZE(tuner_tena_tnf_5337_params),
1922         },
1923         [TUNER_XC5000C] = { /* Xceive 5000C */
1924                 .name   = "Xceive 5000C tuner",
1925                 /* see xc5000.c for details */
1926         },
1927         [TUNER_SONY_BTF_PG472Z] = {
1928                 .name   = "Sony BTF-PG472Z PAL/SECAM",
1929                 .params = tuner_sony_btf_pg472z_params,
1930                 .count  = ARRAY_SIZE(tuner_sony_btf_pg472z_params),
1931         },
1932
1933         /* 90-99 */
1934         [TUNER_SONY_BTF_PK467Z] = {
1935                 .name   = "Sony BTF-PK467Z NTSC-M-JP",
1936                 .params = tuner_sony_btf_pg467z_params,
1937                 .count  = ARRAY_SIZE(tuner_sony_btf_pg467z_params),
1938         },
1939         [TUNER_SONY_BTF_PB463Z] = {
1940                 .name   = "Sony BTF-PB463Z NTSC-M",
1941                 .params = tuner_sony_btf_pg463z_params,
1942                 .count  = ARRAY_SIZE(tuner_sony_btf_pg463z_params),
1943         },
1944 };
1945 EXPORT_SYMBOL(tuners);
1946
1947 unsigned const int tuner_count = ARRAY_SIZE(tuners);
1948 EXPORT_SYMBOL(tuner_count);
1949
1950 MODULE_DESCRIPTION("Simple tuner device type database");
1951 MODULE_AUTHOR("Ralph Metzler, Gerd Knorr, Gunther Mayer");
1952 MODULE_LICENSE("GPL");