8127 lines · c
1// SPDX-License-Identifier: GPL-2.0-or-later2/*3 *4 * device driver for philips saa7134 based TV cards5 * 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 */27const 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 47static 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 specified53 */54 55struct saa7134_board saa7134_boards[] = {56 [SAA7134_BOARD_UNKNOWN] = {57 .name = "UNKNOWN/GENERIC",58 .audio_clock = 0x00187de7,59 .tuner_type = TUNER_ABSENT,60 .radio_type = UNSET,61 .tuner_addr = ADDR_UNSET,62 .radio_addr = ADDR_UNSET,63 64 .inputs = {{65 .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_ID918 4 .. 7 PROTECT_ID919 8 .. 11 USER_OUT920 12 .. 13 USER_IN921 14 .. 15 VIDIN_SEL922 */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 radio1877 * 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 Decoder2501 * 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 a2724 key press comes in via gpio, but the key code2725 doesn't. Neither does it have an i2c remote control2726 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#endif5108 } },5109#if 05110 .radio = {5111 .type = SAA7134_INPUT_RADIO,5112 .vmux = 1,5113 .amux = LINE1,5114 .gpio = 0x100,5115 },5116#endif5117 .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@kernel.org> */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 = LINE15208 } },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 radio5672 * 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 5796const unsigned int saa7134_bcount = ARRAY_SIZE(saa7134_boards);5797 5798/* ------------------------------------------------------------------ */5799/* PCI ids + subsystem IDs */5800 5801struct 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};7117MODULE_DEVICE_TABLE(pci, saa7134_pci_tbl);7118 7119/* ----------------------------------------------------------- */7120/* flyvideo tweaks */7121 7122 7123static 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 7131static 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 7166static 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 7195static 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 else7210 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 7222static 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 7239static 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 7263static 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 7280static 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 7296static 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 7329static 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 7353int 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}7372EXPORT_SYMBOL(saa7134_tuner_callback);7373 7374/* ----------------------------------------------------------- */7375 7376static 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 7409int 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 cleared7586 * to take chip out of test mode. Clearing bit 4 (TST_EN_AOUT)7587 * prevents pin 105 from remaining low; keeping pin 105 low7588 * 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 prevent7654 * it from interfering with analog tuner detection7655 */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 7685static 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 */7753int 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 needed7759 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 before7761 initializing tuner, since we can avoid loading tuner driver7762 on devices that has TUNER_ABSENT7763 */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 addr7768 If the device doesn't have a tuner, TUNER_ABSENT7769 will be used at tuner_type, avoiding loading tuner7770 without needing it7771 */7772 dev->i2c_client.addr = 0x60;7773 board = (i2c_master_recv(&dev->i2c_client, &buf, 0) < 0)7774 ? SAA7134_BOARD_BMK_MPEX_NOTUNER7775 : 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 the7797 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 tuner7875 connected through the channel decoder. We have to make it7876 transparent to find it7877 */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, so7913 * 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 mode7938 * and configure firmware eeprom address7939 */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 chip7971 * @ LifeView FlyDVB Trio7972 */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 we8012 * are actually looking at. */8013 8014 /* Don't do this if the board was specifically selected with an8015 * 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