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