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