linux/drivers/media/pci/saa7134/saa7134-cards.c
<<
>>
Prefs
   1/*
   2 *
   3 * device driver for philips saa7134 based TV cards
   4 * card-specific stuff.
   5 *
   6 * (c) 2001-04 Gerd Knorr <kraxel@bytesex.org> [SuSE Labs]
   7 *
   8 *  This program is free software; you can redistribute it and/or modify
   9 *  it under the terms of the GNU General Public License as published by
  10 *  the Free Software Foundation; either version 2 of the License, or
  11 *  (at your option) any later version.
  12 *
  13 *  This program is distributed in the hope that it will be useful,
  14 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  15 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  16 *  GNU General Public License for more details.
  17 *
  18 *  You should have received a copy of the GNU General Public License
  19 *  along with this program; if not, write to the Free Software
  20 *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  21 */
  22
  23#include "saa7134.h"
  24#include "saa7134-reg.h"
  25
  26#include <linux/init.h>
  27#include <linux/module.h>
  28#include <linux/i2c.h>
  29#include <linux/i2c-algo-bit.h>
  30
  31#include "tuner-xc2028.h"
  32#include <media/v4l2-common.h>
  33#include <media/tveeprom.h>
  34#include "tea5767.h"
  35#include "tda18271.h"
  36#include "xc5000.h"
  37#include "s5h1411.h"
  38
  39/* commly used strings */
  40static char name_mute[]    = "mute";
  41static char name_radio[]   = "Radio";
  42static char name_tv[]      = "Television";
  43static char name_tv_mono[] = "TV (mono only)";
  44static char name_comp[]    = "Composite";
  45static char name_comp1[]   = "Composite1";
  46static char name_comp2[]   = "Composite2";
  47static char name_comp3[]   = "Composite3";
  48static char name_comp4[]   = "Composite4";
  49static char name_svideo[]  = "S-Video";
  50
  51/* ------------------------------------------------------------------ */
  52/* board config info                                                  */
  53
  54static struct tda18271_std_map aver_a706_std_map = {
  55        .fm_radio = { .if_freq = 5500, .fm_rfn = 0, .agc_mode = 3, .std = 0,
  56                      .if_lvl = 0, .rfagc_top = 0x2c, },
  57};
  58
  59/* If radio_type !=UNSET, radio_addr should be specified
  60 */
  61
  62struct saa7134_board saa7134_boards[] = {
  63        [SAA7134_BOARD_UNKNOWN] = {
  64                .name           = "UNKNOWN/GENERIC",
  65                .audio_clock    = 0x00187de7,
  66                .tuner_type     = TUNER_ABSENT,
  67                .radio_type     = UNSET,
  68                .tuner_addr     = ADDR_UNSET,
  69                .radio_addr     = ADDR_UNSET,
  70
  71                .inputs         = {{
  72                        .name = "default",
  73                        .vmux = 0,
  74                        .amux = LINE1,
  75                }},
  76        },
  77        [SAA7134_BOARD_PROTEUS_PRO] = {
  78                /* /me */
  79                .name           = "Proteus Pro [philips reference design]",
  80                .audio_clock    = 0x00187de7,
  81                .tuner_type     = TUNER_PHILIPS_PAL,
  82                .radio_type     = UNSET,
  83                .tuner_addr     = ADDR_UNSET,
  84                .radio_addr     = ADDR_UNSET,
  85
  86                .inputs         = {{
  87                        .name = name_comp1,
  88                        .vmux = 0,
  89                        .amux = LINE1,
  90                },{
  91                        .name = name_tv,
  92                        .vmux = 1,
  93                        .amux = TV,
  94                        .tv   = 1,
  95                },{
  96                        .name = name_tv_mono,
  97                        .vmux = 1,
  98                        .amux = LINE2,
  99                        .tv   = 1,
 100                }},
 101                .radio = {
 102                        .name = name_radio,
 103                        .amux = LINE2,
 104                },
 105        },
 106        [SAA7134_BOARD_FLYVIDEO3000] = {
 107                /* "Marco d'Itri" <md@Linux.IT> */
 108                .name           = "LifeView FlyVIDEO3000",
 109                .audio_clock    = 0x00200000,
 110                .tuner_type     = TUNER_PHILIPS_PAL,
 111                .radio_type     = UNSET,
 112                .tuner_addr     = ADDR_UNSET,
 113                .radio_addr     = ADDR_UNSET,
 114
 115                .gpiomask       = 0xe000,
 116                .inputs         = {{
 117                        .name = name_tv,
 118                        .vmux = 1,
 119                        .amux = TV,
 120                        .gpio = 0x8000,
 121                        .tv   = 1,
 122                },{
 123                        .name = name_tv_mono,
 124                        .vmux = 1,
 125                        .amux = LINE2,
 126                        .gpio = 0x0000,
 127                        .tv   = 1,
 128                },{
 129                        .name = name_comp1,
 130                        .vmux = 0,
 131                        .amux = LINE2,
 132                        .gpio = 0x4000,
 133                },{
 134                        .name = name_comp2,
 135                        .vmux = 3,
 136                        .amux = LINE2,
 137                        .gpio = 0x4000,
 138                },{
 139                        .name = name_svideo,
 140                        .vmux = 8,
 141                        .amux = LINE2,
 142                        .gpio = 0x4000,
 143                }},
 144                .radio = {
 145                        .name = name_radio,
 146                        .amux = LINE2,
 147                        .gpio = 0x2000,
 148                },
 149                .mute = {
 150                        .name = name_mute,
 151                        .amux = TV,
 152                        .gpio = 0x8000,
 153                },
 154        },
 155        [SAA7134_BOARD_FLYVIDEO2000] = {
 156                /* "TC Wan" <tcwan@cs.usm.my> */
 157                .name           = "LifeView/Typhoon FlyVIDEO2000",
 158                .audio_clock    = 0x00200000,
 159                .tuner_type     = TUNER_LG_PAL_NEW_TAPC,
 160                .radio_type     = UNSET,
 161                .tuner_addr     = ADDR_UNSET,
 162                .radio_addr     = ADDR_UNSET,
 163
 164                .gpiomask       = 0xe000,
 165                .inputs         = {{
 166                        .name = name_tv,
 167                        .vmux = 1,
 168                        .amux = LINE2,
 169                        .gpio = 0x0000,
 170                        .tv   = 1,
 171                },{
 172                        .name = name_comp1,
 173                        .vmux = 0,
 174                        .amux = LINE2,
 175                        .gpio = 0x4000,
 176                },{
 177                        .name = name_comp2,
 178                        .vmux = 3,
 179                        .amux = LINE2,
 180                        .gpio = 0x4000,
 181                },{
 182                        .name = name_svideo,
 183                        .vmux = 8,
 184                        .amux = LINE2,
 185                        .gpio = 0x4000,
 186                }},
 187                .radio = {
 188                        .name = name_radio,
 189                        .amux = LINE2,
 190                        .gpio = 0x2000,
 191                },
 192                .mute = {
 193                        .name = name_mute,
 194                        .amux = LINE2,
 195                        .gpio = 0x8000,
 196                },
 197        },
 198        [SAA7134_BOARD_FLYTVPLATINUM_MINI] = {
 199                /* "Arnaud Quette" <aquette@free.fr> */
 200                .name           = "LifeView FlyTV Platinum Mini",
 201                .audio_clock    = 0x00200000,
 202                .tuner_type     = TUNER_PHILIPS_TDA8290,
 203                .radio_type     = UNSET,
 204                .tuner_addr     = ADDR_UNSET,
 205                .radio_addr     = ADDR_UNSET,
 206
 207                .inputs         = {{
 208                        .name = name_tv,
 209                        .vmux = 1,
 210                        .amux = TV,
 211                        .tv   = 1,
 212                },{
 213                        .name = name_comp1,     /* Composite signal on S-Video input */
 214                        .vmux = 0,
 215                        .amux = LINE2,
 216                },{
 217                        .name = name_comp2,     /* Composite input */
 218                        .vmux = 3,
 219                        .amux = LINE2,
 220                },{
 221                        .name = name_svideo,
 222                        .vmux = 8,
 223                        .amux = LINE2,
 224                }},
 225        },
 226        [SAA7134_BOARD_FLYTVPLATINUM_FM] = {
 227                /* LifeView FlyTV Platinum FM (LR214WF) */
 228                /* "Peter Missel <peter.missel@onlinehome.de> */
 229                .name           = "LifeView FlyTV Platinum FM / Gold",
 230                .audio_clock    = 0x00200000,
 231                .tuner_type     = TUNER_PHILIPS_TDA8290,
 232                .radio_type     = UNSET,
 233                .tuner_addr     = ADDR_UNSET,
 234                .radio_addr     = ADDR_UNSET,
 235
 236                .gpiomask       = 0x1E000,      /* Set GP16 and unused 15,14,13 to Output */
 237                .inputs         = {{
 238                        .name = name_tv,
 239                        .vmux = 1,
 240                        .amux = TV,
 241                        .gpio = 0x10000,        /* GP16=1 selects TV input */
 242                        .tv   = 1,
 243                },{
 244/*                      .name = name_tv_mono,
 245                        .vmux = 1,
 246                        .amux = LINE2,
 247                        .gpio = 0x0000,
 248                        .tv   = 1,
 249                },{
 250*/                      .name = name_comp1,     /* Composite signal on S-Video input */
 251                        .vmux = 0,
 252                        .amux = LINE2,
 253/*                      .gpio = 0x4000,         */
 254                },{
 255                        .name = name_comp2,     /* Composite input */
 256                        .vmux = 3,
 257                        .amux = LINE2,
 258/*                      .gpio = 0x4000,         */
 259                },{
 260                        .name = name_svideo,    /* S-Video signal on S-Video input */
 261                        .vmux = 8,
 262                        .amux = LINE2,
 263/*                      .gpio = 0x4000,         */
 264                }},
 265                .radio = {
 266                        .name = name_radio,
 267                        .amux = TV,
 268                        .gpio = 0x00000,        /* GP16=0 selects FM radio antenna */
 269                },
 270                .mute = {
 271                        .name = name_mute,
 272                        .amux = TV,
 273                        .gpio = 0x10000,
 274                },
 275        },
 276        [SAA7134_BOARD_ROVERMEDIA_LINK_PRO_FM] = {
 277                /* RoverMedia TV Link Pro FM (LR138 REV:I) */
 278                /* Eugene Yudin <Eugene.Yudin@gmail.com> */
 279                .name           = "RoverMedia TV Link Pro FM",
 280                .audio_clock    = 0x00200000,
 281                .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3, /* TCL MFPE05 2 */
 282                .radio_type     = UNSET,
 283                .tuner_addr     = ADDR_UNSET,
 284                .radio_addr     = ADDR_UNSET,
 285                .tda9887_conf   = TDA9887_PRESENT,
 286                .gpiomask       = 0xe000,
 287                .inputs         = { {
 288                        .name = name_tv,
 289                        .vmux = 1,
 290                        .amux = TV,
 291                        .gpio = 0x8000,
 292                        .tv   = 1,
 293                }, {
 294                        .name = name_tv_mono,
 295                        .vmux = 1,
 296                        .amux = LINE2,
 297                        .gpio = 0x0000,
 298                        .tv   = 1,
 299                }, {
 300                        .name = name_comp1,
 301                        .vmux = 0,
 302                        .amux = LINE2,
 303                        .gpio = 0x4000,
 304                }, {
 305                        .name = name_comp2,
 306                        .vmux = 3,
 307                        .amux = LINE2,
 308                        .gpio = 0x4000,
 309                }, {
 310                        .name = name_svideo,
 311                        .vmux = 8,
 312                        .amux = LINE2,
 313                        .gpio = 0x4000,
 314                } },
 315                .radio = {
 316                        .name = name_radio,
 317                        .amux = LINE2,
 318                        .gpio = 0x2000,
 319                },
 320                .mute = {
 321                        .name = name_mute,
 322                        .amux = TV,
 323                        .gpio = 0x8000,
 324                },
 325        },
 326        [SAA7134_BOARD_EMPRESS] = {
 327                /* "Gert Vervoort" <gert.vervoort@philips.com> */
 328                .name           = "EMPRESS",
 329                .audio_clock    = 0x00187de7,
 330                .tuner_type     = TUNER_PHILIPS_PAL,
 331                .radio_type     = UNSET,
 332                .tuner_addr     = ADDR_UNSET,
 333                .radio_addr     = ADDR_UNSET,
 334                .empress_addr   = 0x20,
 335
 336                .inputs         = {{
 337                        .name = name_comp1,
 338                        .vmux = 0,
 339                        .amux = LINE1,
 340                },{
 341                        .name = name_svideo,
 342                        .vmux = 8,
 343                        .amux = LINE1,
 344                },{
 345                        .name = name_tv,
 346                        .vmux = 1,
 347                        .amux = LINE2,
 348                        .tv   = 1,
 349                }},
 350                .radio = {
 351                        .name = name_radio,
 352                        .amux = LINE2,
 353                },
 354                .mpeg      = SAA7134_MPEG_EMPRESS,
 355                .video_out = CCIR656,
 356        },
 357        [SAA7134_BOARD_MONSTERTV] = {
 358                /* "K.Ohta" <alpha292@bremen.or.jp> */
 359                .name           = "SKNet Monster TV",
 360                .audio_clock    = 0x00187de7,
 361                .tuner_type     = TUNER_PHILIPS_NTSC_M,
 362                .radio_type     = UNSET,
 363                .tuner_addr     = ADDR_UNSET,
 364                .radio_addr     = ADDR_UNSET,
 365
 366                .inputs         = {{
 367                        .name = name_tv,
 368                        .vmux = 1,
 369                        .amux = TV,
 370                        .tv   = 1,
 371                },{
 372                        .name = name_comp1,
 373                        .vmux = 0,
 374                        .amux = LINE1,
 375                },{
 376                        .name = name_svideo,
 377                        .vmux = 8,
 378                        .amux = LINE1,
 379                }},
 380                .radio = {
 381                        .name = name_radio,
 382                        .amux = LINE2,
 383                },
 384        },
 385        [SAA7134_BOARD_MD9717] = {
 386                .name           = "Tevion MD 9717",
 387                .audio_clock    = 0x00200000,
 388                .tuner_type     = TUNER_PHILIPS_PAL,
 389                .radio_type     = UNSET,
 390                .tuner_addr     = ADDR_UNSET,
 391                .radio_addr     = ADDR_UNSET,
 392                .inputs         = {{
 393                        .name = name_tv,
 394                        .vmux = 1,
 395                        .amux = TV,
 396                        .tv   = 1,
 397                },{
 398                        /* workaround for problems with normal TV sound */
 399                        .name = name_tv_mono,
 400                        .vmux = 1,
 401                        .amux = LINE2,
 402                        .tv   = 1,
 403                },{
 404                        .name = name_comp1,
 405                        .vmux = 0,
 406                        .amux = LINE1,
 407                },{
 408                        .name = name_comp2,
 409                        .vmux = 3,
 410                        .amux = LINE1,
 411                },{
 412                        .name = name_svideo,
 413                        .vmux = 8,
 414                        .amux = LINE1,
 415                }},
 416                .radio = {
 417                        .name = name_radio,
 418                        .amux = LINE2,
 419                },
 420               .mute = {
 421                       .name = name_mute,
 422                       .amux = TV,
 423               },
 424        },
 425        [SAA7134_BOARD_TVSTATION_RDS] = {
 426                /* Typhoon TV Tuner RDS: Art.Nr. 50694 */
 427                .name           = "KNC One TV-Station RDS / Typhoon TV Tuner RDS",
 428                .audio_clock    = 0x00200000,
 429                .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
 430                .radio_type     = UNSET,
 431                .tuner_addr     = ADDR_UNSET,
 432                .radio_addr     = ADDR_UNSET,
 433                .tda9887_conf   = TDA9887_PRESENT,
 434                .inputs         = {{
 435                        .name = name_tv,
 436                        .vmux = 1,
 437                        .amux = TV,
 438                        .tv   = 1,
 439                },{
 440                        .name = name_tv_mono,
 441                        .vmux = 1,
 442                        .amux   = LINE2,
 443                        .tv   = 1,
 444                },{
 445
 446                        .name = name_svideo,
 447                        .vmux = 8,
 448                        .amux = LINE1,
 449                },{
 450                        .name = name_comp1,
 451                        .vmux = 3,
 452                        .amux = LINE1,
 453                },{
 454
 455                        .name = "CVid over SVid",
 456                        .vmux = 0,
 457                        .amux = LINE1,
 458                }},
 459                .radio = {
 460                        .name = name_radio,
 461                        .amux = LINE2,
 462                },
 463        },
 464        [SAA7134_BOARD_TVSTATION_DVR] = {
 465                .name           = "KNC One TV-Station DVR",
 466                .audio_clock    = 0x00200000,
 467                .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
 468                .radio_type     = UNSET,
 469                .tuner_addr     = ADDR_UNSET,
 470                .radio_addr     = ADDR_UNSET,
 471                .empress_addr   = 0x20,
 472                .tda9887_conf   = TDA9887_PRESENT,
 473                .gpiomask       = 0x820000,
 474                .inputs         = {{
 475                        .name = name_tv,
 476                        .vmux = 1,
 477                        .amux = TV,
 478                        .tv   = 1,
 479                        .gpio = 0x20000,
 480                },{
 481                        .name = name_svideo,
 482                        .vmux = 8,
 483                        .amux = LINE1,
 484                        .gpio = 0x20000,
 485                },{
 486                        .name = name_comp1,
 487                        .vmux = 3,
 488                        .amux = LINE1,
 489                        .gpio = 0x20000,
 490                }},
 491                .radio          = {
 492                        .name = name_radio,
 493                        .amux = LINE2,
 494                        .gpio = 0x20000,
 495                },
 496                .mpeg           = SAA7134_MPEG_EMPRESS,
 497                .video_out      = CCIR656,
 498        },
 499        [SAA7134_BOARD_CINERGY400] = {
 500                .name           = "Terratec Cinergy 400 TV",
 501                .audio_clock    = 0x00200000,
 502                .tuner_type     = TUNER_PHILIPS_PAL,
 503                .radio_type     = UNSET,
 504                .tuner_addr     = ADDR_UNSET,
 505                .radio_addr     = ADDR_UNSET,
 506                .inputs         = {{
 507                        .name = name_tv,
 508                        .vmux = 1,
 509                        .amux = TV,
 510                        .tv   = 1,
 511                },{
 512                        .name = name_comp1,
 513                        .vmux = 4,
 514                        .amux = LINE1,
 515                },{
 516                        .name = name_svideo,
 517                        .vmux = 8,
 518                        .amux = LINE1,
 519                },{
 520                        .name = name_comp2, /* CVideo over SVideo Connector */
 521                        .vmux = 0,
 522                        .amux = LINE1,
 523                }}
 524        },
 525        [SAA7134_BOARD_MD5044] = {
 526                .name           = "Medion 5044",
 527                .audio_clock    = 0x00187de7, /* was: 0x00200000, */
 528                .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
 529                .radio_type     = UNSET,
 530                .tuner_addr     = ADDR_UNSET,
 531                .radio_addr     = ADDR_UNSET,
 532                .tda9887_conf   = TDA9887_PRESENT,
 533                .inputs         = {{
 534                        .name = name_tv,
 535                        .vmux = 1,
 536                        .amux = TV,
 537                        .tv   = 1,
 538                },{
 539                        /* workaround for problems with normal TV sound */
 540                        .name = name_tv_mono,
 541                        .vmux = 1,
 542                        .amux = LINE2,
 543                        .tv   = 1,
 544                },{
 545                        .name = name_comp1,
 546                        .vmux = 0,
 547                        .amux = LINE2,
 548                },{
 549                        .name = name_comp2,
 550                        .vmux = 3,
 551                        .amux = LINE2,
 552                },{
 553                        .name = name_svideo,
 554                        .vmux = 8,
 555                        .amux = LINE2,
 556                }},
 557                .radio = {
 558                        .name = name_radio,
 559                        .amux = LINE2,
 560                },
 561        },
 562        [SAA7134_BOARD_KWORLD] = {
 563                .name           = "Kworld/KuroutoShikou SAA7130-TVPCI",
 564                .audio_clock    = 0x00187de7,
 565                .tuner_type     = TUNER_PHILIPS_NTSC_M,
 566                .radio_type     = UNSET,
 567                .tuner_addr     = ADDR_UNSET,
 568                .radio_addr     = ADDR_UNSET,
 569                .inputs         = {{
 570                        .name = name_svideo,
 571                        .vmux = 8,
 572                        .amux = LINE1,
 573                },{
 574                        .name = name_comp1,
 575                        .vmux = 3,
 576                        .amux = LINE1,
 577                },{
 578                        .name = name_tv,
 579                        .vmux = 1,
 580                        .amux = LINE2,
 581                        .tv   = 1,
 582                }},
 583        },
 584        [SAA7134_BOARD_CINERGY600] = {
 585                .name           = "Terratec Cinergy 600 TV",
 586                .audio_clock    = 0x00200000,
 587                .tuner_type     = TUNER_PHILIPS_PAL,
 588                .radio_type     = UNSET,
 589                .tuner_addr     = ADDR_UNSET,
 590                .radio_addr     = ADDR_UNSET,
 591                .tda9887_conf   = TDA9887_PRESENT,
 592                .inputs         = {{
 593                        .name = name_tv,
 594                        .vmux = 1,
 595                        .amux = TV,
 596                        .tv   = 1,
 597                },{
 598                        .name = name_comp1,
 599                        .vmux = 4,
 600                        .amux = LINE1,
 601                },{
 602                        .name = name_svideo,
 603                        .vmux = 8,
 604                        .amux = LINE1,
 605                },{
 606                        .name = name_comp2, /* CVideo over SVideo Connector */
 607                        .vmux = 0,
 608                        .amux = LINE1,
 609                }},
 610                .radio = {
 611                        .name = name_radio,
 612                        .amux = LINE2,
 613                },
 614        },
 615        [SAA7134_BOARD_MD7134] = {
 616                .name           = "Medion 7134",
 617                .audio_clock    = 0x00187de7,
 618                .tuner_type     = TUNER_PHILIPS_FMD1216ME_MK3,
 619                .radio_type     = UNSET,
 620                .tuner_addr     = ADDR_UNSET,
 621                .radio_addr     = ADDR_UNSET,
 622                .tda9887_conf   = TDA9887_PRESENT,
 623                .mpeg           = SAA7134_MPEG_DVB,
 624                .inputs = {{
 625                        .name   = name_tv,
 626                        .vmux   = 1,
 627                        .amux   = TV,
 628                        .tv     = 1,
 629                },{
 630                        .name   = name_comp1,
 631                        .vmux   = 0,
 632                        .amux   = LINE1,
 633                },{
 634                        .name   = name_svideo,
 635                        .vmux   = 8,
 636                        .amux   = LINE1,
 637                }},
 638                .radio = {
 639                        .name   = name_radio,
 640                        .amux   = LINE2,
 641               },
 642               .mute = {
 643                       .name = name_mute,
 644                       .amux = TV,
 645                },
 646        },
 647        [SAA7134_BOARD_TYPHOON_90031] = {
 648                /* aka Typhoon "TV+Radio", Art.Nr 90031 */
 649                /* Tom Zoerner <tomzo at users sourceforge net> */
 650                .name           = "Typhoon TV+Radio 90031",
 651                .audio_clock    = 0x00200000,
 652                .tuner_type     = TUNER_PHILIPS_PAL,
 653                .radio_type     = UNSET,
 654                .tuner_addr     = ADDR_UNSET,
 655                .radio_addr     = ADDR_UNSET,
 656                .tda9887_conf   = TDA9887_PRESENT,
 657                .inputs         = {{
 658                        .name   = name_tv,
 659                        .vmux   = 1,
 660                        .amux   = TV,
 661                        .tv     = 1,
 662                },{
 663                        .name   = name_comp1,
 664                        .vmux   = 3,
 665                        .amux   = LINE1,
 666                },{
 667                        .name   = name_svideo,
 668                        .vmux   = 8,
 669                        .amux   = LINE1,
 670                }},
 671                .radio = {
 672                        .name   = name_radio,
 673                        .amux   = LINE2,
 674                },
 675        },
 676        [SAA7134_BOARD_ELSA] = {
 677                .name           = "ELSA EX-VISION 300TV",
 678                .audio_clock    = 0x00187de7,
 679                .tuner_type     = TUNER_HITACHI_NTSC,
 680                .radio_type     = UNSET,
 681                .tuner_addr     = ADDR_UNSET,
 682                .radio_addr     = ADDR_UNSET,
 683                .inputs         = {{
 684                        .name = name_svideo,
 685                        .vmux = 8,
 686                        .amux = LINE1,
 687                },{
 688                        .name   = name_comp1,
 689                        .vmux   = 0,
 690                        .amux   = LINE1,
 691                },{
 692                        .name = name_tv,
 693                        .vmux = 4,
 694                        .amux = LINE2,
 695                        .tv   = 1,
 696                }},
 697        },
 698        [SAA7134_BOARD_ELSA_500TV] = {
 699                .name           = "ELSA EX-VISION 500TV",
 700                .audio_clock    = 0x00187de7,
 701                .tuner_type     = TUNER_HITACHI_NTSC,
 702                .radio_type     = UNSET,
 703                .tuner_addr     = ADDR_UNSET,
 704                .radio_addr     = ADDR_UNSET,
 705                .inputs         = {{
 706                        .name = name_svideo,
 707                        .vmux = 7,
 708                        .amux = LINE1,
 709                },{
 710                        .name = name_tv,
 711                        .vmux = 8,
 712                        .amux = TV,
 713                        .tv   = 1,
 714                },{
 715                        .name = name_tv_mono,
 716                        .vmux = 8,
 717                        .amux = LINE2,
 718                        .tv   = 1,
 719                }},
 720        },
 721        [SAA7134_BOARD_ELSA_700TV] = {
 722                .name           = "ELSA EX-VISION 700TV",
 723                .audio_clock    = 0x00187de7,
 724                .tuner_type     = TUNER_HITACHI_NTSC,
 725                .radio_type     = UNSET,
 726                .tuner_addr     = ADDR_UNSET,
 727                .radio_addr     = ADDR_UNSET,
 728                .inputs         = {{
 729                        .name = name_tv,
 730                        .vmux = 4,
 731                        .amux = LINE2,
 732                        .tv   = 1,
 733                },{
 734                        .name = name_comp1,
 735                        .vmux = 6,
 736                        .amux = LINE1,
 737                },{
 738                        .name = name_svideo,
 739                        .vmux = 7,
 740                        .amux = LINE1,
 741                }},
 742                .mute           = {
 743                        .name = name_mute,
 744                        .amux = TV,
 745                },
 746        },
 747        [SAA7134_BOARD_ASUSTeK_TVFM7134] = {
 748                .name           = "ASUS TV-FM 7134",
 749                .audio_clock    = 0x00187de7,
 750                .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
 751                .radio_type     = UNSET,
 752                .tuner_addr     = ADDR_UNSET,
 753                .radio_addr     = ADDR_UNSET,
 754                .tda9887_conf   = TDA9887_PRESENT,
 755                .inputs         = {{
 756                        .name = name_tv,
 757                        .vmux = 1,
 758                        .amux = TV,
 759                        .tv   = 1,
 760                },{
 761                        .name = name_comp1,
 762                        .vmux = 4,
 763                        .amux = LINE2,
 764                },{
 765                        .name = name_svideo,
 766                        .vmux = 6,
 767                        .amux = LINE2,
 768                }},
 769                .radio = {
 770                        .name = name_radio,
 771                        .amux = LINE1,
 772                },
 773        },
 774        [SAA7134_BOARD_ASUSTeK_TVFM7135] = {
 775                .name           = "ASUS TV-FM 7135",
 776                .audio_clock    = 0x00187de7,
 777                .tuner_type     = TUNER_PHILIPS_TDA8290,
 778                .radio_type     = UNSET,
 779                .tuner_addr     = ADDR_UNSET,
 780                .radio_addr     = ADDR_UNSET,
 781                .gpiomask       = 0x200000,
 782                .inputs         = {{
 783                        .name = name_tv,
 784                        .vmux = 1,
 785                        .amux = TV,
 786                        .gpio = 0x0000,
 787                        .tv   = 1,
 788                },{
 789                        .name = name_comp1,
 790                        .vmux = 4,
 791                        .amux = LINE2,
 792                        .gpio = 0x0000,
 793                },{
 794                        .name = name_svideo,
 795                        .vmux = 6,
 796                        .amux = LINE2,
 797                        .gpio = 0x0000,
 798                }},
 799                .radio = {
 800                        .name = name_radio,
 801                        .amux = TV,
 802                        .gpio = 0x200000,
 803                },
 804                .mute  = {
 805                        .name = name_mute,
 806                        .gpio = 0x0000,
 807                },
 808
 809        },
 810        [SAA7134_BOARD_VA1000POWER] = {
 811                .name           = "AOPEN VA1000 POWER",
 812                .audio_clock    = 0x00187de7,
 813                .tuner_type     = TUNER_PHILIPS_NTSC,
 814                .radio_type     = UNSET,
 815                .tuner_addr     = ADDR_UNSET,
 816                .radio_addr     = ADDR_UNSET,
 817                .inputs         = {{
 818                        .name = name_svideo,
 819                        .vmux = 8,
 820                        .amux = LINE1,
 821                },{
 822                        .name = name_comp1,
 823                        .vmux = 3,
 824                        .amux = LINE1,
 825                },{
 826                        .name = name_tv,
 827                        .vmux = 1,
 828                        .amux = LINE2,
 829                        .tv   = 1,
 830                }},
 831        },
 832        [SAA7134_BOARD_10MOONSTVMASTER] = {
 833                /* "lilicheng" <llc@linuxfans.org> */
 834                .name           = "10MOONS PCI TV CAPTURE CARD",
 835                .audio_clock    = 0x00200000,
 836                .tuner_type     = TUNER_LG_PAL_NEW_TAPC,
 837                .radio_type     = UNSET,
 838                .tuner_addr     = ADDR_UNSET,
 839                .radio_addr     = ADDR_UNSET,
 840                .gpiomask       = 0xe000,
 841                .inputs         = {{
 842                        .name = name_tv,
 843                        .vmux = 1,
 844                        .amux = LINE2,
 845                        .gpio = 0x0000,
 846                        .tv   = 1,
 847                },{
 848                        .name = name_comp1,
 849                        .vmux = 0,
 850                        .amux = LINE2,
 851                        .gpio = 0x4000,
 852                },{
 853                        .name = name_comp2,
 854                        .vmux = 3,
 855                        .amux = LINE2,
 856                        .gpio = 0x4000,
 857                },{
 858                        .name = name_svideo,
 859                        .vmux = 8,
 860                        .amux = LINE2,
 861                        .gpio = 0x4000,
 862                }},
 863                .radio = {
 864                        .name = name_radio,
 865                        .amux = LINE2,
 866                        .gpio = 0x2000,
 867                },
 868                .mute = {
 869                        .name = name_mute,
 870                        .amux = LINE2,
 871                        .gpio = 0x8000,
 872                },
 873        },
 874        [SAA7134_BOARD_BMK_MPEX_NOTUNER] = {
 875                /* "Andrew de Quincey" <adq@lidskialf.net> */
 876                .name           = "BMK MPEX No Tuner",
 877                .audio_clock    = 0x200000,
 878                .tuner_type     = TUNER_ABSENT,
 879                .radio_type     = UNSET,
 880                .tuner_addr     = ADDR_UNSET,
 881                .radio_addr     = ADDR_UNSET,
 882                .empress_addr   = 0x20,
 883                .inputs         = {{
 884                        .name = name_comp1,
 885                        .vmux = 4,
 886                        .amux = LINE1,
 887                },{
 888                        .name = name_comp2,
 889                        .vmux = 3,
 890                        .amux = LINE1,
 891                },{
 892                        .name = name_comp3,
 893                        .vmux = 0,
 894                        .amux = LINE1,
 895                },{
 896                        .name = name_comp4,
 897                        .vmux = 1,
 898                        .amux = LINE1,
 899                },{
 900                        .name = name_svideo,
 901                        .vmux = 8,
 902                        .amux = LINE1,
 903                }},
 904                .mpeg      = SAA7134_MPEG_EMPRESS,
 905                .video_out = CCIR656,
 906        },
 907        [SAA7134_BOARD_VIDEOMATE_TV] = {
 908                .name           = "Compro VideoMate TV",
 909                .audio_clock    = 0x00187de7,
 910                .tuner_type     = TUNER_PHILIPS_NTSC_M,
 911                .radio_type     = UNSET,
 912                .tuner_addr     = ADDR_UNSET,
 913                .radio_addr     = ADDR_UNSET,
 914                .inputs         = {{
 915                        .name = name_svideo,
 916                        .vmux = 8,
 917                        .amux = LINE1,
 918                },{
 919                        .name = name_comp1,
 920                        .vmux = 3,
 921                        .amux = LINE1,
 922                },{
 923                        .name = name_tv,
 924                        .vmux = 1,
 925                        .amux = LINE2,
 926                        .tv   = 1,
 927                }},
 928        },
 929        [SAA7134_BOARD_VIDEOMATE_TV_GOLD_PLUS] = {
 930                .name           = "Compro VideoMate TV Gold+",
 931                .audio_clock    = 0x00187de7,
 932                .tuner_type     = TUNER_PHILIPS_NTSC_M,
 933                .gpiomask       = 0x800c0000,
 934                .radio_type     = UNSET,
 935                .tuner_addr     = ADDR_UNSET,
 936                .radio_addr     = ADDR_UNSET,
 937                .inputs         = {{
 938                        .name = name_svideo,
 939                        .vmux = 8,
 940                        .amux = LINE1,
 941                        .gpio = 0x06c00012,
 942                },{
 943                        .name = name_comp1,
 944                        .vmux = 3,
 945                        .amux = LINE1,
 946                        .gpio = 0x0ac20012,
 947                },{
 948                        .name = name_tv,
 949                        .vmux = 1,
 950                        .amux = LINE2,
 951                        .gpio = 0x08c20012,
 952                        .tv   = 1,
 953                }},                             /* radio and probably mute is missing */
 954        },
 955        [SAA7134_BOARD_CRONOS_PLUS] = {
 956                /*
 957                gpio pins:
 958                        0  .. 3   BASE_ID
 959                        4  .. 7   PROTECT_ID
 960                        8  .. 11  USER_OUT
 961                        12 .. 13  USER_IN
 962                        14 .. 15  VIDIN_SEL
 963                */
 964                .name           = "Matrox CronosPlus",
 965                .tuner_type     = TUNER_ABSENT,
 966                .radio_type     = UNSET,
 967                .tuner_addr     = ADDR_UNSET,
 968                .radio_addr     = ADDR_UNSET,
 969                .gpiomask       = 0xcf00,
 970                .inputs         = {{
 971                        .name = name_comp1,
 972                        .vmux = 0,
 973                        .gpio = 2 << 14,
 974                },{
 975                        .name = name_comp2,
 976                        .vmux = 0,
 977                        .gpio = 1 << 14,
 978                },{
 979                        .name = name_comp3,
 980                        .vmux = 0,
 981                        .gpio = 0 << 14,
 982                },{
 983                        .name = name_comp4,
 984                        .vmux = 0,
 985                        .gpio = 3 << 14,
 986                },{
 987                        .name = name_svideo,
 988                        .vmux = 8,
 989                        .gpio = 2 << 14,
 990                }},
 991        },
 992        [SAA7134_BOARD_MD2819] = {
 993                .name           = "AverMedia M156 / Medion 2819",
 994                .audio_clock    = 0x00187de7,
 995                .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
 996                .radio_type     = UNSET,
 997                .tuner_addr     = ADDR_UNSET,
 998                .radio_addr     = ADDR_UNSET,
 999                .tda9887_conf   = TDA9887_PRESENT,
1000                .gpiomask       = 0x03,
1001                .inputs         = {{
1002                        .name = name_tv,
1003                        .vmux = 1,
1004                        .amux = TV,
1005                        .tv   = 1,
1006                        .gpio = 0x00,
1007                }, {
1008                        .name = name_comp1,
1009                        .vmux = 3,
1010                        .amux = LINE1,
1011                        .gpio = 0x02,
1012                }, {
1013                        .name = name_comp2,
1014                        .vmux = 0,
1015                        .amux = LINE1,
1016                        .gpio = 0x02,
1017                }, {
1018                        .name = name_svideo,
1019                        .vmux = 8,
1020                        .amux = LINE1,
1021                        .gpio = 0x02,
1022                } },
1023                .radio = {
1024                        .name = name_radio,
1025                        .amux = LINE1,
1026                        .gpio = 0x01,
1027                },
1028                .mute  = {
1029                        .name = name_mute,
1030                        .amux = TV,
1031                        .gpio = 0x00,
1032                },
1033        },
1034        [SAA7134_BOARD_BMK_MPEX_TUNER] = {
1035                /* "Greg Wickham <greg.wickham@grangenet.net> */
1036                .name           = "BMK MPEX Tuner",
1037                .audio_clock    = 0x200000,
1038                .tuner_type     = TUNER_PHILIPS_PAL,
1039                .radio_type     = UNSET,
1040                .tuner_addr     = ADDR_UNSET,
1041                .radio_addr     = ADDR_UNSET,
1042                .empress_addr   = 0x20,
1043                .inputs         = {{
1044                        .name = name_comp1,
1045                        .vmux = 1,
1046                        .amux = LINE1,
1047                },{
1048                        .name = name_svideo,
1049                        .vmux = 8,
1050                        .amux = LINE1,
1051                },{
1052                        .name = name_tv,
1053                        .vmux = 3,
1054                        .amux = TV,
1055                        .tv   = 1,
1056                }},
1057                .mpeg      = SAA7134_MPEG_EMPRESS,
1058                .video_out = CCIR656,
1059        },
1060        [SAA7134_BOARD_ASUSTEK_TVFM7133] = {
1061                .name           = "ASUS TV-FM 7133",
1062                .audio_clock    = 0x00187de7,
1063                /* probably wrong, the 7133 one is the NTSC version ...
1064                * .tuner_type  = TUNER_PHILIPS_FM1236_MK3 */
1065                .tuner_type     = TUNER_LG_NTSC_NEW_TAPC,
1066                .radio_type     = UNSET,
1067                .tuner_addr     = ADDR_UNSET,
1068                .radio_addr     = ADDR_UNSET,
1069                .tda9887_conf   = TDA9887_PRESENT,
1070                .inputs         = {{
1071                        .name = name_tv,
1072                        .vmux = 1,
1073                        .amux = TV,
1074                        .tv   = 1,
1075
1076                },{
1077                        .name = name_comp1,
1078                        .vmux = 4,
1079                        .amux = LINE2,
1080                },{
1081                        .name = name_svideo,
1082                        .vmux = 6,
1083                        .amux = LINE2,
1084                }},
1085                .radio = {
1086                        .name = name_radio,
1087                        .amux = LINE1,
1088                },
1089        },
1090        [SAA7134_BOARD_PINNACLE_PCTV_STEREO] = {
1091                .name           = "Pinnacle PCTV Stereo (saa7134)",
1092                .audio_clock    = 0x00187de7,
1093                .tuner_type     = TUNER_MT2032,
1094                .radio_type     = UNSET,
1095                .tuner_addr     = ADDR_UNSET,
1096                .radio_addr     = ADDR_UNSET,
1097                .tda9887_conf   = TDA9887_PRESENT | TDA9887_INTERCARRIER | TDA9887_PORT2_INACTIVE,
1098                .inputs         = {{
1099                        .name = name_tv,
1100                        .vmux = 3,
1101                        .amux = TV,
1102                        .tv   = 1,
1103                },{
1104                        .name = name_comp1,
1105                        .vmux = 0,
1106                        .amux = LINE2,
1107                },{
1108                        .name = name_comp2,
1109                        .vmux = 1,
1110                        .amux = LINE2,
1111                },{
1112                        .name = name_svideo,
1113                        .vmux = 8,
1114                        .amux = LINE2,
1115                }},
1116        },
1117        [SAA7134_BOARD_MANLI_MTV002] = {
1118                /* Ognjen Nastic <ognjen@logosoft.ba> */
1119                .name           = "Manli MuchTV M-TV002",
1120                .audio_clock    = 0x00200000,
1121                .tuner_type     = TUNER_PHILIPS_PAL,
1122                .radio_type     = UNSET,
1123                .tuner_addr     = ADDR_UNSET,
1124                .radio_addr     = ADDR_UNSET,
1125                .inputs         = {{
1126                        .name = name_svideo,
1127                        .vmux = 8,
1128                        .amux = LINE1,
1129                },{
1130                        .name   = name_comp1,
1131                        .vmux   = 1,
1132                        .amux   = LINE1,
1133                },{
1134                        .name = name_tv,
1135                        .vmux = 3,
1136                        .amux = LINE2,
1137                        .tv   = 1,
1138                }},
1139                .radio = {
1140                        .name = name_radio,
1141                        .amux = LINE2,
1142                },
1143        },
1144        [SAA7134_BOARD_MANLI_MTV001] = {
1145                /* Ognjen Nastic <ognjen@logosoft.ba> UNTESTED */
1146                .name           = "Manli MuchTV M-TV001",
1147                .audio_clock    = 0x00200000,
1148                .tuner_type     = TUNER_PHILIPS_PAL,
1149                .radio_type     = UNSET,
1150                .tuner_addr     = ADDR_UNSET,
1151                .radio_addr     = ADDR_UNSET,
1152                .inputs         = {{
1153                        .name = name_svideo,
1154                        .vmux = 8,
1155                        .amux = LINE1,
1156                },{
1157                        .name = name_comp1,
1158                        .vmux = 1,
1159                        .amux = LINE1,
1160                },{
1161                        .name = name_tv,
1162                        .vmux = 3,
1163                        .amux = LINE2,
1164                        .tv   = 1,
1165                }},
1166                .mute = {
1167                        .name = name_mute,
1168                        .amux = LINE1,
1169                },
1170        },
1171        [SAA7134_BOARD_TG3000TV] = {
1172                /* TransGear 3000TV */
1173                .name           = "Nagase Sangyo TransGear 3000TV",
1174                .audio_clock    = 0x00187de7,
1175                .tuner_type     = TUNER_PHILIPS_NTSC_M,
1176                .radio_type     = UNSET,
1177                .tuner_addr     = ADDR_UNSET,
1178                .radio_addr     = ADDR_UNSET,
1179                .inputs         = {{
1180                        .name = name_tv,
1181                        .vmux = 1,
1182                        .amux = LINE2,
1183                        .tv   = 1,
1184                },{
1185                        .name = name_comp1,
1186                        .vmux = 3,
1187                        .amux = LINE2,
1188                },{
1189                        .name = name_svideo,
1190                        .vmux = 8,
1191                        .amux = LINE2,
1192                }},
1193        },
1194        [SAA7134_BOARD_ECS_TVP3XP] = {
1195                .name           = "Elitegroup ECS TVP3XP FM1216 Tuner Card(PAL-BG,FM) ",
1196                .audio_clock    = 0x187de7,  /* xtal 32.1 MHz */
1197                .tuner_type     = TUNER_PHILIPS_PAL,
1198                .radio_type     = UNSET,
1199                .tuner_addr     = ADDR_UNSET,
1200                .radio_addr     = ADDR_UNSET,
1201                .inputs         = {{
1202                        .name   = name_tv,
1203                        .vmux   = 1,
1204                        .amux   = TV,
1205                        .tv     = 1,
1206                },{
1207                        .name   = name_tv_mono,
1208                        .vmux   = 1,
1209                        .amux   = LINE2,
1210                        .tv     = 1,
1211                },{
1212                        .name   = name_comp1,
1213                        .vmux   = 3,
1214                        .amux   = LINE1,
1215                },{
1216                        .name   = name_svideo,
1217                        .vmux   = 8,
1218                        .amux   = LINE1,
1219                },{
1220                        .name   = "CVid over SVid",
1221                        .vmux   = 0,
1222                        .amux   = LINE1,
1223                }},
1224                .radio = {
1225                        .name   = name_radio,
1226                        .amux   = LINE2,
1227                },
1228        },
1229        [SAA7134_BOARD_ECS_TVP3XP_4CB5] = {
1230                .name           = "Elitegroup ECS TVP3XP FM1236 Tuner Card (NTSC,FM)",
1231                .audio_clock    = 0x187de7,
1232                .tuner_type     = TUNER_PHILIPS_NTSC,
1233                .radio_type     = UNSET,
1234                .tuner_addr     = ADDR_UNSET,
1235                .radio_addr     = ADDR_UNSET,
1236                .inputs         = {{
1237                        .name   = name_tv,
1238                        .vmux   = 1,
1239                        .amux   = TV,
1240                        .tv     = 1,
1241                },{
1242                        .name   = name_tv_mono,
1243                        .vmux   = 1,
1244                        .amux   = LINE2,
1245                        .tv     = 1,
1246                },{
1247                        .name   = name_comp1,
1248                        .vmux   = 3,
1249                        .amux   = LINE1,
1250                },{
1251                        .name   = name_svideo,
1252                        .vmux   = 8,
1253                        .amux   = LINE1,
1254                },{
1255                        .name   = "CVid over SVid",
1256                        .vmux   = 0,
1257                        .amux   = LINE1,
1258                }},
1259                .radio = {
1260                        .name   = name_radio,
1261                        .amux   = LINE2,
1262                },
1263        },
1264    [SAA7134_BOARD_ECS_TVP3XP_4CB6] = {
1265                /* Barry Scott <barry.scott@onelan.co.uk> */
1266                .name           = "Elitegroup ECS TVP3XP FM1246 Tuner Card (PAL,FM)",
1267                .audio_clock    = 0x187de7,
1268                .tuner_type     = TUNER_PHILIPS_PAL_I,
1269                .radio_type     = UNSET,
1270                .tuner_addr     = ADDR_UNSET,
1271                .radio_addr     = ADDR_UNSET,
1272                .inputs         = {{
1273                        .name   = name_tv,
1274                        .vmux   = 1,
1275                        .amux   = TV,
1276                        .tv     = 1,
1277                },{
1278                        .name   = name_tv_mono,
1279                        .vmux   = 1,
1280                        .amux   = LINE2,
1281                        .tv     = 1,
1282                },{
1283                        .name   = name_comp1,
1284                        .vmux   = 3,
1285                        .amux   = LINE1,
1286                },{
1287                        .name   = name_svideo,
1288                        .vmux   = 8,
1289                        .amux   = LINE1,
1290                },{
1291                        .name   = "CVid over SVid",
1292                        .vmux   = 0,
1293                        .amux   = LINE1,
1294                }},
1295                .radio = {
1296                        .name   = name_radio,
1297                        .amux   = LINE2,
1298                },
1299        },
1300        [SAA7134_BOARD_AVACSSMARTTV] = {
1301                /* Roman Pszonczenko <romka@kolos.math.uni.lodz.pl> */
1302                .name           = "AVACS SmartTV",
1303                .audio_clock    = 0x00187de7,
1304                .tuner_type     = TUNER_PHILIPS_PAL,
1305                .radio_type     = UNSET,
1306                .tuner_addr     = ADDR_UNSET,
1307                .radio_addr     = ADDR_UNSET,
1308                .inputs         = {{
1309                        .name = name_tv,
1310                        .vmux = 1,
1311                        .amux = TV,
1312                        .tv   = 1,
1313                },{
1314                        .name = name_tv_mono,
1315                        .vmux = 1,
1316                        .amux = LINE2,
1317                        .tv   = 1,
1318                },{
1319                        .name = name_comp1,
1320                        .vmux = 0,
1321                        .amux = LINE2,
1322                },{
1323                        .name = name_comp2,
1324                        .vmux = 3,
1325                        .amux = LINE2,
1326                },{
1327                        .name = name_svideo,
1328                        .vmux = 8,
1329                        .amux = LINE2,
1330                }},
1331                .radio = {
1332                        .name = name_radio,
1333                        .amux = LINE2,
1334                        .gpio = 0x200000,
1335                },
1336        },
1337        [SAA7134_BOARD_AVERMEDIA_DVD_EZMAKER] = {
1338                /* Michael Smith <msmith@cbnco.com> */
1339                .name           = "AVerMedia DVD EZMaker",
1340                .audio_clock    = 0x00187de7,
1341                .tuner_type     = TUNER_ABSENT,
1342                .radio_type     = UNSET,
1343                .tuner_addr     = ADDR_UNSET,
1344                .radio_addr     = ADDR_UNSET,
1345                .inputs         = {{
1346                        .name = name_comp1,
1347                        .vmux = 3,
1348                },{
1349                        .name = name_svideo,
1350                        .vmux = 8,
1351                }},
1352        },
1353        [SAA7134_BOARD_AVERMEDIA_M103] = {
1354                /* Massimo Piccioni <dafastidio@libero.it> */
1355                .name           = "AVerMedia MiniPCI DVB-T Hybrid M103",
1356                .audio_clock    = 0x187de7,
1357                .tuner_type     = TUNER_XC2028,
1358                .radio_type     = UNSET,
1359                .tuner_addr     = ADDR_UNSET,
1360                .radio_addr     = ADDR_UNSET,
1361                 .mpeg           = SAA7134_MPEG_DVB,
1362                 .inputs         = {{
1363                         .name = name_tv,
1364                         .vmux = 1,
1365                         .amux = TV,
1366                         .tv   = 1,
1367                 } },
1368        },
1369        [SAA7134_BOARD_NOVAC_PRIMETV7133] = {
1370                /* toshii@netbsd.org */
1371                .name           = "Noval Prime TV 7133",
1372                .audio_clock    = 0x00200000,
1373                .tuner_type     = TUNER_ALPS_TSBH1_NTSC,
1374                .radio_type     = UNSET,
1375                .tuner_addr     = ADDR_UNSET,
1376                .radio_addr     = ADDR_UNSET,
1377                .inputs         = {{
1378                        .name = name_comp1,
1379                        .vmux = 3,
1380                },{
1381                        .name = name_tv,
1382                        .vmux = 1,
1383                        .amux = TV,
1384                        .tv   = 1,
1385                },{
1386                        .name = name_svideo,
1387                        .vmux = 8,
1388                }},
1389        },
1390        [SAA7134_BOARD_AVERMEDIA_STUDIO_305] = {
1391                .name           = "AverMedia AverTV Studio 305",
1392                .audio_clock    = 0x00187de7,
1393                .tuner_type     = TUNER_PHILIPS_FM1256_IH3,
1394                .radio_type     = UNSET,
1395                .tuner_addr     = ADDR_UNSET,
1396                .radio_addr     = ADDR_UNSET,
1397                .tda9887_conf   = TDA9887_PRESENT,
1398                .inputs         = {{
1399                        .name = name_tv,
1400                        .vmux = 1,
1401                        .amux = LINE2,
1402                        .tv   = 1,
1403                },{
1404                        .name = name_comp1,
1405                        .vmux = 0,
1406                        .amux = LINE2,
1407                },{
1408                        .name = name_comp2,
1409                        .vmux = 3,
1410                        .amux = LINE2,
1411                },{
1412                        .name = name_svideo,
1413                        .vmux = 8,
1414                        .amux = LINE2,
1415                }},
1416                .radio = {
1417                        .name = name_radio,
1418                        .amux = LINE2,
1419                },
1420                .mute = {
1421                        .name = name_mute,
1422                        .amux = LINE1,
1423                },
1424        },
1425        [SAA7134_BOARD_AVERMEDIA_STUDIO_505] = {
1426                /* Vasiliy Temnikov <vaka@newmail.ru> */
1427                .name           = "AverMedia AverTV Studio 505",
1428                .audio_clock    = 0x00187de7,
1429                .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
1430                .radio_type     = UNSET,
1431                .tuner_addr     = ADDR_UNSET,
1432                .radio_addr     = ADDR_UNSET,
1433                .tda9887_conf   = TDA9887_PRESENT,
1434                .inputs         = { {
1435                        .name = name_tv,
1436                        .vmux = 1,
1437                        .amux = LINE2,
1438                        .tv   = 1,
1439                }, {
1440                        .name = name_comp1,
1441                        .vmux = 0,
1442                        .amux = LINE2,
1443                }, {
1444                        .name = name_comp2,
1445                        .vmux = 3,
1446                        .amux = LINE2,
1447                },{
1448                        .name = name_svideo,
1449                        .vmux = 8,
1450                        .amux = LINE2,
1451                } },
1452                .radio = {
1453                        .name = name_radio,
1454                        .amux = LINE2,
1455                },
1456                .mute = {
1457                        .name = name_mute,
1458                        .amux = LINE1,
1459                },
1460        },
1461        [SAA7134_BOARD_UPMOST_PURPLE_TV] = {
1462                .name           = "UPMOST PURPLE TV",
1463                .audio_clock    = 0x00187de7,
1464                .tuner_type     = TUNER_PHILIPS_FM1236_MK3,
1465                .radio_type     = UNSET,
1466                .tuner_addr     = ADDR_UNSET,
1467                .radio_addr     = ADDR_UNSET,
1468                .tda9887_conf   = TDA9887_PRESENT,
1469                .inputs         = {{
1470                        .name = name_tv,
1471                        .vmux = 7,
1472                        .amux = TV,
1473                        .tv   = 1,
1474                },{
1475                        .name = name_svideo,
1476                        .vmux = 7,
1477                        .amux = LINE1,
1478                }},
1479        },
1480        [SAA7134_BOARD_ITEMS_MTV005] = {
1481                /* Norman Jonas <normanjonas@arcor.de> */
1482                .name           = "Items MuchTV Plus / IT-005",
1483                .audio_clock    = 0x00187de7,
1484                .tuner_type     = TUNER_PHILIPS_PAL,
1485                .radio_type     = UNSET,
1486                .tuner_addr     = ADDR_UNSET,
1487                .radio_addr     = ADDR_UNSET,
1488                .inputs         = {{
1489                        .name = name_tv,
1490                        .vmux = 3,
1491                        .amux = TV,
1492                        .tv   = 1,
1493                },{
1494                        .name   = name_comp1,
1495                        .vmux   = 1,
1496                        .amux   = LINE1,
1497                },{
1498                        .name = name_svideo,
1499                        .vmux = 8,
1500                        .amux = LINE1,
1501                }},
1502                .radio = {
1503                        .name = name_radio,
1504                        .amux = LINE2,
1505                },
1506        },
1507        [SAA7134_BOARD_CINERGY200] = {
1508                .name           = "Terratec Cinergy 200 TV",
1509                .audio_clock    = 0x00200000,
1510                .tuner_type     = TUNER_PHILIPS_PAL,
1511                .radio_type     = UNSET,
1512                .tuner_addr     = ADDR_UNSET,
1513                .radio_addr     = ADDR_UNSET,
1514                .inputs         = {{
1515                        .name = name_tv,
1516                        .vmux = 1,
1517                        .amux = LINE2,
1518                        .tv   = 1,
1519                },{
1520                        .name = name_comp1,
1521                        .vmux = 4,
1522                        .amux = LINE1,
1523                },{
1524                        .name = name_svideo,
1525                        .vmux = 8,
1526                        .amux = LINE1,
1527                },{
1528                        .name = name_comp2, /* CVideo over SVideo Connector */
1529                        .vmux = 0,
1530                        .amux = LINE1,
1531                }},
1532                .mute = {
1533                        .name = name_mute,
1534                        .amux = LINE2,
1535                },
1536        },
1537        [SAA7134_BOARD_VIDEOMATE_TV_PVR] = {
1538                /* Alain St-Denis <alain@topaze.homeip.net> */
1539                .name           = "Compro VideoMate TV PVR/FM",
1540                .audio_clock    = 0x00187de7,
1541                .tuner_type     = TUNER_PHILIPS_NTSC_M,
1542                .radio_type     = UNSET,
1543                .tuner_addr     = ADDR_UNSET,
1544                .radio_addr     = ADDR_UNSET,
1545                .gpiomask       = 0x808c0080,
1546                .inputs         = {{
1547                        .name = name_svideo,
1548                        .vmux = 8,
1549                        .amux = LINE1,
1550                        .gpio = 0x00080,
1551                },{
1552                        .name = name_comp1,
1553                        .vmux = 3,
1554                        .amux = LINE1,
1555                        .gpio = 0x00080,
1556                },{
1557                        .name = name_tv,
1558                        .vmux = 1,
1559                        .amux = LINE2_LEFT,
1560                        .tv   = 1,
1561                        .gpio = 0x00080,
1562                }},
1563                .radio = {
1564                        .name = name_radio,
1565                        .amux = LINE2,
1566                        .gpio = 0x80000,
1567                },
1568                .mute = {
1569                        .name = name_mute,
1570                        .amux = LINE2,
1571                        .gpio = 0x40000,
1572                },
1573        },
1574        [SAA7134_BOARD_SABRENT_SBTTVFM] = {
1575                /* Michael Rodriguez-Torrent <mrtorrent@asu.edu> */
1576                .name           = "Sabrent SBT-TVFM (saa7130)",
1577                .audio_clock    = 0x00187de7,
1578                .tuner_type     = TUNER_PHILIPS_NTSC_M,
1579                .radio_type     = UNSET,
1580                .tuner_addr     = ADDR_UNSET,
1581                .radio_addr     = ADDR_UNSET,
1582                .inputs         = {{
1583                        .name = name_comp1,
1584                        .vmux = 1,
1585                        .amux = LINE1,
1586                },{
1587                        .name = name_tv,
1588                        .vmux = 3,
1589                        .amux = LINE2,
1590                        .tv   = 1,
1591                },{
1592                        .name = name_svideo,
1593                        .vmux = 8,
1594                        .amux = LINE1,
1595                }},
1596                .radio = {
1597                        .name   = name_radio,
1598                        .amux   = LINE2,
1599                },
1600        },
1601        [SAA7134_BOARD_ZOLID_XPERT_TV7134] = {
1602                /* Helge Jensen <helge.jensen@slog.dk> */
1603                .name           = ":Zolid Xpert TV7134",
1604                .audio_clock    = 0x00187de7,
1605                .tuner_type     = TUNER_PHILIPS_NTSC,
1606                .radio_type     = UNSET,
1607                .tuner_addr     = ADDR_UNSET,
1608                .radio_addr     = ADDR_UNSET,
1609                .inputs         = {{
1610                        .name = name_svideo,
1611                        .vmux = 8,
1612                        .amux = LINE1,
1613                },{
1614                        .name = name_comp1,
1615                        .vmux = 3,
1616                        .amux = LINE1,
1617                },{
1618                        .name = name_tv,
1619                        .vmux = 1,
1620                        .amux = LINE2,
1621                        .tv   = 1,
1622                }},
1623        },
1624        [SAA7134_BOARD_EMPIRE_PCI_TV_RADIO_LE] = {
1625                /* "Matteo Az" <matte.az@nospam.libero.it> ;-) */
1626                .name           = "Empire PCI TV-Radio LE",
1627                .audio_clock    = 0x00187de7,
1628                .tuner_type     = TUNER_PHILIPS_PAL,
1629                .radio_type     = UNSET,
1630                .tuner_addr     = ADDR_UNSET,
1631                .radio_addr     = ADDR_UNSET,
1632                .gpiomask       = 0x4000,
1633                .inputs         = {{
1634                        .name = name_tv_mono,
1635                        .vmux = 1,
1636                        .amux = LINE2,
1637                        .gpio = 0x8000,
1638                        .tv   = 1,
1639                },{
1640                        .name = name_comp1,
1641                        .vmux = 3,
1642                        .amux = LINE1,
1643                        .gpio = 0x8000,
1644                },{
1645                        .name = name_svideo,
1646                        .vmux = 6,
1647                        .amux = LINE1,
1648                        .gpio = 0x8000,
1649                }},
1650                .radio = {
1651                        .name = name_radio,
1652                        .amux = LINE1,
1653                        .gpio = 0x8000,
1654                },
1655                .mute = {
1656                        .name = name_mute,
1657                        .amux = TV,
1658                        .gpio =0x8000,
1659                }
1660        },
1661        [SAA7134_BOARD_AVERMEDIA_STUDIO_307] = {
1662                /*
1663                Nickolay V. Shmyrev <nshmyrev@yandex.ru>
1664                Lots of thanks to Andrey Zolotarev <zolotarev_andrey@mail.ru>
1665                */
1666                .name           = "Avermedia AVerTV Studio 307",
1667                .audio_clock    = 0x00187de7,
1668                .tuner_type     = TUNER_PHILIPS_FM1256_IH3,
1669                .radio_type     = UNSET,
1670                .tuner_addr     = ADDR_UNSET,
1671                .radio_addr     = ADDR_UNSET,
1672                .tda9887_conf   = TDA9887_PRESENT,
1673                .gpiomask       = 0x03,
1674                .inputs         = {{
1675                        .name = name_tv,
1676                        .vmux = 1,
1677                        .amux = TV,
1678                        .tv   = 1,
1679                        .gpio = 0x00,
1680                },{
1681                        .name = name_comp,
1682                        .vmux = 3,
1683                        .amux = LINE1,
1684                        .gpio = 0x02,
1685                },{
1686                        .name = name_svideo,
1687                        .vmux = 8,
1688                        .amux = LINE1,
1689                        .gpio = 0x02,
1690                }},
1691                .radio = {
1692                        .name = name_radio,
1693                        .amux = LINE1,
1694                        .gpio = 0x01,
1695                },
1696                .mute  = {
1697                        .name = name_mute,
1698                        .amux = LINE1,
1699                        .gpio = 0x00,
1700                },
1701        },
1702        [SAA7134_BOARD_AVERMEDIA_GO_007_FM] = {
1703                .name           = "Avermedia AVerTV GO 007 FM",
1704                .audio_clock    = 0x00187de7,
1705                .tuner_type     = TUNER_PHILIPS_TDA8290,
1706                .radio_type     = UNSET,
1707                .tuner_addr     = ADDR_UNSET,
1708                .radio_addr     = ADDR_UNSET,
1709                .gpiomask       = 0x00300003,
1710                /* .gpiomask       = 0x8c240003, */
1711                .inputs         = {{
1712                        .name = name_tv,
1713                        .vmux = 1,
1714                        .amux = TV,
1715                        .tv   = 1,
1716                        .gpio = 0x01,
1717                },{
1718                        .name = name_comp1,
1719                        .vmux = 0,
1720                        .amux = LINE1,
1721                        .gpio = 0x02,
1722                },{
1723                        .name = name_svideo,
1724                        .vmux = 6,
1725                        .amux = LINE1,
1726                        .gpio = 0x02,
1727                }},
1728                .radio = {
1729                        .name = name_radio,
1730                        .amux = TV,
1731                        .gpio = 0x00300001,
1732                },
1733                .mute = {
1734                        .name = name_mute,
1735                        .amux = TV,
1736                        .gpio = 0x01,
1737                },
1738        },
1739        [SAA7134_BOARD_AVERMEDIA_CARDBUS] = {
1740                /* Kees.Blom@cwi.nl */
1741                .name           = "AVerMedia Cardbus TV/Radio (E500)",
1742                .audio_clock    = 0x187de7,
1743                .tuner_type     = TUNER_PHILIPS_TDA8290,
1744                .radio_type     = UNSET,
1745                .tuner_addr     = ADDR_UNSET,
1746                .radio_addr     = ADDR_UNSET,
1747                .inputs         = {{
1748                        .name = name_tv,
1749                        .vmux = 1,
1750                        .amux = TV,
1751                        .tv   = 1,
1752                },{
1753                        .name = name_comp1,
1754                        .vmux = 3,
1755                        .amux = LINE2,
1756                },{
1757                        .name = name_svideo,
1758                        .vmux = 8,
1759                        .amux = LINE1,
1760                }},
1761                .radio = {
1762                        .name = name_radio,
1763                        .amux = LINE1,
1764                },
1765        },
1766        [SAA7134_BOARD_AVERMEDIA_CARDBUS_501] = {
1767                /* Oldrich Jedlicka <oldium.pro@seznam.cz> */
1768                .name           = "AVerMedia Cardbus TV/Radio (E501R)",
1769                .audio_clock    = 0x187de7,
1770                .tuner_type     = TUNER_ALPS_TSBE5_PAL,
1771                .radio_type     = TUNER_TEA5767,
1772                .tuner_addr     = 0x61,
1773                .radio_addr     = 0x60,
1774                .tda9887_conf   = TDA9887_PRESENT,
1775                .gpiomask       = 0x08000000,
1776                .inputs         = { {
1777                        .name = name_tv,
1778                        .vmux = 1,
1779                        .amux = TV,
1780                        .tv   = 1,
1781                        .gpio = 0x08000000,
1782                }, {
1783                        .name = name_comp1,
1784                        .vmux = 3,
1785                        .amux = LINE1,
1786                        .gpio = 0x08000000,
1787                }, {
1788                        .name = name_svideo,
1789                        .vmux = 8,
1790                        .amux = LINE1,
1791                        .gpio = 0x08000000,
1792                } },
1793                .radio = {
1794                        .name = name_radio,
1795                        .amux = LINE2,
1796                        .gpio = 0x00000000,
1797                },
1798        },
1799        [SAA7134_BOARD_CINERGY400_CARDBUS] = {
1800                .name           = "Terratec Cinergy 400 mobile",
1801                .audio_clock    = 0x187de7,
1802                .tuner_type     = TUNER_ALPS_TSBE5_PAL,
1803                .radio_type     = UNSET,
1804                .tuner_addr     = ADDR_UNSET,
1805                .radio_addr     = ADDR_UNSET,
1806                .tda9887_conf   = TDA9887_PRESENT,
1807                .inputs         = {{
1808                        .name = name_tv,
1809                        .vmux = 1,
1810                        .amux = TV,
1811                        .tv   = 1,
1812                },{
1813                        .name = name_tv_mono,
1814                        .vmux = 1,
1815                        .amux = LINE2,
1816                        .tv   = 1,
1817                },{
1818                        .name = name_comp1,
1819                        .vmux = 3,
1820                        .amux = LINE1,
1821                },{
1822                        .name = name_svideo,
1823                        .vmux = 8,
1824                        .amux = LINE1,
1825                }},
1826        },
1827        [SAA7134_BOARD_CINERGY600_MK3] = {
1828                .name           = "Terratec Cinergy 600 TV MK3",
1829                .audio_clock    = 0x00200000,
1830                .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
1831                .radio_type     = UNSET,
1832                .tuner_addr     = ADDR_UNSET,
1833                .radio_addr     = ADDR_UNSET,
1834                .rds_addr       = 0x10,
1835                .tda9887_conf   = TDA9887_PRESENT,
1836                .inputs         = {{
1837                        .name = name_tv,
1838                        .vmux = 1,
1839                        .amux = TV,
1840                        .tv   = 1,
1841                },{
1842                        .name = name_comp1,
1843                        .vmux = 4,
1844                        .amux = LINE1,
1845                },{
1846                        .name = name_svideo,
1847                        .vmux = 8,
1848                        .amux = LINE1,
1849                },{
1850                        .name = name_comp2, /* CVideo over SVideo Connector */
1851                        .vmux = 0,
1852                        .amux = LINE1,
1853                }},
1854                .radio = {
1855                        .name = name_radio,
1856                        .amux = LINE2,
1857                },
1858        },
1859        [SAA7134_BOARD_VIDEOMATE_GOLD_PLUS] = {
1860                /* Dylan Walkden <dylan_walkden@hotmail.com> */
1861                .name           = "Compro VideoMate Gold+ Pal",
1862                .audio_clock    = 0x00187de7,
1863                .tuner_type     = TUNER_PHILIPS_PAL,
1864                .radio_type     = UNSET,
1865                .tuner_addr     = ADDR_UNSET,
1866                .radio_addr     = ADDR_UNSET,
1867                .gpiomask       = 0x1ce780,
1868                .inputs         = {{
1869                        .name = name_svideo,
1870                        .vmux = 0,              /* CVideo over SVideo Connector - ok? */
1871                        .amux = LINE1,
1872                        .gpio = 0x008080,
1873                },{
1874                        .name = name_comp1,
1875                        .vmux = 3,
1876                        .amux = LINE1,
1877                        .gpio = 0x008080,
1878                },{
1879                        .name = name_tv,
1880                        .vmux = 1,
1881                        .amux = TV,
1882                        .tv   = 1,
1883                        .gpio = 0x008080,
1884                }},
1885                .radio = {
1886                        .name = name_radio,
1887                        .amux = LINE2,
1888                        .gpio = 0x80000,
1889                },
1890                .mute = {
1891                        .name = name_mute,
1892                        .amux = LINE2,
1893                        .gpio = 0x0c8000,
1894                },
1895        },
1896        [SAA7134_BOARD_PINNACLE_300I_DVBT_PAL] = {
1897                .name           = "Pinnacle PCTV 300i DVB-T + PAL",
1898                .audio_clock    = 0x00187de7,
1899                .tuner_type     = TUNER_MT2032,
1900                .radio_type     = UNSET,
1901                .tuner_addr     = ADDR_UNSET,
1902                .radio_addr     = ADDR_UNSET,
1903                .tda9887_conf   = TDA9887_PRESENT | TDA9887_INTERCARRIER | TDA9887_PORT2_INACTIVE,
1904                .mpeg           = SAA7134_MPEG_DVB,
1905                .inputs         = {{
1906                        .name = name_tv,
1907                        .vmux = 3,
1908                        .amux = TV,
1909                        .tv   = 1,
1910                },{
1911                        .name = name_comp1,
1912                        .vmux = 0,
1913                        .amux = LINE2,
1914                },{
1915                        .name = name_comp2,
1916                        .vmux = 1,
1917                        .amux = LINE2,
1918                },{
1919                        .name = name_svideo,
1920                        .vmux = 8,
1921                        .amux = LINE2,
1922                }},
1923        },
1924        [SAA7134_BOARD_PROVIDEO_PV952] = {
1925                /* andreas.kretschmer@web.de */
1926                .name           = "ProVideo PV952",
1927                .audio_clock    = 0x00187de7,
1928                .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
1929                .radio_type     = UNSET,
1930                .tuner_addr     = ADDR_UNSET,
1931                .radio_addr     = ADDR_UNSET,
1932                .tda9887_conf   = TDA9887_PRESENT,
1933                .inputs         = {{
1934                        .name = name_comp1,
1935                        .vmux = 0,
1936                        .amux = LINE1,
1937                },{
1938                        .name = name_tv,
1939                        .vmux = 1,
1940                        .amux = TV,
1941                        .tv   = 1,
1942                },{
1943                        .name = name_tv_mono,
1944                        .vmux = 1,
1945                        .amux = LINE2,
1946                        .tv   = 1,
1947                }},
1948                .radio = {
1949                        .name = name_radio,
1950                        .amux = LINE2,
1951                },
1952        },
1953        [SAA7134_BOARD_AVERMEDIA_305] = {
1954                /* much like the "studio" version but without radio
1955                * and another tuner (sirspiritus@yandex.ru) */
1956                .name           = "AverMedia AverTV/305",
1957                .audio_clock    = 0x00187de7,
1958                .tuner_type     = TUNER_PHILIPS_FQ1216ME,
1959                .radio_type     = UNSET,
1960                .tuner_addr     = ADDR_UNSET,
1961                .radio_addr     = ADDR_UNSET,
1962                .tda9887_conf   = TDA9887_PRESENT,
1963                .inputs         = {{
1964                        .name = name_tv,
1965                        .vmux = 1,
1966                        .amux = LINE2,
1967                        .tv   = 1,
1968                },{
1969                        .name = name_comp1,
1970                        .vmux = 0,
1971                        .amux = LINE2,
1972                },{
1973                        .name = name_comp2,
1974                        .vmux = 3,
1975                        .amux = LINE2,
1976                },{
1977                        .name = name_svideo,
1978                        .vmux = 8,
1979                        .amux = LINE2,
1980                }},
1981                .mute = {
1982                        .name = name_mute,
1983                        .amux = LINE1,
1984                },
1985        },
1986        [SAA7134_BOARD_FLYDVBTDUO] = {
1987                /* LifeView FlyDVB-T DUO */
1988                /* "Nico Sabbi <nsabbi@tiscali.it>  Hartmut Hackmann hartmut.hackmann@t-online.de*/
1989                .name           = "LifeView FlyDVB-T DUO / MSI TV@nywhere Duo",
1990                .audio_clock    = 0x00200000,
1991                .tuner_type     = TUNER_PHILIPS_TDA8290,
1992                .radio_type     = UNSET,
1993                .tuner_addr     = ADDR_UNSET,
1994                .radio_addr     = ADDR_UNSET,
1995                .gpiomask       = 0x00200000,
1996                .mpeg           = SAA7134_MPEG_DVB,
1997                .inputs         = {{
1998                        .name = name_tv,
1999                        .vmux = 1,
2000                        .amux = TV,
2001                        .gpio = 0x200000,       /* GPIO21=High for TV input */
2002                        .tv   = 1,
2003                },{
2004                        .name = name_comp1,     /* Composite signal on S-Video input */
2005                        .vmux = 0,
2006                        .amux = LINE2,
2007                },{
2008                        .name = name_comp2,     /* Composite input */
2009                        .vmux = 3,
2010                        .amux = LINE2,
2011                },{
2012                        .name = name_svideo,    /* S-Video signal on S-Video input */
2013                        .vmux = 8,
2014                        .amux = LINE2,
2015                }},
2016                .radio = {
2017                        .name = name_radio,
2018                        .amux = TV,
2019                        .gpio = 0x000000,       /* GPIO21=Low for FM radio antenna */
2020                },
2021        },
2022        [SAA7134_BOARD_PHILIPS_TOUGH] = {
2023                .name           = "Philips TOUGH DVB-T reference design",
2024                .tuner_type     = TUNER_ABSENT,
2025                .audio_clock    = 0x00187de7,
2026                .radio_type     = UNSET,
2027                .tuner_addr     = ADDR_UNSET,
2028                .radio_addr     = ADDR_UNSET,
2029                .mpeg           = SAA7134_MPEG_DVB,
2030                .inputs = {{
2031                        .name   = name_comp1,
2032                        .vmux   = 0,
2033                        .amux   = LINE1,
2034                },{
2035                        .name   = name_svideo,
2036                        .vmux   = 8,
2037                        .amux   = LINE1,
2038                }},
2039        },
2040        [SAA7134_BOARD_AVERMEDIA_307] = {
2041                /*
2042                Davydov Vladimir <vladimir@iqmedia.com>
2043                */
2044                .name           = "Avermedia AVerTV 307",
2045                .audio_clock    = 0x00187de7,
2046                .tuner_type     = TUNER_PHILIPS_FQ1216ME,
2047                .radio_type     = UNSET,
2048                .tuner_addr     = ADDR_UNSET,
2049                .radio_addr     = ADDR_UNSET,
2050                .tda9887_conf   = TDA9887_PRESENT,
2051                .inputs         = {{
2052                        .name = name_tv,
2053                        .vmux = 1,
2054                        .amux = TV,
2055                        .tv   = 1,
2056                },{
2057                        .name = name_comp1,
2058                        .vmux = 0,
2059                        .amux = LINE1,
2060                },{
2061                        .name = name_comp2,
2062                        .vmux = 3,
2063                        .amux = LINE1,
2064                },{
2065                        .name = name_svideo,
2066                        .vmux = 8,
2067                        .amux = LINE1,
2068                }},
2069        },
2070        [SAA7134_BOARD_ADS_INSTANT_TV] = {
2071                .name           = "ADS Tech Instant TV (saa7135)",
2072                .audio_clock    = 0x00187de7,
2073                .tuner_type     = TUNER_PHILIPS_TDA8290,
2074                .radio_type     = UNSET,
2075                .tuner_addr     = ADDR_UNSET,
2076                .radio_addr     = ADDR_UNSET,
2077                .inputs         = {{
2078                        .name = name_tv,
2079                        .vmux = 1,
2080                        .amux = TV,
2081                        .tv   = 1,
2082                },{
2083                        .name = name_comp1,
2084                        .vmux = 3,
2085                        .amux = LINE2,
2086                },{
2087                        .name = name_svideo,
2088                        .vmux = 8,
2089                        .amux = LINE2,
2090                }},
2091        },
2092        [SAA7134_BOARD_KWORLD_VSTREAM_XPERT] = {
2093                .name           = "Kworld/Tevion V-Stream Xpert TV PVR7134",
2094                .audio_clock    = 0x00187de7,
2095                .tuner_type     = TUNER_PHILIPS_PAL_I,
2096                .radio_type     = UNSET,
2097                .tuner_addr     = ADDR_UNSET,
2098                .radio_addr     = ADDR_UNSET,
2099                .gpiomask       = 0x0700,
2100                .inputs = {{
2101                        .name   = name_tv,
2102                        .vmux   = 1,
2103                        .amux   = TV,
2104                        .tv     = 1,
2105                        .gpio   = 0x000,
2106                },{
2107                        .name   = name_comp1,
2108                        .vmux   = 3,
2109                        .amux   = LINE1,
2110                        .gpio   = 0x200,                /* gpio by DScaler */
2111                },{
2112                        .name   = name_svideo,
2113                        .vmux   = 0,
2114                        .amux   = LINE1,
2115                        .gpio   = 0x200,
2116                }},
2117                .radio = {
2118                        .name   = name_radio,
2119                        .amux   = LINE1,
2120                        .gpio   = 0x100,
2121                },
2122                .mute  = {
2123                        .name = name_mute,
2124                        .amux = TV,
2125                        .gpio = 0x000,
2126                },
2127        },
2128        [SAA7134_BOARD_FLYDVBT_DUO_CARDBUS] = {
2129                .name           = "LifeView/Typhoon/Genius FlyDVB-T Duo Cardbus",
2130                .audio_clock    = 0x00200000,
2131                .tuner_type     = TUNER_PHILIPS_TDA8290,
2132                .radio_type     = UNSET,
2133                .tuner_addr     = ADDR_UNSET,
2134                .radio_addr     = ADDR_UNSET,
2135                .mpeg           = SAA7134_MPEG_DVB,
2136                .gpiomask       = 0x00200000,
2137                .inputs         = {{
2138                        .name = name_tv,
2139                        .vmux = 1,
2140                        .amux = TV,
2141                        .gpio = 0x200000,       /* GPIO21=High for TV input */
2142                        .tv   = 1,
2143                },{
2144                        .name = name_svideo,    /* S-Video signal on S-Video input */
2145                        .vmux = 8,
2146                        .amux = LINE2,
2147                },{
2148                        .name = name_comp1,     /* Composite signal on S-Video input */
2149                        .vmux = 0,
2150                        .amux = LINE2,
2151                },{
2152                        .name = name_comp2,     /* Composite input */
2153                        .vmux = 3,
2154                        .amux = LINE2,
2155                }},
2156                .radio = {
2157                        .name = name_radio,
2158                        .amux = TV,
2159                        .gpio = 0x000000,       /* GPIO21=Low for FM radio antenna */
2160                },
2161        },
2162        [SAA7134_BOARD_VIDEOMATE_TV_GOLD_PLUSII] = {
2163                .name           = "Compro VideoMate TV Gold+II",
2164                .audio_clock    = 0x002187de7,
2165                .tuner_type     = TUNER_LG_PAL_NEW_TAPC,
2166                .radio_type     = TUNER_TEA5767,
2167                .tuner_addr     = 0x63,
2168                .radio_addr     = 0x60,
2169                .gpiomask       = 0x8c1880,
2170                .inputs         = {{
2171                        .name = name_svideo,
2172                        .vmux = 0,
2173                        .amux = LINE1,
2174                        .gpio = 0x800800,
2175                },{
2176                        .name = name_comp1,
2177                        .vmux = 3,
2178                        .amux = LINE1,
2179                        .gpio = 0x801000,
2180                },{
2181                        .name = name_tv,
2182                        .vmux = 1,
2183                        .amux = TV,
2184                        .tv   = 1,
2185                        .gpio = 0x800000,
2186                }},
2187                .radio = {
2188                        .name = name_radio,
2189                        .amux = TV,
2190                        .gpio = 0x880000,
2191                },
2192                .mute = {
2193                        .name = name_mute,
2194                        .amux = LINE2,
2195                        .gpio = 0x840000,
2196                },
2197        },
2198        [SAA7134_BOARD_KWORLD_XPERT] = {
2199                /*
2200                FIXME:
2201                - Remote control doesn't initialize properly.
2202                - Audio volume starts muted,
2203                then gradually increases after channel change.
2204                - Overlay scaling problems (application error?)
2205                - Composite S-Video untested.
2206                From: Konrad Rzepecki <hannibal@megapolis.pl>
2207                */
2208                .name           = "Kworld Xpert TV PVR7134",
2209                .audio_clock    = 0x00187de7,
2210                .tuner_type     = TUNER_TENA_9533_DI,
2211                .radio_type     = TUNER_TEA5767,
2212                .tuner_addr     = 0x61,
2213                .radio_addr     = 0x60,
2214                .gpiomask       = 0x0700,
2215                .inputs = {{
2216                        .name   = name_tv,
2217                        .vmux   = 1,
2218                        .amux   = TV,
2219                        .tv     = 1,
2220                        .gpio   = 0x000,
2221                },{
2222                        .name   = name_comp1,
2223                        .vmux   = 3,
2224                        .amux   = LINE1,
2225                        .gpio   = 0x200,                /* gpio by DScaler */
2226                },{
2227                        .name   = name_svideo,
2228                        .vmux   = 0,
2229                        .amux   = LINE1,
2230                        .gpio   = 0x200,
2231                }},
2232                .radio = {
2233                        .name   = name_radio,
2234                        .amux   = LINE1,
2235                        .gpio   = 0x100,
2236                },
2237                .mute = {
2238                        .name = name_mute,
2239                        .amux = TV,
2240                        .gpio = 0x000,
2241                },
2242        },
2243        [SAA7134_BOARD_FLYTV_DIGIMATRIX] = {
2244                .name           = "FlyTV mini Asus Digimatrix",
2245                .audio_clock    = 0x00200000,
2246                .tuner_type     = TUNER_LG_TALN,
2247                .radio_type     = UNSET,
2248                .tuner_addr     = ADDR_UNSET,
2249                .radio_addr     = ADDR_UNSET,
2250                .inputs         = {{
2251                        .name = name_tv,
2252                        .vmux = 1,
2253                        .amux = TV,
2254                        .tv   = 1,
2255                },{
2256                        .name = name_tv_mono,
2257                        .vmux = 1,
2258                        .amux = LINE2,
2259                        .tv   = 1,
2260                },{
2261                        .name = name_comp1,
2262                        .vmux = 0,
2263                        .amux = LINE2,
2264                },{
2265                        .name = name_comp2,
2266                        .vmux = 3,
2267                        .amux = LINE2,
2268                },{
2269                        .name = name_svideo,
2270                        .vmux = 8,
2271                        .amux = LINE2,
2272                }},
2273                .radio = {
2274                        .name = name_radio,             /* radio unconfirmed */
2275                        .amux = LINE2,
2276                },
2277        },
2278        [SAA7134_BOARD_KWORLD_TERMINATOR] = {
2279                /* Kworld V-Stream Studio TV Terminator */
2280                /* "James Webb <jrwebb@qwest.net> */
2281                .name           = "V-Stream Studio TV Terminator",
2282                .audio_clock    = 0x00187de7,
2283                .tuner_type     = TUNER_PHILIPS_TDA8290,
2284                .radio_type     = UNSET,
2285                .tuner_addr     = ADDR_UNSET,
2286                .radio_addr     = ADDR_UNSET,
2287                .gpiomask       = 1 << 21,
2288                .inputs         = {{
2289                        .name = name_tv,
2290                        .vmux = 1,
2291                        .amux = TV,
2292                        .gpio = 0x0000000,
2293                        .tv   = 1,
2294                },{
2295                        .name = name_comp1,     /* Composite input */
2296                        .vmux = 3,
2297                        .amux = LINE2,
2298                        .gpio = 0x0000000,
2299                },{
2300                        .name = name_svideo,    /* S-Video input */
2301                        .vmux = 8,
2302                        .amux = LINE2,
2303                        .gpio = 0x0000000,
2304                }},
2305                .radio = {
2306                        .name = name_radio,
2307                        .amux = TV,
2308                        .gpio = 0x0200000,
2309                },
2310        },
2311        [SAA7134_BOARD_YUAN_TUN900] = {
2312                /* FIXME:
2313                 * S-Video and composite sources untested.
2314                 * Radio not working.
2315                 * Remote control not yet implemented.
2316                 * From : codemaster@webgeeks.be */
2317                .name           = "Yuan TUN-900 (saa7135)",
2318                .audio_clock    = 0x00187de7,
2319                .tuner_type     = TUNER_PHILIPS_TDA8290,
2320                .radio_type     = UNSET,
2321                .tuner_addr= ADDR_UNSET,
2322                .radio_addr= ADDR_UNSET,
2323                .gpiomask       = 0x00010003,
2324                .inputs         = {{
2325                        .name = name_tv,
2326                        .vmux = 1,
2327                        .amux = TV,
2328                        .tv   = 1,
2329                        .gpio = 0x01,
2330                },{
2331                        .name = name_comp1,
2332                        .vmux = 0,
2333                        .amux = LINE2,
2334                        .gpio = 0x02,
2335                },{
2336                        .name = name_svideo,
2337                        .vmux = 6,
2338                        .amux = LINE2,
2339                        .gpio = 0x02,
2340                }},
2341                .radio = {
2342                        .name = name_radio,
2343                        .amux = LINE1,
2344                        .gpio = 0x00010003,
2345                },
2346                .mute = {
2347                        .name = name_mute,
2348                        .amux = TV,
2349                        .gpio = 0x01,
2350                },
2351        },
2352        [SAA7134_BOARD_BEHOLD_409FM] = {
2353                /* <http://tuner.beholder.ru>, Sergey <skiv@orel.ru> */
2354                /*       Beholder Intl. Ltd. 2008      */
2355                /*Dmitry Belimov <d.belimov@gmail.com> */
2356                .name           = "Beholder BeholdTV 409 FM",
2357                .audio_clock    = 0x00187de7,
2358                .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
2359                .radio_type     = UNSET,
2360                .tuner_addr     = ADDR_UNSET,
2361                .radio_addr     = ADDR_UNSET,
2362                .tda9887_conf   = TDA9887_PRESENT,
2363                .gpiomask       = 0x00008000,
2364                .inputs         = {{
2365                          .name = name_tv,
2366                          .vmux = 3,
2367                          .amux = TV,
2368                          .tv   = 1,
2369                },{
2370                          .name = name_comp1,
2371                          .vmux = 1,
2372                          .amux = LINE1,
2373                },{
2374                          .name = name_svideo,
2375                          .vmux = 8,
2376                          .amux = LINE1,
2377                }},
2378                .radio = {
2379                          .name = name_radio,
2380                          .amux = LINE2,
2381                },
2382        },
2383        [SAA7134_BOARD_GOTVIEW_7135] = {
2384                /* Mike Baikov <mike@baikov.com> */
2385                /* Andrey Cvetcov <ays14@yandex.ru> */
2386                .name            = "GoTView 7135 PCI",
2387                .audio_clock     = 0x00187de7,
2388                .tuner_type      = TUNER_PHILIPS_FM1216ME_MK3,
2389                .radio_type      = UNSET,
2390                .tuner_addr      = ADDR_UNSET,
2391                .radio_addr      = ADDR_UNSET,
2392                .tda9887_conf    = TDA9887_PRESENT,
2393                .gpiomask        = 0x00200003,
2394                .inputs          = {{
2395                        .name = name_tv,
2396                        .vmux = 1,
2397                        .amux = TV,
2398                        .tv   = 1,
2399                        .gpio = 0x00200003,
2400                },{
2401                        .name = name_tv_mono,
2402                        .vmux = 1,
2403                        .amux = LINE2,
2404                        .gpio = 0x00200003,
2405                },{
2406                        .name = name_comp1,
2407                        .vmux = 3,
2408                        .amux = LINE1,
2409                        .gpio = 0x00200003,
2410                },{
2411                        .name = name_svideo,
2412                        .vmux = 8,
2413                        .amux = LINE1,
2414                        .gpio = 0x00200003,
2415                }},
2416                .radio = {
2417                        .name = name_radio,
2418                        .amux = LINE2,
2419                        .gpio = 0x00200003,
2420                },
2421                .mute = {
2422                        .name = name_mute,
2423                        .amux = TV,
2424                        .gpio = 0x00200003,
2425                },
2426        },
2427        [SAA7134_BOARD_PHILIPS_EUROPA] = {
2428                .name           = "Philips EUROPA V3 reference design",
2429                .audio_clock    = 0x00187de7,
2430                .tuner_type     = TUNER_PHILIPS_TD1316,
2431                .radio_type     = UNSET,
2432                .tuner_addr     = 0x61,
2433                .radio_addr     = ADDR_UNSET,
2434                .tda9887_conf   = TDA9887_PRESENT | TDA9887_PORT1_ACTIVE,
2435                .mpeg           = SAA7134_MPEG_DVB,
2436                .inputs = {{
2437                        .name   = name_tv,
2438                        .vmux   = 3,
2439                        .amux   = TV,
2440                        .tv     = 1,
2441                },{
2442                        .name   = name_comp1,
2443                        .vmux   = 0,
2444                        .amux   = LINE2,
2445                },{
2446                        .name   = name_svideo,
2447                        .vmux   = 8,
2448                        .amux   = LINE2,
2449                }},
2450        },
2451        [SAA7134_BOARD_VIDEOMATE_DVBT_300] = {
2452                .name           = "Compro Videomate DVB-T300",
2453                .audio_clock    = 0x00187de7,
2454                .tuner_type     = TUNER_PHILIPS_TD1316,
2455                .radio_type     = UNSET,
2456                .tuner_addr     = 0x61,
2457                .radio_addr     = ADDR_UNSET,
2458                .tda9887_conf   = TDA9887_PRESENT | TDA9887_PORT1_ACTIVE,
2459                .mpeg           = SAA7134_MPEG_DVB,
2460                .inputs = {{
2461                        .name   = name_tv,
2462                        .vmux   = 3,
2463                        .amux   = TV,
2464                        .tv     = 1,
2465                },{
2466                        .name   = name_comp1,
2467                        .vmux   = 1,
2468                        .amux   = LINE2,
2469                },{
2470                        .name   = name_svideo,
2471                        .vmux   = 8,
2472                        .amux   = LINE2,
2473                }},
2474        },
2475        [SAA7134_BOARD_VIDEOMATE_DVBT_200] = {
2476                .name           = "Compro Videomate DVB-T200",
2477                .tuner_type     = TUNER_ABSENT,
2478                .audio_clock    = 0x00187de7,
2479                .radio_type     = UNSET,
2480                .tuner_addr     = ADDR_UNSET,
2481                .radio_addr     = ADDR_UNSET,
2482                .mpeg           = SAA7134_MPEG_DVB,
2483                .inputs = {{
2484                        .name   = name_comp1,
2485                        .vmux   = 0,
2486                        .amux   = LINE1,
2487                },{
2488                        .name   = name_svideo,
2489                        .vmux   = 8,
2490                        .amux   = LINE1,
2491                }},
2492        },
2493        [SAA7134_BOARD_RTD_VFG7350] = {
2494                .name           = "RTD Embedded Technologies VFG7350",
2495                .audio_clock    = 0x00200000,
2496                .tuner_type     = TUNER_ABSENT,
2497                .radio_type     = UNSET,
2498                .tuner_addr     = ADDR_UNSET,
2499                .radio_addr     = ADDR_UNSET,
2500                .empress_addr   = 0x21,
2501                .inputs         = {{
2502                        .name   = "Composite 0",
2503                        .vmux   = 0,
2504                        .amux   = LINE1,
2505                },{
2506                        .name   = "Composite 1",
2507                        .vmux   = 1,
2508                        .amux   = LINE2,
2509                },{
2510                        .name   = "Composite 2",
2511                        .vmux   = 2,
2512                        .amux   = LINE1,
2513                },{
2514                        .name   = "Composite 3",
2515                        .vmux   = 3,
2516                        .amux   = LINE2,
2517                },{
2518                        .name   = "S-Video 0",
2519                        .vmux   = 8,
2520                        .amux   = LINE1,
2521                },{
2522                        .name   = "S-Video 1",
2523                        .vmux   = 9,
2524                        .amux   = LINE2,
2525                }},
2526                .mpeg           = SAA7134_MPEG_EMPRESS,
2527                .video_out      = CCIR656,
2528                .vid_port_opts  = ( SET_T_CODE_POLARITY_NON_INVERTED |
2529                                    SET_CLOCK_NOT_DELAYED |
2530                                    SET_CLOCK_INVERTED |
2531                                    SET_VSYNC_OFF ),
2532        },
2533        [SAA7134_BOARD_RTD_VFG7330] = {
2534                .name           = "RTD Embedded Technologies VFG7330",
2535                .audio_clock    = 0x00200000,
2536                .tuner_type     = TUNER_ABSENT,
2537                .radio_type     = UNSET,
2538                .tuner_addr     = ADDR_UNSET,
2539                .radio_addr     = ADDR_UNSET,
2540                .inputs         = {{
2541                        .name   = "Composite 0",
2542                        .vmux   = 0,
2543                        .amux   = LINE1,
2544                },{
2545                        .name   = "Composite 1",
2546                        .vmux   = 1,
2547                        .amux   = LINE2,
2548                },{
2549                        .name   = "Composite 2",
2550                        .vmux   = 2,
2551                        .amux   = LINE1,
2552                },{
2553                        .name   = "Composite 3",
2554                        .vmux   = 3,
2555                        .amux   = LINE2,
2556                },{
2557                        .name   = "S-Video 0",
2558                        .vmux   = 8,
2559                        .amux   = LINE1,
2560                },{
2561                        .name   = "S-Video 1",
2562                        .vmux   = 9,
2563                        .amux   = LINE2,
2564                }},
2565        },
2566        [SAA7134_BOARD_FLYTVPLATINUM_MINI2] = {
2567                .name           = "LifeView FlyTV Platinum Mini2",
2568                .audio_clock    = 0x00200000,
2569                .tuner_type     = TUNER_PHILIPS_TDA8290,
2570                .radio_type     = UNSET,
2571                .tuner_addr     = ADDR_UNSET,
2572                .radio_addr     = ADDR_UNSET,
2573
2574                .inputs         = {{
2575                        .name = name_tv,
2576                        .vmux = 1,
2577                        .amux = TV,
2578                        .tv   = 1,
2579                },{
2580                        .name = name_comp1,     /* Composite signal on S-Video input */
2581                        .vmux = 0,
2582                        .amux = LINE2,
2583                },{
2584                        .name = name_comp2,     /* Composite input */
2585                        .vmux = 3,
2586                        .amux = LINE2,
2587                },{
2588                        .name = name_svideo,
2589                        .vmux = 8,
2590                        .amux = LINE2,
2591                }},
2592        },
2593        [SAA7134_BOARD_AVERMEDIA_AVERTVHD_A180] = {
2594                /* Michael Krufky <mkrufky@linuxtv.org>
2595                 * Uses Alps Electric TDHU2, containing NXT2004 ATSC Decoder
2596                 * AFAIK, there is no analog demod, thus,
2597                 * no support for analog television.
2598                 */
2599                .name           = "AVerMedia AVerTVHD MCE A180",
2600                .audio_clock    = 0x00187de7,
2601                .tuner_type     = TUNER_ABSENT,
2602                .radio_type     = UNSET,
2603                .tuner_addr     = ADDR_UNSET,
2604                .radio_addr     = ADDR_UNSET,
2605                .mpeg           = SAA7134_MPEG_DVB,
2606                .inputs         = {{
2607                        .name = name_comp1,
2608                        .vmux = 3,
2609                        .amux = LINE2,
2610                },{
2611                        .name = name_svideo,
2612                        .vmux = 8,
2613                        .amux = LINE2,
2614                }},
2615        },
2616        [SAA7134_BOARD_MONSTERTV_MOBILE] = {
2617                .name           = "SKNet MonsterTV Mobile",
2618                .audio_clock    = 0x00187de7,
2619                .tuner_type     = TUNER_PHILIPS_TDA8290,
2620                .radio_type     = UNSET,
2621                .tuner_addr     = ADDR_UNSET,
2622                .radio_addr     = ADDR_UNSET,
2623
2624                .inputs         = {{
2625                          .name = name_tv,
2626                          .vmux = 1,
2627                          .amux = TV,
2628                          .tv   = 1,
2629                },{
2630                          .name = name_comp1,
2631                          .vmux = 3,
2632                          .amux = LINE1,
2633                },{
2634                          .name = name_svideo,
2635                          .vmux = 6,
2636                          .amux = LINE1,
2637                }},
2638        },
2639        [SAA7134_BOARD_PINNACLE_PCTV_110i] = {
2640               .name           = "Pinnacle PCTV 40i/50i/110i (saa7133)",
2641                .audio_clock    = 0x00187de7,
2642                .tuner_type     = TUNER_PHILIPS_TDA8290,
2643                .radio_type     = UNSET,
2644                .tuner_addr     = ADDR_UNSET,
2645                .radio_addr     = ADDR_UNSET,
2646                .gpiomask       = 0x080200000,
2647                .inputs         = { {
2648                        .name = name_tv,
2649                        .vmux = 4,
2650                        .amux = TV,
2651                        .tv   = 1,
2652                }, {
2653                        .name = name_comp1,
2654                        .vmux = 1,
2655                        .amux = LINE2,
2656                }, {
2657                        .name = name_comp2,
2658                        .vmux = 0,
2659                        .amux = LINE2,
2660                }, {
2661                        .name = name_svideo,
2662                        .vmux = 8,
2663                        .amux = LINE2,
2664                } },
2665                .radio = {
2666                        .name = name_radio,
2667                        .amux = TV,
2668                        .gpio = 0x0200000,
2669                },
2670        },
2671        [SAA7134_BOARD_ASUSTeK_P7131_DUAL] = {
2672                .name           = "ASUSTeK P7131 Dual",
2673                .audio_clock    = 0x00187de7,
2674                .tuner_type     = TUNER_PHILIPS_TDA8290,
2675                .radio_type     = UNSET,
2676                .tuner_addr     = ADDR_UNSET,
2677                .radio_addr     = ADDR_UNSET,
2678                .gpiomask       = 1 << 21,
2679                .mpeg           = SAA7134_MPEG_DVB,
2680                .inputs         = {{
2681                        .name = name_tv,
2682                        .vmux = 1,
2683                        .amux = TV,
2684                        .tv   = 1,
2685                        .gpio = 0x0000000,
2686                },{
2687                        .name = name_comp1,
2688                        .vmux = 3,
2689                        .amux = LINE2,
2690                        .gpio = 0x0200000,
2691                },{
2692                        .name = name_comp2,
2693                        .vmux = 0,
2694                        .amux = LINE2,
2695                        .gpio = 0x0200000,
2696                },{
2697                        .name = name_svideo,
2698                        .vmux = 8,
2699                        .amux = LINE2,
2700                        .gpio = 0x0200000,
2701                }},
2702                .radio = {
2703                        .name = name_radio,
2704                        .amux = TV,
2705                        .gpio = 0x0200000,
2706                },
2707        },
2708        [SAA7134_BOARD_SEDNA_PC_TV_CARDBUS] = {
2709                /* Paul Tom Zalac <pzalac@gmail.com> */
2710                /* Pavel Mihaylov <bin@bash.info> */
2711                .name           = "Sedna/MuchTV PC TV Cardbus TV/Radio (ITO25 Rev:2B)",
2712                                /* Sedna/MuchTV (OEM) Cardbus TV Tuner */
2713                .audio_clock    = 0x00187de7,
2714                .tuner_type     = TUNER_PHILIPS_TDA8290,
2715                .radio_type     = UNSET,
2716                .tuner_addr     = ADDR_UNSET,
2717                .radio_addr     = ADDR_UNSET,
2718                .gpiomask       = 0xe880c0,
2719                .inputs         = {{
2720                        .name = name_tv,
2721                        .vmux = 3,
2722                        .amux = TV,
2723                        .tv   = 1,
2724                },{
2725                        .name = name_comp1,
2726                        .vmux = 1,
2727                        .amux = LINE1,
2728                },{
2729                        .name = name_svideo,
2730                        .vmux = 6,
2731                        .amux = LINE1,
2732                }},
2733                .radio = {
2734                        .name = name_radio,
2735                        .amux = LINE2,
2736                },
2737        },
2738        [SAA7134_BOARD_ASUSTEK_DIGIMATRIX_TV] = {
2739                /* "Cyril Lacoux (Yack)" <clacoux@ifeelgood.org> */
2740                .name           = "ASUS Digimatrix TV",
2741                .audio_clock    = 0x00200000,
2742                .tuner_type     = TUNER_PHILIPS_FQ1216ME,
2743                .tda9887_conf   = TDA9887_PRESENT,
2744                .radio_type     = UNSET,
2745                .tuner_addr     = ADDR_UNSET,
2746                .radio_addr     = ADDR_UNSET,
2747                .inputs         = {{
2748                        .name = name_tv,
2749                        .vmux = 1,
2750                        .amux = TV,
2751                        .tv   = 1,
2752                },{
2753                        .name = name_comp1,
2754                        .vmux = 3,
2755                        .amux = LINE1,
2756                },{
2757                        .name = name_svideo,
2758                        .vmux = 8,
2759                        .amux = LINE1,
2760                }},
2761        },
2762        [SAA7134_BOARD_PHILIPS_TIGER] = {
2763                .name           = "Philips Tiger reference design",
2764                .audio_clock    = 0x00187de7,
2765                .tuner_type     = TUNER_PHILIPS_TDA8290,
2766                .radio_type     = UNSET,
2767                .tuner_addr     = ADDR_UNSET,
2768                .radio_addr     = ADDR_UNSET,
2769                .tda829x_conf   = { .lna_cfg = TDA8290_LNA_OFF },
2770                .mpeg           = SAA7134_MPEG_DVB,
2771                .gpiomask       = 0x0200000,
2772                .inputs = {{
2773                        .name   = name_tv,
2774                        .vmux   = 1,
2775                        .amux   = TV,
2776                        .tv     = 1,
2777                },{
2778                        .name   = name_comp1,
2779                        .vmux   = 3,
2780                        .amux   = LINE1,
2781                },{
2782                        .name   = name_svideo,
2783                        .vmux   = 8,
2784                        .amux   = LINE1,
2785                }},
2786                .radio = {
2787                        .name   = name_radio,
2788                        .amux   = TV,
2789                        .gpio   = 0x0200000,
2790                },
2791        },
2792        [SAA7134_BOARD_MSI_TVATANYWHERE_PLUS] = {
2793                .name           = "MSI TV@Anywhere plus",
2794                .audio_clock    = 0x00187de7,
2795                .tuner_type     = TUNER_PHILIPS_TDA8290,
2796                .radio_type     = UNSET,
2797                .tuner_addr     = ADDR_UNSET,
2798                .radio_addr     = ADDR_UNSET,
2799                .gpiomask       = 1 << 21,
2800                .inputs = {{
2801                        .name   = name_tv,
2802                        .vmux   = 1,
2803                        .amux   = TV,
2804                        .tv     = 1,
2805                },{
2806                        .name   = name_comp1,
2807                        .vmux   = 3,
2808                        .amux   = LINE2,        /* unconfirmed, taken from Philips driver */
2809                },{
2810                        .name   = name_comp2,
2811                        .vmux   = 0,            /* untested, Composite over S-Video */
2812                        .amux   = LINE2,
2813                },{
2814                        .name   = name_svideo,
2815                        .vmux   = 8,
2816                        .amux   = LINE2,
2817                }},
2818                .radio = {
2819                        .name   = name_radio,
2820                        .amux   = TV,
2821                        .gpio   = 0x0200000,
2822                },
2823        },
2824        [SAA7134_BOARD_CINERGY250PCI] = {
2825                /* remote-control does not work. The signal about a
2826                   key press comes in via gpio, but the key code
2827                   doesn't. Neither does it have an i2c remote control
2828                   interface. */
2829                .name           = "Terratec Cinergy 250 PCI TV",
2830                .audio_clock    = 0x00187de7,
2831                .tuner_type     = TUNER_PHILIPS_TDA8290,
2832                .radio_type     = UNSET,
2833                .tuner_addr     = ADDR_UNSET,
2834                .radio_addr     = ADDR_UNSET,
2835                .gpiomask       = 0x80200000,
2836                .inputs         = {{
2837                        .name = name_tv,
2838                        .vmux = 1,
2839                        .amux = TV,
2840                        .tv   = 1,
2841                },{
2842                        .name = name_svideo,  /* NOT tested */
2843                        .vmux = 8,
2844                        .amux = LINE1,
2845                }},
2846                .radio = {
2847                        .name   = name_radio,
2848                        .amux   = TV,
2849                        .gpio   = 0x0200000,
2850                },
2851        },
2852        [SAA7134_BOARD_FLYDVB_TRIO] = {
2853                /* LifeView LR319 FlyDVB Trio */
2854                /* Peter Missel <peter.missel@onlinehome.de> */
2855                .name           = "LifeView FlyDVB Trio",
2856                .audio_clock    = 0x00200000,
2857                .tuner_type     = TUNER_PHILIPS_TDA8290,
2858                .radio_type     = UNSET,
2859                .tuner_addr     = ADDR_UNSET,
2860                .radio_addr     = ADDR_UNSET,
2861                .gpiomask       = 0x00200000,
2862                .mpeg           = SAA7134_MPEG_DVB,
2863                .inputs         = {{
2864                        .name = name_tv,        /* Analog broadcast/cable TV */
2865                        .vmux = 1,
2866                        .amux = TV,
2867                        .gpio = 0x200000,       /* GPIO21=High for TV input */
2868                        .tv   = 1,
2869                },{
2870                        .name = name_svideo,    /* S-Video signal on S-Video input */
2871                        .vmux = 8,
2872                        .amux = LINE2,
2873                },{
2874                        .name = name_comp1,     /* Composite signal on S-Video input */
2875                        .vmux = 0,
2876                        .amux = LINE2,
2877                },{
2878                        .name = name_comp2,     /* Composite input */
2879                        .vmux = 3,
2880                        .amux = LINE2,
2881                }},
2882                .radio = {
2883                        .name = name_radio,
2884                        .amux = TV,
2885                        .gpio = 0x000000,       /* GPIO21=Low for FM radio antenna */
2886                },
2887        },
2888        [SAA7134_BOARD_AVERMEDIA_777] = {
2889                .name           = "AverTV DVB-T 777",
2890                .audio_clock    = 0x00187de7,
2891                .tuner_type     = TUNER_ABSENT,
2892                .radio_type     = UNSET,
2893                .tuner_addr     = ADDR_UNSET,
2894                .radio_addr     = ADDR_UNSET,
2895                .mpeg           = SAA7134_MPEG_DVB,
2896                .inputs = {{
2897                        .name   = name_comp1,
2898                        .vmux   = 1,
2899                        .amux   = LINE1,
2900                },{
2901                        .name   = name_svideo,
2902                        .vmux   = 8,
2903                        .amux   = LINE1,
2904                }},
2905        },
2906        [SAA7134_BOARD_FLYDVBT_LR301] = {
2907                /* LifeView FlyDVB-T */
2908                /* Giampiero Giancipoli <gianci@libero.it> */
2909                .name           = "LifeView FlyDVB-T / Genius VideoWonder DVB-T",
2910                .audio_clock    = 0x00200000,
2911                .tuner_type     = TUNER_ABSENT,
2912                .radio_type     = UNSET,
2913                .tuner_addr     = ADDR_UNSET,
2914                .radio_addr     = ADDR_UNSET,
2915                .mpeg           = SAA7134_MPEG_DVB,
2916                .inputs         = {{
2917                        .name = name_comp1,     /* Composite input */
2918                        .vmux = 3,
2919                        .amux = LINE2,
2920                },{
2921                        .name = name_svideo,    /* S-Video signal on S-Video input */
2922                        .vmux = 8,
2923                        .amux = LINE2,
2924                }},
2925        },
2926        [SAA7134_BOARD_ADS_DUO_CARDBUS_PTV331] = {
2927                .name           = "ADS Instant TV Duo Cardbus PTV331",
2928                .audio_clock    = 0x00200000,
2929                .tuner_type     = TUNER_PHILIPS_TDA8290,
2930                .radio_type     = UNSET,
2931                .tuner_addr     = ADDR_UNSET,
2932                .radio_addr     = ADDR_UNSET,
2933                .mpeg           = SAA7134_MPEG_DVB,
2934                .gpiomask       = 0x00600000, /* Bit 21 0=Radio, Bit 22 0=TV */
2935                .inputs = {{
2936                        .name   = name_tv,
2937                        .vmux   = 1,
2938                        .amux   = TV,
2939                        .tv     = 1,
2940                        .gpio   = 0x00200000,
2941                }},
2942        },
2943        [SAA7134_BOARD_TEVION_DVBT_220RF] = {
2944                .name           = "Tevion/KWorld DVB-T 220RF",
2945                .audio_clock    = 0x00187de7,
2946                .tuner_type     = TUNER_PHILIPS_TDA8290,
2947                .radio_type     = UNSET,
2948                .tuner_addr     = ADDR_UNSET,
2949                .radio_addr     = ADDR_UNSET,
2950                .mpeg           = SAA7134_MPEG_DVB,
2951                .gpiomask       = 1 << 21,
2952                .inputs = {{
2953                        .name   = name_tv,
2954                        .vmux   = 1,
2955                        .amux   = TV,
2956                        .tv     = 1,
2957                },{
2958                        .name   = name_comp1,
2959                        .vmux   = 3,
2960                        .amux   = LINE1,
2961                },{
2962                        .name   = name_comp2,
2963                        .vmux   = 0,
2964                        .amux   = LINE1,
2965                },{
2966                        .name   = name_svideo,
2967                        .vmux   = 8,
2968                        .amux   = LINE1,
2969                }},
2970                .radio = {
2971                        .name   = name_radio,
2972                        .amux   = TV,
2973                        .gpio   = 0x0200000,
2974                },
2975        },
2976        [SAA7134_BOARD_KWORLD_DVBT_210] = {
2977                .name           = "KWorld DVB-T 210",
2978                .audio_clock    = 0x00187de7,
2979                .tuner_type     = TUNER_PHILIPS_TDA8290,
2980                .radio_type     = UNSET,
2981                .tuner_addr     = ADDR_UNSET,
2982                .radio_addr     = ADDR_UNSET,
2983                .mpeg           = SAA7134_MPEG_DVB,
2984                .gpiomask       = 1 << 21,
2985                .inputs = {{
2986                        .name   = name_tv,
2987                        .vmux   = 1,
2988                        .amux   = TV,
2989                        .tv     = 1,
2990                },{
2991                        .name   = name_comp1,
2992                        .vmux   = 3,
2993                        .amux   = LINE1,
2994                },{
2995                        .name   = name_svideo,
2996                        .vmux   = 8,
2997                        .amux   = LINE1,
2998                }},
2999                .radio = {
3000                        .name   = name_radio,
3001                        .amux   = TV,
3002                        .gpio   = 0x0200000,
3003                },
3004        },
3005        [SAA7134_BOARD_KWORLD_ATSC110] = {
3006                .name           = "Kworld ATSC110/115",
3007                .audio_clock    = 0x00187de7,
3008                .tuner_type     = TUNER_PHILIPS_TUV1236D,
3009                .radio_type     = UNSET,
3010                .tuner_addr     = ADDR_UNSET,
3011                .radio_addr     = ADDR_UNSET,
3012                .tda9887_conf   = TDA9887_PRESENT,
3013                .mpeg           = SAA7134_MPEG_DVB,
3014                .inputs         = {{
3015                        .name = name_tv,
3016                        .vmux = 1,
3017                        .amux = TV,
3018                        .tv   = 1,
3019                },{
3020                        .name = name_comp1,
3021                        .vmux = 3,
3022                        .amux = LINE2,
3023                },{
3024                        .name = name_svideo,
3025                        .vmux = 8,
3026                        .amux = LINE2,
3027                }},
3028        },
3029        [SAA7134_BOARD_AVERMEDIA_A169_B] = {
3030                /* AVerMedia A169  */
3031                /* Rickard Osser <ricky@osser.se>  */
3032                /* This card has two saa7134 chips on it,
3033                   but only one of them is currently working. */
3034                .name           = "AVerMedia A169 B",
3035                .audio_clock    = 0x02187de7,
3036                .tuner_type     = TUNER_LG_TALN,
3037                .radio_type     = UNSET,
3038                .tuner_addr     = ADDR_UNSET,
3039                .radio_addr     = ADDR_UNSET,
3040                .tda9887_conf   = TDA9887_PRESENT,
3041                .gpiomask       = 0x0a60000,
3042        },
3043        [SAA7134_BOARD_AVERMEDIA_A169_B1] = {
3044                /* AVerMedia A169 */
3045                /* Rickard Osser <ricky@osser.se> */
3046                .name           = "AVerMedia A169 B1",
3047                .audio_clock    = 0x02187de7,
3048                .tuner_type     = TUNER_LG_TALN,
3049                .radio_type     = UNSET,
3050                .tuner_addr     = ADDR_UNSET,
3051                .radio_addr     = ADDR_UNSET,
3052                .tda9887_conf   = TDA9887_PRESENT,
3053                .gpiomask       = 0xca60000,
3054                .inputs         = {{
3055                        .name = name_tv,
3056                        .vmux = 4,
3057                        .amux = TV,
3058                        .tv   = 1,
3059                        .gpio = 0x04a61000,
3060                },{
3061                        .name = name_comp2,  /*  Composite SVIDEO (B/W if signal is carried with SVIDEO) */
3062                        .vmux = 1,
3063                        .amux = LINE2,
3064                },{
3065                        .name = name_svideo,
3066                        .vmux = 9,           /* 9 is correct as S-VIDEO1 according to a169.inf! */
3067                        .amux = LINE1,
3068                }},
3069        },
3070        [SAA7134_BOARD_MD7134_BRIDGE_2] = {
3071                /* The second saa7134 on this card only serves as DVB-S host bridge */
3072                .name           = "Medion 7134 Bridge #2",
3073                .audio_clock    = 0x00187de7,
3074                .radio_type     = UNSET,
3075                .tuner_addr     = ADDR_UNSET,
3076                .radio_addr     = ADDR_UNSET,
3077                .mpeg           = SAA7134_MPEG_DVB,
3078        },
3079        [SAA7134_BOARD_FLYDVBT_HYBRID_CARDBUS] = {
3080                .name           = "LifeView FlyDVB-T Hybrid Cardbus/MSI TV @nywhere A/D NB",
3081                .audio_clock    = 0x00200000,
3082                .tuner_type     = TUNER_PHILIPS_TDA8290,
3083                .radio_type     = UNSET,
3084                .tuner_addr     = ADDR_UNSET,
3085                .radio_addr     = ADDR_UNSET,
3086                .mpeg           = SAA7134_MPEG_DVB,
3087                .gpiomask       = 0x00600000, /* Bit 21 0=Radio, Bit 22 0=TV */
3088                .inputs         = {{
3089                        .name = name_tv,
3090                        .vmux = 1,
3091                        .amux = TV,
3092                        .gpio = 0x200000,       /* GPIO21=High for TV input */
3093                        .tv   = 1,
3094                },{
3095                        .name = name_svideo,    /* S-Video signal on S-Video input */
3096                        .vmux = 8,
3097                        .amux = LINE2,
3098                },{
3099                        .name = name_comp1,     /* Composite signal on S-Video input */
3100                        .vmux = 0,
3101                        .amux = LINE2,
3102                },{
3103                        .name = name_comp2,     /* Composite input */
3104                        .vmux = 3,
3105                        .amux = LINE2,
3106                }},
3107                .radio = {
3108                        .name = name_radio,
3109                        .amux = TV,
3110                        .gpio = 0x000000,       /* GPIO21=Low for FM radio antenna */
3111                },
3112        },
3113        [SAA7134_BOARD_FLYVIDEO3000_NTSC] = {
3114                /* "Zac Bowling" <zac@zacbowling.com> */
3115                .name           = "LifeView FlyVIDEO3000 (NTSC)",
3116                .audio_clock    = 0x00200000,
3117                .tuner_type     = TUNER_PHILIPS_NTSC,
3118                .radio_type     = UNSET,
3119                .tuner_addr     = ADDR_UNSET,
3120                .radio_addr     = ADDR_UNSET,
3121
3122                .gpiomask       = 0xe000,
3123                .inputs         = {{
3124                        .name = name_tv,
3125                        .vmux = 1,
3126                        .amux = TV,
3127                        .gpio = 0x8000,
3128                        .tv   = 1,
3129                },{
3130                        .name = name_tv_mono,
3131                        .vmux = 1,
3132                        .amux = LINE2,
3133                        .gpio = 0x0000,
3134                        .tv   = 1,
3135                },{
3136                        .name = name_comp1,
3137                        .vmux = 0,
3138                        .amux = LINE2,
3139                        .gpio = 0x4000,
3140                },{
3141                        .name = name_comp2,
3142                        .vmux = 3,
3143                        .amux = LINE2,
3144                        .gpio = 0x4000,
3145                },{
3146                        .name = name_svideo,
3147                        .vmux = 8,
3148                        .amux = LINE2,
3149                        .gpio = 0x4000,
3150                }},
3151                .radio = {
3152                        .name = name_radio,
3153                        .amux = LINE2,
3154                        .gpio = 0x2000,
3155                },
3156                        .mute = {
3157                        .name = name_mute,
3158                        .amux = TV,
3159                        .gpio = 0x8000,
3160                },
3161        },
3162        [SAA7134_BOARD_MEDION_MD8800_QUADRO] = {
3163                .name           = "Medion Md8800 Quadro",
3164                .audio_clock    = 0x00187de7,
3165                .tuner_type     = TUNER_PHILIPS_TDA8290,
3166                .radio_type     = UNSET,
3167                .tuner_addr     = ADDR_UNSET,
3168                .radio_addr     = ADDR_UNSET,
3169                .mpeg           = SAA7134_MPEG_DVB,
3170                .inputs = {{
3171                        .name   = name_tv,
3172                        .vmux   = 1,
3173                        .amux   = TV,
3174                        .tv     = 1,
3175                },{
3176                        .name   = name_comp1,
3177                        .vmux   = 0,
3178                        .amux   = LINE1,
3179                },{
3180                        .name   = name_svideo,
3181                        .vmux   = 8,
3182                        .amux   = LINE1,
3183                }},
3184        },
3185        [SAA7134_BOARD_FLYDVBS_LR300] = {
3186                /* LifeView FlyDVB-s */
3187                /* Igor M. Liplianin <liplianin@tut.by> */
3188                .name           = "LifeView FlyDVB-S /Acorp TV134DS",
3189                .audio_clock    = 0x00200000,
3190                .tuner_type     = TUNER_ABSENT,
3191                .radio_type     = UNSET,
3192                .tuner_addr     = ADDR_UNSET,
3193                .radio_addr     = ADDR_UNSET,
3194                .mpeg           = SAA7134_MPEG_DVB,
3195                .inputs         = {{
3196                        .name = name_comp1,     /* Composite input */
3197                        .vmux = 3,
3198                        .amux = LINE1,
3199                },{
3200                        .name = name_svideo,    /* S-Video signal on S-Video input */
3201                        .vmux = 8,
3202                        .amux = LINE1,
3203                }},
3204        },
3205        [SAA7134_BOARD_PROTEUS_2309] = {
3206                .name           = "Proteus Pro 2309",
3207                .audio_clock    = 0x00187de7,
3208                .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
3209                .radio_type     = UNSET,
3210                .tuner_addr     = ADDR_UNSET,
3211                .radio_addr     = ADDR_UNSET,
3212                .tda9887_conf   = TDA9887_PRESENT,
3213                .inputs         = {{
3214                        .name = name_tv,
3215                        .vmux = 1,
3216                        .amux = LINE2,
3217                        .tv   = 1,
3218                },{
3219                        .name = name_comp1,
3220                        .vmux = 0,
3221                        .amux = LINE2,
3222                },{
3223                        .name = name_comp2,
3224                        .vmux = 3,
3225                        .amux = LINE2,
3226                },{
3227                        .name = name_svideo,
3228                        .vmux = 8,
3229                        .amux = LINE2,
3230                }},
3231                .mute = {
3232                        .name = name_mute,
3233                        .amux = LINE1,
3234                },
3235        },
3236        [SAA7134_BOARD_AVERMEDIA_A16AR] = {
3237                /* Petr Baudis <pasky@ucw.cz> */
3238                .name           = "AVerMedia TV Hybrid A16AR",
3239                .audio_clock    = 0x187de7,
3240                .tuner_type     = TUNER_PHILIPS_TD1316, /* untested */
3241                .radio_type     = TUNER_TEA5767, /* untested */
3242                .tuner_addr     = ADDR_UNSET,
3243                .radio_addr     = 0x60,
3244                .tda9887_conf   = TDA9887_PRESENT,
3245                .mpeg           = SAA7134_MPEG_DVB,
3246                .inputs         = {{
3247                        .name = name_tv,
3248                        .vmux = 1,
3249                        .amux = TV,
3250                        .tv   = 1,
3251                },{
3252                        .name = name_comp1,
3253                        .vmux = 3,
3254                        .amux = LINE2,
3255                },{
3256                        .name = name_svideo,
3257                        .vmux = 8,
3258                        .amux = LINE1,
3259                }},
3260                .radio = {
3261                        .name = name_radio,
3262                        .amux = LINE1,
3263                },
3264        },
3265        [SAA7134_BOARD_ASUS_EUROPA2_HYBRID] = {
3266                .name           = "Asus Europa2 OEM",
3267                .audio_clock    = 0x00187de7,
3268                .tuner_type     = TUNER_PHILIPS_FMD1216ME_MK3,
3269                .radio_type     = UNSET,
3270                .tuner_addr     = ADDR_UNSET,
3271                .radio_addr     = ADDR_UNSET,
3272                .tda9887_conf   = TDA9887_PRESENT| TDA9887_PORT1_ACTIVE | TDA9887_PORT2_ACTIVE,
3273                .mpeg           = SAA7134_MPEG_DVB,
3274                .inputs = {{
3275                        .name   = name_tv,
3276                        .vmux   = 3,
3277                        .amux   = TV,
3278                        .tv     = 1,
3279                },{
3280                        .name   = name_comp1,
3281                        .vmux   = 4,
3282                        .amux   = LINE2,
3283                },{
3284                        .name   = name_svideo,
3285                        .vmux   = 8,
3286                        .amux   = LINE2,
3287                }},
3288                .radio = {
3289                        .name   = name_radio,
3290                        .amux   = LINE1,
3291                },
3292        },
3293        [SAA7134_BOARD_PINNACLE_PCTV_310i] = {
3294                .name           = "Pinnacle PCTV 310i",
3295                .audio_clock    = 0x00187de7,
3296                .tuner_type     = TUNER_PHILIPS_TDA8290,
3297                .radio_type     = UNSET,
3298                .tuner_addr     = ADDR_UNSET,
3299                .radio_addr     = ADDR_UNSET,
3300                .tda829x_conf   = { .lna_cfg = TDA8290_LNA_GP0_HIGH_ON },
3301                .mpeg           = SAA7134_MPEG_DVB,
3302                .gpiomask       = 0x000200000,
3303                .inputs         = {{
3304                        .name = name_tv,
3305                        .vmux = 4,
3306                        .amux = TV,
3307                        .tv   = 1,
3308                },{
3309                        .name = name_comp1,
3310                        .vmux = 1,
3311                        .amux = LINE2,
3312                },{
3313                        .name = name_comp2,
3314                        .vmux = 0,
3315                        .amux = LINE2,
3316                },{
3317                        .name = name_svideo,
3318                        .vmux = 8,
3319                        .amux = LINE2,
3320                }},
3321                .radio = {
3322                        .name = name_radio,
3323                        .amux   = TV,
3324                        .gpio   = 0x0200000,
3325                },
3326        },
3327        [SAA7134_BOARD_AVERMEDIA_STUDIO_507] = {
3328                /* Mikhail Fedotov <mo_fedotov@mail.ru> */
3329                .name           = "Avermedia AVerTV Studio 507",
3330                .audio_clock    = 0x00187de7,
3331                .tuner_type     = TUNER_PHILIPS_FM1256_IH3,
3332                .radio_type     = UNSET,
3333                .tuner_addr     = ADDR_UNSET,
3334                .radio_addr     = ADDR_UNSET,
3335                .tda9887_conf   = TDA9887_PRESENT,
3336                .gpiomask       = 0x03,
3337                .inputs         = {{
3338                        .name = name_tv,
3339                        .vmux = 1,
3340                        .amux = TV,
3341                        .tv   = 1,
3342                        .gpio = 0x00,
3343                },{
3344                        .name = name_comp1,
3345                        .vmux = 0,
3346                        .amux = LINE2,
3347                        .gpio = 0x00,
3348                },{
3349                        .name = name_comp2,
3350                        .vmux = 3,
3351                        .amux = LINE2,
3352                        .gpio = 0x00,
3353                },{
3354                        .name = name_svideo,
3355                        .vmux = 8,
3356                        .amux = LINE2,
3357                        .gpio = 0x00,
3358                }},
3359                .radio = {
3360                        .name = name_radio,
3361                        .amux = LINE2,
3362                        .gpio = 0x01,
3363                },
3364                .mute  = {
3365                        .name = name_mute,
3366                        .amux = LINE1,
3367                        .gpio = 0x00,
3368                },
3369        },
3370        [SAA7134_BOARD_VIDEOMATE_DVBT_200A] = {
3371                /* Francis Barber <fedora@barber-family.id.au> */
3372                .name           = "Compro Videomate DVB-T200A",
3373                .audio_clock    = 0x00187de7,
3374                .tuner_type     = TUNER_ABSENT,
3375                .radio_type     = UNSET,
3376                .tuner_addr     = ADDR_UNSET,
3377                .radio_addr     = ADDR_UNSET,
3378                .tda9887_conf   = TDA9887_PRESENT | TDA9887_PORT1_ACTIVE,
3379                .mpeg           = SAA7134_MPEG_DVB,
3380                .inputs = {{
3381                        .name   = name_tv,
3382                        .vmux   = 3,
3383                        .amux   = TV,
3384                        .tv     = 1,
3385                },{
3386                        .name   = name_comp1,
3387                        .vmux   = 1,
3388                        .amux   = LINE2,
3389                },{
3390                        .name   = name_svideo,
3391                        .vmux   = 8,
3392                        .amux   = LINE2,
3393                }},
3394        },
3395        [SAA7134_BOARD_HAUPPAUGE_HVR1110] = {
3396                /* Thomas Genty <tomlohave@gmail.com> */
3397                /* David Bentham <db260179@hotmail.com> */
3398                .name           = "Hauppauge WinTV-HVR1110 DVB-T/Hybrid",
3399                .audio_clock    = 0x00187de7,
3400                .tuner_type     = TUNER_PHILIPS_TDA8290,
3401                .radio_type     = UNSET,
3402                .tuner_addr     = ADDR_UNSET,
3403                .radio_addr     = ADDR_UNSET,
3404                .tda829x_conf   = { .lna_cfg = TDA8290_LNA_GP0_HIGH_ON },
3405                .mpeg           = SAA7134_MPEG_DVB,
3406                .gpiomask       = 0x0200100,
3407                .inputs         = {{
3408                        .name = name_tv,
3409                        .vmux = 1,
3410                        .amux = TV,
3411                        .tv   = 1,
3412                        .gpio = 0x0000100,
3413                }, {
3414                        .name = name_comp1,
3415                        .vmux = 3,
3416                        .amux = LINE1,
3417                }, {
3418                        .name = name_svideo,
3419                        .vmux = 8,
3420                        .amux = LINE1,
3421                } },
3422                .radio = {
3423                        .name = name_radio,
3424                        .amux = TV,
3425                        .gpio = 0x0200100,
3426                },
3427        },
3428        [SAA7134_BOARD_HAUPPAUGE_HVR1150] = {
3429                .name           = "Hauppauge WinTV-HVR1150 ATSC/QAM-Hybrid",
3430                .audio_clock    = 0x00187de7,
3431                .tuner_type     = TUNER_PHILIPS_TDA8290,
3432                .radio_type     = UNSET,
3433                .tuner_addr     = ADDR_UNSET,
3434                .radio_addr     = ADDR_UNSET,
3435                .tda829x_conf   = { .lna_cfg = TDA8290_LNA_ON_BRIDGE },
3436                .mpeg           = SAA7134_MPEG_DVB,
3437                .ts_type        = SAA7134_MPEG_TS_SERIAL,
3438                .ts_force_val   = 1,
3439                .gpiomask       = 0x0800100, /* GPIO 21 is an INPUT */
3440                .inputs         = {{
3441                        .name = name_tv,
3442                        .vmux = 1,
3443                        .amux = TV,
3444                        .tv   = 1,
3445                        .gpio = 0x0000100,
3446                }, {
3447                        .name = name_comp1,
3448                        .vmux = 3,
3449                        .amux = LINE1,
3450                }, {
3451                        .name = name_svideo,
3452                        .vmux = 8,
3453                        .amux = LINE1,
3454                } },
3455                .radio = {
3456                        .name = name_radio,
3457                        .amux = TV,
3458                        .gpio = 0x0800100, /* GPIO 23 HI for FM */
3459                },
3460        },
3461        [SAA7134_BOARD_HAUPPAUGE_HVR1120] = {
3462                .name           = "Hauppauge WinTV-HVR1120 DVB-T/Hybrid",
3463                .audio_clock    = 0x00187de7,
3464                .tuner_type     = TUNER_PHILIPS_TDA8290,
3465                .radio_type     = UNSET,
3466                .tuner_addr     = ADDR_UNSET,
3467                .radio_addr     = ADDR_UNSET,
3468                .tda829x_conf   = { .lna_cfg = TDA8290_LNA_ON_BRIDGE },
3469                .mpeg           = SAA7134_MPEG_DVB,
3470                .ts_type        = SAA7134_MPEG_TS_SERIAL,
3471                .gpiomask       = 0x0800100, /* GPIO 21 is an INPUT */
3472                .inputs         = {{
3473                        .name = name_tv,
3474                        .vmux = 1,
3475                        .amux = TV,
3476                        .tv   = 1,
3477                        .gpio = 0x0000100,
3478                }, {
3479                        .name = name_comp1,
3480                        .vmux = 3,
3481                        .amux = LINE1,
3482                }, {
3483                        .name = name_svideo,
3484                        .vmux = 8,
3485                        .amux = LINE1,
3486                } },
3487                .radio = {
3488                        .name = name_radio,
3489                        .amux = TV,
3490                        .gpio = 0x0800100, /* GPIO 23 HI for FM */
3491                },
3492        },
3493        [SAA7134_BOARD_CINERGY_HT_PCMCIA] = {
3494                .name           = "Terratec Cinergy HT PCMCIA",
3495                .audio_clock    = 0x00187de7,
3496                .tuner_type     = TUNER_PHILIPS_TDA8290,
3497                .radio_type     = UNSET,
3498                .tuner_addr     = ADDR_UNSET,
3499                .radio_addr     = ADDR_UNSET,
3500                .mpeg           = SAA7134_MPEG_DVB,
3501                .inputs = {{
3502                        .name   = name_tv,
3503                        .vmux   = 1,
3504                        .amux   = TV,
3505                        .tv     = 1,
3506                },{
3507                        .name   = name_comp1,
3508                        .vmux   = 0,
3509                        .amux   = LINE1,
3510                },{
3511                        .name   = name_svideo,
3512                        .vmux   = 6,
3513                        .amux   = LINE1,
3514                }},
3515        },
3516        [SAA7134_BOARD_ENCORE_ENLTV] = {
3517        /* Steven Walter <stevenrwalter@gmail.com>
3518           Juan Pablo Sormani <sorman@gmail.com> */
3519                .name           = "Encore ENLTV",
3520                .audio_clock    = 0x00200000,
3521                .tuner_type     = TUNER_TNF_5335MF,
3522                .radio_type     = UNSET,
3523                .tuner_addr     = ADDR_UNSET,
3524                .radio_addr     = ADDR_UNSET,
3525                .inputs         = {{
3526                        .name = name_tv,
3527                        .vmux = 1,
3528                        .amux = 3,
3529                        .tv   = 1,
3530                },{
3531                        .name = name_tv_mono,
3532                        .vmux = 7,
3533                        .amux = 4,
3534                        .tv   = 1,
3535                },{
3536                        .name = name_comp1,
3537                        .vmux = 3,
3538                        .amux = 2,
3539                },{
3540                        .name = name_svideo,
3541                        .vmux = 0,
3542                        .amux = 2,
3543                }},
3544                .radio = {
3545                        .name = name_radio,
3546                        .amux = LINE2,
3547/*                      .gpio = 0x00300001,*/
3548                        .gpio = 0x20000,
3549
3550                },
3551                .mute = {
3552                        .name = name_mute,
3553                        .amux = 0,
3554                },
3555        },
3556        [SAA7134_BOARD_ENCORE_ENLTV_FM] = {
3557  /*    Juan Pablo Sormani <sorman@gmail.com> */
3558                .name           = "Encore ENLTV-FM",
3559                .audio_clock    = 0x00200000,
3560                .tuner_type     = TUNER_PHILIPS_FCV1236D,
3561                .radio_type     = UNSET,
3562                .tuner_addr     = ADDR_UNSET,
3563                .radio_addr     = ADDR_UNSET,
3564                .inputs         = {{
3565                        .name = name_tv,
3566                        .vmux = 1,
3567                        .amux = 3,
3568                        .tv   = 1,
3569                },{
3570                        .name = name_tv_mono,
3571                        .vmux = 7,
3572                        .amux = 4,
3573                        .tv   = 1,
3574                },{
3575                        .name = name_comp1,
3576                        .vmux = 3,
3577                        .amux = 2,
3578                },{
3579                        .name = name_svideo,
3580                        .vmux = 0,
3581                        .amux = 2,
3582                }},
3583                .radio = {
3584                        .name = name_radio,
3585                        .amux = LINE2,
3586                        .gpio = 0x20000,
3587
3588                },
3589                .mute = {
3590                        .name = name_mute,
3591                        .amux = 0,
3592                },
3593        },
3594        [SAA7134_BOARD_ENCORE_ENLTV_FM53] = {
3595                .name           = "Encore ENLTV-FM v5.3",
3596                .audio_clock    = 0x00200000,
3597                .tuner_type     = TUNER_TNF_5335MF,
3598                .radio_type     = UNSET,
3599                .tuner_addr     = ADDR_UNSET,
3600                .radio_addr     = ADDR_UNSET,
3601                .gpiomask       = 0x7000,
3602                .inputs         = { {
3603                        .name = name_tv,
3604                        .vmux = 1,
3605                        .amux = 1,
3606                        .tv   = 1,
3607                        .gpio = 0x50000,
3608                }, {
3609                        .name = name_comp1,
3610                        .vmux = 3,
3611                        .amux = 2,
3612                        .gpio = 0x2000,
3613                }, {
3614                        .name = name_svideo,
3615                        .vmux = 8,
3616                        .amux = 2,
3617                        .gpio = 0x2000,
3618                } },
3619                .radio = {
3620                        .name = name_radio,
3621                        .vmux = 1,
3622                        .amux = 1,
3623                },
3624                .mute = {
3625                        .name = name_mute,
3626                        .gpio = 0xf000,
3627                        .amux = 0,
3628                },
3629        },
3630        [SAA7134_BOARD_ENCORE_ENLTV_FM3] = {
3631                .name           = "Encore ENLTV-FM 3",
3632                .audio_clock    = 0x02187de7,
3633                .tuner_type     = TUNER_TENA_TNF_5337,
3634                .radio_type     = TUNER_TEA5767,
3635                .tuner_addr     = 0x61,
3636                .radio_addr     = 0x60,
3637                .inputs         = { {
3638                        .name = name_tv,
3639                        .vmux = 1,
3640                        .amux = LINE2,
3641                        .tv   = 1,
3642                }, {
3643                        .name = name_comp1,
3644                        .vmux = 3,
3645                        .amux = LINE1,
3646                }, {
3647                        .name = name_svideo,
3648                        .vmux = 8,
3649                        .amux = LINE1,
3650                } },
3651                .radio = {
3652                        .name = name_radio,
3653                        .vmux = 1,
3654                        .amux = LINE1,
3655                },
3656                .mute = {
3657                        .name = name_mute,
3658                        .amux = LINE1,
3659                        .gpio = 0x43000,
3660                },
3661        },
3662        [SAA7134_BOARD_CINERGY_HT_PCI] = {
3663                .name           = "Terratec Cinergy HT PCI",
3664                .audio_clock    = 0x00187de7,
3665                .tuner_type     = TUNER_PHILIPS_TDA8290,
3666                .radio_type     = UNSET,
3667                .tuner_addr     = ADDR_UNSET,
3668                .radio_addr     = ADDR_UNSET,
3669                .mpeg           = SAA7134_MPEG_DVB,
3670                .inputs = {{
3671                        .name   = name_tv,
3672                        .vmux   = 1,
3673                        .amux   = TV,
3674                        .tv     = 1,
3675                },{
3676                        .name   = name_comp1,
3677                        .vmux   = 0,
3678                        .amux   = LINE1,
3679                },{
3680                        .name   = name_svideo,
3681                        .vmux   = 6,
3682                        .amux   = LINE1,
3683                }},
3684        },
3685        [SAA7134_BOARD_PHILIPS_TIGER_S] = {
3686                .name           = "Philips Tiger - S Reference design",
3687                .audio_clock    = 0x00187de7,
3688                .tuner_type     = TUNER_PHILIPS_TDA8290,
3689                .radio_type     = UNSET,
3690                .tuner_addr     = ADDR_UNSET,
3691                .radio_addr     = ADDR_UNSET,
3692                .tda829x_conf   = { .lna_cfg = TDA8290_LNA_GP0_HIGH_OFF },
3693                .mpeg           = SAA7134_MPEG_DVB,
3694                .gpiomask       = 0x0200000,
3695                .inputs = {{
3696                        .name   = name_tv,
3697                        .vmux   = 1,
3698                        .amux   = TV,
3699                        .tv     = 1,
3700                },{
3701                        .name   = name_comp1,
3702                        .vmux   = 3,
3703                        .amux   = LINE1,
3704                },{
3705                        .name   = name_svideo,
3706                        .vmux   = 8,
3707                        .amux   = LINE1,
3708                }},
3709                .radio = {
3710                        .name   = name_radio,
3711                        .amux   = TV,
3712                        .gpio   = 0x0200000,
3713                },
3714        },
3715        [SAA7134_BOARD_AVERMEDIA_M102] = {
3716                .name           = "Avermedia M102",
3717                .audio_clock    = 0x00187de7,
3718                .tuner_type     = TUNER_PHILIPS_TDA8290,
3719                .radio_type     = UNSET,
3720                .tuner_addr     = ADDR_UNSET,
3721                .radio_addr     = ADDR_UNSET,
3722                .gpiomask       = 1<<21,
3723                .inputs         = {{
3724                        .name = name_tv,
3725                        .vmux = 1,
3726                        .amux = TV,
3727                        .tv   = 1,
3728                },{
3729                        .name = name_comp1,
3730                        .vmux = 0,
3731                        .amux = LINE2,
3732                },{
3733                        .name = name_svideo,
3734                        .vmux = 6,
3735                        .amux = LINE2,
3736                }},
3737        },
3738        [SAA7134_BOARD_ASUS_P7131_4871] = {
3739                .name           = "ASUS P7131 4871",
3740                .audio_clock    = 0x00187de7,
3741                .tuner_type     = TUNER_PHILIPS_TDA8290,
3742                .radio_type     = UNSET,
3743                .tuner_addr     = ADDR_UNSET,
3744                .radio_addr     = ADDR_UNSET,
3745                .tda829x_conf   = { .lna_cfg = TDA8290_LNA_GP0_HIGH_OFF },
3746                .mpeg           = SAA7134_MPEG_DVB,
3747                .gpiomask       = 0x0200000,
3748                .inputs = {{
3749                        .name   = name_tv,
3750                        .vmux   = 1,
3751                        .amux   = TV,
3752                        .tv     = 1,
3753                        .gpio   = 0x0200000,
3754                }},
3755        },
3756        [SAA7134_BOARD_ASUSTeK_P7131_HYBRID_LNA] = {
3757                .name           = "ASUSTeK P7131 Hybrid",
3758                .audio_clock    = 0x00187de7,
3759                .tuner_type     = TUNER_PHILIPS_TDA8290,
3760                .radio_type     = UNSET,
3761                .tuner_addr     = ADDR_UNSET,
3762                .radio_addr     = ADDR_UNSET,
3763                .tda829x_conf   = { .lna_cfg = TDA8290_LNA_GP0_HIGH_OFF },
3764                .gpiomask       = 1 << 21,
3765                .mpeg           = SAA7134_MPEG_DVB,
3766                .inputs         = {{
3767                        .name = name_tv,
3768                        .vmux = 1,
3769                        .amux = TV,
3770                        .tv   = 1,
3771                        .gpio = 0x0000000,
3772                },{
3773                        .name = name_comp1,
3774                        .vmux = 3,
3775                        .amux = LINE2,
3776                        .gpio = 0x0200000,
3777                },{
3778                        .name = name_comp2,
3779                        .vmux = 0,
3780                        .amux = LINE2,
3781                        .gpio = 0x0200000,
3782                },{
3783                        .name = name_svideo,
3784                        .vmux = 8,
3785                        .amux = LINE2,
3786                        .gpio = 0x0200000,
3787                }},
3788                .radio = {
3789                        .name = name_radio,
3790                        .amux = TV,
3791                        .gpio = 0x0200000,
3792                },
3793        },
3794        [SAA7134_BOARD_ASUSTeK_P7131_ANALOG] = {
3795               .name           = "ASUSTeK P7131 Analog",
3796               .audio_clock    = 0x00187de7,
3797               .tuner_type     = TUNER_PHILIPS_TDA8290,
3798               .radio_type     = UNSET,
3799               .tuner_addr     = ADDR_UNSET,
3800               .radio_addr     = ADDR_UNSET,
3801               .gpiomask       = 1 << 21,
3802               .inputs         = {{
3803                       .name = name_tv,
3804                       .vmux = 1,
3805                       .amux = TV,
3806                       .tv   = 1,
3807                       .gpio = 0x0000000,
3808               }, {
3809                       .name = name_comp1,
3810                       .vmux = 3,
3811                       .amux = LINE2,
3812               }, {
3813                       .name = name_comp2,
3814                       .vmux = 0,
3815                       .amux = LINE2,
3816               }, {
3817                       .name = name_svideo,
3818                       .vmux = 8,
3819                       .amux = LINE2,
3820               } },
3821               .radio = {
3822                       .name = name_radio,
3823                       .amux = TV,
3824                       .gpio = 0x0200000,
3825               },
3826        },
3827        [SAA7134_BOARD_SABRENT_TV_PCB05] = {
3828                .name           = "Sabrent PCMCIA TV-PCB05",
3829                .audio_clock    = 0x00187de7,
3830                .tuner_type     = TUNER_PHILIPS_TDA8290,
3831                .radio_type     = UNSET,
3832                .tuner_addr     = ADDR_UNSET,
3833                .radio_addr     = ADDR_UNSET,
3834                .inputs         = {{
3835                        .name = name_tv,
3836                        .vmux = 1,
3837                        .amux = TV,
3838                        .tv   = 1,
3839                },{
3840                        .name = name_comp1,
3841                        .vmux = 3,
3842                        .amux = LINE1,
3843                },{
3844                        .name = name_comp2,
3845                        .vmux = 0,
3846                        .amux = LINE1,
3847                },{
3848                        .name = name_svideo,
3849                        .vmux = 8,
3850                        .amux = LINE1,
3851                }},
3852                .mute = {
3853                        .name = name_mute,
3854                        .amux = TV,
3855                },
3856        },
3857        [SAA7134_BOARD_10MOONSTVMASTER3] = {
3858                /* Tony Wan <aloha_cn@hotmail.com> */
3859                .name           = "10MOONS TM300 TV Card",
3860                .audio_clock    = 0x00200000,
3861                .tuner_type     = TUNER_LG_PAL_NEW_TAPC,
3862                .radio_type     = UNSET,
3863                .tuner_addr     = ADDR_UNSET,
3864                .radio_addr     = ADDR_UNSET,
3865                .gpiomask       = 0x7000,
3866                .inputs         = {{
3867                        .name = name_tv,
3868                        .vmux = 1,
3869                        .amux = LINE2,
3870                        .gpio = 0x0000,
3871                        .tv   = 1,
3872                },{
3873                        .name = name_comp1,
3874                        .vmux = 3,
3875                        .amux = LINE1,
3876                        .gpio = 0x2000,
3877                },{
3878                        .name = name_svideo,
3879                        .vmux = 8,
3880                        .amux = LINE1,
3881                        .gpio = 0x2000,
3882                }},
3883                .mute = {
3884                        .name = name_mute,
3885                        .amux = LINE2,
3886                        .gpio = 0x3000,
3887                },
3888        },
3889        [SAA7134_BOARD_AVERMEDIA_SUPER_007] = {
3890                .name           = "Avermedia Super 007",
3891                .audio_clock    = 0x00187de7,
3892                .tuner_type     = TUNER_PHILIPS_TDA8290,
3893                .radio_type     = UNSET,
3894                .tuner_addr     = ADDR_UNSET,
3895                .radio_addr     = ADDR_UNSET,
3896                .tda829x_conf   = { .lna_cfg = TDA8290_LNA_OFF },
3897                .mpeg           = SAA7134_MPEG_DVB,
3898                .inputs = {{
3899                        .name   = name_tv, /* FIXME: analog tv untested */
3900                        .vmux   = 1,
3901                        .amux   = TV,
3902                        .tv     = 1,
3903                }},
3904        },
3905        [SAA7134_BOARD_AVERMEDIA_M135A] = {
3906                .name           = "Avermedia PCI pure analog (M135A)",
3907                .audio_clock    = 0x00187de7,
3908                .tuner_type     = TUNER_PHILIPS_TDA8290,
3909                .radio_type     = UNSET,
3910                .tuner_addr     = ADDR_UNSET,
3911                .radio_addr     = ADDR_UNSET,
3912                .tda829x_conf   = { .lna_cfg = TDA8290_LNA_GP0_HIGH_OFF },
3913                .gpiomask       = 0x020200000,
3914                .inputs         = {{
3915                        .name = name_tv,
3916                        .vmux = 1,
3917                        .amux = TV,
3918                        .tv   = 1,
3919                }, {
3920                        .name = name_comp1,
3921                        .vmux = 3,
3922                        .amux = LINE1,
3923                }, {
3924                        .name = name_svideo,
3925                        .vmux = 8,
3926                        .amux = LINE1,
3927                } },
3928                .radio = {
3929                        .name = name_radio,
3930                        .amux = TV,
3931                        .gpio = 0x00200000,
3932                },
3933                .mute = {
3934                        .name = name_mute,
3935                        .amux = TV,
3936                        .gpio = 0x01,
3937                },
3938        },
3939        [SAA7134_BOARD_AVERMEDIA_M733A] = {
3940                .name           = "Avermedia PCI M733A",
3941                .audio_clock    = 0x00187de7,
3942                .tuner_type     = TUNER_PHILIPS_TDA8290,
3943                .radio_type     = UNSET,
3944                .tuner_addr     = ADDR_UNSET,
3945                .radio_addr     = ADDR_UNSET,
3946                .tda829x_conf   = { .lna_cfg = TDA8290_LNA_OFF },
3947                .gpiomask       = 0x020200000,
3948                .inputs         = {{
3949                        .name = name_tv,
3950                        .vmux = 1,
3951                        .amux = TV,
3952                        .tv   = 1,
3953                }, {
3954                        .name = name_comp1,
3955                        .vmux = 3,
3956                        .amux = LINE1,
3957                }, {
3958                        .name = name_svideo,
3959                        .vmux = 8,
3960                        .amux = LINE1,
3961                } },
3962                .radio = {
3963                        .name = name_radio,
3964                        .amux = TV,
3965                        .gpio = 0x00200000,
3966                },
3967                .mute = {
3968                        .name = name_mute,
3969                        .amux = TV,
3970                        .gpio = 0x01,
3971                },
3972        },
3973        [SAA7134_BOARD_BEHOLD_401] = {
3974                /*       Beholder Intl. Ltd. 2008      */
3975                /*Dmitry Belimov <d.belimov@gmail.com> */
3976                .name           = "Beholder BeholdTV 401",
3977                .audio_clock    = 0x00187de7,
3978                .tuner_type     = TUNER_PHILIPS_FQ1216ME,
3979                .radio_type     = UNSET,
3980                .tuner_addr     = ADDR_UNSET,
3981                .radio_addr     = ADDR_UNSET,
3982                .gpiomask       = 0x00008000,
3983                .inputs         = {{
3984                        .name = name_svideo,
3985                        .vmux = 8,
3986                        .amux = LINE1,
3987                },{
3988                        .name = name_comp1,
3989                        .vmux = 1,
3990                        .amux = LINE1,
3991                },{
3992                        .name = name_tv,
3993                        .vmux = 3,
3994                        .amux = LINE2,
3995                        .tv   = 1,
3996                }},
3997                .mute = {
3998                        .name = name_mute,
3999                        .amux = LINE1,
4000                },
4001        },
4002        [SAA7134_BOARD_BEHOLD_403] = {
4003                /*       Beholder Intl. Ltd. 2008      */
4004                /*Dmitry Belimov <d.belimov@gmail.com> */
4005                .name           = "Beholder BeholdTV 403",
4006                .audio_clock    = 0x00187de7,
4007                .tuner_type     = TUNER_PHILIPS_FQ1216ME,
4008                .radio_type     = UNSET,
4009                .tuner_addr     = ADDR_UNSET,
4010                .radio_addr     = ADDR_UNSET,
4011                .gpiomask       = 0x00008000,
4012                .inputs         = {{
4013                        .name = name_svideo,
4014                        .vmux = 8,
4015                        .amux = LINE1,
4016                },{
4017                        .name   = name_comp1,
4018                        .vmux   = 1,
4019                        .amux   = LINE1,
4020                },{
4021                        .name = name_tv,
4022                        .vmux = 3,
4023                        .amux = LINE2,
4024                        .tv   = 1,
4025                }},
4026        },
4027        [SAA7134_BOARD_BEHOLD_403FM] = {
4028                /*       Beholder Intl. Ltd. 2008      */
4029                /*Dmitry Belimov <d.belimov@gmail.com> */
4030                .name           = "Beholder BeholdTV 403 FM",
4031                .audio_clock    = 0x00187de7,
4032                .tuner_type     = TUNER_PHILIPS_FQ1216ME,
4033                .radio_type     = UNSET,
4034                .tuner_addr     = ADDR_UNSET,
4035                .radio_addr     = ADDR_UNSET,
4036                .gpiomask       = 0x00008000,
4037                .inputs         = {{
4038                        .name = name_svideo,
4039                        .vmux = 8,
4040                        .amux = LINE1,
4041                },{
4042                        .name   = name_comp1,
4043                        .vmux   = 1,
4044                        .amux   = LINE1,
4045                },{
4046                        .name = name_tv,
4047                        .vmux = 3,
4048                        .amux = LINE2,
4049                        .tv   = 1,
4050                }},
4051                .radio = {
4052                        .name = name_radio,
4053                        .amux = LINE2,
4054                },
4055        },
4056        [SAA7134_BOARD_BEHOLD_405] = {
4057                /*       Beholder Intl. Ltd. 2008      */
4058                /*Dmitry Belimov <d.belimov@gmail.com> */
4059                .name           = "Beholder BeholdTV 405",
4060                .audio_clock    = 0x00187de7,
4061                .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
4062                .radio_type     = UNSET,
4063                .tuner_addr     = ADDR_UNSET,
4064                .radio_addr     = ADDR_UNSET,
4065                .tda9887_conf   = TDA9887_PRESENT,
4066                .gpiomask       = 0x00008000,
4067                .inputs         = {{
4068                        .name = name_svideo,
4069                        .vmux = 8,
4070                        .amux = LINE1,
4071                },{
4072                        .name = name_comp1,
4073                        .vmux = 3,
4074                        .amux = LINE1,
4075                },{
4076                        .name = name_tv,
4077                        .vmux = 3,
4078                        .amux = LINE2,
4079                        .tv   = 1,
4080                }},
4081        },
4082        [SAA7134_BOARD_BEHOLD_405FM] = {
4083                /* Sergey <skiv@orel.ru> */
4084                /*       Beholder Intl. Ltd. 2008      */
4085                /*Dmitry Belimov <d.belimov@gmail.com> */
4086                .name           = "Beholder BeholdTV 405 FM",
4087                .audio_clock    = 0x00187de7,
4088                .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
4089                .radio_type     = UNSET,
4090                .tuner_addr     = ADDR_UNSET,
4091                .radio_addr     = ADDR_UNSET,
4092                .tda9887_conf   = TDA9887_PRESENT,
4093                .gpiomask       = 0x00008000,
4094                .inputs         = {{
4095                        .name = name_svideo,
4096                        .vmux = 8,
4097                        .amux = LINE1,
4098                },{
4099                        .name = name_comp1,
4100                        .vmux = 3,
4101                        .amux = LINE1,
4102                },{
4103                        .name = name_tv,
4104                        .vmux = 3,
4105                        .amux = LINE2,
4106                        .tv   = 1,
4107                }},
4108                .radio = {
4109                        .name = name_radio,
4110                        .amux = LINE2,
4111                },
4112        },
4113        [SAA7134_BOARD_BEHOLD_407] = {
4114                /*       Beholder Intl. Ltd. 2008      */
4115                /*Dmitry Belimov <d.belimov@gmail.com> */
4116                .name           = "Beholder BeholdTV 407",
4117                .audio_clock    = 0x00187de7,
4118                .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
4119                .radio_type     = UNSET,
4120                .tuner_addr     = ADDR_UNSET,
4121                .radio_addr     = ADDR_UNSET,
4122                .tda9887_conf   = TDA9887_PRESENT,
4123                .gpiomask       = 0x00008000,
4124                .inputs = {{
4125                        .name = name_svideo,
4126                        .vmux = 8,
4127                        .amux = LINE1,
4128                        .gpio = 0xc0c000,
4129                },{
4130                        .name = name_comp1,
4131                        .vmux = 1,
4132                        .amux = LINE1,
4133                        .gpio = 0xc0c000,
4134                },{
4135                        .name = name_tv,
4136                        .vmux = 3,
4137                        .amux = TV,
4138                        .tv = 1,
4139                        .gpio = 0xc0c000,
4140                }},
4141        },
4142        [SAA7134_BOARD_BEHOLD_407FM] = {
4143                /*       Beholder Intl. Ltd. 2008      */
4144                /*Dmitry Belimov <d.belimov@gmail.com> */
4145                .name           = "Beholder BeholdTV 407 FM",
4146                .audio_clock    = 0x00187de7,
4147                .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
4148                .radio_type     = UNSET,
4149                .tuner_addr     = ADDR_UNSET,
4150                .radio_addr     = ADDR_UNSET,
4151                .tda9887_conf   = TDA9887_PRESENT,
4152                .gpiomask       = 0x00008000,
4153                .inputs = {{
4154                        .name = name_svideo,
4155                        .vmux = 8,
4156                        .amux = LINE1,
4157                        .gpio = 0xc0c000,
4158                },{
4159                        .name = name_comp1,
4160                        .vmux = 1,
4161                        .amux = LINE1,
4162                        .gpio = 0xc0c000,
4163                },{
4164                        .name = name_tv,
4165                        .vmux = 3,
4166                        .amux = TV,
4167                        .tv = 1,
4168                        .gpio = 0xc0c000,
4169                }},
4170                .radio = {
4171                        .name = name_radio,
4172                        .amux = LINE2,
4173                        .gpio = 0xc0c000,
4174                },
4175        },
4176        [SAA7134_BOARD_BEHOLD_409] = {
4177                /*       Beholder Intl. Ltd. 2008      */
4178                /*Dmitry Belimov <d.belimov@gmail.com> */
4179                .name           = "Beholder BeholdTV 409",
4180                .audio_clock    = 0x00187de7,
4181                .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
4182                .radio_type     = UNSET,
4183                .tuner_addr     = ADDR_UNSET,
4184                .radio_addr     = ADDR_UNSET,
4185                .tda9887_conf   = TDA9887_PRESENT,
4186                .gpiomask       = 0x00008000,
4187                .inputs         = {{
4188                        .name = name_tv,
4189                        .vmux = 3,
4190                        .amux = TV,
4191                        .tv   = 1,
4192                },{
4193                        .name = name_comp1,
4194                        .vmux = 1,
4195                        .amux = LINE1,
4196                },{
4197                        .name = name_svideo,
4198                        .vmux = 8,
4199                        .amux = LINE1,
4200                }},
4201        },
4202        [SAA7134_BOARD_BEHOLD_505FM] = {
4203                /*       Beholder Intl. Ltd. 2008      */
4204                /*Dmitry Belimov <d.belimov@gmail.com> */
4205                .name           = "Beholder BeholdTV 505 FM",
4206                .audio_clock    = 0x00200000,
4207                .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
4208                .radio_type     = UNSET,
4209                .tuner_addr     = ADDR_UNSET,
4210                .radio_addr     = ADDR_UNSET,
4211                .tda9887_conf   = TDA9887_PRESENT,
4212                .gpiomask       = 0x00008000,
4213                .inputs         = {{
4214                        .name = name_tv,
4215                        .vmux = 3,
4216                        .amux = LINE2,
4217                        .tv   = 1,
4218                }, {
4219                        .name = name_comp1,
4220                        .vmux = 1,
4221                        .amux = LINE1,
4222                }, {
4223                        .name = name_svideo,
4224                        .vmux = 8,
4225                        .amux = LINE1,
4226                } },
4227                .mute = {
4228                        .name = name_mute,
4229                        .amux = LINE1,
4230                },
4231                .radio = {
4232                        .name = name_radio,
4233                        .amux = LINE2,
4234                },
4235        },
4236        [SAA7134_BOARD_BEHOLD_505RDS_MK5] = {
4237                /*       Beholder Intl. Ltd. 2008      */
4238                /*Dmitry Belimov <d.belimov@gmail.com> */
4239                .name           = "Beholder BeholdTV 505 RDS",
4240                .audio_clock    = 0x00200000,
4241                .tuner_type     = TUNER_PHILIPS_FM1216MK5,
4242                .radio_type     = UNSET,
4243                .tuner_addr     = ADDR_UNSET,
4244                .radio_addr     = ADDR_UNSET,
4245                .rds_addr       = 0x10,
4246                .tda9887_conf   = TDA9887_PRESENT,
4247                .gpiomask       = 0x00008000,
4248                .inputs         = {{
4249                        .name = name_tv,
4250                        .vmux = 3,
4251                        .amux = LINE2,
4252                        .tv   = 1,
4253                },{
4254                        .name = name_comp1,
4255                        .vmux = 1,
4256                        .amux = LINE1,
4257                },{
4258                        .name = name_svideo,
4259                        .vmux = 8,
4260                        .amux = LINE1,
4261                }},
4262                .mute = {
4263                        .name = name_mute,
4264                        .amux = LINE1,
4265                },
4266                .radio = {
4267                        .name = name_radio,
4268                        .amux = LINE2,
4269                },
4270        },
4271        [SAA7134_BOARD_BEHOLD_507_9FM] = {
4272                /*       Beholder Intl. Ltd. 2008      */
4273                /*Dmitry Belimov <d.belimov@gmail.com> */
4274                .name           = "Beholder BeholdTV 507 FM / BeholdTV 509 FM",
4275                .audio_clock    = 0x00187de7,
4276                .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
4277                .radio_type     = UNSET,
4278                .tuner_addr     = ADDR_UNSET,
4279                .radio_addr     = ADDR_UNSET,
4280                .tda9887_conf   = TDA9887_PRESENT,
4281                .gpiomask       = 0x00008000,
4282                .inputs         = {{
4283                        .name = name_tv,
4284                        .vmux = 3,
4285                        .amux = TV,
4286                        .tv   = 1,
4287                },{
4288                        .name = name_comp1,
4289                        .vmux = 1,
4290                        .amux = LINE1,
4291                },{
4292                        .name = name_svideo,
4293                        .vmux = 8,
4294                        .amux = LINE1,
4295                }},
4296                        .radio = {
4297                        .name = name_radio,
4298                        .amux = LINE2,
4299                },
4300        },
4301        [SAA7134_BOARD_BEHOLD_507RDS_MK5] = {
4302                /*       Beholder Intl. Ltd. 2008      */
4303                /*Dmitry Belimov <d.belimov@gmail.com> */
4304                .name           = "Beholder BeholdTV 507 RDS",
4305                .audio_clock    = 0x00187de7,
4306                .tuner_type     = TUNER_PHILIPS_FM1216MK5,
4307                .radio_type     = UNSET,
4308                .tuner_addr     = ADDR_UNSET,
4309                .radio_addr     = ADDR_UNSET,
4310                .rds_addr       = 0x10,
4311                .tda9887_conf   = TDA9887_PRESENT,
4312                .gpiomask       = 0x00008000,
4313                .inputs         = {{
4314                        .name = name_tv,
4315                        .vmux = 3,
4316                        .amux = TV,
4317                        .tv   = 1,
4318                }, {
4319                        .name = name_comp1,
4320                        .vmux = 1,
4321                        .amux = LINE1,
4322                }, {
4323                        .name = name_svideo,
4324                        .vmux = 8,
4325                        .amux = LINE1,
4326                } },
4327                        .radio = {
4328                        .name = name_radio,
4329                        .amux = LINE2,
4330                },
4331        },
4332        [SAA7134_BOARD_BEHOLD_507RDS_MK3] = {
4333                /*       Beholder Intl. Ltd. 2008      */
4334                /*Dmitry Belimov <d.belimov@gmail.com> */
4335                .name           = "Beholder BeholdTV 507 RDS",
4336                .audio_clock    = 0x00187de7,
4337                .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
4338                .radio_type     = UNSET,
4339                .tuner_addr     = ADDR_UNSET,
4340                .radio_addr     = ADDR_UNSET,
4341                .rds_addr       = 0x10,
4342                .tda9887_conf   = TDA9887_PRESENT,
4343                .gpiomask       = 0x00008000,
4344                .inputs         = {{
4345                        .name = name_tv,
4346                        .vmux = 3,
4347                        .amux = TV,
4348                        .tv   = 1,
4349                }, {
4350                        .name = name_comp1,
4351                        .vmux = 1,
4352                        .amux = LINE1,
4353                }, {
4354                        .name = name_svideo,
4355                        .vmux = 8,
4356                        .amux = LINE1,
4357                } },
4358                        .radio = {
4359                        .name = name_radio,
4360                        .amux = LINE2,
4361                },
4362        },
4363        [SAA7134_BOARD_BEHOLD_COLUMBUS_TVFM] = {
4364                /*       Beholder Intl. Ltd. 2008      */
4365                /* Dmitry Belimov <d.belimov@gmail.com> */
4366                .name           = "Beholder BeholdTV Columbus TV/FM",
4367                .audio_clock    = 0x00187de7,
4368                .tuner_type     = TUNER_ALPS_TSBE5_PAL,
4369                .radio_type     = TUNER_TEA5767,
4370                .tuner_addr     = 0xc2 >> 1,
4371                .radio_addr     = 0xc0 >> 1,
4372                .tda9887_conf   = TDA9887_PRESENT,
4373                .gpiomask       = 0x000A8004,
4374                .inputs         = {{
4375                        .name = name_tv,
4376                        .vmux = 3,
4377                        .amux = TV,
4378                        .tv   = 1,
4379                        .gpio = 0x000A8004,
4380                }, {
4381                        .name = name_comp1,
4382                        .vmux = 1,
4383                        .amux = LINE1,
4384                        .gpio = 0x000A8000,
4385                }, {
4386                        .name = name_svideo,
4387                        .vmux = 8,
4388                        .amux = LINE1,
4389                        .gpio = 0x000A8000,
4390                } },
4391                .radio = {
4392                        .name = name_radio,
4393                        .amux = LINE2,
4394                        .gpio = 0x000A8000,
4395                },
4396        },
4397        [SAA7134_BOARD_BEHOLD_607FM_MK3] = {
4398                /* Andrey Melnikoff <temnota@kmv.ru> */
4399                .name           = "Beholder BeholdTV 607 FM",
4400                .audio_clock    = 0x00187de7,
4401                .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
4402                .radio_type     = UNSET,
4403                .tuner_addr     = ADDR_UNSET,
4404                .radio_addr     = ADDR_UNSET,
4405                .tda9887_conf   = TDA9887_PRESENT,
4406                .inputs         = {{
4407                        .name = name_tv,
4408                        .vmux = 3,
4409                        .amux = TV,
4410                        .tv   = 1,
4411                }, {
4412                        .name = name_comp1,
4413                        .vmux = 1,
4414                        .amux = LINE1,
4415                }, {
4416                        .name = name_svideo,
4417                        .vmux = 8,
4418                        .amux = LINE1,
4419                } },
4420                .radio = {
4421                        .name = name_radio,
4422                        .amux = LINE2,
4423                },
4424        },
4425        [SAA7134_BOARD_BEHOLD_609FM_MK3] = {
4426                /* Andrey Melnikoff <temnota@kmv.ru> */
4427                .name           = "Beholder BeholdTV 609 FM",
4428                .audio_clock    = 0x00187de7,
4429                .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
4430                .radio_type     = UNSET,
4431                .tuner_addr     = ADDR_UNSET,
4432                .radio_addr     = ADDR_UNSET,
4433                .tda9887_conf   = TDA9887_PRESENT,
4434                .inputs         = {{
4435                        .name = name_tv,
4436                        .vmux = 3,
4437                        .amux = TV,
4438                        .tv   = 1,
4439                }, {
4440                        .name = name_comp1,
4441                        .vmux = 1,
4442                        .amux = LINE1,
4443                }, {
4444                        .name = name_svideo,
4445                        .vmux = 8,
4446                        .amux = LINE1,
4447                } },
4448                .radio = {
4449                        .name = name_radio,
4450                        .amux = LINE2,
4451                },
4452        },
4453        [SAA7134_BOARD_BEHOLD_607FM_MK5] = {
4454                /* Andrey Melnikoff <temnota@kmv.ru> */
4455                .name           = "Beholder BeholdTV 607 FM",
4456                .audio_clock    = 0x00187de7,
4457                .tuner_type     = TUNER_PHILIPS_FM1216MK5,
4458                .radio_type     = UNSET,
4459                .tuner_addr     = ADDR_UNSET,
4460                .radio_addr     = ADDR_UNSET,
4461                .tda9887_conf   = TDA9887_PRESENT,
4462                .inputs         = {{
4463                        .name = name_tv,
4464                        .vmux = 3,
4465                        .amux = TV,
4466                        .tv   = 1,
4467                }, {
4468                        .name = name_comp1,
4469                        .vmux = 1,
4470                        .amux = LINE1,
4471                }, {
4472                        .name = name_svideo,
4473                        .vmux = 8,
4474                        .amux = LINE1,
4475                } },
4476                .radio = {
4477                        .name = name_radio,
4478                        .amux = LINE2,
4479                },
4480        },
4481        [SAA7134_BOARD_BEHOLD_609FM_MK5] = {
4482                /* Andrey Melnikoff <temnota@kmv.ru> */
4483                .name           = "Beholder BeholdTV 609 FM",
4484                .audio_clock    = 0x00187de7,
4485                .tuner_type     = TUNER_PHILIPS_FM1216MK5,
4486                .radio_type     = UNSET,
4487                .tuner_addr     = ADDR_UNSET,
4488                .radio_addr     = ADDR_UNSET,
4489                .tda9887_conf   = TDA9887_PRESENT,
4490                .inputs         = {{
4491                        .name = name_tv,
4492                        .vmux = 3,
4493                        .amux = TV,
4494                        .tv   = 1,
4495                }, {
4496                        .name = name_comp1,
4497                        .vmux = 1,
4498                        .amux = LINE1,
4499                }, {
4500                        .name = name_svideo,
4501                        .vmux = 8,
4502                        .amux = LINE1,
4503                } },
4504                .radio = {
4505                        .name = name_radio,
4506                        .amux = LINE2,
4507                },
4508        },
4509        [SAA7134_BOARD_BEHOLD_607RDS_MK3] = {
4510                /* Andrey Melnikoff <temnota@kmv.ru> */
4511                .name           = "Beholder BeholdTV 607 RDS",
4512                .audio_clock    = 0x00187de7,
4513                .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
4514                .radio_type     = UNSET,
4515                .tuner_addr     = ADDR_UNSET,
4516                .radio_addr     = ADDR_UNSET,
4517                .rds_addr       = 0x10,
4518                .tda9887_conf   = TDA9887_PRESENT,
4519                .inputs         = {{
4520                        .name = name_tv,
4521                        .vmux = 3,
4522                        .amux = TV,
4523                        .tv   = 1,
4524                }, {
4525                        .name = name_comp1,
4526                        .vmux = 1,
4527                        .amux = LINE1,
4528                }, {
4529                        .name = name_svideo,
4530                        .vmux = 8,
4531                        .amux = LINE1,
4532                } },
4533                .radio = {
4534                        .name = name_radio,
4535                        .amux = LINE2,
4536                },
4537        },
4538        [SAA7134_BOARD_BEHOLD_609RDS_MK3] = {
4539                /* Andrey Melnikoff <temnota@kmv.ru> */
4540                .name           = "Beholder BeholdTV 609 RDS",
4541                .audio_clock    = 0x00187de7,
4542                .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
4543                .radio_type     = UNSET,
4544                .tuner_addr     = ADDR_UNSET,
4545                .radio_addr     = ADDR_UNSET,
4546                .rds_addr       = 0x10,
4547                .tda9887_conf   = TDA9887_PRESENT,
4548                .inputs         = {{
4549                        .name = name_tv,
4550                        .vmux = 3,
4551                        .amux = TV,
4552                        .tv   = 1,
4553                }, {
4554                        .name = name_comp1,
4555                        .vmux = 1,
4556                        .amux = LINE1,
4557                }, {
4558                        .name = name_svideo,
4559                        .vmux = 8,
4560                        .amux = LINE1,
4561                } },
4562                .radio = {
4563                        .name = name_radio,
4564                        .amux = LINE2,
4565                },
4566        },
4567        [SAA7134_BOARD_BEHOLD_607RDS_MK5] = {
4568                /* Andrey Melnikoff <temnota@kmv.ru> */
4569                .name           = "Beholder BeholdTV 607 RDS",
4570                .audio_clock    = 0x00187de7,
4571                .tuner_type     = TUNER_PHILIPS_FM1216MK5,
4572                .radio_type     = UNSET,
4573                .tuner_addr     = ADDR_UNSET,
4574                .radio_addr     = ADDR_UNSET,
4575                .rds_addr       = 0x10,
4576                .tda9887_conf   = TDA9887_PRESENT,
4577                .inputs         = {{
4578                        .name = name_tv,
4579                        .vmux = 3,
4580                        .amux = TV,
4581                        .tv   = 1,
4582                }, {
4583                        .name = name_comp1,
4584                        .vmux = 1,
4585                        .amux = LINE1,
4586                }, {
4587                        .name = name_svideo,
4588                        .vmux = 8,
4589                        .amux = LINE1,
4590                } },
4591                .radio = {
4592                        .name = name_radio,
4593                        .amux = LINE2,
4594                },
4595        },
4596        [SAA7134_BOARD_BEHOLD_609RDS_MK5] = {
4597                /* Andrey Melnikoff <temnota@kmv.ru> */
4598                .name           = "Beholder BeholdTV 609 RDS",
4599                .audio_clock    = 0x00187de7,
4600                .tuner_type     = TUNER_PHILIPS_FM1216MK5,
4601                .radio_type     = UNSET,
4602                .tuner_addr     = ADDR_UNSET,
4603                .radio_addr     = ADDR_UNSET,
4604                .rds_addr       = 0x10,
4605                .tda9887_conf   = TDA9887_PRESENT,
4606                .inputs         = {{
4607                        .name = name_tv,
4608                        .vmux = 3,
4609                        .amux = TV,
4610                        .tv   = 1,
4611                },{
4612                        .name = name_comp1,
4613                        .vmux = 1,
4614                        .amux = LINE1,
4615                },{
4616                        .name = name_svideo,
4617                        .vmux = 8,
4618                        .amux = LINE1,
4619                }},
4620                .radio = {
4621                        .name = name_radio,
4622                        .amux = LINE2,
4623                },
4624        },
4625        [SAA7134_BOARD_BEHOLD_M6] = {
4626                /* Igor Kuznetsov <igk@igk.ru> */
4627                /* Andrey Melnikoff <temnota@kmv.ru> */
4628                /* Beholder Intl. Ltd. Dmitry Belimov <d.belimov@gmail.com> */
4629                /* Alexey Osipov <lion-simba@pridelands.ru> */
4630                .name           = "Beholder BeholdTV M6",
4631                .audio_clock    = 0x00187de7,
4632                .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
4633                .radio_type     = UNSET,
4634                .tuner_addr     = ADDR_UNSET,
4635                .radio_addr     = ADDR_UNSET,
4636                .empress_addr   = 0x20,
4637                .tda9887_conf   = TDA9887_PRESENT,
4638                .inputs         = { {
4639                        .name = name_tv,
4640                        .vmux = 3,
4641                        .amux = TV,
4642                        .tv   = 1,
4643                }, {
4644                        .name = name_comp1,
4645                        .vmux = 1,
4646                        .amux = LINE1,
4647                }, {
4648                        .name = name_svideo,
4649                        .vmux = 8,
4650                        .amux = LINE1,
4651                } },
4652                .radio = {
4653                        .name = name_radio,
4654                        .amux = LINE2,
4655                },
4656                .mpeg  = SAA7134_MPEG_EMPRESS,
4657                .video_out = CCIR656,
4658                .vid_port_opts  = (SET_T_CODE_POLARITY_NON_INVERTED |
4659                                        SET_CLOCK_NOT_DELAYED |
4660                                        SET_CLOCK_INVERTED |
4661                                        SET_VSYNC_OFF),
4662        },
4663        [SAA7134_BOARD_BEHOLD_M63] = {
4664                /* Igor Kuznetsov <igk@igk.ru> */
4665                /* Andrey Melnikoff <temnota@kmv.ru> */
4666                /* Beholder Intl. Ltd. Dmitry Belimov <d.belimov@gmail.com> */
4667                .name           = "Beholder BeholdTV M63",
4668                .audio_clock    = 0x00187de7,
4669                .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
4670                .radio_type     = UNSET,
4671                .tuner_addr     = ADDR_UNSET,
4672                .radio_addr     = ADDR_UNSET,
4673                .empress_addr   = 0x20,
4674                .tda9887_conf   = TDA9887_PRESENT,
4675                .inputs         = { {
4676                        .name = name_tv,
4677                        .vmux = 3,
4678                        .amux = TV,
4679                        .tv   = 1,
4680                }, {
4681                        .name = name_comp1,
4682                        .vmux = 1,
4683                        .amux = LINE1,
4684                }, {
4685                        .name = name_svideo,
4686                        .vmux = 8,
4687                        .amux = LINE1,
4688                } },
4689                .radio = {
4690                        .name = name_radio,
4691                        .amux = LINE2,
4692                },
4693                .mpeg  = SAA7134_MPEG_EMPRESS,
4694                .video_out = CCIR656,
4695                .vid_port_opts  = (SET_T_CODE_POLARITY_NON_INVERTED |
4696                                        SET_CLOCK_NOT_DELAYED |
4697                                        SET_CLOCK_INVERTED |
4698                                        SET_VSYNC_OFF),
4699        },
4700        [SAA7134_BOARD_BEHOLD_M6_EXTRA] = {
4701                /* Igor Kuznetsov <igk@igk.ru> */
4702                /* Andrey Melnikoff <temnota@kmv.ru> */
4703                /* Beholder Intl. Ltd. Dmitry Belimov <d.belimov@gmail.com> */
4704                /* Alexey Osipov <lion-simba@pridelands.ru> */
4705                .name           = "Beholder BeholdTV M6 Extra",
4706                .audio_clock    = 0x00187de7,
4707                .tuner_type     = TUNER_PHILIPS_FM1216MK5,
4708                .radio_type     = UNSET,
4709                .tuner_addr     = ADDR_UNSET,
4710                .radio_addr     = ADDR_UNSET,
4711                .rds_addr       = 0x10,
4712                .empress_addr   = 0x20,
4713                .tda9887_conf   = TDA9887_PRESENT,
4714                .inputs         = { {
4715                        .name = name_tv,
4716                        .vmux = 3,
4717                        .amux = TV,
4718                        .tv   = 1,
4719                }, {
4720                        .name = name_comp1,
4721                        .vmux = 1,
4722                        .amux = LINE1,
4723                }, {
4724                        .name = name_svideo,
4725                        .vmux = 8,
4726                        .amux = LINE1,
4727                } },
4728                .radio = {
4729                        .name = name_radio,
4730                        .amux = LINE2,
4731                },
4732                .mpeg  = SAA7134_MPEG_EMPRESS,
4733                .video_out = CCIR656,
4734                .vid_port_opts  = (SET_T_CODE_POLARITY_NON_INVERTED |
4735                                        SET_CLOCK_NOT_DELAYED |
4736                                        SET_CLOCK_INVERTED |
4737                                        SET_VSYNC_OFF),
4738        },
4739        [SAA7134_BOARD_TWINHAN_DTV_DVB_3056] = {
4740                .name           = "Twinhan Hybrid DTV-DVB 3056 PCI",
4741                .audio_clock    = 0x00187de7,
4742                .tuner_type     = TUNER_PHILIPS_TDA8290,
4743                .radio_type     = UNSET,
4744                .tuner_addr     = ADDR_UNSET,
4745                .radio_addr     = ADDR_UNSET,
4746                .tda829x_conf   = { .lna_cfg = TDA8290_LNA_GP0_HIGH_OFF },
4747                .mpeg           = SAA7134_MPEG_DVB,
4748                .gpiomask       = 0x0200000,
4749                .inputs = {{
4750                        .name   = name_tv,
4751                        .vmux   = 1,
4752                        .amux   = TV,
4753                        .tv     = 1,
4754                }, {
4755                        .name   = name_comp1,
4756                        .vmux   = 3,
4757                        .amux   = LINE1,
4758                }, {
4759                        .name   = name_svideo,
4760                        .vmux   = 8,            /* untested */
4761                        .amux   = LINE1,
4762                } },
4763                .radio = {
4764                        .name   = name_radio,
4765                        .amux   = TV,
4766                        .gpio   = 0x0200000,
4767                },
4768        },
4769        [SAA7134_BOARD_GENIUS_TVGO_A11MCE] = {
4770                /* Adrian Pardini <pardo.bsso@gmail.com> */
4771                .name           = "Genius TVGO AM11MCE",
4772                .audio_clock    = 0x00200000,
4773                .tuner_type     = TUNER_TNF_5335MF,
4774                .radio_type     = UNSET,
4775                .tuner_addr     = ADDR_UNSET,
4776                .radio_addr     = ADDR_UNSET,
4777                .gpiomask       = 0xf000,
4778                .inputs         = {{
4779                        .name = name_tv_mono,
4780                        .vmux = 1,
4781                        .amux = LINE2,
4782                        .gpio = 0x0000,
4783                        .tv   = 1,
4784                }, {
4785                        .name = name_comp1,
4786                        .vmux = 3,
4787                        .amux = LINE1,
4788                        .gpio = 0x2000,
4789                        .tv = 1
4790                }, {
4791                        .name = name_svideo,
4792                        .vmux = 8,
4793                        .amux = LINE1,
4794                        .gpio = 0x2000,
4795        } },
4796                .radio = {
4797                        .name = name_radio,
4798                        .amux = LINE2,
4799                        .gpio = 0x1000,
4800                },
4801                .mute = {
4802                        .name = name_mute,
4803                        .amux = LINE2,
4804                        .gpio = 0x6000,
4805                },
4806        },
4807        [SAA7134_BOARD_PHILIPS_SNAKE] = {
4808                .name           = "NXP Snake DVB-S reference design",
4809                .audio_clock    = 0x00200000,
4810                .tuner_type     = TUNER_ABSENT,
4811                .radio_type     = UNSET,
4812                .tuner_addr     = ADDR_UNSET,
4813                .radio_addr     = ADDR_UNSET,
4814                .mpeg           = SAA7134_MPEG_DVB,
4815                .inputs = {{
4816                        .name   = name_comp1,
4817                        .vmux   = 3,
4818                        .amux   = LINE1,
4819                }, {
4820                        .name   = name_svideo,
4821                        .vmux   = 8,
4822                        .amux   = LINE1,
4823                } },
4824        },
4825        [SAA7134_BOARD_CREATIX_CTX953] = {
4826                .name         = "Medion/Creatix CTX953 Hybrid",
4827                .audio_clock  = 0x00187de7,
4828                .tuner_type   = TUNER_PHILIPS_TDA8290,
4829                .radio_type   = UNSET,
4830                .tuner_addr   = ADDR_UNSET,
4831                .radio_addr   = ADDR_UNSET,
4832                .tda829x_conf = { .lna_cfg = TDA8290_LNA_OFF },
4833                .mpeg         = SAA7134_MPEG_DVB,
4834                .inputs       = {{
4835                        .name = name_tv,
4836                        .vmux = 1,
4837                        .amux = TV,
4838                        .tv   = 1,
4839                }, {
4840                        .name = name_comp1,
4841                        .vmux = 0,
4842                        .amux = LINE1,
4843                }, {
4844                        .name = name_svideo,
4845                        .vmux = 8,
4846                        .amux = LINE1,
4847                } },
4848        },
4849        [SAA7134_BOARD_MSI_TVANYWHERE_AD11] = {
4850                .name           = "MSI TV@nywhere A/D v1.1",
4851                .audio_clock    = 0x00187de7,
4852                .tuner_type     = TUNER_PHILIPS_TDA8290,
4853                .radio_type     = UNSET,
4854                .tuner_addr     = ADDR_UNSET,
4855                .radio_addr     = ADDR_UNSET,
4856                .tda829x_conf   = { .lna_cfg = TDA8290_LNA_GP0_HIGH_OFF },
4857                .mpeg           = SAA7134_MPEG_DVB,
4858                .gpiomask       = 0x0200000,
4859                .inputs = { {
4860                        .name   = name_tv,
4861                        .vmux   = 1,
4862                        .amux   = TV,
4863                        .tv     = 1,
4864                }, {
4865                        .name   = name_comp1,
4866                        .vmux   = 3,
4867                        .amux   = LINE1,
4868                }, {
4869                        .name   = name_svideo,
4870                        .vmux   = 8,
4871                        .amux   = LINE1,
4872                } },
4873                .radio = {
4874                        .name   = name_radio,
4875                        .amux   = TV,
4876                        .gpio   = 0x0200000,
4877                },
4878        },
4879        [SAA7134_BOARD_AVERMEDIA_CARDBUS_506] = {
4880                .name           = "AVerMedia Cardbus TV/Radio (E506R)",
4881                .audio_clock    = 0x187de7,
4882                .tuner_type     = TUNER_XC2028,
4883                .radio_type     = UNSET,
4884                .tuner_addr     = ADDR_UNSET,
4885                .radio_addr     = ADDR_UNSET,
4886                 .mpeg           = SAA7134_MPEG_DVB,
4887                 .inputs         = {{
4888                         .name = name_tv,
4889                         .vmux = 1,
4890                         .amux = TV,
4891                         .tv   = 1,
4892                 }, {
4893                         .name = name_comp1,
4894                         .vmux = 3,
4895                         .amux = LINE1,
4896                 }, {
4897                         .name = name_svideo,
4898                         .vmux = 8,
4899                         .amux = LINE2,
4900                 } },
4901                 .radio = {
4902                         .name = name_radio,
4903                         .amux = TV,
4904                 },
4905        },
4906        [SAA7134_BOARD_AVERMEDIA_A16D] = {
4907                .name           = "AVerMedia Hybrid TV/Radio (A16D)",
4908                .audio_clock    = 0x187de7,
4909                .tuner_type     = TUNER_XC2028,
4910                .radio_type     = UNSET,
4911                .tuner_addr     = ADDR_UNSET,
4912                .radio_addr     = ADDR_UNSET,
4913                .mpeg           = SAA7134_MPEG_DVB,
4914                .inputs         = {{
4915                        .name = name_tv,
4916                        .vmux = 1,
4917                        .amux = TV,
4918                        .tv   = 1,
4919                }, {
4920                        .name = name_svideo,
4921                        .vmux = 8,
4922                        .amux = LINE1,
4923                }, {
4924                        .name = name_comp,
4925                        .vmux = 0,
4926                        .amux = LINE1,
4927                } },
4928                .radio = {
4929                        .name = name_radio,
4930                        .amux = TV,
4931                },
4932        },
4933        [SAA7134_BOARD_AVERMEDIA_M115] = {
4934                .name           = "Avermedia M115",
4935                .audio_clock    = 0x187de7,
4936                .tuner_type     = TUNER_XC2028,
4937                .radio_type     = UNSET,
4938                .tuner_addr     = ADDR_UNSET,
4939                .radio_addr     = ADDR_UNSET,
4940                .inputs         = {{
4941                        .name = name_tv,
4942                        .vmux = 1,
4943                        .amux = TV,
4944                        .tv   = 1,
4945                }, {
4946                        .name = name_comp1,
4947                        .vmux = 3,
4948                        .amux = LINE1,
4949                }, {
4950                        .name = name_svideo,
4951                        .vmux = 8,
4952                        .amux = LINE2,
4953                } },
4954        },
4955        [SAA7134_BOARD_VIDEOMATE_T750] = {
4956                /* John Newbigin <jn@it.swin.edu.au> */
4957                .name           = "Compro VideoMate T750",
4958                .audio_clock    = 0x00187de7,
4959                .tuner_type     = TUNER_XC2028,
4960                .radio_type     = UNSET,
4961                .tuner_addr     = 0x61,
4962                .radio_addr     = ADDR_UNSET,
4963                .mpeg           = SAA7134_MPEG_DVB,
4964                .inputs = {{
4965                        .name   = name_tv,
4966                        .vmux   = 3,
4967                        .amux   = TV,
4968                        .tv     = 1,
4969                }, {
4970                        .name   = name_comp1,
4971                        .vmux   = 1,
4972                        .amux   = LINE2,
4973                }, {
4974                        .name   = name_svideo,
4975                        .vmux   = 8,
4976                        .amux   = LINE2,
4977                } },
4978                .radio = {
4979                        .name = name_radio,
4980                        .amux = TV,
4981                }
4982        },
4983        [SAA7134_BOARD_AVERMEDIA_A700_PRO] = {
4984                /* Matthias Schwarzott <zzam@gentoo.org> */
4985                .name           = "Avermedia DVB-S Pro A700",
4986                .audio_clock    = 0x00187de7,
4987                .tuner_type     = TUNER_ABSENT,
4988                .radio_type     = UNSET,
4989                .tuner_addr     = ADDR_UNSET,
4990                .radio_addr     = ADDR_UNSET,
4991                .mpeg           = SAA7134_MPEG_DVB,
4992                .inputs         = { {
4993                        .name = name_comp,
4994                        .vmux = 1,
4995                        .amux = LINE1,
4996                }, {
4997                        .name = name_svideo,
4998                        .vmux = 6,
4999                        .amux = LINE1,
5000                } },
5001        },
5002        [SAA7134_BOARD_AVERMEDIA_A700_HYBRID] = {
5003                /* Matthias Schwarzott <zzam@gentoo.org> */
5004                .name           = "Avermedia DVB-S Hybrid+FM A700",
5005                .audio_clock    = 0x00187de7,
5006                .tuner_type     = TUNER_XC2028,
5007                .radio_type     = UNSET,
5008                .tuner_addr     = ADDR_UNSET,
5009                .radio_addr     = ADDR_UNSET,
5010                .mpeg           = SAA7134_MPEG_DVB,
5011                .inputs         = { {
5012                        .name   = name_tv,
5013                        .vmux   = 4,
5014                        .amux   = TV,
5015                        .tv     = 1,
5016                }, {
5017                        .name = name_comp,
5018                        .vmux = 1,
5019                        .amux = LINE1,
5020                }, {
5021                        .name = name_svideo,
5022                        .vmux = 6,
5023                        .amux = LINE1,
5024                } },
5025                .radio = {
5026                        .name = name_radio,
5027                        .amux = TV,
5028                },
5029        },
5030        [SAA7134_BOARD_BEHOLD_H6] = {
5031                /* Igor Kuznetsov <igk@igk.ru> */
5032                .name           = "Beholder BeholdTV H6",
5033                .audio_clock    = 0x00187de7,
5034                .tuner_type     = TUNER_PHILIPS_FMD1216MEX_MK3,
5035                .radio_type     = UNSET,
5036                .tuner_addr     = ADDR_UNSET,
5037                .radio_addr     = ADDR_UNSET,
5038                .tda9887_conf   = TDA9887_PRESENT,
5039                .mpeg           = SAA7134_MPEG_DVB,
5040                .inputs         = {{
5041                        .name = name_tv,
5042                        .vmux = 3,
5043                        .amux = TV,
5044                        .tv   = 1,
5045                }, {
5046                        .name = name_comp1,
5047                        .vmux = 1,
5048                        .amux = LINE1,
5049                }, {
5050                        .name = name_svideo,
5051                        .vmux = 8,
5052                        .amux = LINE1,
5053                } },
5054                .radio = {
5055                        .name = name_radio,
5056                        .amux = LINE2,
5057                },
5058        },
5059        [SAA7134_BOARD_ASUSTeK_TIGER_3IN1] = {
5060                .name           = "Asus Tiger 3in1",
5061                .audio_clock    = 0x00187de7,
5062                .tuner_type     = TUNER_PHILIPS_TDA8290,
5063                .radio_type     = UNSET,
5064                .tuner_addr     = ADDR_UNSET,
5065                .radio_addr     = ADDR_UNSET,
5066                .tda829x_conf   = { .lna_cfg = TDA8290_LNA_GP0_HIGH_OFF },
5067                .gpiomask       = 1 << 21,
5068                .mpeg           = SAA7134_MPEG_DVB,
5069                .inputs         = {{
5070                        .name = name_tv,
5071                        .vmux = 1,
5072                        .amux = TV,
5073                        .tv   = 1,
5074                }, {
5075                        .name = name_comp,
5076                        .vmux = 0,
5077                        .amux = LINE2,
5078                }, {
5079                        .name = name_svideo,
5080                        .vmux = 8,
5081                        .amux = LINE2,
5082                } },
5083                .radio = {
5084                        .name = name_radio,
5085                        .amux = TV,
5086                        .gpio = 0x0200000,
5087                },
5088        },
5089        [SAA7134_BOARD_ASUSTeK_PS3_100] = {
5090                .name           = "Asus My Cinema PS3-100",
5091                .audio_clock    = 0x00187de7,
5092                .tuner_type     = TUNER_PHILIPS_TDA8290,
5093                .radio_type     = UNSET,
5094                .tuner_addr     = ADDR_UNSET,
5095                .radio_addr     = ADDR_UNSET,
5096                .tda829x_conf   = { .lna_cfg = TDA8290_LNA_GP0_HIGH_OFF },
5097                .gpiomask       = 1 << 21,
5098                .mpeg           = SAA7134_MPEG_DVB,
5099                .inputs         = {{
5100                        .name = name_tv,
5101                        .vmux = 1,
5102                        .amux = TV,
5103                        .tv   = 1,
5104                }, {
5105                        .name = name_comp,
5106                        .vmux = 0,
5107                        .amux = LINE2,
5108                }, {
5109                        .name = name_svideo,
5110                        .vmux = 8,
5111                        .amux = LINE2,
5112                } },
5113                .radio = {
5114                        .name = name_radio,
5115                        .amux = TV,
5116                        .gpio = 0x0200000,
5117                },
5118        },
5119        [SAA7134_BOARD_REAL_ANGEL_220] = {
5120                .name           = "Zogis Real Angel 220",
5121                .audio_clock    = 0x00187de7,
5122                .tuner_type     = TUNER_TNF_5335MF,
5123                .radio_type     = UNSET,
5124                .tuner_addr     = ADDR_UNSET,
5125                .radio_addr     = ADDR_UNSET,
5126                .gpiomask       = 0x801a8087,
5127                .inputs = { {
5128                        .name   = name_tv,
5129                        .vmux   = 3,
5130                        .amux   = LINE2,
5131                        .tv     = 1,
5132                        .gpio   = 0x624000,
5133                }, {
5134                        .name   = name_comp1,
5135                        .vmux   = 1,
5136                        .amux   = LINE1,
5137                        .gpio   = 0x624000,
5138                }, {
5139                        .name   = name_svideo,
5140                        .vmux   = 1,
5141                        .amux   = LINE1,
5142                        .gpio   = 0x624000,
5143                } },
5144                .radio = {
5145                        .name   = name_radio,
5146                        .amux   = LINE2,
5147                        .gpio   = 0x624001,
5148                },
5149                .mute = {
5150                        .name = name_mute,
5151                        .amux = TV,
5152                },
5153        },
5154        [SAA7134_BOARD_ADS_INSTANT_HDTV_PCI] = {
5155                .name           = "ADS Tech Instant HDTV",
5156                .audio_clock    = 0x00187de7,
5157                .tuner_type     = TUNER_PHILIPS_TUV1236D,
5158                .radio_type     = UNSET,
5159                .tuner_addr     = ADDR_UNSET,
5160                .radio_addr     = ADDR_UNSET,
5161                .tda9887_conf   = TDA9887_PRESENT,
5162                .mpeg           = SAA7134_MPEG_DVB,
5163                .inputs         = { {
5164                        .name = name_tv,
5165                        .vmux = 1,
5166                        .amux = TV,
5167                        .tv   = 1,
5168                }, {
5169                        .name = name_comp,
5170                        .vmux = 4,
5171                        .amux = LINE1,
5172                }, {
5173                        .name = name_svideo,
5174                        .vmux = 8,
5175                        .amux = LINE1,
5176                } },
5177        },
5178        [SAA7134_BOARD_ASUSTeK_TIGER] = {
5179                .name           = "Asus Tiger Rev:1.00",
5180                .audio_clock    = 0x00187de7,
5181                .tuner_type     = TUNER_PHILIPS_TDA8290,
5182                .radio_type     = UNSET,
5183                .tuner_addr     = ADDR_UNSET,
5184                .radio_addr     = ADDR_UNSET,
5185                .tda829x_conf   = { .lna_cfg = TDA8290_LNA_OFF },
5186                .mpeg           = SAA7134_MPEG_DVB,
5187                .gpiomask       = 0x0200000,
5188                .inputs = { {
5189                        .name   = name_tv,
5190                        .vmux   = 1,
5191                        .amux   = TV,
5192                        .tv     = 1,
5193                }, {
5194                        .name   = name_comp1,
5195                        .vmux   = 3,
5196                        .amux   = LINE2,
5197                }, {
5198                        .name   = name_comp2,
5199                        .vmux   = 0,
5200                        .amux   = LINE2,
5201                }, {
5202                        .name   = name_svideo,
5203                        .vmux   = 8,
5204                        .amux   = LINE2,
5205                } },
5206                .radio = {
5207                        .name   = name_radio,
5208                        .amux   = TV,
5209                        .gpio   = 0x0200000,
5210                },
5211        },
5212        [SAA7134_BOARD_KWORLD_PLUS_TV_ANALOG] = {
5213                .name           = "Kworld Plus TV Analog Lite PCI",
5214                .audio_clock    = 0x00187de7,
5215                .tuner_type     = TUNER_YMEC_TVF_5533MF,
5216                .radio_type     = TUNER_TEA5767,
5217                .tuner_addr     = ADDR_UNSET,
5218                .radio_addr     = 0x60,
5219                .gpiomask       = 0x80000700,
5220                .inputs = { {
5221                        .name   = name_tv,
5222                        .vmux   = 1,
5223                        .amux   = LINE2,
5224                        .tv     = 1,
5225                        .gpio   = 0x100,
5226                }, {
5227                        .name   = name_comp1,
5228                        .vmux   = 3,
5229                        .amux   = LINE1,
5230                        .gpio   = 0x200,
5231                }, {
5232                        .name   = name_svideo,
5233                        .vmux   = 8,
5234                        .amux   = LINE1,
5235                        .gpio   = 0x200,
5236                } },
5237                .radio = {
5238                        .name   = name_radio,
5239                        .vmux   = 1,
5240                        .amux   = LINE1,
5241                        .gpio   = 0x100,
5242                },
5243                .mute = {
5244                        .name = name_mute,
5245                        .vmux = 8,
5246                        .amux = 2,
5247                },
5248        },
5249        [SAA7134_BOARD_KWORLD_PCI_SBTVD_FULLSEG] = {
5250                .name           = "Kworld PCI SBTVD/ISDB-T Full-Seg Hybrid",
5251                .audio_clock    = 0x00187de7,
5252                .tuner_type     = TUNER_PHILIPS_TDA8290,
5253                .tuner_addr     = ADDR_UNSET,
5254                .radio_type     = UNSET,
5255                .radio_addr     = ADDR_UNSET,
5256                .gpiomask       = 0x8e054000,
5257                .mpeg           = SAA7134_MPEG_DVB,
5258                .ts_type        = SAA7134_MPEG_TS_PARALLEL,
5259                .inputs = { {
5260                        .name   = name_tv,
5261                        .vmux   = 1,
5262                        .amux   = TV,
5263                        .tv     = 1,
5264#if 0   /* FIXME */
5265                }, {
5266                        .name   = name_comp1,
5267                        .vmux   = 3,
5268                        .amux   = LINE1,
5269                        .gpio   = 0x200,
5270                }, {
5271                        .name   = name_svideo,
5272                        .vmux   = 8,
5273                        .amux   = LINE1,
5274                        .gpio   = 0x200,
5275#endif
5276                } },
5277#if 0
5278                .radio = {
5279                        .name   = name_radio,
5280                        .vmux   = 1,
5281                        .amux   = LINE1,
5282                        .gpio   = 0x100,
5283                },
5284#endif
5285                .mute = {
5286                        .name = name_mute,
5287                        .vmux = 0,
5288                        .amux = TV,
5289                },
5290        },
5291        [SAA7134_BOARD_AVERMEDIA_GO_007_FM_PLUS] = {
5292                .name           = "Avermedia AVerTV GO 007 FM Plus",
5293                .audio_clock    = 0x00187de7,
5294                .tuner_type     = TUNER_PHILIPS_TDA8290,
5295                .radio_type     = UNSET,
5296                .tuner_addr     = ADDR_UNSET,
5297                .radio_addr     = ADDR_UNSET,
5298                .gpiomask       = 0x00300003,
5299                /* .gpiomask       = 0x8c240003, */
5300                .inputs         = { {
5301                        .name = name_tv,
5302                        .vmux = 1,
5303                        .amux = TV,
5304                        .tv   = 1,
5305                        .gpio = 0x01,
5306                }, {
5307                        .name = name_svideo,
5308                        .vmux = 6,
5309                        .amux = LINE1,
5310                        .gpio = 0x02,
5311                } },
5312                .radio = {
5313                        .name = name_radio,
5314                        .amux = TV,
5315                        .gpio = 0x00300001,
5316                },
5317                .mute = {
5318                        .name = name_mute,
5319                        .amux = TV,
5320                        .gpio = 0x01,
5321                },
5322        },
5323        [SAA7134_BOARD_AVERMEDIA_STUDIO_507UA] = {
5324                /* Andy Shevchenko <andy@smile.org.ua> */
5325                .name           = "Avermedia AVerTV Studio 507UA",
5326                .audio_clock    = 0x00187de7,
5327                .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3, /* Should be MK5 */
5328                .radio_type     = UNSET,
5329                .tuner_addr     = ADDR_UNSET,
5330                .radio_addr     = ADDR_UNSET,
5331                .tda9887_conf   = TDA9887_PRESENT,
5332                .gpiomask       = 0x03,
5333                .inputs         = { {
5334                        .name = name_tv,
5335                        .vmux = 1,
5336                        .amux = TV,
5337                        .tv   = 1,
5338                        .gpio = 0x00,
5339                }, {
5340                        .name = name_comp1,
5341                        .vmux = 3,
5342                        .amux = LINE1,
5343                        .gpio = 0x00,
5344                }, {
5345                        .name = name_svideo,
5346                        .vmux = 8,
5347                        .amux = LINE1,
5348                        .gpio = 0x00,
5349                } },
5350                .radio = {
5351                        .name = name_radio,
5352                        .amux = LINE2,
5353                        .gpio = 0x01,
5354                },
5355                .mute  = {
5356                        .name = name_mute,
5357                        .amux = LINE1,
5358                        .gpio = 0x00,
5359                },
5360        },
5361        [SAA7134_BOARD_VIDEOMATE_S350] = {
5362                /* Jan D. Louw <jd.louw@mweb.co.za */
5363                .name           = "Compro VideoMate S350/S300",
5364                .audio_clock    = 0x00187de7,
5365                .tuner_type     = TUNER_ABSENT,
5366                .radio_type     = UNSET,
5367                .tuner_addr     = ADDR_UNSET,
5368                .radio_addr     = ADDR_UNSET,
5369                .mpeg           = SAA7134_MPEG_DVB,
5370                .inputs = { {
5371                        .name   = name_comp1,
5372                        .vmux   = 0,
5373                        .amux   = LINE1,
5374                }, {
5375                        .name   = name_svideo,
5376                        .vmux   = 8, /* Not tested */
5377                        .amux   = LINE1
5378                } },
5379        },
5380        [SAA7134_BOARD_BEHOLD_X7] = {
5381                /* Beholder Intl. Ltd. Dmitry Belimov <d.belimov@gmail.com> */
5382                .name           = "Beholder BeholdTV X7",
5383                .audio_clock    = 0x00187de7,
5384                .tuner_type     = TUNER_XC5000,
5385                .radio_type     = UNSET,
5386                .tuner_addr     = ADDR_UNSET,
5387                .radio_addr     = ADDR_UNSET,
5388                .mpeg           = SAA7134_MPEG_DVB,
5389                .inputs         = { {
5390                        .name = name_tv,
5391                        .vmux = 2,
5392                        .amux = TV,
5393                        .tv   = 1,
5394                }, {
5395                        .name = name_comp1,
5396                        .vmux = 0,
5397                        .amux = LINE1,
5398                }, {
5399                        .name = name_svideo,
5400                        .vmux = 9,
5401                        .amux = LINE1,
5402                } },
5403                .radio = {
5404                        .name = name_radio,
5405                        .amux = TV,
5406                },
5407        },
5408        [SAA7134_BOARD_ZOLID_HYBRID_PCI] = {
5409                .name           = "Zolid Hybrid TV Tuner PCI",
5410                .audio_clock    = 0x00187de7,
5411                .tuner_type     = TUNER_PHILIPS_TDA8290,
5412                .radio_type     = UNSET,
5413                .tuner_addr     = ADDR_UNSET,
5414                .radio_addr     = ADDR_UNSET,
5415                .tda829x_conf   = { .lna_cfg = TDA8290_LNA_OFF },
5416                .mpeg           = SAA7134_MPEG_DVB,
5417                .ts_type        = SAA7134_MPEG_TS_PARALLEL,
5418                .inputs         = {{
5419                        .name = name_tv,
5420                        .vmux = 1,
5421                        .amux = TV,
5422                        .tv   = 1,
5423                } },
5424                .radio = {      /* untested */
5425                        .name = name_radio,
5426                        .amux = TV,
5427                },
5428        },
5429        [SAA7134_BOARD_ASUS_EUROPA_HYBRID] = {
5430                .name           = "Asus Europa Hybrid OEM",
5431                .audio_clock    = 0x00187de7,
5432                .tuner_type     = TUNER_PHILIPS_TD1316,
5433                .radio_type     = UNSET,
5434                .tuner_addr     = 0x61,
5435                .radio_addr     = ADDR_UNSET,
5436                .tda9887_conf   = TDA9887_PRESENT | TDA9887_PORT1_ACTIVE,
5437                .mpeg           = SAA7134_MPEG_DVB,
5438                .inputs = { {
5439                        .name   = name_tv,
5440                        .vmux   = 3,
5441                        .amux   = TV,
5442                        .tv     = 1,
5443                }, {
5444                        .name   = name_comp1,
5445                        .vmux   = 4,
5446                        .amux   = LINE2,
5447                }, {
5448                        .name   = name_svideo,
5449                        .vmux   = 8,
5450                        .amux   = LINE2,
5451                } },
5452        },
5453        [SAA7134_BOARD_LEADTEK_WINFAST_DTV1000S] = {
5454                .name           = "Leadtek Winfast DTV1000S",
5455                .audio_clock    = 0x00187de7,
5456                .tuner_type     = TUNER_PHILIPS_TDA8290,
5457                .radio_type     = UNSET,
5458                .tuner_addr     = ADDR_UNSET,
5459                .radio_addr     = ADDR_UNSET,
5460                .mpeg           = SAA7134_MPEG_DVB,
5461                .inputs         = { {
5462                        .name = name_comp1,
5463                        .vmux = 3,
5464                }, {
5465                        .name = name_svideo,
5466                        .vmux = 8,
5467                } },
5468        },
5469        [SAA7134_BOARD_BEHOLD_505RDS_MK3] = {
5470                /*       Beholder Intl. Ltd. 2008      */
5471                /*Dmitry Belimov <d.belimov@gmail.com> */
5472                .name           = "Beholder BeholdTV 505 RDS",
5473                .audio_clock    = 0x00200000,
5474                .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
5475                .radio_type     = UNSET,
5476                .tuner_addr     = ADDR_UNSET,
5477                .radio_addr     = ADDR_UNSET,
5478                .rds_addr       = 0x10,
5479                .tda9887_conf   = TDA9887_PRESENT,
5480                .gpiomask       = 0x00008000,
5481                .inputs         = {{
5482                        .name = name_tv,
5483                        .vmux = 3,
5484                        .amux = LINE2,
5485                        .tv   = 1,
5486                }, {
5487                        .name = name_comp1,
5488                        .vmux = 1,
5489                        .amux = LINE1,
5490                }, {
5491                        .name = name_svideo,
5492                        .vmux = 8,
5493                        .amux = LINE1,
5494                } },
5495                .mute = {
5496                        .name = name_mute,
5497                        .amux = LINE1,
5498                },
5499                .radio = {
5500                        .name = name_radio,
5501                        .amux = LINE2,
5502                },
5503        },
5504        [SAA7134_BOARD_HAWELL_HW_404M7] = {
5505                /* Hawell HW-404M7 & Hawell HW-808M7  */
5506                /* Bogoslovskiy Viktor <bogovic@bk.ru> */
5507                .name         = "Hawell HW-404M7",
5508                .audio_clock   = 0x00200000,
5509                .tuner_type    = UNSET,
5510                .radio_type    = UNSET,
5511                .tuner_addr   = ADDR_UNSET,
5512                .radio_addr   = ADDR_UNSET,
5513                .gpiomask      = 0x389c00,
5514                .inputs       = {{
5515                        .name = name_comp1,
5516                        .vmux = 3,
5517                        .amux = LINE1,
5518                        .gpio = 0x01fc00,
5519                } },
5520        },
5521        [SAA7134_BOARD_BEHOLD_H7] = {
5522                /* Beholder Intl. Ltd. Dmitry Belimov <d.belimov@gmail.com> */
5523                .name           = "Beholder BeholdTV H7",
5524                .audio_clock    = 0x00187de7,
5525                .tuner_type     = TUNER_XC5000,
5526                .radio_type     = UNSET,
5527                .tuner_addr     = ADDR_UNSET,
5528                .radio_addr     = ADDR_UNSET,
5529                .mpeg           = SAA7134_MPEG_DVB,
5530                .ts_type        = SAA7134_MPEG_TS_PARALLEL,
5531                .inputs         = { {
5532                        .name = name_tv,
5533                        .vmux = 2,
5534                        .amux = TV,
5535                        .tv   = 1,
5536                }, {
5537                        .name = name_comp1,
5538                        .vmux = 0,
5539                        .amux = LINE1,
5540                }, {
5541                        .name = name_svideo,
5542                        .vmux = 9,
5543                        .amux = LINE1,
5544                } },
5545                .radio = {
5546                        .name = name_radio,
5547                        .amux = TV,
5548                },
5549        },
5550        [SAA7134_BOARD_BEHOLD_A7] = {
5551                /* Beholder Intl. Ltd. Dmitry Belimov <d.belimov@gmail.com> */
5552                .name           = "Beholder BeholdTV A7",
5553                .audio_clock    = 0x00187de7,
5554                .tuner_type     = TUNER_XC5000,
5555                .radio_type     = UNSET,
5556                .tuner_addr     = ADDR_UNSET,
5557                .radio_addr     = ADDR_UNSET,
5558                .inputs         = { {
5559                        .name = name_tv,
5560                        .vmux = 2,
5561                        .amux = TV,
5562                        .tv   = 1,
5563                }, {
5564                        .name = name_comp1,
5565                        .vmux = 0,
5566                        .amux = LINE1,
5567                }, {
5568                        .name = name_svideo,
5569                        .vmux = 9,
5570                        .amux = LINE1,
5571                } },
5572                .radio = {
5573                        .name = name_radio,
5574                        .amux = TV,
5575                },
5576        },
5577        [SAA7134_BOARD_TECHNOTREND_BUDGET_T3000] = {
5578                .name           = "TechoTrend TT-budget T-3000",
5579                .tuner_type     = TUNER_PHILIPS_TD1316,
5580                .audio_clock    = 0x00187de7,
5581                .radio_type     = UNSET,
5582                .tuner_addr     = 0x63,
5583                .radio_addr     = ADDR_UNSET,
5584                .tda9887_conf   = TDA9887_PRESENT | TDA9887_PORT1_ACTIVE,
5585                .mpeg           = SAA7134_MPEG_DVB,
5586                .inputs = {{
5587                        .name   = name_tv,
5588                        .vmux   = 3,
5589                        .amux   = TV,
5590                        .tv     = 1,
5591                }, {
5592                        .name   = name_comp1,
5593                        .vmux   = 0,
5594                        .amux   = LINE2,
5595                }, {
5596                        .name   = name_svideo,
5597                        .vmux   = 8,
5598                        .amux   = LINE2,
5599                } },
5600        },
5601        [SAA7134_BOARD_VIDEOMATE_M1F] = {
5602                /* Pavel Osnova <pvosnova@gmail.com> */
5603                .name           = "Compro VideoMate Vista M1F",
5604                .audio_clock    = 0x00187de7,
5605                .tuner_type     = TUNER_LG_PAL_NEW_TAPC,
5606                .radio_type     = TUNER_TEA5767,
5607                .tuner_addr     = ADDR_UNSET,
5608                .radio_addr     = 0x60,
5609                .inputs         = { {
5610                        .name = name_tv,
5611                        .vmux = 1,
5612                        .amux = TV,
5613                        .tv   = 1,
5614                }, {
5615                        .name = name_comp1,
5616                        .vmux = 3,
5617                        .amux = LINE2,
5618                }, {
5619                        .name = name_svideo,
5620                        .vmux = 8,
5621                        .amux = LINE2,
5622                } },
5623                .radio = {
5624                        .name = name_radio,
5625                        .amux = LINE1,
5626                },
5627                .mute = {
5628                        .name = name_mute,
5629                        .amux = TV,
5630                },
5631        },
5632        [SAA7134_BOARD_MAGICPRO_PROHDTV_PRO2] = {
5633                /* Timothy Lee <timothy.lee@siriushk.com> */
5634                .name           = "MagicPro ProHDTV Pro2 DMB-TH/Hybrid",
5635                .audio_clock    = 0x00187de7,
5636                .tuner_type     = TUNER_PHILIPS_TDA8290,
5637                .radio_type     = UNSET,
5638                .tda829x_conf   = { .lna_cfg = TDA8290_LNA_ON_BRIDGE },
5639                .tuner_addr     = ADDR_UNSET,
5640                .radio_addr     = ADDR_UNSET,
5641                .gpiomask       = 0x02050000,
5642                .mpeg           = SAA7134_MPEG_DVB,
5643                .ts_type        = SAA7134_MPEG_TS_PARALLEL,
5644                .inputs         = { {
5645                        .name   = name_tv,
5646                        .vmux   = 1,
5647                        .amux   = TV,
5648                        .tv     = 1,
5649                        .gpio   = 0x00050000,
5650                }, {
5651                        .name   = name_comp1,
5652                        .vmux   = 3,
5653                        .amux   = LINE1,
5654                        .gpio   = 0x00050000,
5655                }, {
5656                        .name   = name_svideo,
5657                        .vmux   = 8,
5658                        .amux   = LINE1,
5659                        .gpio   = 0x00050000,
5660                } },
5661                .radio = {
5662                        .name   = name_radio,
5663                        .amux   = TV,
5664                        .gpio   = 0x00050000,
5665                },
5666                .mute = {
5667                        .name   = name_mute,
5668                        .vmux   = 0,
5669                        .amux   = TV,
5670                        .gpio   = 0x00050000,
5671                },
5672        },
5673        [SAA7134_BOARD_BEHOLD_501] = {
5674                /*       Beholder Intl. Ltd. 2010       */
5675                /* Dmitry Belimov <d.belimov@gmail.com> */
5676                .name           = "Beholder BeholdTV 501",
5677                .audio_clock    = 0x00200000,
5678                .tuner_type     = TUNER_ABSENT,
5679                .radio_type     = UNSET,
5680                .tuner_addr     = ADDR_UNSET,
5681                .radio_addr     = ADDR_UNSET,
5682                .gpiomask       = 0x00008000,
5683                .inputs         = { {
5684                        .name = name_tv,
5685                        .vmux = 3,
5686                        .amux = LINE2,
5687                        .tv   = 1,
5688                }, {
5689                        .name = name_comp1,
5690                        .vmux = 1,
5691                        .amux = LINE1,
5692                }, {
5693                        .name = name_svideo,
5694                        .vmux = 8,
5695                        .amux = LINE1,
5696                } },
5697                .mute = {
5698                        .name = name_mute,
5699                        .amux = LINE1,
5700                },
5701        },
5702        [SAA7134_BOARD_BEHOLD_503FM] = {
5703                /*       Beholder Intl. Ltd. 2010       */
5704                /* Dmitry Belimov <d.belimov@gmail.com> */
5705                .name           = "Beholder BeholdTV 503 FM",
5706                .audio_clock    = 0x00200000,
5707                .tuner_type     = TUNER_ABSENT,
5708                .radio_type     = UNSET,
5709                .tuner_addr     = ADDR_UNSET,
5710                .radio_addr     = ADDR_UNSET,
5711                .gpiomask       = 0x00008000,
5712                .inputs         = { {
5713                        .name = name_tv,
5714                        .vmux = 3,
5715                        .amux = LINE2,
5716                        .tv   = 1,
5717                }, {
5718                        .name = name_comp1,
5719                        .vmux = 1,
5720                        .amux = LINE1,
5721                }, {
5722                        .name = name_svideo,
5723                        .vmux = 8,
5724                        .amux = LINE1,
5725                } },
5726                .mute = {
5727                        .name = name_mute,
5728                        .amux = LINE1,
5729                },
5730        },
5731        [SAA7134_BOARD_SENSORAY811_911] = {
5732                .name           = "Sensoray 811/911",
5733                .audio_clock    = 0x00200000,
5734                .tuner_type     = TUNER_ABSENT,
5735                .radio_type     = UNSET,
5736                .tuner_addr     = ADDR_UNSET,
5737                .radio_addr     = ADDR_UNSET,
5738                .inputs         = {{
5739                        .name   = name_comp1,
5740                        .vmux   = 0,
5741                        .amux   = LINE1,
5742                }, {
5743                        .name   = name_comp3,
5744                        .vmux   = 2,
5745                        .amux   = LINE1,
5746                }, {
5747                        .name   = name_svideo,
5748                        .vmux   = 8,
5749                        .amux   = LINE1,
5750                } },
5751        },
5752        [SAA7134_BOARD_KWORLD_PC150U] = {
5753                .name           = "Kworld PC150-U",
5754                .audio_clock    = 0x00187de7,
5755                .tuner_type     = TUNER_PHILIPS_TDA8290,
5756                .radio_type     = UNSET,
5757                .tuner_addr     = ADDR_UNSET,
5758                .radio_addr     = ADDR_UNSET,
5759                .mpeg           = SAA7134_MPEG_DVB,
5760                .gpiomask       = 1 << 21,
5761                .ts_type        = SAA7134_MPEG_TS_PARALLEL,
5762                .inputs = { {
5763                        .name   = name_tv,
5764                        .vmux   = 1,
5765                        .amux   = TV,
5766                        .tv     = 1,
5767                }, {
5768                        .name   = name_comp,
5769                        .vmux   = 3,
5770                        .amux   = LINE1,
5771                }, {
5772                        .name   = name_svideo,
5773                        .vmux   = 8,
5774                        .amux   = LINE2,
5775                } },
5776                .radio = {
5777                        .name   = name_radio,
5778                        .amux   = TV,
5779                        .gpio   = 0x0000000,
5780                },
5781        },
5782        [SAA7134_BOARD_HAWELL_HW_9004V1] = {
5783                /* Hawell HW-9004V1 */
5784                /* Vadim Frolov <fralik@gmail.com> */
5785                .name         = "Hawell HW-9004V1",
5786                .audio_clock   = 0x00200000,
5787                .tuner_type    = UNSET,
5788                .radio_type    = UNSET,
5789                .tuner_addr   = ADDR_UNSET,
5790                .radio_addr   = ADDR_UNSET,
5791                .gpiomask      = 0x618E700,
5792                .inputs       = {{
5793                        .name = name_comp1,
5794                        .vmux = 3,
5795                        .amux = LINE1,
5796                        .gpio = 0x6010000,
5797                } },
5798        },
5799        [SAA7134_BOARD_AVERMEDIA_A706] = {
5800                .name           = "AverMedia AverTV Satellite Hybrid+FM A706",
5801                .audio_clock    = 0x00187de7,
5802                .tuner_type     = TUNER_PHILIPS_TDA8290,
5803                .radio_type     = UNSET,
5804                .tuner_addr     = ADDR_UNSET,
5805                .radio_addr     = ADDR_UNSET,
5806                .tda829x_conf   = { .lna_cfg = TDA8290_LNA_OFF,
5807                                    .no_i2c_gate = 1,
5808                                    .tda18271_std_map = &aver_a706_std_map },
5809                .gpiomask       = 1 << 11,
5810                .mpeg           = SAA7134_MPEG_DVB,
5811                .inputs         = {{
5812                        .name = name_tv,
5813                        .vmux = 1,
5814                        .amux = TV,
5815                        .tv   = 1,
5816                }, {
5817                        .name = name_comp,
5818                        .vmux = 4,
5819                        .amux = LINE1,
5820                }, {
5821                        .name = name_svideo,
5822                        .vmux = 8,
5823                        .amux = LINE1,
5824                } },
5825                .radio = {
5826                        .name = name_radio,
5827                        .amux = TV,
5828                        .gpio = 0x0000800,
5829                },
5830        },
5831        [SAA7134_BOARD_WIS_VOYAGER] = {
5832                .name           = "WIS Voyager or compatible",
5833                .audio_clock    = 0x00200000,
5834                .tuner_type     = TUNER_PHILIPS_TDA8290,
5835                .radio_type     = UNSET,
5836                .tuner_addr     = ADDR_UNSET,
5837                .radio_addr     = ADDR_UNSET,
5838                .mpeg           = SAA7134_MPEG_GO7007,
5839                .inputs         = { {
5840                        .name = name_comp1,
5841                        .vmux = 0,
5842                        .amux = LINE2,
5843                }, {
5844                        .name = name_tv,
5845                        .vmux = 3,
5846                        .amux = TV,
5847                        .tv   = 1,
5848                }, {
5849                        .name = name_svideo,
5850                        .vmux = 6,
5851                .amux = LINE1,
5852                } },
5853        },
5854        [SAA7134_BOARD_AVERMEDIA_505] = {
5855                /* much like the "studio" version but without radio
5856                * and another tuner (dbaryshkov@gmail.com) */
5857                .name           = "AverMedia AverTV/505",
5858                .audio_clock    = 0x00187de7,
5859                .tuner_type     = TUNER_PHILIPS_FQ1216ME,
5860                .radio_type     = UNSET,
5861                .tuner_addr     = ADDR_UNSET,
5862                .radio_addr     = ADDR_UNSET,
5863                .tda9887_conf   = TDA9887_PRESENT,
5864                .inputs         = {{
5865                        .name = name_tv,
5866                        .vmux = 1,
5867                        .amux = LINE2,
5868                        .tv   = 1,
5869                }, {
5870                        .name = name_comp1,
5871                        .vmux = 0,
5872                        .amux = LINE2,
5873                }, {
5874                        .name = name_comp2,
5875                        .vmux = 3,
5876                        .amux = LINE2,
5877                }, {
5878                        .name = name_svideo,
5879                        .vmux = 8,
5880                        .amux = LINE2,
5881                } },
5882                .mute = {
5883                        .name = name_mute,
5884                        .amux = LINE1,
5885                },
5886        },
5887        [SAA7134_BOARD_LEADTEK_WINFAST_TV2100_FM] = {
5888                .name           = "Leadtek Winfast TV2100 FM",
5889                .audio_clock    = 0x00187de7,
5890                .tuner_type     = TUNER_TNF_5335MF,
5891                .radio_type     = UNSET,
5892                .tuner_addr     = ADDR_UNSET,
5893                .radio_addr     = ADDR_UNSET,
5894                .gpiomask       = 0x0d,
5895                .inputs         = {{
5896                        .name = name_tv_mono,
5897                        .vmux = 1,
5898                        .amux = LINE1,
5899                        .gpio = 0x00,
5900                        .tv   = 1,
5901                }, {
5902                        .name = name_comp1,
5903                        .vmux = 3,
5904                        .amux = LINE2,
5905                        .gpio = 0x08,
5906                }, {
5907                        .name = name_svideo,
5908                        .vmux = 8,
5909                        .amux = LINE2,
5910                        .gpio = 0x08,
5911                } },
5912                .radio = {
5913                        .name = name_radio,
5914                        .amux = LINE1,
5915                        .gpio = 0x04,
5916                },
5917                .mute = {
5918                        .name = name_mute,
5919                        .amux = LINE1,
5920                        .gpio = 0x08,
5921                },
5922        },
5923
5924};
5925
5926const unsigned int saa7134_bcount = ARRAY_SIZE(saa7134_boards);
5927
5928/* ------------------------------------------------------------------ */
5929/* PCI ids + subsystem IDs                                            */
5930
5931struct pci_device_id saa7134_pci_tbl[] = {
5932        {
5933                .vendor       = PCI_VENDOR_ID_PHILIPS,
5934                .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
5935                .subvendor    = PCI_VENDOR_ID_PHILIPS,
5936                .subdevice    = 0x2001,
5937                .driver_data  = SAA7134_BOARD_PROTEUS_PRO,
5938        },{
5939                .vendor       = PCI_VENDOR_ID_PHILIPS,
5940                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5941                .subvendor    = PCI_VENDOR_ID_PHILIPS,
5942                .subdevice    = 0x2001,
5943                .driver_data  = SAA7134_BOARD_PROTEUS_PRO,
5944        },{
5945                .vendor       = PCI_VENDOR_ID_PHILIPS,
5946                .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
5947                .subvendor    = PCI_VENDOR_ID_PHILIPS,
5948                .subdevice    = 0x6752,
5949                .driver_data  = SAA7134_BOARD_EMPRESS,
5950        },{
5951                .vendor       = PCI_VENDOR_ID_PHILIPS,
5952                .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
5953                .subvendor    = 0x1131,
5954                .subdevice    = 0x4e85,
5955                .driver_data  = SAA7134_BOARD_MONSTERTV,
5956        },{
5957                .vendor       = PCI_VENDOR_ID_PHILIPS,
5958                .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
5959                .subvendor    = 0x153b,
5960                .subdevice    = 0x1142,
5961                .driver_data  = SAA7134_BOARD_CINERGY400,
5962        },{
5963                .vendor       = PCI_VENDOR_ID_PHILIPS,
5964                .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
5965                .subvendor    = 0x153b,
5966                .subdevice    = 0x1143,
5967                .driver_data  = SAA7134_BOARD_CINERGY600,
5968        },{
5969                .vendor       = PCI_VENDOR_ID_PHILIPS,
5970                .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
5971                .subvendor    = 0x153b,
5972                .subdevice    = 0x1158,
5973                .driver_data  = SAA7134_BOARD_CINERGY600_MK3,
5974        },{
5975                .vendor       = PCI_VENDOR_ID_PHILIPS,
5976                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5977                .subvendor    = 0x153b,
5978                .subdevice    = 0x1162,
5979                .driver_data  = SAA7134_BOARD_CINERGY400_CARDBUS,
5980        },{
5981                .vendor       = PCI_VENDOR_ID_PHILIPS,
5982                .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
5983                .subvendor    = 0x5169,
5984                .subdevice    = 0x0138,
5985                .driver_data  = SAA7134_BOARD_FLYVIDEO3000_NTSC,
5986        },{
5987                .vendor       = PCI_VENDOR_ID_PHILIPS,
5988                .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
5989                .subvendor    = 0x5168,
5990                .subdevice    = 0x0138,
5991                .driver_data  = SAA7134_BOARD_FLYVIDEO3000,
5992        },{
5993                .vendor       = PCI_VENDOR_ID_PHILIPS,
5994                .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
5995                .subvendor    = 0x4e42,                         /* "Typhoon PCI Capture TV Card" Art.No. 50673 */
5996                .subdevice    = 0x0138,
5997                .driver_data  = SAA7134_BOARD_FLYVIDEO3000,
5998        },{
5999                .vendor       = PCI_VENDOR_ID_PHILIPS,
6000                .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6001                .subvendor    = 0x5168,
6002                .subdevice    = 0x0138,
6003                .driver_data  = SAA7134_BOARD_FLYVIDEO2000,
6004        },{
6005                .vendor       = PCI_VENDOR_ID_PHILIPS,
6006                .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6007                .subvendor    = 0x4e42,         /* Typhoon */
6008                .subdevice    = 0x0138,         /* LifeView FlyTV Prime30 OEM */
6009                .driver_data  = SAA7134_BOARD_FLYVIDEO2000,
6010        },{
6011                .vendor       = PCI_VENDOR_ID_PHILIPS,
6012                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6013                .subvendor    = 0x5168,
6014                .subdevice    = 0x0212, /* minipci, LR212 */
6015                .driver_data  = SAA7134_BOARD_FLYTVPLATINUM_MINI,
6016        },{
6017                .vendor       = PCI_VENDOR_ID_PHILIPS,
6018                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6019                .subvendor    = 0x14c0,
6020                .subdevice    = 0x1212, /* minipci, LR1212 */
6021                .driver_data  = SAA7134_BOARD_FLYTVPLATINUM_MINI2,
6022        },{
6023                .vendor       = PCI_VENDOR_ID_PHILIPS,
6024                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6025                .subvendor    = 0x4e42,
6026                .subdevice    = 0x0212, /* OEM minipci, LR212 */
6027                .driver_data  = SAA7134_BOARD_FLYTVPLATINUM_MINI,
6028        },{
6029                .vendor       = PCI_VENDOR_ID_PHILIPS,
6030                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6031                .subvendor    = 0x5168, /* Animation Technologies (LifeView) */
6032                .subdevice    = 0x0214, /* Standard PCI, LR214 Rev E and earlier (SAA7135) */
6033                .driver_data  = SAA7134_BOARD_FLYTVPLATINUM_FM,
6034        },{
6035                .vendor       = PCI_VENDOR_ID_PHILIPS,
6036                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6037                .subvendor    = 0x5168, /* Animation Technologies (LifeView) */
6038                .subdevice    = 0x5214, /* Standard PCI, LR214 Rev F onwards (SAA7131) */
6039                .driver_data  = SAA7134_BOARD_FLYTVPLATINUM_FM,
6040        },{
6041                .vendor       = PCI_VENDOR_ID_PHILIPS,
6042                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6043                .subvendor    = 0x1489, /* KYE */
6044                .subdevice    = 0x0214, /* Genius VideoWonder ProTV */
6045                .driver_data  = SAA7134_BOARD_FLYTVPLATINUM_FM, /* is an LR214WF actually */
6046        },{
6047                .vendor       = PCI_VENDOR_ID_PHILIPS,
6048                .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6049                .subvendor    = 0x16be,
6050                .subdevice    = 0x0003,
6051                .driver_data  = SAA7134_BOARD_MD7134,
6052        },{
6053                .vendor       = PCI_VENDOR_ID_PHILIPS,
6054                .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6055                .subvendor    = 0x16be, /* CTX946 analog TV, HW mpeg, DVB-T */
6056                .subdevice    = 0x5000, /* only analog TV and DVB-T for now */
6057                .driver_data  = SAA7134_BOARD_MD7134,
6058        }, {
6059                .vendor       = PCI_VENDOR_ID_PHILIPS,
6060                .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6061                .subvendor    = 0x1048,
6062                .subdevice    = 0x226b,
6063                .driver_data  = SAA7134_BOARD_ELSA,
6064        },{
6065                .vendor       = PCI_VENDOR_ID_PHILIPS,
6066                .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6067                .subvendor    = 0x1048,
6068                .subdevice    = 0x226a,
6069                .driver_data  = SAA7134_BOARD_ELSA_500TV,
6070        },{
6071                .vendor       = PCI_VENDOR_ID_PHILIPS,
6072                .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6073                .subvendor    = 0x1048,
6074                .subdevice    = 0x226c,
6075                .driver_data  = SAA7134_BOARD_ELSA_700TV,
6076        },{
6077                .vendor       = PCI_VENDOR_ID_PHILIPS,
6078                .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6079                .subvendor    = PCI_VENDOR_ID_ASUSTEK,
6080                .subdevice    = 0x4842,
6081                .driver_data  = SAA7134_BOARD_ASUSTeK_TVFM7134,
6082        },{
6083                .vendor       = PCI_VENDOR_ID_PHILIPS,
6084                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6085                .subvendor    = PCI_VENDOR_ID_ASUSTEK,
6086                .subdevice    = 0x4845,
6087                .driver_data  = SAA7134_BOARD_ASUSTeK_TVFM7135,
6088        },{
6089                .vendor       = PCI_VENDOR_ID_PHILIPS,
6090                .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6091                .subvendor    = PCI_VENDOR_ID_ASUSTEK,
6092                .subdevice    = 0x4830,
6093                .driver_data  = SAA7134_BOARD_ASUSTeK_TVFM7134,
6094        },{
6095                .vendor       = PCI_VENDOR_ID_PHILIPS,
6096                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6097                .subvendor    = PCI_VENDOR_ID_ASUSTEK,
6098                .subdevice    = 0x4843,
6099                .driver_data  = SAA7134_BOARD_ASUSTEK_TVFM7133,
6100        },{
6101                .vendor       = PCI_VENDOR_ID_PHILIPS,
6102                .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6103                .subvendor    = PCI_VENDOR_ID_ASUSTEK,
6104                .subdevice    = 0x4840,
6105                .driver_data  = SAA7134_BOARD_ASUSTeK_TVFM7134,
6106        },{
6107                .vendor       = PCI_VENDOR_ID_PHILIPS,
6108                .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6109                .subvendor    = PCI_VENDOR_ID_PHILIPS,
6110                .subdevice    = 0xfe01,
6111                .driver_data  = SAA7134_BOARD_TVSTATION_RDS,
6112        },{
6113                .vendor       = PCI_VENDOR_ID_PHILIPS,
6114                .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6115                .subvendor    = 0x1894,
6116                .subdevice    = 0xfe01,
6117                .driver_data  = SAA7134_BOARD_TVSTATION_RDS,
6118        },{
6119                .vendor       = PCI_VENDOR_ID_PHILIPS,
6120                .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6121                .subvendor    = 0x1894,
6122                .subdevice    = 0xa006,
6123                .driver_data  = SAA7134_BOARD_TVSTATION_DVR,
6124        },{
6125                .vendor       = PCI_VENDOR_ID_PHILIPS,
6126                .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6127                .subvendor    = 0x1131,
6128                .subdevice    = 0x7133,
6129                .driver_data  = SAA7134_BOARD_VA1000POWER,
6130        },{
6131                .vendor       = PCI_VENDOR_ID_PHILIPS,
6132                .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6133                .subvendor    = PCI_VENDOR_ID_PHILIPS,
6134                .subdevice    = 0x2001,
6135                .driver_data  = SAA7134_BOARD_10MOONSTVMASTER,
6136        },{
6137                .vendor       = PCI_VENDOR_ID_PHILIPS,
6138                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6139                .subvendor    = 0x185b,
6140                .subdevice    = 0xc100,
6141                .driver_data  = SAA7134_BOARD_VIDEOMATE_TV,
6142        },{
6143                .vendor       = PCI_VENDOR_ID_PHILIPS,
6144                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6145                .subvendor    = 0x185b,
6146                .subdevice    = 0xc100,
6147                .driver_data  = SAA7134_BOARD_VIDEOMATE_TV_GOLD_PLUS,
6148        },{
6149                .vendor       = PCI_VENDOR_ID_PHILIPS,
6150                .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6151                .subvendor    = PCI_VENDOR_ID_MATROX,
6152                .subdevice    = 0x48d0,
6153                .driver_data  = SAA7134_BOARD_CRONOS_PLUS,
6154        },{
6155                .vendor       = PCI_VENDOR_ID_PHILIPS,
6156                .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6157                .subvendor    = 0x1461, /* Avermedia Technologies Inc */
6158                .subdevice    = 0xa70b,
6159                .driver_data  = SAA7134_BOARD_MD2819,
6160        },{
6161                .vendor       = PCI_VENDOR_ID_PHILIPS,
6162                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6163                .subvendor    = 0x1461, /* Avermedia Technologies Inc */
6164                .subdevice    = 0xa7a1,
6165                .driver_data  = SAA7134_BOARD_AVERMEDIA_A700_PRO,
6166        }, {
6167                .vendor       = PCI_VENDOR_ID_PHILIPS,
6168                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6169                .subvendor    = 0x1461, /* Avermedia Technologies Inc */
6170                .subdevice    = 0xa7a2,
6171                .driver_data  = SAA7134_BOARD_AVERMEDIA_A700_HYBRID,
6172        }, {
6173                .vendor       = PCI_VENDOR_ID_PHILIPS,
6174                .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6175                .subvendor    = 0x1461, /* Avermedia Technologies Inc */
6176                .subdevice    = 0x2115,
6177                .driver_data  = SAA7134_BOARD_AVERMEDIA_STUDIO_305,
6178        },{
6179                .vendor       = PCI_VENDOR_ID_PHILIPS,
6180                .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6181                .subvendor    = 0x1461, /* Avermedia Technologies Inc */
6182                .subdevice    = 0xa115,
6183                .driver_data  = SAA7134_BOARD_AVERMEDIA_STUDIO_505,
6184        }, {
6185                .vendor       = PCI_VENDOR_ID_PHILIPS,
6186                .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6187                .subvendor    = 0x1461, /* Avermedia Technologies Inc */
6188                .subdevice    = 0x2108,
6189                .driver_data  = SAA7134_BOARD_AVERMEDIA_305,
6190        },{
6191                .vendor       = PCI_VENDOR_ID_PHILIPS,
6192                .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6193                .subvendor    = 0x1461, /* Avermedia Technologies Inc */
6194                .subdevice    = 0x10ff,
6195                .driver_data  = SAA7134_BOARD_AVERMEDIA_DVD_EZMAKER,
6196        },{
6197                /* AVerMedia CardBus */
6198                .vendor       = PCI_VENDOR_ID_PHILIPS,
6199                .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6200                .subvendor    = 0x1461, /* Avermedia Technologies Inc */
6201                .subdevice    = 0xd6ee,
6202                .driver_data  = SAA7134_BOARD_AVERMEDIA_CARDBUS,
6203        },{
6204                /* AVerMedia CardBus */
6205                .vendor       = PCI_VENDOR_ID_PHILIPS,
6206                .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6207                .subvendor    = 0x1461, /* Avermedia Technologies Inc */
6208                .subdevice    = 0xb7e9,
6209                .driver_data  = SAA7134_BOARD_AVERMEDIA_CARDBUS_501,
6210        }, {
6211                /* TransGear 3000TV */
6212                .vendor       = PCI_VENDOR_ID_PHILIPS,
6213                .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6214                .subvendor    = 0x1461, /* Avermedia Technologies Inc */
6215                .subdevice    = 0x050c,
6216                .driver_data  = SAA7134_BOARD_TG3000TV,
6217        },{
6218                .vendor       = PCI_VENDOR_ID_PHILIPS,
6219                .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6220                .subvendor    = 0x11bd,
6221                .subdevice    = 0x002b,
6222                .driver_data  = SAA7134_BOARD_PINNACLE_PCTV_STEREO,
6223        },{
6224                .vendor       = PCI_VENDOR_ID_PHILIPS,
6225                .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6226                .subvendor    = 0x11bd,
6227                .subdevice    = 0x002d,
6228                .driver_data  = SAA7134_BOARD_PINNACLE_300I_DVBT_PAL,
6229        },{
6230                .vendor       = PCI_VENDOR_ID_PHILIPS,
6231                .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6232                .subvendor    = 0x1019,
6233                .subdevice    = 0x4cb4,
6234                .driver_data  = SAA7134_BOARD_ECS_TVP3XP,
6235        },{
6236                .vendor       = PCI_VENDOR_ID_PHILIPS,
6237                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6238                .subvendor    = 0x1019,
6239                .subdevice    = 0x4cb5,
6240                .driver_data  = SAA7134_BOARD_ECS_TVP3XP_4CB5,
6241        },{
6242                .vendor       = PCI_VENDOR_ID_PHILIPS,
6243                .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6244                .subvendor    = 0x1019,
6245                .subdevice    = 0x4cb6,
6246                .driver_data  = SAA7134_BOARD_ECS_TVP3XP_4CB6,
6247        },{
6248                .vendor       = PCI_VENDOR_ID_PHILIPS,
6249                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6250                .subvendor    = 0x12ab,
6251                .subdevice    = 0x0800,
6252                .driver_data  = SAA7134_BOARD_UPMOST_PURPLE_TV,
6253        },{
6254                .vendor       = PCI_VENDOR_ID_PHILIPS,
6255                .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6256                .subvendor    = 0x153b,
6257                .subdevice    = 0x1152,
6258                .driver_data  = SAA7134_BOARD_CINERGY200,
6259        },{
6260                .vendor       = PCI_VENDOR_ID_PHILIPS,
6261                .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6262                .subvendor    = 0x185b,
6263                .subdevice    = 0xc100,
6264                .driver_data  = SAA7134_BOARD_VIDEOMATE_TV_PVR,
6265        },{
6266                .vendor       = PCI_VENDOR_ID_PHILIPS,
6267                .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6268                .subvendor    = 0x1461, /* Avermedia Technologies Inc */
6269                .subdevice    = 0x9715,
6270                .driver_data  = SAA7134_BOARD_AVERMEDIA_STUDIO_307,
6271        },{
6272                .vendor       = PCI_VENDOR_ID_PHILIPS,
6273                .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6274                .subvendor    = 0x1461, /* Avermedia Technologies Inc */
6275                .subdevice    = 0xa70a,
6276                .driver_data  = SAA7134_BOARD_AVERMEDIA_307,
6277        },{
6278                .vendor       = PCI_VENDOR_ID_PHILIPS,
6279                .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6280                .subvendor    = 0x185b,
6281                .subdevice    = 0xc200,
6282                .driver_data  = SAA7134_BOARD_VIDEOMATE_GOLD_PLUS,
6283        },{
6284                .vendor       = PCI_VENDOR_ID_PHILIPS,
6285                .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6286                .subvendor    = 0x1540,
6287                .subdevice    = 0x9524,
6288                .driver_data  = SAA7134_BOARD_PROVIDEO_PV952,
6289
6290        },{
6291                .vendor       = PCI_VENDOR_ID_PHILIPS,
6292                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6293                .subvendor    = 0x5168,
6294                .subdevice    = 0x0502,                /* Cardbus version */
6295                .driver_data  = SAA7134_BOARD_FLYDVBT_DUO_CARDBUS,
6296        },{
6297                .vendor       = PCI_VENDOR_ID_PHILIPS,
6298                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6299                .subvendor    = 0x5168,
6300                .subdevice    = 0x0306,                /* PCI version */
6301                .driver_data  = SAA7134_BOARD_FLYDVBTDUO,
6302        },{
6303                .vendor       = PCI_VENDOR_ID_PHILIPS,
6304                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6305                .subvendor    = 0x1461, /* Avermedia Technologies Inc */
6306                .subdevice    = 0xf31f,
6307                .driver_data  = SAA7134_BOARD_AVERMEDIA_GO_007_FM,
6308
6309        },{
6310                .vendor       = PCI_VENDOR_ID_PHILIPS,
6311                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6312                .subvendor    = 0x1461, /* Avermedia Technologies Inc */
6313                .subdevice    = 0xf11d,
6314                .driver_data  = SAA7134_BOARD_AVERMEDIA_M135A,
6315        }, {
6316                .vendor       = PCI_VENDOR_ID_PHILIPS,
6317                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6318                .subvendor    = 0x1461, /* Avermedia Technologies Inc */
6319                .subdevice    = 0x4155,
6320                .driver_data  = SAA7134_BOARD_AVERMEDIA_M733A,
6321        }, {
6322                .vendor       = PCI_VENDOR_ID_PHILIPS,
6323                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6324                .subvendor    = 0x1461, /* Avermedia Technologies Inc */
6325                .subdevice    = 0x4255,
6326                .driver_data  = SAA7134_BOARD_AVERMEDIA_M733A,
6327        }, {
6328                .vendor       = PCI_VENDOR_ID_PHILIPS,
6329                .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6330                .subvendor    = PCI_VENDOR_ID_PHILIPS,
6331                .subdevice    = 0x2004,
6332                .driver_data  = SAA7134_BOARD_PHILIPS_TOUGH,
6333        },{
6334                .vendor       = PCI_VENDOR_ID_PHILIPS,
6335                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6336                .subvendor    = 0x1421,
6337                .subdevice    = 0x0350,         /* PCI version */
6338                .driver_data  = SAA7134_BOARD_ADS_INSTANT_TV,
6339        },{
6340                .vendor       = PCI_VENDOR_ID_PHILIPS,
6341                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6342                .subvendor    = 0x1421,
6343                .subdevice    = 0x0351,         /* PCI version, new revision */
6344                .driver_data  = SAA7134_BOARD_ADS_INSTANT_TV,
6345        },{
6346                .vendor       = PCI_VENDOR_ID_PHILIPS,
6347                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6348                .subvendor    = 0x1421,
6349                .subdevice    = 0x0370,         /* cardbus version */
6350                .driver_data  = SAA7134_BOARD_ADS_INSTANT_TV,
6351        },{
6352                .vendor       = PCI_VENDOR_ID_PHILIPS,
6353                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6354                .subvendor    = 0x1421,
6355                .subdevice    = 0x1370,        /* cardbus version */
6356                .driver_data  = SAA7134_BOARD_ADS_INSTANT_TV,
6357
6358        },{
6359                .vendor       = PCI_VENDOR_ID_PHILIPS,
6360                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6361                .subvendor    = 0x4e42,         /* Typhoon */
6362                .subdevice    = 0x0502,         /* LifeView LR502 OEM */
6363                .driver_data  = SAA7134_BOARD_FLYDVBT_DUO_CARDBUS,
6364        },{
6365                .vendor       = PCI_VENDOR_ID_PHILIPS,
6366                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6367                .subvendor    = 0x1043,
6368                .subdevice    = 0x0210,         /* mini pci NTSC version */
6369                .driver_data  = SAA7134_BOARD_FLYTV_DIGIMATRIX,
6370        },{
6371                .vendor       = PCI_VENDOR_ID_PHILIPS,
6372                .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6373                .subvendor    = 0x1043,
6374                .subdevice    = 0x0210,         /* mini pci PAL/SECAM version */
6375                .driver_data  = SAA7134_BOARD_ASUSTEK_DIGIMATRIX_TV,
6376
6377        },{
6378                .vendor       = PCI_VENDOR_ID_PHILIPS,
6379                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6380                .subvendor    = 0x0000, /* It shouldn't break anything, since subdevice id seems unique */
6381                .subdevice    = 0x4091,
6382                .driver_data  = SAA7134_BOARD_BEHOLD_409FM,
6383        },{
6384                .vendor       = PCI_VENDOR_ID_PHILIPS,
6385                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6386                .subvendor    = 0x5456, /* GoTView */
6387                .subdevice    = 0x7135,
6388                .driver_data  = SAA7134_BOARD_GOTVIEW_7135,
6389        },{
6390                .vendor       = PCI_VENDOR_ID_PHILIPS,
6391                .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6392                .subvendor    = PCI_VENDOR_ID_PHILIPS,
6393                .subdevice    = 0x2004,
6394                .driver_data  = SAA7134_BOARD_PHILIPS_EUROPA,
6395        },{
6396                .vendor       = PCI_VENDOR_ID_PHILIPS,
6397                .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6398                .subvendor    = 0x185b,
6399                .subdevice    = 0xc900,
6400                .driver_data  = SAA7134_BOARD_VIDEOMATE_DVBT_300,
6401        },{
6402                .vendor       = PCI_VENDOR_ID_PHILIPS,
6403                .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6404                .subvendor    = 0x185b,
6405                .subdevice    = 0xc901,
6406                .driver_data  = SAA7134_BOARD_VIDEOMATE_DVBT_200,
6407        },{
6408                .vendor       = PCI_VENDOR_ID_PHILIPS,
6409                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6410                .subvendor    = 0x1435,
6411                .subdevice    = 0x7350,
6412                .driver_data  = SAA7134_BOARD_RTD_VFG7350,
6413        },{
6414                .vendor       = PCI_VENDOR_ID_PHILIPS,
6415                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6416                .subvendor    = 0x1435,
6417                .subdevice    = 0x7330,
6418                .driver_data  = SAA7134_BOARD_RTD_VFG7330,
6419        },{
6420                .vendor       = PCI_VENDOR_ID_PHILIPS,
6421                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6422                .subvendor    = 0x1461,
6423                .subdevice    = 0x1044,
6424                .driver_data  = SAA7134_BOARD_AVERMEDIA_AVERTVHD_A180,
6425        },{
6426                .vendor       = PCI_VENDOR_ID_PHILIPS,
6427                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6428                .subvendor    = 0x1131,
6429                .subdevice    = 0x4ee9,
6430                .driver_data  = SAA7134_BOARD_MONSTERTV_MOBILE,
6431        },{
6432                .vendor       = PCI_VENDOR_ID_PHILIPS,
6433                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6434                .subvendor    = 0x11bd,
6435                .subdevice    = 0x002e,
6436                .driver_data  = SAA7134_BOARD_PINNACLE_PCTV_110i,
6437        },{
6438                .vendor       = PCI_VENDOR_ID_PHILIPS,
6439                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6440                .subvendor    = 0x1043,
6441                .subdevice    = 0x4862,
6442                .driver_data  = SAA7134_BOARD_ASUSTeK_P7131_DUAL,
6443        },{
6444                .vendor       = PCI_VENDOR_ID_PHILIPS,
6445                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6446                .subvendor    = PCI_VENDOR_ID_PHILIPS,
6447                .subdevice    = 0x2018,
6448                .driver_data  = SAA7134_BOARD_PHILIPS_TIGER,
6449        },{
6450                .vendor       = PCI_VENDOR_ID_PHILIPS,
6451                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6452                .subvendor    = 0x1462,
6453                .subdevice    = 0x6231, /* tda8275a, ks003 IR */
6454                .driver_data  = SAA7134_BOARD_MSI_TVATANYWHERE_PLUS,
6455        },{
6456                .vendor       = PCI_VENDOR_ID_PHILIPS,
6457                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6458                .subvendor    = 0x1462,
6459                .subdevice    = 0x8624, /* tda8275, ks003 IR */
6460                .driver_data  = SAA7134_BOARD_MSI_TVATANYWHERE_PLUS,
6461        },{
6462                .vendor       = PCI_VENDOR_ID_PHILIPS,
6463                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6464                .subvendor    = 0x153b,
6465                .subdevice    = 0x1160,
6466                .driver_data  = SAA7134_BOARD_CINERGY250PCI,
6467        },{
6468                .vendor       = PCI_VENDOR_ID_PHILIPS,
6469                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,  /* SAA 7131E */
6470                .subvendor    = 0x5168,
6471                .subdevice    = 0x0319,
6472                .driver_data  = SAA7134_BOARD_FLYDVB_TRIO,
6473        },{
6474                .vendor       = PCI_VENDOR_ID_PHILIPS,
6475                .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6476                .subvendor    = 0x1461,
6477                .subdevice    = 0x2c05,
6478                .driver_data  = SAA7134_BOARD_AVERMEDIA_777,
6479        },{
6480                .vendor       = PCI_VENDOR_ID_PHILIPS,
6481                .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6482                .subvendor    = 0x5168,
6483                .subdevice    = 0x0301,
6484                .driver_data  = SAA7134_BOARD_FLYDVBT_LR301,
6485        },{
6486                .vendor       = PCI_VENDOR_ID_PHILIPS,
6487                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6488                .subvendor    = 0x0331,
6489                .subdevice    = 0x1421,
6490                .driver_data  = SAA7134_BOARD_ADS_DUO_CARDBUS_PTV331,
6491        },{
6492                .vendor       = PCI_VENDOR_ID_PHILIPS,
6493                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6494                .subvendor    = 0x17de,
6495                .subdevice    = 0x7201,
6496                .driver_data  = SAA7134_BOARD_TEVION_DVBT_220RF,
6497        },{
6498                .vendor       = PCI_VENDOR_ID_PHILIPS,
6499                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6500                .subvendor    = 0x17de,
6501                .subdevice    = 0x7250,
6502                .driver_data  = SAA7134_BOARD_KWORLD_DVBT_210,
6503        },{
6504                .vendor       = PCI_VENDOR_ID_PHILIPS,
6505                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133, /* SAA7135HL */
6506                .subvendor    = 0x17de,
6507                .subdevice    = 0x7350,
6508                .driver_data  = SAA7134_BOARD_KWORLD_ATSC110,
6509        },{
6510                .vendor       = PCI_VENDOR_ID_PHILIPS,
6511                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133, /* SAA7135HL */
6512                .subvendor    = 0x17de,
6513                .subdevice    = 0x7352,
6514                .driver_data  = SAA7134_BOARD_KWORLD_ATSC110, /* ATSC 115 */
6515        },{
6516                .vendor       = PCI_VENDOR_ID_PHILIPS,
6517                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133, /* SAA7135HL */
6518                .subvendor    = 0x17de,
6519                .subdevice    = 0xa134,
6520                .driver_data  = SAA7134_BOARD_KWORLD_PC150U,
6521        }, {
6522                .vendor       = PCI_VENDOR_ID_PHILIPS,
6523                .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6524                .subvendor    = 0x1461,
6525                .subdevice    = 0x7360,
6526                .driver_data  = SAA7134_BOARD_AVERMEDIA_A169_B,
6527        },{
6528                .vendor       = PCI_VENDOR_ID_PHILIPS,
6529                .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6530                .subvendor    = 0x1461,
6531                .subdevice    = 0x6360,
6532                .driver_data  = SAA7134_BOARD_AVERMEDIA_A169_B1,
6533        },{
6534                .vendor       = PCI_VENDOR_ID_PHILIPS,
6535                .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6536                .subvendor    = 0x16be,
6537                .subdevice    = 0x0005,
6538                .driver_data  = SAA7134_BOARD_MD7134_BRIDGE_2,
6539        },{
6540                .vendor       = PCI_VENDOR_ID_PHILIPS,
6541                .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6542                .subvendor    = 0x5168,
6543                .subdevice    = 0x0300,
6544                .driver_data  = SAA7134_BOARD_FLYDVBS_LR300,
6545        },{
6546                .vendor       = PCI_VENDOR_ID_PHILIPS,
6547                .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6548                .subvendor    = 0x4e42,
6549                .subdevice    = 0x0300,/* LR300 */
6550                .driver_data  = SAA7134_BOARD_FLYDVBS_LR300,
6551        },{
6552                .vendor = PCI_VENDOR_ID_PHILIPS,
6553                .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
6554                .subvendor = 0x1489,
6555                .subdevice = 0x0301,
6556                .driver_data = SAA7134_BOARD_FLYDVBT_LR301,
6557        },{
6558                .vendor = PCI_VENDOR_ID_PHILIPS,
6559                .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
6560                .subvendor = 0x5168, /* Animation Technologies (LifeView) */
6561                .subdevice = 0x0304,
6562                .driver_data = SAA7134_BOARD_FLYTVPLATINUM_FM,
6563        },{
6564                .vendor       = PCI_VENDOR_ID_PHILIPS,
6565                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6566                .subvendor    = 0x5168,
6567                .subdevice    = 0x3306,
6568                .driver_data  = SAA7134_BOARD_FLYDVBT_HYBRID_CARDBUS,
6569        },{
6570                .vendor       = PCI_VENDOR_ID_PHILIPS,
6571                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6572                .subvendor    = 0x5168,
6573                .subdevice    = 0x3502,  /* whats the difference to 0x3306 ?*/
6574                .driver_data  = SAA7134_BOARD_FLYDVBT_HYBRID_CARDBUS,
6575        },{
6576                .vendor       = PCI_VENDOR_ID_PHILIPS,
6577                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6578                .subvendor    = 0x5168,
6579                .subdevice    = 0x3307, /* FlyDVB-T Hybrid Mini PCI */
6580                .driver_data  = SAA7134_BOARD_FLYDVBT_HYBRID_CARDBUS,
6581        }, {
6582                .vendor       = PCI_VENDOR_ID_PHILIPS,
6583                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6584                .subvendor    = 0x16be,
6585                .subdevice    = 0x0007,
6586                .driver_data  = SAA7134_BOARD_MEDION_MD8800_QUADRO,
6587        },{
6588                .vendor       = PCI_VENDOR_ID_PHILIPS,
6589                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6590                .subvendor    = 0x16be,
6591                .subdevice    = 0x0008,
6592                .driver_data  = SAA7134_BOARD_MEDION_MD8800_QUADRO,
6593        },{
6594                .vendor       = PCI_VENDOR_ID_PHILIPS,
6595                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6596                .subvendor    = 0x16be,
6597                .subdevice    = 0x000d, /* triple CTX948_V1.1.1 */
6598                .driver_data  = SAA7134_BOARD_MEDION_MD8800_QUADRO,
6599        }, {
6600                .vendor       = PCI_VENDOR_ID_PHILIPS,
6601                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6602                .subvendor    = 0x1461,
6603                .subdevice    = 0x2c05,
6604                .driver_data  = SAA7134_BOARD_AVERMEDIA_777,
6605        },{
6606                .vendor       = PCI_VENDOR_ID_PHILIPS,
6607                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6608                .subvendor    = 0x1489,
6609                .subdevice    = 0x0502,                /* Cardbus version */
6610                .driver_data  = SAA7134_BOARD_FLYDVBT_DUO_CARDBUS,
6611        },{
6612                .vendor       = PCI_VENDOR_ID_PHILIPS,
6613                .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6614                .subvendor    = 0x0919, /* Philips Proteus PRO 2309 */
6615                .subdevice    = 0x2003,
6616                .driver_data  = SAA7134_BOARD_PROTEUS_2309,
6617        },{
6618                .vendor       = PCI_VENDOR_ID_PHILIPS,
6619                .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6620                .subvendor    = 0x1461,
6621                .subdevice    = 0x2c00,
6622                .driver_data  = SAA7134_BOARD_AVERMEDIA_A16AR,
6623        },{
6624                .vendor       = PCI_VENDOR_ID_PHILIPS,
6625                .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6626                .subvendor    = 0x1043,
6627                .subdevice    = 0x4860,
6628                .driver_data  = SAA7134_BOARD_ASUS_EUROPA2_HYBRID,
6629        },{
6630                .vendor       = PCI_VENDOR_ID_PHILIPS,
6631                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6632                .subvendor    = 0x11bd,
6633                .subdevice    = 0x002f,
6634                .driver_data  = SAA7134_BOARD_PINNACLE_PCTV_310i,
6635        },{
6636                .vendor       = PCI_VENDOR_ID_PHILIPS,
6637                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6638                .subvendor    = 0x1461, /* Avermedia Technologies Inc */
6639                .subdevice    = 0x9715,
6640                .driver_data  = SAA7134_BOARD_AVERMEDIA_STUDIO_507,
6641        },{
6642                .vendor       = PCI_VENDOR_ID_PHILIPS,
6643                .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6644                .subvendor    = 0x1461, /* Avermedia Technologies Inc */
6645                .subdevice    = 0xa11b,
6646                .driver_data  = SAA7134_BOARD_AVERMEDIA_STUDIO_507UA,
6647        }, {
6648                .vendor       = PCI_VENDOR_ID_PHILIPS,
6649                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6650                .subvendor    = 0x1043,
6651                .subdevice    = 0x4876,
6652                .driver_data  = SAA7134_BOARD_ASUSTeK_P7131_HYBRID_LNA,
6653        },{
6654                .vendor       = PCI_VENDOR_ID_PHILIPS,
6655                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6656                .subvendor    = 0x0070,
6657                .subdevice    = 0x6700,
6658                .driver_data  = SAA7134_BOARD_HAUPPAUGE_HVR1110,
6659        },{
6660                .vendor       = PCI_VENDOR_ID_PHILIPS,
6661                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6662                .subvendor    = 0x0070,
6663                .subdevice    = 0x6701,
6664                .driver_data  = SAA7134_BOARD_HAUPPAUGE_HVR1110,
6665        },{
6666                .vendor       = PCI_VENDOR_ID_PHILIPS,
6667                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6668                .subvendor    = 0x0070,
6669                .subdevice    = 0x6702,
6670                .driver_data  = SAA7134_BOARD_HAUPPAUGE_HVR1110,
6671        },{
6672                .vendor       = PCI_VENDOR_ID_PHILIPS,
6673                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6674                .subvendor    = 0x0070,
6675                .subdevice    = 0x6703,
6676                .driver_data  = SAA7134_BOARD_HAUPPAUGE_HVR1110,
6677        },{
6678                .vendor       = PCI_VENDOR_ID_PHILIPS,
6679                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6680                .subvendor    = 0x0070,
6681                .subdevice    = 0x6704,
6682                .driver_data  = SAA7134_BOARD_HAUPPAUGE_HVR1110,
6683        },{
6684                .vendor       = PCI_VENDOR_ID_PHILIPS,
6685                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6686                .subvendor    = 0x0070,
6687                .subdevice    = 0x6705,
6688                .driver_data  = SAA7134_BOARD_HAUPPAUGE_HVR1110,
6689        },{
6690                .vendor       = PCI_VENDOR_ID_PHILIPS,
6691                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6692                .subvendor    = 0x0070,
6693                .subdevice    = 0x6706,
6694                .driver_data  = SAA7134_BOARD_HAUPPAUGE_HVR1150,
6695        },{
6696                .vendor       = PCI_VENDOR_ID_PHILIPS,
6697                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6698                .subvendor    = 0x0070,
6699                .subdevice    = 0x6707,
6700                .driver_data  = SAA7134_BOARD_HAUPPAUGE_HVR1120,
6701        },{
6702                .vendor       = PCI_VENDOR_ID_PHILIPS,
6703                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6704                .subvendor    = 0x0070,
6705                .subdevice    = 0x6708,
6706                .driver_data  = SAA7134_BOARD_HAUPPAUGE_HVR1150,
6707        },{
6708                .vendor       = PCI_VENDOR_ID_PHILIPS,
6709                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6710                .subvendor    = 0x0070,
6711                .subdevice    = 0x6709,
6712                .driver_data  = SAA7134_BOARD_HAUPPAUGE_HVR1120,
6713        },{
6714                .vendor       = PCI_VENDOR_ID_PHILIPS,
6715                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6716                .subvendor    = 0x0070,
6717                .subdevice    = 0x670a,
6718                .driver_data  = SAA7134_BOARD_HAUPPAUGE_HVR1120,
6719        },{
6720                .vendor       = PCI_VENDOR_ID_PHILIPS,
6721                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6722                .subvendor    = 0x153b,
6723                .subdevice    = 0x1172,
6724                .driver_data  = SAA7134_BOARD_CINERGY_HT_PCMCIA,
6725        },{
6726                .vendor       = PCI_VENDOR_ID_PHILIPS,
6727                .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6728                .subvendor    = PCI_VENDOR_ID_PHILIPS,
6729                .subdevice    = 0x2342,
6730                .driver_data  = SAA7134_BOARD_ENCORE_ENLTV,
6731        },{
6732                .vendor       = PCI_VENDOR_ID_PHILIPS,
6733                .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6734                .subvendor    = 0x1131,
6735                .subdevice    = 0x2341,
6736                .driver_data  = SAA7134_BOARD_ENCORE_ENLTV,
6737        },{
6738                .vendor       = PCI_VENDOR_ID_PHILIPS,
6739                .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6740                .subvendor    = 0x3016,
6741                .subdevice    = 0x2344,
6742                .driver_data  = SAA7134_BOARD_ENCORE_ENLTV,
6743        },{
6744                .vendor       = PCI_VENDOR_ID_PHILIPS,
6745                .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6746                .subvendor    = 0x1131,
6747                .subdevice    = 0x230f,
6748                .driver_data  = SAA7134_BOARD_ENCORE_ENLTV_FM,
6749        },{
6750                .vendor       = PCI_VENDOR_ID_PHILIPS,
6751                .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6752                .subvendor    = 0x1a7f,
6753                .subdevice    = 0x2008,
6754                .driver_data  = SAA7134_BOARD_ENCORE_ENLTV_FM53,
6755        }, {
6756                .vendor       = PCI_VENDOR_ID_PHILIPS,
6757                .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6758                .subvendor    = 0x1a7f,
6759                .subdevice    = 0x2108,
6760                .driver_data  = SAA7134_BOARD_ENCORE_ENLTV_FM3,
6761        }, {
6762                .vendor       = PCI_VENDOR_ID_PHILIPS,
6763                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6764                .subvendor    = 0x153b,
6765                .subdevice    = 0x1175,
6766                .driver_data  = SAA7134_BOARD_CINERGY_HT_PCI,
6767        },{
6768                .vendor       = PCI_VENDOR_ID_PHILIPS,
6769                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6770                .subvendor    = 0x1461, /* Avermedia Technologies Inc */
6771                .subdevice    = 0xf31e,
6772                .driver_data  = SAA7134_BOARD_AVERMEDIA_M102,
6773        },{
6774                .vendor       = PCI_VENDOR_ID_PHILIPS,
6775                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6776                .subvendor    = 0x4E42,         /* MSI */
6777                .subdevice    = 0x0306,         /* TV@nywhere DUO */
6778                .driver_data  = SAA7134_BOARD_FLYDVBTDUO,
6779        },{
6780                .vendor       = PCI_VENDOR_ID_PHILIPS,
6781                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6782                .subvendor    = 0x1043,
6783                .subdevice    = 0x4871,
6784                .driver_data  = SAA7134_BOARD_ASUS_P7131_4871,
6785        },{
6786                .vendor       = PCI_VENDOR_ID_PHILIPS,
6787                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6788                .subvendor    = 0x1043,
6789                .subdevice    = 0x4857,         /* REV:1.00 */
6790                .driver_data  = SAA7134_BOARD_ASUSTeK_TIGER,
6791        },{
6792                .vendor       = PCI_VENDOR_ID_PHILIPS,
6793                .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6794                .subvendor    = 0x0919, /* SinoVideo PCI 2309 Proteus (7134) */
6795                .subdevice    = 0x2003, /* OEM cardbus */
6796                .driver_data  = SAA7134_BOARD_SABRENT_TV_PCB05,
6797        },{
6798                .vendor       = PCI_VENDOR_ID_PHILIPS,
6799                .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6800                .subvendor    = PCI_VENDOR_ID_PHILIPS,
6801                .subdevice    = 0x2304,
6802                .driver_data  = SAA7134_BOARD_10MOONSTVMASTER3,
6803        },{
6804                .vendor       = PCI_VENDOR_ID_PHILIPS,
6805                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6806                .subvendor    = 0x1461, /* Avermedia Technologies Inc */
6807                .subdevice    = 0xf01d, /* AVerTV DVB-T Super 007 */
6808                .driver_data  = SAA7134_BOARD_AVERMEDIA_SUPER_007,
6809        },{
6810                .vendor       = PCI_VENDOR_ID_PHILIPS,
6811                .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6812                .subvendor    = 0x0000,
6813                .subdevice    = 0x4016,
6814                .driver_data  = SAA7134_BOARD_BEHOLD_401,
6815        },{
6816                .vendor       = PCI_VENDOR_ID_PHILIPS,
6817                .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6818                .subvendor    = 0x0000,
6819                .subdevice    = 0x4036,
6820                .driver_data  = SAA7134_BOARD_BEHOLD_403,
6821        },{
6822                .vendor       = PCI_VENDOR_ID_PHILIPS,
6823                .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6824                .subvendor    = 0x0000,
6825                .subdevice    = 0x4037,
6826                .driver_data  = SAA7134_BOARD_BEHOLD_403FM,
6827        },{
6828                .vendor       = PCI_VENDOR_ID_PHILIPS,
6829                .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6830                .subvendor    = 0x0000,
6831                .subdevice    = 0x4050,
6832                .driver_data  = SAA7134_BOARD_BEHOLD_405,
6833        },{
6834                .vendor       = PCI_VENDOR_ID_PHILIPS,
6835                .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6836                .subvendor    = 0x0000,
6837                .subdevice    = 0x4051,
6838                .driver_data  = SAA7134_BOARD_BEHOLD_405FM,
6839        },{
6840                .vendor       = PCI_VENDOR_ID_PHILIPS,
6841                .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6842                .subvendor    = 0x0000,
6843                .subdevice    = 0x4070,
6844                .driver_data  = SAA7134_BOARD_BEHOLD_407,
6845        },{
6846                .vendor       = PCI_VENDOR_ID_PHILIPS,
6847                .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6848                .subvendor    = 0x0000,
6849                .subdevice    = 0x4071,
6850                .driver_data  = SAA7134_BOARD_BEHOLD_407FM,
6851        },{
6852                .vendor       = PCI_VENDOR_ID_PHILIPS,
6853                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6854                .subvendor    = 0x0000,
6855                .subdevice    = 0x4090,
6856                .driver_data  = SAA7134_BOARD_BEHOLD_409,
6857        },{
6858                .vendor       = PCI_VENDOR_ID_PHILIPS,
6859                .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6860                .subvendor    = 0x0000,
6861                .subdevice    = 0x505B,
6862                .driver_data  = SAA7134_BOARD_BEHOLD_505RDS_MK5,
6863        }, {
6864                .vendor       = PCI_VENDOR_ID_PHILIPS,
6865                .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6866                .subvendor    = 0x0000,
6867                .subdevice    = 0x5051,
6868                .driver_data  = SAA7134_BOARD_BEHOLD_505RDS_MK3,
6869        },{
6870                .vendor       = PCI_VENDOR_ID_PHILIPS,
6871                .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6872                .subvendor    = 0x5ace,
6873                .subdevice    = 0x5050,
6874                .driver_data  = SAA7134_BOARD_BEHOLD_505FM,
6875        },{
6876                .vendor       = PCI_VENDOR_ID_PHILIPS,
6877                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6878                .subvendor    = 0x0000,
6879                .subdevice    = 0x5071,
6880                .driver_data  = SAA7134_BOARD_BEHOLD_507RDS_MK3,
6881        },{
6882                .vendor       = PCI_VENDOR_ID_PHILIPS,
6883                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6884                .subvendor    = 0x0000,
6885                .subdevice    = 0x507B,
6886                .driver_data  = SAA7134_BOARD_BEHOLD_507RDS_MK5,
6887        },{
6888                .vendor       = PCI_VENDOR_ID_PHILIPS,
6889                .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6890                .subvendor    = 0x5ace,
6891                .subdevice    = 0x5070,
6892                .driver_data  = SAA7134_BOARD_BEHOLD_507_9FM,
6893        },{
6894                .vendor       = PCI_VENDOR_ID_PHILIPS,
6895                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6896                .subvendor    = 0x5ace,
6897                .subdevice    = 0x5090,
6898                .driver_data  = SAA7134_BOARD_BEHOLD_507_9FM,
6899        },{
6900                .vendor       = PCI_VENDOR_ID_PHILIPS,
6901                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6902                .subvendor    = 0x0000,
6903                .subdevice    = 0x5201,
6904                .driver_data  = SAA7134_BOARD_BEHOLD_COLUMBUS_TVFM,
6905        },{
6906                .vendor       = PCI_VENDOR_ID_PHILIPS,
6907                .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6908                .subvendor    = 0x5ace,
6909                .subdevice    = 0x6070,
6910                .driver_data  = SAA7134_BOARD_BEHOLD_607FM_MK3,
6911        },{
6912                .vendor       = PCI_VENDOR_ID_PHILIPS,
6913                .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6914                .subvendor    = 0x5ace,
6915                .subdevice    = 0x6071,
6916                .driver_data  = SAA7134_BOARD_BEHOLD_607FM_MK5,
6917        },{
6918                .vendor       = PCI_VENDOR_ID_PHILIPS,
6919                .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6920                .subvendor    = 0x5ace,
6921                .subdevice    = 0x6072,
6922                .driver_data  = SAA7134_BOARD_BEHOLD_607RDS_MK3,
6923        },{
6924                .vendor       = PCI_VENDOR_ID_PHILIPS,
6925                .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6926                .subvendor    = 0x5ace,
6927                .subdevice    = 0x6073,
6928                .driver_data  = SAA7134_BOARD_BEHOLD_607RDS_MK5,
6929        },{
6930                .vendor       = PCI_VENDOR_ID_PHILIPS,
6931                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6932                .subvendor    = 0x5ace,
6933                .subdevice    = 0x6090,
6934                .driver_data  = SAA7134_BOARD_BEHOLD_609FM_MK3,
6935        },{
6936                .vendor       = PCI_VENDOR_ID_PHILIPS,
6937                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6938                .subvendor    = 0x5ace,
6939                .subdevice    = 0x6091,
6940                .driver_data  = SAA7134_BOARD_BEHOLD_609FM_MK5,
6941        },{
6942                .vendor       = PCI_VENDOR_ID_PHILIPS,
6943                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6944                .subvendor    = 0x5ace,
6945                .subdevice    = 0x6092,
6946                .driver_data  = SAA7134_BOARD_BEHOLD_609RDS_MK3,
6947        },{
6948                .vendor       = PCI_VENDOR_ID_PHILIPS,
6949                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6950                .subvendor    = 0x5ace,
6951                .subdevice    = 0x6093,
6952                .driver_data  = SAA7134_BOARD_BEHOLD_609RDS_MK5,
6953        },{
6954                .vendor       = PCI_VENDOR_ID_PHILIPS,
6955                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6956                .subvendor    = 0x5ace,
6957                .subdevice    = 0x6190,
6958                .driver_data  = SAA7134_BOARD_BEHOLD_M6,
6959        },{
6960                .vendor       = PCI_VENDOR_ID_PHILIPS,
6961                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6962                .subvendor    = 0x5ace,
6963                .subdevice    = 0x6193,
6964                .driver_data  = SAA7134_BOARD_BEHOLD_M6_EXTRA,
6965        }, {
6966                .vendor       = PCI_VENDOR_ID_PHILIPS,
6967                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6968                .subvendor    = 0x5ace,
6969                .subdevice    = 0x6191,
6970                .driver_data  = SAA7134_BOARD_BEHOLD_M63,
6971        },{
6972                .vendor       = PCI_VENDOR_ID_PHILIPS,
6973                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6974                .subvendor    = 0x4e42,
6975                .subdevice    = 0x3502,
6976                .driver_data  = SAA7134_BOARD_FLYDVBT_HYBRID_CARDBUS,
6977        }, {
6978                .vendor       = PCI_VENDOR_ID_PHILIPS,
6979                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6980                .subvendor    = 0x1822, /*Twinhan Technology Co. Ltd*/
6981                .subdevice    = 0x0022,
6982                .driver_data  = SAA7134_BOARD_TWINHAN_DTV_DVB_3056,
6983        }, {
6984                .vendor       = PCI_VENDOR_ID_PHILIPS,
6985                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6986                .subvendor    = 0x16be,
6987                .subdevice    = 0x0010, /* Medion version CTX953_V.1.4.3 */
6988                .driver_data  = SAA7134_BOARD_CREATIX_CTX953,
6989        }, {
6990                .vendor       = PCI_VENDOR_ID_PHILIPS,
6991                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6992                .subvendor    = 0x1462, /* MSI */
6993                .subdevice    = 0x8625, /* TV@nywhere A/D v1.1 */
6994                .driver_data  = SAA7134_BOARD_MSI_TVANYWHERE_AD11,
6995        },{
6996                .vendor       = PCI_VENDOR_ID_PHILIPS,
6997                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6998                .subvendor    = 0x1461, /* Avermedia Technologies Inc */
6999                .subdevice    = 0xf436,
7000                .driver_data  = SAA7134_BOARD_AVERMEDIA_CARDBUS_506,
7001        }, {
7002                .vendor       = PCI_VENDOR_ID_PHILIPS,
7003                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
7004                .subvendor    = 0x1461, /* Avermedia Technologies Inc */
7005                .subdevice    = 0xf936,
7006                .driver_data  = SAA7134_BOARD_AVERMEDIA_A16D,
7007        }, {
7008                .vendor       = PCI_VENDOR_ID_PHILIPS,
7009                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
7010                .subvendor    = 0x1461, /* Avermedia Technologies Inc */
7011                .subdevice    = 0xa836,
7012                .driver_data  = SAA7134_BOARD_AVERMEDIA_M115,
7013        }, {
7014                .vendor       = PCI_VENDOR_ID_PHILIPS,
7015                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
7016                .subvendor    = 0x185b,
7017                .subdevice    = 0xc900,
7018                .driver_data  = SAA7134_BOARD_VIDEOMATE_T750,
7019        }, {
7020                .vendor       = PCI_VENDOR_ID_PHILIPS,
7021                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133, /* SAA7135HL */
7022                .subvendor    = 0x1421,
7023                .subdevice    = 0x0380,
7024                .driver_data  = SAA7134_BOARD_ADS_INSTANT_HDTV_PCI,
7025        }, {
7026                .vendor       = PCI_VENDOR_ID_PHILIPS,
7027                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
7028                .subvendor    = 0x5169,
7029                .subdevice    = 0x1502,
7030                .driver_data  = SAA7134_BOARD_FLYTVPLATINUM_MINI,
7031        }, {
7032                .vendor       = PCI_VENDOR_ID_PHILIPS,
7033                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
7034                .subvendor    = 0x5ace,
7035                .subdevice    = 0x6290,
7036                .driver_data  = SAA7134_BOARD_BEHOLD_H6,
7037        }, {
7038                .vendor       = PCI_VENDOR_ID_PHILIPS,
7039                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
7040                .subvendor    = 0x1461, /* Avermedia Technologies Inc */
7041                .subdevice    = 0xf636,
7042                .driver_data  = SAA7134_BOARD_AVERMEDIA_M103,
7043        }, {
7044                .vendor       = PCI_VENDOR_ID_PHILIPS,
7045                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
7046                .subvendor    = 0x1461, /* Avermedia Technologies Inc */
7047                .subdevice    = 0xf736,
7048                .driver_data  = SAA7134_BOARD_AVERMEDIA_M103,
7049        }, {
7050                .vendor       = PCI_VENDOR_ID_PHILIPS,
7051                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
7052                .subvendor    = 0x1043,
7053                .subdevice    = 0x4878, /* REV:1.02G */
7054                .driver_data  = SAA7134_BOARD_ASUSTeK_TIGER_3IN1,
7055        }, {
7056                .vendor       = PCI_VENDOR_ID_PHILIPS,
7057                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
7058                .subvendor    = 0x1043,
7059                .subdevice    = 0x48cd,
7060                .driver_data  = SAA7134_BOARD_ASUSTeK_PS3_100,
7061        }, {
7062                .vendor       = PCI_VENDOR_ID_PHILIPS,
7063                .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
7064                .subvendor    = 0x17de,
7065                .subdevice    = 0x7128,
7066                .driver_data  = SAA7134_BOARD_KWORLD_PLUS_TV_ANALOG,
7067        }, {
7068                .vendor       = PCI_VENDOR_ID_PHILIPS,
7069                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
7070                .subvendor    = 0x17de,
7071                .subdevice    = 0xb136,
7072                .driver_data  = SAA7134_BOARD_KWORLD_PCI_SBTVD_FULLSEG,
7073        }, {
7074                .vendor       = PCI_VENDOR_ID_PHILIPS,
7075                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
7076                .subvendor    = 0x1461, /* Avermedia Technologies Inc */
7077                .subdevice    = 0xf31d,
7078                .driver_data  = SAA7134_BOARD_AVERMEDIA_GO_007_FM_PLUS,
7079        }, {
7080                .vendor       = PCI_VENDOR_ID_PHILIPS,
7081                .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
7082                .subvendor    = 0x185b,
7083                .subdevice    = 0xc900,
7084                .driver_data  = SAA7134_BOARD_VIDEOMATE_S350,
7085        }, {
7086                .vendor       = PCI_VENDOR_ID_PHILIPS,
7087                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
7088                .subvendor    = 0x5ace, /* Beholder Intl. Ltd. */
7089                .subdevice    = 0x7595,
7090                .driver_data  = SAA7134_BOARD_BEHOLD_X7,
7091        }, {
7092                .vendor       = PCI_VENDOR_ID_PHILIPS,
7093                .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
7094                .subvendor    = 0x19d1, /* RoverMedia */
7095                .subdevice    = 0x0138, /* LifeView FlyTV Prime30 OEM */
7096                .driver_data  = SAA7134_BOARD_ROVERMEDIA_LINK_PRO_FM,
7097        }, {
7098                .vendor       = PCI_VENDOR_ID_PHILIPS,
7099                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
7100                .subvendor    = PCI_VENDOR_ID_PHILIPS,
7101                .subdevice    = 0x2004,
7102                .driver_data  = SAA7134_BOARD_ZOLID_HYBRID_PCI,
7103        }, {
7104                .vendor       = PCI_VENDOR_ID_PHILIPS,
7105                .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
7106                .subvendor    = 0x1043,
7107                .subdevice    = 0x4847,
7108                .driver_data  = SAA7134_BOARD_ASUS_EUROPA_HYBRID,
7109        }, {
7110                .vendor       = PCI_VENDOR_ID_PHILIPS,
7111                .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
7112                .subvendor    = 0x107d,
7113                .subdevice    = 0x6655,
7114                .driver_data  = SAA7134_BOARD_LEADTEK_WINFAST_DTV1000S,
7115        }, {
7116                .vendor       = PCI_VENDOR_ID_PHILIPS,
7117                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
7118                .subvendor    = 0x13c2,
7119                .subdevice    = 0x2804,
7120                .driver_data  = SAA7134_BOARD_TECHNOTREND_BUDGET_T3000,
7121        }, {
7122                .vendor       = PCI_VENDOR_ID_PHILIPS,
7123                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
7124                .subvendor    = 0x5ace, /* Beholder Intl. Ltd. */
7125                .subdevice    = 0x7190,
7126                .driver_data  = SAA7134_BOARD_BEHOLD_H7,
7127        }, {
7128                .vendor       = PCI_VENDOR_ID_PHILIPS,
7129                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
7130                .subvendor    = 0x5ace, /* Beholder Intl. Ltd. */
7131                .subdevice    = 0x7090,
7132                .driver_data  = SAA7134_BOARD_BEHOLD_A7,
7133        }, {
7134                .vendor       = PCI_VENDOR_ID_PHILIPS,
7135                .device       = PCI_DEVICE_ID_PHILIPS_SAA7135,
7136                .subvendor    = 0x185b,
7137                .subdevice    = 0xc900,
7138                .driver_data  = SAA7134_BOARD_VIDEOMATE_M1F,
7139        }, {
7140                .vendor       = PCI_VENDOR_ID_PHILIPS,
7141                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
7142                .subvendor    = 0x5ace,
7143                .subdevice    = 0x5030,
7144                .driver_data  = SAA7134_BOARD_BEHOLD_503FM,
7145        }, {
7146                .vendor       = PCI_VENDOR_ID_PHILIPS,
7147                .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
7148                .subvendor    = 0x5ace,
7149                .subdevice    = 0x5010,
7150                .driver_data  = SAA7134_BOARD_BEHOLD_501,
7151        }, {
7152                .vendor       = PCI_VENDOR_ID_PHILIPS,
7153                .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
7154                .subvendor    = 0x17de,
7155                .subdevice    = 0xd136,
7156                .driver_data  = SAA7134_BOARD_MAGICPRO_PROHDTV_PRO2,
7157        }, {
7158                .vendor       = PCI_VENDOR_ID_PHILIPS,
7159                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
7160                .subvendor    = 0x6000,
7161                .subdevice    = 0x0811,
7162                .driver_data  = SAA7134_BOARD_SENSORAY811_911,
7163        }, {
7164                .vendor       = PCI_VENDOR_ID_PHILIPS,
7165                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
7166                .subvendor    = 0x6000,
7167                .subdevice    = 0x0911,
7168                .driver_data  = SAA7134_BOARD_SENSORAY811_911,
7169        }, {
7170                .vendor       = PCI_VENDOR_ID_PHILIPS,
7171                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
7172                .subvendor    = 0x1461, /* Avermedia Technologies Inc */
7173                .subdevice    = 0x2055, /* AverTV Satellite Hybrid+FM A706 */
7174                .driver_data  = SAA7134_BOARD_AVERMEDIA_A706,
7175        }, {
7176                .vendor       = PCI_VENDOR_ID_PHILIPS,
7177                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
7178                .subvendor    = 0x1905, /* WIS */
7179                .subdevice    = 0x7007,
7180                .driver_data  = SAA7134_BOARD_WIS_VOYAGER,
7181        }, {
7182                .vendor       = PCI_VENDOR_ID_PHILIPS,
7183                .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
7184                .subvendor    = 0x1461, /* Avermedia Technologies Inc */
7185                .subdevice    = 0xa10a,
7186                .driver_data  = SAA7134_BOARD_AVERMEDIA_505,
7187        }, {
7188                .vendor       = PCI_VENDOR_ID_PHILIPS,
7189                .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
7190                .subvendor    = 0x107d,
7191                .subdevice    = 0x6f3a,
7192                .driver_data  = SAA7134_BOARD_LEADTEK_WINFAST_TV2100_FM,
7193        }, {
7194                /* --- boards without eeprom + subsystem ID --- */
7195                .vendor       = PCI_VENDOR_ID_PHILIPS,
7196                .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
7197                .subvendor    = PCI_VENDOR_ID_PHILIPS,
7198                .subdevice    = 0,
7199                .driver_data  = SAA7134_BOARD_NOAUTO,
7200        },{
7201                .vendor       = PCI_VENDOR_ID_PHILIPS,
7202                .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
7203                .subvendor    = PCI_VENDOR_ID_PHILIPS,
7204                .subdevice    = 0,
7205                .driver_data  = SAA7134_BOARD_NOAUTO,
7206        },{
7207                /* --- default catch --- */
7208                .vendor       = PCI_VENDOR_ID_PHILIPS,
7209                .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
7210                .subvendor    = PCI_ANY_ID,
7211                .subdevice    = PCI_ANY_ID,
7212                .driver_data  = SAA7134_BOARD_UNKNOWN,
7213        },{
7214                .vendor       = PCI_VENDOR_ID_PHILIPS,
7215                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
7216                .subvendor    = PCI_ANY_ID,
7217                .subdevice    = PCI_ANY_ID,
7218                .driver_data  = SAA7134_BOARD_UNKNOWN,
7219        },{
7220                .vendor       = PCI_VENDOR_ID_PHILIPS,
7221                .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
7222                .subvendor    = PCI_ANY_ID,
7223                .subdevice    = PCI_ANY_ID,
7224                .driver_data  = SAA7134_BOARD_UNKNOWN,
7225        },{
7226                .vendor       = PCI_VENDOR_ID_PHILIPS,
7227                .device       = PCI_DEVICE_ID_PHILIPS_SAA7135,
7228                .subvendor    = PCI_ANY_ID,
7229                .subdevice    = PCI_ANY_ID,
7230                .driver_data  = SAA7134_BOARD_UNKNOWN,
7231        },{
7232                /* --- end of list --- */
7233        }
7234};
7235MODULE_DEVICE_TABLE(pci, saa7134_pci_tbl);
7236
7237/* ----------------------------------------------------------- */
7238/* flyvideo tweaks                                             */
7239
7240
7241static void board_flyvideo(struct saa7134_dev *dev)
7242{
7243        pr_warn("%s: there are different flyvideo cards with different tuners\n"
7244                "%s: out there, you might have to use the tuner=<nr> insmod\n"
7245                "%s: option to override the default value.\n",
7246                dev->name, dev->name, dev->name);
7247}
7248
7249static int saa7134_xc2028_callback(struct saa7134_dev *dev,
7250                                   int command, int arg)
7251{
7252        switch (command) {
7253        case XC2028_TUNER_RESET:
7254                saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x00008000, 0x00000000);
7255                saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x00008000, 0x00008000);
7256                switch (dev->board) {
7257                case SAA7134_BOARD_AVERMEDIA_CARDBUS_506:
7258                case SAA7134_BOARD_AVERMEDIA_M103:
7259                        saa7134_set_gpio(dev, 23, 0);
7260                        msleep(10);
7261                        saa7134_set_gpio(dev, 23, 1);
7262                break;
7263                case SAA7134_BOARD_AVERMEDIA_A16D:
7264                        saa7134_set_gpio(dev, 21, 0);
7265                        msleep(10);
7266                        saa7134_set_gpio(dev, 21, 1);
7267                break;
7268                case SAA7134_BOARD_AVERMEDIA_A700_HYBRID:
7269                        saa7134_set_gpio(dev, 18, 0);
7270                        msleep(10);
7271                        saa7134_set_gpio(dev, 18, 1);
7272                break;
7273                case SAA7134_BOARD_VIDEOMATE_T750:
7274                        saa7134_set_gpio(dev, 20, 0);
7275                        msleep(10);
7276                        saa7134_set_gpio(dev, 20, 1);
7277                break;
7278                }
7279                return 0;
7280        }
7281        return -EINVAL;
7282}
7283
7284static int saa7134_xc5000_callback(struct saa7134_dev *dev,
7285                                   int command, int arg)
7286{
7287        switch (dev->board) {
7288        case SAA7134_BOARD_BEHOLD_X7:
7289        case SAA7134_BOARD_BEHOLD_H7:
7290        case SAA7134_BOARD_BEHOLD_A7:
7291                if (command == XC5000_TUNER_RESET) {
7292                /* Down and UP pheripherial RESET pin for reset all chips */
7293                        saa_writeb(SAA7134_SPECIAL_MODE, 0x00);
7294                        msleep(10);
7295                        saa_writeb(SAA7134_SPECIAL_MODE, 0x01);
7296                        msleep(10);
7297                }
7298                break;
7299        default:
7300                saa_andorl(SAA7134_GPIO_GPMODE0 >> 2, 0x06e20000, 0x06e20000);
7301                saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x06a20000, 0x06a20000);
7302                saa_andorl(SAA7133_ANALOG_IO_SELECT >> 2, 0x02, 0x02);
7303                saa_andorl(SAA7134_ANALOG_IN_CTRL1 >> 2, 0x81, 0x81);
7304                saa_andorl(SAA7134_AUDIO_CLOCK0 >> 2, 0x03187de7, 0x03187de7);
7305                saa_andorl(SAA7134_AUDIO_PLL_CTRL >> 2, 0x03, 0x03);
7306                saa_andorl(SAA7134_AUDIO_CLOCKS_PER_FIELD0 >> 2,
7307                           0x0001e000, 0x0001e000);
7308                break;
7309        }
7310        return 0;
7311}
7312
7313static int saa7134_tda8290_827x_callback(struct saa7134_dev *dev,
7314                                         int command, int arg)
7315{
7316        u8 sync_control;
7317
7318        switch (command) {
7319        case 0: /* switch LNA gain through GPIO 22*/
7320                saa7134_set_gpio(dev, 22, arg) ;
7321                break;
7322        case 1: /* vsync output at GPIO22. 50 / 60Hz */
7323                saa_andorb(SAA7134_VIDEO_PORT_CTRL3, 0x80, 0x80);
7324                saa_andorb(SAA7134_VIDEO_PORT_CTRL6, 0x0f, 0x03);
7325                if (arg == 1)
7326                        sync_control = 11;
7327                else
7328                        sync_control = 17;
7329                saa_writeb(SAA7134_VGATE_START, sync_control);
7330                saa_writeb(SAA7134_VGATE_STOP, sync_control + 1);
7331                saa_andorb(SAA7134_MISC_VGATE_MSB, 0x03, 0x00);
7332                break;
7333        default:
7334                return -EINVAL;
7335        }
7336
7337        return 0;
7338}
7339
7340static inline int saa7134_tda18271_hvr11x0_toggle_agc(struct saa7134_dev *dev,
7341                                                      enum tda18271_mode mode)
7342{
7343        /* toggle AGC switch through GPIO 26 */
7344        switch (mode) {
7345        case TDA18271_ANALOG:
7346                saa7134_set_gpio(dev, 26, 0);
7347                break;
7348        case TDA18271_DIGITAL:
7349                saa7134_set_gpio(dev, 26, 1);
7350                break;
7351        default:
7352                return -EINVAL;
7353        }
7354        return 0;
7355}
7356
7357static inline int saa7134_kworld_sbtvd_toggle_agc(struct saa7134_dev *dev,
7358                                                  enum tda18271_mode mode)
7359{
7360        /* toggle AGC switch through GPIO 27 */
7361        switch (mode) {
7362        case TDA18271_ANALOG:
7363                saa_writel(SAA7134_GPIO_GPMODE0 >> 2, 0x4000);
7364                saa_writel(SAA7134_GPIO_GPSTATUS0 >> 2, 0x4000);
7365                msleep(20);
7366                break;
7367        case TDA18271_DIGITAL:
7368                saa_writel(SAA7134_GPIO_GPMODE0 >> 2, 0x14000);
7369                saa_writel(SAA7134_GPIO_GPSTATUS0 >> 2, 0x14000);
7370                msleep(20);
7371                saa_writel(SAA7134_GPIO_GPMODE0 >> 2, 0x54000);
7372                saa_writel(SAA7134_GPIO_GPSTATUS0 >> 2, 0x54000);
7373                msleep(30);
7374                break;
7375        default:
7376                return -EINVAL;
7377        }
7378        return 0;
7379}
7380
7381static int saa7134_kworld_pc150u_toggle_agc(struct saa7134_dev *dev,
7382                                            enum tda18271_mode mode)
7383{
7384        switch (mode) {
7385        case TDA18271_ANALOG:
7386                saa7134_set_gpio(dev, 18, 0);
7387                break;
7388        case TDA18271_DIGITAL:
7389                saa7134_set_gpio(dev, 18, 1);
7390                msleep(30);
7391                break;
7392        default:
7393                return -EINVAL;
7394        }
7395        return 0;
7396}
7397
7398static int saa7134_tda8290_18271_callback(struct saa7134_dev *dev,
7399                                          int command, int arg)
7400{
7401        int ret = 0;
7402
7403        switch (command) {
7404        case TDA18271_CALLBACK_CMD_AGC_ENABLE: /* 0 */
7405                switch (dev->board) {
7406                case SAA7134_BOARD_HAUPPAUGE_HVR1150:
7407                case SAA7134_BOARD_HAUPPAUGE_HVR1120:
7408                case SAA7134_BOARD_MAGICPRO_PROHDTV_PRO2:
7409                        ret = saa7134_tda18271_hvr11x0_toggle_agc(dev, arg);
7410                        break;
7411                case SAA7134_BOARD_KWORLD_PCI_SBTVD_FULLSEG:
7412                        ret = saa7134_kworld_sbtvd_toggle_agc(dev, arg);
7413                        break;
7414                case SAA7134_BOARD_KWORLD_PC150U:
7415                        ret = saa7134_kworld_pc150u_toggle_agc(dev, arg);
7416                        break;
7417                default:
7418                        break;
7419                }
7420                break;
7421        default:
7422                ret = -EINVAL;
7423                break;
7424        }
7425        return ret;
7426}
7427
7428static int saa7134_tda8290_callback(struct saa7134_dev *dev,
7429                                    int command, int arg)
7430{
7431        int ret;
7432
7433        switch (dev->board) {
7434        case SAA7134_BOARD_HAUPPAUGE_HVR1150:
7435        case SAA7134_BOARD_HAUPPAUGE_HVR1120:
7436        case SAA7134_BOARD_AVERMEDIA_M733A:
7437        case SAA7134_BOARD_KWORLD_PCI_SBTVD_FULLSEG:
7438        case SAA7134_BOARD_KWORLD_PC150U:
7439        case SAA7134_BOARD_MAGICPRO_PROHDTV_PRO2:
7440                /* tda8290 + tda18271 */
7441                ret = saa7134_tda8290_18271_callback(dev, command, arg);
7442                break;
7443        default:
7444                /* tda8290 + tda827x */
7445                ret = saa7134_tda8290_827x_callback(dev, command, arg);
7446                break;
7447        }
7448        return ret;
7449}
7450
7451int saa7134_tuner_callback(void *priv, int component, int command, int arg)
7452{
7453        struct saa7134_dev *dev = priv;
7454
7455        if (dev != NULL) {
7456                switch (dev->tuner_type) {
7457                case TUNER_PHILIPS_TDA8290:
7458                        return saa7134_tda8290_callback(dev, command, arg);
7459                case TUNER_XC2028:
7460                        return saa7134_xc2028_callback(dev, command, arg);
7461                case TUNER_XC5000:
7462                        return saa7134_xc5000_callback(dev, command, arg);
7463                }
7464        } else {
7465                pr_err("saa7134: Error - device struct undefined.\n");
7466                return -EINVAL;
7467        }
7468        return -EINVAL;
7469}
7470EXPORT_SYMBOL(saa7134_tuner_callback);
7471
7472/* ----------------------------------------------------------- */
7473
7474static void hauppauge_eeprom(struct saa7134_dev *dev, u8 *eeprom_data)
7475{
7476        struct tveeprom tv;
7477
7478        tveeprom_hauppauge_analog(&dev->i2c_client, &tv, eeprom_data);
7479
7480        /* Make sure we support the board model */
7481        switch (tv.model) {
7482        case 67019: /* WinTV-HVR1110 (Retail, IR Blaster, hybrid, FM, SVid/Comp, 3.5mm audio in) */
7483        case 67109: /* WinTV-HVR1000 (Retail, IR Receive, analog, no FM, SVid/Comp, 3.5mm audio in) */
7484        case 67201: /* WinTV-HVR1150 (Retail, IR Receive, hybrid, FM, SVid/Comp, 3.5mm audio in) */
7485        case 67301: /* WinTV-HVR1000 (Retail, IR Receive, analog, no FM, SVid/Comp, 3.5mm audio in) */
7486        case 67209: /* WinTV-HVR1110 (Retail, IR Receive, hybrid, FM, SVid/Comp, 3.5mm audio in) */
7487        case 67559: /* WinTV-HVR1110 (OEM, no IR, hybrid, FM, SVid/Comp, RCA aud) */
7488        case 67569: /* WinTV-HVR1110 (OEM, no IR, hybrid, FM) */
7489        case 67579: /* WinTV-HVR1110 (OEM, no IR, hybrid, no FM) */
7490        case 67589: /* WinTV-HVR1110 (OEM, no IR, hybrid, no FM, SVid/Comp, RCA aud) */
7491        case 67599: /* WinTV-HVR1110 (OEM, no IR, hybrid, no FM, SVid/Comp, RCA aud) */
7492        case 67651: /* WinTV-HVR1150 (OEM, no IR, hybrid, FM, SVid/Comp, RCA aud) */
7493        case 67659: /* WinTV-HVR1110 (OEM, no IR, hybrid, FM, SVid/Comp, RCA aud) */
7494                break;
7495        default:
7496                pr_warn("%s: warning: "
7497                       "unknown hauppauge model #%d\n", dev->name, tv.model);
7498                break;
7499        }
7500
7501        pr_info("%s: hauppauge eeprom: model=%d\n",
7502               dev->name, tv.model);
7503}
7504
7505/* ----------------------------------------------------------- */
7506
7507int saa7134_board_init1(struct saa7134_dev *dev)
7508{
7509        /* Always print gpio, often manufacturers encode tuner type and other info. */
7510        saa_writel(SAA7134_GPIO_GPMODE0 >> 2, 0);
7511        dev->gpio_value = saa_readl(SAA7134_GPIO_GPSTATUS0 >> 2);
7512        pr_info("%s: board init: gpio is %x\n", dev->name, dev->gpio_value);
7513
7514        switch (dev->board) {
7515        case SAA7134_BOARD_FLYVIDEO2000:
7516        case SAA7134_BOARD_FLYVIDEO3000:
7517        case SAA7134_BOARD_FLYVIDEO3000_NTSC:
7518                dev->has_remote = SAA7134_REMOTE_GPIO;
7519                board_flyvideo(dev);
7520                break;
7521        case SAA7134_BOARD_FLYTVPLATINUM_MINI2:
7522        case SAA7134_BOARD_FLYTVPLATINUM_FM:
7523        case SAA7134_BOARD_CINERGY400:
7524        case SAA7134_BOARD_CINERGY600:
7525        case SAA7134_BOARD_CINERGY600_MK3:
7526        case SAA7134_BOARD_ECS_TVP3XP:
7527        case SAA7134_BOARD_ECS_TVP3XP_4CB5:
7528        case SAA7134_BOARD_ECS_TVP3XP_4CB6:
7529        case SAA7134_BOARD_MD2819:
7530        case SAA7134_BOARD_KWORLD_VSTREAM_XPERT:
7531        case SAA7134_BOARD_KWORLD_XPERT:
7532        case SAA7134_BOARD_AVERMEDIA_STUDIO_305:
7533        case SAA7134_BOARD_AVERMEDIA_305:
7534        case SAA7134_BOARD_AVERMEDIA_STUDIO_505:
7535        case SAA7134_BOARD_AVERMEDIA_505:
7536        case SAA7134_BOARD_AVERMEDIA_STUDIO_307:
7537        case SAA7134_BOARD_AVERMEDIA_307:
7538        case SAA7134_BOARD_AVERMEDIA_STUDIO_507:
7539        case SAA7134_BOARD_AVERMEDIA_GO_007_FM:
7540        case SAA7134_BOARD_AVERMEDIA_777:
7541        case SAA7134_BOARD_AVERMEDIA_M135A:
7542/*      case SAA7134_BOARD_SABRENT_SBTTVFM:  */ /* not finished yet */
7543        case SAA7134_BOARD_VIDEOMATE_TV_PVR:
7544        case SAA7134_BOARD_VIDEOMATE_GOLD_PLUS:
7545        case SAA7134_BOARD_VIDEOMATE_TV_GOLD_PLUSII:
7546        case SAA7134_BOARD_VIDEOMATE_M1F:
7547        case SAA7134_BOARD_VIDEOMATE_DVBT_300:
7548        case SAA7134_BOARD_VIDEOMATE_DVBT_200:
7549        case SAA7134_BOARD_VIDEOMATE_DVBT_200A:
7550        case SAA7134_BOARD_MANLI_MTV001:
7551        case SAA7134_BOARD_MANLI_MTV002:
7552        case SAA7134_BOARD_BEHOLD_409FM:
7553        case SAA7134_BOARD_AVACSSMARTTV:
7554        case SAA7134_BOARD_GOTVIEW_7135:
7555        case SAA7134_BOARD_KWORLD_TERMINATOR:
7556        case SAA7134_BOARD_SEDNA_PC_TV_CARDBUS:
7557        case SAA7134_BOARD_FLYDVBT_LR301:
7558        case SAA7134_BOARD_ASUSTeK_PS3_100:
7559        case SAA7134_BOARD_ASUSTeK_P7131_DUAL:
7560        case SAA7134_BOARD_ASUSTeK_P7131_HYBRID_LNA:
7561        case SAA7134_BOARD_ASUSTeK_P7131_ANALOG:
7562        case SAA7134_BOARD_FLYDVBTDUO:
7563        case SAA7134_BOARD_PROTEUS_2309:
7564        case SAA7134_BOARD_AVERMEDIA_A16AR:
7565        case SAA7134_BOARD_ENCORE_ENLTV:
7566        case SAA7134_BOARD_ENCORE_ENLTV_FM:
7567        case SAA7134_BOARD_ENCORE_ENLTV_FM53:
7568        case SAA7134_BOARD_ENCORE_ENLTV_FM3:
7569        case SAA7134_BOARD_10MOONSTVMASTER3:
7570        case SAA7134_BOARD_BEHOLD_401:
7571        case SAA7134_BOARD_BEHOLD_403:
7572        case SAA7134_BOARD_BEHOLD_403FM:
7573        case SAA7134_BOARD_BEHOLD_405:
7574        case SAA7134_BOARD_BEHOLD_405FM:
7575        case SAA7134_BOARD_BEHOLD_407:
7576        case SAA7134_BOARD_BEHOLD_407FM:
7577        case SAA7134_BOARD_BEHOLD_409:
7578        case SAA7134_BOARD_BEHOLD_505FM:
7579        case SAA7134_BOARD_BEHOLD_505RDS_MK5:
7580        case SAA7134_BOARD_BEHOLD_505RDS_MK3:
7581        case SAA7134_BOARD_BEHOLD_507_9FM:
7582        case SAA7134_BOARD_BEHOLD_507RDS_MK3:
7583        case SAA7134_BOARD_BEHOLD_507RDS_MK5:
7584        case SAA7134_BOARD_GENIUS_TVGO_A11MCE:
7585        case SAA7134_BOARD_REAL_ANGEL_220:
7586        case SAA7134_BOARD_KWORLD_PLUS_TV_ANALOG:
7587        case SAA7134_BOARD_AVERMEDIA_GO_007_FM_PLUS:
7588        case SAA7134_BOARD_ROVERMEDIA_LINK_PRO_FM:
7589        case SAA7134_BOARD_LEADTEK_WINFAST_DTV1000S:
7590        case SAA7134_BOARD_LEADTEK_WINFAST_TV2100_FM:
7591                dev->has_remote = SAA7134_REMOTE_GPIO;
7592                break;
7593        case SAA7134_BOARD_FLYDVBS_LR300:
7594                saa_writeb(SAA7134_GPIO_GPMODE3, 0x80);
7595                saa_writeb(SAA7134_GPIO_GPSTATUS2, 0x40);
7596                dev->has_remote = SAA7134_REMOTE_GPIO;
7597                break;
7598        case SAA7134_BOARD_MD5044:
7599                pr_warn("%s: seems there are two different versions of the MD5044\n"
7600                        "%s: (with the same ID) out there.  If sound doesn't work for\n"
7601                        "%s: you try the audio_clock_override=0x200000 insmod option.\n",
7602                        dev->name, dev->name, dev->name);
7603                break;
7604        case SAA7134_BOARD_CINERGY400_CARDBUS:
7605                /* power-up tuner chip */
7606                saa_andorl(SAA7134_GPIO_GPMODE0 >> 2,   0x00040000, 0x00040000);
7607                saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x00040000, 0x00000000);
7608                break;
7609        case SAA7134_BOARD_PINNACLE_300I_DVBT_PAL:
7610                /* this turns the remote control chip off to work around a bug in it */
7611                saa_writeb(SAA7134_GPIO_GPMODE1, 0x80);
7612                saa_writeb(SAA7134_GPIO_GPSTATUS1, 0x80);
7613                break;
7614        case SAA7134_BOARD_MONSTERTV_MOBILE:
7615                /* power-up tuner chip */
7616                saa_andorl(SAA7134_GPIO_GPMODE0 >> 2,   0x00040000, 0x00040000);
7617                saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x00040000, 0x00000004);
7618                break;
7619        case SAA7134_BOARD_FLYDVBT_DUO_CARDBUS:
7620                /* turn the fan on */
7621                saa_writeb(SAA7134_GPIO_GPMODE3, 0x08);
7622                saa_writeb(SAA7134_GPIO_GPSTATUS3, 0x06);
7623                break;
7624        case SAA7134_BOARD_ADS_DUO_CARDBUS_PTV331:
7625        case SAA7134_BOARD_FLYDVBT_HYBRID_CARDBUS:
7626                saa_andorl(SAA7134_GPIO_GPMODE0 >> 2, 0x08000000, 0x08000000);
7627                saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x08000000, 0x00000000);
7628                break;
7629        case SAA7134_BOARD_AVERMEDIA_CARDBUS:
7630        case SAA7134_BOARD_AVERMEDIA_M115:
7631                /* power-down tuner chip */
7632                saa_andorl(SAA7134_GPIO_GPMODE0 >> 2,   0xffffffff, 0);
7633                saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0xffffffff, 0);
7634                msleep(10);
7635                /* power-up tuner chip */
7636                saa_andorl(SAA7134_GPIO_GPMODE0 >> 2,   0xffffffff, 0xffffffff);
7637                saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0xffffffff, 0xffffffff);
7638                msleep(10);
7639                break;
7640        case SAA7134_BOARD_AVERMEDIA_CARDBUS_501:
7641                /* power-down tuner chip */
7642                saa_andorl(SAA7134_GPIO_GPMODE0 >> 2,   0x08400000, 0x08400000);
7643                saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x08400000, 0);
7644                msleep(10);
7645                saa_andorl(SAA7134_GPIO_GPMODE0 >> 2,   0x08400000, 0x08400000);
7646                saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x08400000, 0x08400000);
7647                msleep(10);
7648                dev->has_remote = SAA7134_REMOTE_I2C;
7649                break;
7650        case SAA7134_BOARD_AVERMEDIA_CARDBUS_506:
7651                saa7134_set_gpio(dev, 23, 0);
7652                msleep(10);
7653                saa7134_set_gpio(dev, 23, 1);
7654                dev->has_remote = SAA7134_REMOTE_I2C;
7655                break;
7656        case SAA7134_BOARD_AVERMEDIA_M103:
7657                saa7134_set_gpio(dev, 23, 0);
7658                msleep(10);
7659                saa7134_set_gpio(dev, 23, 1);
7660                break;
7661        case SAA7134_BOARD_AVERMEDIA_A16D:
7662                saa7134_set_gpio(dev, 21, 0);
7663                msleep(10);
7664                saa7134_set_gpio(dev, 21, 1);
7665                msleep(1);
7666                dev->has_remote = SAA7134_REMOTE_GPIO;
7667                break;
7668        case SAA7134_BOARD_BEHOLD_COLUMBUS_TVFM:
7669                /* power-down tuner chip */
7670                saa_andorl(SAA7134_GPIO_GPMODE0 >> 2,   0x000A8004, 0x000A8004);
7671                saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x000A8004, 0);
7672                msleep(10);
7673                /* power-up tuner chip */
7674                saa_andorl(SAA7134_GPIO_GPMODE0 >> 2,   0x000A8004, 0x000A8004);
7675                saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x000A8004, 0x000A8004);
7676                msleep(10);
7677                /* remote via GPIO */
7678                dev->has_remote = SAA7134_REMOTE_GPIO;
7679                break;
7680        case SAA7134_BOARD_RTD_VFG7350:
7681
7682                /*
7683                 * Make sure Production Test Register at offset 0x1D1 is cleared
7684                 * to take chip out of test mode.  Clearing bit 4 (TST_EN_AOUT)
7685                 * prevents pin 105 from remaining low; keeping pin 105 low
7686                 * continually resets the SAA6752 chip.
7687                 */
7688
7689                saa_writeb (SAA7134_PRODUCTION_TEST_MODE, 0x00);
7690                break;
7691        case SAA7134_BOARD_HAUPPAUGE_HVR1150:
7692        case SAA7134_BOARD_HAUPPAUGE_HVR1120:
7693                dev->has_remote = SAA7134_REMOTE_GPIO;
7694                /* GPIO 26 high for digital, low for analog */
7695                saa7134_set_gpio(dev, 26, 0);
7696                msleep(1);
7697
7698                saa7134_set_gpio(dev, 22, 0);
7699                msleep(10);
7700                saa7134_set_gpio(dev, 22, 1);
7701                break;
7702        /* i2c remotes */
7703        case SAA7134_BOARD_PINNACLE_PCTV_110i:
7704        case SAA7134_BOARD_PINNACLE_PCTV_310i:
7705        case SAA7134_BOARD_UPMOST_PURPLE_TV:
7706        case SAA7134_BOARD_MSI_TVATANYWHERE_PLUS:
7707        case SAA7134_BOARD_HAUPPAUGE_HVR1110:
7708        case SAA7134_BOARD_BEHOLD_607FM_MK3:
7709        case SAA7134_BOARD_BEHOLD_607FM_MK5:
7710        case SAA7134_BOARD_BEHOLD_609FM_MK3:
7711        case SAA7134_BOARD_BEHOLD_609FM_MK5:
7712        case SAA7134_BOARD_BEHOLD_607RDS_MK3:
7713        case SAA7134_BOARD_BEHOLD_607RDS_MK5:
7714        case SAA7134_BOARD_BEHOLD_609RDS_MK3:
7715        case SAA7134_BOARD_BEHOLD_609RDS_MK5:
7716        case SAA7134_BOARD_BEHOLD_M6:
7717        case SAA7134_BOARD_BEHOLD_M63:
7718        case SAA7134_BOARD_BEHOLD_M6_EXTRA:
7719        case SAA7134_BOARD_BEHOLD_H6:
7720        case SAA7134_BOARD_BEHOLD_X7:
7721        case SAA7134_BOARD_BEHOLD_H7:
7722        case SAA7134_BOARD_BEHOLD_A7:
7723        case SAA7134_BOARD_KWORLD_PC150U:
7724                dev->has_remote = SAA7134_REMOTE_I2C;
7725                break;
7726        case SAA7134_BOARD_AVERMEDIA_A169_B:
7727                pr_warn("%s: %s: dual saa713x broadcast decoders\n"
7728                        "%s: Sorry, none of the inputs to this chip are supported yet.\n"
7729                        "%s: Dual decoder functionality is disabled for now, use the other chip.\n",
7730                        dev->name, card(dev).name, dev->name, dev->name);
7731                break;
7732        case SAA7134_BOARD_AVERMEDIA_M102:
7733                /* enable tuner */
7734               dev->has_remote = SAA7134_REMOTE_GPIO;
7735                saa_andorl(SAA7134_GPIO_GPMODE0 >> 2,   0x8c040007, 0x8c040007);
7736                saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x0c0007cd, 0x0c0007cd);
7737                break;
7738        case SAA7134_BOARD_AVERMEDIA_A700_HYBRID:
7739        case SAA7134_BOARD_AVERMEDIA_A700_PRO:
7740                /* write windows gpio values */
7741                saa_andorl(SAA7134_GPIO_GPMODE0 >> 2,   0x80040100, 0x80040100);
7742                saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x80040100, 0x00040100);
7743                break;
7744        case SAA7134_BOARD_AVERMEDIA_A706:
7745                /* radio antenna select: tristate both as in Windows driver */
7746                saa7134_set_gpio(dev, 12, 3);   /* TV antenna */
7747                saa7134_set_gpio(dev, 13, 3);   /* FM antenna */
7748                dev->has_remote = SAA7134_REMOTE_I2C;
7749                /*
7750                 * Disable CE5039 DVB-S tuner now (SLEEP pin high) to prevent
7751                 * it from interfering with analog tuner detection
7752                 */
7753                saa7134_set_gpio(dev, 23, 1);
7754                break;
7755        case SAA7134_BOARD_VIDEOMATE_S350:
7756                dev->has_remote = SAA7134_REMOTE_GPIO;
7757                saa_andorl(SAA7134_GPIO_GPMODE0 >> 2,   0x0000C000, 0x0000C000);
7758                saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x0000C000, 0x0000C000);
7759                break;
7760        case SAA7134_BOARD_AVERMEDIA_M733A:
7761                saa7134_set_gpio(dev, 1, 1);
7762                msleep(10);
7763                saa7134_set_gpio(dev, 1, 0);
7764                msleep(10);
7765                saa7134_set_gpio(dev, 1, 1);
7766                dev->has_remote = SAA7134_REMOTE_GPIO;
7767                break;
7768        case SAA7134_BOARD_MAGICPRO_PROHDTV_PRO2:
7769                /* enable LGS-8G75 */
7770                saa_andorl(SAA7134_GPIO_GPMODE0 >> 2,   0x0e050000, 0x0c050000);
7771                saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x0e050000, 0x0c050000);
7772                break;
7773        case SAA7134_BOARD_VIDEOMATE_T750:
7774                /* enable the analog tuner */
7775                saa_andorl(SAA7134_GPIO_GPMODE0 >> 2,   0x00008000, 0x00008000);
7776                saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x00008000, 0x00008000);
7777                break;
7778        }
7779        return 0;
7780}
7781
7782static void saa7134_tuner_setup(struct saa7134_dev *dev)
7783{
7784        struct tuner_setup tun_setup;
7785        unsigned int mode_mask = T_RADIO | T_ANALOG_TV;
7786
7787        memset(&tun_setup, 0, sizeof(tun_setup));
7788        tun_setup.tuner_callback = saa7134_tuner_callback;
7789
7790        if (saa7134_boards[dev->board].radio_type != UNSET) {
7791                tun_setup.type = saa7134_boards[dev->board].radio_type;
7792                tun_setup.addr = saa7134_boards[dev->board].radio_addr;
7793
7794                tun_setup.mode_mask = T_RADIO;
7795
7796                saa_call_all(dev, tuner, s_type_addr, &tun_setup);
7797                mode_mask &= ~T_RADIO;
7798        }
7799
7800        if ((dev->tuner_type != TUNER_ABSENT) && (dev->tuner_type != UNSET)) {
7801                tun_setup.type = dev->tuner_type;
7802                tun_setup.addr = dev->tuner_addr;
7803                tun_setup.config = &saa7134_boards[dev->board].tda829x_conf;
7804                tun_setup.tuner_callback = saa7134_tuner_callback;
7805
7806                tun_setup.mode_mask = mode_mask;
7807
7808                saa_call_all(dev, tuner, s_type_addr, &tun_setup);
7809        }
7810
7811        if (dev->tda9887_conf) {
7812                struct v4l2_priv_tun_config tda9887_cfg;
7813
7814                tda9887_cfg.tuner = TUNER_TDA9887;
7815                tda9887_cfg.priv = &dev->tda9887_conf;
7816
7817                saa_call_all(dev, tuner, s_config, &tda9887_cfg);
7818        }
7819
7820        if (dev->tuner_type == TUNER_XC2028) {
7821                struct v4l2_priv_tun_config  xc2028_cfg;
7822                struct xc2028_ctrl           ctl;
7823
7824                memset(&xc2028_cfg, 0, sizeof(xc2028_cfg));
7825                memset(&ctl, 0, sizeof(ctl));
7826
7827                ctl.fname   = XC2028_DEFAULT_FIRMWARE;
7828                ctl.max_len = 64;
7829
7830                switch (dev->board) {
7831                case SAA7134_BOARD_AVERMEDIA_A16D:
7832                case SAA7134_BOARD_AVERMEDIA_CARDBUS_506:
7833                case SAA7134_BOARD_AVERMEDIA_M103:
7834                case SAA7134_BOARD_AVERMEDIA_A700_HYBRID:
7835                        ctl.demod = XC3028_FE_ZARLINK456;
7836                        break;
7837                default:
7838                        ctl.demod = XC3028_FE_OREN538;
7839                        ctl.mts = 1;
7840                }
7841
7842                xc2028_cfg.tuner = TUNER_XC2028;
7843                xc2028_cfg.priv  = &ctl;
7844
7845                saa_call_all(dev, tuner, s_config, &xc2028_cfg);
7846        }
7847}
7848
7849/* stuff which needs working i2c */
7850int saa7134_board_init2(struct saa7134_dev *dev)
7851{
7852        unsigned char buf;
7853        int board;
7854
7855        /* Put here the code that enables the chips that are needed
7856           for analog mode and doesn't depend on the tuner attachment.
7857           It is also a good idea to get tuner type from eeprom, etc before
7858           initializing tuner, since we can avoid loading tuner driver
7859           on devices that has TUNER_ABSENT
7860         */
7861        switch (dev->board) {
7862        case SAA7134_BOARD_BMK_MPEX_NOTUNER:
7863        case SAA7134_BOARD_BMK_MPEX_TUNER:
7864                /* Checks if the device has a tuner at 0x60 addr
7865                   If the device doesn't have a tuner, TUNER_ABSENT
7866                   will be used at tuner_type, avoiding loading tuner
7867                   without needing it
7868                 */
7869                dev->i2c_client.addr = 0x60;
7870                board = (i2c_master_recv(&dev->i2c_client, &buf, 0) < 0)
7871                        ? SAA7134_BOARD_BMK_MPEX_NOTUNER
7872                        : SAA7134_BOARD_BMK_MPEX_TUNER;
7873                if (board == dev->board)
7874                        break;
7875                dev->board = board;
7876                pr_warn("%s: board type fixup: %s\n", dev->name,
7877                saa7134_boards[dev->board].name);
7878                dev->tuner_type = saa7134_boards[dev->board].tuner_type;
7879
7880                break;
7881        case SAA7134_BOARD_MD7134:
7882        {
7883                u8 subaddr;
7884                u8 data[3], data1[] = { 0x09, 0x9f, 0x86, 0x11};
7885                int ret, tuner_t;
7886                struct i2c_msg msg[] = {{.addr = 0x50, .flags = 0, .buf = &subaddr, .len = 1},
7887                                        {.addr = 0x50, .flags = I2C_M_RD, .buf = data, .len = 3}},
7888                                msg1 = {.addr = 0x61, .flags = 0, .buf = data1, .len = sizeof(data1)};
7889
7890                subaddr= 0x14;
7891                tuner_t = 0;
7892
7893                /* Retrieve device data from eeprom, checking for the
7894                   proper tuner_type.
7895                 */
7896                ret = i2c_transfer(&dev->i2c_adap, msg, 2);
7897                if (ret != 2) {
7898                        pr_err("EEPROM read failure\n");
7899                } else if ((data[0] != 0) && (data[0] != 0xff)) {
7900                        /* old config structure */
7901                        subaddr = data[0] + 2;
7902                        msg[1].len = 2;
7903                        i2c_transfer(&dev->i2c_adap, msg, 2);
7904                        tuner_t = (data[0] << 8) + data[1];
7905                        switch (tuner_t){
7906                        case 0x0103:
7907                                dev->tuner_type = TUNER_PHILIPS_PAL;
7908                                break;
7909                        case 0x010C:
7910                                dev->tuner_type = TUNER_PHILIPS_FM1216ME_MK3;
7911                                break;
7912                        default:
7913                                pr_err("%s Can't determine tuner type %x from EEPROM\n",
7914                                       dev->name, tuner_t);
7915                        }
7916                } else if ((data[1] != 0) && (data[1] != 0xff)) {
7917                        /* new config structure */
7918                        subaddr = data[1] + 1;
7919                        msg[1].len = 1;
7920                        i2c_transfer(&dev->i2c_adap, msg, 2);
7921                        subaddr = data[0] + 1;
7922                        msg[1].len = 2;
7923                        i2c_transfer(&dev->i2c_adap, msg, 2);
7924                        tuner_t = (data[1] << 8) + data[0];
7925                        switch (tuner_t) {
7926                        case 0x0005:
7927                                dev->tuner_type = TUNER_PHILIPS_FM1216ME_MK3;
7928                                break;
7929                        case 0x001d:
7930                                dev->tuner_type = TUNER_PHILIPS_FMD1216ME_MK3;
7931                                pr_info("%s Board has DVB-T\n",
7932                                       dev->name);
7933                                break;
7934                        default:
7935                                pr_err("%s Can't determine tuner type %x from EEPROM\n",
7936                                       dev->name, tuner_t);
7937                        }
7938                } else {
7939                        pr_err("%s unexpected config structure\n", dev->name);
7940                }
7941
7942                pr_info("%s Tuner type is %d\n", dev->name, dev->tuner_type);
7943
7944                /* The tuner TUNER_PHILIPS_FMD1216ME_MK3 after hardware    */
7945                /* start has disabled IF and enabled DVB-T. When saa7134   */
7946                /* scan I2C devices it will not detect IF tda9887 and can`t*/
7947                /* watch TV without software reboot. To solve this problem */
7948                /* switch the tuner to analog TV mode manually.            */
7949                if (dev->tuner_type == TUNER_PHILIPS_FMD1216ME_MK3) {
7950                        if (i2c_transfer(&dev->i2c_adap, &msg1, 1) != 1)
7951                                printk(KERN_WARNING "%s: Unable to enable IF of the tuner.\n", dev->name);
7952                }
7953                break;
7954        }
7955        case SAA7134_BOARD_PHILIPS_EUROPA:
7956                if (dev->autodetected && (dev->eedata[0x41] == 0x1c)) {
7957                        /* Reconfigure board as Snake reference design */
7958                        dev->board = SAA7134_BOARD_PHILIPS_SNAKE;
7959                        dev->tuner_type = saa7134_boards[dev->board].tuner_type;
7960                        pr_info("%s: Reconfigured board as %s\n",
7961                                dev->name, saa7134_boards[dev->board].name);
7962                        break;
7963                }
7964                /* break intentionally omitted */
7965        case SAA7134_BOARD_VIDEOMATE_DVBT_300:
7966        case SAA7134_BOARD_ASUS_EUROPA2_HYBRID:
7967        case SAA7134_BOARD_ASUS_EUROPA_HYBRID:
7968        case SAA7134_BOARD_TECHNOTREND_BUDGET_T3000:
7969        {
7970
7971                /* The Philips EUROPA based hybrid boards have the tuner
7972                   connected through the channel decoder. We have to make it
7973                   transparent to find it
7974                 */
7975                u8 data[] = { 0x07, 0x02};
7976                struct i2c_msg msg = {.addr=0x08, .flags=0, .buf=data, .len = sizeof(data)};
7977                i2c_transfer(&dev->i2c_adap, &msg, 1);
7978
7979                break;
7980        }
7981        case SAA7134_BOARD_PHILIPS_TIGER:
7982        case SAA7134_BOARD_PHILIPS_TIGER_S:
7983        {
7984                u8 data[] = { 0x3c, 0x33, 0x60};
7985                struct i2c_msg msg = {.addr=0x08, .flags=0, .buf=data, .len = sizeof(data)};
7986                if (dev->autodetected && (dev->eedata[0x49] == 0x50)) {
7987                        dev->board = SAA7134_BOARD_PHILIPS_TIGER_S;
7988                        pr_info("%s: Reconfigured board as %s\n",
7989                                dev->name, saa7134_boards[dev->board].name);
7990                }
7991                if (dev->board == SAA7134_BOARD_PHILIPS_TIGER_S) {
7992                        dev->tuner_type = TUNER_PHILIPS_TDA8290;
7993
7994                        data[2] = 0x68;
7995                        i2c_transfer(&dev->i2c_adap, &msg, 1);
7996                        break;
7997                }
7998                i2c_transfer(&dev->i2c_adap, &msg, 1);
7999                break;
8000        }
8001        case SAA7134_BOARD_ASUSTeK_TVFM7135:
8002        /* The card below is detected as card=53, but is different */
8003               if (dev->autodetected && (dev->eedata[0x27] == 0x03)) {
8004                        dev->board = SAA7134_BOARD_ASUSTeK_P7131_ANALOG;
8005                        pr_info("%s: P7131 analog only, using entry of %s\n",
8006                                dev->name, saa7134_boards[dev->board].name);
8007
8008                        /*
8009                         * IR init has already happened for other cards, so
8010                         * we have to catch up.
8011                         */
8012                        dev->has_remote = SAA7134_REMOTE_GPIO;
8013                        saa7134_input_init1(dev);
8014               }
8015               break;
8016        case SAA7134_BOARD_HAUPPAUGE_HVR1150:
8017        case SAA7134_BOARD_HAUPPAUGE_HVR1120:
8018                hauppauge_eeprom(dev, dev->eedata+0x80);
8019                break;
8020        case SAA7134_BOARD_HAUPPAUGE_HVR1110:
8021                hauppauge_eeprom(dev, dev->eedata+0x80);
8022                /* break intentionally omitted */
8023        case SAA7134_BOARD_PINNACLE_PCTV_310i:
8024        case SAA7134_BOARD_KWORLD_DVBT_210:
8025        case SAA7134_BOARD_TEVION_DVBT_220RF:
8026        case SAA7134_BOARD_ASUSTeK_TIGER:
8027        case SAA7134_BOARD_ASUSTeK_P7131_DUAL:
8028        case SAA7134_BOARD_ASUSTeK_P7131_HYBRID_LNA:
8029        case SAA7134_BOARD_MEDION_MD8800_QUADRO:
8030        case SAA7134_BOARD_AVERMEDIA_SUPER_007:
8031        case SAA7134_BOARD_TWINHAN_DTV_DVB_3056:
8032        case SAA7134_BOARD_CREATIX_CTX953:
8033        {
8034                /* this is a hybrid board, initialize to analog mode
8035                 * and configure firmware eeprom address
8036                 */
8037                u8 data[] = { 0x3c, 0x33, 0x60};
8038                struct i2c_msg msg = {.addr=0x08, .flags=0, .buf=data, .len = sizeof(data)};
8039                i2c_transfer(&dev->i2c_adap, &msg, 1);
8040                break;
8041        }
8042        case SAA7134_BOARD_ASUSTeK_TIGER_3IN1:
8043        {
8044                u8 data[] = { 0x3c, 0x33, 0x60};
8045                struct i2c_msg msg = {.addr = 0x0b, .flags = 0, .buf = data,
8046                                                        .len = sizeof(data)};
8047                i2c_transfer(&dev->i2c_adap, &msg, 1);
8048                break;
8049        }
8050        case SAA7134_BOARD_ASUSTeK_PS3_100:
8051        {
8052                u8 data[] = { 0x3c, 0x33, 0x60};
8053                struct i2c_msg msg = {.addr = 0x0b, .flags = 0, .buf = data,
8054                                                       .len = sizeof(data)};
8055                i2c_transfer(&dev->i2c_adap, &msg, 1);
8056                break;
8057        }
8058        case SAA7134_BOARD_FLYDVB_TRIO:
8059        {
8060                u8 temp = 0;
8061                int rc;
8062                u8 data[] = { 0x3c, 0x33, 0x62};
8063                struct i2c_msg msg = {.addr=0x09, .flags=0, .buf=data, .len = sizeof(data)};
8064                i2c_transfer(&dev->i2c_adap, &msg, 1);
8065
8066                /*
8067                 * send weak up message to pic16C505 chip
8068                 * @ LifeView FlyDVB Trio
8069                 */
8070                msg.buf = &temp;
8071                msg.addr = 0x0b;
8072                msg.len = 1;
8073                if (1 != i2c_transfer(&dev->i2c_adap, &msg, 1)) {
8074                        pr_warn("%s: send wake up byte to pic16C505"
8075                                        "(IR chip) failed\n", dev->name);
8076                } else {
8077                        msg.flags = I2C_M_RD;
8078                        rc = i2c_transfer(&dev->i2c_adap, &msg, 1);
8079                        pr_info("%s: probe IR chip @ i2c 0x%02x: %s\n",
8080                                   dev->name, msg.addr,
8081                                   (1 == rc) ? "yes" : "no");
8082                        if (rc == 1)
8083                                dev->has_remote = SAA7134_REMOTE_I2C;
8084                }
8085                break;
8086        }
8087        case SAA7134_BOARD_ADS_DUO_CARDBUS_PTV331:
8088        case SAA7134_BOARD_FLYDVBT_HYBRID_CARDBUS:
8089        {
8090                /* initialize analog mode  */
8091                u8 data[] = { 0x3c, 0x33, 0x6a};
8092                struct i2c_msg msg = {.addr=0x08, .flags=0, .buf=data, .len = sizeof(data)};
8093                i2c_transfer(&dev->i2c_adap, &msg, 1);
8094                break;
8095        }
8096        case SAA7134_BOARD_CINERGY_HT_PCMCIA:
8097        case SAA7134_BOARD_CINERGY_HT_PCI:
8098        {
8099                /* initialize analog mode */
8100                u8 data[] = { 0x3c, 0x33, 0x68};
8101                struct i2c_msg msg = {.addr=0x08, .flags=0, .buf=data, .len = sizeof(data)};
8102                i2c_transfer(&dev->i2c_adap, &msg, 1);
8103                break;
8104        }
8105        case SAA7134_BOARD_VIDEOMATE_DVBT_200:
8106        case SAA7134_BOARD_VIDEOMATE_DVBT_200A:
8107                /* The T200 and the T200A share the same pci id.  Consequently,
8108                 * we are going to query eeprom to try to find out which one we
8109                 * are actually looking at. */
8110
8111                /* Don't do this if the board was specifically selected with an
8112                 * insmod option or if we have the default configuration T200*/
8113                if (!dev->autodetected || (dev->eedata[0x41] == 0xd0))
8114                        break;
8115                if (dev->eedata[0x41] == 0x02) {
8116                        /* Reconfigure board  as T200A */
8117                        dev->board = SAA7134_BOARD_VIDEOMATE_DVBT_200A;
8118                        dev->tuner_type   = saa7134_boards[dev->board].tuner_type;
8119                        dev->tda9887_conf = saa7134_boards[dev->board].tda9887_conf;
8120                        pr_info("%s: Reconfigured board as %s\n",
8121                                dev->name, saa7134_boards[dev->board].name);
8122                } else {
8123                        pr_warn("%s: Unexpected tuner type info: %x in eeprom\n",
8124                                dev->name, dev->eedata[0x41]);
8125                        break;
8126                }
8127                break;
8128        case SAA7134_BOARD_ADS_INSTANT_HDTV_PCI:
8129        case SAA7134_BOARD_KWORLD_ATSC110:
8130        {
8131                struct i2c_msg msg = { .addr = 0x0a, .flags = 0 };
8132                int i;
8133                static u8 buffer[][2] = {
8134                        { 0x10, 0x12 },
8135                        { 0x13, 0x04 },
8136                        { 0x16, 0x00 },
8137                        { 0x14, 0x04 },
8138                        { 0x17, 0x00 },
8139                };
8140
8141                for (i = 0; i < ARRAY_SIZE(buffer); i++) {
8142                        msg.buf = &buffer[i][0];
8143                        msg.len = ARRAY_SIZE(buffer[0]);
8144                        if (i2c_transfer(&dev->i2c_adap, &msg, 1) != 1)
8145                                pr_warn("%s: Unable to enable tuner(%i).\n",
8146                                        dev->name, i);
8147                }
8148                break;
8149        }
8150        case SAA7134_BOARD_BEHOLD_H6:
8151        {
8152                u8 data[] = { 0x09, 0x9f, 0x86, 0x11};
8153                struct i2c_msg msg = {.addr = 0x61, .flags = 0, .buf = data,
8154                                                        .len = sizeof(data)};
8155
8156                /* The tuner TUNER_PHILIPS_FMD1216MEX_MK3 after hardware    */
8157                /* start has disabled IF and enabled DVB-T. When saa7134    */
8158                /* scan I2C devices it not detect IF tda9887 and can`t      */
8159                /* watch TV without software reboot. For solve this problem */
8160                /* switch the tuner to analog TV mode manually.             */
8161                if (i2c_transfer(&dev->i2c_adap, &msg, 1) != 1)
8162                        pr_warn("%s: Unable to enable IF of the tuner.\n",
8163                                dev->name);
8164                break;
8165        }
8166        case SAA7134_BOARD_KWORLD_PCI_SBTVD_FULLSEG:
8167                saa_writel(SAA7134_GPIO_GPMODE0 >> 2, 0x4000);
8168                saa_writel(SAA7134_GPIO_GPSTATUS0 >> 2, 0x4000);
8169
8170                saa7134_set_gpio(dev, 27, 0);
8171                break;
8172        } /* switch() */
8173
8174        /* initialize tuner (don't do this when resuming) */
8175        if (!dev->insuspend && TUNER_ABSENT != dev->tuner_type) {
8176                int has_demod = (dev->tda9887_conf & TDA9887_PRESENT);
8177
8178                /* Note: radio tuner address is always filled in,
8179                   so we do not need to probe for a radio tuner device. */
8180                if (dev->radio_type != UNSET)
8181                        v4l2_i2c_new_subdev(&dev->v4l2_dev,
8182                                &dev->i2c_adap, "tuner",
8183                                dev->radio_addr, NULL);
8184                if (has_demod)
8185                        v4l2_i2c_new_subdev(&dev->v4l2_dev,
8186                                &dev->i2c_adap, "tuner",
8187                                0, v4l2_i2c_tuner_addrs(ADDRS_DEMOD));
8188                if (dev->tuner_addr == ADDR_UNSET) {
8189                        enum v4l2_i2c_tuner_type type =
8190                                has_demod ? ADDRS_TV_WITH_DEMOD : ADDRS_TV;
8191
8192                        v4l2_i2c_new_subdev(&dev->v4l2_dev,
8193                                &dev->i2c_adap, "tuner",
8194                                0, v4l2_i2c_tuner_addrs(type));
8195                } else {
8196                        v4l2_i2c_new_subdev(&dev->v4l2_dev,
8197                                &dev->i2c_adap, "tuner",
8198                                dev->tuner_addr, NULL);
8199                }
8200        }
8201
8202        saa7134_tuner_setup(dev);
8203
8204        switch (dev->board) {
8205        case SAA7134_BOARD_BEHOLD_COLUMBUS_TVFM:
8206        case SAA7134_BOARD_AVERMEDIA_CARDBUS_501:
8207        {
8208                struct v4l2_priv_tun_config tea5767_cfg;
8209                struct tea5767_ctrl ctl;
8210
8211                dev->i2c_client.addr = 0xC0;
8212                /* set TEA5767(analog FM) defines */
8213                memset(&ctl, 0, sizeof(ctl));
8214                ctl.xtal_freq = TEA5767_HIGH_LO_13MHz;
8215                tea5767_cfg.tuner = TUNER_TEA5767;
8216                tea5767_cfg.priv  = &ctl;
8217                saa_call_all(dev, tuner, s_config, &tea5767_cfg);
8218                break;
8219        }
8220        } /* switch() */
8221
8222        return 0;
8223}
8224