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