0001
0002
0003
0004
0005
0006
0007
0008 #include <linux/i2c.h>
0009 #include <linux/module.h>
0010 #include <media/tuner.h>
0011 #include <media/tuner-types.h>
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039
0040
0041
0042
0043
0044
0045
0046
0047
0048
0049
0050
0051
0052 static u8 tua603x_agc103[] = { 2, 0x80|0x40|0x18|0x06|0x01, 0x00|0x50 };
0053
0054
0055
0056
0057
0058
0059 static u8 tua603x_agc112[] = { 2, 0x80|0x40|0x18|0x04|0x01, 0x80|0x20 };
0060
0061
0062
0063
0064 static struct tuner_range tuner_temic_pal_ranges[] = {
0065 { 16 * 140.25 , 0x8e, 0x02, },
0066 { 16 * 463.25 , 0x8e, 0x04, },
0067 { 16 * 999.99 , 0x8e, 0x01, },
0068 };
0069
0070 static struct tuner_params tuner_temic_pal_params[] = {
0071 {
0072 .type = TUNER_PARAM_TYPE_PAL,
0073 .ranges = tuner_temic_pal_ranges,
0074 .count = ARRAY_SIZE(tuner_temic_pal_ranges),
0075 },
0076 };
0077
0078
0079
0080 static struct tuner_range tuner_philips_pal_i_ranges[] = {
0081 { 16 * 140.25 , 0x8e, 0xa0, },
0082 { 16 * 463.25 , 0x8e, 0x90, },
0083 { 16 * 999.99 , 0x8e, 0x30, },
0084 };
0085
0086 static struct tuner_params tuner_philips_pal_i_params[] = {
0087 {
0088 .type = TUNER_PARAM_TYPE_PAL,
0089 .ranges = tuner_philips_pal_i_ranges,
0090 .count = ARRAY_SIZE(tuner_philips_pal_i_ranges),
0091 },
0092 };
0093
0094
0095
0096 static struct tuner_range tuner_philips_ntsc_ranges[] = {
0097 { 16 * 157.25 , 0x8e, 0xa0, },
0098 { 16 * 451.25 , 0x8e, 0x90, },
0099 { 16 * 999.99 , 0x8e, 0x30, },
0100 };
0101
0102 static struct tuner_params tuner_philips_ntsc_params[] = {
0103 {
0104 .type = TUNER_PARAM_TYPE_NTSC,
0105 .ranges = tuner_philips_ntsc_ranges,
0106 .count = ARRAY_SIZE(tuner_philips_ntsc_ranges),
0107 .cb_first_if_lower_freq = 1,
0108 },
0109 };
0110
0111
0112
0113 static struct tuner_range tuner_philips_secam_ranges[] = {
0114 { 16 * 168.25 , 0x8e, 0xa7, },
0115 { 16 * 447.25 , 0x8e, 0x97, },
0116 { 16 * 999.99 , 0x8e, 0x37, },
0117 };
0118
0119 static struct tuner_params tuner_philips_secam_params[] = {
0120 {
0121 .type = TUNER_PARAM_TYPE_SECAM,
0122 .ranges = tuner_philips_secam_ranges,
0123 .count = ARRAY_SIZE(tuner_philips_secam_ranges),
0124 .cb_first_if_lower_freq = 1,
0125 },
0126 };
0127
0128
0129
0130 static struct tuner_range tuner_philips_pal_ranges[] = {
0131 { 16 * 168.25 , 0x8e, 0xa0, },
0132 { 16 * 447.25 , 0x8e, 0x90, },
0133 { 16 * 999.99 , 0x8e, 0x30, },
0134 };
0135
0136 static struct tuner_params tuner_philips_pal_params[] = {
0137 {
0138 .type = TUNER_PARAM_TYPE_PAL,
0139 .ranges = tuner_philips_pal_ranges,
0140 .count = ARRAY_SIZE(tuner_philips_pal_ranges),
0141 .cb_first_if_lower_freq = 1,
0142 },
0143 };
0144
0145
0146
0147 static struct tuner_range tuner_temic_ntsc_ranges[] = {
0148 { 16 * 157.25 , 0x8e, 0x02, },
0149 { 16 * 463.25 , 0x8e, 0x04, },
0150 { 16 * 999.99 , 0x8e, 0x01, },
0151 };
0152
0153 static struct tuner_params tuner_temic_ntsc_params[] = {
0154 {
0155 .type = TUNER_PARAM_TYPE_NTSC,
0156 .ranges = tuner_temic_ntsc_ranges,
0157 .count = ARRAY_SIZE(tuner_temic_ntsc_ranges),
0158 },
0159 };
0160
0161
0162
0163 static struct tuner_range tuner_temic_pal_i_ranges[] = {
0164 { 16 * 170.00 , 0x8e, 0x02, },
0165 { 16 * 450.00 , 0x8e, 0x04, },
0166 { 16 * 999.99 , 0x8e, 0x01, },
0167 };
0168
0169 static struct tuner_params tuner_temic_pal_i_params[] = {
0170 {
0171 .type = TUNER_PARAM_TYPE_PAL,
0172 .ranges = tuner_temic_pal_i_ranges,
0173 .count = ARRAY_SIZE(tuner_temic_pal_i_ranges),
0174 },
0175 };
0176
0177
0178
0179 static struct tuner_range tuner_temic_4036fy5_ntsc_ranges[] = {
0180 { 16 * 157.25 , 0x8e, 0xa0, },
0181 { 16 * 463.25 , 0x8e, 0x90, },
0182 { 16 * 999.99 , 0x8e, 0x30, },
0183 };
0184
0185 static struct tuner_params tuner_temic_4036fy5_ntsc_params[] = {
0186 {
0187 .type = TUNER_PARAM_TYPE_NTSC,
0188 .ranges = tuner_temic_4036fy5_ntsc_ranges,
0189 .count = ARRAY_SIZE(tuner_temic_4036fy5_ntsc_ranges),
0190 },
0191 };
0192
0193
0194
0195 static struct tuner_range tuner_alps_tsb_1_ranges[] = {
0196 { 16 * 137.25 , 0x8e, 0x01, },
0197 { 16 * 385.25 , 0x8e, 0x02, },
0198 { 16 * 999.99 , 0x8e, 0x08, },
0199 };
0200
0201 static struct tuner_params tuner_alps_tsbh1_ntsc_params[] = {
0202 {
0203 .type = TUNER_PARAM_TYPE_NTSC,
0204 .ranges = tuner_alps_tsb_1_ranges,
0205 .count = ARRAY_SIZE(tuner_alps_tsb_1_ranges),
0206 },
0207 };
0208
0209
0210
0211
0212 static struct tuner_params tuner_alps_tsb_1_params[] = {
0213 {
0214 .type = TUNER_PARAM_TYPE_PAL,
0215 .ranges = tuner_alps_tsb_1_ranges,
0216 .count = ARRAY_SIZE(tuner_alps_tsb_1_ranges),
0217 },
0218 };
0219
0220
0221
0222 static struct tuner_range tuner_alps_tsb_5_pal_ranges[] = {
0223 { 16 * 133.25 , 0x8e, 0x01, },
0224 { 16 * 351.25 , 0x8e, 0x02, },
0225 { 16 * 999.99 , 0x8e, 0x08, },
0226 };
0227
0228 static struct tuner_params tuner_alps_tsbb5_params[] = {
0229 {
0230 .type = TUNER_PARAM_TYPE_PAL,
0231 .ranges = tuner_alps_tsb_5_pal_ranges,
0232 .count = ARRAY_SIZE(tuner_alps_tsb_5_pal_ranges),
0233 },
0234 };
0235
0236
0237
0238 static struct tuner_params tuner_alps_tsbe5_params[] = {
0239 {
0240 .type = TUNER_PARAM_TYPE_PAL,
0241 .ranges = tuner_alps_tsb_5_pal_ranges,
0242 .count = ARRAY_SIZE(tuner_alps_tsb_5_pal_ranges),
0243 },
0244 };
0245
0246
0247
0248 static struct tuner_params tuner_alps_tsbc5_params[] = {
0249 {
0250 .type = TUNER_PARAM_TYPE_PAL,
0251 .ranges = tuner_alps_tsb_5_pal_ranges,
0252 .count = ARRAY_SIZE(tuner_alps_tsb_5_pal_ranges),
0253 },
0254 };
0255
0256
0257
0258 static struct tuner_range tuner_lg_pal_ranges[] = {
0259 { 16 * 170.00 , 0x8e, 0xa0, },
0260 { 16 * 450.00 , 0x8e, 0x90, },
0261 { 16 * 999.99 , 0x8e, 0x30, },
0262 };
0263
0264 static struct tuner_params tuner_temic_4006fh5_params[] = {
0265 {
0266 .type = TUNER_PARAM_TYPE_PAL,
0267 .ranges = tuner_lg_pal_ranges,
0268 .count = ARRAY_SIZE(tuner_lg_pal_ranges),
0269 },
0270 };
0271
0272
0273
0274 static struct tuner_range tuner_alps_tshc6_ntsc_ranges[] = {
0275 { 16 * 137.25 , 0x8e, 0x14, },
0276 { 16 * 385.25 , 0x8e, 0x12, },
0277 { 16 * 999.99 , 0x8e, 0x11, },
0278 };
0279
0280 static struct tuner_params tuner_alps_tshc6_params[] = {
0281 {
0282 .type = TUNER_PARAM_TYPE_NTSC,
0283 .ranges = tuner_alps_tshc6_ntsc_ranges,
0284 .count = ARRAY_SIZE(tuner_alps_tshc6_ntsc_ranges),
0285 },
0286 };
0287
0288
0289
0290 static struct tuner_range tuner_temic_pal_dk_ranges[] = {
0291 { 16 * 168.25 , 0x8e, 0xa0, },
0292 { 16 * 456.25 , 0x8e, 0x90, },
0293 { 16 * 999.99 , 0x8e, 0x30, },
0294 };
0295
0296 static struct tuner_params tuner_temic_pal_dk_params[] = {
0297 {
0298 .type = TUNER_PARAM_TYPE_PAL,
0299 .ranges = tuner_temic_pal_dk_ranges,
0300 .count = ARRAY_SIZE(tuner_temic_pal_dk_ranges),
0301 },
0302 };
0303
0304
0305
0306 static struct tuner_range tuner_philips_ntsc_m_ranges[] = {
0307 { 16 * 160.00 , 0x8e, 0xa0, },
0308 { 16 * 454.00 , 0x8e, 0x90, },
0309 { 16 * 999.99 , 0x8e, 0x30, },
0310 };
0311
0312 static struct tuner_params tuner_philips_ntsc_m_params[] = {
0313 {
0314 .type = TUNER_PARAM_TYPE_NTSC,
0315 .ranges = tuner_philips_ntsc_m_ranges,
0316 .count = ARRAY_SIZE(tuner_philips_ntsc_m_ranges),
0317 },
0318 };
0319
0320
0321
0322 static struct tuner_range tuner_temic_40x6f_5_pal_ranges[] = {
0323 { 16 * 169.00 , 0x8e, 0xa0, },
0324 { 16 * 454.00 , 0x8e, 0x90, },
0325 { 16 * 999.99 , 0x8e, 0x30, },
0326 };
0327
0328 static struct tuner_params tuner_temic_4066fy5_pal_i_params[] = {
0329 {
0330 .type = TUNER_PARAM_TYPE_PAL,
0331 .ranges = tuner_temic_40x6f_5_pal_ranges,
0332 .count = ARRAY_SIZE(tuner_temic_40x6f_5_pal_ranges),
0333 },
0334 };
0335
0336
0337
0338 static struct tuner_params tuner_temic_4006fn5_multi_params[] = {
0339 {
0340 .type = TUNER_PARAM_TYPE_PAL,
0341 .ranges = tuner_temic_40x6f_5_pal_ranges,
0342 .count = ARRAY_SIZE(tuner_temic_40x6f_5_pal_ranges),
0343 },
0344 };
0345
0346
0347
0348
0349 static struct tuner_range tuner_temic_4009f_5_pal_ranges[] = {
0350 { 16 * 141.00 , 0x8e, 0xa0, },
0351 { 16 * 464.00 , 0x8e, 0x90, },
0352 { 16 * 999.99 , 0x8e, 0x30, },
0353 };
0354
0355 static struct tuner_params tuner_temic_4009f_5_params[] = {
0356 {
0357 .type = TUNER_PARAM_TYPE_PAL,
0358 .ranges = tuner_temic_4009f_5_pal_ranges,
0359 .count = ARRAY_SIZE(tuner_temic_4009f_5_pal_ranges),
0360 },
0361 };
0362
0363
0364
0365 static struct tuner_range tuner_temic_4x3x_f_5_ntsc_ranges[] = {
0366 { 16 * 158.00 , 0x8e, 0xa0, },
0367 { 16 * 453.00 , 0x8e, 0x90, },
0368 { 16 * 999.99 , 0x8e, 0x30, },
0369 };
0370
0371 static struct tuner_params tuner_temic_4039fr5_params[] = {
0372 {
0373 .type = TUNER_PARAM_TYPE_NTSC,
0374 .ranges = tuner_temic_4x3x_f_5_ntsc_ranges,
0375 .count = ARRAY_SIZE(tuner_temic_4x3x_f_5_ntsc_ranges),
0376 },
0377 };
0378
0379
0380
0381 static struct tuner_params tuner_temic_4046fm5_params[] = {
0382 {
0383 .type = TUNER_PARAM_TYPE_PAL,
0384 .ranges = tuner_temic_40x6f_5_pal_ranges,
0385 .count = ARRAY_SIZE(tuner_temic_40x6f_5_pal_ranges),
0386 },
0387 };
0388
0389
0390
0391 static struct tuner_params tuner_philips_pal_dk_params[] = {
0392 {
0393 .type = TUNER_PARAM_TYPE_PAL,
0394 .ranges = tuner_lg_pal_ranges,
0395 .count = ARRAY_SIZE(tuner_lg_pal_ranges),
0396 },
0397 };
0398
0399
0400
0401 static struct tuner_params tuner_philips_fq1216me_params[] = {
0402 {
0403 .type = TUNER_PARAM_TYPE_PAL,
0404 .ranges = tuner_lg_pal_ranges,
0405 .count = ARRAY_SIZE(tuner_lg_pal_ranges),
0406 .has_tda9887 = 1,
0407 .port1_active = 1,
0408 .port2_active = 1,
0409 .port2_invert_for_secam_lc = 1,
0410 },
0411 };
0412
0413
0414
0415 static struct tuner_params tuner_lg_pal_i_fm_params[] = {
0416 {
0417 .type = TUNER_PARAM_TYPE_PAL,
0418 .ranges = tuner_lg_pal_ranges,
0419 .count = ARRAY_SIZE(tuner_lg_pal_ranges),
0420 },
0421 };
0422
0423
0424
0425 static struct tuner_params tuner_lg_pal_i_params[] = {
0426 {
0427 .type = TUNER_PARAM_TYPE_PAL,
0428 .ranges = tuner_lg_pal_ranges,
0429 .count = ARRAY_SIZE(tuner_lg_pal_ranges),
0430 },
0431 };
0432
0433
0434
0435 static struct tuner_range tuner_lg_ntsc_fm_ranges[] = {
0436 { 16 * 210.00 , 0x8e, 0xa0, },
0437 { 16 * 497.00 , 0x8e, 0x90, },
0438 { 16 * 999.99 , 0x8e, 0x30, },
0439 };
0440
0441 static struct tuner_params tuner_lg_ntsc_fm_params[] = {
0442 {
0443 .type = TUNER_PARAM_TYPE_NTSC,
0444 .ranges = tuner_lg_ntsc_fm_ranges,
0445 .count = ARRAY_SIZE(tuner_lg_ntsc_fm_ranges),
0446 },
0447 };
0448
0449
0450
0451 static struct tuner_params tuner_lg_pal_fm_params[] = {
0452 {
0453 .type = TUNER_PARAM_TYPE_PAL,
0454 .ranges = tuner_lg_pal_ranges,
0455 .count = ARRAY_SIZE(tuner_lg_pal_ranges),
0456 },
0457 };
0458
0459
0460
0461 static struct tuner_params tuner_lg_pal_params[] = {
0462 {
0463 .type = TUNER_PARAM_TYPE_PAL,
0464 .ranges = tuner_lg_pal_ranges,
0465 .count = ARRAY_SIZE(tuner_lg_pal_ranges),
0466 },
0467 };
0468
0469
0470
0471
0472 static struct tuner_params tuner_temic_4009_fn5_multi_pal_fm_params[] = {
0473 {
0474 .type = TUNER_PARAM_TYPE_PAL,
0475 .ranges = tuner_temic_4009f_5_pal_ranges,
0476 .count = ARRAY_SIZE(tuner_temic_4009f_5_pal_ranges),
0477 },
0478 };
0479
0480
0481
0482 static struct tuner_range tuner_sharp_2u5jf5540_ntsc_ranges[] = {
0483 { 16 * 137.25 , 0x8e, 0x01, },
0484 { 16 * 317.25 , 0x8e, 0x02, },
0485 { 16 * 999.99 , 0x8e, 0x08, },
0486 };
0487
0488 static struct tuner_params tuner_sharp_2u5jf5540_params[] = {
0489 {
0490 .type = TUNER_PARAM_TYPE_NTSC,
0491 .ranges = tuner_sharp_2u5jf5540_ntsc_ranges,
0492 .count = ARRAY_SIZE(tuner_sharp_2u5jf5540_ntsc_ranges),
0493 },
0494 };
0495
0496
0497
0498 static struct tuner_range tuner_samsung_pal_tcpm9091pd27_ranges[] = {
0499 { 16 * 169 , 0x8e, 0xa0, },
0500 { 16 * 464 , 0x8e, 0x90, },
0501 { 16 * 999.99 , 0x8e, 0x30, },
0502 };
0503
0504 static struct tuner_params tuner_samsung_pal_tcpm9091pd27_params[] = {
0505 {
0506 .type = TUNER_PARAM_TYPE_PAL,
0507 .ranges = tuner_samsung_pal_tcpm9091pd27_ranges,
0508 .count = ARRAY_SIZE(tuner_samsung_pal_tcpm9091pd27_ranges),
0509 },
0510 };
0511
0512
0513
0514 static struct tuner_params tuner_temic_4106fh5_params[] = {
0515 {
0516 .type = TUNER_PARAM_TYPE_PAL,
0517 .ranges = tuner_temic_4009f_5_pal_ranges,
0518 .count = ARRAY_SIZE(tuner_temic_4009f_5_pal_ranges),
0519 },
0520 };
0521
0522
0523
0524 static struct tuner_params tuner_temic_4012fy5_params[] = {
0525 {
0526 .type = TUNER_PARAM_TYPE_PAL,
0527 .ranges = tuner_temic_pal_ranges,
0528 .count = ARRAY_SIZE(tuner_temic_pal_ranges),
0529 },
0530 };
0531
0532
0533
0534 static struct tuner_params tuner_temic_4136_fy5_params[] = {
0535 {
0536 .type = TUNER_PARAM_TYPE_NTSC,
0537 .ranges = tuner_temic_4x3x_f_5_ntsc_ranges,
0538 .count = ARRAY_SIZE(tuner_temic_4x3x_f_5_ntsc_ranges),
0539 },
0540 };
0541
0542
0543
0544 static struct tuner_range tuner_lg_new_tapc_ranges[] = {
0545 { 16 * 170.00 , 0x8e, 0x01, },
0546 { 16 * 450.00 , 0x8e, 0x02, },
0547 { 16 * 999.99 , 0x8e, 0x08, },
0548 };
0549
0550 static struct tuner_params tuner_lg_pal_new_tapc_params[] = {
0551 {
0552 .type = TUNER_PARAM_TYPE_PAL,
0553 .ranges = tuner_lg_new_tapc_ranges,
0554 .count = ARRAY_SIZE(tuner_lg_new_tapc_ranges),
0555 },
0556 };
0557
0558
0559
0560 static struct tuner_range tuner_fm1216me_mk3_pal_ranges[] = {
0561 { 16 * 158.00 , 0x8e, 0x01, },
0562 { 16 * 442.00 , 0x8e, 0x02, },
0563 { 16 * 999.99 , 0x8e, 0x04, },
0564 };
0565
0566 static struct tuner_params tuner_fm1216me_mk3_params[] = {
0567 {
0568 .type = TUNER_PARAM_TYPE_PAL,
0569 .ranges = tuner_fm1216me_mk3_pal_ranges,
0570 .count = ARRAY_SIZE(tuner_fm1216me_mk3_pal_ranges),
0571 .cb_first_if_lower_freq = 1,
0572 .has_tda9887 = 1,
0573 .port1_active = 1,
0574 .port2_active = 1,
0575 .port2_invert_for_secam_lc = 1,
0576 .port1_fm_high_sensitivity = 1,
0577 .default_top_mid = -2,
0578 .default_top_secam_mid = -2,
0579 .default_top_secam_high = -2,
0580 },
0581 };
0582
0583
0584
0585 static struct tuner_range tuner_fm1216mk5_pal_ranges[] = {
0586 { 16 * 158.00 , 0xce, 0x01, },
0587 { 16 * 441.00 , 0xce, 0x02, },
0588 { 16 * 864.00 , 0xce, 0x04, },
0589 };
0590
0591 static struct tuner_params tuner_fm1216mk5_params[] = {
0592 {
0593 .type = TUNER_PARAM_TYPE_PAL,
0594 .ranges = tuner_fm1216mk5_pal_ranges,
0595 .count = ARRAY_SIZE(tuner_fm1216mk5_pal_ranges),
0596 .cb_first_if_lower_freq = 1,
0597 .has_tda9887 = 1,
0598 .port1_active = 1,
0599 .port2_active = 1,
0600 .port2_invert_for_secam_lc = 1,
0601 .port1_fm_high_sensitivity = 1,
0602 .default_top_mid = -2,
0603 .default_top_secam_mid = -2,
0604 .default_top_secam_high = -2,
0605 },
0606 };
0607
0608
0609
0610 static struct tuner_params tuner_lg_ntsc_new_tapc_params[] = {
0611 {
0612 .type = TUNER_PARAM_TYPE_NTSC,
0613 .ranges = tuner_lg_new_tapc_ranges,
0614 .count = ARRAY_SIZE(tuner_lg_new_tapc_ranges),
0615 },
0616 };
0617
0618
0619
0620
0621 static struct tuner_params tuner_hitachi_ntsc_params[] = {
0622 {
0623 .type = TUNER_PARAM_TYPE_NTSC,
0624 .ranges = tuner_lg_new_tapc_ranges,
0625 .count = ARRAY_SIZE(tuner_lg_new_tapc_ranges),
0626 },
0627 };
0628
0629
0630
0631 static struct tuner_range tuner_philips_pal_mk_pal_ranges[] = {
0632 { 16 * 140.25 , 0x8e, 0x01, },
0633 { 16 * 463.25 , 0x8e, 0xc2, },
0634 { 16 * 999.99 , 0x8e, 0xcf, },
0635 };
0636
0637 static struct tuner_params tuner_philips_pal_mk_params[] = {
0638 {
0639 .type = TUNER_PARAM_TYPE_PAL,
0640 .ranges = tuner_philips_pal_mk_pal_ranges,
0641 .count = ARRAY_SIZE(tuner_philips_pal_mk_pal_ranges),
0642 },
0643 };
0644
0645
0646
0647 static struct tuner_range tuner_philips_fcv1236d_ntsc_ranges[] = {
0648 { 16 * 157.25 , 0x8e, 0xa2, },
0649 { 16 * 451.25 , 0x8e, 0x92, },
0650 { 16 * 999.99 , 0x8e, 0x32, },
0651 };
0652
0653 static struct tuner_range tuner_philips_fcv1236d_atsc_ranges[] = {
0654 { 16 * 159.00 , 0x8e, 0xa0, },
0655 { 16 * 453.00 , 0x8e, 0x90, },
0656 { 16 * 999.99 , 0x8e, 0x30, },
0657 };
0658
0659 static struct tuner_params tuner_philips_fcv1236d_params[] = {
0660 {
0661 .type = TUNER_PARAM_TYPE_NTSC,
0662 .ranges = tuner_philips_fcv1236d_ntsc_ranges,
0663 .count = ARRAY_SIZE(tuner_philips_fcv1236d_ntsc_ranges),
0664 },
0665 {
0666 .type = TUNER_PARAM_TYPE_DIGITAL,
0667 .ranges = tuner_philips_fcv1236d_atsc_ranges,
0668 .count = ARRAY_SIZE(tuner_philips_fcv1236d_atsc_ranges),
0669 .iffreq = 16 * 44.00,
0670 },
0671 };
0672
0673
0674
0675 static struct tuner_range tuner_fm1236_mk3_ntsc_ranges[] = {
0676 { 16 * 160.00 , 0x8e, 0x01, },
0677 { 16 * 442.00 , 0x8e, 0x02, },
0678 { 16 * 999.99 , 0x8e, 0x04, },
0679 };
0680
0681 static struct tuner_params tuner_fm1236_mk3_params[] = {
0682 {
0683 .type = TUNER_PARAM_TYPE_NTSC,
0684 .ranges = tuner_fm1236_mk3_ntsc_ranges,
0685 .count = ARRAY_SIZE(tuner_fm1236_mk3_ntsc_ranges),
0686 .cb_first_if_lower_freq = 1,
0687 .has_tda9887 = 1,
0688 .port1_active = 1,
0689 .port2_active = 1,
0690 .port1_fm_high_sensitivity = 1,
0691 },
0692 };
0693
0694
0695
0696 static struct tuner_params tuner_philips_4in1_params[] = {
0697 {
0698 .type = TUNER_PARAM_TYPE_NTSC,
0699 .ranges = tuner_fm1236_mk3_ntsc_ranges,
0700 .count = ARRAY_SIZE(tuner_fm1236_mk3_ntsc_ranges),
0701 },
0702 };
0703
0704
0705
0706 static struct tuner_params tuner_microtune_4049_fm5_params[] = {
0707 {
0708 .type = TUNER_PARAM_TYPE_PAL,
0709 .ranges = tuner_temic_4009f_5_pal_ranges,
0710 .count = ARRAY_SIZE(tuner_temic_4009f_5_pal_ranges),
0711 .has_tda9887 = 1,
0712 .port1_invert_for_secam_lc = 1,
0713 .default_pll_gating_18 = 1,
0714 .fm_gain_normal=1,
0715 .radio_if = 1,
0716 },
0717 };
0718
0719
0720
0721 static struct tuner_range tuner_panasonic_vp27_ntsc_ranges[] = {
0722 { 16 * 160.00 , 0xce, 0x01, },
0723 { 16 * 454.00 , 0xce, 0x02, },
0724 { 16 * 999.99 , 0xce, 0x08, },
0725 };
0726
0727 static struct tuner_params tuner_panasonic_vp27_params[] = {
0728 {
0729 .type = TUNER_PARAM_TYPE_NTSC,
0730 .ranges = tuner_panasonic_vp27_ntsc_ranges,
0731 .count = ARRAY_SIZE(tuner_panasonic_vp27_ntsc_ranges),
0732 .has_tda9887 = 1,
0733 .intercarrier_mode = 1,
0734 .default_top_low = -3,
0735 .default_top_mid = -3,
0736 .default_top_high = -3,
0737 },
0738 };
0739
0740
0741
0742 static struct tuner_range tuner_tnf_8831bgff_pal_ranges[] = {
0743 { 16 * 161.25 , 0x8e, 0xa0, },
0744 { 16 * 463.25 , 0x8e, 0x90, },
0745 { 16 * 999.99 , 0x8e, 0x30, },
0746 };
0747
0748 static struct tuner_params tuner_tnf_8831bgff_params[] = {
0749 {
0750 .type = TUNER_PARAM_TYPE_PAL,
0751 .ranges = tuner_tnf_8831bgff_pal_ranges,
0752 .count = ARRAY_SIZE(tuner_tnf_8831bgff_pal_ranges),
0753 },
0754 };
0755
0756
0757
0758 static struct tuner_range tuner_microtune_4042fi5_ntsc_ranges[] = {
0759 { 16 * 162.00 , 0x8e, 0xa2, },
0760 { 16 * 457.00 , 0x8e, 0x94, },
0761 { 16 * 999.99 , 0x8e, 0x31, },
0762 };
0763
0764 static struct tuner_range tuner_microtune_4042fi5_atsc_ranges[] = {
0765 { 16 * 162.00 , 0x8e, 0xa1, },
0766 { 16 * 457.00 , 0x8e, 0x91, },
0767 { 16 * 999.99 , 0x8e, 0x31, },
0768 };
0769
0770 static struct tuner_params tuner_microtune_4042fi5_params[] = {
0771 {
0772 .type = TUNER_PARAM_TYPE_NTSC,
0773 .ranges = tuner_microtune_4042fi5_ntsc_ranges,
0774 .count = ARRAY_SIZE(tuner_microtune_4042fi5_ntsc_ranges),
0775 },
0776 {
0777 .type = TUNER_PARAM_TYPE_DIGITAL,
0778 .ranges = tuner_microtune_4042fi5_atsc_ranges,
0779 .count = ARRAY_SIZE(tuner_microtune_4042fi5_atsc_ranges),
0780 .iffreq = 16 * 44.00 ,
0781 },
0782 };
0783
0784
0785
0786
0787 static struct tuner_range tuner_tcl_2002n_ntsc_ranges[] = {
0788 { 16 * 172.00 , 0x8e, 0x01, },
0789 { 16 * 448.00 , 0x8e, 0x02, },
0790 { 16 * 999.99 , 0x8e, 0x08, },
0791 };
0792
0793 static struct tuner_params tuner_tcl_2002n_params[] = {
0794 {
0795 .type = TUNER_PARAM_TYPE_NTSC,
0796 .ranges = tuner_tcl_2002n_ntsc_ranges,
0797 .count = ARRAY_SIZE(tuner_tcl_2002n_ntsc_ranges),
0798 .cb_first_if_lower_freq = 1,
0799 },
0800 };
0801
0802
0803
0804 static struct tuner_params tuner_philips_fm1256_ih3_params[] = {
0805 {
0806 .type = TUNER_PARAM_TYPE_PAL,
0807 .ranges = tuner_fm1236_mk3_ntsc_ranges,
0808 .count = ARRAY_SIZE(tuner_fm1236_mk3_ntsc_ranges),
0809 .radio_if = 1,
0810 },
0811 };
0812
0813
0814
0815
0816 static struct tuner_range tuner_thomson_dtt7610_ntsc_ranges[] = {
0817 { 16 * 157.25 , 0x8e, 0x39, },
0818 { 16 * 454.00 , 0x8e, 0x3a, },
0819 { 16 * 999.99 , 0x8e, 0x3c, },
0820 };
0821
0822 static struct tuner_params tuner_thomson_dtt7610_params[] = {
0823 {
0824 .type = TUNER_PARAM_TYPE_NTSC,
0825 .ranges = tuner_thomson_dtt7610_ntsc_ranges,
0826 .count = ARRAY_SIZE(tuner_thomson_dtt7610_ntsc_ranges),
0827 },
0828 {
0829 .type = TUNER_PARAM_TYPE_DIGITAL,
0830 .ranges = tuner_thomson_dtt7610_ntsc_ranges,
0831 .count = ARRAY_SIZE(tuner_thomson_dtt7610_ntsc_ranges),
0832 .iffreq = 16 * 44.00 ,
0833 },
0834 };
0835
0836
0837
0838 static struct tuner_range tuner_philips_fq1286_ntsc_ranges[] = {
0839 { 16 * 160.00 , 0x8e, 0x41, },
0840 { 16 * 454.00 , 0x8e, 0x42, },
0841 { 16 * 999.99 , 0x8e, 0x04, },
0842 };
0843
0844 static struct tuner_params tuner_philips_fq1286_params[] = {
0845 {
0846 .type = TUNER_PARAM_TYPE_NTSC,
0847 .ranges = tuner_philips_fq1286_ntsc_ranges,
0848 .count = ARRAY_SIZE(tuner_philips_fq1286_ntsc_ranges),
0849 },
0850 };
0851
0852
0853
0854 static struct tuner_range tuner_tcl_2002mb_pal_ranges[] = {
0855 { 16 * 170.00 , 0xce, 0x01, },
0856 { 16 * 450.00 , 0xce, 0x02, },
0857 { 16 * 999.99 , 0xce, 0x08, },
0858 };
0859
0860 static struct tuner_params tuner_tcl_2002mb_params[] = {
0861 {
0862 .type = TUNER_PARAM_TYPE_PAL,
0863 .ranges = tuner_tcl_2002mb_pal_ranges,
0864 .count = ARRAY_SIZE(tuner_tcl_2002mb_pal_ranges),
0865 },
0866 };
0867
0868
0869
0870 static struct tuner_range tuner_philips_fq12_6a___mk4_pal_ranges[] = {
0871 { 16 * 160.00 , 0xce, 0x01, },
0872 { 16 * 442.00 , 0xce, 0x02, },
0873 { 16 * 999.99 , 0xce, 0x04, },
0874 };
0875
0876 static struct tuner_params tuner_philips_fq1216ame_mk4_params[] = {
0877 {
0878 .type = TUNER_PARAM_TYPE_PAL,
0879 .ranges = tuner_philips_fq12_6a___mk4_pal_ranges,
0880 .count = ARRAY_SIZE(tuner_philips_fq12_6a___mk4_pal_ranges),
0881 .has_tda9887 = 1,
0882 .port1_active = 1,
0883 .port2_invert_for_secam_lc = 1,
0884 .default_top_mid = -2,
0885 .default_top_secam_low = -2,
0886 .default_top_secam_mid = -2,
0887 .default_top_secam_high = -2,
0888 },
0889 };
0890
0891
0892
0893 static struct tuner_params tuner_philips_fq1236a_mk4_params[] = {
0894 {
0895 .type = TUNER_PARAM_TYPE_NTSC,
0896 .ranges = tuner_fm1236_mk3_ntsc_ranges,
0897 .count = ARRAY_SIZE(tuner_fm1236_mk3_ntsc_ranges),
0898 },
0899 };
0900
0901
0902
0903 static struct tuner_params tuner_ymec_tvf_8531mf_params[] = {
0904 {
0905 .type = TUNER_PARAM_TYPE_NTSC,
0906 .ranges = tuner_philips_ntsc_m_ranges,
0907 .count = ARRAY_SIZE(tuner_philips_ntsc_m_ranges),
0908 },
0909 };
0910
0911
0912
0913 static struct tuner_range tuner_ymec_tvf_5533mf_ntsc_ranges[] = {
0914 { 16 * 160.00 , 0x8e, 0x01, },
0915 { 16 * 454.00 , 0x8e, 0x02, },
0916 { 16 * 999.99 , 0x8e, 0x04, },
0917 };
0918
0919 static struct tuner_params tuner_ymec_tvf_5533mf_params[] = {
0920 {
0921 .type = TUNER_PARAM_TYPE_NTSC,
0922 .ranges = tuner_ymec_tvf_5533mf_ntsc_ranges,
0923 .count = ARRAY_SIZE(tuner_ymec_tvf_5533mf_ntsc_ranges),
0924 },
0925 };
0926
0927
0928
0929
0930
0931 static struct tuner_range tuner_thomson_dtt761x_ntsc_ranges[] = {
0932 { 16 * 145.25 , 0x8e, 0x39, },
0933 { 16 * 415.25 , 0x8e, 0x3a, },
0934 { 16 * 999.99 , 0x8e, 0x3c, },
0935 };
0936
0937 static struct tuner_range tuner_thomson_dtt761x_atsc_ranges[] = {
0938 { 16 * 147.00 , 0x8e, 0x39, },
0939 { 16 * 417.00 , 0x8e, 0x3a, },
0940 { 16 * 999.99 , 0x8e, 0x3c, },
0941 };
0942
0943 static struct tuner_params tuner_thomson_dtt761x_params[] = {
0944 {
0945 .type = TUNER_PARAM_TYPE_NTSC,
0946 .ranges = tuner_thomson_dtt761x_ntsc_ranges,
0947 .count = ARRAY_SIZE(tuner_thomson_dtt761x_ntsc_ranges),
0948 .has_tda9887 = 1,
0949 .fm_gain_normal = 1,
0950 .radio_if = 2,
0951 },
0952 {
0953 .type = TUNER_PARAM_TYPE_DIGITAL,
0954 .ranges = tuner_thomson_dtt761x_atsc_ranges,
0955 .count = ARRAY_SIZE(tuner_thomson_dtt761x_atsc_ranges),
0956 .iffreq = 16 * 44.00,
0957 },
0958 };
0959
0960
0961
0962 static struct tuner_range tuner_tena_9533_di_pal_ranges[] = {
0963 { 16 * 160.25 , 0x8e, 0x01, },
0964 { 16 * 464.25 , 0x8e, 0x02, },
0965 { 16 * 999.99 , 0x8e, 0x04, },
0966 };
0967
0968 static struct tuner_params tuner_tena_9533_di_params[] = {
0969 {
0970 .type = TUNER_PARAM_TYPE_PAL,
0971 .ranges = tuner_tena_9533_di_pal_ranges,
0972 .count = ARRAY_SIZE(tuner_tena_9533_di_pal_ranges),
0973 },
0974 };
0975
0976
0977
0978 static struct tuner_range tuner_tena_tnf_5337_ntsc_ranges[] = {
0979 { 16 * 166.25 , 0x86, 0x01, },
0980 { 16 * 466.25 , 0x86, 0x02, },
0981 { 16 * 999.99 , 0x86, 0x08, },
0982 };
0983
0984 static struct tuner_params tuner_tena_tnf_5337_params[] = {
0985 {
0986 .type = TUNER_PARAM_TYPE_NTSC,
0987 .ranges = tuner_tena_tnf_5337_ntsc_ranges,
0988 .count = ARRAY_SIZE(tuner_tena_tnf_5337_ntsc_ranges),
0989 },
0990 };
0991
0992
0993
0994 static struct tuner_range tuner_philips_fmd1216me_mk3_pal_ranges[] = {
0995 { 16 * 160.00 , 0x86, 0x51, },
0996 { 16 * 442.00 , 0x86, 0x52, },
0997 { 16 * 999.99 , 0x86, 0x54, },
0998 };
0999
1000 static struct tuner_range tuner_philips_fmd1216me_mk3_dvb_ranges[] = {
1001 { 16 * 143.87 , 0xbc, 0x41 },
1002 { 16 * 158.87 , 0xf4, 0x41 },
1003 { 16 * 329.87 , 0xbc, 0x42 },
1004 { 16 * 441.87 , 0xf4, 0x42 },
1005 { 16 * 625.87 , 0xbc, 0x44 },
1006 { 16 * 803.87 , 0xf4, 0x44 },
1007 { 16 * 999.99 , 0xfc, 0x44 },
1008 };
1009
1010 static struct tuner_params tuner_philips_fmd1216me_mk3_params[] = {
1011 {
1012 .type = TUNER_PARAM_TYPE_PAL,
1013 .ranges = tuner_philips_fmd1216me_mk3_pal_ranges,
1014 .count = ARRAY_SIZE(tuner_philips_fmd1216me_mk3_pal_ranges),
1015 .has_tda9887 = 1,
1016 .port1_active = 1,
1017 .port2_active = 1,
1018 .port2_fm_high_sensitivity = 1,
1019 .port2_invert_for_secam_lc = 1,
1020 .port1_set_for_fm_mono = 1,
1021 },
1022 {
1023 .type = TUNER_PARAM_TYPE_DIGITAL,
1024 .ranges = tuner_philips_fmd1216me_mk3_dvb_ranges,
1025 .count = ARRAY_SIZE(tuner_philips_fmd1216me_mk3_dvb_ranges),
1026 .iffreq = 16 * 36.125,
1027 },
1028 };
1029
1030 static struct tuner_params tuner_philips_fmd1216mex_mk3_params[] = {
1031 {
1032 .type = TUNER_PARAM_TYPE_PAL,
1033 .ranges = tuner_philips_fmd1216me_mk3_pal_ranges,
1034 .count = ARRAY_SIZE(tuner_philips_fmd1216me_mk3_pal_ranges),
1035 .has_tda9887 = 1,
1036 .port1_active = 1,
1037 .port2_active = 1,
1038 .port2_fm_high_sensitivity = 1,
1039 .port2_invert_for_secam_lc = 1,
1040 .port1_set_for_fm_mono = 1,
1041 .radio_if = 1,
1042 .fm_gain_normal = 1,
1043 },
1044 {
1045 .type = TUNER_PARAM_TYPE_DIGITAL,
1046 .ranges = tuner_philips_fmd1216me_mk3_dvb_ranges,
1047 .count = ARRAY_SIZE(tuner_philips_fmd1216me_mk3_dvb_ranges),
1048 .iffreq = 16 * 36.125,
1049 },
1050 };
1051
1052
1053
1054 static struct tuner_range tuner_tua6034_ntsc_ranges[] = {
1055 { 16 * 165.00 , 0x8e, 0x01 },
1056 { 16 * 450.00 , 0x8e, 0x02 },
1057 { 16 * 999.99 , 0x8e, 0x04 },
1058 };
1059
1060 static struct tuner_range tuner_tua6034_atsc_ranges[] = {
1061 { 16 * 165.00 , 0xce, 0x01 },
1062 { 16 * 450.00 , 0xce, 0x02 },
1063 { 16 * 999.99 , 0xce, 0x04 },
1064 };
1065
1066 static struct tuner_params tuner_lg_tdvs_h06xf_params[] = {
1067 {
1068 .type = TUNER_PARAM_TYPE_NTSC,
1069 .ranges = tuner_tua6034_ntsc_ranges,
1070 .count = ARRAY_SIZE(tuner_tua6034_ntsc_ranges),
1071 },
1072 {
1073 .type = TUNER_PARAM_TYPE_DIGITAL,
1074 .ranges = tuner_tua6034_atsc_ranges,
1075 .count = ARRAY_SIZE(tuner_tua6034_atsc_ranges),
1076 .iffreq = 16 * 44.00,
1077 },
1078 };
1079
1080
1081
1082 static struct tuner_range tuner_ymec_tvf66t5_b_dff_pal_ranges[] = {
1083 { 16 * 160.25 , 0x8e, 0x01, },
1084 { 16 * 464.25 , 0x8e, 0x02, },
1085 { 16 * 999.99 , 0x8e, 0x08, },
1086 };
1087
1088 static struct tuner_params tuner_ymec_tvf66t5_b_dff_params[] = {
1089 {
1090 .type = TUNER_PARAM_TYPE_PAL,
1091 .ranges = tuner_ymec_tvf66t5_b_dff_pal_ranges,
1092 .count = ARRAY_SIZE(tuner_ymec_tvf66t5_b_dff_pal_ranges),
1093 },
1094 };
1095
1096
1097
1098 static struct tuner_range tuner_lg_taln_ntsc_ranges[] = {
1099 { 16 * 137.25 , 0x8e, 0x01, },
1100 { 16 * 373.25 , 0x8e, 0x02, },
1101 { 16 * 999.99 , 0x8e, 0x08, },
1102 };
1103
1104 static struct tuner_range tuner_lg_taln_pal_secam_ranges[] = {
1105 { 16 * 150.00 , 0x8e, 0x01, },
1106 { 16 * 425.00 , 0x8e, 0x02, },
1107 { 16 * 999.99 , 0x8e, 0x08, },
1108 };
1109
1110 static struct tuner_params tuner_lg_taln_params[] = {
1111 {
1112 .type = TUNER_PARAM_TYPE_NTSC,
1113 .ranges = tuner_lg_taln_ntsc_ranges,
1114 .count = ARRAY_SIZE(tuner_lg_taln_ntsc_ranges),
1115 },{
1116 .type = TUNER_PARAM_TYPE_PAL,
1117 .ranges = tuner_lg_taln_pal_secam_ranges,
1118 .count = ARRAY_SIZE(tuner_lg_taln_pal_secam_ranges),
1119 },
1120 };
1121
1122
1123
1124 static struct tuner_range tuner_philips_td1316_pal_ranges[] = {
1125 { 16 * 160.00 , 0xc8, 0xa1, },
1126 { 16 * 442.00 , 0xc8, 0xa2, },
1127 { 16 * 999.99 , 0xc8, 0xa4, },
1128 };
1129
1130 static struct tuner_range tuner_philips_td1316_dvb_ranges[] = {
1131 { 16 * 93.834 , 0xca, 0x60, },
1132 { 16 * 123.834 , 0xca, 0xa0, },
1133 { 16 * 163.834 , 0xca, 0xc0, },
1134 { 16 * 253.834 , 0xca, 0x60, },
1135 { 16 * 383.834 , 0xca, 0xa0, },
1136 { 16 * 443.834 , 0xca, 0xc0, },
1137 { 16 * 583.834 , 0xca, 0x60, },
1138 { 16 * 793.834 , 0xca, 0xa0, },
1139 { 16 * 999.999 , 0xca, 0xe0, },
1140 };
1141
1142 static struct tuner_params tuner_philips_td1316_params[] = {
1143 {
1144 .type = TUNER_PARAM_TYPE_PAL,
1145 .ranges = tuner_philips_td1316_pal_ranges,
1146 .count = ARRAY_SIZE(tuner_philips_td1316_pal_ranges),
1147 },
1148 {
1149 .type = TUNER_PARAM_TYPE_DIGITAL,
1150 .ranges = tuner_philips_td1316_dvb_ranges,
1151 .count = ARRAY_SIZE(tuner_philips_td1316_dvb_ranges),
1152 .iffreq = 16 * 36.166667 ,
1153 },
1154 };
1155
1156
1157
1158 static struct tuner_range tuner_tuv1236d_ntsc_ranges[] = {
1159 { 16 * 157.25 , 0xce, 0x01, },
1160 { 16 * 454.00 , 0xce, 0x02, },
1161 { 16 * 999.99 , 0xce, 0x04, },
1162 };
1163
1164 static struct tuner_range tuner_tuv1236d_atsc_ranges[] = {
1165 { 16 * 157.25 , 0xc6, 0x41, },
1166 { 16 * 454.00 , 0xc6, 0x42, },
1167 { 16 * 999.99 , 0xc6, 0x44, },
1168 };
1169
1170 static struct tuner_params tuner_tuv1236d_params[] = {
1171 {
1172 .type = TUNER_PARAM_TYPE_NTSC,
1173 .ranges = tuner_tuv1236d_ntsc_ranges,
1174 .count = ARRAY_SIZE(tuner_tuv1236d_ntsc_ranges),
1175 },
1176 {
1177 .type = TUNER_PARAM_TYPE_DIGITAL,
1178 .ranges = tuner_tuv1236d_atsc_ranges,
1179 .count = ARRAY_SIZE(tuner_tuv1236d_atsc_ranges),
1180 .iffreq = 16 * 44.00,
1181 },
1182 };
1183
1184
1185
1186
1187
1188
1189
1190 static struct tuner_range tuner_tnf_5335_d_if_pal_ranges[] = {
1191 { 16 * 168.25 , 0x8e, 0x01, },
1192 { 16 * 471.25 , 0x8e, 0x02, },
1193 { 16 * 999.99 , 0x8e, 0x08, },
1194 };
1195
1196 static struct tuner_range tuner_tnf_5335mf_ntsc_ranges[] = {
1197 { 16 * 169.25 , 0x8e, 0x01, },
1198 { 16 * 469.25 , 0x8e, 0x02, },
1199 { 16 * 999.99 , 0x8e, 0x08, },
1200 };
1201
1202 static struct tuner_params tuner_tnf_5335mf_params[] = {
1203 {
1204 .type = TUNER_PARAM_TYPE_NTSC,
1205 .ranges = tuner_tnf_5335mf_ntsc_ranges,
1206 .count = ARRAY_SIZE(tuner_tnf_5335mf_ntsc_ranges),
1207 },
1208 {
1209 .type = TUNER_PARAM_TYPE_PAL,
1210 .ranges = tuner_tnf_5335_d_if_pal_ranges,
1211 .count = ARRAY_SIZE(tuner_tnf_5335_d_if_pal_ranges),
1212 },
1213 };
1214
1215
1216
1217
1218
1219 static struct tuner_range tuner_samsung_tcpn_2121p30a_ntsc_ranges[] = {
1220 { 16 * 130.00 , 0xce, 0x01 + 4, },
1221 { 16 * 364.50 , 0xce, 0x02 + 4, },
1222 { 16 * 999.99 , 0xce, 0x08 + 4, },
1223 };
1224
1225 static struct tuner_params tuner_samsung_tcpn_2121p30a_params[] = {
1226 {
1227 .type = TUNER_PARAM_TYPE_NTSC,
1228 .ranges = tuner_samsung_tcpn_2121p30a_ntsc_ranges,
1229 .count = ARRAY_SIZE(tuner_samsung_tcpn_2121p30a_ntsc_ranges),
1230 },
1231 };
1232
1233
1234
1235 static struct tuner_range tuner_thomson_fe6600_pal_ranges[] = {
1236 { 16 * 160.00 , 0xfe, 0x11, },
1237 { 16 * 442.00 , 0xf6, 0x12, },
1238 { 16 * 999.99 , 0xf6, 0x18, },
1239 };
1240
1241 static struct tuner_range tuner_thomson_fe6600_dvb_ranges[] = {
1242 { 16 * 250.00 , 0xb4, 0x12, },
1243 { 16 * 455.00 , 0xfe, 0x11, },
1244 { 16 * 775.50 , 0xbc, 0x18, },
1245 { 16 * 999.99 , 0xf4, 0x18, },
1246 };
1247
1248 static struct tuner_params tuner_thomson_fe6600_params[] = {
1249 {
1250 .type = TUNER_PARAM_TYPE_PAL,
1251 .ranges = tuner_thomson_fe6600_pal_ranges,
1252 .count = ARRAY_SIZE(tuner_thomson_fe6600_pal_ranges),
1253 },
1254 {
1255 .type = TUNER_PARAM_TYPE_DIGITAL,
1256 .ranges = tuner_thomson_fe6600_dvb_ranges,
1257 .count = ARRAY_SIZE(tuner_thomson_fe6600_dvb_ranges),
1258 .iffreq = 16 * 36.125 ,
1259 },
1260 };
1261
1262
1263
1264
1265 static struct tuner_range tuner_samsung_tcpg_6121p30a_pal_ranges[] = {
1266 { 16 * 146.25 , 0xce, 0x01 + 4, },
1267 { 16 * 428.50 , 0xce, 0x02 + 4, },
1268 { 16 * 999.99 , 0xce, 0x08 + 4, },
1269 };
1270
1271 static struct tuner_params tuner_samsung_tcpg_6121p30a_params[] = {
1272 {
1273 .type = TUNER_PARAM_TYPE_PAL,
1274 .ranges = tuner_samsung_tcpg_6121p30a_pal_ranges,
1275 .count = ARRAY_SIZE(tuner_samsung_tcpg_6121p30a_pal_ranges),
1276 .has_tda9887 = 1,
1277 .port1_active = 1,
1278 .port2_active = 1,
1279 .port2_invert_for_secam_lc = 1,
1280 },
1281 };
1282
1283
1284
1285 static struct tuner_range tuner_tcl_mf02gip_5n_ntsc_ranges[] = {
1286 { 16 * 172.00 , 0x8e, 0x01, },
1287 { 16 * 448.00 , 0x8e, 0x02, },
1288 { 16 * 999.99 , 0x8e, 0x04, },
1289 };
1290
1291 static struct tuner_params tuner_tcl_mf02gip_5n_params[] = {
1292 {
1293 .type = TUNER_PARAM_TYPE_NTSC,
1294 .ranges = tuner_tcl_mf02gip_5n_ntsc_ranges,
1295 .count = ARRAY_SIZE(tuner_tcl_mf02gip_5n_ntsc_ranges),
1296 .cb_first_if_lower_freq = 1,
1297 },
1298 };
1299
1300
1301
1302
1303 static struct tuner_params tuner_fq1216lme_mk3_params[] = {
1304 {
1305 .type = TUNER_PARAM_TYPE_PAL,
1306 .ranges = tuner_fm1216me_mk3_pal_ranges,
1307 .count = ARRAY_SIZE(tuner_fm1216me_mk3_pal_ranges),
1308 .cb_first_if_lower_freq = 1,
1309 .has_tda9887 = 1,
1310 .port1_active = 1,
1311 .port2_active = 1,
1312 .port2_invert_for_secam_lc = 1,
1313 .default_top_low = 4,
1314 .default_top_mid = 4,
1315 .default_top_high = 4,
1316 .default_top_secam_low = 4,
1317 .default_top_secam_mid = 4,
1318 .default_top_secam_high = 4,
1319 },
1320 };
1321
1322
1323
1324 static struct tuner_range tuner_partsnic_pti_5nf05_ranges[] = {
1325
1326
1327 { 16 * 133.25 , 0x8e, 0x01, },
1328 { 16 * 367.25 , 0x8e, 0x02, },
1329 { 16 * 999.99 , 0x8e, 0x08, },
1330 };
1331
1332 static struct tuner_params tuner_partsnic_pti_5nf05_params[] = {
1333 {
1334 .type = TUNER_PARAM_TYPE_NTSC,
1335 .ranges = tuner_partsnic_pti_5nf05_ranges,
1336 .count = ARRAY_SIZE(tuner_partsnic_pti_5nf05_ranges),
1337 .cb_first_if_lower_freq = 1,
1338 },
1339 };
1340
1341
1342
1343 static struct tuner_range tuner_cu1216l_ranges[] = {
1344 { 16 * 160.25 , 0xce, 0x01 },
1345 { 16 * 444.25 , 0xce, 0x02 },
1346 { 16 * 999.99 , 0xce, 0x04 },
1347 };
1348
1349 static struct tuner_params tuner_philips_cu1216l_params[] = {
1350 {
1351 .type = TUNER_PARAM_TYPE_DIGITAL,
1352 .ranges = tuner_cu1216l_ranges,
1353 .count = ARRAY_SIZE(tuner_cu1216l_ranges),
1354 .iffreq = 16 * 36.125,
1355 },
1356 };
1357
1358
1359
1360 static struct tuner_range tuner_sony_btf_pxn01z_ranges[] = {
1361 { 16 * 137.25 , 0x8e, 0x01, },
1362 { 16 * 367.25 , 0x8e, 0x02, },
1363 { 16 * 999.99 , 0x8e, 0x04, },
1364 };
1365
1366 static struct tuner_params tuner_sony_btf_pxn01z_params[] = {
1367 {
1368 .type = TUNER_PARAM_TYPE_NTSC,
1369 .ranges = tuner_sony_btf_pxn01z_ranges,
1370 .count = ARRAY_SIZE(tuner_sony_btf_pxn01z_ranges),
1371 },
1372 };
1373
1374
1375
1376 static struct tuner_params tuner_philips_fq1236_mk5_params[] = {
1377 {
1378 .type = TUNER_PARAM_TYPE_NTSC,
1379 .ranges = tuner_fm1236_mk3_ntsc_ranges,
1380 .count = ARRAY_SIZE(tuner_fm1236_mk3_ntsc_ranges),
1381 .has_tda9887 = 1,
1382 },
1383 };
1384
1385
1386
1387 static struct tuner_range tuner_sony_btf_pg472z_ranges[] = {
1388 { 16 * 144.25 , 0xc6, 0x01, },
1389 { 16 * 427.25 , 0xc6, 0x02, },
1390 { 16 * 999.99 , 0xc6, 0x04, },
1391 };
1392
1393 static struct tuner_params tuner_sony_btf_pg472z_params[] = {
1394 {
1395 .type = TUNER_PARAM_TYPE_PAL,
1396 .ranges = tuner_sony_btf_pg472z_ranges,
1397 .count = ARRAY_SIZE(tuner_sony_btf_pg472z_ranges),
1398 .has_tda9887 = 1,
1399 .port1_active = 1,
1400 .port2_invert_for_secam_lc = 1,
1401 },
1402 };
1403
1404
1405
1406
1407 static struct tuner_range tuner_sony_btf_pg467z_ranges[] = {
1408 { 16 * 220.25 , 0xc6, 0x01, },
1409 { 16 * 467.25 , 0xc6, 0x02, },
1410 { 16 * 999.99 , 0xc6, 0x04, },
1411 };
1412
1413 static struct tuner_params tuner_sony_btf_pg467z_params[] = {
1414 {
1415 .type = TUNER_PARAM_TYPE_NTSC,
1416 .ranges = tuner_sony_btf_pg467z_ranges,
1417 .count = ARRAY_SIZE(tuner_sony_btf_pg467z_ranges),
1418 },
1419 };
1420
1421
1422
1423 static struct tuner_range tuner_sony_btf_pg463z_ranges[] = {
1424 { 16 * 130.25 , 0xc6, 0x01, },
1425 { 16 * 364.25 , 0xc6, 0x02, },
1426 { 16 * 999.99 , 0xc6, 0x04, },
1427 };
1428
1429 static struct tuner_params tuner_sony_btf_pg463z_params[] = {
1430 {
1431 .type = TUNER_PARAM_TYPE_NTSC,
1432 .ranges = tuner_sony_btf_pg463z_ranges,
1433 .count = ARRAY_SIZE(tuner_sony_btf_pg463z_ranges),
1434 },
1435 };
1436
1437
1438
1439 struct tunertype tuners[] = {
1440
1441 [TUNER_TEMIC_PAL] = {
1442 .name = "Temic PAL (4002 FH5)",
1443 .params = tuner_temic_pal_params,
1444 .count = ARRAY_SIZE(tuner_temic_pal_params),
1445 },
1446 [TUNER_PHILIPS_PAL_I] = {
1447 .name = "Philips PAL_I (FI1246 and compatibles)",
1448 .params = tuner_philips_pal_i_params,
1449 .count = ARRAY_SIZE(tuner_philips_pal_i_params),
1450 },
1451 [TUNER_PHILIPS_NTSC] = {
1452 .name = "Philips NTSC (FI1236,FM1236 and compatibles)",
1453 .params = tuner_philips_ntsc_params,
1454 .count = ARRAY_SIZE(tuner_philips_ntsc_params),
1455 },
1456 [TUNER_PHILIPS_SECAM] = {
1457 .name = "Philips (SECAM+PAL_BG) (FI1216MF, FM1216MF, FR1216MF)",
1458 .params = tuner_philips_secam_params,
1459 .count = ARRAY_SIZE(tuner_philips_secam_params),
1460 },
1461 [TUNER_ABSENT] = {
1462 .name = "NoTuner",
1463 },
1464 [TUNER_PHILIPS_PAL] = {
1465 .name = "Philips PAL_BG (FI1216 and compatibles)",
1466 .params = tuner_philips_pal_params,
1467 .count = ARRAY_SIZE(tuner_philips_pal_params),
1468 },
1469 [TUNER_TEMIC_NTSC] = {
1470 .name = "Temic NTSC (4032 FY5)",
1471 .params = tuner_temic_ntsc_params,
1472 .count = ARRAY_SIZE(tuner_temic_ntsc_params),
1473 },
1474 [TUNER_TEMIC_PAL_I] = {
1475 .name = "Temic PAL_I (4062 FY5)",
1476 .params = tuner_temic_pal_i_params,
1477 .count = ARRAY_SIZE(tuner_temic_pal_i_params),
1478 },
1479 [TUNER_TEMIC_4036FY5_NTSC] = {
1480 .name = "Temic NTSC (4036 FY5)",
1481 .params = tuner_temic_4036fy5_ntsc_params,
1482 .count = ARRAY_SIZE(tuner_temic_4036fy5_ntsc_params),
1483 },
1484 [TUNER_ALPS_TSBH1_NTSC] = {
1485 .name = "Alps HSBH1",
1486 .params = tuner_alps_tsbh1_ntsc_params,
1487 .count = ARRAY_SIZE(tuner_alps_tsbh1_ntsc_params),
1488 },
1489
1490
1491 [TUNER_ALPS_TSBE1_PAL] = {
1492 .name = "Alps TSBE1",
1493 .params = tuner_alps_tsb_1_params,
1494 .count = ARRAY_SIZE(tuner_alps_tsb_1_params),
1495 },
1496 [TUNER_ALPS_TSBB5_PAL_I] = {
1497 .name = "Alps TSBB5",
1498 .params = tuner_alps_tsbb5_params,
1499 .count = ARRAY_SIZE(tuner_alps_tsbb5_params),
1500 },
1501 [TUNER_ALPS_TSBE5_PAL] = {
1502 .name = "Alps TSBE5",
1503 .params = tuner_alps_tsbe5_params,
1504 .count = ARRAY_SIZE(tuner_alps_tsbe5_params),
1505 },
1506 [TUNER_ALPS_TSBC5_PAL] = {
1507 .name = "Alps TSBC5",
1508 .params = tuner_alps_tsbc5_params,
1509 .count = ARRAY_SIZE(tuner_alps_tsbc5_params),
1510 },
1511 [TUNER_TEMIC_4006FH5_PAL] = {
1512 .name = "Temic PAL_BG (4006FH5)",
1513 .params = tuner_temic_4006fh5_params,
1514 .count = ARRAY_SIZE(tuner_temic_4006fh5_params),
1515 },
1516 [TUNER_ALPS_TSHC6_NTSC] = {
1517 .name = "Alps TSCH6",
1518 .params = tuner_alps_tshc6_params,
1519 .count = ARRAY_SIZE(tuner_alps_tshc6_params),
1520 },
1521 [TUNER_TEMIC_PAL_DK] = {
1522 .name = "Temic PAL_DK (4016 FY5)",
1523 .params = tuner_temic_pal_dk_params,
1524 .count = ARRAY_SIZE(tuner_temic_pal_dk_params),
1525 },
1526 [TUNER_PHILIPS_NTSC_M] = {
1527 .name = "Philips NTSC_M (MK2)",
1528 .params = tuner_philips_ntsc_m_params,
1529 .count = ARRAY_SIZE(tuner_philips_ntsc_m_params),
1530 },
1531 [TUNER_TEMIC_4066FY5_PAL_I] = {
1532 .name = "Temic PAL_I (4066 FY5)",
1533 .params = tuner_temic_4066fy5_pal_i_params,
1534 .count = ARRAY_SIZE(tuner_temic_4066fy5_pal_i_params),
1535 },
1536 [TUNER_TEMIC_4006FN5_MULTI_PAL] = {
1537 .name = "Temic PAL* auto (4006 FN5)",
1538 .params = tuner_temic_4006fn5_multi_params,
1539 .count = ARRAY_SIZE(tuner_temic_4006fn5_multi_params),
1540 },
1541
1542
1543 [TUNER_TEMIC_4009FR5_PAL] = {
1544 .name = "Temic PAL_BG (4009 FR5) or PAL_I (4069 FR5)",
1545 .params = tuner_temic_4009f_5_params,
1546 .count = ARRAY_SIZE(tuner_temic_4009f_5_params),
1547 },
1548 [TUNER_TEMIC_4039FR5_NTSC] = {
1549 .name = "Temic NTSC (4039 FR5)",
1550 .params = tuner_temic_4039fr5_params,
1551 .count = ARRAY_SIZE(tuner_temic_4039fr5_params),
1552 },
1553 [TUNER_TEMIC_4046FM5] = {
1554 .name = "Temic PAL/SECAM multi (4046 FM5)",
1555 .params = tuner_temic_4046fm5_params,
1556 .count = ARRAY_SIZE(tuner_temic_4046fm5_params),
1557 },
1558 [TUNER_PHILIPS_PAL_DK] = {
1559 .name = "Philips PAL_DK (FI1256 and compatibles)",
1560 .params = tuner_philips_pal_dk_params,
1561 .count = ARRAY_SIZE(tuner_philips_pal_dk_params),
1562 },
1563 [TUNER_PHILIPS_FQ1216ME] = {
1564 .name = "Philips PAL/SECAM multi (FQ1216ME)",
1565 .params = tuner_philips_fq1216me_params,
1566 .count = ARRAY_SIZE(tuner_philips_fq1216me_params),
1567 },
1568 [TUNER_LG_PAL_I_FM] = {
1569 .name = "LG PAL_I+FM (TAPC-I001D)",
1570 .params = tuner_lg_pal_i_fm_params,
1571 .count = ARRAY_SIZE(tuner_lg_pal_i_fm_params),
1572 },
1573 [TUNER_LG_PAL_I] = {
1574 .name = "LG PAL_I (TAPC-I701D)",
1575 .params = tuner_lg_pal_i_params,
1576 .count = ARRAY_SIZE(tuner_lg_pal_i_params),
1577 },
1578 [TUNER_LG_NTSC_FM] = {
1579 .name = "LG NTSC+FM (TPI8NSR01F)",
1580 .params = tuner_lg_ntsc_fm_params,
1581 .count = ARRAY_SIZE(tuner_lg_ntsc_fm_params),
1582 },
1583 [TUNER_LG_PAL_FM] = {
1584 .name = "LG PAL_BG+FM (TPI8PSB01D)",
1585 .params = tuner_lg_pal_fm_params,
1586 .count = ARRAY_SIZE(tuner_lg_pal_fm_params),
1587 },
1588 [TUNER_LG_PAL] = {
1589 .name = "LG PAL_BG (TPI8PSB11D)",
1590 .params = tuner_lg_pal_params,
1591 .count = ARRAY_SIZE(tuner_lg_pal_params),
1592 },
1593
1594
1595 [TUNER_TEMIC_4009FN5_MULTI_PAL_FM] = {
1596 .name = "Temic PAL* auto + FM (4009 FN5)",
1597 .params = tuner_temic_4009_fn5_multi_pal_fm_params,
1598 .count = ARRAY_SIZE(tuner_temic_4009_fn5_multi_pal_fm_params),
1599 },
1600 [TUNER_SHARP_2U5JF5540_NTSC] = {
1601 .name = "SHARP NTSC_JP (2U5JF5540)",
1602 .params = tuner_sharp_2u5jf5540_params,
1603 .count = ARRAY_SIZE(tuner_sharp_2u5jf5540_params),
1604 },
1605 [TUNER_Samsung_PAL_TCPM9091PD27] = {
1606 .name = "Samsung PAL TCPM9091PD27",
1607 .params = tuner_samsung_pal_tcpm9091pd27_params,
1608 .count = ARRAY_SIZE(tuner_samsung_pal_tcpm9091pd27_params),
1609 },
1610 [TUNER_MT2032] = {
1611 .name = "MT20xx universal",
1612 },
1613 [TUNER_TEMIC_4106FH5] = {
1614 .name = "Temic PAL_BG (4106 FH5)",
1615 .params = tuner_temic_4106fh5_params,
1616 .count = ARRAY_SIZE(tuner_temic_4106fh5_params),
1617 },
1618 [TUNER_TEMIC_4012FY5] = {
1619 .name = "Temic PAL_DK/SECAM_L (4012 FY5)",
1620 .params = tuner_temic_4012fy5_params,
1621 .count = ARRAY_SIZE(tuner_temic_4012fy5_params),
1622 },
1623 [TUNER_TEMIC_4136FY5] = {
1624 .name = "Temic NTSC (4136 FY5)",
1625 .params = tuner_temic_4136_fy5_params,
1626 .count = ARRAY_SIZE(tuner_temic_4136_fy5_params),
1627 },
1628 [TUNER_LG_PAL_NEW_TAPC] = {
1629 .name = "LG PAL (newer TAPC series)",
1630 .params = tuner_lg_pal_new_tapc_params,
1631 .count = ARRAY_SIZE(tuner_lg_pal_new_tapc_params),
1632 },
1633 [TUNER_PHILIPS_FM1216ME_MK3] = {
1634 .name = "Philips PAL/SECAM multi (FM1216ME MK3)",
1635 .params = tuner_fm1216me_mk3_params,
1636 .count = ARRAY_SIZE(tuner_fm1216me_mk3_params),
1637 },
1638 [TUNER_LG_NTSC_NEW_TAPC] = {
1639 .name = "LG NTSC (newer TAPC series)",
1640 .params = tuner_lg_ntsc_new_tapc_params,
1641 .count = ARRAY_SIZE(tuner_lg_ntsc_new_tapc_params),
1642 },
1643
1644
1645 [TUNER_HITACHI_NTSC] = {
1646 .name = "HITACHI V7-J180AT",
1647 .params = tuner_hitachi_ntsc_params,
1648 .count = ARRAY_SIZE(tuner_hitachi_ntsc_params),
1649 },
1650 [TUNER_PHILIPS_PAL_MK] = {
1651 .name = "Philips PAL_MK (FI1216 MK)",
1652 .params = tuner_philips_pal_mk_params,
1653 .count = ARRAY_SIZE(tuner_philips_pal_mk_params),
1654 },
1655 [TUNER_PHILIPS_FCV1236D] = {
1656 .name = "Philips FCV1236D ATSC/NTSC dual in",
1657 .params = tuner_philips_fcv1236d_params,
1658 .count = ARRAY_SIZE(tuner_philips_fcv1236d_params),
1659 .min = 16 * 53.00,
1660 .max = 16 * 803.00,
1661 .stepsize = 62500,
1662 },
1663 [TUNER_PHILIPS_FM1236_MK3] = {
1664 .name = "Philips NTSC MK3 (FM1236MK3 or FM1236/F)",
1665 .params = tuner_fm1236_mk3_params,
1666 .count = ARRAY_SIZE(tuner_fm1236_mk3_params),
1667 },
1668 [TUNER_PHILIPS_4IN1] = {
1669 .name = "Philips 4 in 1 (ATI TV Wonder Pro/Conexant)",
1670 .params = tuner_philips_4in1_params,
1671 .count = ARRAY_SIZE(tuner_philips_4in1_params),
1672 },
1673 [TUNER_MICROTUNE_4049FM5] = {
1674 .name = "Microtune 4049 FM5",
1675 .params = tuner_microtune_4049_fm5_params,
1676 .count = ARRAY_SIZE(tuner_microtune_4049_fm5_params),
1677 },
1678 [TUNER_PANASONIC_VP27] = {
1679 .name = "Panasonic VP27s/ENGE4324D",
1680 .params = tuner_panasonic_vp27_params,
1681 .count = ARRAY_SIZE(tuner_panasonic_vp27_params),
1682 },
1683 [TUNER_LG_NTSC_TAPE] = {
1684 .name = "LG NTSC (TAPE series)",
1685 .params = tuner_fm1236_mk3_params,
1686 .count = ARRAY_SIZE(tuner_fm1236_mk3_params),
1687 },
1688 [TUNER_TNF_8831BGFF] = {
1689 .name = "Tenna TNF 8831 BGFF)",
1690 .params = tuner_tnf_8831bgff_params,
1691 .count = ARRAY_SIZE(tuner_tnf_8831bgff_params),
1692 },
1693 [TUNER_MICROTUNE_4042FI5] = {
1694 .name = "Microtune 4042 FI5 ATSC/NTSC dual in",
1695 .params = tuner_microtune_4042fi5_params,
1696 .count = ARRAY_SIZE(tuner_microtune_4042fi5_params),
1697 .min = 16 * 57.00,
1698 .max = 16 * 858.00,
1699 .stepsize = 62500,
1700 },
1701
1702
1703 [TUNER_TCL_2002N] = {
1704 .name = "TCL 2002N",
1705 .params = tuner_tcl_2002n_params,
1706 .count = ARRAY_SIZE(tuner_tcl_2002n_params),
1707 },
1708 [TUNER_PHILIPS_FM1256_IH3] = {
1709 .name = "Philips PAL/SECAM_D (FM 1256 I-H3)",
1710 .params = tuner_philips_fm1256_ih3_params,
1711 .count = ARRAY_SIZE(tuner_philips_fm1256_ih3_params),
1712 },
1713 [TUNER_THOMSON_DTT7610] = {
1714 .name = "Thomson DTT 7610 (ATSC/NTSC)",
1715 .params = tuner_thomson_dtt7610_params,
1716 .count = ARRAY_SIZE(tuner_thomson_dtt7610_params),
1717 .min = 16 * 44.00,
1718 .max = 16 * 958.00,
1719 .stepsize = 62500,
1720 },
1721 [TUNER_PHILIPS_FQ1286] = {
1722 .name = "Philips FQ1286",
1723 .params = tuner_philips_fq1286_params,
1724 .count = ARRAY_SIZE(tuner_philips_fq1286_params),
1725 },
1726 [TUNER_PHILIPS_TDA8290] = {
1727 .name = "Philips/NXP TDA 8290/8295 + 8275/8275A/18271",
1728 },
1729 [TUNER_TCL_2002MB] = {
1730 .name = "TCL 2002MB",
1731 .params = tuner_tcl_2002mb_params,
1732 .count = ARRAY_SIZE(tuner_tcl_2002mb_params),
1733 },
1734 [TUNER_PHILIPS_FQ1216AME_MK4] = {
1735 .name = "Philips PAL/SECAM multi (FQ1216AME MK4)",
1736 .params = tuner_philips_fq1216ame_mk4_params,
1737 .count = ARRAY_SIZE(tuner_philips_fq1216ame_mk4_params),
1738 },
1739 [TUNER_PHILIPS_FQ1236A_MK4] = {
1740 .name = "Philips FQ1236A MK4",
1741 .params = tuner_philips_fq1236a_mk4_params,
1742 .count = ARRAY_SIZE(tuner_philips_fq1236a_mk4_params),
1743 },
1744 [TUNER_YMEC_TVF_8531MF] = {
1745 .name = "Ymec TVision TVF-8531MF/8831MF/8731MF",
1746 .params = tuner_ymec_tvf_8531mf_params,
1747 .count = ARRAY_SIZE(tuner_ymec_tvf_8531mf_params),
1748 },
1749 [TUNER_YMEC_TVF_5533MF] = {
1750 .name = "Ymec TVision TVF-5533MF",
1751 .params = tuner_ymec_tvf_5533mf_params,
1752 .count = ARRAY_SIZE(tuner_ymec_tvf_5533mf_params),
1753 },
1754
1755
1756 [TUNER_THOMSON_DTT761X] = {
1757
1758 .name = "Thomson DTT 761X (ATSC/NTSC)",
1759 .params = tuner_thomson_dtt761x_params,
1760 .count = ARRAY_SIZE(tuner_thomson_dtt761x_params),
1761 .min = 16 * 57.00,
1762 .max = 16 * 863.00,
1763 .stepsize = 62500,
1764 .initdata = tua603x_agc103,
1765 },
1766 [TUNER_TENA_9533_DI] = {
1767 .name = "Tena TNF9533-D/IF/TNF9533-B/DF",
1768 .params = tuner_tena_9533_di_params,
1769 .count = ARRAY_SIZE(tuner_tena_9533_di_params),
1770 },
1771 [TUNER_TEA5767] = {
1772 .name = "Philips TEA5767HN FM Radio",
1773
1774 },
1775 [TUNER_PHILIPS_FMD1216ME_MK3] = {
1776 .name = "Philips FMD1216ME MK3 Hybrid Tuner",
1777 .params = tuner_philips_fmd1216me_mk3_params,
1778 .count = ARRAY_SIZE(tuner_philips_fmd1216me_mk3_params),
1779 .min = 16 * 50.87,
1780 .max = 16 * 858.00,
1781 .stepsize = 166667,
1782 .initdata = tua603x_agc112,
1783 .sleepdata = (u8[]){ 4, 0x9c, 0x60, 0x85, 0x54 },
1784 },
1785 [TUNER_LG_TDVS_H06XF] = {
1786 .name = "LG TDVS-H06xF",
1787 .params = tuner_lg_tdvs_h06xf_params,
1788 .count = ARRAY_SIZE(tuner_lg_tdvs_h06xf_params),
1789 .min = 16 * 54.00,
1790 .max = 16 * 863.00,
1791 .stepsize = 62500,
1792 .initdata = tua603x_agc103,
1793 },
1794 [TUNER_YMEC_TVF66T5_B_DFF] = {
1795 .name = "Ymec TVF66T5-B/DFF",
1796 .params = tuner_ymec_tvf66t5_b_dff_params,
1797 .count = ARRAY_SIZE(tuner_ymec_tvf66t5_b_dff_params),
1798 },
1799 [TUNER_LG_TALN] = {
1800 .name = "LG TALN series",
1801 .params = tuner_lg_taln_params,
1802 .count = ARRAY_SIZE(tuner_lg_taln_params),
1803 },
1804 [TUNER_PHILIPS_TD1316] = {
1805 .name = "Philips TD1316 Hybrid Tuner",
1806 .params = tuner_philips_td1316_params,
1807 .count = ARRAY_SIZE(tuner_philips_td1316_params),
1808 .min = 16 * 87.00,
1809 .max = 16 * 895.00,
1810 .stepsize = 166667,
1811 },
1812 [TUNER_PHILIPS_TUV1236D] = {
1813 .name = "Philips TUV1236D ATSC/NTSC dual in",
1814 .params = tuner_tuv1236d_params,
1815 .count = ARRAY_SIZE(tuner_tuv1236d_params),
1816 .min = 16 * 54.00,
1817 .max = 16 * 864.00,
1818 .stepsize = 62500,
1819 },
1820 [TUNER_TNF_5335MF] = {
1821 .name = "Tena TNF 5335 and similar models",
1822 .params = tuner_tnf_5335mf_params,
1823 .count = ARRAY_SIZE(tuner_tnf_5335mf_params),
1824 },
1825
1826
1827 [TUNER_SAMSUNG_TCPN_2121P30A] = {
1828 .name = "Samsung TCPN 2121P30A",
1829 .params = tuner_samsung_tcpn_2121p30a_params,
1830 .count = ARRAY_SIZE(tuner_samsung_tcpn_2121p30a_params),
1831 },
1832 [TUNER_XC2028] = {
1833 .name = "Xceive xc2028/xc3028 tuner",
1834
1835 },
1836 [TUNER_THOMSON_FE6600] = {
1837 .name = "Thomson FE6600",
1838 .params = tuner_thomson_fe6600_params,
1839 .count = ARRAY_SIZE(tuner_thomson_fe6600_params),
1840 .min = 16 * 44.25,
1841 .max = 16 * 858.00,
1842 .stepsize = 166667,
1843 },
1844 [TUNER_SAMSUNG_TCPG_6121P30A] = {
1845 .name = "Samsung TCPG 6121P30A",
1846 .params = tuner_samsung_tcpg_6121p30a_params,
1847 .count = ARRAY_SIZE(tuner_samsung_tcpg_6121p30a_params),
1848 },
1849 [TUNER_TDA9887] = {
1850
1851 .name = "Philips TDA988[5,6,7] IF PLL Demodulator",
1852
1853 },
1854 [TUNER_TEA5761] = {
1855 .name = "Philips TEA5761 FM Radio",
1856
1857 },
1858 [TUNER_XC5000] = {
1859 .name = "Xceive 5000 tuner",
1860
1861 },
1862 [TUNER_XC4000] = {
1863 .name = "Xceive 4000 tuner",
1864
1865 },
1866 [TUNER_TCL_MF02GIP_5N] = {
1867 .name = "TCL tuner MF02GIP-5N-E",
1868 .params = tuner_tcl_mf02gip_5n_params,
1869 .count = ARRAY_SIZE(tuner_tcl_mf02gip_5n_params),
1870 },
1871 [TUNER_PHILIPS_FMD1216MEX_MK3] = {
1872 .name = "Philips FMD1216MEX MK3 Hybrid Tuner",
1873 .params = tuner_philips_fmd1216mex_mk3_params,
1874 .count = ARRAY_SIZE(tuner_philips_fmd1216mex_mk3_params),
1875 .min = 16 * 50.87,
1876 .max = 16 * 858.00,
1877 .stepsize = 166667,
1878 .initdata = tua603x_agc112,
1879 .sleepdata = (u8[]){ 4, 0x9c, 0x60, 0x85, 0x54 },
1880 },
1881 [TUNER_PHILIPS_FM1216MK5] = {
1882 .name = "Philips PAL/SECAM multi (FM1216 MK5)",
1883 .params = tuner_fm1216mk5_params,
1884 .count = ARRAY_SIZE(tuner_fm1216mk5_params),
1885 },
1886
1887
1888 [TUNER_PHILIPS_FQ1216LME_MK3] = {
1889 .name = "Philips FQ1216LME MK3 PAL/SECAM w/active loopthrough",
1890 .params = tuner_fq1216lme_mk3_params,
1891 .count = ARRAY_SIZE(tuner_fq1216lme_mk3_params),
1892 },
1893
1894 [TUNER_PARTSNIC_PTI_5NF05] = {
1895 .name = "Partsnic (Daewoo) PTI-5NF05",
1896 .params = tuner_partsnic_pti_5nf05_params,
1897 .count = ARRAY_SIZE(tuner_partsnic_pti_5nf05_params),
1898 },
1899 [TUNER_PHILIPS_CU1216L] = {
1900 .name = "Philips CU1216L",
1901 .params = tuner_philips_cu1216l_params,
1902 .count = ARRAY_SIZE(tuner_philips_cu1216l_params),
1903 .stepsize = 62500,
1904 },
1905 [TUNER_NXP_TDA18271] = {
1906 .name = "NXP TDA18271",
1907
1908 },
1909 [TUNER_SONY_BTF_PXN01Z] = {
1910 .name = "Sony BTF-Pxn01Z",
1911 .params = tuner_sony_btf_pxn01z_params,
1912 .count = ARRAY_SIZE(tuner_sony_btf_pxn01z_params),
1913 },
1914 [TUNER_PHILIPS_FQ1236_MK5] = {
1915 .name = "Philips FQ1236 MK5",
1916 .params = tuner_philips_fq1236_mk5_params,
1917 .count = ARRAY_SIZE(tuner_philips_fq1236_mk5_params),
1918 },
1919 [TUNER_TENA_TNF_5337] = {
1920 .name = "Tena TNF5337 MFD",
1921 .params = tuner_tena_tnf_5337_params,
1922 .count = ARRAY_SIZE(tuner_tena_tnf_5337_params),
1923 },
1924 [TUNER_XC5000C] = {
1925 .name = "Xceive 5000C tuner",
1926
1927 },
1928 [TUNER_SONY_BTF_PG472Z] = {
1929 .name = "Sony BTF-PG472Z PAL/SECAM",
1930 .params = tuner_sony_btf_pg472z_params,
1931 .count = ARRAY_SIZE(tuner_sony_btf_pg472z_params),
1932 },
1933
1934
1935 [TUNER_SONY_BTF_PK467Z] = {
1936 .name = "Sony BTF-PK467Z NTSC-M-JP",
1937 .params = tuner_sony_btf_pg467z_params,
1938 .count = ARRAY_SIZE(tuner_sony_btf_pg467z_params),
1939 },
1940 [TUNER_SONY_BTF_PB463Z] = {
1941 .name = "Sony BTF-PB463Z NTSC-M",
1942 .params = tuner_sony_btf_pg463z_params,
1943 .count = ARRAY_SIZE(tuner_sony_btf_pg463z_params),
1944 },
1945 [TUNER_SI2157] = {
1946 .name = "Silicon Labs Si2157 tuner",
1947
1948 },
1949 };
1950 EXPORT_SYMBOL(tuners);
1951
1952 unsigned const int tuner_count = ARRAY_SIZE(tuners);
1953 EXPORT_SYMBOL(tuner_count);
1954
1955 MODULE_DESCRIPTION("Simple tuner device type database");
1956 MODULE_AUTHOR("Ralph Metzler, Gerd Knorr, Gunther Mayer");
1957 MODULE_LICENSE("GPL");