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