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