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