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