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