~ubuntu-branches/ubuntu/precise/linux-lowlatency/precise

« back to all changes in this revision

Viewing changes to drivers/media/common/tuners/tuner-types.c

  • Committer: Package Import Robot
  • Author(s): Alessio Igor Bogani
  • Date: 2011-10-26 11:13:05 UTC
  • Revision ID: package-import@ubuntu.com-20111026111305-tz023xykf0i6eosh
Tags: upstream-3.2.0
ImportĀ upstreamĀ versionĀ 3.2.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
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
/* --------------------------------------------------------------------- */
 
1385
 
 
1386
struct tunertype tuners[] = {
 
1387
        /* 0-9 */
 
1388
        [TUNER_TEMIC_PAL] = { /* TEMIC PAL */
 
1389
                .name   = "Temic PAL (4002 FH5)",
 
1390
                .params = tuner_temic_pal_params,
 
1391
                .count  = ARRAY_SIZE(tuner_temic_pal_params),
 
1392
        },
 
1393
        [TUNER_PHILIPS_PAL_I] = { /* Philips PAL_I */
 
1394
                .name   = "Philips PAL_I (FI1246 and compatibles)",
 
1395
                .params = tuner_philips_pal_i_params,
 
1396
                .count  = ARRAY_SIZE(tuner_philips_pal_i_params),
 
1397
        },
 
1398
        [TUNER_PHILIPS_NTSC] = { /* Philips NTSC */
 
1399
                .name   = "Philips NTSC (FI1236,FM1236 and compatibles)",
 
1400
                .params = tuner_philips_ntsc_params,
 
1401
                .count  = ARRAY_SIZE(tuner_philips_ntsc_params),
 
1402
        },
 
1403
        [TUNER_PHILIPS_SECAM] = { /* Philips SECAM */
 
1404
                .name   = "Philips (SECAM+PAL_BG) (FI1216MF, FM1216MF, FR1216MF)",
 
1405
                .params = tuner_philips_secam_params,
 
1406
                .count  = ARRAY_SIZE(tuner_philips_secam_params),
 
1407
        },
 
1408
        [TUNER_ABSENT] = { /* Tuner Absent */
 
1409
                .name   = "NoTuner",
 
1410
        },
 
1411
        [TUNER_PHILIPS_PAL] = { /* Philips PAL */
 
1412
                .name   = "Philips PAL_BG (FI1216 and compatibles)",
 
1413
                .params = tuner_philips_pal_params,
 
1414
                .count  = ARRAY_SIZE(tuner_philips_pal_params),
 
1415
        },
 
1416
        [TUNER_TEMIC_NTSC] = { /* TEMIC NTSC */
 
1417
                .name   = "Temic NTSC (4032 FY5)",
 
1418
                .params = tuner_temic_ntsc_params,
 
1419
                .count  = ARRAY_SIZE(tuner_temic_ntsc_params),
 
1420
        },
 
1421
        [TUNER_TEMIC_PAL_I] = { /* TEMIC PAL_I */
 
1422
                .name   = "Temic PAL_I (4062 FY5)",
 
1423
                .params = tuner_temic_pal_i_params,
 
1424
                .count  = ARRAY_SIZE(tuner_temic_pal_i_params),
 
1425
        },
 
1426
        [TUNER_TEMIC_4036FY5_NTSC] = { /* TEMIC NTSC */
 
1427
                .name   = "Temic NTSC (4036 FY5)",
 
1428
                .params = tuner_temic_4036fy5_ntsc_params,
 
1429
                .count  = ARRAY_SIZE(tuner_temic_4036fy5_ntsc_params),
 
1430
        },
 
1431
        [TUNER_ALPS_TSBH1_NTSC] = { /* TEMIC NTSC */
 
1432
                .name   = "Alps HSBH1",
 
1433
                .params = tuner_alps_tsbh1_ntsc_params,
 
1434
                .count  = ARRAY_SIZE(tuner_alps_tsbh1_ntsc_params),
 
1435
        },
 
1436
 
 
1437
        /* 10-19 */
 
1438
        [TUNER_ALPS_TSBE1_PAL] = { /* TEMIC PAL */
 
1439
                .name   = "Alps TSBE1",
 
1440
                .params = tuner_alps_tsb_1_params,
 
1441
                .count  = ARRAY_SIZE(tuner_alps_tsb_1_params),
 
1442
        },
 
1443
        [TUNER_ALPS_TSBB5_PAL_I] = { /* Alps PAL_I */
 
1444
                .name   = "Alps TSBB5",
 
1445
                .params = tuner_alps_tsbb5_params,
 
1446
                .count  = ARRAY_SIZE(tuner_alps_tsbb5_params),
 
1447
        },
 
1448
        [TUNER_ALPS_TSBE5_PAL] = { /* Alps PAL */
 
1449
                .name   = "Alps TSBE5",
 
1450
                .params = tuner_alps_tsbe5_params,
 
1451
                .count  = ARRAY_SIZE(tuner_alps_tsbe5_params),
 
1452
        },
 
1453
        [TUNER_ALPS_TSBC5_PAL] = { /* Alps PAL */
 
1454
                .name   = "Alps TSBC5",
 
1455
                .params = tuner_alps_tsbc5_params,
 
1456
                .count  = ARRAY_SIZE(tuner_alps_tsbc5_params),
 
1457
        },
 
1458
        [TUNER_TEMIC_4006FH5_PAL] = { /* TEMIC PAL */
 
1459
                .name   = "Temic PAL_BG (4006FH5)",
 
1460
                .params = tuner_temic_4006fh5_params,
 
1461
                .count  = ARRAY_SIZE(tuner_temic_4006fh5_params),
 
1462
        },
 
1463
        [TUNER_ALPS_TSHC6_NTSC] = { /* Alps NTSC */
 
1464
                .name   = "Alps TSCH6",
 
1465
                .params = tuner_alps_tshc6_params,
 
1466
                .count  = ARRAY_SIZE(tuner_alps_tshc6_params),
 
1467
        },
 
1468
        [TUNER_TEMIC_PAL_DK] = { /* TEMIC PAL */
 
1469
                .name   = "Temic PAL_DK (4016 FY5)",
 
1470
                .params = tuner_temic_pal_dk_params,
 
1471
                .count  = ARRAY_SIZE(tuner_temic_pal_dk_params),
 
1472
        },
 
1473
        [TUNER_PHILIPS_NTSC_M] = { /* Philips NTSC */
 
1474
                .name   = "Philips NTSC_M (MK2)",
 
1475
                .params = tuner_philips_ntsc_m_params,
 
1476
                .count  = ARRAY_SIZE(tuner_philips_ntsc_m_params),
 
1477
        },
 
1478
        [TUNER_TEMIC_4066FY5_PAL_I] = { /* TEMIC PAL_I */
 
1479
                .name   = "Temic PAL_I (4066 FY5)",
 
1480
                .params = tuner_temic_4066fy5_pal_i_params,
 
1481
                .count  = ARRAY_SIZE(tuner_temic_4066fy5_pal_i_params),
 
1482
        },
 
1483
        [TUNER_TEMIC_4006FN5_MULTI_PAL] = { /* TEMIC PAL */
 
1484
                .name   = "Temic PAL* auto (4006 FN5)",
 
1485
                .params = tuner_temic_4006fn5_multi_params,
 
1486
                .count  = ARRAY_SIZE(tuner_temic_4006fn5_multi_params),
 
1487
        },
 
1488
 
 
1489
        /* 20-29 */
 
1490
        [TUNER_TEMIC_4009FR5_PAL] = { /* TEMIC PAL */
 
1491
                .name   = "Temic PAL_BG (4009 FR5) or PAL_I (4069 FR5)",
 
1492
                .params = tuner_temic_4009f_5_params,
 
1493
                .count  = ARRAY_SIZE(tuner_temic_4009f_5_params),
 
1494
        },
 
1495
        [TUNER_TEMIC_4039FR5_NTSC] = { /* TEMIC NTSC */
 
1496
                .name   = "Temic NTSC (4039 FR5)",
 
1497
                .params = tuner_temic_4039fr5_params,
 
1498
                .count  = ARRAY_SIZE(tuner_temic_4039fr5_params),
 
1499
        },
 
1500
        [TUNER_TEMIC_4046FM5] = { /* TEMIC PAL */
 
1501
                .name   = "Temic PAL/SECAM multi (4046 FM5)",
 
1502
                .params = tuner_temic_4046fm5_params,
 
1503
                .count  = ARRAY_SIZE(tuner_temic_4046fm5_params),
 
1504
        },
 
1505
        [TUNER_PHILIPS_PAL_DK] = { /* Philips PAL */
 
1506
                .name   = "Philips PAL_DK (FI1256 and compatibles)",
 
1507
                .params = tuner_philips_pal_dk_params,
 
1508
                .count  = ARRAY_SIZE(tuner_philips_pal_dk_params),
 
1509
        },
 
1510
        [TUNER_PHILIPS_FQ1216ME] = { /* Philips PAL */
 
1511
                .name   = "Philips PAL/SECAM multi (FQ1216ME)",
 
1512
                .params = tuner_philips_fq1216me_params,
 
1513
                .count  = ARRAY_SIZE(tuner_philips_fq1216me_params),
 
1514
        },
 
1515
        [TUNER_LG_PAL_I_FM] = { /* LGINNOTEK PAL_I */
 
1516
                .name   = "LG PAL_I+FM (TAPC-I001D)",
 
1517
                .params = tuner_lg_pal_i_fm_params,
 
1518
                .count  = ARRAY_SIZE(tuner_lg_pal_i_fm_params),
 
1519
        },
 
1520
        [TUNER_LG_PAL_I] = { /* LGINNOTEK PAL_I */
 
1521
                .name   = "LG PAL_I (TAPC-I701D)",
 
1522
                .params = tuner_lg_pal_i_params,
 
1523
                .count  = ARRAY_SIZE(tuner_lg_pal_i_params),
 
1524
        },
 
1525
        [TUNER_LG_NTSC_FM] = { /* LGINNOTEK NTSC */
 
1526
                .name   = "LG NTSC+FM (TPI8NSR01F)",
 
1527
                .params = tuner_lg_ntsc_fm_params,
 
1528
                .count  = ARRAY_SIZE(tuner_lg_ntsc_fm_params),
 
1529
        },
 
1530
        [TUNER_LG_PAL_FM] = { /* LGINNOTEK PAL */
 
1531
                .name   = "LG PAL_BG+FM (TPI8PSB01D)",
 
1532
                .params = tuner_lg_pal_fm_params,
 
1533
                .count  = ARRAY_SIZE(tuner_lg_pal_fm_params),
 
1534
        },
 
1535
        [TUNER_LG_PAL] = { /* LGINNOTEK PAL */
 
1536
                .name   = "LG PAL_BG (TPI8PSB11D)",
 
1537
                .params = tuner_lg_pal_params,
 
1538
                .count  = ARRAY_SIZE(tuner_lg_pal_params),
 
1539
        },
 
1540
 
 
1541
        /* 30-39 */
 
1542
        [TUNER_TEMIC_4009FN5_MULTI_PAL_FM] = { /* TEMIC PAL */
 
1543
                .name   = "Temic PAL* auto + FM (4009 FN5)",
 
1544
                .params = tuner_temic_4009_fn5_multi_pal_fm_params,
 
1545
                .count  = ARRAY_SIZE(tuner_temic_4009_fn5_multi_pal_fm_params),
 
1546
        },
 
1547
        [TUNER_SHARP_2U5JF5540_NTSC] = { /* SHARP NTSC */
 
1548
                .name   = "SHARP NTSC_JP (2U5JF5540)",
 
1549
                .params = tuner_sharp_2u5jf5540_params,
 
1550
                .count  = ARRAY_SIZE(tuner_sharp_2u5jf5540_params),
 
1551
        },
 
1552
        [TUNER_Samsung_PAL_TCPM9091PD27] = { /* Samsung PAL */
 
1553
                .name   = "Samsung PAL TCPM9091PD27",
 
1554
                .params = tuner_samsung_pal_tcpm9091pd27_params,
 
1555
                .count  = ARRAY_SIZE(tuner_samsung_pal_tcpm9091pd27_params),
 
1556
        },
 
1557
        [TUNER_MT2032] = { /* Microtune PAL|NTSC */
 
1558
                .name   = "MT20xx universal",
 
1559
                /* see mt20xx.c for details */ },
 
1560
        [TUNER_TEMIC_4106FH5] = { /* TEMIC PAL */
 
1561
                .name   = "Temic PAL_BG (4106 FH5)",
 
1562
                .params = tuner_temic_4106fh5_params,
 
1563
                .count  = ARRAY_SIZE(tuner_temic_4106fh5_params),
 
1564
        },
 
1565
        [TUNER_TEMIC_4012FY5] = { /* TEMIC PAL */
 
1566
                .name   = "Temic PAL_DK/SECAM_L (4012 FY5)",
 
1567
                .params = tuner_temic_4012fy5_params,
 
1568
                .count  = ARRAY_SIZE(tuner_temic_4012fy5_params),
 
1569
        },
 
1570
        [TUNER_TEMIC_4136FY5] = { /* TEMIC NTSC */
 
1571
                .name   = "Temic NTSC (4136 FY5)",
 
1572
                .params = tuner_temic_4136_fy5_params,
 
1573
                .count  = ARRAY_SIZE(tuner_temic_4136_fy5_params),
 
1574
        },
 
1575
        [TUNER_LG_PAL_NEW_TAPC] = { /* LGINNOTEK PAL */
 
1576
                .name   = "LG PAL (newer TAPC series)",
 
1577
                .params = tuner_lg_pal_new_tapc_params,
 
1578
                .count  = ARRAY_SIZE(tuner_lg_pal_new_tapc_params),
 
1579
        },
 
1580
        [TUNER_PHILIPS_FM1216ME_MK3] = { /* Philips PAL */
 
1581
                .name   = "Philips PAL/SECAM multi (FM1216ME MK3)",
 
1582
                .params = tuner_fm1216me_mk3_params,
 
1583
                .count  = ARRAY_SIZE(tuner_fm1216me_mk3_params),
 
1584
        },
 
1585
        [TUNER_LG_NTSC_NEW_TAPC] = { /* LGINNOTEK NTSC */
 
1586
                .name   = "LG NTSC (newer TAPC series)",
 
1587
                .params = tuner_lg_ntsc_new_tapc_params,
 
1588
                .count  = ARRAY_SIZE(tuner_lg_ntsc_new_tapc_params),
 
1589
        },
 
1590
 
 
1591
        /* 40-49 */
 
1592
        [TUNER_HITACHI_NTSC] = { /* HITACHI NTSC */
 
1593
                .name   = "HITACHI V7-J180AT",
 
1594
                .params = tuner_hitachi_ntsc_params,
 
1595
                .count  = ARRAY_SIZE(tuner_hitachi_ntsc_params),
 
1596
        },
 
1597
        [TUNER_PHILIPS_PAL_MK] = { /* Philips PAL */
 
1598
                .name   = "Philips PAL_MK (FI1216 MK)",
 
1599
                .params = tuner_philips_pal_mk_params,
 
1600
                .count  = ARRAY_SIZE(tuner_philips_pal_mk_params),
 
1601
        },
 
1602
        [TUNER_PHILIPS_FCV1236D] = { /* Philips ATSC */
 
1603
                .name   = "Philips FCV1236D ATSC/NTSC dual in",
 
1604
                .params = tuner_philips_fcv1236d_params,
 
1605
                .count  = ARRAY_SIZE(tuner_philips_fcv1236d_params),
 
1606
                .min = 16 *  53.00,
 
1607
                .max = 16 * 803.00,
 
1608
                .stepsize = 62500,
 
1609
        },
 
1610
        [TUNER_PHILIPS_FM1236_MK3] = { /* Philips NTSC */
 
1611
                .name   = "Philips NTSC MK3 (FM1236MK3 or FM1236/F)",
 
1612
                .params = tuner_fm1236_mk3_params,
 
1613
                .count  = ARRAY_SIZE(tuner_fm1236_mk3_params),
 
1614
        },
 
1615
        [TUNER_PHILIPS_4IN1] = { /* Philips NTSC */
 
1616
                .name   = "Philips 4 in 1 (ATI TV Wonder Pro/Conexant)",
 
1617
                .params = tuner_philips_4in1_params,
 
1618
                .count  = ARRAY_SIZE(tuner_philips_4in1_params),
 
1619
        },
 
1620
        [TUNER_MICROTUNE_4049FM5] = { /* Microtune PAL */
 
1621
                .name   = "Microtune 4049 FM5",
 
1622
                .params = tuner_microtune_4049_fm5_params,
 
1623
                .count  = ARRAY_SIZE(tuner_microtune_4049_fm5_params),
 
1624
        },
 
1625
        [TUNER_PANASONIC_VP27] = { /* Panasonic NTSC */
 
1626
                .name   = "Panasonic VP27s/ENGE4324D",
 
1627
                .params = tuner_panasonic_vp27_params,
 
1628
                .count  = ARRAY_SIZE(tuner_panasonic_vp27_params),
 
1629
        },
 
1630
        [TUNER_LG_NTSC_TAPE] = { /* LGINNOTEK NTSC */
 
1631
                .name   = "LG NTSC (TAPE series)",
 
1632
                .params = tuner_fm1236_mk3_params,
 
1633
                .count  = ARRAY_SIZE(tuner_fm1236_mk3_params),
 
1634
        },
 
1635
        [TUNER_TNF_8831BGFF] = { /* Philips PAL */
 
1636
                .name   = "Tenna TNF 8831 BGFF)",
 
1637
                .params = tuner_tnf_8831bgff_params,
 
1638
                .count  = ARRAY_SIZE(tuner_tnf_8831bgff_params),
 
1639
        },
 
1640
        [TUNER_MICROTUNE_4042FI5] = { /* Microtune NTSC */
 
1641
                .name   = "Microtune 4042 FI5 ATSC/NTSC dual in",
 
1642
                .params = tuner_microtune_4042fi5_params,
 
1643
                .count  = ARRAY_SIZE(tuner_microtune_4042fi5_params),
 
1644
                .min    = 16 *  57.00,
 
1645
                .max    = 16 * 858.00,
 
1646
                .stepsize = 62500,
 
1647
        },
 
1648
 
 
1649
        /* 50-59 */
 
1650
        [TUNER_TCL_2002N] = { /* TCL NTSC */
 
1651
                .name   = "TCL 2002N",
 
1652
                .params = tuner_tcl_2002n_params,
 
1653
                .count  = ARRAY_SIZE(tuner_tcl_2002n_params),
 
1654
        },
 
1655
        [TUNER_PHILIPS_FM1256_IH3] = { /* Philips PAL */
 
1656
                .name   = "Philips PAL/SECAM_D (FM 1256 I-H3)",
 
1657
                .params = tuner_philips_fm1256_ih3_params,
 
1658
                .count  = ARRAY_SIZE(tuner_philips_fm1256_ih3_params),
 
1659
        },
 
1660
        [TUNER_THOMSON_DTT7610] = { /* THOMSON ATSC */
 
1661
                .name   = "Thomson DTT 7610 (ATSC/NTSC)",
 
1662
                .params = tuner_thomson_dtt7610_params,
 
1663
                .count  = ARRAY_SIZE(tuner_thomson_dtt7610_params),
 
1664
                .min    = 16 *  44.00,
 
1665
                .max    = 16 * 958.00,
 
1666
                .stepsize = 62500,
 
1667
        },
 
1668
        [TUNER_PHILIPS_FQ1286] = { /* Philips NTSC */
 
1669
                .name   = "Philips FQ1286",
 
1670
                .params = tuner_philips_fq1286_params,
 
1671
                .count  = ARRAY_SIZE(tuner_philips_fq1286_params),
 
1672
        },
 
1673
        [TUNER_PHILIPS_TDA8290] = { /* Philips PAL|NTSC */
 
1674
                .name   = "Philips/NXP TDA 8290/8295 + 8275/8275A/18271",
 
1675
                /* see tda8290.c for details */ },
 
1676
        [TUNER_TCL_2002MB] = { /* TCL PAL */
 
1677
                .name   = "TCL 2002MB",
 
1678
                .params = tuner_tcl_2002mb_params,
 
1679
                .count  = ARRAY_SIZE(tuner_tcl_2002mb_params),
 
1680
        },
 
1681
        [TUNER_PHILIPS_FQ1216AME_MK4] = { /* Philips PAL */
 
1682
                .name   = "Philips PAL/SECAM multi (FQ1216AME MK4)",
 
1683
                .params = tuner_philips_fq1216ame_mk4_params,
 
1684
                .count  = ARRAY_SIZE(tuner_philips_fq1216ame_mk4_params),
 
1685
        },
 
1686
        [TUNER_PHILIPS_FQ1236A_MK4] = { /* Philips NTSC */
 
1687
                .name   = "Philips FQ1236A MK4",
 
1688
                .params = tuner_philips_fq1236a_mk4_params,
 
1689
                .count  = ARRAY_SIZE(tuner_philips_fq1236a_mk4_params),
 
1690
        },
 
1691
        [TUNER_YMEC_TVF_8531MF] = { /* Philips NTSC */
 
1692
                .name   = "Ymec TVision TVF-8531MF/8831MF/8731MF",
 
1693
                .params = tuner_ymec_tvf_8531mf_params,
 
1694
                .count  = ARRAY_SIZE(tuner_ymec_tvf_8531mf_params),
 
1695
        },
 
1696
        [TUNER_YMEC_TVF_5533MF] = { /* Philips NTSC */
 
1697
                .name   = "Ymec TVision TVF-5533MF",
 
1698
                .params = tuner_ymec_tvf_5533mf_params,
 
1699
                .count  = ARRAY_SIZE(tuner_ymec_tvf_5533mf_params),
 
1700
        },
 
1701
 
 
1702
        /* 60-69 */
 
1703
        [TUNER_THOMSON_DTT761X] = { /* THOMSON ATSC */
 
1704
                /* DTT 7611 7611A 7612 7613 7613A 7614 7615 7615A */
 
1705
                .name   = "Thomson DTT 761X (ATSC/NTSC)",
 
1706
                .params = tuner_thomson_dtt761x_params,
 
1707
                .count  = ARRAY_SIZE(tuner_thomson_dtt761x_params),
 
1708
                .min    = 16 *  57.00,
 
1709
                .max    = 16 * 863.00,
 
1710
                .stepsize = 62500,
 
1711
                .initdata = tua603x_agc103,
 
1712
        },
 
1713
        [TUNER_TENA_9533_DI] = { /* Philips PAL */
 
1714
                .name   = "Tena TNF9533-D/IF/TNF9533-B/DF",
 
1715
                .params = tuner_tena_9533_di_params,
 
1716
                .count  = ARRAY_SIZE(tuner_tena_9533_di_params),
 
1717
        },
 
1718
        [TUNER_TEA5767] = { /* Philips RADIO */
 
1719
                .name   = "Philips TEA5767HN FM Radio",
 
1720
                /* see tea5767.c for details */
 
1721
        },
 
1722
        [TUNER_PHILIPS_FMD1216ME_MK3] = { /* Philips PAL */
 
1723
                .name   = "Philips FMD1216ME MK3 Hybrid Tuner",
 
1724
                .params = tuner_philips_fmd1216me_mk3_params,
 
1725
                .count  = ARRAY_SIZE(tuner_philips_fmd1216me_mk3_params),
 
1726
                .min = 16 *  50.87,
 
1727
                .max = 16 * 858.00,
 
1728
                .stepsize = 166667,
 
1729
                .initdata = tua603x_agc112,
 
1730
                .sleepdata = (u8[]){ 4, 0x9c, 0x60, 0x85, 0x54 },
 
1731
        },
 
1732
        [TUNER_LG_TDVS_H06XF] = { /* LGINNOTEK ATSC */
 
1733
                .name   = "LG TDVS-H06xF", /* H061F, H062F & H064F */
 
1734
                .params = tuner_lg_tdvs_h06xf_params,
 
1735
                .count  = ARRAY_SIZE(tuner_lg_tdvs_h06xf_params),
 
1736
                .min    = 16 *  54.00,
 
1737
                .max    = 16 * 863.00,
 
1738
                .stepsize = 62500,
 
1739
                .initdata = tua603x_agc103,
 
1740
        },
 
1741
        [TUNER_YMEC_TVF66T5_B_DFF] = { /* Philips PAL */
 
1742
                .name   = "Ymec TVF66T5-B/DFF",
 
1743
                .params = tuner_ymec_tvf66t5_b_dff_params,
 
1744
                .count  = ARRAY_SIZE(tuner_ymec_tvf66t5_b_dff_params),
 
1745
        },
 
1746
        [TUNER_LG_TALN] = { /* LGINNOTEK NTSC / PAL / SECAM */
 
1747
                .name   = "LG TALN series",
 
1748
                .params = tuner_lg_taln_params,
 
1749
                .count  = ARRAY_SIZE(tuner_lg_taln_params),
 
1750
        },
 
1751
        [TUNER_PHILIPS_TD1316] = { /* Philips PAL */
 
1752
                .name   = "Philips TD1316 Hybrid Tuner",
 
1753
                .params = tuner_philips_td1316_params,
 
1754
                .count  = ARRAY_SIZE(tuner_philips_td1316_params),
 
1755
                .min    = 16 *  87.00,
 
1756
                .max    = 16 * 895.00,
 
1757
                .stepsize = 166667,
 
1758
        },
 
1759
        [TUNER_PHILIPS_TUV1236D] = { /* Philips ATSC */
 
1760
                .name   = "Philips TUV1236D ATSC/NTSC dual in",
 
1761
                .params = tuner_tuv1236d_params,
 
1762
                .count  = ARRAY_SIZE(tuner_tuv1236d_params),
 
1763
                .min    = 16 *  54.00,
 
1764
                .max    = 16 * 864.00,
 
1765
                .stepsize = 62500,
 
1766
        },
 
1767
        [TUNER_TNF_5335MF] = { /* Tenna PAL/NTSC */
 
1768
                .name   = "Tena TNF 5335 and similar models",
 
1769
                .params = tuner_tnf_5335mf_params,
 
1770
                .count  = ARRAY_SIZE(tuner_tnf_5335mf_params),
 
1771
        },
 
1772
 
 
1773
        /* 70-79 */
 
1774
        [TUNER_SAMSUNG_TCPN_2121P30A] = { /* Samsung NTSC */
 
1775
                .name   = "Samsung TCPN 2121P30A",
 
1776
                .params = tuner_samsung_tcpn_2121p30a_params,
 
1777
                .count  = ARRAY_SIZE(tuner_samsung_tcpn_2121p30a_params),
 
1778
        },
 
1779
        [TUNER_XC2028] = { /* Xceive 2028 */
 
1780
                .name   = "Xceive xc2028/xc3028 tuner",
 
1781
                /* see tuner-xc2028.c for details */
 
1782
        },
 
1783
        [TUNER_THOMSON_FE6600] = { /* Thomson PAL / DVB-T */
 
1784
                .name   = "Thomson FE6600",
 
1785
                .params = tuner_thomson_fe6600_params,
 
1786
                .count  = ARRAY_SIZE(tuner_thomson_fe6600_params),
 
1787
                .min    = 16 *  44.25,
 
1788
                .max    = 16 * 858.00,
 
1789
                .stepsize = 166667,
 
1790
        },
 
1791
        [TUNER_SAMSUNG_TCPG_6121P30A] = { /* Samsung PAL */
 
1792
                .name   = "Samsung TCPG 6121P30A",
 
1793
                .params = tuner_samsung_tcpg_6121p30a_params,
 
1794
                .count  = ARRAY_SIZE(tuner_samsung_tcpg_6121p30a_params),
 
1795
        },
 
1796
        [TUNER_TDA9887] = { /* Philips TDA 9887 IF PLL Demodulator.
 
1797
                                This chip is part of some modern tuners */
 
1798
                .name   = "Philips TDA988[5,6,7] IF PLL Demodulator",
 
1799
                /* see tda9887.c for details */
 
1800
        },
 
1801
        [TUNER_TEA5761] = { /* Philips RADIO */
 
1802
                .name   = "Philips TEA5761 FM Radio",
 
1803
                /* see tea5767.c for details */
 
1804
        },
 
1805
        [TUNER_XC5000] = { /* Xceive 5000 */
 
1806
                .name   = "Xceive 5000 tuner",
 
1807
                /* see xc5000.c for details */
 
1808
        },
 
1809
        [TUNER_XC4000] = { /* Xceive 4000 */
 
1810
                .name   = "Xceive 4000 tuner",
 
1811
                /* see xc4000.c for details */
 
1812
        },
 
1813
        [TUNER_TCL_MF02GIP_5N] = { /* TCL tuner MF02GIP-5N-E */
 
1814
                .name   = "TCL tuner MF02GIP-5N-E",
 
1815
                .params = tuner_tcl_mf02gip_5n_params,
 
1816
                .count  = ARRAY_SIZE(tuner_tcl_mf02gip_5n_params),
 
1817
        },
 
1818
        [TUNER_PHILIPS_FMD1216MEX_MK3] = { /* Philips PAL */
 
1819
                .name   = "Philips FMD1216MEX MK3 Hybrid Tuner",
 
1820
                .params = tuner_philips_fmd1216mex_mk3_params,
 
1821
                .count  = ARRAY_SIZE(tuner_philips_fmd1216mex_mk3_params),
 
1822
                .min = 16 *  50.87,
 
1823
                .max = 16 * 858.00,
 
1824
                .stepsize = 166667,
 
1825
                .initdata = tua603x_agc112,
 
1826
                .sleepdata = (u8[]){ 4, 0x9c, 0x60, 0x85, 0x54 },
 
1827
        },
 
1828
                [TUNER_PHILIPS_FM1216MK5] = { /* Philips PAL */
 
1829
                .name   = "Philips PAL/SECAM multi (FM1216 MK5)",
 
1830
                .params = tuner_fm1216mk5_params,
 
1831
                .count  = ARRAY_SIZE(tuner_fm1216mk5_params),
 
1832
        },
 
1833
 
 
1834
        /* 80-89 */
 
1835
        [TUNER_PHILIPS_FQ1216LME_MK3] = { /* PAL/SECAM, Loop-thru, no FM */
 
1836
                .name = "Philips FQ1216LME MK3 PAL/SECAM w/active loopthrough",
 
1837
                .params = tuner_fq1216lme_mk3_params,
 
1838
                .count  = ARRAY_SIZE(tuner_fq1216lme_mk3_params),
 
1839
        },
 
1840
 
 
1841
        [TUNER_PARTSNIC_PTI_5NF05] = {
 
1842
                .name = "Partsnic (Daewoo) PTI-5NF05",
 
1843
                .params = tuner_partsnic_pti_5nf05_params,
 
1844
                .count  = ARRAY_SIZE(tuner_partsnic_pti_5nf05_params),
 
1845
        },
 
1846
        [TUNER_PHILIPS_CU1216L] = {
 
1847
                .name = "Philips CU1216L",
 
1848
                .params = tuner_philips_cu1216l_params,
 
1849
                .count  = ARRAY_SIZE(tuner_philips_cu1216l_params),
 
1850
                .stepsize = 62500,
 
1851
        },
 
1852
        [TUNER_NXP_TDA18271] = {
 
1853
                .name   = "NXP TDA18271",
 
1854
                /* see tda18271-fe.c for details */
 
1855
        },
 
1856
        [TUNER_SONY_BTF_PXN01Z] = {
 
1857
                .name   = "Sony BTF-Pxn01Z",
 
1858
                .params = tuner_sony_btf_pxn01z_params,
 
1859
                .count  = ARRAY_SIZE(tuner_sony_btf_pxn01z_params),
 
1860
        },
 
1861
        [TUNER_PHILIPS_FQ1236_MK5] = { /* NTSC, TDA9885, no FM radio */
 
1862
                .name   = "Philips FQ1236 MK5",
 
1863
                .params = tuner_philips_fq1236_mk5_params,
 
1864
                .count  = ARRAY_SIZE(tuner_philips_fq1236_mk5_params),
 
1865
        },
 
1866
        [TUNER_TENA_TNF_5337] = { /* Tena 5337 MFD */
 
1867
                .name   = "Tena TNF5337 MFD",
 
1868
                .params = tuner_tena_tnf_5337_params,
 
1869
                .count  = ARRAY_SIZE(tuner_tena_tnf_5337_params),
 
1870
        },
 
1871
};
 
1872
EXPORT_SYMBOL(tuners);
 
1873
 
 
1874
unsigned const int tuner_count = ARRAY_SIZE(tuners);
 
1875
EXPORT_SYMBOL(tuner_count);
 
1876
 
 
1877
MODULE_DESCRIPTION("Simple tuner device type database");
 
1878
MODULE_AUTHOR("Ralph Metzler, Gerd Knorr, Gunther Mayer");
 
1879
MODULE_LICENSE("GPL");