533fb02394fb592a85f23e7463fa3def54cd2800
[deliverable/linux.git] / drivers / media / video / saa7134 / saa7134-cards.c
1 /*
2 *
3 * device driver for philips saa7134 based TV cards
4 * card-specific stuff.
5 *
6 * (c) 2001-04 Gerd Knorr <kraxel@bytesex.org> [SuSE Labs]
7 *
8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License as published by
10 * the Free Software Foundation; either version 2 of the License, or
11 * (at your option) any later version.
12 *
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * You should have received a copy of the GNU General Public License
19 * along with this program; if not, write to the Free Software
20 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
21 */
22
23 #include <linux/init.h>
24 #include <linux/module.h>
25
26 #include "saa7134-reg.h"
27 #include "saa7134.h"
28 #include <media/v4l2-common.h>
29 #include <media/tveeprom.h>
30
31 /* commly used strings */
32 static char name_mute[] = "mute";
33 static char name_radio[] = "Radio";
34 static char name_tv[] = "Television";
35 static char name_tv_mono[] = "TV (mono only)";
36 static char name_comp[] = "Composite";
37 static char name_comp1[] = "Composite1";
38 static char name_comp2[] = "Composite2";
39 static char name_comp3[] = "Composite3";
40 static char name_comp4[] = "Composite4";
41 static char name_svideo[] = "S-Video";
42
43 /* ------------------------------------------------------------------ */
44 /* board config info */
45
46 struct saa7134_board saa7134_boards[] = {
47 [SAA7134_BOARD_UNKNOWN] = {
48 .name = "UNKNOWN/GENERIC",
49 .audio_clock = 0x00187de7,
50 .tuner_type = TUNER_ABSENT,
51 .radio_type = UNSET,
52 .tuner_addr = ADDR_UNSET,
53 .radio_addr = ADDR_UNSET,
54
55 .inputs = {{
56 .name = "default",
57 .vmux = 0,
58 .amux = LINE1,
59 }},
60 },
61 [SAA7134_BOARD_PROTEUS_PRO] = {
62 /* /me */
63 .name = "Proteus Pro [philips reference design]",
64 .audio_clock = 0x00187de7,
65 .tuner_type = TUNER_PHILIPS_PAL,
66 .radio_type = UNSET,
67 .tuner_addr = ADDR_UNSET,
68 .radio_addr = ADDR_UNSET,
69
70 .inputs = {{
71 .name = name_comp1,
72 .vmux = 0,
73 .amux = LINE1,
74 },{
75 .name = name_tv,
76 .vmux = 1,
77 .amux = TV,
78 .tv = 1,
79 },{
80 .name = name_tv_mono,
81 .vmux = 1,
82 .amux = LINE2,
83 .tv = 1,
84 }},
85 .radio = {
86 .name = name_radio,
87 .amux = LINE2,
88 },
89 },
90 [SAA7134_BOARD_FLYVIDEO3000] = {
91 /* "Marco d'Itri" <md@Linux.IT> */
92 .name = "LifeView FlyVIDEO3000",
93 .audio_clock = 0x00200000,
94 .tuner_type = TUNER_PHILIPS_PAL,
95 .radio_type = UNSET,
96 .tuner_addr = ADDR_UNSET,
97 .radio_addr = ADDR_UNSET,
98
99 .gpiomask = 0xe000,
100 .inputs = {{
101 .name = name_tv,
102 .vmux = 1,
103 .amux = TV,
104 .gpio = 0x8000,
105 .tv = 1,
106 },{
107 .name = name_tv_mono,
108 .vmux = 1,
109 .amux = LINE2,
110 .gpio = 0x0000,
111 .tv = 1,
112 },{
113 .name = name_comp1,
114 .vmux = 0,
115 .amux = LINE2,
116 .gpio = 0x4000,
117 },{
118 .name = name_comp2,
119 .vmux = 3,
120 .amux = LINE2,
121 .gpio = 0x4000,
122 },{
123 .name = name_svideo,
124 .vmux = 8,
125 .amux = LINE2,
126 .gpio = 0x4000,
127 }},
128 .radio = {
129 .name = name_radio,
130 .amux = LINE2,
131 .gpio = 0x2000,
132 },
133 .mute = {
134 .name = name_mute,
135 .amux = TV,
136 .gpio = 0x8000,
137 },
138 },
139 [SAA7134_BOARD_FLYVIDEO2000] = {
140 /* "TC Wan" <tcwan@cs.usm.my> */
141 .name = "LifeView/Typhoon FlyVIDEO2000",
142 .audio_clock = 0x00200000,
143 .tuner_type = TUNER_LG_PAL_NEW_TAPC,
144 .radio_type = UNSET,
145 .tuner_addr = ADDR_UNSET,
146 .radio_addr = ADDR_UNSET,
147
148 .gpiomask = 0xe000,
149 .inputs = {{
150 .name = name_tv,
151 .vmux = 1,
152 .amux = LINE2,
153 .gpio = 0x0000,
154 .tv = 1,
155 },{
156 .name = name_comp1,
157 .vmux = 0,
158 .amux = LINE2,
159 .gpio = 0x4000,
160 },{
161 .name = name_comp2,
162 .vmux = 3,
163 .amux = LINE2,
164 .gpio = 0x4000,
165 },{
166 .name = name_svideo,
167 .vmux = 8,
168 .amux = LINE2,
169 .gpio = 0x4000,
170 }},
171 .radio = {
172 .name = name_radio,
173 .amux = LINE2,
174 .gpio = 0x2000,
175 },
176 .mute = {
177 .name = name_mute,
178 .amux = LINE2,
179 .gpio = 0x8000,
180 },
181 },
182 [SAA7134_BOARD_FLYTVPLATINUM_MINI] = {
183 /* "Arnaud Quette" <aquette@free.fr> */
184 .name = "LifeView FlyTV Platinum Mini",
185 .audio_clock = 0x00200000,
186 .tuner_type = TUNER_PHILIPS_TDA8290,
187 .radio_type = UNSET,
188 .tuner_addr = ADDR_UNSET,
189 .radio_addr = ADDR_UNSET,
190
191 .inputs = {{
192 .name = name_tv,
193 .vmux = 1,
194 .amux = TV,
195 .tv = 1,
196 },{
197 .name = name_comp1, /* Composite signal on S-Video input */
198 .vmux = 0,
199 .amux = LINE2,
200 },{
201 .name = name_comp2, /* Composite input */
202 .vmux = 3,
203 .amux = LINE2,
204 },{
205 .name = name_svideo,
206 .vmux = 8,
207 .amux = LINE2,
208 }},
209 },
210 [SAA7134_BOARD_FLYTVPLATINUM_FM] = {
211 /* LifeView FlyTV Platinum FM (LR214WF) */
212 /* "Peter Missel <peter.missel@onlinehome.de> */
213 .name = "LifeView FlyTV Platinum FM / Gold",
214 .audio_clock = 0x00200000,
215 .tuner_type = TUNER_PHILIPS_TDA8290,
216 .radio_type = UNSET,
217 .tuner_addr = ADDR_UNSET,
218 .radio_addr = ADDR_UNSET,
219
220 .gpiomask = 0x1E000, /* Set GP16 and unused 15,14,13 to Output */
221 .inputs = {{
222 .name = name_tv,
223 .vmux = 1,
224 .amux = TV,
225 .gpio = 0x10000, /* GP16=1 selects TV input */
226 .tv = 1,
227 },{
228 /* .name = name_tv_mono,
229 .vmux = 1,
230 .amux = LINE2,
231 .gpio = 0x0000,
232 .tv = 1,
233 },{
234 */ .name = name_comp1, /* Composite signal on S-Video input */
235 .vmux = 0,
236 .amux = LINE2,
237 /* .gpio = 0x4000, */
238 },{
239 .name = name_comp2, /* Composite input */
240 .vmux = 3,
241 .amux = LINE2,
242 /* .gpio = 0x4000, */
243 },{
244 .name = name_svideo, /* S-Video signal on S-Video input */
245 .vmux = 8,
246 .amux = LINE2,
247 /* .gpio = 0x4000, */
248 }},
249 .radio = {
250 .name = name_radio,
251 .amux = TV,
252 .gpio = 0x00000, /* GP16=0 selects FM radio antenna */
253 },
254 .mute = {
255 .name = name_mute,
256 .amux = TV,
257 .gpio = 0x10000,
258 },
259 },
260 [SAA7134_BOARD_EMPRESS] = {
261 /* "Gert Vervoort" <gert.vervoort@philips.com> */
262 .name = "EMPRESS",
263 .audio_clock = 0x00187de7,
264 .tuner_type = TUNER_PHILIPS_PAL,
265 .radio_type = UNSET,
266 .tuner_addr = ADDR_UNSET,
267 .radio_addr = ADDR_UNSET,
268
269 .inputs = {{
270 .name = name_comp1,
271 .vmux = 0,
272 .amux = LINE1,
273 },{
274 .name = name_svideo,
275 .vmux = 8,
276 .amux = LINE1,
277 },{
278 .name = name_tv,
279 .vmux = 1,
280 .amux = LINE2,
281 .tv = 1,
282 }},
283 .radio = {
284 .name = name_radio,
285 .amux = LINE2,
286 },
287 .mpeg = SAA7134_MPEG_EMPRESS,
288 .video_out = CCIR656,
289 },
290 [SAA7134_BOARD_MONSTERTV] = {
291 /* "K.Ohta" <alpha292@bremen.or.jp> */
292 .name = "SKNet Monster TV",
293 .audio_clock = 0x00187de7,
294 .tuner_type = TUNER_PHILIPS_NTSC_M,
295 .radio_type = UNSET,
296 .tuner_addr = ADDR_UNSET,
297 .radio_addr = ADDR_UNSET,
298
299 .inputs = {{
300 .name = name_tv,
301 .vmux = 1,
302 .amux = TV,
303 .tv = 1,
304 },{
305 .name = name_comp1,
306 .vmux = 0,
307 .amux = LINE1,
308 },{
309 .name = name_svideo,
310 .vmux = 8,
311 .amux = LINE1,
312 }},
313 .radio = {
314 .name = name_radio,
315 .amux = LINE2,
316 },
317 },
318 [SAA7134_BOARD_MD9717] = {
319 .name = "Tevion MD 9717",
320 .audio_clock = 0x00200000,
321 .tuner_type = TUNER_PHILIPS_PAL,
322 .radio_type = UNSET,
323 .tuner_addr = ADDR_UNSET,
324 .radio_addr = ADDR_UNSET,
325 .inputs = {{
326 .name = name_tv,
327 .vmux = 1,
328 .amux = TV,
329 .tv = 1,
330 },{
331 /* workaround for problems with normal TV sound */
332 .name = name_tv_mono,
333 .vmux = 1,
334 .amux = LINE2,
335 .tv = 1,
336 },{
337 .name = name_comp1,
338 .vmux = 0,
339 .amux = LINE1,
340 },{
341 .name = name_comp2,
342 .vmux = 3,
343 .amux = LINE1,
344 },{
345 .name = name_svideo,
346 .vmux = 8,
347 .amux = LINE1,
348 }},
349 .radio = {
350 .name = name_radio,
351 .amux = LINE2,
352 },
353 },
354 [SAA7134_BOARD_TVSTATION_RDS] = {
355 /* Typhoon TV Tuner RDS: Art.Nr. 50694 */
356 .name = "KNC One TV-Station RDS / Typhoon TV Tuner RDS",
357 .audio_clock = 0x00200000,
358 .tuner_type = TUNER_PHILIPS_FM1216ME_MK3,
359 .radio_type = UNSET,
360 .tuner_addr = ADDR_UNSET,
361 .radio_addr = ADDR_UNSET,
362 .tda9887_conf = TDA9887_PRESENT,
363 .inputs = {{
364 .name = name_tv,
365 .vmux = 1,
366 .amux = TV,
367 .tv = 1,
368 },{
369 .name = name_tv_mono,
370 .vmux = 1,
371 .amux = LINE2,
372 .tv = 1,
373 },{
374
375 .name = name_svideo,
376 .vmux = 8,
377 .amux = LINE1,
378 },{
379 .name = name_comp1,
380 .vmux = 3,
381 .amux = LINE1,
382 },{
383
384 .name = "CVid over SVid",
385 .vmux = 0,
386 .amux = LINE1,
387 }},
388 .radio = {
389 .name = name_radio,
390 .amux = LINE2,
391 },
392 },
393 [SAA7134_BOARD_TVSTATION_DVR] = {
394 .name = "KNC One TV-Station DVR",
395 .audio_clock = 0x00200000,
396 .tuner_type = TUNER_PHILIPS_FM1216ME_MK3,
397 .radio_type = UNSET,
398 .tuner_addr = ADDR_UNSET,
399 .radio_addr = ADDR_UNSET,
400 .tda9887_conf = TDA9887_PRESENT,
401 .gpiomask = 0x820000,
402 .inputs = {{
403 .name = name_tv,
404 .vmux = 1,
405 .amux = TV,
406 .tv = 1,
407 .gpio = 0x20000,
408 },{
409 .name = name_svideo,
410 .vmux = 8,
411 .amux = LINE1,
412 .gpio = 0x20000,
413 },{
414 .name = name_comp1,
415 .vmux = 3,
416 .amux = LINE1,
417 .gpio = 0x20000,
418 }},
419 .radio = {
420 .name = name_radio,
421 .amux = LINE2,
422 .gpio = 0x20000,
423 },
424 .mpeg = SAA7134_MPEG_EMPRESS,
425 .video_out = CCIR656,
426 },
427 [SAA7134_BOARD_CINERGY400] = {
428 .name = "Terratec Cinergy 400 TV",
429 .audio_clock = 0x00200000,
430 .tuner_type = TUNER_PHILIPS_PAL,
431 .radio_type = UNSET,
432 .tuner_addr = ADDR_UNSET,
433 .radio_addr = ADDR_UNSET,
434 .inputs = {{
435 .name = name_tv,
436 .vmux = 1,
437 .amux = TV,
438 .tv = 1,
439 },{
440 .name = name_comp1,
441 .vmux = 4,
442 .amux = LINE1,
443 },{
444 .name = name_svideo,
445 .vmux = 8,
446 .amux = LINE1,
447 },{
448 .name = name_comp2, /* CVideo over SVideo Connector */
449 .vmux = 0,
450 .amux = LINE1,
451 }}
452 },
453 [SAA7134_BOARD_MD5044] = {
454 .name = "Medion 5044",
455 .audio_clock = 0x00187de7, /* was: 0x00200000, */
456 .tuner_type = TUNER_PHILIPS_FM1216ME_MK3,
457 .radio_type = UNSET,
458 .tuner_addr = ADDR_UNSET,
459 .radio_addr = ADDR_UNSET,
460 .tda9887_conf = TDA9887_PRESENT,
461 .inputs = {{
462 .name = name_tv,
463 .vmux = 1,
464 .amux = TV,
465 .tv = 1,
466 },{
467 /* workaround for problems with normal TV sound */
468 .name = name_tv_mono,
469 .vmux = 1,
470 .amux = LINE2,
471 .tv = 1,
472 },{
473 .name = name_comp1,
474 .vmux = 0,
475 .amux = LINE2,
476 },{
477 .name = name_comp2,
478 .vmux = 3,
479 .amux = LINE2,
480 },{
481 .name = name_svideo,
482 .vmux = 8,
483 .amux = LINE2,
484 }},
485 .radio = {
486 .name = name_radio,
487 .amux = LINE2,
488 },
489 },
490 [SAA7134_BOARD_KWORLD] = {
491 .name = "Kworld/KuroutoShikou SAA7130-TVPCI",
492 .audio_clock = 0x00187de7,
493 .tuner_type = TUNER_PHILIPS_NTSC_M,
494 .radio_type = UNSET,
495 .tuner_addr = ADDR_UNSET,
496 .radio_addr = ADDR_UNSET,
497 .inputs = {{
498 .name = name_svideo,
499 .vmux = 8,
500 .amux = LINE1,
501 },{
502 .name = name_comp1,
503 .vmux = 3,
504 .amux = LINE1,
505 },{
506 .name = name_tv,
507 .vmux = 1,
508 .amux = LINE2,
509 .tv = 1,
510 }},
511 },
512 [SAA7134_BOARD_CINERGY600] = {
513 .name = "Terratec Cinergy 600 TV",
514 .audio_clock = 0x00200000,
515 .tuner_type = TUNER_PHILIPS_PAL,
516 .radio_type = UNSET,
517 .tuner_addr = ADDR_UNSET,
518 .radio_addr = ADDR_UNSET,
519 .tda9887_conf = TDA9887_PRESENT,
520 .inputs = {{
521 .name = name_tv,
522 .vmux = 1,
523 .amux = TV,
524 .tv = 1,
525 },{
526 .name = name_comp1,
527 .vmux = 4,
528 .amux = LINE1,
529 },{
530 .name = name_svideo,
531 .vmux = 8,
532 .amux = LINE1,
533 },{
534 .name = name_comp2, /* CVideo over SVideo Connector */
535 .vmux = 0,
536 .amux = LINE1,
537 }},
538 .radio = {
539 .name = name_radio,
540 .amux = LINE2,
541 },
542 },
543 [SAA7134_BOARD_MD7134] = {
544 .name = "Medion 7134",
545 .audio_clock = 0x00187de7,
546 .tuner_type = TUNER_PHILIPS_FMD1216ME_MK3,
547 .radio_type = UNSET,
548 .tuner_addr = ADDR_UNSET,
549 .radio_addr = ADDR_UNSET,
550 .tda9887_conf = TDA9887_PRESENT,
551 .mpeg = SAA7134_MPEG_DVB,
552 .inputs = {{
553 .name = name_tv,
554 .vmux = 1,
555 .amux = TV,
556 .tv = 1,
557 },{
558 .name = name_comp1,
559 .vmux = 0,
560 .amux = LINE1,
561 },{
562 .name = name_svideo,
563 .vmux = 8,
564 .amux = LINE1,
565 }},
566 .radio = {
567 .name = name_radio,
568 .amux = LINE2,
569 },
570 },
571 [SAA7134_BOARD_TYPHOON_90031] = {
572 /* aka Typhoon "TV+Radio", Art.Nr 90031 */
573 /* Tom Zoerner <tomzo at users sourceforge net> */
574 .name = "Typhoon TV+Radio 90031",
575 .audio_clock = 0x00200000,
576 .tuner_type = TUNER_PHILIPS_PAL,
577 .radio_type = UNSET,
578 .tuner_addr = ADDR_UNSET,
579 .radio_addr = ADDR_UNSET,
580 .tda9887_conf = TDA9887_PRESENT,
581 .inputs = {{
582 .name = name_tv,
583 .vmux = 1,
584 .amux = TV,
585 .tv = 1,
586 },{
587 .name = name_comp1,
588 .vmux = 3,
589 .amux = LINE1,
590 },{
591 .name = name_svideo,
592 .vmux = 8,
593 .amux = LINE1,
594 }},
595 .radio = {
596 .name = name_radio,
597 .amux = LINE2,
598 },
599 },
600 [SAA7134_BOARD_ELSA] = {
601 .name = "ELSA EX-VISION 300TV",
602 .audio_clock = 0x00187de7,
603 .tuner_type = TUNER_HITACHI_NTSC,
604 .radio_type = UNSET,
605 .tuner_addr = ADDR_UNSET,
606 .radio_addr = ADDR_UNSET,
607 .inputs = {{
608 .name = name_svideo,
609 .vmux = 8,
610 .amux = LINE1,
611 },{
612 .name = name_comp1,
613 .vmux = 0,
614 .amux = LINE1,
615 },{
616 .name = name_tv,
617 .vmux = 4,
618 .amux = LINE2,
619 .tv = 1,
620 }},
621 },
622 [SAA7134_BOARD_ELSA_500TV] = {
623 .name = "ELSA EX-VISION 500TV",
624 .audio_clock = 0x00187de7,
625 .tuner_type = TUNER_HITACHI_NTSC,
626 .radio_type = UNSET,
627 .tuner_addr = ADDR_UNSET,
628 .radio_addr = ADDR_UNSET,
629 .inputs = {{
630 .name = name_svideo,
631 .vmux = 7,
632 .amux = LINE1,
633 },{
634 .name = name_tv,
635 .vmux = 8,
636 .amux = TV,
637 .tv = 1,
638 },{
639 .name = name_tv_mono,
640 .vmux = 8,
641 .amux = LINE2,
642 .tv = 1,
643 }},
644 },
645 [SAA7134_BOARD_ELSA_700TV] = {
646 .name = "ELSA EX-VISION 700TV",
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 .name = name_tv,
654 .vmux = 4,
655 .amux = LINE2,
656 .tv = 1,
657 },{
658 .name = name_comp1,
659 .vmux = 6,
660 .amux = LINE1,
661 },{
662 .name = name_svideo,
663 .vmux = 7,
664 .amux = LINE1,
665 }},
666 .mute = {
667 .name = name_mute,
668 .amux = TV,
669 },
670 },
671 [SAA7134_BOARD_ASUSTeK_TVFM7134] = {
672 .name = "ASUS TV-FM 7134",
673 .audio_clock = 0x00187de7,
674 .tuner_type = TUNER_PHILIPS_FM1216ME_MK3,
675 .radio_type = UNSET,
676 .tuner_addr = ADDR_UNSET,
677 .radio_addr = ADDR_UNSET,
678 .tda9887_conf = TDA9887_PRESENT,
679 .inputs = {{
680 .name = name_tv,
681 .vmux = 1,
682 .amux = TV,
683 .tv = 1,
684 },{
685 .name = name_comp1,
686 .vmux = 4,
687 .amux = LINE2,
688 },{
689 .name = name_svideo,
690 .vmux = 6,
691 .amux = LINE2,
692 }},
693 .radio = {
694 .name = name_radio,
695 .amux = LINE1,
696 },
697 },
698 [SAA7134_BOARD_ASUSTeK_TVFM7135] = {
699 .name = "ASUS TV-FM 7135",
700 .audio_clock = 0x00187de7,
701 .tuner_type = TUNER_PHILIPS_TDA8290,
702 .radio_type = UNSET,
703 .tuner_addr = ADDR_UNSET,
704 .radio_addr = ADDR_UNSET,
705 .gpiomask = 0x200000,
706 .inputs = {{
707 .name = name_tv,
708 .vmux = 1,
709 .amux = TV,
710 .gpio = 0x0000,
711 .tv = 1,
712 },{
713 .name = name_comp1,
714 .vmux = 4,
715 .amux = LINE2,
716 .gpio = 0x0000,
717 },{
718 .name = name_svideo,
719 .vmux = 6,
720 .amux = LINE2,
721 .gpio = 0x0000,
722 }},
723 .radio = {
724 .name = name_radio,
725 .amux = TV,
726 .gpio = 0x200000,
727 },
728 .mute = {
729 .name = name_mute,
730 .gpio = 0x0000,
731 },
732
733 },
734 [SAA7134_BOARD_VA1000POWER] = {
735 .name = "AOPEN VA1000 POWER",
736 .audio_clock = 0x00187de7,
737 .tuner_type = TUNER_PHILIPS_NTSC,
738 .radio_type = UNSET,
739 .tuner_addr = ADDR_UNSET,
740 .radio_addr = ADDR_UNSET,
741 .inputs = {{
742 .name = name_svideo,
743 .vmux = 8,
744 .amux = LINE1,
745 },{
746 .name = name_comp1,
747 .vmux = 3,
748 .amux = LINE1,
749 },{
750 .name = name_tv,
751 .vmux = 1,
752 .amux = LINE2,
753 .tv = 1,
754 }},
755 },
756 [SAA7134_BOARD_10MOONSTVMASTER] = {
757 /* "lilicheng" <llc@linuxfans.org> */
758 .name = "10MOONS PCI TV CAPTURE CARD",
759 .audio_clock = 0x00200000,
760 .tuner_type = TUNER_LG_PAL_NEW_TAPC,
761 .radio_type = UNSET,
762 .tuner_addr = ADDR_UNSET,
763 .radio_addr = ADDR_UNSET,
764 .gpiomask = 0xe000,
765 .inputs = {{
766 .name = name_tv,
767 .vmux = 1,
768 .amux = LINE2,
769 .gpio = 0x0000,
770 .tv = 1,
771 },{
772 .name = name_comp1,
773 .vmux = 0,
774 .amux = LINE2,
775 .gpio = 0x4000,
776 },{
777 .name = name_comp2,
778 .vmux = 3,
779 .amux = LINE2,
780 .gpio = 0x4000,
781 },{
782 .name = name_svideo,
783 .vmux = 8,
784 .amux = LINE2,
785 .gpio = 0x4000,
786 }},
787 .radio = {
788 .name = name_radio,
789 .amux = LINE2,
790 .gpio = 0x2000,
791 },
792 .mute = {
793 .name = name_mute,
794 .amux = LINE2,
795 .gpio = 0x8000,
796 },
797 },
798 [SAA7134_BOARD_BMK_MPEX_NOTUNER] = {
799 /* "Andrew de Quincey" <adq@lidskialf.net> */
800 .name = "BMK MPEX No Tuner",
801 .audio_clock = 0x200000,
802 .tuner_type = TUNER_ABSENT,
803 .radio_type = UNSET,
804 .tuner_addr = ADDR_UNSET,
805 .radio_addr = ADDR_UNSET,
806 .inputs = {{
807 .name = name_comp1,
808 .vmux = 4,
809 .amux = LINE1,
810 },{
811 .name = name_comp2,
812 .vmux = 3,
813 .amux = LINE1,
814 },{
815 .name = name_comp3,
816 .vmux = 0,
817 .amux = LINE1,
818 },{
819 .name = name_comp4,
820 .vmux = 1,
821 .amux = LINE1,
822 },{
823 .name = name_svideo,
824 .vmux = 8,
825 .amux = LINE1,
826 }},
827 .mpeg = SAA7134_MPEG_EMPRESS,
828 .video_out = CCIR656,
829 },
830 [SAA7134_BOARD_VIDEOMATE_TV] = {
831 .name = "Compro VideoMate TV",
832 .audio_clock = 0x00187de7,
833 .tuner_type = TUNER_PHILIPS_NTSC_M,
834 .radio_type = UNSET,
835 .tuner_addr = ADDR_UNSET,
836 .radio_addr = ADDR_UNSET,
837 .inputs = {{
838 .name = name_svideo,
839 .vmux = 8,
840 .amux = LINE1,
841 },{
842 .name = name_comp1,
843 .vmux = 3,
844 .amux = LINE1,
845 },{
846 .name = name_tv,
847 .vmux = 1,
848 .amux = LINE2,
849 .tv = 1,
850 }},
851 },
852 [SAA7134_BOARD_VIDEOMATE_TV_GOLD_PLUS] = {
853 .name = "Compro VideoMate TV Gold+",
854 .audio_clock = 0x00187de7,
855 .tuner_type = TUNER_PHILIPS_NTSC_M,
856 .gpiomask = 0x800c0000,
857 .radio_type = UNSET,
858 .tuner_addr = ADDR_UNSET,
859 .radio_addr = ADDR_UNSET,
860 .inputs = {{
861 .name = name_svideo,
862 .vmux = 8,
863 .amux = LINE1,
864 .gpio = 0x06c00012,
865 },{
866 .name = name_comp1,
867 .vmux = 3,
868 .amux = LINE1,
869 .gpio = 0x0ac20012,
870 },{
871 .name = name_tv,
872 .vmux = 1,
873 .amux = LINE2,
874 .gpio = 0x08c20012,
875 .tv = 1,
876 }}, /* radio and probably mute is missing */
877 },
878 [SAA7134_BOARD_CRONOS_PLUS] = {
879 /*
880 gpio pins:
881 0 .. 3 BASE_ID
882 4 .. 7 PROTECT_ID
883 8 .. 11 USER_OUT
884 12 .. 13 USER_IN
885 14 .. 15 VIDIN_SEL
886 */
887 .name = "Matrox CronosPlus",
888 .tuner_type = TUNER_ABSENT,
889 .radio_type = UNSET,
890 .tuner_addr = ADDR_UNSET,
891 .radio_addr = ADDR_UNSET,
892 .gpiomask = 0xcf00,
893 .inputs = {{
894 .name = name_comp1,
895 .vmux = 0,
896 .gpio = 2 << 14,
897 },{
898 .name = name_comp2,
899 .vmux = 0,
900 .gpio = 1 << 14,
901 },{
902 .name = name_comp3,
903 .vmux = 0,
904 .gpio = 0 << 14,
905 },{
906 .name = name_comp4,
907 .vmux = 0,
908 .gpio = 3 << 14,
909 },{
910 .name = name_svideo,
911 .vmux = 8,
912 .gpio = 2 << 14,
913 }},
914 },
915 [SAA7134_BOARD_MD2819] = {
916 .name = "AverMedia M156 / Medion 2819",
917 .audio_clock = 0x00187de7,
918 .tuner_type = TUNER_PHILIPS_FM1216ME_MK3,
919 .radio_type = UNSET,
920 .tuner_addr = ADDR_UNSET,
921 .radio_addr = ADDR_UNSET,
922 .tda9887_conf = TDA9887_PRESENT,
923 .inputs = {{
924 .name = name_tv,
925 .vmux = 1,
926 .amux = TV,
927 .tv = 1,
928 },{
929 .name = name_comp1,
930 .vmux = 0,
931 .amux = LINE2,
932 },{
933 .name = name_comp2,
934 .vmux = 3,
935 .amux = LINE2,
936 },{
937 .name = name_svideo,
938 .vmux = 8,
939 .amux = LINE2,
940 }},
941 .radio = {
942 .name = name_radio,
943 .amux = LINE2,
944 },
945 },
946 [SAA7134_BOARD_BMK_MPEX_TUNER] = {
947 /* "Greg Wickham <greg.wickham@grangenet.net> */
948 .name = "BMK MPEX Tuner",
949 .audio_clock = 0x200000,
950 .tuner_type = TUNER_PHILIPS_PAL,
951 .radio_type = UNSET,
952 .tuner_addr = ADDR_UNSET,
953 .radio_addr = ADDR_UNSET,
954 .inputs = {{
955 .name = name_comp1,
956 .vmux = 1,
957 .amux = LINE1,
958 },{
959 .name = name_svideo,
960 .vmux = 8,
961 .amux = LINE1,
962 },{
963 .name = name_tv,
964 .vmux = 3,
965 .amux = TV,
966 .tv = 1,
967 }},
968 .mpeg = SAA7134_MPEG_EMPRESS,
969 .video_out = CCIR656,
970 },
971 [SAA7134_BOARD_ASUSTEK_TVFM7133] = {
972 .name = "ASUS TV-FM 7133",
973 .audio_clock = 0x00187de7,
974 /* probably wrong, the 7133 one is the NTSC version ...
975 * .tuner_type = TUNER_PHILIPS_FM1236_MK3 */
976 .tuner_type = TUNER_LG_NTSC_NEW_TAPC,
977 .radio_type = UNSET,
978 .tuner_addr = ADDR_UNSET,
979 .radio_addr = ADDR_UNSET,
980 .tda9887_conf = TDA9887_PRESENT,
981 .inputs = {{
982 .name = name_tv,
983 .vmux = 1,
984 .amux = TV,
985 .tv = 1,
986
987 },{
988 .name = name_comp1,
989 .vmux = 4,
990 .amux = LINE2,
991 },{
992 .name = name_svideo,
993 .vmux = 6,
994 .amux = LINE2,
995 }},
996 .radio = {
997 .name = name_radio,
998 .amux = LINE1,
999 },
1000 },
1001 [SAA7134_BOARD_PINNACLE_PCTV_STEREO] = {
1002 .name = "Pinnacle PCTV Stereo (saa7134)",
1003 .audio_clock = 0x00187de7,
1004 .tuner_type = TUNER_MT2032,
1005 .radio_type = UNSET,
1006 .tuner_addr = ADDR_UNSET,
1007 .radio_addr = ADDR_UNSET,
1008 .tda9887_conf = TDA9887_PRESENT | TDA9887_INTERCARRIER | TDA9887_PORT2_INACTIVE,
1009 .inputs = {{
1010 .name = name_tv,
1011 .vmux = 3,
1012 .amux = TV,
1013 .tv = 1,
1014 },{
1015 .name = name_comp1,
1016 .vmux = 0,
1017 .amux = LINE2,
1018 },{
1019 .name = name_comp2,
1020 .vmux = 1,
1021 .amux = LINE2,
1022 },{
1023 .name = name_svideo,
1024 .vmux = 8,
1025 .amux = LINE2,
1026 }},
1027 },
1028 [SAA7134_BOARD_MANLI_MTV002] = {
1029 /* Ognjen Nastic <ognjen@logosoft.ba> */
1030 .name = "Manli MuchTV M-TV002/Behold TV 403 FM",
1031 .audio_clock = 0x00200000,
1032 .tuner_type = TUNER_PHILIPS_PAL,
1033 .radio_type = UNSET,
1034 .tuner_addr = ADDR_UNSET,
1035 .radio_addr = ADDR_UNSET,
1036 .inputs = {{
1037 .name = name_svideo,
1038 .vmux = 8,
1039 .amux = LINE1,
1040 },{
1041 .name = name_comp1,
1042 .vmux = 1,
1043 .amux = LINE1,
1044 },{
1045 .name = name_tv,
1046 .vmux = 3,
1047 .amux = LINE2,
1048 .tv = 1,
1049 }},
1050 .radio = {
1051 .name = name_radio,
1052 .amux = LINE2,
1053 },
1054 },
1055 [SAA7134_BOARD_MANLI_MTV001] = {
1056 /* Ognjen Nastic <ognjen@logosoft.ba> UNTESTED */
1057 .name = "Manli MuchTV M-TV001/Behold TV 401",
1058 .audio_clock = 0x00200000,
1059 .tuner_type = TUNER_PHILIPS_PAL,
1060 .radio_type = UNSET,
1061 .tuner_addr = ADDR_UNSET,
1062 .radio_addr = ADDR_UNSET,
1063 .inputs = {{
1064 .name = name_svideo,
1065 .vmux = 8,
1066 .amux = LINE1,
1067 },{
1068 .name = name_comp1,
1069 .vmux = 1,
1070 .amux = LINE1,
1071 },{
1072 .name = name_tv,
1073 .vmux = 3,
1074 .amux = LINE2,
1075 .tv = 1,
1076 }},
1077 .mute = {
1078 .name = name_mute,
1079 .amux = LINE1,
1080 },
1081 },
1082 [SAA7134_BOARD_TG3000TV] = {
1083 /* TransGear 3000TV */
1084 .name = "Nagase Sangyo TransGear 3000TV",
1085 .audio_clock = 0x00187de7,
1086 .tuner_type = TUNER_PHILIPS_NTSC_M,
1087 .radio_type = UNSET,
1088 .tuner_addr = ADDR_UNSET,
1089 .radio_addr = ADDR_UNSET,
1090 .inputs = {{
1091 .name = name_tv,
1092 .vmux = 1,
1093 .amux = LINE2,
1094 .tv = 1,
1095 },{
1096 .name = name_comp1,
1097 .vmux = 3,
1098 .amux = LINE2,
1099 },{
1100 .name = name_svideo,
1101 .vmux = 8,
1102 .amux = LINE2,
1103 }},
1104 },
1105 [SAA7134_BOARD_ECS_TVP3XP] = {
1106 .name = "Elitegroup ECS TVP3XP FM1216 Tuner Card(PAL-BG,FM) ",
1107 .audio_clock = 0x187de7, /* xtal 32.1 MHz */
1108 .tuner_type = TUNER_PHILIPS_PAL,
1109 .radio_type = UNSET,
1110 .tuner_addr = ADDR_UNSET,
1111 .radio_addr = ADDR_UNSET,
1112 .inputs = {{
1113 .name = name_tv,
1114 .vmux = 1,
1115 .amux = TV,
1116 .tv = 1,
1117 },{
1118 .name = name_tv_mono,
1119 .vmux = 1,
1120 .amux = LINE2,
1121 .tv = 1,
1122 },{
1123 .name = name_comp1,
1124 .vmux = 3,
1125 .amux = LINE1,
1126 },{
1127 .name = name_svideo,
1128 .vmux = 8,
1129 .amux = LINE1,
1130 },{
1131 .name = "CVid over SVid",
1132 .vmux = 0,
1133 .amux = LINE1,
1134 }},
1135 .radio = {
1136 .name = name_radio,
1137 .amux = LINE2,
1138 },
1139 },
1140 [SAA7134_BOARD_ECS_TVP3XP_4CB5] = {
1141 .name = "Elitegroup ECS TVP3XP FM1236 Tuner Card (NTSC,FM)",
1142 .audio_clock = 0x187de7,
1143 .tuner_type = TUNER_PHILIPS_NTSC,
1144 .radio_type = UNSET,
1145 .tuner_addr = ADDR_UNSET,
1146 .radio_addr = ADDR_UNSET,
1147 .inputs = {{
1148 .name = name_tv,
1149 .vmux = 1,
1150 .amux = TV,
1151 .tv = 1,
1152 },{
1153 .name = name_tv_mono,
1154 .vmux = 1,
1155 .amux = LINE2,
1156 .tv = 1,
1157 },{
1158 .name = name_comp1,
1159 .vmux = 3,
1160 .amux = LINE1,
1161 },{
1162 .name = name_svideo,
1163 .vmux = 8,
1164 .amux = LINE1,
1165 },{
1166 .name = "CVid over SVid",
1167 .vmux = 0,
1168 .amux = LINE1,
1169 }},
1170 .radio = {
1171 .name = name_radio,
1172 .amux = LINE2,
1173 },
1174 },
1175 [SAA7134_BOARD_ECS_TVP3XP_4CB6] = {
1176 /* Barry Scott <barry.scott@onelan.co.uk> */
1177 .name = "Elitegroup ECS TVP3XP FM1246 Tuner Card (PAL,FM)",
1178 .audio_clock = 0x187de7,
1179 .tuner_type = TUNER_PHILIPS_PAL_I,
1180 .radio_type = UNSET,
1181 .tuner_addr = ADDR_UNSET,
1182 .radio_addr = ADDR_UNSET,
1183 .inputs = {{
1184 .name = name_tv,
1185 .vmux = 1,
1186 .amux = TV,
1187 .tv = 1,
1188 },{
1189 .name = name_tv_mono,
1190 .vmux = 1,
1191 .amux = LINE2,
1192 .tv = 1,
1193 },{
1194 .name = name_comp1,
1195 .vmux = 3,
1196 .amux = LINE1,
1197 },{
1198 .name = name_svideo,
1199 .vmux = 8,
1200 .amux = LINE1,
1201 },{
1202 .name = "CVid over SVid",
1203 .vmux = 0,
1204 .amux = LINE1,
1205 }},
1206 .radio = {
1207 .name = name_radio,
1208 .amux = LINE2,
1209 },
1210 },
1211 [SAA7134_BOARD_AVACSSMARTTV] = {
1212 /* Roman Pszonczenko <romka@kolos.math.uni.lodz.pl> */
1213 .name = "AVACS SmartTV",
1214 .audio_clock = 0x00187de7,
1215 .tuner_type = TUNER_PHILIPS_PAL,
1216 .radio_type = UNSET,
1217 .tuner_addr = ADDR_UNSET,
1218 .radio_addr = ADDR_UNSET,
1219 .inputs = {{
1220 .name = name_tv,
1221 .vmux = 1,
1222 .amux = TV,
1223 .tv = 1,
1224 },{
1225 .name = name_tv_mono,
1226 .vmux = 1,
1227 .amux = LINE2,
1228 .tv = 1,
1229 },{
1230 .name = name_comp1,
1231 .vmux = 0,
1232 .amux = LINE2,
1233 },{
1234 .name = name_comp2,
1235 .vmux = 3,
1236 .amux = LINE2,
1237 },{
1238 .name = name_svideo,
1239 .vmux = 8,
1240 .amux = LINE2,
1241 }},
1242 .radio = {
1243 .name = name_radio,
1244 .amux = LINE2,
1245 .gpio = 0x200000,
1246 },
1247 },
1248 [SAA7134_BOARD_AVERMEDIA_DVD_EZMAKER] = {
1249 /* Michael Smith <msmith@cbnco.com> */
1250 .name = "AVerMedia DVD EZMaker",
1251 .audio_clock = 0x00187de7,
1252 .tuner_type = TUNER_ABSENT,
1253 .radio_type = UNSET,
1254 .tuner_addr = ADDR_UNSET,
1255 .radio_addr = ADDR_UNSET,
1256 .inputs = {{
1257 .name = name_comp1,
1258 .vmux = 3,
1259 },{
1260 .name = name_svideo,
1261 .vmux = 8,
1262 }},
1263 },
1264 [SAA7134_BOARD_NOVAC_PRIMETV7133] = {
1265 /* toshii@netbsd.org */
1266 .name = "Noval Prime TV 7133",
1267 .audio_clock = 0x00200000,
1268 .tuner_type = TUNER_ALPS_TSBH1_NTSC,
1269 .radio_type = UNSET,
1270 .tuner_addr = ADDR_UNSET,
1271 .radio_addr = ADDR_UNSET,
1272 .inputs = {{
1273 .name = name_comp1,
1274 .vmux = 3,
1275 },{
1276 .name = name_tv,
1277 .vmux = 1,
1278 .amux = TV,
1279 .tv = 1,
1280 },{
1281 .name = name_svideo,
1282 .vmux = 8,
1283 }},
1284 },
1285 [SAA7134_BOARD_AVERMEDIA_STUDIO_305] = {
1286 .name = "AverMedia AverTV Studio 305",
1287 .audio_clock = 0x00187de7,
1288 .tuner_type = TUNER_PHILIPS_FM1256_IH3,
1289 .radio_type = UNSET,
1290 .tuner_addr = ADDR_UNSET,
1291 .radio_addr = ADDR_UNSET,
1292 .tda9887_conf = TDA9887_PRESENT,
1293 .inputs = {{
1294 .name = name_tv,
1295 .vmux = 1,
1296 .amux = LINE2,
1297 .tv = 1,
1298 },{
1299 .name = name_comp1,
1300 .vmux = 0,
1301 .amux = LINE2,
1302 },{
1303 .name = name_comp2,
1304 .vmux = 3,
1305 .amux = LINE2,
1306 },{
1307 .name = name_svideo,
1308 .vmux = 8,
1309 .amux = LINE2,
1310 }},
1311 .radio = {
1312 .name = name_radio,
1313 .amux = LINE2,
1314 },
1315 .mute = {
1316 .name = name_mute,
1317 .amux = LINE1,
1318 },
1319 },
1320 [SAA7134_BOARD_UPMOST_PURPLE_TV] = {
1321 .name = "UPMOST PURPLE TV",
1322 .audio_clock = 0x00187de7,
1323 .tuner_type = TUNER_PHILIPS_FM1236_MK3,
1324 .radio_type = UNSET,
1325 .tuner_addr = ADDR_UNSET,
1326 .radio_addr = ADDR_UNSET,
1327 .tda9887_conf = TDA9887_PRESENT,
1328 .inputs = {{
1329 .name = name_tv,
1330 .vmux = 7,
1331 .amux = TV,
1332 .tv = 1,
1333 },{
1334 .name = name_svideo,
1335 .vmux = 7,
1336 .amux = LINE1,
1337 }},
1338 },
1339 [SAA7134_BOARD_ITEMS_MTV005] = {
1340 /* Norman Jonas <normanjonas@arcor.de> */
1341 .name = "Items MuchTV Plus / IT-005",
1342 .audio_clock = 0x00187de7,
1343 .tuner_type = TUNER_PHILIPS_PAL,
1344 .radio_type = UNSET,
1345 .tuner_addr = ADDR_UNSET,
1346 .radio_addr = ADDR_UNSET,
1347 .inputs = {{
1348 .name = name_tv,
1349 .vmux = 3,
1350 .amux = TV,
1351 .tv = 1,
1352 },{
1353 .name = name_comp1,
1354 .vmux = 1,
1355 .amux = LINE1,
1356 },{
1357 .name = name_svideo,
1358 .vmux = 8,
1359 .amux = LINE1,
1360 }},
1361 .radio = {
1362 .name = name_radio,
1363 .amux = LINE2,
1364 },
1365 },
1366 [SAA7134_BOARD_CINERGY200] = {
1367 .name = "Terratec Cinergy 200 TV",
1368 .audio_clock = 0x00200000,
1369 .tuner_type = TUNER_PHILIPS_PAL,
1370 .radio_type = UNSET,
1371 .tuner_addr = ADDR_UNSET,
1372 .radio_addr = ADDR_UNSET,
1373 .inputs = {{
1374 .name = name_tv,
1375 .vmux = 1,
1376 .amux = LINE2,
1377 .tv = 1,
1378 },{
1379 .name = name_comp1,
1380 .vmux = 4,
1381 .amux = LINE1,
1382 },{
1383 .name = name_svideo,
1384 .vmux = 8,
1385 .amux = LINE1,
1386 },{
1387 .name = name_comp2, /* CVideo over SVideo Connector */
1388 .vmux = 0,
1389 .amux = LINE1,
1390 }},
1391 .mute = {
1392 .name = name_mute,
1393 .amux = LINE2,
1394 },
1395 },
1396 [SAA7134_BOARD_VIDEOMATE_TV_PVR] = {
1397 /* Alain St-Denis <alain@topaze.homeip.net> */
1398 .name = "Compro VideoMate TV PVR/FM",
1399 .audio_clock = 0x00187de7,
1400 .tuner_type = TUNER_PHILIPS_NTSC_M,
1401 .radio_type = UNSET,
1402 .tuner_addr = ADDR_UNSET,
1403 .radio_addr = ADDR_UNSET,
1404 .gpiomask = 0x808c0080,
1405 .inputs = {{
1406 .name = name_svideo,
1407 .vmux = 8,
1408 .amux = LINE1,
1409 .gpio = 0x00080,
1410 },{
1411 .name = name_comp1,
1412 .vmux = 3,
1413 .amux = LINE1,
1414 .gpio = 0x00080,
1415 },{
1416 .name = name_tv,
1417 .vmux = 1,
1418 .amux = LINE2_LEFT,
1419 .tv = 1,
1420 .gpio = 0x00080,
1421 }},
1422 .radio = {
1423 .name = name_radio,
1424 .amux = LINE2,
1425 .gpio = 0x80000,
1426 },
1427 .mute = {
1428 .name = name_mute,
1429 .amux = LINE2,
1430 .gpio = 0x40000,
1431 },
1432 },
1433 [SAA7134_BOARD_SABRENT_SBTTVFM] = {
1434 /* Michael Rodriguez-Torrent <mrtorrent@asu.edu> */
1435 .name = "Sabrent SBT-TVFM (saa7130)",
1436 .audio_clock = 0x00187de7,
1437 .tuner_type = TUNER_PHILIPS_NTSC_M,
1438 .radio_type = UNSET,
1439 .tuner_addr = ADDR_UNSET,
1440 .radio_addr = ADDR_UNSET,
1441 .inputs = {{
1442 .name = name_comp1,
1443 .vmux = 1,
1444 .amux = LINE1,
1445 },{
1446 .name = name_tv,
1447 .vmux = 3,
1448 .amux = LINE2,
1449 .tv = 1,
1450 },{
1451 .name = name_svideo,
1452 .vmux = 8,
1453 .amux = LINE1,
1454 }},
1455 .radio = {
1456 .name = name_radio,
1457 .amux = LINE2,
1458 },
1459 },
1460 [SAA7134_BOARD_ZOLID_XPERT_TV7134] = {
1461 /* Helge Jensen <helge.jensen@slog.dk> */
1462 .name = ":Zolid Xpert TV7134",
1463 .audio_clock = 0x00187de7,
1464 .tuner_type = TUNER_PHILIPS_NTSC,
1465 .radio_type = UNSET,
1466 .tuner_addr = ADDR_UNSET,
1467 .radio_addr = ADDR_UNSET,
1468 .inputs = {{
1469 .name = name_svideo,
1470 .vmux = 8,
1471 .amux = LINE1,
1472 },{
1473 .name = name_comp1,
1474 .vmux = 3,
1475 .amux = LINE1,
1476 },{
1477 .name = name_tv,
1478 .vmux = 1,
1479 .amux = LINE2,
1480 .tv = 1,
1481 }},
1482 },
1483 [SAA7134_BOARD_EMPIRE_PCI_TV_RADIO_LE] = {
1484 /* "Matteo Az" <matte.az@nospam.libero.it> ;-) */
1485 .name = "Empire PCI TV-Radio LE",
1486 .audio_clock = 0x00187de7,
1487 .tuner_type = TUNER_PHILIPS_PAL,
1488 .radio_type = UNSET,
1489 .tuner_addr = ADDR_UNSET,
1490 .radio_addr = ADDR_UNSET,
1491 .gpiomask = 0x4000,
1492 .inputs = {{
1493 .name = name_tv_mono,
1494 .vmux = 1,
1495 .amux = LINE2,
1496 .gpio = 0x8000,
1497 .tv = 1,
1498 },{
1499 .name = name_comp1,
1500 .vmux = 3,
1501 .amux = LINE1,
1502 .gpio = 0x8000,
1503 },{
1504 .name = name_svideo,
1505 .vmux = 6,
1506 .amux = LINE1,
1507 .gpio = 0x8000,
1508 }},
1509 .radio = {
1510 .name = name_radio,
1511 .amux = LINE1,
1512 .gpio = 0x8000,
1513 },
1514 .mute = {
1515 .name = name_mute,
1516 .amux = TV,
1517 .gpio =0x8000,
1518 }
1519 },
1520 [SAA7134_BOARD_AVERMEDIA_STUDIO_307] = {
1521 /*
1522 Nickolay V. Shmyrev <nshmyrev@yandex.ru>
1523 Lots of thanks to Andrey Zolotarev <zolotarev_andrey@mail.ru>
1524 */
1525 .name = "Avermedia AVerTV Studio 307",
1526 .audio_clock = 0x00187de7,
1527 .tuner_type = TUNER_PHILIPS_FM1256_IH3,
1528 .radio_type = UNSET,
1529 .tuner_addr = ADDR_UNSET,
1530 .radio_addr = ADDR_UNSET,
1531 .tda9887_conf = TDA9887_PRESENT,
1532 .gpiomask = 0x03,
1533 .inputs = {{
1534 .name = name_tv,
1535 .vmux = 1,
1536 .amux = TV,
1537 .tv = 1,
1538 .gpio = 0x00,
1539 },{
1540 .name = name_comp,
1541 .vmux = 3,
1542 .amux = LINE1,
1543 .gpio = 0x02,
1544 },{
1545 .name = name_svideo,
1546 .vmux = 8,
1547 .amux = LINE1,
1548 .gpio = 0x02,
1549 }},
1550 .radio = {
1551 .name = name_radio,
1552 .amux = LINE1,
1553 .gpio = 0x01,
1554 },
1555 .mute = {
1556 .name = name_mute,
1557 .amux = LINE1,
1558 .gpio = 0x00,
1559 },
1560 },
1561 [SAA7134_BOARD_AVERMEDIA_GO_007_FM] = {
1562 .name = "Avermedia AVerTV GO 007 FM",
1563 .audio_clock = 0x00187de7,
1564 .tuner_type = TUNER_PHILIPS_TDA8290,
1565 .radio_type = UNSET,
1566 .tuner_addr = ADDR_UNSET,
1567 .radio_addr = ADDR_UNSET,
1568 .gpiomask = 0x00300003,
1569 /* .gpiomask = 0x8c240003, */
1570 .inputs = {{
1571 .name = name_tv,
1572 .vmux = 1,
1573 .amux = TV,
1574 .tv = 1,
1575 .gpio = 0x01,
1576 },{
1577 .name = name_comp1,
1578 .vmux = 0,
1579 .amux = LINE1,
1580 .gpio = 0x02,
1581 },{
1582 .name = name_svideo,
1583 .vmux = 6,
1584 .amux = LINE1,
1585 .gpio = 0x02,
1586 }},
1587 .radio = {
1588 .name = name_radio,
1589 .amux = LINE1,
1590 .gpio = 0x00300001,
1591 },
1592 .mute = {
1593 .name = name_mute,
1594 .amux = TV,
1595 .gpio = 0x01,
1596 },
1597 },
1598 [SAA7134_BOARD_AVERMEDIA_CARDBUS] = {
1599 /* Kees.Blom@cwi.nl */
1600 .name = "AVerMedia Cardbus TV/Radio (E500)",
1601 .audio_clock = 0x187de7,
1602 .tuner_type = TUNER_PHILIPS_TDA8290,
1603 .radio_type = UNSET,
1604 .tuner_addr = ADDR_UNSET,
1605 .radio_addr = ADDR_UNSET,
1606 .inputs = {{
1607 .name = name_tv,
1608 .vmux = 1,
1609 .amux = TV,
1610 .tv = 1,
1611 },{
1612 .name = name_comp1,
1613 .vmux = 3,
1614 .amux = LINE2,
1615 },{
1616 .name = name_svideo,
1617 .vmux = 8,
1618 .amux = LINE1,
1619 }},
1620 .radio = {
1621 .name = name_radio,
1622 .amux = LINE1,
1623 },
1624 },
1625 [SAA7134_BOARD_CINERGY400_CARDBUS] = {
1626 .name = "Terratec Cinergy 400 mobile",
1627 .audio_clock = 0x187de7,
1628 .tuner_type = TUNER_ALPS_TSBE5_PAL,
1629 .radio_type = UNSET,
1630 .tuner_addr = ADDR_UNSET,
1631 .radio_addr = ADDR_UNSET,
1632 .tda9887_conf = TDA9887_PRESENT,
1633 .inputs = {{
1634 .name = name_tv,
1635 .vmux = 1,
1636 .amux = TV,
1637 .tv = 1,
1638 },{
1639 .name = name_tv_mono,
1640 .vmux = 1,
1641 .amux = LINE2,
1642 .tv = 1,
1643 },{
1644 .name = name_comp1,
1645 .vmux = 3,
1646 .amux = LINE1,
1647 },{
1648 .name = name_svideo,
1649 .vmux = 8,
1650 .amux = LINE1,
1651 }},
1652 },
1653 [SAA7134_BOARD_CINERGY600_MK3] = {
1654 .name = "Terratec Cinergy 600 TV MK3",
1655 .audio_clock = 0x00200000,
1656 .tuner_type = TUNER_PHILIPS_FM1216ME_MK3,
1657 .radio_type = UNSET,
1658 .tuner_addr = ADDR_UNSET,
1659 .radio_addr = ADDR_UNSET,
1660 .tda9887_conf = TDA9887_PRESENT,
1661 .inputs = {{
1662 .name = name_tv,
1663 .vmux = 1,
1664 .amux = TV,
1665 .tv = 1,
1666 },{
1667 .name = name_comp1,
1668 .vmux = 4,
1669 .amux = LINE1,
1670 },{
1671 .name = name_svideo,
1672 .vmux = 8,
1673 .amux = LINE1,
1674 },{
1675 .name = name_comp2, /* CVideo over SVideo Connector */
1676 .vmux = 0,
1677 .amux = LINE1,
1678 }},
1679 .radio = {
1680 .name = name_radio,
1681 .amux = LINE2,
1682 },
1683 },
1684 [SAA7134_BOARD_VIDEOMATE_GOLD_PLUS] = {
1685 /* Dylan Walkden <dylan_walkden@hotmail.com> */
1686 .name = "Compro VideoMate Gold+ Pal",
1687 .audio_clock = 0x00187de7,
1688 .tuner_type = TUNER_PHILIPS_PAL,
1689 .radio_type = UNSET,
1690 .tuner_addr = ADDR_UNSET,
1691 .radio_addr = ADDR_UNSET,
1692 .gpiomask = 0x1ce780,
1693 .inputs = {{
1694 .name = name_svideo,
1695 .vmux = 0, /* CVideo over SVideo Connector - ok? */
1696 .amux = LINE1,
1697 .gpio = 0x008080,
1698 },{
1699 .name = name_comp1,
1700 .vmux = 3,
1701 .amux = LINE1,
1702 .gpio = 0x008080,
1703 },{
1704 .name = name_tv,
1705 .vmux = 1,
1706 .amux = TV,
1707 .tv = 1,
1708 .gpio = 0x008080,
1709 }},
1710 .radio = {
1711 .name = name_radio,
1712 .amux = LINE2,
1713 .gpio = 0x80000,
1714 },
1715 .mute = {
1716 .name = name_mute,
1717 .amux = LINE2,
1718 .gpio = 0x0c8000,
1719 },
1720 },
1721 [SAA7134_BOARD_PINNACLE_300I_DVBT_PAL] = {
1722 .name = "Pinnacle PCTV 300i DVB-T + PAL",
1723 .audio_clock = 0x00187de7,
1724 .tuner_type = TUNER_MT2032,
1725 .radio_type = UNSET,
1726 .tuner_addr = ADDR_UNSET,
1727 .radio_addr = ADDR_UNSET,
1728 .tda9887_conf = TDA9887_PRESENT | TDA9887_INTERCARRIER | TDA9887_PORT2_INACTIVE,
1729 .mpeg = SAA7134_MPEG_DVB,
1730 .inputs = {{
1731 .name = name_tv,
1732 .vmux = 3,
1733 .amux = TV,
1734 .tv = 1,
1735 },{
1736 .name = name_comp1,
1737 .vmux = 0,
1738 .amux = LINE2,
1739 },{
1740 .name = name_comp2,
1741 .vmux = 1,
1742 .amux = LINE2,
1743 },{
1744 .name = name_svideo,
1745 .vmux = 8,
1746 .amux = LINE2,
1747 }},
1748 },
1749 [SAA7134_BOARD_PROVIDEO_PV952] = {
1750 /* andreas.kretschmer@web.de */
1751 .name = "ProVideo PV952",
1752 .audio_clock = 0x00187de7,
1753 .tuner_type = TUNER_PHILIPS_FM1216ME_MK3,
1754 .radio_type = UNSET,
1755 .tuner_addr = ADDR_UNSET,
1756 .radio_addr = ADDR_UNSET,
1757 .tda9887_conf = TDA9887_PRESENT,
1758 .inputs = {{
1759 .name = name_comp1,
1760 .vmux = 0,
1761 .amux = LINE1,
1762 },{
1763 .name = name_tv,
1764 .vmux = 1,
1765 .amux = TV,
1766 .tv = 1,
1767 },{
1768 .name = name_tv_mono,
1769 .vmux = 1,
1770 .amux = LINE2,
1771 .tv = 1,
1772 }},
1773 .radio = {
1774 .name = name_radio,
1775 .amux = LINE2,
1776 },
1777 },
1778 [SAA7134_BOARD_AVERMEDIA_305] = {
1779 /* much like the "studio" version but without radio
1780 * and another tuner (sirspiritus@yandex.ru) */
1781 .name = "AverMedia AverTV/305",
1782 .audio_clock = 0x00187de7,
1783 .tuner_type = TUNER_PHILIPS_FQ1216ME,
1784 .radio_type = UNSET,
1785 .tuner_addr = ADDR_UNSET,
1786 .radio_addr = ADDR_UNSET,
1787 .tda9887_conf = TDA9887_PRESENT,
1788 .inputs = {{
1789 .name = name_tv,
1790 .vmux = 1,
1791 .amux = LINE2,
1792 .tv = 1,
1793 },{
1794 .name = name_comp1,
1795 .vmux = 0,
1796 .amux = LINE2,
1797 },{
1798 .name = name_comp2,
1799 .vmux = 3,
1800 .amux = LINE2,
1801 },{
1802 .name = name_svideo,
1803 .vmux = 8,
1804 .amux = LINE2,
1805 }},
1806 .mute = {
1807 .name = name_mute,
1808 .amux = LINE1,
1809 },
1810 },
1811 [SAA7134_BOARD_FLYDVBTDUO] = {
1812 /* LifeView FlyDVB-T DUO */
1813 /* "Nico Sabbi <nsabbi@tiscali.it> Hartmut Hackmann hartmut.hackmann@t-online.de*/
1814 .name = "LifeView FlyDVB-T DUO / MSI TV@nywhere Duo",
1815 .audio_clock = 0x00200000,
1816 .tuner_type = TUNER_PHILIPS_TDA8290,
1817 .radio_type = UNSET,
1818 .tuner_addr = ADDR_UNSET,
1819 .radio_addr = ADDR_UNSET,
1820 .gpiomask = 0x00200000,
1821 .mpeg = SAA7134_MPEG_DVB,
1822 .inputs = {{
1823 .name = name_tv,
1824 .vmux = 1,
1825 .amux = TV,
1826 .gpio = 0x200000, /* GPIO21=High for TV input */
1827 .tv = 1,
1828 },{
1829 .name = name_comp1, /* Composite signal on S-Video input */
1830 .vmux = 0,
1831 .amux = LINE2,
1832 },{
1833 .name = name_comp2, /* Composite input */
1834 .vmux = 3,
1835 .amux = LINE2,
1836 },{
1837 .name = name_svideo, /* S-Video signal on S-Video input */
1838 .vmux = 8,
1839 .amux = LINE2,
1840 }},
1841 .radio = {
1842 .name = name_radio,
1843 .amux = TV,
1844 .gpio = 0x000000, /* GPIO21=Low for FM radio antenna */
1845 },
1846 },
1847 [SAA7134_BOARD_PHILIPS_TOUGH] = {
1848 .name = "Philips TOUGH DVB-T reference design",
1849 .tuner_type = TUNER_ABSENT,
1850 .audio_clock = 0x00187de7,
1851 .radio_type = UNSET,
1852 .tuner_addr = ADDR_UNSET,
1853 .radio_addr = ADDR_UNSET,
1854 .mpeg = SAA7134_MPEG_DVB,
1855 .inputs = {{
1856 .name = name_comp1,
1857 .vmux = 0,
1858 .amux = LINE1,
1859 },{
1860 .name = name_svideo,
1861 .vmux = 8,
1862 .amux = LINE1,
1863 }},
1864 },
1865 [SAA7134_BOARD_AVERMEDIA_307] = {
1866 /*
1867 Davydov Vladimir <vladimir@iqmedia.com>
1868 */
1869 .name = "Avermedia AVerTV 307",
1870 .audio_clock = 0x00187de7,
1871 .tuner_type = TUNER_PHILIPS_FQ1216ME,
1872 .radio_type = UNSET,
1873 .tuner_addr = ADDR_UNSET,
1874 .radio_addr = ADDR_UNSET,
1875 .tda9887_conf = TDA9887_PRESENT,
1876 .inputs = {{
1877 .name = name_tv,
1878 .vmux = 1,
1879 .amux = TV,
1880 .tv = 1,
1881 },{
1882 .name = name_comp1,
1883 .vmux = 0,
1884 .amux = LINE1,
1885 },{
1886 .name = name_comp2,
1887 .vmux = 3,
1888 .amux = LINE1,
1889 },{
1890 .name = name_svideo,
1891 .vmux = 8,
1892 .amux = LINE1,
1893 }},
1894 },
1895 [SAA7134_BOARD_ADS_INSTANT_TV] = {
1896 .name = "ADS Tech Instant TV (saa7135)",
1897 .audio_clock = 0x00187de7,
1898 .tuner_type = TUNER_PHILIPS_TDA8290,
1899 .radio_type = UNSET,
1900 .tuner_addr = ADDR_UNSET,
1901 .radio_addr = ADDR_UNSET,
1902 .inputs = {{
1903 .name = name_tv,
1904 .vmux = 1,
1905 .amux = TV,
1906 .tv = 1,
1907 },{
1908 .name = name_comp1,
1909 .vmux = 3,
1910 .amux = LINE2,
1911 },{
1912 .name = name_svideo,
1913 .vmux = 8,
1914 .amux = LINE2,
1915 }},
1916 },
1917 [SAA7134_BOARD_KWORLD_VSTREAM_XPERT] = {
1918 .name = "Kworld/Tevion V-Stream Xpert TV PVR7134",
1919 .audio_clock = 0x00187de7,
1920 .tuner_type = TUNER_PHILIPS_PAL_I,
1921 .radio_type = UNSET,
1922 .tuner_addr = ADDR_UNSET,
1923 .radio_addr = ADDR_UNSET,
1924 .gpiomask = 0x0700,
1925 .inputs = {{
1926 .name = name_tv,
1927 .vmux = 1,
1928 .amux = TV,
1929 .tv = 1,
1930 .gpio = 0x000,
1931 },{
1932 .name = name_comp1,
1933 .vmux = 3,
1934 .amux = LINE1,
1935 .gpio = 0x200, /* gpio by DScaler */
1936 },{
1937 .name = name_svideo,
1938 .vmux = 0,
1939 .amux = LINE1,
1940 .gpio = 0x200,
1941 }},
1942 .radio = {
1943 .name = name_radio,
1944 .amux = LINE1,
1945 .gpio = 0x100,
1946 },
1947 .mute = {
1948 .name = name_mute,
1949 .amux = TV,
1950 .gpio = 0x000,
1951 },
1952 },
1953 [SAA7134_BOARD_FLYDVBT_DUO_CARDBUS] = {
1954 .name = "LifeView/Typhoon/Genius FlyDVB-T Duo Cardbus",
1955 .audio_clock = 0x00200000,
1956 .tuner_type = TUNER_PHILIPS_TDA8290,
1957 .radio_type = UNSET,
1958 .tuner_addr = ADDR_UNSET,
1959 .radio_addr = ADDR_UNSET,
1960 .mpeg = SAA7134_MPEG_DVB,
1961 .gpiomask = 0x00200000,
1962 .inputs = {{
1963 .name = name_tv,
1964 .vmux = 1,
1965 .amux = TV,
1966 .gpio = 0x200000, /* GPIO21=High for TV input */
1967 .tv = 1,
1968 },{
1969 .name = name_svideo, /* S-Video signal on S-Video input */
1970 .vmux = 8,
1971 .amux = LINE2,
1972 },{
1973 .name = name_comp1, /* Composite signal on S-Video input */
1974 .vmux = 0,
1975 .amux = LINE2,
1976 },{
1977 .name = name_comp2, /* Composite input */
1978 .vmux = 3,
1979 .amux = LINE2,
1980 }},
1981 .radio = {
1982 .name = name_radio,
1983 .amux = TV,
1984 .gpio = 0x000000, /* GPIO21=Low for FM radio antenna */
1985 },
1986 },
1987 [SAA7134_BOARD_VIDEOMATE_TV_GOLD_PLUSII] = {
1988 .name = "Compro VideoMate TV Gold+II",
1989 .audio_clock = 0x002187de7,
1990 .tuner_type = TUNER_LG_PAL_NEW_TAPC,
1991 .radio_type = TUNER_TEA5767,
1992 .tuner_addr = 0x63,
1993 .radio_addr = 0x60,
1994 .gpiomask = 0x8c1880,
1995 .inputs = {{
1996 .name = name_svideo,
1997 .vmux = 0,
1998 .amux = LINE1,
1999 .gpio = 0x800800,
2000 },{
2001 .name = name_comp1,
2002 .vmux = 3,
2003 .amux = LINE1,
2004 .gpio = 0x801000,
2005 },{
2006 .name = name_tv,
2007 .vmux = 1,
2008 .amux = TV,
2009 .tv = 1,
2010 .gpio = 0x800000,
2011 }},
2012 .radio = {
2013 .name = name_radio,
2014 .amux = TV,
2015 .gpio = 0x880000,
2016 },
2017 .mute = {
2018 .name = name_mute,
2019 .amux = LINE2,
2020 .gpio = 0x840000,
2021 },
2022 },
2023 [SAA7134_BOARD_KWORLD_XPERT] = {
2024 /*
2025 FIXME:
2026 - Remote control doesn't initialize properly.
2027 - Audio volume starts muted,
2028 then gradually increases after channel change.
2029 - Overlay scaling problems (application error?)
2030 - Composite S-Video untested.
2031 From: Konrad Rzepecki <hannibal@megapolis.pl>
2032 */
2033 .name = "Kworld Xpert TV PVR7134",
2034 .audio_clock = 0x00187de7,
2035 .tuner_type = TUNER_TENA_9533_DI,
2036 .radio_type = TUNER_TEA5767,
2037 .tuner_addr = 0x61,
2038 .radio_addr = 0x60,
2039 .gpiomask = 0x0700,
2040 .inputs = {{
2041 .name = name_tv,
2042 .vmux = 1,
2043 .amux = TV,
2044 .tv = 1,
2045 .gpio = 0x000,
2046 },{
2047 .name = name_comp1,
2048 .vmux = 3,
2049 .amux = LINE1,
2050 .gpio = 0x200, /* gpio by DScaler */
2051 },{
2052 .name = name_svideo,
2053 .vmux = 0,
2054 .amux = LINE1,
2055 .gpio = 0x200,
2056 }},
2057 .radio = {
2058 .name = name_radio,
2059 .amux = LINE1,
2060 .gpio = 0x100,
2061 },
2062 .mute = {
2063 .name = name_mute,
2064 .amux = TV,
2065 .gpio = 0x000,
2066 },
2067 },
2068 [SAA7134_BOARD_FLYTV_DIGIMATRIX] = {
2069 .name = "FlyTV mini Asus Digimatrix",
2070 .audio_clock = 0x00200000,
2071 .tuner_type = TUNER_LG_TALN,
2072 .radio_type = UNSET,
2073 .tuner_addr = ADDR_UNSET,
2074 .radio_addr = ADDR_UNSET,
2075 .inputs = {{
2076 .name = name_tv,
2077 .vmux = 1,
2078 .amux = TV,
2079 .tv = 1,
2080 },{
2081 .name = name_tv_mono,
2082 .vmux = 1,
2083 .amux = LINE2,
2084 .tv = 1,
2085 },{
2086 .name = name_comp1,
2087 .vmux = 0,
2088 .amux = LINE2,
2089 },{
2090 .name = name_comp2,
2091 .vmux = 3,
2092 .amux = LINE2,
2093 },{
2094 .name = name_svideo,
2095 .vmux = 8,
2096 .amux = LINE2,
2097 }},
2098 .radio = {
2099 .name = name_radio, /* radio unconfirmed */
2100 .amux = LINE2,
2101 },
2102 },
2103 [SAA7134_BOARD_KWORLD_TERMINATOR] = {
2104 /* Kworld V-Stream Studio TV Terminator */
2105 /* "James Webb <jrwebb@qwest.net> */
2106 .name = "V-Stream Studio TV Terminator",
2107 .audio_clock = 0x00187de7,
2108 .tuner_type = TUNER_PHILIPS_TDA8290,
2109 .radio_type = UNSET,
2110 .tuner_addr = ADDR_UNSET,
2111 .radio_addr = ADDR_UNSET,
2112 .gpiomask = 1 << 21,
2113 .inputs = {{
2114 .name = name_tv,
2115 .vmux = 1,
2116 .amux = TV,
2117 .gpio = 0x0000000,
2118 .tv = 1,
2119 },{
2120 .name = name_comp1, /* Composite input */
2121 .vmux = 3,
2122 .amux = LINE2,
2123 .gpio = 0x0000000,
2124 },{
2125 .name = name_svideo, /* S-Video input */
2126 .vmux = 8,
2127 .amux = LINE2,
2128 .gpio = 0x0000000,
2129 }},
2130 .radio = {
2131 .name = name_radio,
2132 .amux = TV,
2133 .gpio = 0x0200000,
2134 },
2135 },
2136 [SAA7134_BOARD_YUAN_TUN900] = {
2137 /* FIXME:
2138 * S-Video and composite sources untested.
2139 * Radio not working.
2140 * Remote control not yet implemented.
2141 * From : codemaster@webgeeks.be */
2142 .name = "Yuan TUN-900 (saa7135)",
2143 .audio_clock = 0x00187de7,
2144 .tuner_type = TUNER_PHILIPS_TDA8290,
2145 .radio_type = UNSET,
2146 .tuner_addr= ADDR_UNSET,
2147 .radio_addr= ADDR_UNSET,
2148 .gpiomask = 0x00010003,
2149 .inputs = {{
2150 .name = name_tv,
2151 .vmux = 1,
2152 .amux = TV,
2153 .tv = 1,
2154 .gpio = 0x01,
2155 },{
2156 .name = name_comp1,
2157 .vmux = 0,
2158 .amux = LINE2,
2159 .gpio = 0x02,
2160 },{
2161 .name = name_svideo,
2162 .vmux = 6,
2163 .amux = LINE2,
2164 .gpio = 0x02,
2165 }},
2166 .radio = {
2167 .name = name_radio,
2168 .amux = LINE1,
2169 .gpio = 0x00010003,
2170 },
2171 .mute = {
2172 .name = name_mute,
2173 .amux = TV,
2174 .gpio = 0x01,
2175 },
2176 },
2177 [SAA7134_BOARD_BEHOLD_409FM] = {
2178 /* <http://tuner.beholder.ru>, Sergey <skiv@orel.ru> */
2179 .name = "Beholder BeholdTV 409 FM",
2180 .audio_clock = 0x00187de7,
2181 .tuner_type = TUNER_PHILIPS_FM1216ME_MK3,
2182 .radio_type = UNSET,
2183 .tuner_addr = ADDR_UNSET,
2184 .radio_addr = ADDR_UNSET,
2185 .tda9887_conf = TDA9887_PRESENT,
2186 .inputs = {{
2187 .name = name_tv,
2188 .vmux = 3,
2189 .amux = TV,
2190 .tv = 1,
2191 },{
2192 .name = name_comp1,
2193 .vmux = 1,
2194 .amux = LINE1,
2195 },{
2196 .name = name_svideo,
2197 .vmux = 8,
2198 .amux = LINE1,
2199 }},
2200 .radio = {
2201 .name = name_radio,
2202 .amux = LINE2,
2203 },
2204 },
2205 [SAA7134_BOARD_GOTVIEW_7135] = {
2206 /* Mike Baikov <mike@baikov.com> */
2207 /* Andrey Cvetcov <ays14@yandex.ru> */
2208 .name = "GoTView 7135 PCI",
2209 .audio_clock = 0x00187de7,
2210 .tuner_type = TUNER_PHILIPS_FM1216ME_MK3,
2211 .radio_type = UNSET,
2212 .tuner_addr = ADDR_UNSET,
2213 .radio_addr = ADDR_UNSET,
2214 .tda9887_conf = TDA9887_PRESENT,
2215 .gpiomask = 0x00200003,
2216 .inputs = {{
2217 .name = name_tv,
2218 .vmux = 1,
2219 .amux = TV,
2220 .tv = 1,
2221 .gpio = 0x00200003,
2222 },{
2223 .name = name_tv_mono,
2224 .vmux = 1,
2225 .amux = LINE2,
2226 .gpio = 0x00200003,
2227 },{
2228 .name = name_comp1,
2229 .vmux = 3,
2230 .amux = LINE1,
2231 .gpio = 0x00200003,
2232 },{
2233 .name = name_svideo,
2234 .vmux = 8,
2235 .amux = LINE1,
2236 .gpio = 0x00200003,
2237 }},
2238 .radio = {
2239 .name = name_radio,
2240 .amux = LINE2,
2241 .gpio = 0x00200003,
2242 },
2243 .mute = {
2244 .name = name_mute,
2245 .amux = TV,
2246 .gpio = 0x00200003,
2247 },
2248 },
2249 [SAA7134_BOARD_PHILIPS_EUROPA] = {
2250 .name = "Philips EUROPA V3 reference design",
2251 .audio_clock = 0x00187de7,
2252 .tuner_type = TUNER_PHILIPS_TD1316,
2253 .radio_type = UNSET,
2254 .tuner_addr = 0x61,
2255 .radio_addr = ADDR_UNSET,
2256 .tda9887_conf = TDA9887_PRESENT | TDA9887_PORT1_ACTIVE,
2257 .mpeg = SAA7134_MPEG_DVB,
2258 .inputs = {{
2259 .name = name_tv,
2260 .vmux = 3,
2261 .amux = TV,
2262 .tv = 1,
2263 },{
2264 .name = name_comp1,
2265 .vmux = 0,
2266 .amux = LINE2,
2267 },{
2268 .name = name_svideo,
2269 .vmux = 8,
2270 .amux = LINE2,
2271 }},
2272 },
2273 [SAA7134_BOARD_VIDEOMATE_DVBT_300] = {
2274 .name = "Compro Videomate DVB-T300",
2275 .audio_clock = 0x00187de7,
2276 .tuner_type = TUNER_PHILIPS_TD1316,
2277 .radio_type = UNSET,
2278 .tuner_addr = 0x61,
2279 .radio_addr = ADDR_UNSET,
2280 .tda9887_conf = TDA9887_PRESENT | TDA9887_PORT1_ACTIVE,
2281 .mpeg = SAA7134_MPEG_DVB,
2282 .inputs = {{
2283 .name = name_tv,
2284 .vmux = 3,
2285 .amux = TV,
2286 .tv = 1,
2287 },{
2288 .name = name_comp1,
2289 .vmux = 1,
2290 .amux = LINE2,
2291 },{
2292 .name = name_svideo,
2293 .vmux = 8,
2294 .amux = LINE2,
2295 }},
2296 },
2297 [SAA7134_BOARD_VIDEOMATE_DVBT_200] = {
2298 .name = "Compro Videomate DVB-T200",
2299 .tuner_type = TUNER_ABSENT,
2300 .audio_clock = 0x00187de7,
2301 .radio_type = UNSET,
2302 .tuner_addr = ADDR_UNSET,
2303 .radio_addr = ADDR_UNSET,
2304 .mpeg = SAA7134_MPEG_DVB,
2305 .inputs = {{
2306 .name = name_comp1,
2307 .vmux = 0,
2308 .amux = LINE1,
2309 },{
2310 .name = name_svideo,
2311 .vmux = 8,
2312 .amux = LINE1,
2313 }},
2314 },
2315 [SAA7134_BOARD_RTD_VFG7350] = {
2316 .name = "RTD Embedded Technologies VFG7350",
2317 .audio_clock = 0x00200000,
2318 .tuner_type = TUNER_ABSENT,
2319 .radio_type = UNSET,
2320 .tuner_addr = ADDR_UNSET,
2321 .radio_addr = ADDR_UNSET,
2322 .inputs = {{
2323 .name = "Composite 0",
2324 .vmux = 0,
2325 .amux = LINE1,
2326 },{
2327 .name = "Composite 1",
2328 .vmux = 1,
2329 .amux = LINE2,
2330 },{
2331 .name = "Composite 2",
2332 .vmux = 2,
2333 .amux = LINE1,
2334 },{
2335 .name = "Composite 3",
2336 .vmux = 3,
2337 .amux = LINE2,
2338 },{
2339 .name = "S-Video 0",
2340 .vmux = 8,
2341 .amux = LINE1,
2342 },{
2343 .name = "S-Video 1",
2344 .vmux = 9,
2345 .amux = LINE2,
2346 }},
2347 .mpeg = SAA7134_MPEG_EMPRESS,
2348 .video_out = CCIR656,
2349 .vid_port_opts = ( SET_T_CODE_POLARITY_NON_INVERTED |
2350 SET_CLOCK_NOT_DELAYED |
2351 SET_CLOCK_INVERTED |
2352 SET_VSYNC_OFF ),
2353 },
2354 [SAA7134_BOARD_RTD_VFG7330] = {
2355 .name = "RTD Embedded Technologies VFG7330",
2356 .audio_clock = 0x00200000,
2357 .tuner_type = TUNER_ABSENT,
2358 .radio_type = UNSET,
2359 .tuner_addr = ADDR_UNSET,
2360 .radio_addr = ADDR_UNSET,
2361 .inputs = {{
2362 .name = "Composite 0",
2363 .vmux = 0,
2364 .amux = LINE1,
2365 },{
2366 .name = "Composite 1",
2367 .vmux = 1,
2368 .amux = LINE2,
2369 },{
2370 .name = "Composite 2",
2371 .vmux = 2,
2372 .amux = LINE1,
2373 },{
2374 .name = "Composite 3",
2375 .vmux = 3,
2376 .amux = LINE2,
2377 },{
2378 .name = "S-Video 0",
2379 .vmux = 8,
2380 .amux = LINE1,
2381 },{
2382 .name = "S-Video 1",
2383 .vmux = 9,
2384 .amux = LINE2,
2385 }},
2386 },
2387 [SAA7134_BOARD_FLYTVPLATINUM_MINI2] = {
2388 .name = "LifeView FlyTV Platinum Mini2",
2389 .audio_clock = 0x00200000,
2390 .tuner_type = TUNER_PHILIPS_TDA8290,
2391 .radio_type = UNSET,
2392 .tuner_addr = ADDR_UNSET,
2393 .radio_addr = ADDR_UNSET,
2394
2395 .inputs = {{
2396 .name = name_tv,
2397 .vmux = 1,
2398 .amux = TV,
2399 .tv = 1,
2400 },{
2401 .name = name_comp1, /* Composite signal on S-Video input */
2402 .vmux = 0,
2403 .amux = LINE2,
2404 },{
2405 .name = name_comp2, /* Composite input */
2406 .vmux = 3,
2407 .amux = LINE2,
2408 },{
2409 .name = name_svideo,
2410 .vmux = 8,
2411 .amux = LINE2,
2412 }},
2413 },
2414 [SAA7134_BOARD_AVERMEDIA_AVERTVHD_A180] = {
2415 /* Michael Krufky <mkrufky@m1k.net>
2416 * Uses Alps Electric TDHU2, containing NXT2004 ATSC Decoder
2417 * AFAIK, there is no analog demod, thus,
2418 * no support for analog television.
2419 */
2420 .name = "AVerMedia AVerTVHD MCE A180",
2421 .audio_clock = 0x00187de7,
2422 .tuner_type = TUNER_ABSENT,
2423 .radio_type = UNSET,
2424 .tuner_addr = ADDR_UNSET,
2425 .radio_addr = ADDR_UNSET,
2426 .mpeg = SAA7134_MPEG_DVB,
2427 .inputs = {{
2428 .name = name_comp1,
2429 .vmux = 3,
2430 .amux = LINE2,
2431 },{
2432 .name = name_svideo,
2433 .vmux = 8,
2434 .amux = LINE2,
2435 }},
2436 },
2437 [SAA7134_BOARD_MONSTERTV_MOBILE] = {
2438 .name = "SKNet MonsterTV Mobile",
2439 .audio_clock = 0x00187de7,
2440 .tuner_type = TUNER_PHILIPS_TDA8290,
2441 .radio_type = UNSET,
2442 .tuner_addr = ADDR_UNSET,
2443 .radio_addr = ADDR_UNSET,
2444
2445 .inputs = {{
2446 .name = name_tv,
2447 .vmux = 1,
2448 .amux = TV,
2449 .tv = 1,
2450 },{
2451 .name = name_comp1,
2452 .vmux = 3,
2453 .amux = LINE1,
2454 },{
2455 .name = name_svideo,
2456 .vmux = 6,
2457 .amux = LINE1,
2458 }},
2459 },
2460 [SAA7134_BOARD_PINNACLE_PCTV_110i] = {
2461 .name = "Pinnacle PCTV 40i/50i/110i (saa7133)",
2462 .audio_clock = 0x00187de7,
2463 .tuner_type = TUNER_PHILIPS_TDA8290,
2464 .radio_type = UNSET,
2465 .tuner_addr = ADDR_UNSET,
2466 .radio_addr = ADDR_UNSET,
2467 .gpiomask = 0x080200000,
2468 .inputs = {{
2469 .name = name_tv,
2470 .vmux = 4,
2471 .amux = TV,
2472 .tv = 1,
2473 },{
2474 .name = name_comp1,
2475 .vmux = 1,
2476 .amux = LINE2,
2477 },{
2478 .name = name_comp2,
2479 .vmux = 0,
2480 .amux = LINE2,
2481 },{
2482 .name = name_svideo,
2483 .vmux = 8,
2484 .amux = LINE2,
2485 }},
2486 .radio = {
2487 .name = name_radio,
2488 .amux = LINE1,
2489 },
2490 },
2491 [SAA7134_BOARD_ASUSTeK_P7131_DUAL] = {
2492 .name = "ASUSTeK P7131 Dual",
2493 .audio_clock = 0x00187de7,
2494 .tuner_type = TUNER_PHILIPS_TDA8290,
2495 .radio_type = UNSET,
2496 .tuner_addr = ADDR_UNSET,
2497 .radio_addr = ADDR_UNSET,
2498 .gpiomask = 1 << 21,
2499 .mpeg = SAA7134_MPEG_DVB,
2500 .inputs = {{
2501 .name = name_tv,
2502 .vmux = 1,
2503 .amux = TV,
2504 .tv = 1,
2505 .gpio = 0x0000000,
2506 },{
2507 .name = name_comp1,
2508 .vmux = 3,
2509 .amux = LINE2,
2510 .gpio = 0x0200000,
2511 },{
2512 .name = name_comp2,
2513 .vmux = 0,
2514 .amux = LINE2,
2515 .gpio = 0x0200000,
2516 },{
2517 .name = name_svideo,
2518 .vmux = 8,
2519 .amux = LINE2,
2520 .gpio = 0x0200000,
2521 }},
2522 .radio = {
2523 .name = name_radio,
2524 .amux = TV,
2525 .gpio = 0x0200000,
2526 },
2527 },
2528 [SAA7134_BOARD_SEDNA_PC_TV_CARDBUS] = {
2529 /* Paul Tom Zalac <pzalac@gmail.com> */
2530 /* Pavel Mihaylov <bin@bash.info> */
2531 .name = "Sedna/MuchTV PC TV Cardbus TV/Radio (ITO25 Rev:2B)",
2532 /* Sedna/MuchTV (OEM) Cardbus TV Tuner */
2533 .audio_clock = 0x00187de7,
2534 .tuner_type = TUNER_PHILIPS_TDA8290,
2535 .radio_type = UNSET,
2536 .tuner_addr = ADDR_UNSET,
2537 .radio_addr = ADDR_UNSET,
2538 .gpiomask = 0xe880c0,
2539 .inputs = {{
2540 .name = name_tv,
2541 .vmux = 3,
2542 .amux = TV,
2543 .tv = 1,
2544 },{
2545 .name = name_comp1,
2546 .vmux = 1,
2547 .amux = LINE1,
2548 },{
2549 .name = name_svideo,
2550 .vmux = 6,
2551 .amux = LINE1,
2552 }},
2553 .radio = {
2554 .name = name_radio,
2555 .amux = LINE2,
2556 },
2557 },
2558 [SAA7134_BOARD_ASUSTEK_DIGIMATRIX_TV] = {
2559 /* "Cyril Lacoux (Yack)" <clacoux@ifeelgood.org> */
2560 .name = "ASUS Digimatrix TV",
2561 .audio_clock = 0x00200000,
2562 .tuner_type = TUNER_PHILIPS_FQ1216ME,
2563 .tda9887_conf = TDA9887_PRESENT,
2564 .radio_type = UNSET,
2565 .tuner_addr = ADDR_UNSET,
2566 .radio_addr = ADDR_UNSET,
2567 .inputs = {{
2568 .name = name_tv,
2569 .vmux = 1,
2570 .amux = TV,
2571 .tv = 1,
2572 },{
2573 .name = name_comp1,
2574 .vmux = 3,
2575 .amux = LINE1,
2576 },{
2577 .name = name_svideo,
2578 .vmux = 8,
2579 .amux = LINE1,
2580 }},
2581 },
2582 [SAA7134_BOARD_PHILIPS_TIGER] = {
2583 .name = "Philips Tiger reference design",
2584 .audio_clock = 0x00187de7,
2585 .tuner_type = TUNER_PHILIPS_TDA8290,
2586 .radio_type = UNSET,
2587 .tuner_addr = ADDR_UNSET,
2588 .radio_addr = ADDR_UNSET,
2589 .tuner_config = 0,
2590 .mpeg = SAA7134_MPEG_DVB,
2591 .gpiomask = 0x0200000,
2592 .inputs = {{
2593 .name = name_tv,
2594 .vmux = 1,
2595 .amux = TV,
2596 .tv = 1,
2597 },{
2598 .name = name_comp1,
2599 .vmux = 3,
2600 .amux = LINE1,
2601 },{
2602 .name = name_svideo,
2603 .vmux = 8,
2604 .amux = LINE1,
2605 }},
2606 .radio = {
2607 .name = name_radio,
2608 .amux = TV,
2609 .gpio = 0x0200000,
2610 },
2611 },
2612 [SAA7134_BOARD_MSI_TVATANYWHERE_PLUS] = {
2613 .name = "MSI TV@Anywhere plus",
2614 .audio_clock = 0x00187de7,
2615 .tuner_type = TUNER_PHILIPS_TDA8290,
2616 .radio_type = UNSET,
2617 .tuner_addr = ADDR_UNSET,
2618 .radio_addr = ADDR_UNSET,
2619 .gpiomask = 1 << 21,
2620 .inputs = {{
2621 .name = name_tv,
2622 .vmux = 1,
2623 .amux = TV,
2624 .tv = 1,
2625 },{
2626 .name = name_comp1,
2627 .vmux = 3,
2628 .amux = LINE2, /* unconfirmed, taken from Philips driver */
2629 },{
2630 .name = name_comp2,
2631 .vmux = 0, /* untested, Composite over S-Video */
2632 .amux = LINE2,
2633 },{
2634 .name = name_svideo,
2635 .vmux = 8,
2636 .amux = LINE2,
2637 }},
2638 .radio = {
2639 .name = name_radio,
2640 .amux = TV,
2641 .gpio = 0x0200000,
2642 },
2643 },
2644 [SAA7134_BOARD_CINERGY250PCI] = {
2645 /* remote-control does not work. The signal about a
2646 key press comes in via gpio, but the key code
2647 doesn't. Neither does it have an i2c remote control
2648 interface. */
2649 .name = "Terratec Cinergy 250 PCI TV",
2650 .audio_clock = 0x00187de7,
2651 .tuner_type = TUNER_PHILIPS_TDA8290,
2652 .radio_type = UNSET,
2653 .tuner_addr = ADDR_UNSET,
2654 .radio_addr = ADDR_UNSET,
2655 .gpiomask = 0x80200000,
2656 .inputs = {{
2657 .name = name_tv,
2658 .vmux = 1,
2659 .amux = TV,
2660 .tv = 1,
2661 },{
2662 .name = name_svideo, /* NOT tested */
2663 .vmux = 8,
2664 .amux = LINE1,
2665 }},
2666 .radio = {
2667 .name = name_radio,
2668 .amux = TV,
2669 .gpio = 0x0200000,
2670 },
2671 },
2672 [SAA7134_BOARD_FLYDVB_TRIO] = {
2673 /* LifeView LR319 FlyDVB Trio */
2674 /* Peter Missel <peter.missel@onlinehome.de> */
2675 .name = "LifeView FlyDVB Trio",
2676 .audio_clock = 0x00200000,
2677 .tuner_type = TUNER_PHILIPS_TDA8290,
2678 .radio_type = UNSET,
2679 .tuner_addr = ADDR_UNSET,
2680 .radio_addr = ADDR_UNSET,
2681 .gpiomask = 0x00200000,
2682 .mpeg = SAA7134_MPEG_DVB,
2683 .inputs = {{
2684 .name = name_tv, /* Analog broadcast/cable TV */
2685 .vmux = 1,
2686 .amux = TV,
2687 .gpio = 0x200000, /* GPIO21=High for TV input */
2688 .tv = 1,
2689 },{
2690 .name = name_svideo, /* S-Video signal on S-Video input */
2691 .vmux = 8,
2692 .amux = LINE2,
2693 },{
2694 .name = name_comp1, /* Composite signal on S-Video input */
2695 .vmux = 0,
2696 .amux = LINE2,
2697 },{
2698 .name = name_comp2, /* Composite input */
2699 .vmux = 3,
2700 .amux = LINE2,
2701 }},
2702 .radio = {
2703 .name = name_radio,
2704 .amux = TV,
2705 .gpio = 0x000000, /* GPIO21=Low for FM radio antenna */
2706 },
2707 },
2708 [SAA7134_BOARD_AVERMEDIA_777] = {
2709 .name = "AverTV DVB-T 777",
2710 .audio_clock = 0x00187de7,
2711 .tuner_type = TUNER_ABSENT,
2712 .radio_type = UNSET,
2713 .tuner_addr = ADDR_UNSET,
2714 .radio_addr = ADDR_UNSET,
2715 .mpeg = SAA7134_MPEG_DVB,
2716 .inputs = {{
2717 .name = name_comp1,
2718 .vmux = 1,
2719 .amux = LINE1,
2720 },{
2721 .name = name_svideo,
2722 .vmux = 8,
2723 .amux = LINE1,
2724 }},
2725 },
2726 [SAA7134_BOARD_FLYDVBT_LR301] = {
2727 /* LifeView FlyDVB-T */
2728 /* Giampiero Giancipoli <gianci@libero.it> */
2729 .name = "LifeView FlyDVB-T / Genius VideoWonder DVB-T",
2730 .audio_clock = 0x00200000,
2731 .tuner_type = TUNER_ABSENT,
2732 .radio_type = UNSET,
2733 .tuner_addr = ADDR_UNSET,
2734 .radio_addr = ADDR_UNSET,
2735 .mpeg = SAA7134_MPEG_DVB,
2736 .inputs = {{
2737 .name = name_comp1, /* Composite input */
2738 .vmux = 3,
2739 .amux = LINE2,
2740 },{
2741 .name = name_svideo, /* S-Video signal on S-Video input */
2742 .vmux = 8,
2743 .amux = LINE2,
2744 }},
2745 },
2746 [SAA7134_BOARD_ADS_DUO_CARDBUS_PTV331] = {
2747 .name = "ADS Instant TV Duo Cardbus PTV331",
2748 .audio_clock = 0x00200000,
2749 .tuner_type = TUNER_PHILIPS_TDA8290,
2750 .radio_type = UNSET,
2751 .tuner_addr = ADDR_UNSET,
2752 .radio_addr = ADDR_UNSET,
2753 .mpeg = SAA7134_MPEG_DVB,
2754 .gpiomask = 0x00600000, /* Bit 21 0=Radio, Bit 22 0=TV */
2755 .inputs = {{
2756 .name = name_tv,
2757 .vmux = 1,
2758 .amux = TV,
2759 .tv = 1,
2760 .gpio = 0x00200000,
2761 }},
2762 },
2763 [SAA7134_BOARD_TEVION_DVBT_220RF] = {
2764 .name = "Tevion/KWorld DVB-T 220RF",
2765 .audio_clock = 0x00187de7,
2766 .tuner_type = TUNER_PHILIPS_TDA8290,
2767 .radio_type = UNSET,
2768 .tuner_addr = ADDR_UNSET,
2769 .radio_addr = ADDR_UNSET,
2770 .mpeg = SAA7134_MPEG_DVB,
2771 .gpiomask = 1 << 21,
2772 .inputs = {{
2773 .name = name_tv,
2774 .vmux = 1,
2775 .amux = TV,
2776 .tv = 1,
2777 },{
2778 .name = name_comp1,
2779 .vmux = 3,
2780 .amux = LINE1,
2781 },{
2782 .name = name_comp2,
2783 .vmux = 0,
2784 .amux = LINE1,
2785 },{
2786 .name = name_svideo,
2787 .vmux = 8,
2788 .amux = LINE1,
2789 }},
2790 .radio = {
2791 .name = name_radio,
2792 .amux = TV,
2793 .gpio = 0x0200000,
2794 },
2795 },
2796 [SAA7134_BOARD_KWORLD_DVBT_210] = {
2797 .name = "KWorld DVB-T 210",
2798 .audio_clock = 0x00187de7,
2799 .tuner_type = TUNER_PHILIPS_TDA8290,
2800 .radio_type = UNSET,
2801 .tuner_addr = ADDR_UNSET,
2802 .radio_addr = ADDR_UNSET,
2803 .mpeg = SAA7134_MPEG_DVB,
2804 .gpiomask = 1 << 21,
2805 .inputs = {{
2806 .name = name_tv,
2807 .vmux = 1,
2808 .amux = TV,
2809 .tv = 1,
2810 },{
2811 .name = name_comp1,
2812 .vmux = 3,
2813 .amux = LINE1,
2814 },{
2815 .name = name_svideo,
2816 .vmux = 8,
2817 .amux = LINE1,
2818 }},
2819 .radio = {
2820 .name = name_radio,
2821 .amux = TV,
2822 .gpio = 0x0200000,
2823 },
2824 },
2825 [SAA7134_BOARD_KWORLD_ATSC110] = {
2826 .name = "Kworld ATSC110/115",
2827 .audio_clock = 0x00187de7,
2828 .tuner_type = TUNER_PHILIPS_TUV1236D,
2829 .radio_type = UNSET,
2830 .tuner_addr = ADDR_UNSET,
2831 .radio_addr = ADDR_UNSET,
2832 .tda9887_conf = TDA9887_PRESENT,
2833 .mpeg = SAA7134_MPEG_DVB,
2834 .inputs = {{
2835 .name = name_tv,
2836 .vmux = 1,
2837 .amux = TV,
2838 .tv = 1,
2839 },{
2840 .name = name_comp1,
2841 .vmux = 3,
2842 .amux = LINE2,
2843 },{
2844 .name = name_svideo,
2845 .vmux = 8,
2846 .amux = LINE2,
2847 }},
2848 },
2849 [SAA7134_BOARD_AVERMEDIA_A169_B] = {
2850 /* AVerMedia A169 */
2851 /* Rickard Osser <ricky@osser.se> */
2852 /* This card has two saa7134 chips on it,
2853 but only one of them is currently working. */
2854 .name = "AVerMedia A169 B",
2855 .audio_clock = 0x02187de7,
2856 .tuner_type = TUNER_LG_TALN,
2857 .radio_type = UNSET,
2858 .tuner_addr = ADDR_UNSET,
2859 .radio_addr = ADDR_UNSET,
2860 .tda9887_conf = TDA9887_PRESENT,
2861 .gpiomask = 0x0a60000,
2862 },
2863 [SAA7134_BOARD_AVERMEDIA_A169_B1] = {
2864 /* AVerMedia A169 */
2865 /* Rickard Osser <ricky@osser.se> */
2866 .name = "AVerMedia A169 B1",
2867 .audio_clock = 0x02187de7,
2868 .tuner_type = TUNER_LG_TALN,
2869 .radio_type = UNSET,
2870 .tuner_addr = ADDR_UNSET,
2871 .radio_addr = ADDR_UNSET,
2872 .tda9887_conf = TDA9887_PRESENT,
2873 .gpiomask = 0xca60000,
2874 .inputs = {{
2875 .name = name_tv,
2876 .vmux = 4,
2877 .amux = TV,
2878 .tv = 1,
2879 .gpio = 0x04a61000,
2880 },{
2881 .name = name_comp2, /* Composite SVIDEO (B/W if signal is carried with SVIDEO) */
2882 .vmux = 1,
2883 .amux = LINE2,
2884 },{
2885 .name = name_svideo,
2886 .vmux = 9, /* 9 is correct as S-VIDEO1 according to a169.inf! */
2887 .amux = LINE1,
2888 }},
2889 },
2890 [SAA7134_BOARD_MD7134_BRIDGE_2] = {
2891 /* This card has two saa7134 chips on it,
2892 but only one of them is currently working.
2893 The programming for the primary decoder is
2894 in SAA7134_BOARD_MD7134 */
2895 .name = "Medion 7134 Bridge #2",
2896 .audio_clock = 0x00187de7,
2897 .radio_type = UNSET,
2898 .tuner_addr = ADDR_UNSET,
2899 .radio_addr = ADDR_UNSET,
2900 },
2901 [SAA7134_BOARD_FLYDVBT_HYBRID_CARDBUS] = {
2902 .name = "LifeView FlyDVB-T Hybrid Cardbus/MSI TV @nywhere A/D NB",
2903 .audio_clock = 0x00200000,
2904 .tuner_type = TUNER_PHILIPS_TDA8290,
2905 .radio_type = UNSET,
2906 .tuner_addr = ADDR_UNSET,
2907 .radio_addr = ADDR_UNSET,
2908 .mpeg = SAA7134_MPEG_DVB,
2909 .gpiomask = 0x00600000, /* Bit 21 0=Radio, Bit 22 0=TV */
2910 .inputs = {{
2911 .name = name_tv,
2912 .vmux = 1,
2913 .amux = TV,
2914 .gpio = 0x200000, /* GPIO21=High for TV input */
2915 .tv = 1,
2916 },{
2917 .name = name_svideo, /* S-Video signal on S-Video input */
2918 .vmux = 8,
2919 .amux = LINE2,
2920 },{
2921 .name = name_comp1, /* Composite signal on S-Video input */
2922 .vmux = 0,
2923 .amux = LINE2,
2924 },{
2925 .name = name_comp2, /* Composite input */
2926 .vmux = 3,
2927 .amux = LINE2,
2928 }},
2929 .radio = {
2930 .name = name_radio,
2931 .amux = TV,
2932 .gpio = 0x000000, /* GPIO21=Low for FM radio antenna */
2933 },
2934 },
2935 [SAA7134_BOARD_FLYVIDEO3000_NTSC] = {
2936 /* "Zac Bowling" <zac@zacbowling.com> */
2937 .name = "LifeView FlyVIDEO3000 (NTSC)",
2938 .audio_clock = 0x00200000,
2939 .tuner_type = TUNER_PHILIPS_NTSC,
2940 .radio_type = UNSET,
2941 .tuner_addr = ADDR_UNSET,
2942 .radio_addr = ADDR_UNSET,
2943
2944 .gpiomask = 0xe000,
2945 .inputs = {{
2946 .name = name_tv,
2947 .vmux = 1,
2948 .amux = TV,
2949 .gpio = 0x8000,
2950 .tv = 1,
2951 },{
2952 .name = name_tv_mono,
2953 .vmux = 1,
2954 .amux = LINE2,
2955 .gpio = 0x0000,
2956 .tv = 1,
2957 },{
2958 .name = name_comp1,
2959 .vmux = 0,
2960 .amux = LINE2,
2961 .gpio = 0x4000,
2962 },{
2963 .name = name_comp2,
2964 .vmux = 3,
2965 .amux = LINE2,
2966 .gpio = 0x4000,
2967 },{
2968 .name = name_svideo,
2969 .vmux = 8,
2970 .amux = LINE2,
2971 .gpio = 0x4000,
2972 }},
2973 .radio = {
2974 .name = name_radio,
2975 .amux = LINE2,
2976 .gpio = 0x2000,
2977 },
2978 .mute = {
2979 .name = name_mute,
2980 .amux = TV,
2981 .gpio = 0x8000,
2982 },
2983 },
2984 [SAA7134_BOARD_MEDION_MD8800_QUADRO] = {
2985 .name = "Medion Md8800 Quadro",
2986 .audio_clock = 0x00187de7,
2987 .tuner_type = TUNER_PHILIPS_TDA8290,
2988 .radio_type = UNSET,
2989 .tuner_addr = ADDR_UNSET,
2990 .radio_addr = ADDR_UNSET,
2991 .mpeg = SAA7134_MPEG_DVB,
2992 .inputs = {{
2993 .name = name_tv,
2994 .vmux = 1,
2995 .amux = TV,
2996 .tv = 1,
2997 },{
2998 .name = name_comp1,
2999 .vmux = 0,
3000 .amux = LINE1,
3001 },{
3002 .name = name_svideo,
3003 .vmux = 8,
3004 .amux = LINE1,
3005 }},
3006 },
3007 [SAA7134_BOARD_FLYDVBS_LR300] = {
3008 /* LifeView FlyDVB-s */
3009 /* Igor M. Liplianin <liplianin@tut.by> */
3010 .name = "LifeView FlyDVB-S /Acorp TV134DS",
3011 .audio_clock = 0x00200000,
3012 .tuner_type = TUNER_ABSENT,
3013 .radio_type = UNSET,
3014 .tuner_addr = ADDR_UNSET,
3015 .radio_addr = ADDR_UNSET,
3016 .mpeg = SAA7134_MPEG_DVB,
3017 .inputs = {{
3018 .name = name_comp1, /* Composite input */
3019 .vmux = 3,
3020 .amux = LINE1,
3021 },{
3022 .name = name_svideo, /* S-Video signal on S-Video input */
3023 .vmux = 8,
3024 .amux = LINE1,
3025 }},
3026 },
3027 [SAA7134_BOARD_PROTEUS_2309] = {
3028 .name = "Proteus Pro 2309",
3029 .audio_clock = 0x00187de7,
3030 .tuner_type = TUNER_PHILIPS_FM1216ME_MK3,
3031 .radio_type = UNSET,
3032 .tuner_addr = ADDR_UNSET,
3033 .radio_addr = ADDR_UNSET,
3034 .tda9887_conf = TDA9887_PRESENT,
3035 .inputs = {{
3036 .name = name_tv,
3037 .vmux = 1,
3038 .amux = LINE2,
3039 .tv = 1,
3040 },{
3041 .name = name_comp1,
3042 .vmux = 0,
3043 .amux = LINE2,
3044 },{
3045 .name = name_comp2,
3046 .vmux = 3,
3047 .amux = LINE2,
3048 },{
3049 .name = name_svideo,
3050 .vmux = 8,
3051 .amux = LINE2,
3052 }},
3053 .mute = {
3054 .name = name_mute,
3055 .amux = LINE1,
3056 },
3057 },
3058 [SAA7134_BOARD_AVERMEDIA_A16AR] = {
3059 /* Petr Baudis <pasky@ucw.cz> */
3060 .name = "AVerMedia TV Hybrid A16AR",
3061 .audio_clock = 0x187de7,
3062 .tuner_type = TUNER_PHILIPS_TD1316, /* untested */
3063 .radio_type = TUNER_TEA5767, /* untested */
3064 .tuner_addr = ADDR_UNSET,
3065 .radio_addr = ADDR_UNSET,
3066 .tda9887_conf = TDA9887_PRESENT,
3067 .mpeg = SAA7134_MPEG_DVB,
3068 .inputs = {{
3069 .name = name_tv,
3070 .vmux = 1,
3071 .amux = TV,
3072 .tv = 1,
3073 },{
3074 .name = name_comp1,
3075 .vmux = 3,
3076 .amux = LINE2,
3077 },{
3078 .name = name_svideo,
3079 .vmux = 8,
3080 .amux = LINE1,
3081 }},
3082 .radio = {
3083 .name = name_radio,
3084 .amux = LINE1,
3085 },
3086 },
3087 [SAA7134_BOARD_ASUS_EUROPA2_HYBRID] = {
3088 .name = "Asus Europa2 OEM",
3089 .audio_clock = 0x00187de7,
3090 .tuner_type = TUNER_PHILIPS_FMD1216ME_MK3,
3091 .radio_type = UNSET,
3092 .tuner_addr = ADDR_UNSET,
3093 .radio_addr = ADDR_UNSET,
3094 .tda9887_conf = TDA9887_PRESENT| TDA9887_PORT1_ACTIVE | TDA9887_PORT2_ACTIVE,
3095 .mpeg = SAA7134_MPEG_DVB,
3096 .inputs = {{
3097 .name = name_tv,
3098 .vmux = 3,
3099 .amux = TV,
3100 .tv = 1,
3101 },{
3102 .name = name_comp1,
3103 .vmux = 4,
3104 .amux = LINE2,
3105 },{
3106 .name = name_svideo,
3107 .vmux = 8,
3108 .amux = LINE2,
3109 }},
3110 .radio = {
3111 .name = name_radio,
3112 .amux = LINE1,
3113 },
3114 },
3115 [SAA7134_BOARD_PINNACLE_PCTV_310i] = {
3116 .name = "Pinnacle PCTV 310i",
3117 .audio_clock = 0x00187de7,
3118 .tuner_type = TUNER_PHILIPS_TDA8290,
3119 .radio_type = UNSET,
3120 .tuner_addr = ADDR_UNSET,
3121 .radio_addr = ADDR_UNSET,
3122 .tuner_config = 1,
3123 .mpeg = SAA7134_MPEG_DVB,
3124 .gpiomask = 0x000200000,
3125 .inputs = {{
3126 .name = name_tv,
3127 .vmux = 4,
3128 .amux = TV,
3129 .tv = 1,
3130 },{
3131 .name = name_comp1,
3132 .vmux = 1,
3133 .amux = LINE2,
3134 },{
3135 .name = name_comp2,
3136 .vmux = 0,
3137 .amux = LINE2,
3138 },{
3139 .name = name_svideo,
3140 .vmux = 8,
3141 .amux = LINE2,
3142 }},
3143 .radio = {
3144 .name = name_radio,
3145 .amux = TV,
3146 .gpio = 0x0200000,
3147 },
3148 },
3149 [SAA7134_BOARD_AVERMEDIA_STUDIO_507] = {
3150 /* Mikhail Fedotov <mo_fedotov@mail.ru> */
3151 .name = "Avermedia AVerTV Studio 507",
3152 .audio_clock = 0x00187de7,
3153 .tuner_type = TUNER_PHILIPS_FM1256_IH3,
3154 .radio_type = UNSET,
3155 .tuner_addr = ADDR_UNSET,
3156 .radio_addr = ADDR_UNSET,
3157 .tda9887_conf = TDA9887_PRESENT,
3158 .gpiomask = 0x03,
3159 .inputs = {{
3160 .name = name_tv,
3161 .vmux = 1,
3162 .amux = TV,
3163 .tv = 1,
3164 .gpio = 0x00,
3165 },{
3166 .name = name_comp1,
3167 .vmux = 0,
3168 .amux = LINE2,
3169 .gpio = 0x00,
3170 },{
3171 .name = name_comp2,
3172 .vmux = 3,
3173 .amux = LINE2,
3174 .gpio = 0x00,
3175 },{
3176 .name = name_svideo,
3177 .vmux = 8,
3178 .amux = LINE2,
3179 .gpio = 0x00,
3180 }},
3181 .radio = {
3182 .name = name_radio,
3183 .amux = LINE2,
3184 .gpio = 0x01,
3185 },
3186 .mute = {
3187 .name = name_mute,
3188 .amux = LINE1,
3189 .gpio = 0x00,
3190 },
3191 },
3192 [SAA7134_BOARD_VIDEOMATE_DVBT_200A] = {
3193 /* Francis Barber <fedora@barber-family.id.au> */
3194 .name = "Compro Videomate DVB-T200A",
3195 .audio_clock = 0x00187de7,
3196 .tuner_type = TUNER_ABSENT,
3197 .radio_type = UNSET,
3198 .tuner_addr = ADDR_UNSET,
3199 .radio_addr = ADDR_UNSET,
3200 .tda9887_conf = TDA9887_PRESENT | TDA9887_PORT1_ACTIVE,
3201 .mpeg = SAA7134_MPEG_DVB,
3202 .inputs = {{
3203 .name = name_tv,
3204 .vmux = 3,
3205 .amux = TV,
3206 .tv = 1,
3207 },{
3208 .name = name_comp1,
3209 .vmux = 1,
3210 .amux = LINE2,
3211 },{
3212 .name = name_svideo,
3213 .vmux = 8,
3214 .amux = LINE2,
3215 }},
3216 },
3217 [SAA7134_BOARD_HAUPPAUGE_HVR1110] = {
3218 /* Thomas Genty <tomlohave@gmail.com> */
3219 .name = "Hauppauge WinTV-HVR1110 DVB-T/Hybrid",
3220 .audio_clock = 0x00187de7,
3221 .tuner_type = TUNER_PHILIPS_TDA8290,
3222 .radio_type = UNSET,
3223 .tuner_addr = ADDR_UNSET,
3224 .radio_addr = ADDR_UNSET,
3225 .tuner_config = 1,
3226 .mpeg = SAA7134_MPEG_DVB,
3227 .inputs = {{
3228 .name = name_tv,
3229 .vmux = 1,
3230 .amux = TV,
3231 .tv = 1,
3232 },{
3233 .name = name_comp1,
3234 .vmux = 3,
3235 .amux = LINE2, /* FIXME: audio doesn't work on svideo/composite */
3236 },{
3237 .name = name_svideo,
3238 .vmux = 8,
3239 .amux = LINE2, /* FIXME: audio doesn't work on svideo/composite */
3240 }},
3241 .radio = {
3242 .name = name_radio,
3243 .amux = TV,
3244 },
3245 },
3246 [SAA7134_BOARD_CINERGY_HT_PCMCIA] = {
3247 .name = "Terratec Cinergy HT PCMCIA",
3248 .audio_clock = 0x00187de7,
3249 .tuner_type = TUNER_PHILIPS_TDA8290,
3250 .radio_type = UNSET,
3251 .tuner_addr = ADDR_UNSET,
3252 .radio_addr = ADDR_UNSET,
3253 .mpeg = SAA7134_MPEG_DVB,
3254 .inputs = {{
3255 .name = name_tv,
3256 .vmux = 1,
3257 .amux = TV,
3258 .tv = 1,
3259 },{
3260 .name = name_comp1,
3261 .vmux = 0,
3262 .amux = LINE1,
3263 },{
3264 .name = name_svideo,
3265 .vmux = 6,
3266 .amux = LINE1,
3267 }},
3268 },
3269 [SAA7134_BOARD_ENCORE_ENLTV] = {
3270 /* Steven Walter <stevenrwalter@gmail.com>
3271 Juan Pablo Sormani <sorman@gmail.com> */
3272 .name = "Encore ENLTV",
3273 .audio_clock = 0x00200000,
3274 .tuner_type = TUNER_TNF_5335MF,
3275 .radio_type = UNSET,
3276 .tuner_addr = ADDR_UNSET,
3277 .radio_addr = ADDR_UNSET,
3278 .inputs = {{
3279 .name = name_tv,
3280 .vmux = 1,
3281 .amux = 3,
3282 .tv = 1,
3283 },{
3284 .name = name_tv_mono,
3285 .vmux = 7,
3286 .amux = 4,
3287 .tv = 1,
3288 },{
3289 .name = name_comp1,
3290 .vmux = 3,
3291 .amux = 2,
3292 },{
3293 .name = name_svideo,
3294 .vmux = 0,
3295 .amux = 2,
3296 }},
3297 .radio = {
3298 .name = name_radio,
3299 .amux = LINE2,
3300 /* .gpio = 0x00300001,*/
3301 .gpio = 0x20000,
3302
3303 },
3304 .mute = {
3305 .name = name_mute,
3306 .amux = 0,
3307 },
3308 },
3309 [SAA7134_BOARD_ENCORE_ENLTV_FM] = {
3310 /* Juan Pablo Sormani <sorman@gmail.com> */
3311 .name = "Encore ENLTV-FM",
3312 .audio_clock = 0x00200000,
3313 .tuner_type = TUNER_PHILIPS_ATSC,
3314 .radio_type = UNSET,
3315 .tuner_addr = ADDR_UNSET,
3316 .radio_addr = ADDR_UNSET,
3317 .inputs = {{
3318 .name = name_tv,
3319 .vmux = 1,
3320 .amux = 3,
3321 .tv = 1,
3322 },{
3323 .name = name_tv_mono,
3324 .vmux = 7,
3325 .amux = 4,
3326 .tv = 1,
3327 },{
3328 .name = name_comp1,
3329 .vmux = 3,
3330 .amux = 2,
3331 },{
3332 .name = name_svideo,
3333 .vmux = 0,
3334 .amux = 2,
3335 }},
3336 .radio = {
3337 .name = name_radio,
3338 .amux = LINE2,
3339 .gpio = 0x20000,
3340
3341 },
3342 .mute = {
3343 .name = name_mute,
3344 .amux = 0,
3345 },
3346 },
3347 [SAA7134_BOARD_CINERGY_HT_PCI] = {
3348 .name = "Terratec Cinergy HT PCI",
3349 .audio_clock = 0x00187de7,
3350 .tuner_type = TUNER_PHILIPS_TDA8290,
3351 .radio_type = UNSET,
3352 .tuner_addr = ADDR_UNSET,
3353 .radio_addr = ADDR_UNSET,
3354 .mpeg = SAA7134_MPEG_DVB,
3355 .inputs = {{
3356 .name = name_tv,
3357 .vmux = 1,
3358 .amux = TV,
3359 .tv = 1,
3360 },{
3361 .name = name_comp1,
3362 .vmux = 0,
3363 .amux = LINE1,
3364 },{
3365 .name = name_svideo,
3366 .vmux = 6,
3367 .amux = LINE1,
3368 }},
3369 },
3370 [SAA7134_BOARD_PHILIPS_TIGER_S] = {
3371 .name = "Philips Tiger - S Reference design",
3372 .audio_clock = 0x00187de7,
3373 .tuner_type = TUNER_PHILIPS_TDA8290,
3374 .radio_type = UNSET,
3375 .tuner_addr = ADDR_UNSET,
3376 .radio_addr = ADDR_UNSET,
3377 .tuner_config = 2,
3378 .mpeg = SAA7134_MPEG_DVB,
3379 .gpiomask = 0x0200000,
3380 .inputs = {{
3381 .name = name_tv,
3382 .vmux = 1,
3383 .amux = TV,
3384 .tv = 1,
3385 },{
3386 .name = name_comp1,
3387 .vmux = 3,
3388 .amux = LINE1,
3389 },{
3390 .name = name_svideo,
3391 .vmux = 8,
3392 .amux = LINE1,
3393 }},
3394 .radio = {
3395 .name = name_radio,
3396 .amux = TV,
3397 .gpio = 0x0200000,
3398 },
3399 },
3400 [SAA7134_BOARD_AVERMEDIA_M102] = {
3401 .name = "Avermedia M102",
3402 .audio_clock = 0x00187de7,
3403 .tuner_type = TUNER_PHILIPS_TDA8290,
3404 .radio_type = UNSET,
3405 .tuner_addr = ADDR_UNSET,
3406 .radio_addr = ADDR_UNSET,
3407 .gpiomask = 1<<21,
3408 .inputs = {{
3409 .name = name_tv,
3410 .vmux = 1,
3411 .amux = TV,
3412 .tv = 1,
3413 },{
3414 .name = name_comp1,
3415 .vmux = 0,
3416 .amux = LINE2,
3417 },{
3418 .name = name_svideo,
3419 .vmux = 6,
3420 .amux = LINE2,
3421 }},
3422 },
3423 [SAA7134_BOARD_ASUS_P7131_4871] = {
3424 .name = "ASUS P7131 4871",
3425 .audio_clock = 0x00187de7,
3426 .tuner_type = TUNER_PHILIPS_TDA8290,
3427 .radio_type = UNSET,
3428 .tuner_addr = ADDR_UNSET,
3429 .radio_addr = ADDR_UNSET,
3430 .tuner_config = 2,
3431 .mpeg = SAA7134_MPEG_DVB,
3432 .gpiomask = 0x0200000,
3433 .inputs = {{
3434 .name = name_tv,
3435 .vmux = 1,
3436 .amux = TV,
3437 .tv = 1,
3438 .gpio = 0x0200000,
3439 }},
3440 },
3441 [SAA7134_BOARD_ASUSTeK_P7131_HYBRID_LNA] = {
3442 .name = "ASUSTeK P7131 Hybrid",
3443 .audio_clock = 0x00187de7,
3444 .tuner_type = TUNER_PHILIPS_TDA8290,
3445 .radio_type = UNSET,
3446 .tuner_addr = ADDR_UNSET,
3447 .radio_addr = ADDR_UNSET,
3448 .tuner_config = 2,
3449 .gpiomask = 1 << 21,
3450 .mpeg = SAA7134_MPEG_DVB,
3451 .inputs = {{
3452 .name = name_tv,
3453 .vmux = 1,
3454 .amux = TV,
3455 .tv = 1,
3456 .gpio = 0x0000000,
3457 },{
3458 .name = name_comp1,
3459 .vmux = 3,
3460 .amux = LINE2,
3461 .gpio = 0x0200000,
3462 },{
3463 .name = name_comp2,
3464 .vmux = 0,
3465 .amux = LINE2,
3466 .gpio = 0x0200000,
3467 },{
3468 .name = name_svideo,
3469 .vmux = 8,
3470 .amux = LINE2,
3471 .gpio = 0x0200000,
3472 }},
3473 .radio = {
3474 .name = name_radio,
3475 .amux = TV,
3476 .gpio = 0x0200000,
3477 },
3478 },
3479 [SAA7134_BOARD_SABRENT_TV_PCB05] = {
3480 .name = "Sabrent PCMCIA TV-PCB05",
3481 .audio_clock = 0x00187de7,
3482 .tuner_type = TUNER_PHILIPS_TDA8290,
3483 .radio_type = UNSET,
3484 .tuner_addr = ADDR_UNSET,
3485 .radio_addr = ADDR_UNSET,
3486 .inputs = {{
3487 .name = name_tv,
3488 .vmux = 1,
3489 .amux = TV,
3490 .tv = 1,
3491 },{
3492 .name = name_comp1,
3493 .vmux = 3,
3494 .amux = LINE1,
3495 },{
3496 .name = name_comp2,
3497 .vmux = 0,
3498 .amux = LINE1,
3499 },{
3500 .name = name_svideo,
3501 .vmux = 8,
3502 .amux = LINE1,
3503 }},
3504 .mute = {
3505 .name = name_mute,
3506 .amux = TV,
3507 },
3508 },
3509 [SAA7134_BOARD_10MOONSTVMASTER3] = {
3510 /* Tony Wan <aloha_cn@hotmail.com> */
3511 .name = "10MOONS TM300 TV Card",
3512 .audio_clock = 0x00200000,
3513 .tuner_type = TUNER_LG_PAL_NEW_TAPC,
3514 .radio_type = UNSET,
3515 .tuner_addr = ADDR_UNSET,
3516 .radio_addr = ADDR_UNSET,
3517 .gpiomask = 0x7000,
3518 .inputs = {{
3519 .name = name_tv,
3520 .vmux = 1,
3521 .amux = LINE2,
3522 .gpio = 0x0000,
3523 .tv = 1,
3524 },{
3525 .name = name_comp1,
3526 .vmux = 3,
3527 .amux = LINE1,
3528 .gpio = 0x2000,
3529 },{
3530 .name = name_svideo,
3531 .vmux = 8,
3532 .amux = LINE1,
3533 .gpio = 0x2000,
3534 }},
3535 .mute = {
3536 .name = name_mute,
3537 .amux = LINE2,
3538 .gpio = 0x3000,
3539 },
3540 },
3541 [SAA7134_BOARD_AVERMEDIA_SUPER_007] = {
3542 .name = "Avermedia Super 007",
3543 .audio_clock = 0x00187de7,
3544 .tuner_type = TUNER_PHILIPS_TDA8290,
3545 .radio_type = UNSET,
3546 .tuner_addr = ADDR_UNSET,
3547 .radio_addr = ADDR_UNSET,
3548 .tuner_config = 0,
3549 .mpeg = SAA7134_MPEG_DVB,
3550 .inputs = {{
3551 .name = name_tv, /* FIXME: analog tv untested */
3552 .vmux = 1,
3553 .amux = TV,
3554 .tv = 1,
3555 }},
3556 },
3557 };
3558
3559 const unsigned int saa7134_bcount = ARRAY_SIZE(saa7134_boards);
3560
3561 /* ------------------------------------------------------------------ */
3562 /* PCI ids + subsystem IDs */
3563
3564 struct pci_device_id saa7134_pci_tbl[] = {
3565 {
3566 .vendor = PCI_VENDOR_ID_PHILIPS,
3567 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
3568 .subvendor = PCI_VENDOR_ID_PHILIPS,
3569 .subdevice = 0x2001,
3570 .driver_data = SAA7134_BOARD_PROTEUS_PRO,
3571 },{
3572 .vendor = PCI_VENDOR_ID_PHILIPS,
3573 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
3574 .subvendor = PCI_VENDOR_ID_PHILIPS,
3575 .subdevice = 0x2001,
3576 .driver_data = SAA7134_BOARD_PROTEUS_PRO,
3577 },{
3578 .vendor = PCI_VENDOR_ID_PHILIPS,
3579 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
3580 .subvendor = PCI_VENDOR_ID_PHILIPS,
3581 .subdevice = 0x6752,
3582 .driver_data = SAA7134_BOARD_EMPRESS,
3583 },{
3584 .vendor = PCI_VENDOR_ID_PHILIPS,
3585 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
3586 .subvendor = 0x1131,
3587 .subdevice = 0x4e85,
3588 .driver_data = SAA7134_BOARD_MONSTERTV,
3589 },{
3590 .vendor = PCI_VENDOR_ID_PHILIPS,
3591 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
3592 .subvendor = 0x153b,
3593 .subdevice = 0x1142,
3594 .driver_data = SAA7134_BOARD_CINERGY400,
3595 },{
3596 .vendor = PCI_VENDOR_ID_PHILIPS,
3597 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
3598 .subvendor = 0x153b,
3599 .subdevice = 0x1143,
3600 .driver_data = SAA7134_BOARD_CINERGY600,
3601 },{
3602 .vendor = PCI_VENDOR_ID_PHILIPS,
3603 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
3604 .subvendor = 0x153b,
3605 .subdevice = 0x1158,
3606 .driver_data = SAA7134_BOARD_CINERGY600_MK3,
3607 },{
3608 .vendor = PCI_VENDOR_ID_PHILIPS,
3609 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
3610 .subvendor = 0x153b,
3611 .subdevice = 0x1162,
3612 .driver_data = SAA7134_BOARD_CINERGY400_CARDBUS,
3613 },{
3614 .vendor = PCI_VENDOR_ID_PHILIPS,
3615 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
3616 .subvendor = 0x5169,
3617 .subdevice = 0x0138,
3618 .driver_data = SAA7134_BOARD_FLYVIDEO3000_NTSC,
3619 },{
3620 .vendor = PCI_VENDOR_ID_PHILIPS,
3621 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
3622 .subvendor = 0x5168,
3623 .subdevice = 0x0138,
3624 .driver_data = SAA7134_BOARD_FLYVIDEO3000,
3625 },{
3626 .vendor = PCI_VENDOR_ID_PHILIPS,
3627 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
3628 .subvendor = 0x4e42, /* "Typhoon PCI Capture TV Card" Art.No. 50673 */
3629 .subdevice = 0x0138,
3630 .driver_data = SAA7134_BOARD_FLYVIDEO3000,
3631 },{
3632 .vendor = PCI_VENDOR_ID_PHILIPS,
3633 .device = PCI_DEVICE_ID_PHILIPS_SAA7130,
3634 .subvendor = 0x5168,
3635 .subdevice = 0x0138,
3636 .driver_data = SAA7134_BOARD_FLYVIDEO2000,
3637 },{
3638 .vendor = PCI_VENDOR_ID_PHILIPS,
3639 .device = PCI_DEVICE_ID_PHILIPS_SAA7130,
3640 .subvendor = 0x4e42, /* Typhoon */
3641 .subdevice = 0x0138, /* LifeView FlyTV Prime30 OEM */
3642 .driver_data = SAA7134_BOARD_FLYVIDEO2000,
3643 },{
3644 .vendor = PCI_VENDOR_ID_PHILIPS,
3645 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
3646 .subvendor = 0x5168,
3647 .subdevice = 0x0212, /* minipci, LR212 */
3648 .driver_data = SAA7134_BOARD_FLYTVPLATINUM_MINI,
3649 },{
3650 .vendor = PCI_VENDOR_ID_PHILIPS,
3651 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
3652 .subvendor = 0x14c0,
3653 .subdevice = 0x1212, /* minipci, LR1212 */
3654 .driver_data = SAA7134_BOARD_FLYTVPLATINUM_MINI2,
3655 },{
3656 .vendor = PCI_VENDOR_ID_PHILIPS,
3657 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
3658 .subvendor = 0x4e42,
3659 .subdevice = 0x0212, /* OEM minipci, LR212 */
3660 .driver_data = SAA7134_BOARD_FLYTVPLATINUM_MINI,
3661 },{
3662 .vendor = PCI_VENDOR_ID_PHILIPS,
3663 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
3664 .subvendor = 0x5168, /* Animation Technologies (LifeView) */
3665 .subdevice = 0x0214, /* Standard PCI, LR214 Rev E and earlier (SAA7135) */
3666 .driver_data = SAA7134_BOARD_FLYTVPLATINUM_FM,
3667 },{
3668 .vendor = PCI_VENDOR_ID_PHILIPS,
3669 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
3670 .subvendor = 0x5168, /* Animation Technologies (LifeView) */
3671 .subdevice = 0x5214, /* Standard PCI, LR214 Rev F onwards (SAA7131) */
3672 .driver_data = SAA7134_BOARD_FLYTVPLATINUM_FM,
3673 },{
3674 .vendor = PCI_VENDOR_ID_PHILIPS,
3675 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
3676 .subvendor = 0x1489, /* KYE */
3677 .subdevice = 0x0214, /* Genius VideoWonder ProTV */
3678 .driver_data = SAA7134_BOARD_FLYTVPLATINUM_FM, /* is an LR214WF actually */
3679 },{
3680 .vendor = PCI_VENDOR_ID_PHILIPS,
3681 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
3682 .subvendor = 0x16be,
3683 .subdevice = 0x0003,
3684 .driver_data = SAA7134_BOARD_MD7134,
3685 },{
3686 .vendor = PCI_VENDOR_ID_PHILIPS,
3687 .device = PCI_DEVICE_ID_PHILIPS_SAA7130,
3688 .subvendor = 0x1048,
3689 .subdevice = 0x226b,
3690 .driver_data = SAA7134_BOARD_ELSA,
3691 },{
3692 .vendor = PCI_VENDOR_ID_PHILIPS,
3693 .device = PCI_DEVICE_ID_PHILIPS_SAA7130,
3694 .subvendor = 0x1048,
3695 .subdevice = 0x226a,
3696 .driver_data = SAA7134_BOARD_ELSA_500TV,
3697 },{
3698 .vendor = PCI_VENDOR_ID_PHILIPS,
3699 .device = PCI_DEVICE_ID_PHILIPS_SAA7130,
3700 .subvendor = 0x1048,
3701 .subdevice = 0x226c,
3702 .driver_data = SAA7134_BOARD_ELSA_700TV,
3703 },{
3704 .vendor = PCI_VENDOR_ID_PHILIPS,
3705 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
3706 .subvendor = PCI_VENDOR_ID_ASUSTEK,
3707 .subdevice = 0x4842,
3708 .driver_data = SAA7134_BOARD_ASUSTeK_TVFM7134,
3709 },{
3710 .vendor = PCI_VENDOR_ID_PHILIPS,
3711 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
3712 .subvendor = PCI_VENDOR_ID_ASUSTEK,
3713 .subdevice = 0x4845,
3714 .driver_data = SAA7134_BOARD_ASUSTeK_TVFM7135,
3715 },{
3716 .vendor = PCI_VENDOR_ID_PHILIPS,
3717 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
3718 .subvendor = PCI_VENDOR_ID_ASUSTEK,
3719 .subdevice = 0x4830,
3720 .driver_data = SAA7134_BOARD_ASUSTeK_TVFM7134,
3721 },{
3722 .vendor = PCI_VENDOR_ID_PHILIPS,
3723 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
3724 .subvendor = PCI_VENDOR_ID_ASUSTEK,
3725 .subdevice = 0x4843,
3726 .driver_data = SAA7134_BOARD_ASUSTEK_TVFM7133,
3727 },{
3728 .vendor = PCI_VENDOR_ID_PHILIPS,
3729 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
3730 .subvendor = PCI_VENDOR_ID_ASUSTEK,
3731 .subdevice = 0x4840,
3732 .driver_data = SAA7134_BOARD_ASUSTeK_TVFM7134,
3733 },{
3734 .vendor = PCI_VENDOR_ID_PHILIPS,
3735 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
3736 .subvendor = PCI_VENDOR_ID_PHILIPS,
3737 .subdevice = 0xfe01,
3738 .driver_data = SAA7134_BOARD_TVSTATION_RDS,
3739 },{
3740 .vendor = PCI_VENDOR_ID_PHILIPS,
3741 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
3742 .subvendor = 0x1894,
3743 .subdevice = 0xfe01,
3744 .driver_data = SAA7134_BOARD_TVSTATION_RDS,
3745 },{
3746 .vendor = PCI_VENDOR_ID_PHILIPS,
3747 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
3748 .subvendor = 0x1894,
3749 .subdevice = 0xa006,
3750 .driver_data = SAA7134_BOARD_TVSTATION_DVR,
3751 },{
3752 .vendor = PCI_VENDOR_ID_PHILIPS,
3753 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
3754 .subvendor = 0x1131,
3755 .subdevice = 0x7133,
3756 .driver_data = SAA7134_BOARD_VA1000POWER,
3757 },{
3758 .vendor = PCI_VENDOR_ID_PHILIPS,
3759 .device = PCI_DEVICE_ID_PHILIPS_SAA7130,
3760 .subvendor = PCI_VENDOR_ID_PHILIPS,
3761 .subdevice = 0x2001,
3762 .driver_data = SAA7134_BOARD_10MOONSTVMASTER,
3763 },{
3764 .vendor = PCI_VENDOR_ID_PHILIPS,
3765 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
3766 .subvendor = 0x185b,
3767 .subdevice = 0xc100,
3768 .driver_data = SAA7134_BOARD_VIDEOMATE_TV,
3769 },{
3770 .vendor = PCI_VENDOR_ID_PHILIPS,
3771 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
3772 .subvendor = 0x185b,
3773 .subdevice = 0xc100,
3774 .driver_data = SAA7134_BOARD_VIDEOMATE_TV_GOLD_PLUS,
3775 },{
3776 .vendor = PCI_VENDOR_ID_PHILIPS,
3777 .device = PCI_DEVICE_ID_PHILIPS_SAA7130,
3778 .subvendor = PCI_VENDOR_ID_MATROX,
3779 .subdevice = 0x48d0,
3780 .driver_data = SAA7134_BOARD_CRONOS_PLUS,
3781 },{
3782 .vendor = PCI_VENDOR_ID_PHILIPS,
3783 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
3784 .subvendor = 0x1461, /* Avermedia Technologies Inc */
3785 .subdevice = 0xa70b,
3786 .driver_data = SAA7134_BOARD_MD2819,
3787 },{
3788 .vendor = PCI_VENDOR_ID_PHILIPS,
3789 .device = PCI_DEVICE_ID_PHILIPS_SAA7130,
3790 .subvendor = 0x1461, /* Avermedia Technologies Inc */
3791 .subdevice = 0x2115,
3792 .driver_data = SAA7134_BOARD_AVERMEDIA_STUDIO_305,
3793 },{
3794 .vendor = PCI_VENDOR_ID_PHILIPS,
3795 .device = PCI_DEVICE_ID_PHILIPS_SAA7130,
3796 .subvendor = 0x1461, /* Avermedia Technologies Inc */
3797 .subdevice = 0x2108,
3798 .driver_data = SAA7134_BOARD_AVERMEDIA_305,
3799 },{
3800 .vendor = PCI_VENDOR_ID_PHILIPS,
3801 .device = PCI_DEVICE_ID_PHILIPS_SAA7130,
3802 .subvendor = 0x1461, /* Avermedia Technologies Inc */
3803 .subdevice = 0x10ff,
3804 .driver_data = SAA7134_BOARD_AVERMEDIA_DVD_EZMAKER,
3805 },{
3806 /* AVerMedia CardBus */
3807 .vendor = PCI_VENDOR_ID_PHILIPS,
3808 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
3809 .subvendor = 0x1461, /* Avermedia Technologies Inc */
3810 .subdevice = 0xd6ee,
3811 .driver_data = SAA7134_BOARD_AVERMEDIA_CARDBUS,
3812 },{
3813 /* TransGear 3000TV */
3814 .vendor = PCI_VENDOR_ID_PHILIPS,
3815 .device = PCI_DEVICE_ID_PHILIPS_SAA7130,
3816 .subvendor = 0x1461, /* Avermedia Technologies Inc */
3817 .subdevice = 0x050c,
3818 .driver_data = SAA7134_BOARD_TG3000TV,
3819 },{
3820 .vendor = PCI_VENDOR_ID_PHILIPS,
3821 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
3822 .subvendor = 0x11bd,
3823 .subdevice = 0x002b,
3824 .driver_data = SAA7134_BOARD_PINNACLE_PCTV_STEREO,
3825 },{
3826 .vendor = PCI_VENDOR_ID_PHILIPS,
3827 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
3828 .subvendor = 0x11bd,
3829 .subdevice = 0x002d,
3830 .driver_data = SAA7134_BOARD_PINNACLE_300I_DVBT_PAL,
3831 },{
3832 .vendor = PCI_VENDOR_ID_PHILIPS,
3833 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
3834 .subvendor = 0x1019,
3835 .subdevice = 0x4cb4,
3836 .driver_data = SAA7134_BOARD_ECS_TVP3XP,
3837 },{
3838 .vendor = PCI_VENDOR_ID_PHILIPS,
3839 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
3840 .subvendor = 0x1019,
3841 .subdevice = 0x4cb5,
3842 .driver_data = SAA7134_BOARD_ECS_TVP3XP_4CB5,
3843 },{
3844 .vendor = PCI_VENDOR_ID_PHILIPS,
3845 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
3846 .subvendor = 0x1019,
3847 .subdevice = 0x4cb6,
3848 .driver_data = SAA7134_BOARD_ECS_TVP3XP_4CB6,
3849 },{
3850 .vendor = PCI_VENDOR_ID_PHILIPS,
3851 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
3852 .subvendor = 0x12ab,
3853 .subdevice = 0x0800,
3854 .driver_data = SAA7134_BOARD_UPMOST_PURPLE_TV,
3855 },{
3856 .vendor = PCI_VENDOR_ID_PHILIPS,
3857 .device = PCI_DEVICE_ID_PHILIPS_SAA7130,
3858 .subvendor = 0x153b,
3859 .subdevice = 0x1152,
3860 .driver_data = SAA7134_BOARD_CINERGY200,
3861 },{
3862 .vendor = PCI_VENDOR_ID_PHILIPS,
3863 .device = PCI_DEVICE_ID_PHILIPS_SAA7130,
3864 .subvendor = 0x185b,
3865 .subdevice = 0xc100,
3866 .driver_data = SAA7134_BOARD_VIDEOMATE_TV_PVR,
3867 },{
3868 .vendor = PCI_VENDOR_ID_PHILIPS,
3869 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
3870 .subvendor = 0x1461, /* Avermedia Technologies Inc */
3871 .subdevice = 0x9715,
3872 .driver_data = SAA7134_BOARD_AVERMEDIA_STUDIO_307,
3873 },{
3874 .vendor = PCI_VENDOR_ID_PHILIPS,
3875 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
3876 .subvendor = 0x1461, /* Avermedia Technologies Inc */
3877 .subdevice = 0xa70a,
3878 .driver_data = SAA7134_BOARD_AVERMEDIA_307,
3879 },{
3880 .vendor = PCI_VENDOR_ID_PHILIPS,
3881 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
3882 .subvendor = 0x185b,
3883 .subdevice = 0xc200,
3884 .driver_data = SAA7134_BOARD_VIDEOMATE_GOLD_PLUS,
3885 },{
3886 .vendor = PCI_VENDOR_ID_PHILIPS,
3887 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
3888 .subvendor = 0x1540,
3889 .subdevice = 0x9524,
3890 .driver_data = SAA7134_BOARD_PROVIDEO_PV952,
3891
3892 },{
3893 .vendor = PCI_VENDOR_ID_PHILIPS,
3894 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
3895 .subvendor = 0x5168,
3896 .subdevice = 0x0502, /* Cardbus version */
3897 .driver_data = SAA7134_BOARD_FLYDVBT_DUO_CARDBUS,
3898 },{
3899 .vendor = PCI_VENDOR_ID_PHILIPS,
3900 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
3901 .subvendor = 0x5168,
3902 .subdevice = 0x0306, /* PCI version */
3903 .driver_data = SAA7134_BOARD_FLYDVBTDUO,
3904 },{
3905 .vendor = PCI_VENDOR_ID_PHILIPS,
3906 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
3907 .subvendor = 0x1461, /* Avermedia Technologies Inc */
3908 .subdevice = 0xf31f,
3909 .driver_data = SAA7134_BOARD_AVERMEDIA_GO_007_FM,
3910
3911 },{
3912 .vendor = PCI_VENDOR_ID_PHILIPS,
3913 .device = PCI_DEVICE_ID_PHILIPS_SAA7130,
3914 .subvendor = PCI_VENDOR_ID_PHILIPS,
3915 .subdevice = 0x2004,
3916 .driver_data = SAA7134_BOARD_PHILIPS_TOUGH,
3917 },{
3918 .vendor = PCI_VENDOR_ID_PHILIPS,
3919 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
3920 .subvendor = 0x1421,
3921 .subdevice = 0x0350, /* PCI version */
3922 .driver_data = SAA7134_BOARD_ADS_INSTANT_TV,
3923 },{
3924 .vendor = PCI_VENDOR_ID_PHILIPS,
3925 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
3926 .subvendor = 0x1421,
3927 .subdevice = 0x0351, /* PCI version, new revision */
3928 .driver_data = SAA7134_BOARD_ADS_INSTANT_TV,
3929 },{
3930 .vendor = PCI_VENDOR_ID_PHILIPS,
3931 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
3932 .subvendor = 0x1421,
3933 .subdevice = 0x0370, /* cardbus version */
3934 .driver_data = SAA7134_BOARD_ADS_INSTANT_TV,
3935 },{
3936 .vendor = PCI_VENDOR_ID_PHILIPS,
3937 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
3938 .subvendor = 0x1421,
3939 .subdevice = 0x1370, /* cardbus version */
3940 .driver_data = SAA7134_BOARD_ADS_INSTANT_TV,
3941
3942 },{
3943 .vendor = PCI_VENDOR_ID_PHILIPS,
3944 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
3945 .subvendor = 0x4e42, /* Typhoon */
3946 .subdevice = 0x0502, /* LifeView LR502 OEM */
3947 .driver_data = SAA7134_BOARD_FLYDVBT_DUO_CARDBUS,
3948 },{
3949 .vendor = PCI_VENDOR_ID_PHILIPS,
3950 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
3951 .subvendor = 0x1043,
3952 .subdevice = 0x0210, /* mini pci NTSC version */
3953 .driver_data = SAA7134_BOARD_FLYTV_DIGIMATRIX,
3954 },{
3955 .vendor = PCI_VENDOR_ID_PHILIPS,
3956 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
3957 .subvendor = 0x1043,
3958 .subdevice = 0x0210, /* mini pci PAL/SECAM version */
3959 .driver_data = SAA7134_BOARD_ASUSTEK_DIGIMATRIX_TV,
3960
3961 },{
3962 .vendor = PCI_VENDOR_ID_PHILIPS,
3963 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
3964 .subvendor = 0x0000, /* It shouldn't break anything, since subdevice id seems unique */
3965 .subdevice = 0x4091,
3966 .driver_data = SAA7134_BOARD_BEHOLD_409FM,
3967 },{
3968 .vendor = PCI_VENDOR_ID_PHILIPS,
3969 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
3970 .subvendor = 0x5456, /* GoTView */
3971 .subdevice = 0x7135,
3972 .driver_data = SAA7134_BOARD_GOTVIEW_7135,
3973 },{
3974 .vendor = PCI_VENDOR_ID_PHILIPS,
3975 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
3976 .subvendor = PCI_VENDOR_ID_PHILIPS,
3977 .subdevice = 0x2004,
3978 .driver_data = SAA7134_BOARD_PHILIPS_EUROPA,
3979 },{
3980 .vendor = PCI_VENDOR_ID_PHILIPS,
3981 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
3982 .subvendor = 0x185b,
3983 .subdevice = 0xc900,
3984 .driver_data = SAA7134_BOARD_VIDEOMATE_DVBT_300,
3985 },{
3986 .vendor = PCI_VENDOR_ID_PHILIPS,
3987 .device = PCI_DEVICE_ID_PHILIPS_SAA7130,
3988 .subvendor = 0x185b,
3989 .subdevice = 0xc901,
3990 .driver_data = SAA7134_BOARD_VIDEOMATE_DVBT_200,
3991 },{
3992 .vendor = PCI_VENDOR_ID_PHILIPS,
3993 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
3994 .subvendor = 0x1435,
3995 .subdevice = 0x7350,
3996 .driver_data = SAA7134_BOARD_RTD_VFG7350,
3997 },{
3998 .vendor = PCI_VENDOR_ID_PHILIPS,
3999 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
4000 .subvendor = 0x1435,
4001 .subdevice = 0x7330,
4002 .driver_data = SAA7134_BOARD_RTD_VFG7330,
4003 },{
4004 .vendor = PCI_VENDOR_ID_PHILIPS,
4005 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
4006 .subvendor = 0x1461,
4007 .subdevice = 0x1044,
4008 .driver_data = SAA7134_BOARD_AVERMEDIA_AVERTVHD_A180,
4009 },{
4010 .vendor = PCI_VENDOR_ID_PHILIPS,
4011 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
4012 .subvendor = 0x1131,
4013 .subdevice = 0x4ee9,
4014 .driver_data = SAA7134_BOARD_MONSTERTV_MOBILE,
4015 },{
4016 .vendor = PCI_VENDOR_ID_PHILIPS,
4017 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
4018 .subvendor = 0x11bd,
4019 .subdevice = 0x002e,
4020 .driver_data = SAA7134_BOARD_PINNACLE_PCTV_110i,
4021 },{
4022 .vendor = PCI_VENDOR_ID_PHILIPS,
4023 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
4024 .subvendor = 0x1043,
4025 .subdevice = 0x4862,
4026 .driver_data = SAA7134_BOARD_ASUSTeK_P7131_DUAL,
4027 },{
4028 .vendor = PCI_VENDOR_ID_PHILIPS,
4029 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
4030 .subvendor = PCI_VENDOR_ID_PHILIPS,
4031 .subdevice = 0x2018,
4032 .driver_data = SAA7134_BOARD_PHILIPS_TIGER,
4033 },{
4034 .vendor = PCI_VENDOR_ID_PHILIPS,
4035 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
4036 .subvendor = 0x1462,
4037 .subdevice = 0x6231,
4038 .driver_data = SAA7134_BOARD_MSI_TVATANYWHERE_PLUS,
4039 },{
4040 .vendor = PCI_VENDOR_ID_PHILIPS,
4041 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
4042 .subvendor = 0x153b,
4043 .subdevice = 0x1160,
4044 .driver_data = SAA7134_BOARD_CINERGY250PCI,
4045 },{
4046 .vendor = PCI_VENDOR_ID_PHILIPS,
4047 .device = PCI_DEVICE_ID_PHILIPS_SAA7133, /* SAA 7131E */
4048 .subvendor = 0x5168,
4049 .subdevice = 0x0319,
4050 .driver_data = SAA7134_BOARD_FLYDVB_TRIO,
4051 },{
4052 .vendor = PCI_VENDOR_ID_PHILIPS,
4053 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
4054 .subvendor = 0x1461,
4055 .subdevice = 0x2c05,
4056 .driver_data = SAA7134_BOARD_AVERMEDIA_777,
4057 },{
4058 .vendor = PCI_VENDOR_ID_PHILIPS,
4059 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
4060 .subvendor = 0x5168,
4061 .subdevice = 0x0301,
4062 .driver_data = SAA7134_BOARD_FLYDVBT_LR301,
4063 },{
4064 .vendor = PCI_VENDOR_ID_PHILIPS,
4065 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
4066 .subvendor = 0x0331,
4067 .subdevice = 0x1421,
4068 .driver_data = SAA7134_BOARD_ADS_DUO_CARDBUS_PTV331,
4069 },{
4070 .vendor = PCI_VENDOR_ID_PHILIPS,
4071 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
4072 .subvendor = 0x17de,
4073 .subdevice = 0x7201,
4074 .driver_data = SAA7134_BOARD_TEVION_DVBT_220RF,
4075 },{
4076 .vendor = PCI_VENDOR_ID_PHILIPS,
4077 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
4078 .subvendor = 0x17de,
4079 .subdevice = 0x7250,
4080 .driver_data = SAA7134_BOARD_KWORLD_DVBT_210,
4081 },{
4082 .vendor = PCI_VENDOR_ID_PHILIPS,
4083 .device = PCI_DEVICE_ID_PHILIPS_SAA7133, /* SAA7135HL */
4084 .subvendor = 0x17de,
4085 .subdevice = 0x7350,
4086 .driver_data = SAA7134_BOARD_KWORLD_ATSC110,
4087 },{
4088 .vendor = PCI_VENDOR_ID_PHILIPS,
4089 .device = PCI_DEVICE_ID_PHILIPS_SAA7133, /* SAA7135HL */
4090 .subvendor = 0x17de,
4091 .subdevice = 0x7352,
4092 .driver_data = SAA7134_BOARD_KWORLD_ATSC110, /* ATSC 115 */
4093 },{
4094 .vendor = PCI_VENDOR_ID_PHILIPS,
4095 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
4096 .subvendor = 0x1461,
4097 .subdevice = 0x7360,
4098 .driver_data = SAA7134_BOARD_AVERMEDIA_A169_B,
4099 },{
4100 .vendor = PCI_VENDOR_ID_PHILIPS,
4101 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
4102 .subvendor = 0x1461,
4103 .subdevice = 0x6360,
4104 .driver_data = SAA7134_BOARD_AVERMEDIA_A169_B1,
4105 },{
4106 .vendor = PCI_VENDOR_ID_PHILIPS,
4107 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
4108 .subvendor = 0x16be,
4109 .subdevice = 0x0005,
4110 .driver_data = SAA7134_BOARD_MD7134_BRIDGE_2,
4111 },{
4112 .vendor = PCI_VENDOR_ID_PHILIPS,
4113 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
4114 .subvendor = 0x5168,
4115 .subdevice = 0x0300,
4116 .driver_data = SAA7134_BOARD_FLYDVBS_LR300,
4117 },{
4118 .vendor = PCI_VENDOR_ID_PHILIPS,
4119 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
4120 .subvendor = 0x4e42,
4121 .subdevice = 0x0300,/* LR300 */
4122 .driver_data = SAA7134_BOARD_FLYDVBS_LR300,
4123 },{
4124 .vendor = PCI_VENDOR_ID_PHILIPS,
4125 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
4126 .subvendor = 0x1489,
4127 .subdevice = 0x0301,
4128 .driver_data = SAA7134_BOARD_FLYDVBT_LR301,
4129 },{
4130 .vendor = PCI_VENDOR_ID_PHILIPS,
4131 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
4132 .subvendor = 0x5168, /* Animation Technologies (LifeView) */
4133 .subdevice = 0x0304,
4134 .driver_data = SAA7134_BOARD_FLYTVPLATINUM_FM,
4135 },{
4136 .vendor = PCI_VENDOR_ID_PHILIPS,
4137 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
4138 .subvendor = 0x5168,
4139 .subdevice = 0x3306,
4140 .driver_data = SAA7134_BOARD_FLYDVBT_HYBRID_CARDBUS,
4141 },{
4142 .vendor = PCI_VENDOR_ID_PHILIPS,
4143 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
4144 .subvendor = 0x5168,
4145 .subdevice = 0x3502, /* whats the difference to 0x3306 ?*/
4146 .driver_data = SAA7134_BOARD_FLYDVBT_HYBRID_CARDBUS,
4147 },{
4148 .vendor = PCI_VENDOR_ID_PHILIPS,
4149 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
4150 .subvendor = 0x16be,
4151 .subdevice = 0x0007,
4152 .driver_data = SAA7134_BOARD_MEDION_MD8800_QUADRO,
4153 },{
4154 .vendor = PCI_VENDOR_ID_PHILIPS,
4155 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
4156 .subvendor = 0x16be,
4157 .subdevice = 0x0008,
4158 .driver_data = SAA7134_BOARD_MEDION_MD8800_QUADRO,
4159 },{
4160 .vendor = PCI_VENDOR_ID_PHILIPS,
4161 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
4162 .subvendor = 0x1461,
4163 .subdevice = 0x2c05,
4164 .driver_data = SAA7134_BOARD_AVERMEDIA_777,
4165 },{
4166 .vendor = PCI_VENDOR_ID_PHILIPS,
4167 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
4168 .subvendor = 0x1489,
4169 .subdevice = 0x0502, /* Cardbus version */
4170 .driver_data = SAA7134_BOARD_FLYDVBT_DUO_CARDBUS,
4171 },{
4172 .vendor = PCI_VENDOR_ID_PHILIPS,
4173 .device = PCI_DEVICE_ID_PHILIPS_SAA7130,
4174 .subvendor = 0x0919, /* Philips Proteus PRO 2309 */
4175 .subdevice = 0x2003,
4176 .driver_data = SAA7134_BOARD_PROTEUS_2309,
4177 },{
4178 .vendor = PCI_VENDOR_ID_PHILIPS,
4179 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
4180 .subvendor = 0x1461,
4181 .subdevice = 0x2c00,
4182 .driver_data = SAA7134_BOARD_AVERMEDIA_A16AR,
4183 },{
4184 .vendor = PCI_VENDOR_ID_PHILIPS,
4185 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
4186 .subvendor = 0x1043,
4187 .subdevice = 0x4860,
4188 .driver_data = SAA7134_BOARD_ASUS_EUROPA2_HYBRID,
4189 },{
4190 .vendor = PCI_VENDOR_ID_PHILIPS,
4191 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
4192 .subvendor = 0x11bd,
4193 .subdevice = 0x002f,
4194 .driver_data = SAA7134_BOARD_PINNACLE_PCTV_310i,
4195 },{
4196 .vendor = PCI_VENDOR_ID_PHILIPS,
4197 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
4198 .subvendor = 0x1461, /* Avermedia Technologies Inc */
4199 .subdevice = 0x9715,
4200 .driver_data = SAA7134_BOARD_AVERMEDIA_STUDIO_507,
4201 },{
4202 .vendor = PCI_VENDOR_ID_PHILIPS,
4203 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
4204 .subvendor = 0x1043,
4205 .subdevice = 0x4876,
4206 .driver_data = SAA7134_BOARD_ASUSTeK_P7131_HYBRID_LNA,
4207 },{
4208 .vendor = PCI_VENDOR_ID_PHILIPS,
4209 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
4210 .subvendor = 0x0070,
4211 .subdevice = 0x6700,
4212 .driver_data = SAA7134_BOARD_HAUPPAUGE_HVR1110,
4213 },{
4214 .vendor = PCI_VENDOR_ID_PHILIPS,
4215 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
4216 .subvendor = 0x0070,
4217 .subdevice = 0x6701,
4218 .driver_data = SAA7134_BOARD_HAUPPAUGE_HVR1110,
4219 },{
4220 .vendor = PCI_VENDOR_ID_PHILIPS,
4221 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
4222 .subvendor = 0x0070,
4223 .subdevice = 0x6702,
4224 .driver_data = SAA7134_BOARD_HAUPPAUGE_HVR1110,
4225 },{
4226 .vendor = PCI_VENDOR_ID_PHILIPS,
4227 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
4228 .subvendor = 0x0070,
4229 .subdevice = 0x6703,
4230 .driver_data = SAA7134_BOARD_HAUPPAUGE_HVR1110,
4231 },{
4232 .vendor = PCI_VENDOR_ID_PHILIPS,
4233 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
4234 .subvendor = 0x0070,
4235 .subdevice = 0x6704,
4236 .driver_data = SAA7134_BOARD_HAUPPAUGE_HVR1110,
4237 },{
4238 .vendor = PCI_VENDOR_ID_PHILIPS,
4239 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
4240 .subvendor = 0x0070,
4241 .subdevice = 0x6705,
4242 .driver_data = SAA7134_BOARD_HAUPPAUGE_HVR1110,
4243 },{
4244 .vendor = PCI_VENDOR_ID_PHILIPS,
4245 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
4246 .subvendor = 0x153b,
4247 .subdevice = 0x1172,
4248 .driver_data = SAA7134_BOARD_CINERGY_HT_PCMCIA,
4249 },{
4250 .vendor = PCI_VENDOR_ID_PHILIPS,
4251 .device = PCI_DEVICE_ID_PHILIPS_SAA7130,
4252 .subvendor = PCI_VENDOR_ID_PHILIPS,
4253 .subdevice = 0x2342,
4254 .driver_data = SAA7134_BOARD_ENCORE_ENLTV,
4255 },{
4256 .vendor = PCI_VENDOR_ID_PHILIPS,
4257 .device = PCI_DEVICE_ID_PHILIPS_SAA7130,
4258 .subvendor = 0x1131,
4259 .subdevice = 0x2341,
4260 .driver_data = SAA7134_BOARD_ENCORE_ENLTV,
4261 },{
4262 .vendor = PCI_VENDOR_ID_PHILIPS,
4263 .device = PCI_DEVICE_ID_PHILIPS_SAA7130,
4264 .subvendor = 0x3016,
4265 .subdevice = 0x2344,
4266 .driver_data = SAA7134_BOARD_ENCORE_ENLTV,
4267 },{
4268 .vendor = PCI_VENDOR_ID_PHILIPS,
4269 .device = PCI_DEVICE_ID_PHILIPS_SAA7130,
4270 .subvendor = 0x1131,
4271 .subdevice = 0x230f,
4272 .driver_data = SAA7134_BOARD_ENCORE_ENLTV_FM,
4273 },{
4274 .vendor = PCI_VENDOR_ID_PHILIPS,
4275 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
4276 .subvendor = 0x153b,
4277 .subdevice = 0x1175,
4278 .driver_data = SAA7134_BOARD_CINERGY_HT_PCI,
4279 },{
4280 .vendor = PCI_VENDOR_ID_PHILIPS,
4281 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
4282 .subvendor = 0x1461, /* Avermedia Technologies Inc */
4283 .subdevice = 0xf31e,
4284 .driver_data = SAA7134_BOARD_AVERMEDIA_M102,
4285 },{
4286 .vendor = PCI_VENDOR_ID_PHILIPS,
4287 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
4288 .subvendor = 0x4E42, /* MSI */
4289 .subdevice = 0x0306, /* TV@nywhere DUO */
4290 .driver_data = SAA7134_BOARD_FLYDVBTDUO,
4291 },{
4292 .vendor = PCI_VENDOR_ID_PHILIPS,
4293 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
4294 .subvendor = 0x1043,
4295 .subdevice = 0x4871,
4296 .driver_data = SAA7134_BOARD_ASUS_P7131_4871,
4297 },{
4298 .vendor = PCI_VENDOR_ID_PHILIPS,
4299 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
4300 .subvendor = 0x1043,
4301 .subdevice = 0x4857,
4302 .driver_data = SAA7134_BOARD_ASUSTeK_P7131_DUAL,
4303 },{
4304 .vendor = PCI_VENDOR_ID_PHILIPS,
4305 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
4306 .subvendor = 0x0919, /* SinoVideo PCI 2309 Proteus (7134) */
4307 .subdevice = 0x2003, /* OEM cardbus */
4308 .driver_data = SAA7134_BOARD_SABRENT_TV_PCB05,
4309 },{
4310 .vendor = PCI_VENDOR_ID_PHILIPS,
4311 .device = PCI_DEVICE_ID_PHILIPS_SAA7130,
4312 .subvendor = PCI_VENDOR_ID_PHILIPS,
4313 .subdevice = 0x2304,
4314 .driver_data = SAA7134_BOARD_10MOONSTVMASTER3,
4315 },{
4316 .vendor = PCI_VENDOR_ID_PHILIPS,
4317 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
4318 .subvendor = 0x1461, /* Avermedia Technologies Inc */
4319 .subdevice = 0xf01d, /* AVerTV DVB-T Super 007 */
4320 .driver_data = SAA7134_BOARD_AVERMEDIA_SUPER_007,
4321 },{
4322 .vendor = PCI_VENDOR_ID_PHILIPS,
4323 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
4324 .subvendor = 0x4e42,
4325 .subdevice = 0x3502,
4326 .driver_data = SAA7134_BOARD_FLYDVBT_HYBRID_CARDBUS
4327 },{
4328 /* --- boards without eeprom + subsystem ID --- */
4329 .vendor = PCI_VENDOR_ID_PHILIPS,
4330 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
4331 .subvendor = PCI_VENDOR_ID_PHILIPS,
4332 .subdevice = 0,
4333 .driver_data = SAA7134_BOARD_NOAUTO,
4334 },{
4335 .vendor = PCI_VENDOR_ID_PHILIPS,
4336 .device = PCI_DEVICE_ID_PHILIPS_SAA7130,
4337 .subvendor = PCI_VENDOR_ID_PHILIPS,
4338 .subdevice = 0,
4339 .driver_data = SAA7134_BOARD_NOAUTO,
4340 },{
4341 /* --- default catch --- */
4342 .vendor = PCI_VENDOR_ID_PHILIPS,
4343 .device = PCI_DEVICE_ID_PHILIPS_SAA7130,
4344 .subvendor = PCI_ANY_ID,
4345 .subdevice = PCI_ANY_ID,
4346 .driver_data = SAA7134_BOARD_UNKNOWN,
4347 },{
4348 .vendor = PCI_VENDOR_ID_PHILIPS,
4349 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
4350 .subvendor = PCI_ANY_ID,
4351 .subdevice = PCI_ANY_ID,
4352 .driver_data = SAA7134_BOARD_UNKNOWN,
4353 },{
4354 .vendor = PCI_VENDOR_ID_PHILIPS,
4355 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
4356 .subvendor = PCI_ANY_ID,
4357 .subdevice = PCI_ANY_ID,
4358 .driver_data = SAA7134_BOARD_UNKNOWN,
4359 },{
4360 .vendor = PCI_VENDOR_ID_PHILIPS,
4361 .device = PCI_DEVICE_ID_PHILIPS_SAA7135,
4362 .subvendor = PCI_ANY_ID,
4363 .subdevice = PCI_ANY_ID,
4364 .driver_data = SAA7134_BOARD_UNKNOWN,
4365 },{
4366 /* --- end of list --- */
4367 }
4368 };
4369 MODULE_DEVICE_TABLE(pci, saa7134_pci_tbl);
4370
4371 /* ----------------------------------------------------------- */
4372 /* flyvideo tweaks */
4373
4374
4375 static void board_flyvideo(struct saa7134_dev *dev)
4376 {
4377 printk("%s: there are different flyvideo cards with different tuners\n"
4378 "%s: out there, you might have to use the tuner=<nr> insmod\n"
4379 "%s: option to override the default value.\n",
4380 dev->name, dev->name, dev->name);
4381 }
4382
4383 /* ----------------------------------------------------------- */
4384
4385 static void hauppauge_eeprom(struct saa7134_dev *dev, u8 *eeprom_data)
4386 {
4387 struct tveeprom tv;
4388
4389 tveeprom_hauppauge_analog(&dev->i2c_client, &tv, eeprom_data);
4390
4391 /* Make sure we support the board model */
4392 switch (tv.model) {
4393 case 67019: /* WinTV-HVR1110 (Retail, IR Blaster, hybrid, FM, SVid/Comp, 3.5mm audio in) */
4394 case 67109: /* WinTV-HVR1000 (Retail, IR Receive, analog, no FM, SVid/Comp, 3.5mm audio in) */
4395 case 67559: /* WinTV-HVR1110 (OEM, no IR, hybrid, FM, SVid/Comp, RCA aud) */
4396 case 67569: /* WinTV-HVR1110 (OEM, no IR, hybrid, FM) */
4397 case 67579: /* WinTV-HVR1110 (OEM, no IR, hybrid, no FM) */
4398 case 67589: /* WinTV-HVR1110 (OEM, no IR, hybrid, no FM, SVid/Comp, RCA aud) */
4399 case 67599: /* WinTV-HVR1110 (OEM, no IR, hybrid, no FM, SVid/Comp, RCA aud) */
4400 break;
4401 default:
4402 printk(KERN_WARNING "%s: warning: "
4403 "unknown hauppauge model #%d\n", dev->name, tv.model);
4404 break;
4405 }
4406
4407 printk(KERN_INFO "%s: hauppauge eeprom: model=%d\n",
4408 dev->name, tv.model);
4409 }
4410
4411 /* ----------------------------------------------------------- */
4412
4413 int saa7134_board_init1(struct saa7134_dev *dev)
4414 {
4415 /* Always print gpio, often manufacturers encode tuner type and other info. */
4416 saa_writel(SAA7134_GPIO_GPMODE0 >> 2, 0);
4417 dev->gpio_value = saa_readl(SAA7134_GPIO_GPSTATUS0 >> 2);
4418 printk(KERN_INFO "%s: board init: gpio is %x\n", dev->name, dev->gpio_value);
4419
4420 switch (dev->board) {
4421 case SAA7134_BOARD_FLYVIDEO2000:
4422 case SAA7134_BOARD_FLYVIDEO3000:
4423 case SAA7134_BOARD_FLYVIDEO3000_NTSC:
4424 dev->has_remote = SAA7134_REMOTE_GPIO;
4425 board_flyvideo(dev);
4426 break;
4427 case SAA7134_BOARD_FLYTVPLATINUM_MINI2:
4428 case SAA7134_BOARD_FLYTVPLATINUM_FM:
4429 case SAA7134_BOARD_CINERGY400:
4430 case SAA7134_BOARD_CINERGY600:
4431 case SAA7134_BOARD_CINERGY600_MK3:
4432 case SAA7134_BOARD_ECS_TVP3XP:
4433 case SAA7134_BOARD_ECS_TVP3XP_4CB5:
4434 case SAA7134_BOARD_ECS_TVP3XP_4CB6:
4435 case SAA7134_BOARD_MD2819:
4436 case SAA7134_BOARD_KWORLD_VSTREAM_XPERT:
4437 case SAA7134_BOARD_KWORLD_XPERT:
4438 case SAA7134_BOARD_AVERMEDIA_STUDIO_305:
4439 case SAA7134_BOARD_AVERMEDIA_305:
4440 case SAA7134_BOARD_AVERMEDIA_STUDIO_307:
4441 case SAA7134_BOARD_AVERMEDIA_307:
4442 case SAA7134_BOARD_AVERMEDIA_STUDIO_507:
4443 case SAA7134_BOARD_AVERMEDIA_GO_007_FM:
4444 case SAA7134_BOARD_AVERMEDIA_777:
4445 /* case SAA7134_BOARD_SABRENT_SBTTVFM: */ /* not finished yet */
4446 case SAA7134_BOARD_VIDEOMATE_TV_PVR:
4447 case SAA7134_BOARD_VIDEOMATE_GOLD_PLUS:
4448 case SAA7134_BOARD_VIDEOMATE_TV_GOLD_PLUSII:
4449 case SAA7134_BOARD_VIDEOMATE_DVBT_300:
4450 case SAA7134_BOARD_VIDEOMATE_DVBT_200:
4451 case SAA7134_BOARD_VIDEOMATE_DVBT_200A:
4452 case SAA7134_BOARD_MANLI_MTV001:
4453 case SAA7134_BOARD_MANLI_MTV002:
4454 case SAA7134_BOARD_BEHOLD_409FM:
4455 case SAA7134_BOARD_AVACSSMARTTV:
4456 case SAA7134_BOARD_GOTVIEW_7135:
4457 case SAA7134_BOARD_KWORLD_TERMINATOR:
4458 case SAA7134_BOARD_SEDNA_PC_TV_CARDBUS:
4459 case SAA7134_BOARD_FLYDVBT_LR301:
4460 case SAA7134_BOARD_ASUSTeK_P7131_DUAL:
4461 case SAA7134_BOARD_ASUSTeK_P7131_HYBRID_LNA:
4462 case SAA7134_BOARD_FLYDVBTDUO:
4463 case SAA7134_BOARD_PROTEUS_2309:
4464 case SAA7134_BOARD_AVERMEDIA_A16AR:
4465 case SAA7134_BOARD_ENCORE_ENLTV:
4466 case SAA7134_BOARD_ENCORE_ENLTV_FM:
4467 case SAA7134_BOARD_10MOONSTVMASTER3:
4468 dev->has_remote = SAA7134_REMOTE_GPIO;
4469 break;
4470 case SAA7134_BOARD_FLYDVBS_LR300:
4471 saa_writeb(SAA7134_GPIO_GPMODE3, 0x80);
4472 saa_writeb(SAA7134_GPIO_GPSTATUS2, 0x40);
4473 dev->has_remote = SAA7134_REMOTE_GPIO;
4474 break;
4475 case SAA7134_BOARD_MD5044:
4476 printk("%s: seems there are two different versions of the MD5044\n"
4477 "%s: (with the same ID) out there. If sound doesn't work for\n"
4478 "%s: you try the audio_clock_override=0x200000 insmod option.\n",
4479 dev->name,dev->name,dev->name);
4480 break;
4481 case SAA7134_BOARD_CINERGY400_CARDBUS:
4482 /* power-up tuner chip */
4483 saa_andorl(SAA7134_GPIO_GPMODE0 >> 2, 0x00040000, 0x00040000);
4484 saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x00040000, 0x00000000);
4485 break;
4486 case SAA7134_BOARD_PINNACLE_300I_DVBT_PAL:
4487 /* this turns the remote control chip off to work around a bug in it */
4488 saa_writeb(SAA7134_GPIO_GPMODE1, 0x80);
4489 saa_writeb(SAA7134_GPIO_GPSTATUS1, 0x80);
4490 break;
4491 case SAA7134_BOARD_MONSTERTV_MOBILE:
4492 /* power-up tuner chip */
4493 saa_andorl(SAA7134_GPIO_GPMODE0 >> 2, 0x00040000, 0x00040000);
4494 saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x00040000, 0x00000004);
4495 break;
4496 case SAA7134_BOARD_FLYDVBT_DUO_CARDBUS:
4497 /* turn the fan on */
4498 saa_writeb(SAA7134_GPIO_GPMODE3, 0x08);
4499 saa_writeb(SAA7134_GPIO_GPSTATUS3, 0x06);
4500 break;
4501 case SAA7134_BOARD_ADS_DUO_CARDBUS_PTV331:
4502 case SAA7134_BOARD_FLYDVBT_HYBRID_CARDBUS:
4503 saa_andorl(SAA7134_GPIO_GPMODE0 >> 2, 0x08000000, 0x08000000);
4504 saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x08000000, 0x00000000);
4505 break;
4506 case SAA7134_BOARD_AVERMEDIA_CARDBUS:
4507 /* power-up tuner chip */
4508 saa_andorl(SAA7134_GPIO_GPMODE0 >> 2, 0xffffffff, 0xffffffff);
4509 saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0xffffffff, 0xffffffff);
4510 msleep(1);
4511 break;
4512 case SAA7134_BOARD_RTD_VFG7350:
4513
4514 /*
4515 * Make sure Production Test Register at offset 0x1D1 is cleared
4516 * to take chip out of test mode. Clearing bit 4 (TST_EN_AOUT)
4517 * prevents pin 105 from remaining low; keeping pin 105 low
4518 * continually resets the SAA6752 chip.
4519 */
4520
4521 saa_writeb (SAA7134_PRODUCTION_TEST_MODE, 0x00);
4522 break;
4523 /* i2c remotes */
4524 case SAA7134_BOARD_PINNACLE_PCTV_110i:
4525 case SAA7134_BOARD_PINNACLE_PCTV_310i:
4526 case SAA7134_BOARD_UPMOST_PURPLE_TV:
4527 case SAA7134_BOARD_HAUPPAUGE_HVR1110:
4528 dev->has_remote = SAA7134_REMOTE_I2C;
4529 break;
4530 case SAA7134_BOARD_AVERMEDIA_A169_B:
4531 case SAA7134_BOARD_MD7134_BRIDGE_2:
4532 printk("%s: %s: dual saa713x broadcast decoders\n"
4533 "%s: Sorry, none of the inputs to this chip are supported yet.\n"
4534 "%s: Dual decoder functionality is disabled for now, use the other chip.\n",
4535 dev->name,card(dev).name,dev->name,dev->name);
4536 break;
4537 case SAA7134_BOARD_AVERMEDIA_M102:
4538 /* enable tuner */
4539 saa_andorl(SAA7134_GPIO_GPMODE0 >> 2, 0x8c040007, 0x8c040007);
4540 saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x0c0007cd, 0x0c0007cd);
4541 break;
4542 }
4543 return 0;
4544 }
4545
4546 /* stuff which needs working i2c */
4547 int saa7134_board_init2(struct saa7134_dev *dev)
4548 {
4549 unsigned char buf;
4550 int board;
4551 struct tuner_setup tun_setup;
4552 tun_setup.config = 0;
4553 tun_setup.tuner_callback = saa7134_tuner_callback;
4554
4555 switch (dev->board) {
4556 case SAA7134_BOARD_BMK_MPEX_NOTUNER:
4557 case SAA7134_BOARD_BMK_MPEX_TUNER:
4558 dev->i2c_client.addr = 0x60;
4559 board = (i2c_master_recv(&dev->i2c_client,&buf,0) < 0)
4560 ? SAA7134_BOARD_BMK_MPEX_NOTUNER
4561 : SAA7134_BOARD_BMK_MPEX_TUNER;
4562 if (board == dev->board)
4563 break;
4564 dev->board = board;
4565 printk("%s: board type fixup: %s\n", dev->name,
4566 saa7134_boards[dev->board].name);
4567 dev->tuner_type = saa7134_boards[dev->board].tuner_type;
4568
4569 if (TUNER_ABSENT != dev->tuner_type) {
4570 tun_setup.mode_mask = T_RADIO | T_ANALOG_TV | T_DIGITAL_TV;
4571 tun_setup.type = dev->tuner_type;
4572 tun_setup.addr = ADDR_UNSET;
4573
4574 saa7134_i2c_call_clients (dev, TUNER_SET_TYPE_ADDR, &tun_setup);
4575 }
4576 break;
4577 case SAA7134_BOARD_MD7134:
4578 {
4579 u8 subaddr;
4580 u8 data[3];
4581 int ret, tuner_t;
4582
4583 struct i2c_msg msg[] = {{.addr=0x50, .flags=0, .buf=&subaddr, .len = 1},
4584 {.addr=0x50, .flags=I2C_M_RD, .buf=data, .len = 3}};
4585 subaddr= 0x14;
4586 tuner_t = 0;
4587 ret = i2c_transfer(&dev->i2c_adap, msg, 2);
4588 if (ret != 2) {
4589 printk(KERN_ERR "EEPROM read failure\n");
4590 } else if ((data[0] != 0) && (data[0] != 0xff)) {
4591 /* old config structure */
4592 subaddr = data[0] + 2;
4593 msg[1].len = 2;
4594 i2c_transfer(&dev->i2c_adap, msg, 2);
4595 tuner_t = (data[0] << 8) + data[1];
4596 switch (tuner_t){
4597 case 0x0103:
4598 dev->tuner_type = TUNER_PHILIPS_PAL;
4599 break;
4600 case 0x010C:
4601 dev->tuner_type = TUNER_PHILIPS_FM1216ME_MK3;
4602 break;
4603 default:
4604 printk(KERN_ERR "%s Cant determine tuner type %x from EEPROM\n", dev->name, tuner_t);
4605 }
4606 } else if ((data[1] != 0) && (data[1] != 0xff)) {
4607 /* new config structure */
4608 subaddr = data[1] + 1;
4609 msg[1].len = 1;
4610 i2c_transfer(&dev->i2c_adap, msg, 2);
4611 subaddr = data[0] + 1;
4612 msg[1].len = 2;
4613 i2c_transfer(&dev->i2c_adap, msg, 2);
4614 tuner_t = (data[1] << 8) + data[0];
4615 switch (tuner_t) {
4616 case 0x0005:
4617 dev->tuner_type = TUNER_PHILIPS_FM1216ME_MK3;
4618 break;
4619 case 0x001d:
4620 dev->tuner_type = TUNER_PHILIPS_FMD1216ME_MK3;
4621 printk(KERN_INFO "%s Board has DVB-T\n", dev->name);
4622 break;
4623 default:
4624 printk(KERN_ERR "%s Cant determine tuner type %x from EEPROM\n", dev->name, tuner_t);
4625 }
4626 } else {
4627 printk(KERN_ERR "%s unexpected config structure\n", dev->name);
4628 }
4629
4630 printk(KERN_INFO "%s Tuner type is %d\n", dev->name, dev->tuner_type);
4631 if (dev->tuner_type == TUNER_PHILIPS_FMD1216ME_MK3) {
4632 struct v4l2_priv_tun_config tda9887_cfg;
4633
4634 tda9887_cfg.tuner = TUNER_TDA9887;
4635 tda9887_cfg.priv = &dev->tda9887_conf;
4636
4637 dev->tda9887_conf = TDA9887_PRESENT |
4638 TDA9887_PORT1_ACTIVE |
4639 TDA9887_PORT2_ACTIVE;
4640
4641 saa7134_i2c_call_clients(dev, TUNER_SET_CONFIG,
4642 &tda9887_cfg);
4643 }
4644
4645 tun_setup.mode_mask = T_RADIO | T_ANALOG_TV | T_DIGITAL_TV;
4646 tun_setup.type = dev->tuner_type;
4647 tun_setup.addr = ADDR_UNSET;
4648
4649 saa7134_i2c_call_clients (dev, TUNER_SET_TYPE_ADDR,&tun_setup);
4650 }
4651 break;
4652 case SAA7134_BOARD_PHILIPS_EUROPA:
4653 case SAA7134_BOARD_VIDEOMATE_DVBT_300:
4654 case SAA7134_BOARD_ASUS_EUROPA2_HYBRID:
4655 /* The Philips EUROPA based hybrid boards have the tuner connected through
4656 * the channel decoder. We have to make it transparent to find it
4657 */
4658 {
4659 u8 data[] = { 0x07, 0x02};
4660 struct i2c_msg msg = {.addr=0x08, .flags=0, .buf=data, .len = sizeof(data)};
4661 i2c_transfer(&dev->i2c_adap, &msg, 1);
4662
4663 tun_setup.mode_mask = T_ANALOG_TV | T_DIGITAL_TV;
4664 tun_setup.type = dev->tuner_type;
4665 tun_setup.addr = dev->tuner_addr;
4666
4667 saa7134_i2c_call_clients (dev, TUNER_SET_TYPE_ADDR,&tun_setup);
4668 }
4669 break;
4670 case SAA7134_BOARD_PHILIPS_TIGER:
4671 case SAA7134_BOARD_PHILIPS_TIGER_S:
4672 case SAA7134_BOARD_AVERMEDIA_SUPER_007:
4673 {
4674 u8 data[] = { 0x3c, 0x33, 0x60};
4675 struct i2c_msg msg = {.addr=0x08, .flags=0, .buf=data, .len = sizeof(data)};
4676 if(dev->autodetected && (dev->eedata[0x49] == 0x50)) {
4677 dev->board = SAA7134_BOARD_PHILIPS_TIGER_S;
4678 printk(KERN_INFO "%s: Reconfigured board as %s\n",
4679 dev->name, saa7134_boards[dev->board].name);
4680 }
4681 if(dev->board == SAA7134_BOARD_PHILIPS_TIGER_S) {
4682 tun_setup.mode_mask = T_ANALOG_TV | T_DIGITAL_TV;
4683 tun_setup.type = TUNER_PHILIPS_TDA8290;
4684 tun_setup.addr = 0x4b;
4685 tun_setup.config = 2;
4686
4687 saa7134_i2c_call_clients (dev, TUNER_SET_TYPE_ADDR,&tun_setup);
4688 data[2] = 0x68;
4689 }
4690 i2c_transfer(&dev->i2c_adap, &msg, 1);
4691 }
4692 break;
4693 case SAA7134_BOARD_HAUPPAUGE_HVR1110:
4694 hauppauge_eeprom(dev, dev->eedata+0x80);
4695 /* break intentionally omitted */
4696 case SAA7134_BOARD_PINNACLE_PCTV_310i:
4697 case SAA7134_BOARD_KWORLD_DVBT_210:
4698 case SAA7134_BOARD_TEVION_DVBT_220RF:
4699 case SAA7134_BOARD_ASUSTeK_P7131_DUAL:
4700 case SAA7134_BOARD_ASUSTeK_P7131_HYBRID_LNA:
4701 case SAA7134_BOARD_MEDION_MD8800_QUADRO:
4702 /* this is a hybrid board, initialize to analog mode
4703 * and configure firmware eeprom address
4704 */
4705 {
4706 u8 data[] = { 0x3c, 0x33, 0x60};
4707 struct i2c_msg msg = {.addr=0x08, .flags=0, .buf=data, .len = sizeof(data)};
4708 i2c_transfer(&dev->i2c_adap, &msg, 1);
4709 }
4710 break;
4711 case SAA7134_BOARD_FLYDVB_TRIO:
4712 {
4713 u8 data[] = { 0x3c, 0x33, 0x62};
4714 struct i2c_msg msg = {.addr=0x09, .flags=0, .buf=data, .len = sizeof(data)};
4715 i2c_transfer(&dev->i2c_adap, &msg, 1);
4716 }
4717 break;
4718 case SAA7134_BOARD_ADS_DUO_CARDBUS_PTV331:
4719 case SAA7134_BOARD_FLYDVBT_HYBRID_CARDBUS:
4720 /* initialize analog mode */
4721 {
4722 u8 data[] = { 0x3c, 0x33, 0x6a};
4723 struct i2c_msg msg = {.addr=0x08, .flags=0, .buf=data, .len = sizeof(data)};
4724 i2c_transfer(&dev->i2c_adap, &msg, 1);
4725 }
4726 break;
4727 case SAA7134_BOARD_CINERGY_HT_PCMCIA:
4728 case SAA7134_BOARD_CINERGY_HT_PCI:
4729 /* initialize analog mode */
4730 {
4731 u8 data[] = { 0x3c, 0x33, 0x68};
4732 struct i2c_msg msg = {.addr=0x08, .flags=0, .buf=data, .len = sizeof(data)};
4733 i2c_transfer(&dev->i2c_adap, &msg, 1);
4734 }
4735 break;
4736 case SAA7134_BOARD_KWORLD_ATSC110:
4737 {
4738 /* enable tuner */
4739 int i;
4740 static const u8 buffer [] = { 0x10,0x12,0x13,0x04,0x16,0x00,0x14,0x04,0x017,0x00 };
4741 dev->i2c_client.addr = 0x0a;
4742 for (i = 0; i < 5; i++)
4743 if (2 != i2c_master_send(&dev->i2c_client,&buffer[i*2],2))
4744 printk(KERN_WARNING "%s: Unable to enable tuner(%i).\n",
4745 dev->name, i);
4746 }
4747 break;
4748 case SAA7134_BOARD_VIDEOMATE_DVBT_200:
4749 case SAA7134_BOARD_VIDEOMATE_DVBT_200A:
4750 /* The T200 and the T200A share the same pci id. Consequently,
4751 * we are going to query eeprom to try to find out which one we
4752 * are actually looking at. */
4753
4754 /* Don't do this if the board was specifically selected with an
4755 * insmod option or if we have the default configuration T200*/
4756 if(!dev->autodetected || (dev->eedata[0x41] == 0xd0))
4757 break;
4758 if(dev->eedata[0x41] == 0x02) {
4759 /* Reconfigure board as T200A */
4760 dev->board = SAA7134_BOARD_VIDEOMATE_DVBT_200A;
4761 dev->tuner_type = saa7134_boards[dev->board].tuner_type;
4762 dev->tda9887_conf = saa7134_boards[dev->board].tda9887_conf;
4763 printk(KERN_INFO "%s: Reconfigured board as %s\n",
4764 dev->name, saa7134_boards[dev->board].name);
4765 } else {
4766 printk(KERN_WARNING "%s: Unexpected tuner type info: %x in eeprom\n",
4767 dev->name, dev->eedata[0x41]);
4768 break;
4769 }
4770 break;
4771 }
4772 return 0;
4773 }
4774
4775 /* ----------------------------------------------------------- */
4776 /*
4777 * Local variables:
4778 * c-basic-offset: 8
4779 * End:
4780 */
This page took 0.147075 seconds and 4 git commands to generate.