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