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