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