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