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