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