]> bbs.cooldavid.org Git - net-next-2.6.git/blame - drivers/media/video/tuner-types.c
V4L/DVB (3453a): Alters MAINTAINERS file to point to newer v4l-dvb email
[net-next-2.6.git] / drivers / media / video / tuner-types.c
CommitLineData
7b0ac9cd
MK
1/*
2 *
3 * i2c tv tuner chip device type database.
4 *
5 */
6
7#include <linux/i2c.h>
8#include <media/tuner.h>
9#include <media/tuner-types.h>
10
11/* ---------------------------------------------------------------------- */
12
13/*
14 * The floats in the tuner struct are computed at compile time
15 * by gcc and cast back to integers. Thus we don't violate the
16 * "no float in kernel" rule.
17 *
18 * A tuner_range may be referenced by multiple tuner_params structs.
19 * There are many duplicates in here. Reusing tuner_range structs,
20 * rather than defining new ones for each tuner, will cut down on
21 * memory usage, and is preferred when possible.
22 *
23 * Each tuner_params array may contain one or more elements, one
24 * for each video standard.
25 *
26 * FIXME: Some tuner_range definitions are duplicated, and
27 * should be eliminated.
28 *
29 * FIXME: tunertype struct contains an element, has_tda988x.
30 * We must set this for all tunertypes that contain a tda988x
31 * chip, and then we can remove this setting from the various
32 * card structs.
33 */
34
35/* 0-9 */
36/* ------------ TUNER_TEMIC_PAL - TEMIC PAL ------------ */
37
38static struct tuner_range tuner_temic_pal_ranges[] = {
3fc46d35
MK
39 { 16 * 140.25 /*MHz*/, 0x8e, 0x02, },
40 { 16 * 463.25 /*MHz*/, 0x8e, 0x04, },
41 { 16 * 999.99 , 0x8e, 0x01, },
7b0ac9cd
MK
42};
43
44static struct tuner_params tuner_temic_pal_params[] = {
45 {
46 .type = TUNER_PARAM_TYPE_PAL,
47 .ranges = tuner_temic_pal_ranges,
48 .count = ARRAY_SIZE(tuner_temic_pal_ranges),
7b0ac9cd
MK
49 },
50};
51
52/* ------------ TUNER_PHILIPS_PAL_I - Philips PAL_I ------------ */
53
54static struct tuner_range tuner_philips_pal_i_ranges[] = {
3fc46d35
MK
55 { 16 * 140.25 /*MHz*/, 0x8e, 0xa0, },
56 { 16 * 463.25 /*MHz*/, 0x8e, 0x90, },
57 { 16 * 999.99 , 0x8e, 0x30, },
7b0ac9cd
MK
58};
59
60static struct tuner_params tuner_philips_pal_i_params[] = {
61 {
62 .type = TUNER_PARAM_TYPE_PAL,
63 .ranges = tuner_philips_pal_i_ranges,
64 .count = ARRAY_SIZE(tuner_philips_pal_i_ranges),
7b0ac9cd
MK
65 },
66};
67
68/* ------------ TUNER_PHILIPS_NTSC - Philips NTSC ------------ */
69
70static struct tuner_range tuner_philips_ntsc_ranges[] = {
3fc46d35
MK
71 { 16 * 157.25 /*MHz*/, 0x8e, 0xa0, },
72 { 16 * 451.25 /*MHz*/, 0x8e, 0x90, },
73 { 16 * 999.99 , 0x8e, 0x30, },
7b0ac9cd
MK
74};
75
76static struct tuner_params tuner_philips_ntsc_params[] = {
77 {
78 .type = TUNER_PARAM_TYPE_NTSC,
79 .ranges = tuner_philips_ntsc_ranges,
80 .count = ARRAY_SIZE(tuner_philips_ntsc_ranges),
27487d44 81 .cb_first_if_lower_freq = 1,
7b0ac9cd
MK
82 },
83};
84
85/* ------------ TUNER_PHILIPS_SECAM - Philips SECAM ------------ */
86
87static struct tuner_range tuner_philips_secam_ranges[] = {
3fc46d35
MK
88 { 16 * 168.25 /*MHz*/, 0x8e, 0xa7, },
89 { 16 * 447.25 /*MHz*/, 0x8e, 0x97, },
90 { 16 * 999.99 , 0x8e, 0x37, },
7b0ac9cd
MK
91};
92
93static struct tuner_params tuner_philips_secam_params[] = {
94 {
95 .type = TUNER_PARAM_TYPE_SECAM,
96 .ranges = tuner_philips_secam_ranges,
97 .count = ARRAY_SIZE(tuner_philips_secam_ranges),
27487d44 98 .cb_first_if_lower_freq = 1,
7b0ac9cd
MK
99 },
100};
101
102/* ------------ TUNER_PHILIPS_PAL - Philips PAL ------------ */
103
104static struct tuner_range tuner_philips_pal_ranges[] = {
3fc46d35
MK
105 { 16 * 168.25 /*MHz*/, 0x8e, 0xa0, },
106 { 16 * 447.25 /*MHz*/, 0x8e, 0x90, },
107 { 16 * 999.99 , 0x8e, 0x30, },
7b0ac9cd
MK
108};
109
110static struct tuner_params tuner_philips_pal_params[] = {
111 {
112 .type = TUNER_PARAM_TYPE_PAL,
113 .ranges = tuner_philips_pal_ranges,
114 .count = ARRAY_SIZE(tuner_philips_pal_ranges),
27487d44 115 .cb_first_if_lower_freq = 1,
7b0ac9cd
MK
116 },
117};
118
119/* ------------ TUNER_TEMIC_NTSC - TEMIC NTSC ------------ */
120
121static struct tuner_range tuner_temic_ntsc_ranges[] = {
3fc46d35
MK
122 { 16 * 157.25 /*MHz*/, 0x8e, 0x02, },
123 { 16 * 463.25 /*MHz*/, 0x8e, 0x04, },
124 { 16 * 999.99 , 0x8e, 0x01, },
7b0ac9cd
MK
125};
126
127static struct tuner_params tuner_temic_ntsc_params[] = {
128 {
129 .type = TUNER_PARAM_TYPE_NTSC,
130 .ranges = tuner_temic_ntsc_ranges,
131 .count = ARRAY_SIZE(tuner_temic_ntsc_ranges),
7b0ac9cd
MK
132 },
133};
134
135/* ------------ TUNER_TEMIC_PAL_I - TEMIC PAL_I ------------ */
136
137static struct tuner_range tuner_temic_pal_i_ranges[] = {
3fc46d35
MK
138 { 16 * 170.00 /*MHz*/, 0x8e, 0x02, },
139 { 16 * 450.00 /*MHz*/, 0x8e, 0x04, },
140 { 16 * 999.99 , 0x8e, 0x01, },
7b0ac9cd
MK
141};
142
143static struct tuner_params tuner_temic_pal_i_params[] = {
144 {
145 .type = TUNER_PARAM_TYPE_PAL,
146 .ranges = tuner_temic_pal_i_ranges,
147 .count = ARRAY_SIZE(tuner_temic_pal_i_ranges),
7b0ac9cd
MK
148 },
149};
150
151/* ------------ TUNER_TEMIC_4036FY5_NTSC - TEMIC NTSC ------------ */
152
153static struct tuner_range tuner_temic_4036fy5_ntsc_ranges[] = {
3fc46d35
MK
154 { 16 * 157.25 /*MHz*/, 0x8e, 0xa0, },
155 { 16 * 463.25 /*MHz*/, 0x8e, 0x90, },
156 { 16 * 999.99 , 0x8e, 0x30, },
7b0ac9cd
MK
157};
158
159static struct tuner_params tuner_temic_4036fy5_ntsc_params[] = {
160 {
161 .type = TUNER_PARAM_TYPE_NTSC,
162 .ranges = tuner_temic_4036fy5_ntsc_ranges,
163 .count = ARRAY_SIZE(tuner_temic_4036fy5_ntsc_ranges),
7b0ac9cd
MK
164 },
165};
166
167/* ------------ TUNER_ALPS_TSBH1_NTSC - TEMIC NTSC ------------ */
168
169static struct tuner_range tuner_alps_tsb_1_ranges[] = {
3fc46d35
MK
170 { 16 * 137.25 /*MHz*/, 0x8e, 0x01, },
171 { 16 * 385.25 /*MHz*/, 0x8e, 0x02, },
172 { 16 * 999.99 , 0x8e, 0x08, },
7b0ac9cd
MK
173};
174
175static struct tuner_params tuner_alps_tsbh1_ntsc_params[] = {
176 {
177 .type = TUNER_PARAM_TYPE_NTSC,
178 .ranges = tuner_alps_tsb_1_ranges,
179 .count = ARRAY_SIZE(tuner_alps_tsb_1_ranges),
7b0ac9cd
MK
180 },
181};
182
183/* 10-19 */
184/* ------------ TUNER_ALPS_TSBE1_PAL - TEMIC PAL ------------ */
185
186static struct tuner_params tuner_alps_tsb_1_params[] = {
187 {
188 .type = TUNER_PARAM_TYPE_PAL,
189 .ranges = tuner_alps_tsb_1_ranges,
190 .count = ARRAY_SIZE(tuner_alps_tsb_1_ranges),
7b0ac9cd
MK
191 },
192};
193
194/* ------------ TUNER_ALPS_TSBB5_PAL_I - Alps PAL_I ------------ */
195
196static struct tuner_range tuner_alps_tsb_5_pal_ranges[] = {
3fc46d35
MK
197 { 16 * 133.25 /*MHz*/, 0x8e, 0x01, },
198 { 16 * 351.25 /*MHz*/, 0x8e, 0x02, },
199 { 16 * 999.99 , 0x8e, 0x08, },
7b0ac9cd
MK
200};
201
202static struct tuner_params tuner_alps_tsbb5_params[] = {
203 {
204 .type = TUNER_PARAM_TYPE_PAL,
205 .ranges = tuner_alps_tsb_5_pal_ranges,
206 .count = ARRAY_SIZE(tuner_alps_tsb_5_pal_ranges),
7b0ac9cd
MK
207 },
208};
209
210/* ------------ TUNER_ALPS_TSBE5_PAL - Alps PAL ------------ */
211
212static struct tuner_params tuner_alps_tsbe5_params[] = {
213 {
214 .type = TUNER_PARAM_TYPE_PAL,
215 .ranges = tuner_alps_tsb_5_pal_ranges,
216 .count = ARRAY_SIZE(tuner_alps_tsb_5_pal_ranges),
7b0ac9cd
MK
217 },
218};
219
220/* ------------ TUNER_ALPS_TSBC5_PAL - Alps PAL ------------ */
221
222static struct tuner_params tuner_alps_tsbc5_params[] = {
223 {
224 .type = TUNER_PARAM_TYPE_PAL,
225 .ranges = tuner_alps_tsb_5_pal_ranges,
226 .count = ARRAY_SIZE(tuner_alps_tsb_5_pal_ranges),
7b0ac9cd
MK
227 },
228};
229
230/* ------------ TUNER_TEMIC_4006FH5_PAL - TEMIC PAL ------------ */
231
cc925bbe 232static struct tuner_range tuner_lg_pal_ranges[] = {
3fc46d35
MK
233 { 16 * 170.00 /*MHz*/, 0x8e, 0xa0, },
234 { 16 * 450.00 /*MHz*/, 0x8e, 0x90, },
235 { 16 * 999.99 , 0x8e, 0x30, },
7b0ac9cd
MK
236};
237
238static struct tuner_params tuner_temic_4006fh5_params[] = {
239 {
240 .type = TUNER_PARAM_TYPE_PAL,
cc925bbe
MK
241 .ranges = tuner_lg_pal_ranges,
242 .count = ARRAY_SIZE(tuner_lg_pal_ranges),
7b0ac9cd
MK
243 },
244};
245
246/* ------------ TUNER_ALPS_TSHC6_NTSC - Alps NTSC ------------ */
247
248static struct tuner_range tuner_alps_tshc6_ntsc_ranges[] = {
3fc46d35
MK
249 { 16 * 137.25 /*MHz*/, 0x8e, 0x14, },
250 { 16 * 385.25 /*MHz*/, 0x8e, 0x12, },
251 { 16 * 999.99 , 0x8e, 0x11, },
7b0ac9cd
MK
252};
253
254static struct tuner_params tuner_alps_tshc6_params[] = {
255 {
256 .type = TUNER_PARAM_TYPE_NTSC,
257 .ranges = tuner_alps_tshc6_ntsc_ranges,
258 .count = ARRAY_SIZE(tuner_alps_tshc6_ntsc_ranges),
7b0ac9cd
MK
259 },
260};
261
262/* ------------ TUNER_TEMIC_PAL_DK - TEMIC PAL ------------ */
263
264static struct tuner_range tuner_temic_pal_dk_ranges[] = {
3fc46d35
MK
265 { 16 * 168.25 /*MHz*/, 0x8e, 0xa0, },
266 { 16 * 456.25 /*MHz*/, 0x8e, 0x90, },
267 { 16 * 999.99 , 0x8e, 0x30, },
7b0ac9cd
MK
268};
269
270static struct tuner_params tuner_temic_pal_dk_params[] = {
271 {
272 .type = TUNER_PARAM_TYPE_PAL,
273 .ranges = tuner_temic_pal_dk_ranges,
274 .count = ARRAY_SIZE(tuner_temic_pal_dk_ranges),
7b0ac9cd
MK
275 },
276};
277
278/* ------------ TUNER_PHILIPS_NTSC_M - Philips NTSC ------------ */
279
280static struct tuner_range tuner_philips_ntsc_m_ranges[] = {
3fc46d35
MK
281 { 16 * 160.00 /*MHz*/, 0x8e, 0xa0, },
282 { 16 * 454.00 /*MHz*/, 0x8e, 0x90, },
283 { 16 * 999.99 , 0x8e, 0x30, },
7b0ac9cd
MK
284};
285
286static struct tuner_params tuner_philips_ntsc_m_params[] = {
287 {
288 .type = TUNER_PARAM_TYPE_NTSC,
289 .ranges = tuner_philips_ntsc_m_ranges,
290 .count = ARRAY_SIZE(tuner_philips_ntsc_m_ranges),
7b0ac9cd
MK
291 },
292};
293
294/* ------------ TUNER_TEMIC_4066FY5_PAL_I - TEMIC PAL_I ------------ */
295
296static struct tuner_range tuner_temic_40x6f_5_pal_ranges[] = {
3fc46d35
MK
297 { 16 * 169.00 /*MHz*/, 0x8e, 0xa0, },
298 { 16 * 454.00 /*MHz*/, 0x8e, 0x90, },
299 { 16 * 999.99 , 0x8e, 0x30, },
7b0ac9cd
MK
300};
301
302static struct tuner_params tuner_temic_4066fy5_pal_i_params[] = {
303 {
304 .type = TUNER_PARAM_TYPE_PAL,
305 .ranges = tuner_temic_40x6f_5_pal_ranges,
306 .count = ARRAY_SIZE(tuner_temic_40x6f_5_pal_ranges),
7b0ac9cd
MK
307 },
308};
309
310/* ------------ TUNER_TEMIC_4006FN5_MULTI_PAL - TEMIC PAL ------------ */
311
312static struct tuner_params tuner_temic_4006fn5_multi_params[] = {
313 {
314 .type = TUNER_PARAM_TYPE_PAL,
315 .ranges = tuner_temic_40x6f_5_pal_ranges,
316 .count = ARRAY_SIZE(tuner_temic_40x6f_5_pal_ranges),
7b0ac9cd
MK
317 },
318};
319
320/* 20-29 */
321/* ------------ TUNER_TEMIC_4009FR5_PAL - TEMIC PAL ------------ */
322
323static struct tuner_range tuner_temic_4009f_5_pal_ranges[] = {
3fc46d35
MK
324 { 16 * 141.00 /*MHz*/, 0x8e, 0xa0, },
325 { 16 * 464.00 /*MHz*/, 0x8e, 0x90, },
326 { 16 * 999.99 , 0x8e, 0x30, },
7b0ac9cd
MK
327};
328
329static struct tuner_params tuner_temic_4009f_5_params[] = {
330 {
331 .type = TUNER_PARAM_TYPE_PAL,
332 .ranges = tuner_temic_4009f_5_pal_ranges,
333 .count = ARRAY_SIZE(tuner_temic_4009f_5_pal_ranges),
7b0ac9cd
MK
334 },
335};
336
337/* ------------ TUNER_TEMIC_4039FR5_NTSC - TEMIC NTSC ------------ */
338
cc925bbe 339static struct tuner_range tuner_temic_4x3x_f_5_ntsc_ranges[] = {
3fc46d35
MK
340 { 16 * 158.00 /*MHz*/, 0x8e, 0xa0, },
341 { 16 * 453.00 /*MHz*/, 0x8e, 0x90, },
342 { 16 * 999.99 , 0x8e, 0x30, },
7b0ac9cd
MK
343};
344
345static struct tuner_params tuner_temic_4039fr5_params[] = {
346 {
347 .type = TUNER_PARAM_TYPE_NTSC,
cc925bbe
MK
348 .ranges = tuner_temic_4x3x_f_5_ntsc_ranges,
349 .count = ARRAY_SIZE(tuner_temic_4x3x_f_5_ntsc_ranges),
7b0ac9cd
MK
350 },
351};
352
353/* ------------ TUNER_TEMIC_4046FM5 - TEMIC PAL ------------ */
354
7b0ac9cd
MK
355static struct tuner_params tuner_temic_4046fm5_params[] = {
356 {
357 .type = TUNER_PARAM_TYPE_PAL,
cc925bbe
MK
358 .ranges = tuner_temic_40x6f_5_pal_ranges,
359 .count = ARRAY_SIZE(tuner_temic_40x6f_5_pal_ranges),
7b0ac9cd
MK
360 },
361};
362
363/* ------------ TUNER_PHILIPS_PAL_DK - Philips PAL ------------ */
364
7b0ac9cd
MK
365static struct tuner_params tuner_philips_pal_dk_params[] = {
366 {
367 .type = TUNER_PARAM_TYPE_PAL,
368 .ranges = tuner_lg_pal_ranges,
369 .count = ARRAY_SIZE(tuner_lg_pal_ranges),
7b0ac9cd
MK
370 },
371};
372
373/* ------------ TUNER_PHILIPS_FQ1216ME - Philips PAL ------------ */
374
375static struct tuner_params tuner_philips_fq1216me_params[] = {
376 {
377 .type = TUNER_PARAM_TYPE_PAL,
378 .ranges = tuner_lg_pal_ranges,
379 .count = ARRAY_SIZE(tuner_lg_pal_ranges),
7b0ac9cd
MK
380 },
381};
382
383/* ------------ TUNER_LG_PAL_I_FM - LGINNOTEK PAL_I ------------ */
384
385static struct tuner_params tuner_lg_pal_i_fm_params[] = {
386 {
387 .type = TUNER_PARAM_TYPE_PAL,
388 .ranges = tuner_lg_pal_ranges,
389 .count = ARRAY_SIZE(tuner_lg_pal_ranges),
7b0ac9cd
MK
390 },
391};
392
393/* ------------ TUNER_LG_PAL_I - LGINNOTEK PAL_I ------------ */
394
395static struct tuner_params tuner_lg_pal_i_params[] = {
396 {
397 .type = TUNER_PARAM_TYPE_PAL,
398 .ranges = tuner_lg_pal_ranges,
399 .count = ARRAY_SIZE(tuner_lg_pal_ranges),
7b0ac9cd
MK
400 },
401};
402
403/* ------------ TUNER_LG_NTSC_FM - LGINNOTEK NTSC ------------ */
404
405static struct tuner_range tuner_lg_ntsc_fm_ranges[] = {
3fc46d35
MK
406 { 16 * 210.00 /*MHz*/, 0x8e, 0xa0, },
407 { 16 * 497.00 /*MHz*/, 0x8e, 0x90, },
408 { 16 * 999.99 , 0x8e, 0x30, },
7b0ac9cd
MK
409};
410
411static struct tuner_params tuner_lg_ntsc_fm_params[] = {
412 {
413 .type = TUNER_PARAM_TYPE_NTSC,
414 .ranges = tuner_lg_ntsc_fm_ranges,
415 .count = ARRAY_SIZE(tuner_lg_ntsc_fm_ranges),
7b0ac9cd
MK
416 },
417};
418
419/* ------------ TUNER_LG_PAL_FM - LGINNOTEK PAL ------------ */
420
421static struct tuner_params tuner_lg_pal_fm_params[] = {
422 {
423 .type = TUNER_PARAM_TYPE_PAL,
424 .ranges = tuner_lg_pal_ranges,
425 .count = ARRAY_SIZE(tuner_lg_pal_ranges),
7b0ac9cd
MK
426 },
427};
428
429/* ------------ TUNER_LG_PAL - LGINNOTEK PAL ------------ */
430
431static struct tuner_params tuner_lg_pal_params[] = {
432 {
433 .type = TUNER_PARAM_TYPE_PAL,
434 .ranges = tuner_lg_pal_ranges,
435 .count = ARRAY_SIZE(tuner_lg_pal_ranges),
7b0ac9cd
MK
436 },
437};
438
439/* 30-39 */
440/* ------------ TUNER_TEMIC_4009FN5_MULTI_PAL_FM - TEMIC PAL ------------ */
441
442static struct tuner_params tuner_temic_4009_fn5_multi_pal_fm_params[] = {
443 {
444 .type = TUNER_PARAM_TYPE_PAL,
445 .ranges = tuner_temic_4009f_5_pal_ranges,
446 .count = ARRAY_SIZE(tuner_temic_4009f_5_pal_ranges),
7b0ac9cd
MK
447 },
448};
449
450/* ------------ TUNER_SHARP_2U5JF5540_NTSC - SHARP NTSC ------------ */
451
452static struct tuner_range tuner_sharp_2u5jf5540_ntsc_ranges[] = {
3fc46d35
MK
453 { 16 * 137.25 /*MHz*/, 0x8e, 0x01, },
454 { 16 * 317.25 /*MHz*/, 0x8e, 0x02, },
455 { 16 * 999.99 , 0x8e, 0x08, },
7b0ac9cd
MK
456};
457
458static struct tuner_params tuner_sharp_2u5jf5540_params[] = {
459 {
460 .type = TUNER_PARAM_TYPE_NTSC,
461 .ranges = tuner_sharp_2u5jf5540_ntsc_ranges,
462 .count = ARRAY_SIZE(tuner_sharp_2u5jf5540_ntsc_ranges),
7b0ac9cd
MK
463 },
464};
465
466/* ------------ TUNER_Samsung_PAL_TCPM9091PD27 - Samsung PAL ------------ */
467
468static struct tuner_range tuner_samsung_pal_tcpm9091pd27_ranges[] = {
3fc46d35
MK
469 { 16 * 169 /*MHz*/, 0x8e, 0xa0, },
470 { 16 * 464 /*MHz*/, 0x8e, 0x90, },
471 { 16 * 999.99 , 0x8e, 0x30, },
7b0ac9cd
MK
472};
473
474static struct tuner_params tuner_samsung_pal_tcpm9091pd27_params[] = {
475 {
476 .type = TUNER_PARAM_TYPE_PAL,
477 .ranges = tuner_samsung_pal_tcpm9091pd27_ranges,
478 .count = ARRAY_SIZE(tuner_samsung_pal_tcpm9091pd27_ranges),
7b0ac9cd
MK
479 },
480};
481
482/* ------------ TUNER_TEMIC_4106FH5 - TEMIC PAL ------------ */
483
484static struct tuner_params tuner_temic_4106fh5_params[] = {
485 {
486 .type = TUNER_PARAM_TYPE_PAL,
487 .ranges = tuner_temic_4009f_5_pal_ranges,
488 .count = ARRAY_SIZE(tuner_temic_4009f_5_pal_ranges),
7b0ac9cd
MK
489 },
490};
491
492/* ------------ TUNER_TEMIC_4012FY5 - TEMIC PAL ------------ */
493
7b0ac9cd
MK
494static struct tuner_params tuner_temic_4012fy5_params[] = {
495 {
496 .type = TUNER_PARAM_TYPE_PAL,
cc925bbe
MK
497 .ranges = tuner_temic_pal_ranges,
498 .count = ARRAY_SIZE(tuner_temic_pal_ranges),
7b0ac9cd
MK
499 },
500};
501
502/* ------------ TUNER_TEMIC_4136FY5 - TEMIC NTSC ------------ */
503
7b0ac9cd
MK
504static struct tuner_params tuner_temic_4136_fy5_params[] = {
505 {
506 .type = TUNER_PARAM_TYPE_NTSC,
cc925bbe
MK
507 .ranges = tuner_temic_4x3x_f_5_ntsc_ranges,
508 .count = ARRAY_SIZE(tuner_temic_4x3x_f_5_ntsc_ranges),
7b0ac9cd
MK
509 },
510};
511
512/* ------------ TUNER_LG_PAL_NEW_TAPC - LGINNOTEK PAL ------------ */
513
514static struct tuner_range tuner_lg_new_tapc_ranges[] = {
3fc46d35
MK
515 { 16 * 170.00 /*MHz*/, 0x8e, 0x01, },
516 { 16 * 450.00 /*MHz*/, 0x8e, 0x02, },
517 { 16 * 999.99 , 0x8e, 0x08, },
7b0ac9cd
MK
518};
519
520static struct tuner_params tuner_lg_pal_new_tapc_params[] = {
521 {
522 .type = TUNER_PARAM_TYPE_PAL,
523 .ranges = tuner_lg_new_tapc_ranges,
524 .count = ARRAY_SIZE(tuner_lg_new_tapc_ranges),
7b0ac9cd
MK
525 },
526};
527
528/* ------------ TUNER_PHILIPS_FM1216ME_MK3 - Philips PAL ------------ */
529
530static struct tuner_range tuner_fm1216me_mk3_pal_ranges[] = {
3fc46d35
MK
531 { 16 * 158.00 /*MHz*/, 0x8e, 0x01, },
532 { 16 * 442.00 /*MHz*/, 0x8e, 0x02, },
533 { 16 * 999.99 , 0x8e, 0x04, },
7b0ac9cd
MK
534};
535
536static struct tuner_params tuner_fm1216me_mk3_params[] = {
537 {
538 .type = TUNER_PARAM_TYPE_PAL,
539 .ranges = tuner_fm1216me_mk3_pal_ranges,
540 .count = ARRAY_SIZE(tuner_fm1216me_mk3_pal_ranges),
27487d44 541 .cb_first_if_lower_freq = 1,
7b0ac9cd
MK
542 },
543};
544
545/* ------------ TUNER_LG_NTSC_NEW_TAPC - LGINNOTEK NTSC ------------ */
546
547static struct tuner_params tuner_lg_ntsc_new_tapc_params[] = {
548 {
549 .type = TUNER_PARAM_TYPE_NTSC,
550 .ranges = tuner_lg_new_tapc_ranges,
551 .count = ARRAY_SIZE(tuner_lg_new_tapc_ranges),
7b0ac9cd
MK
552 },
553};
554
555/* 40-49 */
556/* ------------ TUNER_HITACHI_NTSC - HITACHI NTSC ------------ */
557
558static struct tuner_params tuner_hitachi_ntsc_params[] = {
559 {
560 .type = TUNER_PARAM_TYPE_NTSC,
561 .ranges = tuner_lg_new_tapc_ranges,
562 .count = ARRAY_SIZE(tuner_lg_new_tapc_ranges),
7b0ac9cd
MK
563 },
564};
565
566/* ------------ TUNER_PHILIPS_PAL_MK - Philips PAL ------------ */
567
568static struct tuner_range tuner_philips_pal_mk_pal_ranges[] = {
3fc46d35
MK
569 { 16 * 140.25 /*MHz*/, 0x8e, 0x01, },
570 { 16 * 463.25 /*MHz*/, 0x8e, 0xc2, },
571 { 16 * 999.99 , 0x8e, 0xcf, },
7b0ac9cd
MK
572};
573
574static struct tuner_params tuner_philips_pal_mk_params[] = {
575 {
576 .type = TUNER_PARAM_TYPE_PAL,
577 .ranges = tuner_philips_pal_mk_pal_ranges,
578 .count = ARRAY_SIZE(tuner_philips_pal_mk_pal_ranges),
7b0ac9cd
MK
579 },
580};
581
582/* ------------ TUNER_PHILIPS_ATSC - Philips ATSC ------------ */
583
584static struct tuner_range tuner_philips_atsc_ranges[] = {
3fc46d35
MK
585 { 16 * 157.25 /*MHz*/, 0x8e, 0xa0, },
586 { 16 * 454.00 /*MHz*/, 0x8e, 0x90, },
587 { 16 * 999.99 , 0x8e, 0x30, },
7b0ac9cd
MK
588};
589
590static struct tuner_params tuner_philips_atsc_params[] = {
591 {
592 .type = TUNER_PARAM_TYPE_NTSC,
593 .ranges = tuner_philips_atsc_ranges,
594 .count = ARRAY_SIZE(tuner_philips_atsc_ranges),
7b0ac9cd
MK
595 },
596};
597
598/* ------------ TUNER_PHILIPS_FM1236_MK3 - Philips NTSC ------------ */
599
600static struct tuner_range tuner_fm1236_mk3_ntsc_ranges[] = {
3fc46d35
MK
601 { 16 * 160.00 /*MHz*/, 0x8e, 0x01, },
602 { 16 * 442.00 /*MHz*/, 0x8e, 0x02, },
603 { 16 * 999.99 , 0x8e, 0x04, },
7b0ac9cd
MK
604};
605
606static struct tuner_params tuner_fm1236_mk3_params[] = {
607 {
608 .type = TUNER_PARAM_TYPE_NTSC,
609 .ranges = tuner_fm1236_mk3_ntsc_ranges,
610 .count = ARRAY_SIZE(tuner_fm1236_mk3_ntsc_ranges),
27487d44 611 .cb_first_if_lower_freq = 1,
7b0ac9cd
MK
612 },
613};
614
615/* ------------ TUNER_PHILIPS_4IN1 - Philips NTSC ------------ */
616
7b0ac9cd
MK
617static struct tuner_params tuner_philips_4in1_params[] = {
618 {
619 .type = TUNER_PARAM_TYPE_NTSC,
cc925bbe
MK
620 .ranges = tuner_fm1236_mk3_ntsc_ranges,
621 .count = ARRAY_SIZE(tuner_fm1236_mk3_ntsc_ranges),
7b0ac9cd
MK
622 },
623};
624
625/* ------------ TUNER_MICROTUNE_4049FM5 - Microtune PAL ------------ */
626
627static struct tuner_params tuner_microtune_4049_fm5_params[] = {
628 {
629 .type = TUNER_PARAM_TYPE_PAL,
630 .ranges = tuner_temic_4009f_5_pal_ranges,
631 .count = ARRAY_SIZE(tuner_temic_4009f_5_pal_ranges),
7b0ac9cd
MK
632 },
633};
634
635/* ------------ TUNER_PANASONIC_VP27 - Panasonic NTSC ------------ */
636
637static struct tuner_range tuner_panasonic_vp27_ntsc_ranges[] = {
3fc46d35
MK
638 { 16 * 160.00 /*MHz*/, 0xce, 0x01, },
639 { 16 * 454.00 /*MHz*/, 0xce, 0x02, },
640 { 16 * 999.99 , 0xce, 0x08, },
7b0ac9cd
MK
641};
642
643static struct tuner_params tuner_panasonic_vp27_params[] = {
644 {
645 .type = TUNER_PARAM_TYPE_NTSC,
646 .ranges = tuner_panasonic_vp27_ntsc_ranges,
647 .count = ARRAY_SIZE(tuner_panasonic_vp27_ntsc_ranges),
7b0ac9cd
MK
648 },
649};
650
651/* ------------ TUNER_LG_NTSC_TAPE - LGINNOTEK NTSC ------------ */
652
7b0ac9cd
MK
653static struct tuner_params tuner_lg_ntsc_tape_params[] = {
654 {
655 .type = TUNER_PARAM_TYPE_NTSC,
cc925bbe
MK
656 .ranges = tuner_fm1236_mk3_ntsc_ranges,
657 .count = ARRAY_SIZE(tuner_fm1236_mk3_ntsc_ranges),
7b0ac9cd
MK
658 },
659};
660
661/* ------------ TUNER_TNF_8831BGFF - Philips PAL ------------ */
662
663static struct tuner_range tuner_tnf_8831bgff_pal_ranges[] = {
3fc46d35
MK
664 { 16 * 161.25 /*MHz*/, 0x8e, 0xa0, },
665 { 16 * 463.25 /*MHz*/, 0x8e, 0x90, },
666 { 16 * 999.99 , 0x8e, 0x30, },
7b0ac9cd
MK
667};
668
669static struct tuner_params tuner_tnf_8831bgff_params[] = {
670 {
671 .type = TUNER_PARAM_TYPE_PAL,
672 .ranges = tuner_tnf_8831bgff_pal_ranges,
673 .count = ARRAY_SIZE(tuner_tnf_8831bgff_pal_ranges),
7b0ac9cd
MK
674 },
675};
676
677/* ------------ TUNER_MICROTUNE_4042FI5 - Microtune NTSC ------------ */
678
679static struct tuner_range tuner_microtune_4042fi5_ntsc_ranges[] = {
3fc46d35
MK
680 { 16 * 162.00 /*MHz*/, 0x8e, 0xa2, },
681 { 16 * 457.00 /*MHz*/, 0x8e, 0x94, },
682 { 16 * 999.99 , 0x8e, 0x31, },
7b0ac9cd
MK
683};
684
685static struct tuner_params tuner_microtune_4042fi5_params[] = {
686 {
687 .type = TUNER_PARAM_TYPE_NTSC,
688 .ranges = tuner_microtune_4042fi5_ntsc_ranges,
689 .count = ARRAY_SIZE(tuner_microtune_4042fi5_ntsc_ranges),
7b0ac9cd
MK
690 },
691};
692
693/* 50-59 */
694/* ------------ TUNER_TCL_2002N - TCL NTSC ------------ */
695
696static struct tuner_range tuner_tcl_2002n_ntsc_ranges[] = {
3fc46d35
MK
697 { 16 * 172.00 /*MHz*/, 0x8e, 0x01, },
698 { 16 * 448.00 /*MHz*/, 0x8e, 0x02, },
699 { 16 * 999.99 , 0x8e, 0x08, },
7b0ac9cd
MK
700};
701
702static struct tuner_params tuner_tcl_2002n_params[] = {
703 {
704 .type = TUNER_PARAM_TYPE_NTSC,
705 .ranges = tuner_tcl_2002n_ntsc_ranges,
706 .count = ARRAY_SIZE(tuner_tcl_2002n_ntsc_ranges),
27487d44 707 .cb_first_if_lower_freq = 1,
7b0ac9cd
MK
708 },
709};
710
711/* ------------ TUNER_PHILIPS_FM1256_IH3 - Philips PAL ------------ */
712
7b0ac9cd
MK
713static struct tuner_params tuner_philips_fm1256_ih3_params[] = {
714 {
715 .type = TUNER_PARAM_TYPE_PAL,
cc925bbe
MK
716 .ranges = tuner_fm1236_mk3_ntsc_ranges,
717 .count = ARRAY_SIZE(tuner_fm1236_mk3_ntsc_ranges),
7b0ac9cd
MK
718 },
719};
720
721/* ------------ TUNER_THOMSON_DTT7610 - THOMSON ATSC ------------ */
722
723static struct tuner_range tuner_thomson_dtt7610_ntsc_ranges[] = {
3fc46d35
MK
724 { 16 * 157.25 /*MHz*/, 0x8e, 0x39, },
725 { 16 * 454.00 /*MHz*/, 0x8e, 0x3a, },
726 { 16 * 999.99 , 0x8e, 0x3c, },
7b0ac9cd
MK
727};
728
729static struct tuner_params tuner_thomson_dtt7610_params[] = {
730 {
731 .type = TUNER_PARAM_TYPE_NTSC,
732 .ranges = tuner_thomson_dtt7610_ntsc_ranges,
733 .count = ARRAY_SIZE(tuner_thomson_dtt7610_ntsc_ranges),
7b0ac9cd
MK
734 },
735};
736
737/* ------------ TUNER_PHILIPS_FQ1286 - Philips NTSC ------------ */
738
739static struct tuner_range tuner_philips_fq1286_ntsc_ranges[] = {
3fc46d35
MK
740 { 16 * 160.00 /*MHz*/, 0x8e, 0x41, },
741 { 16 * 454.00 /*MHz*/, 0x8e, 0x42, },
742 { 16 * 999.99 , 0x8e, 0x04, },
7b0ac9cd
MK
743};
744
745static struct tuner_params tuner_philips_fq1286_params[] = {
746 {
747 .type = TUNER_PARAM_TYPE_NTSC,
748 .ranges = tuner_philips_fq1286_ntsc_ranges,
749 .count = ARRAY_SIZE(tuner_philips_fq1286_ntsc_ranges),
7b0ac9cd
MK
750 },
751};
752
753/* ------------ TUNER_TCL_2002MB - TCL PAL ------------ */
754
755static struct tuner_range tuner_tcl_2002mb_pal_ranges[] = {
3fc46d35
MK
756 { 16 * 170.00 /*MHz*/, 0xce, 0x01, },
757 { 16 * 450.00 /*MHz*/, 0xce, 0x02, },
758 { 16 * 999.99 , 0xce, 0x08, },
7b0ac9cd
MK
759};
760
761static struct tuner_params tuner_tcl_2002mb_params[] = {
762 {
763 .type = TUNER_PARAM_TYPE_PAL,
764 .ranges = tuner_tcl_2002mb_pal_ranges,
765 .count = ARRAY_SIZE(tuner_tcl_2002mb_pal_ranges),
7b0ac9cd
MK
766 },
767};
768
769/* ------------ TUNER_PHILIPS_FQ1216AME_MK4 - Philips PAL ------------ */
770
3fc46d35
MK
771static struct tuner_range tuner_philips_fq12_6a___mk4_pal_ranges[] = {
772 { 16 * 160.00 /*MHz*/, 0xce, 0x01, },
773 { 16 * 442.00 /*MHz*/, 0xce, 0x02, },
774 { 16 * 999.99 , 0xce, 0x04, },
7b0ac9cd
MK
775};
776
777static struct tuner_params tuner_philips_fq1216ame_mk4_params[] = {
778 {
779 .type = TUNER_PARAM_TYPE_PAL,
3fc46d35
MK
780 .ranges = tuner_philips_fq12_6a___mk4_pal_ranges,
781 .count = ARRAY_SIZE(tuner_philips_fq12_6a___mk4_pal_ranges),
7b0ac9cd
MK
782 },
783};
784
785/* ------------ TUNER_PHILIPS_FQ1236A_MK4 - Philips NTSC ------------ */
786
787static struct tuner_params tuner_philips_fq1236a_mk4_params[] = {
788 {
789 .type = TUNER_PARAM_TYPE_NTSC,
cc925bbe
MK
790 .ranges = tuner_fm1236_mk3_ntsc_ranges,
791 .count = ARRAY_SIZE(tuner_fm1236_mk3_ntsc_ranges),
7b0ac9cd
MK
792 },
793};
794
795/* ------------ TUNER_YMEC_TVF_8531MF - Philips NTSC ------------ */
796
7b0ac9cd
MK
797static struct tuner_params tuner_ymec_tvf_8531mf_params[] = {
798 {
799 .type = TUNER_PARAM_TYPE_NTSC,
cc925bbe
MK
800 .ranges = tuner_philips_ntsc_m_ranges,
801 .count = ARRAY_SIZE(tuner_philips_ntsc_m_ranges),
7b0ac9cd
MK
802 },
803};
804
805/* ------------ TUNER_YMEC_TVF_5533MF - Philips NTSC ------------ */
806
807static struct tuner_range tuner_ymec_tvf_5533mf_ntsc_ranges[] = {
3fc46d35
MK
808 { 16 * 160.00 /*MHz*/, 0x8e, 0x01, },
809 { 16 * 454.00 /*MHz*/, 0x8e, 0x02, },
810 { 16 * 999.99 , 0x8e, 0x04, },
7b0ac9cd
MK
811};
812
813static struct tuner_params tuner_ymec_tvf_5533mf_params[] = {
814 {
815 .type = TUNER_PARAM_TYPE_NTSC,
816 .ranges = tuner_ymec_tvf_5533mf_ntsc_ranges,
817 .count = ARRAY_SIZE(tuner_ymec_tvf_5533mf_ntsc_ranges),
7b0ac9cd
MK
818 },
819};
820
821/* 60-69 */
822/* ------------ TUNER_THOMSON_DTT761X - THOMSON ATSC ------------ */
823/* DTT 7611 7611A 7612 7613 7613A 7614 7615 7615A */
824
825static struct tuner_range tuner_thomson_dtt761x_ntsc_ranges[] = {
3fc46d35
MK
826 { 16 * 145.25 /*MHz*/, 0x8e, 0x39, },
827 { 16 * 415.25 /*MHz*/, 0x8e, 0x3a, },
828 { 16 * 999.99 , 0x8e, 0x3c, },
7b0ac9cd
MK
829};
830
831
832static struct tuner_params tuner_thomson_dtt761x_params[] = {
833 {
834 .type = TUNER_PARAM_TYPE_NTSC,
835 .ranges = tuner_thomson_dtt761x_ntsc_ranges,
836 .count = ARRAY_SIZE(tuner_thomson_dtt761x_ntsc_ranges),
7b0ac9cd
MK
837 },
838};
839
840/* ------------ TUNER_TENA_9533_DI - Philips PAL ------------ */
841
cc925bbe 842static struct tuner_range tuner_tena_9533_di_pal_ranges[] = {
3fc46d35
MK
843 { 16 * 160.25 /*MHz*/, 0x8e, 0x01, },
844 { 16 * 464.25 /*MHz*/, 0x8e, 0x02, },
845 { 16 * 999.99 , 0x8e, 0x04, },
7b0ac9cd
MK
846};
847
848static struct tuner_params tuner_tena_9533_di_params[] = {
849 {
850 .type = TUNER_PARAM_TYPE_PAL,
cc925bbe
MK
851 .ranges = tuner_tena_9533_di_pal_ranges,
852 .count = ARRAY_SIZE(tuner_tena_9533_di_pal_ranges),
7b0ac9cd
MK
853 },
854};
855
856/* ------------ TUNER_PHILIPS_FMD1216ME_MK3 - Philips PAL ------------ */
857
858static struct tuner_range tuner_philips_fmd1216me_mk3_pal_ranges[] = {
3fc46d35
MK
859 { 16 * 160.00 /*MHz*/, 0x86, 0x51, },
860 { 16 * 442.00 /*MHz*/, 0x86, 0x52, },
861 { 16 * 999.99 , 0x86, 0x54, },
7b0ac9cd
MK
862};
863
864
cc925bbe 865static struct tuner_params tuner_philips_fmd1216me_mk3_params[] = {
7b0ac9cd
MK
866 {
867 .type = TUNER_PARAM_TYPE_PAL,
868 .ranges = tuner_philips_fmd1216me_mk3_pal_ranges,
869 .count = ARRAY_SIZE(tuner_philips_fmd1216me_mk3_pal_ranges),
7b0ac9cd
MK
870 },
871};
872
873
874/* ------------ TUNER_LG_TDVS_H062F - INFINEON ATSC ------------ */
875
876static struct tuner_range tuner_tua6034_ntsc_ranges[] = {
3fc46d35
MK
877 { 16 * 160.00 /*MHz*/, 0x8e, 0x01 },
878 { 16 * 455.00 /*MHz*/, 0x8e, 0x02 },
879 { 16 * 999.99 , 0x8e, 0x04 },
7b0ac9cd
MK
880};
881
882
883static struct tuner_params tuner_tua6034_params[] = {
884 {
885 .type = TUNER_PARAM_TYPE_NTSC,
886 .ranges = tuner_tua6034_ntsc_ranges,
887 .count = ARRAY_SIZE(tuner_tua6034_ntsc_ranges),
7b0ac9cd
MK
888 },
889};
890
891/* ------------ TUNER_YMEC_TVF66T5_B_DFF - Philips PAL ------------ */
892
7b0ac9cd
MK
893static struct tuner_params tuner_ymec_tvf66t5_b_dff_params[] = {
894 {
895 .type = TUNER_PARAM_TYPE_PAL,
cc925bbe
MK
896 .ranges = tuner_tena_9533_di_pal_ranges,
897 .count = ARRAY_SIZE(tuner_tena_9533_di_pal_ranges),
7b0ac9cd
MK
898 },
899};
900
901/* ------------ TUNER_LG_NTSC_TALN_MINI - LGINNOTEK NTSC ------------ */
902
903static struct tuner_range tuner_lg_taln_mini_ntsc_ranges[] = {
3fc46d35
MK
904 { 16 * 137.25 /*MHz*/, 0x8e, 0x01, },
905 { 16 * 373.25 /*MHz*/, 0x8e, 0x02, },
906 { 16 * 999.99 , 0x8e, 0x08, },
7b0ac9cd
MK
907};
908
909static struct tuner_params tuner_lg_taln_mini_params[] = {
910 {
911 .type = TUNER_PARAM_TYPE_NTSC,
912 .ranges = tuner_lg_taln_mini_ntsc_ranges,
913 .count = ARRAY_SIZE(tuner_lg_taln_mini_ntsc_ranges),
7b0ac9cd
MK
914 },
915};
916
917/* ------------ TUNER_PHILIPS_TD1316 - Philips PAL ------------ */
918
919static struct tuner_range tuner_philips_td1316_pal_ranges[] = {
3fc46d35
MK
920 { 16 * 160.00 /*MHz*/, 0xc8, 0xa1, },
921 { 16 * 442.00 /*MHz*/, 0xc8, 0xa2, },
922 { 16 * 999.99 , 0xc8, 0xa4, },
7b0ac9cd
MK
923};
924
925static struct tuner_params tuner_philips_td1316_params[] = {
926 {
927 .type = TUNER_PARAM_TYPE_PAL,
928 .ranges = tuner_philips_td1316_pal_ranges,
929 .count = ARRAY_SIZE(tuner_philips_td1316_pal_ranges),
7b0ac9cd
MK
930 },
931};
932
933/* ------------ TUNER_PHILIPS_TUV1236D - Philips ATSC ------------ */
934
935static struct tuner_range tuner_tuv1236d_ntsc_ranges[] = {
3fc46d35
MK
936 { 16 * 157.25 /*MHz*/, 0xce, 0x01, },
937 { 16 * 454.00 /*MHz*/, 0xce, 0x02, },
938 { 16 * 999.99 , 0xce, 0x04, },
7b0ac9cd
MK
939};
940
941
cc925bbe 942static struct tuner_params tuner_tuv1236d_params[] = {
7b0ac9cd
MK
943 {
944 .type = TUNER_PARAM_TYPE_NTSC,
945 .ranges = tuner_tuv1236d_ntsc_ranges,
946 .count = ARRAY_SIZE(tuner_tuv1236d_ntsc_ranges),
7b0ac9cd
MK
947 },
948};
949
950/* ------------ TUNER_TNF_5335MF - Philips NTSC ------------ */
951
952static struct tuner_range tuner_tnf_5335mf_ntsc_ranges[] = {
3fc46d35
MK
953 { 16 * 157.25 /*MHz*/, 0x8e, 0x01, },
954 { 16 * 454.00 /*MHz*/, 0x8e, 0x02, },
955 { 16 * 999.99 , 0x8e, 0x04, },
7b0ac9cd
MK
956};
957
958static struct tuner_params tuner_tnf_5335mf_params[] = {
959 {
960 .type = TUNER_PARAM_TYPE_NTSC,
961 .ranges = tuner_tnf_5335mf_ntsc_ranges,
962 .count = ARRAY_SIZE(tuner_tnf_5335mf_ntsc_ranges),
7b0ac9cd
MK
963 },
964};
965
b3d37042
HV
966/* 70-79 */
967/* ------------ TUNER_SAMSUNG_TCPN_2121P30A - Samsung NTSC ------------ */
968
969static struct tuner_range tuner_samsung_tcpn_2121p30a_ntsc_ranges[] = {
3fc46d35
MK
970 { 16 * 175.75 /*MHz*/, 0xce, 0x01, },
971 { 16 * 410.25 /*MHz*/, 0xce, 0x02, },
972 { 16 * 999.99 , 0xce, 0x08, },
b3d37042
HV
973};
974
975static struct tuner_params tuner_samsung_tcpn_2121p30a_params[] = {
976 {
977 .type = TUNER_PARAM_TYPE_NTSC,
978 .ranges = tuner_samsung_tcpn_2121p30a_ntsc_ranges,
979 .count = ARRAY_SIZE(tuner_samsung_tcpn_2121p30a_ntsc_ranges),
b3d37042
HV
980 },
981};
982
7b0ac9cd
MK
983/* --------------------------------------------------------------------- */
984
985struct tunertype tuners[] = {
986 /* 0-9 */
987 [TUNER_TEMIC_PAL] = { /* TEMIC PAL */
988 .name = "Temic PAL (4002 FH5)",
989 .params = tuner_temic_pal_params,
990 },
991 [TUNER_PHILIPS_PAL_I] = { /* Philips PAL_I */
992 .name = "Philips PAL_I (FI1246 and compatibles)",
993 .params = tuner_philips_pal_i_params,
994 },
995 [TUNER_PHILIPS_NTSC] = { /* Philips NTSC */
996 .name = "Philips NTSC (FI1236,FM1236 and compatibles)",
997 .params = tuner_philips_ntsc_params,
998 },
999 [TUNER_PHILIPS_SECAM] = { /* Philips SECAM */
1000 .name = "Philips (SECAM+PAL_BG) (FI1216MF, FM1216MF, FR1216MF)",
1001 .params = tuner_philips_secam_params,
1002 },
1003 [TUNER_ABSENT] = { /* Tuner Absent */
1004 .name = "NoTuner",
1005 },
1006 [TUNER_PHILIPS_PAL] = { /* Philips PAL */
1007 .name = "Philips PAL_BG (FI1216 and compatibles)",
1008 .params = tuner_philips_pal_params,
1009 },
1010 [TUNER_TEMIC_NTSC] = { /* TEMIC NTSC */
1011 .name = "Temic NTSC (4032 FY5)",
1012 .params = tuner_temic_ntsc_params,
1013 },
1014 [TUNER_TEMIC_PAL_I] = { /* TEMIC PAL_I */
1015 .name = "Temic PAL_I (4062 FY5)",
1016 .params = tuner_temic_pal_i_params,
1017 },
1018 [TUNER_TEMIC_4036FY5_NTSC] = { /* TEMIC NTSC */
1019 .name = "Temic NTSC (4036 FY5)",
1020 .params = tuner_temic_4036fy5_ntsc_params,
1021 },
1022 [TUNER_ALPS_TSBH1_NTSC] = { /* TEMIC NTSC */
1023 .name = "Alps HSBH1",
1024 .params = tuner_alps_tsbh1_ntsc_params,
1025 },
1026
1027 /* 10-19 */
1028 [TUNER_ALPS_TSBE1_PAL] = { /* TEMIC PAL */
1029 .name = "Alps TSBE1",
1030 .params = tuner_alps_tsb_1_params,
1031 },
1032 [TUNER_ALPS_TSBB5_PAL_I] = { /* Alps PAL_I */
1033 .name = "Alps TSBB5",
1034 .params = tuner_alps_tsbb5_params,
1035 },
1036 [TUNER_ALPS_TSBE5_PAL] = { /* Alps PAL */
1037 .name = "Alps TSBE5",
1038 .params = tuner_alps_tsbe5_params,
1039 },
1040 [TUNER_ALPS_TSBC5_PAL] = { /* Alps PAL */
1041 .name = "Alps TSBC5",
1042 .params = tuner_alps_tsbc5_params,
1043 },
1044 [TUNER_TEMIC_4006FH5_PAL] = { /* TEMIC PAL */
1045 .name = "Temic PAL_BG (4006FH5)",
1046 .params = tuner_temic_4006fh5_params,
1047 },
1048 [TUNER_ALPS_TSHC6_NTSC] = { /* Alps NTSC */
1049 .name = "Alps TSCH6",
1050 .params = tuner_alps_tshc6_params,
1051 },
1052 [TUNER_TEMIC_PAL_DK] = { /* TEMIC PAL */
1053 .name = "Temic PAL_DK (4016 FY5)",
1054 .params = tuner_temic_pal_dk_params,
1055 },
1056 [TUNER_PHILIPS_NTSC_M] = { /* Philips NTSC */
1057 .name = "Philips NTSC_M (MK2)",
1058 .params = tuner_philips_ntsc_m_params,
1059 },
1060 [TUNER_TEMIC_4066FY5_PAL_I] = { /* TEMIC PAL_I */
1061 .name = "Temic PAL_I (4066 FY5)",
1062 .params = tuner_temic_4066fy5_pal_i_params,
1063 },
1064 [TUNER_TEMIC_4006FN5_MULTI_PAL] = { /* TEMIC PAL */
1065 .name = "Temic PAL* auto (4006 FN5)",
1066 .params = tuner_temic_4006fn5_multi_params,
1067 },
1068
1069 /* 20-29 */
1070 [TUNER_TEMIC_4009FR5_PAL] = { /* TEMIC PAL */
1071 .name = "Temic PAL_BG (4009 FR5) or PAL_I (4069 FR5)",
1072 .params = tuner_temic_4009f_5_params,
1073 },
1074 [TUNER_TEMIC_4039FR5_NTSC] = { /* TEMIC NTSC */
1075 .name = "Temic NTSC (4039 FR5)",
1076 .params = tuner_temic_4039fr5_params,
1077 },
1078 [TUNER_TEMIC_4046FM5] = { /* TEMIC PAL */
1079 .name = "Temic PAL/SECAM multi (4046 FM5)",
1080 .params = tuner_temic_4046fm5_params,
1081 },
1082 [TUNER_PHILIPS_PAL_DK] = { /* Philips PAL */
1083 .name = "Philips PAL_DK (FI1256 and compatibles)",
1084 .params = tuner_philips_pal_dk_params,
1085 },
1086 [TUNER_PHILIPS_FQ1216ME] = { /* Philips PAL */
1087 .name = "Philips PAL/SECAM multi (FQ1216ME)",
1088 .params = tuner_philips_fq1216me_params,
1089 },
1090 [TUNER_LG_PAL_I_FM] = { /* LGINNOTEK PAL_I */
1091 .name = "LG PAL_I+FM (TAPC-I001D)",
1092 .params = tuner_lg_pal_i_fm_params,
1093 },
1094 [TUNER_LG_PAL_I] = { /* LGINNOTEK PAL_I */
1095 .name = "LG PAL_I (TAPC-I701D)",
1096 .params = tuner_lg_pal_i_params,
1097 },
1098 [TUNER_LG_NTSC_FM] = { /* LGINNOTEK NTSC */
1099 .name = "LG NTSC+FM (TPI8NSR01F)",
1100 .params = tuner_lg_ntsc_fm_params,
1101 },
1102 [TUNER_LG_PAL_FM] = { /* LGINNOTEK PAL */
1103 .name = "LG PAL_BG+FM (TPI8PSB01D)",
1104 .params = tuner_lg_pal_fm_params,
1105 },
1106 [TUNER_LG_PAL] = { /* LGINNOTEK PAL */
1107 .name = "LG PAL_BG (TPI8PSB11D)",
1108 .params = tuner_lg_pal_params,
1109 },
1110
1111 /* 30-39 */
1112 [TUNER_TEMIC_4009FN5_MULTI_PAL_FM] = { /* TEMIC PAL */
1113 .name = "Temic PAL* auto + FM (4009 FN5)",
1114 .params = tuner_temic_4009_fn5_multi_pal_fm_params,
1115 },
1116 [TUNER_SHARP_2U5JF5540_NTSC] = { /* SHARP NTSC */
1117 .name = "SHARP NTSC_JP (2U5JF5540)",
1118 .params = tuner_sharp_2u5jf5540_params,
1119 },
1120 [TUNER_Samsung_PAL_TCPM9091PD27] = { /* Samsung PAL */
1121 .name = "Samsung PAL TCPM9091PD27",
1122 .params = tuner_samsung_pal_tcpm9091pd27_params,
1123 },
1124 [TUNER_MT2032] = { /* Microtune PAL|NTSC */
1125 .name = "MT20xx universal",
1126 /* see mt20xx.c for details */ },
1127 [TUNER_TEMIC_4106FH5] = { /* TEMIC PAL */
1128 .name = "Temic PAL_BG (4106 FH5)",
1129 .params = tuner_temic_4106fh5_params,
1130 },
1131 [TUNER_TEMIC_4012FY5] = { /* TEMIC PAL */
1132 .name = "Temic PAL_DK/SECAM_L (4012 FY5)",
1133 .params = tuner_temic_4012fy5_params,
1134 },
1135 [TUNER_TEMIC_4136FY5] = { /* TEMIC NTSC */
1136 .name = "Temic NTSC (4136 FY5)",
1137 .params = tuner_temic_4136_fy5_params,
1138 },
1139 [TUNER_LG_PAL_NEW_TAPC] = { /* LGINNOTEK PAL */
1140 .name = "LG PAL (newer TAPC series)",
1141 .params = tuner_lg_pal_new_tapc_params,
1142 },
1143 [TUNER_PHILIPS_FM1216ME_MK3] = { /* Philips PAL */
1144 .name = "Philips PAL/SECAM multi (FM1216ME MK3)",
1145 .params = tuner_fm1216me_mk3_params,
1146 },
1147 [TUNER_LG_NTSC_NEW_TAPC] = { /* LGINNOTEK NTSC */
1148 .name = "LG NTSC (newer TAPC series)",
1149 .params = tuner_lg_ntsc_new_tapc_params,
1150 },
1151
1152 /* 40-49 */
1153 [TUNER_HITACHI_NTSC] = { /* HITACHI NTSC */
1154 .name = "HITACHI V7-J180AT",
1155 .params = tuner_hitachi_ntsc_params,
1156 },
1157 [TUNER_PHILIPS_PAL_MK] = { /* Philips PAL */
1158 .name = "Philips PAL_MK (FI1216 MK)",
1159 .params = tuner_philips_pal_mk_params,
1160 },
1161 [TUNER_PHILIPS_ATSC] = { /* Philips ATSC */
1162 .name = "Philips 1236D ATSC/NTSC dual in",
1163 .params = tuner_philips_atsc_params,
1164 },
1165 [TUNER_PHILIPS_FM1236_MK3] = { /* Philips NTSC */
1166 .name = "Philips NTSC MK3 (FM1236MK3 or FM1236/F)",
1167 .params = tuner_fm1236_mk3_params,
1168 },
1169 [TUNER_PHILIPS_4IN1] = { /* Philips NTSC */
1170 .name = "Philips 4 in 1 (ATI TV Wonder Pro/Conexant)",
1171 .params = tuner_philips_4in1_params,
1172 },
1173 [TUNER_MICROTUNE_4049FM5] = { /* Microtune PAL */
1174 .name = "Microtune 4049 FM5",
1175 .params = tuner_microtune_4049_fm5_params,
1176 },
1177 [TUNER_PANASONIC_VP27] = { /* Panasonic NTSC */
1178 .name = "Panasonic VP27s/ENGE4324D",
1179 .params = tuner_panasonic_vp27_params,
1180 },
1181 [TUNER_LG_NTSC_TAPE] = { /* LGINNOTEK NTSC */
1182 .name = "LG NTSC (TAPE series)",
1183 .params = tuner_lg_ntsc_tape_params,
1184 },
1185 [TUNER_TNF_8831BGFF] = { /* Philips PAL */
1186 .name = "Tenna TNF 8831 BGFF)",
1187 .params = tuner_tnf_8831bgff_params,
1188 },
1189 [TUNER_MICROTUNE_4042FI5] = { /* Microtune NTSC */
1190 .name = "Microtune 4042 FI5 ATSC/NTSC dual in",
1191 .params = tuner_microtune_4042fi5_params,
1192 },
1193
1194 /* 50-59 */
1195 [TUNER_TCL_2002N] = { /* TCL NTSC */
1196 .name = "TCL 2002N",
1197 .params = tuner_tcl_2002n_params,
1198 },
1199 [TUNER_PHILIPS_FM1256_IH3] = { /* Philips PAL */
1200 .name = "Philips PAL/SECAM_D (FM 1256 I-H3)",
1201 .params = tuner_philips_fm1256_ih3_params,
1202 },
1203 [TUNER_THOMSON_DTT7610] = { /* THOMSON ATSC */
1204 .name = "Thomson DTT 7610 (ATSC/NTSC)",
1205 .params = tuner_thomson_dtt7610_params,
1206 },
1207 [TUNER_PHILIPS_FQ1286] = { /* Philips NTSC */
1208 .name = "Philips FQ1286",
1209 .params = tuner_philips_fq1286_params,
1210 },
1211 [TUNER_PHILIPS_TDA8290] = { /* Philips PAL|NTSC */
1212 .name = "tda8290+75",
1213 /* see tda8290.c for details */ },
1214 [TUNER_TCL_2002MB] = { /* TCL PAL */
1215 .name = "TCL 2002MB",
1216 .params = tuner_tcl_2002mb_params,
1217 },
1218 [TUNER_PHILIPS_FQ1216AME_MK4] = { /* Philips PAL */
1219 .name = "Philips PAL/SECAM multi (FQ1216AME MK4)",
1220 .params = tuner_philips_fq1216ame_mk4_params,
1221 },
1222 [TUNER_PHILIPS_FQ1236A_MK4] = { /* Philips NTSC */
1223 .name = "Philips FQ1236A MK4",
1224 .params = tuner_philips_fq1236a_mk4_params,
1225 },
1226 [TUNER_YMEC_TVF_8531MF] = { /* Philips NTSC */
1227 .name = "Ymec TVision TVF-8531MF/8831MF/8731MF",
1228 .params = tuner_ymec_tvf_8531mf_params,
1229 },
1230 [TUNER_YMEC_TVF_5533MF] = { /* Philips NTSC */
1231 .name = "Ymec TVision TVF-5533MF",
1232 .params = tuner_ymec_tvf_5533mf_params,
1233 },
1234
1235 /* 60-69 */
1236 [TUNER_THOMSON_DTT761X] = { /* THOMSON ATSC */
1237 /* DTT 7611 7611A 7612 7613 7613A 7614 7615 7615A */
1238 .name = "Thomson DTT 761X (ATSC/NTSC)",
1239 .params = tuner_thomson_dtt761x_params,
1240 },
1241 [TUNER_TENA_9533_DI] = { /* Philips PAL */
1242 .name = "Tena TNF9533-D/IF/TNF9533-B/DF",
1243 .params = tuner_tena_9533_di_params,
1244 },
1245 [TUNER_TEA5767] = { /* Philips RADIO */
1246 .name = "Philips TEA5767HN FM Radio",
1247 /* see tea5767.c for details */
1248 },
1249 [TUNER_PHILIPS_FMD1216ME_MK3] = { /* Philips PAL */
1250 .name = "Philips FMD1216ME MK3 Hybrid Tuner",
cc925bbe 1251 .params = tuner_philips_fmd1216me_mk3_params,
7b0ac9cd
MK
1252 },
1253 [TUNER_LG_TDVS_H062F] = { /* LGINNOTEK ATSC */
1254 .name = "LG TDVS-H062F/TUA6034",
1255 .params = tuner_tua6034_params,
1256 },
1257 [TUNER_YMEC_TVF66T5_B_DFF] = { /* Philips PAL */
1258 .name = "Ymec TVF66T5-B/DFF",
1259 .params = tuner_ymec_tvf66t5_b_dff_params,
1260 },
1261 [TUNER_LG_NTSC_TALN_MINI] = { /* LGINNOTEK NTSC */
1262 .name = "LG NTSC (TALN mini series)",
1263 .params = tuner_lg_taln_mini_params,
1264 },
1265 [TUNER_PHILIPS_TD1316] = { /* Philips PAL */
1266 .name = "Philips TD1316 Hybrid Tuner",
1267 .params = tuner_philips_td1316_params,
1268 },
1269 [TUNER_PHILIPS_TUV1236D] = { /* Philips ATSC */
1270 .name = "Philips TUV1236D ATSC/NTSC dual in",
cc925bbe 1271 .params = tuner_tuv1236d_params,
7b0ac9cd
MK
1272 },
1273 [TUNER_TNF_5335MF] = { /* Philips NTSC */
1274 .name = "Tena TNF 5335 MF",
1275 .params = tuner_tnf_5335mf_params,
1276 },
b3d37042
HV
1277
1278 /* 70-79 */
1279 [TUNER_SAMSUNG_TCPN_2121P30A] = { /* Samsung NTSC */
1280 .name = "Samsung TCPN 2121P30A",
1281 .params = tuner_samsung_tcpn_2121p30a_params,
1282 },
7b0ac9cd
MK
1283};
1284
1285unsigned const int tuner_count = ARRAY_SIZE(tuners);