Merge branch 'net-2.6.26-isatap-20080403' of git://git.linux-ipv6.org/gitroot/yoshfuj...
[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 = TV,
2508                         .gpio = 0x0200000,
2509                 },
2510         },
2511         [SAA7134_BOARD_ASUSTeK_P7131_DUAL] = {
2512                 .name           = "ASUSTeK P7131 Dual",
2513                 .audio_clock    = 0x00187de7,
2514                 .tuner_type     = TUNER_PHILIPS_TDA8290,
2515                 .radio_type     = UNSET,
2516                 .tuner_addr     = ADDR_UNSET,
2517                 .radio_addr     = ADDR_UNSET,
2518                 .gpiomask       = 1 << 21,
2519                 .mpeg           = SAA7134_MPEG_DVB,
2520                 .inputs         = {{
2521                         .name = name_tv,
2522                         .vmux = 1,
2523                         .amux = TV,
2524                         .tv   = 1,
2525                         .gpio = 0x0000000,
2526                 },{
2527                         .name = name_comp1,
2528                         .vmux = 3,
2529                         .amux = LINE2,
2530                         .gpio = 0x0200000,
2531                 },{
2532                         .name = name_comp2,
2533                         .vmux = 0,
2534                         .amux = LINE2,
2535                         .gpio = 0x0200000,
2536                 },{
2537                         .name = name_svideo,
2538                         .vmux = 8,
2539                         .amux = LINE2,
2540                         .gpio = 0x0200000,
2541                 }},
2542                 .radio = {
2543                         .name = name_radio,
2544                         .amux = TV,
2545                         .gpio = 0x0200000,
2546                 },
2547         },
2548         [SAA7134_BOARD_SEDNA_PC_TV_CARDBUS] = {
2549                 /* Paul Tom Zalac <pzalac@gmail.com> */
2550                 /* Pavel Mihaylov <bin@bash.info> */
2551                 .name           = "Sedna/MuchTV PC TV Cardbus TV/Radio (ITO25 Rev:2B)",
2552                                 /* Sedna/MuchTV (OEM) Cardbus TV Tuner */
2553                 .audio_clock    = 0x00187de7,
2554                 .tuner_type     = TUNER_PHILIPS_TDA8290,
2555                 .radio_type     = UNSET,
2556                 .tuner_addr     = ADDR_UNSET,
2557                 .radio_addr     = ADDR_UNSET,
2558                 .gpiomask       = 0xe880c0,
2559                 .inputs         = {{
2560                         .name = name_tv,
2561                         .vmux = 3,
2562                         .amux = TV,
2563                         .tv   = 1,
2564                 },{
2565                         .name = name_comp1,
2566                         .vmux = 1,
2567                         .amux = LINE1,
2568                 },{
2569                         .name = name_svideo,
2570                         .vmux = 6,
2571                         .amux = LINE1,
2572                 }},
2573                 .radio = {
2574                         .name = name_radio,
2575                         .amux = LINE2,
2576                 },
2577         },
2578         [SAA7134_BOARD_ASUSTEK_DIGIMATRIX_TV] = {
2579                 /* "Cyril Lacoux (Yack)" <clacoux@ifeelgood.org> */
2580                 .name           = "ASUS Digimatrix TV",
2581                 .audio_clock    = 0x00200000,
2582                 .tuner_type     = TUNER_PHILIPS_FQ1216ME,
2583                 .tda9887_conf   = TDA9887_PRESENT,
2584                 .radio_type     = UNSET,
2585                 .tuner_addr     = ADDR_UNSET,
2586                 .radio_addr     = ADDR_UNSET,
2587                 .inputs         = {{
2588                         .name = name_tv,
2589                         .vmux = 1,
2590                         .amux = TV,
2591                         .tv   = 1,
2592                 },{
2593                         .name = name_comp1,
2594                         .vmux = 3,
2595                         .amux = LINE1,
2596                 },{
2597                         .name = name_svideo,
2598                         .vmux = 8,
2599                         .amux = LINE1,
2600                 }},
2601         },
2602         [SAA7134_BOARD_PHILIPS_TIGER] = {
2603                 .name           = "Philips Tiger reference design",
2604                 .audio_clock    = 0x00187de7,
2605                 .tuner_type     = TUNER_PHILIPS_TDA8290,
2606                 .radio_type     = UNSET,
2607                 .tuner_addr     = ADDR_UNSET,
2608                 .radio_addr     = ADDR_UNSET,
2609                 .tuner_config   = 0,
2610                 .mpeg           = SAA7134_MPEG_DVB,
2611                 .gpiomask       = 0x0200000,
2612                 .inputs = {{
2613                         .name   = name_tv,
2614                         .vmux   = 1,
2615                         .amux   = TV,
2616                         .tv     = 1,
2617                 },{
2618                         .name   = name_comp1,
2619                         .vmux   = 3,
2620                         .amux   = LINE1,
2621                 },{
2622                         .name   = name_svideo,
2623                         .vmux   = 8,
2624                         .amux   = LINE1,
2625                 }},
2626                 .radio = {
2627                         .name   = name_radio,
2628                         .amux   = TV,
2629                         .gpio   = 0x0200000,
2630                 },
2631         },
2632         [SAA7134_BOARD_MSI_TVATANYWHERE_PLUS] = {
2633                 .name           = "MSI TV@Anywhere plus",
2634                 .audio_clock    = 0x00187de7,
2635                 .tuner_type     = TUNER_PHILIPS_TDA8290,
2636                 .radio_type     = UNSET,
2637                 .tuner_addr     = ADDR_UNSET,
2638                 .radio_addr     = ADDR_UNSET,
2639                 .gpiomask       = 1 << 21,
2640                 .inputs = {{
2641                         .name   = name_tv,
2642                         .vmux   = 1,
2643                         .amux   = TV,
2644                         .tv     = 1,
2645                 },{
2646                         .name   = name_comp1,
2647                         .vmux   = 3,
2648                         .amux   = LINE2,        /* unconfirmed, taken from Philips driver */
2649                 },{
2650                         .name   = name_comp2,
2651                         .vmux   = 0,            /* untested, Composite over S-Video */
2652                         .amux   = LINE2,
2653                 },{
2654                         .name   = name_svideo,
2655                         .vmux   = 8,
2656                         .amux   = LINE2,
2657                 }},
2658                 .radio = {
2659                         .name   = name_radio,
2660                         .amux   = TV,
2661                         .gpio   = 0x0200000,
2662                 },
2663         },
2664         [SAA7134_BOARD_CINERGY250PCI] = {
2665                 /* remote-control does not work. The signal about a
2666                    key press comes in via gpio, but the key code
2667                    doesn't. Neither does it have an i2c remote control
2668                    interface. */
2669                 .name           = "Terratec Cinergy 250 PCI TV",
2670                 .audio_clock    = 0x00187de7,
2671                 .tuner_type     = TUNER_PHILIPS_TDA8290,
2672                 .radio_type     = UNSET,
2673                 .tuner_addr     = ADDR_UNSET,
2674                 .radio_addr     = ADDR_UNSET,
2675                 .gpiomask       = 0x80200000,
2676                 .inputs         = {{
2677                         .name = name_tv,
2678                         .vmux = 1,
2679                         .amux = TV,
2680                         .tv   = 1,
2681                 },{
2682                         .name = name_svideo,  /* NOT tested */
2683                         .vmux = 8,
2684                         .amux = LINE1,
2685                 }},
2686                 .radio = {
2687                         .name   = name_radio,
2688                         .amux   = TV,
2689                         .gpio   = 0x0200000,
2690                 },
2691         },
2692         [SAA7134_BOARD_FLYDVB_TRIO] = {
2693                 /* LifeView LR319 FlyDVB Trio */
2694                 /* Peter Missel <peter.missel@onlinehome.de> */
2695                 .name           = "LifeView FlyDVB Trio",
2696                 .audio_clock    = 0x00200000,
2697                 .tuner_type     = TUNER_PHILIPS_TDA8290,
2698                 .radio_type     = UNSET,
2699                 .tuner_addr     = ADDR_UNSET,
2700                 .radio_addr     = ADDR_UNSET,
2701                 .gpiomask       = 0x00200000,
2702                 .mpeg           = SAA7134_MPEG_DVB,
2703                 .inputs         = {{
2704                         .name = name_tv,        /* Analog broadcast/cable TV */
2705                         .vmux = 1,
2706                         .amux = TV,
2707                         .gpio = 0x200000,       /* GPIO21=High for TV input */
2708                         .tv   = 1,
2709                 },{
2710                         .name = name_svideo,    /* S-Video signal on S-Video input */
2711                         .vmux = 8,
2712                         .amux = LINE2,
2713                 },{
2714                         .name = name_comp1,     /* Composite signal on S-Video input */
2715                         .vmux = 0,
2716                         .amux = LINE2,
2717                 },{
2718                         .name = name_comp2,     /* Composite input */
2719                         .vmux = 3,
2720                         .amux = LINE2,
2721                 }},
2722                 .radio = {
2723                         .name = name_radio,
2724                         .amux = TV,
2725                         .gpio = 0x000000,       /* GPIO21=Low for FM radio antenna */
2726                 },
2727         },
2728         [SAA7134_BOARD_AVERMEDIA_777] = {
2729                 .name           = "AverTV DVB-T 777",
2730                 .audio_clock    = 0x00187de7,
2731                 .tuner_type     = TUNER_ABSENT,
2732                 .radio_type     = UNSET,
2733                 .tuner_addr     = ADDR_UNSET,
2734                 .radio_addr     = ADDR_UNSET,
2735                 .mpeg           = SAA7134_MPEG_DVB,
2736                 .inputs = {{
2737                         .name   = name_comp1,
2738                         .vmux   = 1,
2739                         .amux   = LINE1,
2740                 },{
2741                         .name   = name_svideo,
2742                         .vmux   = 8,
2743                         .amux   = LINE1,
2744                 }},
2745         },
2746         [SAA7134_BOARD_FLYDVBT_LR301] = {
2747                 /* LifeView FlyDVB-T */
2748                 /* Giampiero Giancipoli <gianci@libero.it> */
2749                 .name           = "LifeView FlyDVB-T / Genius VideoWonder DVB-T",
2750                 .audio_clock    = 0x00200000,
2751                 .tuner_type     = TUNER_ABSENT,
2752                 .radio_type     = UNSET,
2753                 .tuner_addr     = ADDR_UNSET,
2754                 .radio_addr     = ADDR_UNSET,
2755                 .mpeg           = SAA7134_MPEG_DVB,
2756                 .inputs         = {{
2757                         .name = name_comp1,     /* Composite input */
2758                         .vmux = 3,
2759                         .amux = LINE2,
2760                 },{
2761                         .name = name_svideo,    /* S-Video signal on S-Video input */
2762                         .vmux = 8,
2763                         .amux = LINE2,
2764                 }},
2765         },
2766         [SAA7134_BOARD_ADS_DUO_CARDBUS_PTV331] = {
2767                 .name           = "ADS Instant TV Duo Cardbus PTV331",
2768                 .audio_clock    = 0x00200000,
2769                 .tuner_type     = TUNER_PHILIPS_TDA8290,
2770                 .radio_type     = UNSET,
2771                 .tuner_addr     = ADDR_UNSET,
2772                 .radio_addr     = ADDR_UNSET,
2773                 .mpeg           = SAA7134_MPEG_DVB,
2774                 .gpiomask       = 0x00600000, /* Bit 21 0=Radio, Bit 22 0=TV */
2775                 .inputs = {{
2776                         .name   = name_tv,
2777                         .vmux   = 1,
2778                         .amux   = TV,
2779                         .tv     = 1,
2780                         .gpio   = 0x00200000,
2781                 }},
2782         },
2783         [SAA7134_BOARD_TEVION_DVBT_220RF] = {
2784                 .name           = "Tevion/KWorld DVB-T 220RF",
2785                 .audio_clock    = 0x00187de7,
2786                 .tuner_type     = TUNER_PHILIPS_TDA8290,
2787                 .radio_type     = UNSET,
2788                 .tuner_addr     = ADDR_UNSET,
2789                 .radio_addr     = ADDR_UNSET,
2790                 .mpeg           = SAA7134_MPEG_DVB,
2791                 .gpiomask       = 1 << 21,
2792                 .inputs = {{
2793                         .name   = name_tv,
2794                         .vmux   = 1,
2795                         .amux   = TV,
2796                         .tv     = 1,
2797                 },{
2798                         .name   = name_comp1,
2799                         .vmux   = 3,
2800                         .amux   = LINE1,
2801                 },{
2802                         .name   = name_comp2,
2803                         .vmux   = 0,
2804                         .amux   = LINE1,
2805                 },{
2806                         .name   = name_svideo,
2807                         .vmux   = 8,
2808                         .amux   = LINE1,
2809                 }},
2810                 .radio = {
2811                         .name   = name_radio,
2812                         .amux   = TV,
2813                         .gpio   = 0x0200000,
2814                 },
2815         },
2816         [SAA7134_BOARD_KWORLD_DVBT_210] = {
2817                 .name           = "KWorld DVB-T 210",
2818                 .audio_clock    = 0x00187de7,
2819                 .tuner_type     = TUNER_PHILIPS_TDA8290,
2820                 .radio_type     = UNSET,
2821                 .tuner_addr     = ADDR_UNSET,
2822                 .radio_addr     = ADDR_UNSET,
2823                 .mpeg           = SAA7134_MPEG_DVB,
2824                 .gpiomask       = 1 << 21,
2825                 .inputs = {{
2826                         .name   = name_tv,
2827                         .vmux   = 1,
2828                         .amux   = TV,
2829                         .tv     = 1,
2830                 },{
2831                         .name   = name_comp1,
2832                         .vmux   = 3,
2833                         .amux   = LINE1,
2834                 },{
2835                         .name   = name_svideo,
2836                         .vmux   = 8,
2837                         .amux   = LINE1,
2838                 }},
2839                 .radio = {
2840                         .name   = name_radio,
2841                         .amux   = TV,
2842                         .gpio   = 0x0200000,
2843                 },
2844         },
2845         [SAA7134_BOARD_KWORLD_ATSC110] = {
2846                 .name           = "Kworld ATSC110/115",
2847                 .audio_clock    = 0x00187de7,
2848                 .tuner_type     = TUNER_PHILIPS_TUV1236D,
2849                 .radio_type     = UNSET,
2850                 .tuner_addr     = ADDR_UNSET,
2851                 .radio_addr     = ADDR_UNSET,
2852                 .tda9887_conf   = TDA9887_PRESENT,
2853                 .mpeg           = SAA7134_MPEG_DVB,
2854                 .inputs         = {{
2855                         .name = name_tv,
2856                         .vmux = 1,
2857                         .amux = TV,
2858                         .tv   = 1,
2859                 },{
2860                         .name = name_comp1,
2861                         .vmux = 3,
2862                         .amux = LINE2,
2863                 },{
2864                         .name = name_svideo,
2865                         .vmux = 8,
2866                         .amux = LINE2,
2867                 }},
2868         },
2869         [SAA7134_BOARD_AVERMEDIA_A169_B] = {
2870                 /* AVerMedia A169  */
2871                 /* Rickard Osser <ricky@osser.se>  */
2872                 /* This card has two saa7134 chips on it,
2873                    but only one of them is currently working. */
2874                 .name           = "AVerMedia A169 B",
2875                 .audio_clock    = 0x02187de7,
2876                 .tuner_type     = TUNER_LG_TALN,
2877                 .radio_type     = UNSET,
2878                 .tuner_addr     = ADDR_UNSET,
2879                 .radio_addr     = ADDR_UNSET,
2880                 .tda9887_conf   = TDA9887_PRESENT,
2881                 .gpiomask       = 0x0a60000,
2882         },
2883         [SAA7134_BOARD_AVERMEDIA_A169_B1] = {
2884                 /* AVerMedia A169 */
2885                 /* Rickard Osser <ricky@osser.se> */
2886                 .name           = "AVerMedia A169 B1",
2887                 .audio_clock    = 0x02187de7,
2888                 .tuner_type     = TUNER_LG_TALN,
2889                 .radio_type     = UNSET,
2890                 .tuner_addr     = ADDR_UNSET,
2891                 .radio_addr     = ADDR_UNSET,
2892                 .tda9887_conf   = TDA9887_PRESENT,
2893                 .gpiomask       = 0xca60000,
2894                 .inputs         = {{
2895                         .name = name_tv,
2896                         .vmux = 4,
2897                         .amux = TV,
2898                         .tv   = 1,
2899                         .gpio = 0x04a61000,
2900                 },{
2901                         .name = name_comp2,  /*  Composite SVIDEO (B/W if signal is carried with SVIDEO) */
2902                         .vmux = 1,
2903                         .amux = LINE2,
2904                 },{
2905                         .name = name_svideo,
2906                         .vmux = 9,           /* 9 is correct as S-VIDEO1 according to a169.inf! */
2907                         .amux = LINE1,
2908                 }},
2909         },
2910         [SAA7134_BOARD_MD7134_BRIDGE_2] = {
2911                 /* This card has two saa7134 chips on it,
2912                    but only one of them is currently working.
2913                    The programming for the primary decoder is
2914                    in SAA7134_BOARD_MD7134 */
2915                 .name           = "Medion 7134 Bridge #2",
2916                 .audio_clock    = 0x00187de7,
2917                 .radio_type     = UNSET,
2918                 .tuner_addr     = ADDR_UNSET,
2919                 .radio_addr     = ADDR_UNSET,
2920         },
2921         [SAA7134_BOARD_FLYDVBT_HYBRID_CARDBUS] = {
2922                 .name           = "LifeView FlyDVB-T Hybrid Cardbus/MSI TV @nywhere A/D NB",
2923                 .audio_clock    = 0x00200000,
2924                 .tuner_type     = TUNER_PHILIPS_TDA8290,
2925                 .radio_type     = UNSET,
2926                 .tuner_addr     = ADDR_UNSET,
2927                 .radio_addr     = ADDR_UNSET,
2928                 .mpeg           = SAA7134_MPEG_DVB,
2929                 .gpiomask       = 0x00600000, /* Bit 21 0=Radio, Bit 22 0=TV */
2930                 .inputs         = {{
2931                         .name = name_tv,
2932                         .vmux = 1,
2933                         .amux = TV,
2934                         .gpio = 0x200000,       /* GPIO21=High for TV input */
2935                         .tv   = 1,
2936                 },{
2937                         .name = name_svideo,    /* S-Video signal on S-Video input */
2938                         .vmux = 8,
2939                         .amux = LINE2,
2940                 },{
2941                         .name = name_comp1,     /* Composite signal on S-Video input */
2942                         .vmux = 0,
2943                         .amux = LINE2,
2944                 },{
2945                         .name = name_comp2,     /* Composite input */
2946                         .vmux = 3,
2947                         .amux = LINE2,
2948                 }},
2949                 .radio = {
2950                         .name = name_radio,
2951                         .amux = TV,
2952                         .gpio = 0x000000,       /* GPIO21=Low for FM radio antenna */
2953                 },
2954         },
2955         [SAA7134_BOARD_FLYVIDEO3000_NTSC] = {
2956                 /* "Zac Bowling" <zac@zacbowling.com> */
2957                 .name           = "LifeView FlyVIDEO3000 (NTSC)",
2958                 .audio_clock    = 0x00200000,
2959                 .tuner_type     = TUNER_PHILIPS_NTSC,
2960                 .radio_type     = UNSET,
2961                 .tuner_addr     = ADDR_UNSET,
2962                 .radio_addr     = ADDR_UNSET,
2963
2964                 .gpiomask       = 0xe000,
2965                 .inputs         = {{
2966                         .name = name_tv,
2967                         .vmux = 1,
2968                         .amux = TV,
2969                         .gpio = 0x8000,
2970                         .tv   = 1,
2971                 },{
2972                         .name = name_tv_mono,
2973                         .vmux = 1,
2974                         .amux = LINE2,
2975                         .gpio = 0x0000,
2976                         .tv   = 1,
2977                 },{
2978                         .name = name_comp1,
2979                         .vmux = 0,
2980                         .amux = LINE2,
2981                         .gpio = 0x4000,
2982                 },{
2983                         .name = name_comp2,
2984                         .vmux = 3,
2985                         .amux = LINE2,
2986                         .gpio = 0x4000,
2987                 },{
2988                         .name = name_svideo,
2989                         .vmux = 8,
2990                         .amux = LINE2,
2991                         .gpio = 0x4000,
2992                 }},
2993                 .radio = {
2994                         .name = name_radio,
2995                         .amux = LINE2,
2996                         .gpio = 0x2000,
2997                 },
2998                         .mute = {
2999                         .name = name_mute,
3000                         .amux = TV,
3001                         .gpio = 0x8000,
3002                 },
3003         },
3004         [SAA7134_BOARD_MEDION_MD8800_QUADRO] = {
3005                 .name           = "Medion Md8800 Quadro",
3006                 .audio_clock    = 0x00187de7,
3007                 .tuner_type     = TUNER_PHILIPS_TDA8290,
3008                 .radio_type     = UNSET,
3009                 .tuner_addr     = ADDR_UNSET,
3010                 .radio_addr     = ADDR_UNSET,
3011                 .mpeg           = SAA7134_MPEG_DVB,
3012                 .inputs = {{
3013                         .name   = name_tv,
3014                         .vmux   = 1,
3015                         .amux   = TV,
3016                         .tv     = 1,
3017                 },{
3018                         .name   = name_comp1,
3019                         .vmux   = 0,
3020                         .amux   = LINE1,
3021                 },{
3022                         .name   = name_svideo,
3023                         .vmux   = 8,
3024                         .amux   = LINE1,
3025                 }},
3026         },
3027         [SAA7134_BOARD_FLYDVBS_LR300] = {
3028                 /* LifeView FlyDVB-s */
3029                 /* Igor M. Liplianin <liplianin@tut.by> */
3030                 .name           = "LifeView FlyDVB-S /Acorp TV134DS",
3031                 .audio_clock    = 0x00200000,
3032                 .tuner_type     = TUNER_ABSENT,
3033                 .radio_type     = UNSET,
3034                 .tuner_addr     = ADDR_UNSET,
3035                 .radio_addr     = ADDR_UNSET,
3036                 .mpeg           = SAA7134_MPEG_DVB,
3037                 .inputs         = {{
3038                         .name = name_comp1,     /* Composite input */
3039                         .vmux = 3,
3040                         .amux = LINE1,
3041                 },{
3042                         .name = name_svideo,    /* S-Video signal on S-Video input */
3043                         .vmux = 8,
3044                         .amux = LINE1,
3045                 }},
3046         },
3047         [SAA7134_BOARD_PROTEUS_2309] = {
3048                 .name           = "Proteus Pro 2309",
3049                 .audio_clock    = 0x00187de7,
3050                 .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
3051                 .radio_type     = UNSET,
3052                 .tuner_addr     = ADDR_UNSET,
3053                 .radio_addr     = ADDR_UNSET,
3054                 .tda9887_conf   = TDA9887_PRESENT,
3055                 .inputs         = {{
3056                         .name = name_tv,
3057                         .vmux = 1,
3058                         .amux = LINE2,
3059                         .tv   = 1,
3060                 },{
3061                         .name = name_comp1,
3062                         .vmux = 0,
3063                         .amux = LINE2,
3064                 },{
3065                         .name = name_comp2,
3066                         .vmux = 3,
3067                         .amux = LINE2,
3068                 },{
3069                         .name = name_svideo,
3070                         .vmux = 8,
3071                         .amux = LINE2,
3072                 }},
3073                 .mute = {
3074                         .name = name_mute,
3075                         .amux = LINE1,
3076                 },
3077         },
3078         [SAA7134_BOARD_AVERMEDIA_A16AR] = {
3079                 /* Petr Baudis <pasky@ucw.cz> */
3080                 .name           = "AVerMedia TV Hybrid A16AR",
3081                 .audio_clock    = 0x187de7,
3082                 .tuner_type     = TUNER_PHILIPS_TD1316, /* untested */
3083                 .radio_type     = TUNER_TEA5767, /* untested */
3084                 .tuner_addr     = ADDR_UNSET,
3085                 .radio_addr     = ADDR_UNSET,
3086                 .tda9887_conf   = TDA9887_PRESENT,
3087                 .mpeg           = SAA7134_MPEG_DVB,
3088                 .inputs         = {{
3089                         .name = name_tv,
3090                         .vmux = 1,
3091                         .amux = TV,
3092                         .tv   = 1,
3093                 },{
3094                         .name = name_comp1,
3095                         .vmux = 3,
3096                         .amux = LINE2,
3097                 },{
3098                         .name = name_svideo,
3099                         .vmux = 8,
3100                         .amux = LINE1,
3101                 }},
3102                 .radio = {
3103                         .name = name_radio,
3104                         .amux = LINE1,
3105                 },
3106         },
3107         [SAA7134_BOARD_ASUS_EUROPA2_HYBRID] = {
3108                 .name           = "Asus Europa2 OEM",
3109                 .audio_clock    = 0x00187de7,
3110                 .tuner_type     = TUNER_PHILIPS_FMD1216ME_MK3,
3111                 .radio_type     = UNSET,
3112                 .tuner_addr     = ADDR_UNSET,
3113                 .radio_addr     = ADDR_UNSET,
3114                 .tda9887_conf   = TDA9887_PRESENT| TDA9887_PORT1_ACTIVE | TDA9887_PORT2_ACTIVE,
3115                 .mpeg           = SAA7134_MPEG_DVB,
3116                 .inputs = {{
3117                         .name   = name_tv,
3118                         .vmux   = 3,
3119                         .amux   = TV,
3120                         .tv     = 1,
3121                 },{
3122                         .name   = name_comp1,
3123                         .vmux   = 4,
3124                         .amux   = LINE2,
3125                 },{
3126                         .name   = name_svideo,
3127                         .vmux   = 8,
3128                         .amux   = LINE2,
3129                 }},
3130                 .radio = {
3131                         .name   = name_radio,
3132                         .amux   = LINE1,
3133                 },
3134         },
3135         [SAA7134_BOARD_PINNACLE_PCTV_310i] = {
3136                 .name           = "Pinnacle PCTV 310i",
3137                 .audio_clock    = 0x00187de7,
3138                 .tuner_type     = TUNER_PHILIPS_TDA8290,
3139                 .radio_type     = UNSET,
3140                 .tuner_addr     = ADDR_UNSET,
3141                 .radio_addr     = ADDR_UNSET,
3142                 .tuner_config   = 1,
3143                 .mpeg           = SAA7134_MPEG_DVB,
3144                 .gpiomask       = 0x000200000,
3145                 .inputs         = {{
3146                         .name = name_tv,
3147                         .vmux = 4,
3148                         .amux = TV,
3149                         .tv   = 1,
3150                 },{
3151                         .name = name_comp1,
3152                         .vmux = 1,
3153                         .amux = LINE2,
3154                 },{
3155                         .name = name_comp2,
3156                         .vmux = 0,
3157                         .amux = LINE2,
3158                 },{
3159                         .name = name_svideo,
3160                         .vmux = 8,
3161                         .amux = LINE2,
3162                 }},
3163                 .radio = {
3164                         .name = name_radio,
3165                         .amux   = TV,
3166                         .gpio   = 0x0200000,
3167                 },
3168         },
3169         [SAA7134_BOARD_AVERMEDIA_STUDIO_507] = {
3170                 /* Mikhail Fedotov <mo_fedotov@mail.ru> */
3171                 .name           = "Avermedia AVerTV Studio 507",
3172                 .audio_clock    = 0x00187de7,
3173                 .tuner_type     = TUNER_PHILIPS_FM1256_IH3,
3174                 .radio_type     = UNSET,
3175                 .tuner_addr     = ADDR_UNSET,
3176                 .radio_addr     = ADDR_UNSET,
3177                 .tda9887_conf   = TDA9887_PRESENT,
3178                 .gpiomask       = 0x03,
3179                 .inputs         = {{
3180                         .name = name_tv,
3181                         .vmux = 1,
3182                         .amux = TV,
3183                         .tv   = 1,
3184                         .gpio = 0x00,
3185                 },{
3186                         .name = name_comp1,
3187                         .vmux = 0,
3188                         .amux = LINE2,
3189                         .gpio = 0x00,
3190                 },{
3191                         .name = name_comp2,
3192                         .vmux = 3,
3193                         .amux = LINE2,
3194                         .gpio = 0x00,
3195                 },{
3196                         .name = name_svideo,
3197                         .vmux = 8,
3198                         .amux = LINE2,
3199                         .gpio = 0x00,
3200                 }},
3201                 .radio = {
3202                         .name = name_radio,
3203                         .amux = LINE2,
3204                         .gpio = 0x01,
3205                 },
3206                 .mute  = {
3207                         .name = name_mute,
3208                         .amux = LINE1,
3209                         .gpio = 0x00,
3210                 },
3211         },
3212         [SAA7134_BOARD_VIDEOMATE_DVBT_200A] = {
3213                 /* Francis Barber <fedora@barber-family.id.au> */
3214                 .name           = "Compro Videomate DVB-T200A",
3215                 .audio_clock    = 0x00187de7,
3216                 .tuner_type     = TUNER_ABSENT,
3217                 .radio_type     = UNSET,
3218                 .tuner_addr     = ADDR_UNSET,
3219                 .radio_addr     = ADDR_UNSET,
3220                 .tda9887_conf   = TDA9887_PRESENT | TDA9887_PORT1_ACTIVE,
3221                 .mpeg           = SAA7134_MPEG_DVB,
3222                 .inputs = {{
3223                         .name   = name_tv,
3224                         .vmux   = 3,
3225                         .amux   = TV,
3226                         .tv     = 1,
3227                 },{
3228                         .name   = name_comp1,
3229                         .vmux   = 1,
3230                         .amux   = LINE2,
3231                 },{
3232                         .name   = name_svideo,
3233                         .vmux   = 8,
3234                         .amux   = LINE2,
3235                 }},
3236         },
3237         [SAA7134_BOARD_HAUPPAUGE_HVR1110] = {
3238                 /* Thomas Genty <tomlohave@gmail.com> */
3239                 .name           = "Hauppauge WinTV-HVR1110 DVB-T/Hybrid",
3240                 .audio_clock    = 0x00187de7,
3241                 .tuner_type     = TUNER_PHILIPS_TDA8290,
3242                 .radio_type     = UNSET,
3243                 .tuner_addr     = ADDR_UNSET,
3244                 .radio_addr     = ADDR_UNSET,
3245                 .tuner_config   = 1,
3246                 .mpeg           = SAA7134_MPEG_DVB,
3247                 .inputs         = {{
3248                         .name = name_tv,
3249                         .vmux = 1,
3250                         .amux = TV,
3251                         .tv   = 1,
3252                 },{
3253                         .name   = name_comp1,
3254                         .vmux   = 3,
3255                         .amux   = LINE2, /* FIXME: audio doesn't work on svideo/composite */
3256                 },{
3257                         .name   = name_svideo,
3258                         .vmux   = 8,
3259                         .amux   = LINE2, /* FIXME: audio doesn't work on svideo/composite */
3260                 }},
3261                 .radio = {
3262                         .name = name_radio,
3263                         .amux   = TV,
3264                 },
3265         },
3266         [SAA7134_BOARD_CINERGY_HT_PCMCIA] = {
3267                 .name           = "Terratec Cinergy HT PCMCIA",
3268                 .audio_clock    = 0x00187de7,
3269                 .tuner_type     = TUNER_PHILIPS_TDA8290,
3270                 .radio_type     = UNSET,
3271                 .tuner_addr     = ADDR_UNSET,
3272                 .radio_addr     = ADDR_UNSET,
3273                 .mpeg           = SAA7134_MPEG_DVB,
3274                 .inputs = {{
3275                         .name   = name_tv,
3276                         .vmux   = 1,
3277                         .amux   = TV,
3278                         .tv     = 1,
3279                 },{
3280                         .name   = name_comp1,
3281                         .vmux   = 0,
3282                         .amux   = LINE1,
3283                 },{
3284                         .name   = name_svideo,
3285                         .vmux   = 6,
3286                         .amux   = LINE1,
3287                 }},
3288         },
3289         [SAA7134_BOARD_ENCORE_ENLTV] = {
3290         /* Steven Walter <stevenrwalter@gmail.com>
3291            Juan Pablo Sormani <sorman@gmail.com> */
3292                 .name           = "Encore ENLTV",
3293                 .audio_clock    = 0x00200000,
3294                 .tuner_type     = TUNER_TNF_5335MF,
3295                 .radio_type     = UNSET,
3296                 .tuner_addr     = ADDR_UNSET,
3297                 .radio_addr     = ADDR_UNSET,
3298                 .inputs         = {{
3299                         .name = name_tv,
3300                         .vmux = 1,
3301                         .amux = 3,
3302                         .tv   = 1,
3303                 },{
3304                         .name = name_tv_mono,
3305                         .vmux = 7,
3306                         .amux = 4,
3307                         .tv   = 1,
3308                 },{
3309                         .name = name_comp1,
3310                         .vmux = 3,
3311                         .amux = 2,
3312                 },{
3313                         .name = name_svideo,
3314                         .vmux = 0,
3315                         .amux = 2,
3316                 }},
3317                 .radio = {
3318                         .name = name_radio,
3319                         .amux = LINE2,
3320 /*                      .gpio = 0x00300001,*/
3321                         .gpio = 0x20000,
3322
3323                 },
3324                 .mute = {
3325                         .name = name_mute,
3326                         .amux = 0,
3327                 },
3328         },
3329         [SAA7134_BOARD_ENCORE_ENLTV_FM] = {
3330   /*    Juan Pablo Sormani <sorman@gmail.com> */
3331                 .name           = "Encore ENLTV-FM",
3332                 .audio_clock    = 0x00200000,
3333                 .tuner_type     = TUNER_PHILIPS_ATSC,
3334                 .radio_type     = UNSET,
3335                 .tuner_addr     = ADDR_UNSET,
3336                 .radio_addr     = ADDR_UNSET,
3337                 .inputs         = {{
3338                         .name = name_tv,
3339                         .vmux = 1,
3340                         .amux = 3,
3341                         .tv   = 1,
3342                 },{
3343                         .name = name_tv_mono,
3344                         .vmux = 7,
3345                         .amux = 4,
3346                         .tv   = 1,
3347                 },{
3348                         .name = name_comp1,
3349                         .vmux = 3,
3350                         .amux = 2,
3351                 },{
3352                         .name = name_svideo,
3353                         .vmux = 0,
3354                         .amux = 2,
3355                 }},
3356                 .radio = {
3357                         .name = name_radio,
3358                         .amux = LINE2,
3359                         .gpio = 0x20000,
3360
3361                 },
3362                 .mute = {
3363                         .name = name_mute,
3364                         .amux = 0,
3365                 },
3366         },
3367         [SAA7134_BOARD_CINERGY_HT_PCI] = {
3368                 .name           = "Terratec Cinergy HT PCI",
3369                 .audio_clock    = 0x00187de7,
3370                 .tuner_type     = TUNER_PHILIPS_TDA8290,
3371                 .radio_type     = UNSET,
3372                 .tuner_addr     = ADDR_UNSET,
3373                 .radio_addr     = ADDR_UNSET,
3374                 .mpeg           = SAA7134_MPEG_DVB,
3375                 .inputs = {{
3376                         .name   = name_tv,
3377                         .vmux   = 1,
3378                         .amux   = TV,
3379                         .tv     = 1,
3380                 },{
3381                         .name   = name_comp1,
3382                         .vmux   = 0,
3383                         .amux   = LINE1,
3384                 },{
3385                         .name   = name_svideo,
3386                         .vmux   = 6,
3387                         .amux   = LINE1,
3388                 }},
3389         },
3390         [SAA7134_BOARD_PHILIPS_TIGER_S] = {
3391                 .name           = "Philips Tiger - S Reference design",
3392                 .audio_clock    = 0x00187de7,
3393                 .tuner_type     = TUNER_PHILIPS_TDA8290,
3394                 .radio_type     = UNSET,
3395                 .tuner_addr     = ADDR_UNSET,
3396                 .radio_addr     = ADDR_UNSET,
3397                 .tuner_config   = 2,
3398                 .mpeg           = SAA7134_MPEG_DVB,
3399                 .gpiomask       = 0x0200000,
3400                 .inputs = {{
3401                         .name   = name_tv,
3402                         .vmux   = 1,
3403                         .amux   = TV,
3404                         .tv     = 1,
3405                 },{
3406                         .name   = name_comp1,
3407                         .vmux   = 3,
3408                         .amux   = LINE1,
3409                 },{
3410                         .name   = name_svideo,
3411                         .vmux   = 8,
3412                         .amux   = LINE1,
3413                 }},
3414                 .radio = {
3415                         .name   = name_radio,
3416                         .amux   = TV,
3417                         .gpio   = 0x0200000,
3418                 },
3419         },
3420         [SAA7134_BOARD_AVERMEDIA_M102] = {
3421                 .name           = "Avermedia M102",
3422                 .audio_clock    = 0x00187de7,
3423                 .tuner_type     = TUNER_PHILIPS_TDA8290,
3424                 .radio_type     = UNSET,
3425                 .tuner_addr     = ADDR_UNSET,
3426                 .radio_addr     = ADDR_UNSET,
3427                 .gpiomask       = 1<<21,
3428                 .inputs         = {{
3429                         .name = name_tv,
3430                         .vmux = 1,
3431                         .amux = TV,
3432                         .tv   = 1,
3433                 },{
3434                         .name = name_comp1,
3435                         .vmux = 0,
3436                         .amux = LINE2,
3437                 },{
3438                         .name = name_svideo,
3439                         .vmux = 6,
3440                         .amux = LINE2,
3441                 }},
3442         },
3443         [SAA7134_BOARD_ASUS_P7131_4871] = {
3444                 .name           = "ASUS P7131 4871",
3445                 .audio_clock    = 0x00187de7,
3446                 .tuner_type     = TUNER_PHILIPS_TDA8290,
3447                 .radio_type     = UNSET,
3448                 .tuner_addr     = ADDR_UNSET,
3449                 .radio_addr     = ADDR_UNSET,
3450                 .tuner_config   = 2,
3451                 .mpeg           = SAA7134_MPEG_DVB,
3452                 .gpiomask       = 0x0200000,
3453                 .inputs = {{
3454                         .name   = name_tv,
3455                         .vmux   = 1,
3456                         .amux   = TV,
3457                         .tv     = 1,
3458                         .gpio   = 0x0200000,
3459                 }},
3460         },
3461         [SAA7134_BOARD_ASUSTeK_P7131_HYBRID_LNA] = {
3462                 .name           = "ASUSTeK P7131 Hybrid",
3463                 .audio_clock    = 0x00187de7,
3464                 .tuner_type     = TUNER_PHILIPS_TDA8290,
3465                 .radio_type     = UNSET,
3466                 .tuner_addr     = ADDR_UNSET,
3467                 .radio_addr     = ADDR_UNSET,
3468                 .tuner_config   = 2,
3469                 .gpiomask       = 1 << 21,
3470                 .mpeg           = SAA7134_MPEG_DVB,
3471                 .inputs         = {{
3472                         .name = name_tv,
3473                         .vmux = 1,
3474                         .amux = TV,
3475                         .tv   = 1,
3476                         .gpio = 0x0000000,
3477                 },{
3478                         .name = name_comp1,
3479                         .vmux = 3,
3480                         .amux = LINE2,
3481                         .gpio = 0x0200000,
3482                 },{
3483                         .name = name_comp2,
3484                         .vmux = 0,
3485                         .amux = LINE2,
3486                         .gpio = 0x0200000,
3487                 },{
3488                         .name = name_svideo,
3489                         .vmux = 8,
3490                         .amux = LINE2,
3491                         .gpio = 0x0200000,
3492                 }},
3493                 .radio = {
3494                         .name = name_radio,
3495                         .amux = TV,
3496                         .gpio = 0x0200000,
3497                 },
3498         },
3499         [SAA7134_BOARD_SABRENT_TV_PCB05] = {
3500                 .name           = "Sabrent PCMCIA TV-PCB05",
3501                 .audio_clock    = 0x00187de7,
3502                 .tuner_type     = TUNER_PHILIPS_TDA8290,
3503                 .radio_type     = UNSET,
3504                 .tuner_addr     = ADDR_UNSET,
3505                 .radio_addr     = ADDR_UNSET,
3506                 .inputs         = {{
3507                         .name = name_tv,
3508                         .vmux = 1,
3509                         .amux = TV,
3510                         .tv   = 1,
3511                 },{
3512                         .name = name_comp1,
3513                         .vmux = 3,
3514                         .amux = LINE1,
3515                 },{
3516                         .name = name_comp2,
3517                         .vmux = 0,
3518                         .amux = LINE1,
3519                 },{
3520                         .name = name_svideo,
3521                         .vmux = 8,
3522                         .amux = LINE1,
3523                 }},
3524                 .mute = {
3525                         .name = name_mute,
3526                         .amux = TV,
3527                 },
3528         },
3529         [SAA7134_BOARD_10MOONSTVMASTER3] = {
3530                 /* Tony Wan <aloha_cn@hotmail.com> */
3531                 .name           = "10MOONS TM300 TV Card",
3532                 .audio_clock    = 0x00200000,
3533                 .tuner_type     = TUNER_LG_PAL_NEW_TAPC,
3534                 .radio_type     = UNSET,
3535                 .tuner_addr     = ADDR_UNSET,
3536                 .radio_addr     = ADDR_UNSET,
3537                 .gpiomask       = 0x7000,
3538                 .inputs         = {{
3539                         .name = name_tv,
3540                         .vmux = 1,
3541                         .amux = LINE2,
3542                         .gpio = 0x0000,
3543                         .tv   = 1,
3544                 },{
3545                         .name = name_comp1,
3546                         .vmux = 3,
3547                         .amux = LINE1,
3548                         .gpio = 0x2000,
3549                 },{
3550                         .name = name_svideo,
3551                         .vmux = 8,
3552                         .amux = LINE1,
3553                         .gpio = 0x2000,
3554                 }},
3555                 .mute = {
3556                         .name = name_mute,
3557                         .amux = LINE2,
3558                         .gpio = 0x3000,
3559                 },
3560         },
3561         [SAA7134_BOARD_AVERMEDIA_SUPER_007] = {
3562                 .name           = "Avermedia Super 007",
3563                 .audio_clock    = 0x00187de7,
3564                 .tuner_type     = TUNER_PHILIPS_TDA8290,
3565                 .radio_type     = UNSET,
3566                 .tuner_addr     = ADDR_UNSET,
3567                 .radio_addr     = ADDR_UNSET,
3568                 .tuner_config   = 0,
3569                 .mpeg           = SAA7134_MPEG_DVB,
3570                 .inputs = {{
3571                         .name   = name_tv, /* FIXME: analog tv untested */
3572                         .vmux   = 1,
3573                         .amux   = TV,
3574                         .tv     = 1,
3575                 }},
3576         },
3577         [SAA7134_BOARD_BEHOLD_401] = {
3578                 .name           = "Beholder BeholdTV 401",
3579                 .audio_clock    = 0x00187de7,
3580                 .tuner_type     = TUNER_PHILIPS_FQ1216ME,
3581                 .radio_type     = UNSET,
3582                 .tuner_addr     = ADDR_UNSET,
3583                 .radio_addr     = ADDR_UNSET,
3584                 .inputs         = {{
3585                         .name = name_svideo,
3586                         .vmux = 8,
3587                         .amux = LINE1,
3588                 },{
3589                         .name = name_comp1,
3590                         .vmux = 1,
3591                         .amux = LINE1,
3592                 },{
3593                         .name = name_tv,
3594                         .vmux = 3,
3595                         .amux = LINE2,
3596                         .tv   = 1,
3597                 }},
3598                 .mute = {
3599                         .name = name_mute,
3600                         .amux = LINE1,
3601                 },
3602         },
3603         [SAA7134_BOARD_BEHOLD_403] = {
3604                 .name           = "Beholder BeholdTV 403",
3605                 .audio_clock    = 0x00187de7,
3606                 .tuner_type     = TUNER_PHILIPS_FQ1216ME,
3607                 .radio_type     = UNSET,
3608                 .tuner_addr     = ADDR_UNSET,
3609                 .radio_addr     = ADDR_UNSET,
3610                 .inputs         = {{
3611                         .name = name_svideo,
3612                         .vmux = 8,
3613                         .amux = LINE1,
3614                 },{
3615                         .name   = name_comp1,
3616                         .vmux   = 1,
3617                         .amux   = LINE1,
3618                 },{
3619                         .name = name_tv,
3620                         .vmux = 3,
3621                         .amux = LINE2,
3622                         .tv   = 1,
3623                 }},
3624         },
3625         [SAA7134_BOARD_BEHOLD_403FM] = {
3626                 .name           = "Beholder BeholdTV 403 FM",
3627                 .audio_clock    = 0x00187de7,
3628                 .tuner_type     = TUNER_PHILIPS_FQ1216ME,
3629                 .radio_type     = UNSET,
3630                 .tuner_addr     = ADDR_UNSET,
3631                 .radio_addr     = ADDR_UNSET,
3632                 .inputs         = {{
3633                         .name = name_svideo,
3634                         .vmux = 8,
3635                         .amux = LINE1,
3636                 },{
3637                         .name   = name_comp1,
3638                         .vmux   = 1,
3639                         .amux   = LINE1,
3640                 },{
3641                         .name = name_tv,
3642                         .vmux = 3,
3643                         .amux = LINE2,
3644                         .tv   = 1,
3645                 }},
3646                 .radio = {
3647                         .name = name_radio,
3648                         .amux = LINE2,
3649                 },
3650         },
3651         [SAA7134_BOARD_BEHOLD_405] = {
3652                 .name           = "Beholder BeholdTV 405",
3653                 .audio_clock    = 0x00187de7,
3654                 .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
3655                 .radio_type     = UNSET,
3656                 .tuner_addr     = ADDR_UNSET,
3657                 .radio_addr     = ADDR_UNSET,
3658                 .tda9887_conf   = TDA9887_PRESENT,
3659                 .inputs         = {{
3660                         .name = name_svideo,
3661                         .vmux = 8,
3662                         .amux = LINE1,
3663                 },{
3664                         .name = name_comp1,
3665                         .vmux = 3,
3666                         .amux = LINE1,
3667                 },{
3668                         .name = name_tv,
3669                         .vmux = 3,
3670                         .amux = LINE2,
3671                         .tv   = 1,
3672                 }},
3673         },
3674         [SAA7134_BOARD_BEHOLD_405FM] = {
3675                 /* Sergey <skiv@orel.ru> */
3676                 .name           = "Beholder BeholdTV 405 FM",
3677                 .audio_clock    = 0x00187de7,
3678                 .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
3679                 .radio_type     = UNSET,
3680                 .tuner_addr     = ADDR_UNSET,
3681                 .radio_addr     = ADDR_UNSET,
3682                 .tda9887_conf   = TDA9887_PRESENT,
3683                 .inputs         = {{
3684                         .name = name_svideo,
3685                         .vmux = 8,
3686                         .amux = LINE1,
3687                 },{
3688                         .name = name_comp1,
3689                         .vmux = 3,
3690                         .amux = LINE1,
3691                 },{
3692                         .name = name_tv,
3693                         .vmux = 3,
3694                         .amux = LINE2,
3695                         .tv   = 1,
3696                 }},
3697                 .radio = {
3698                         .name = name_radio,
3699                         .amux = LINE2,
3700                 },
3701         },
3702         [SAA7134_BOARD_BEHOLD_407] = {
3703                 .name           = "Beholder BeholdTV 407",
3704                 .audio_clock    = 0x00187de7,
3705                 .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
3706                 .radio_type     = UNSET,
3707                 .tuner_addr     = ADDR_UNSET,
3708                 .radio_addr     = ADDR_UNSET,
3709                 .tda9887_conf   = TDA9887_PRESENT,
3710                 .gpiomask = 0xc0c000,
3711                 .inputs = {{
3712                         .name = name_svideo,
3713                         .vmux = 8,
3714                         .amux = LINE1,
3715                         .gpio = 0xc0c000,
3716                 },{
3717                         .name = name_comp1,
3718                         .vmux = 1,
3719                         .amux = LINE1,
3720                         .gpio = 0xc0c000,
3721                 },{
3722                         .name = name_tv,
3723                         .vmux = 3,
3724                         .amux = TV,
3725                         .tv = 1,
3726                         .gpio = 0xc0c000,
3727                 }},
3728         },
3729         [SAA7134_BOARD_BEHOLD_407FM] = {
3730                 .name           = "Beholder BeholdTV 407 FM",
3731                 .audio_clock    = 0x00187de7,
3732                 .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
3733                 .radio_type     = UNSET,
3734                 .tuner_addr     = ADDR_UNSET,
3735                 .radio_addr     = ADDR_UNSET,
3736                 .tda9887_conf   = TDA9887_PRESENT,
3737                 .gpiomask = 0xc0c000,
3738                 .inputs = {{
3739                         .name = name_svideo,
3740                         .vmux = 8,
3741                         .amux = LINE1,
3742                         .gpio = 0xc0c000,
3743                 },{
3744                         .name = name_comp1,
3745                         .vmux = 1,
3746                         .amux = LINE1,
3747                         .gpio = 0xc0c000,
3748                 },{
3749                         .name = name_tv,
3750                         .vmux = 3,
3751                         .amux = TV,
3752                         .tv = 1,
3753                         .gpio = 0xc0c000,
3754                 }},
3755                 .radio = {
3756                         .name = name_radio,
3757                         .amux = LINE2,
3758                         .gpio = 0xc0c000,
3759                 },
3760         },
3761         [SAA7134_BOARD_BEHOLD_409] = {
3762                 .name           = "Beholder BeholdTV 409",
3763                 .audio_clock    = 0x00187de7,
3764                 .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
3765                 .radio_type     = UNSET,
3766                 .tuner_addr     = ADDR_UNSET,
3767                 .radio_addr     = ADDR_UNSET,
3768                 .tda9887_conf   = TDA9887_PRESENT,
3769                 .inputs         = {{
3770                         .name = name_tv,
3771                         .vmux = 3,
3772                         .amux = TV,
3773                         .tv   = 1,
3774                 },{
3775                         .name = name_comp1,
3776                         .vmux = 1,
3777                         .amux = LINE1,
3778                 },{
3779                         .name = name_svideo,
3780                         .vmux = 8,
3781                         .amux = LINE1,
3782                 }},
3783         },
3784         [SAA7134_BOARD_BEHOLD_505FM] = {
3785                 .name           = "Beholder BeholdTV 505 FM/RDS",
3786                 .audio_clock    = 0x00200000,
3787                 .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
3788                 .radio_type     = UNSET,
3789                 .tuner_addr     = ADDR_UNSET,
3790                 .radio_addr     = ADDR_UNSET,
3791                 .tda9887_conf   = TDA9887_PRESENT,
3792                 .inputs         = {{
3793                         .name = name_tv,
3794                         .vmux = 3,
3795                         .amux = LINE2,
3796                         .tv   = 1,
3797                 },{
3798                         .name = name_comp1,
3799                         .vmux = 1,
3800                         .amux = LINE1,
3801                 },{
3802                         .name = name_svideo,
3803                         .vmux = 8,
3804                         .amux = LINE1,
3805                 }},
3806                 .mute = {
3807                         .name = name_mute,
3808                         .amux = LINE1,
3809                 },
3810                 .radio = {
3811                         .name = name_radio,
3812                         .amux = LINE2,
3813                 },
3814         },
3815         [SAA7134_BOARD_BEHOLD_507_9FM] = {
3816                 .name           = "Beholder BeholdTV 507 FM/RDS / BeholdTV 509 FM",
3817                 .audio_clock    = 0x00187de7,
3818                 .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
3819                 .radio_type     = UNSET,
3820                 .tuner_addr     = ADDR_UNSET,
3821                 .radio_addr     = ADDR_UNSET,
3822                 .tda9887_conf   = TDA9887_PRESENT,
3823                 .inputs         = {{
3824                         .name = name_tv,
3825                         .vmux = 3,
3826                         .amux = TV,
3827                         .tv   = 1,
3828                 },{
3829                         .name = name_comp1,
3830                         .vmux = 1,
3831                         .amux = LINE1,
3832                 },{
3833                         .name = name_svideo,
3834                         .vmux = 8,
3835                         .amux = LINE1,
3836                 }},
3837                         .radio = {
3838                         .name = name_radio,
3839                         .amux = LINE2,
3840                 },
3841         },
3842         [SAA7134_BOARD_BEHOLD_COLUMBUS_TVFM] = {
3843                 .name           = "Beholder BeholdTV Columbus TVFM",
3844                 .audio_clock    = 0x00187de7,
3845                 .tuner_type     = TUNER_ALPS_TSBE5_PAL,
3846                 .radio_type     = UNSET,
3847                 .tuner_addr     = ADDR_UNSET,
3848                 .radio_addr     = ADDR_UNSET,
3849                 .tda9887_conf   = TDA9887_PRESENT,
3850                 .inputs         = {{
3851                         .name = name_tv,
3852                         .vmux = 3,
3853                         .amux = TV,
3854                         .tv   = 1,
3855                 },{
3856                         .name = name_comp1,
3857                         .vmux = 1,
3858                         .amux = LINE1,
3859                 },{
3860                         .name = name_svideo,
3861                         .vmux = 8,
3862                         .amux = LINE1,
3863                 }},
3864                 .radio = {
3865                         .name = name_radio,
3866                         .amux = LINE2,
3867                 },
3868         },
3869         [SAA7134_BOARD_BEHOLD_607_9FM] = {
3870                 /* Andrey Melnikoff <temnota@kmv.ru> */
3871                 .name           = "Beholder BeholdTV 607 / BeholdTV 609",
3872                 .audio_clock    = 0x00187de7,
3873                 .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
3874                 .radio_type     = UNSET,
3875                 .tuner_addr     = ADDR_UNSET,
3876                 .radio_addr     = ADDR_UNSET,
3877                 .tda9887_conf   = TDA9887_PRESENT,
3878                 .inputs         = {{
3879                         .name = name_tv,
3880                         .vmux = 3,
3881                         .amux = TV,
3882                         .tv   = 1,
3883                 },{
3884                         .name = name_comp1,
3885                         .vmux = 1,
3886                         .amux = LINE1,
3887                 },{
3888                         .name = name_svideo,
3889                         .vmux = 8,
3890                         .amux = LINE1,
3891                 }},
3892                 .radio = {
3893                         .name = name_radio,
3894                         .amux = LINE2,
3895                 },
3896         },
3897         [SAA7134_BOARD_BEHOLD_M6] = {
3898                 /* Igor Kuznetsov <igk@igk.ru> */
3899                 /* Andrey Melnikoff <temnota@kmv.ru> */
3900                 .name           = "Beholder BeholdTV M6 / BeholdTV M6 Extra",
3901                 .audio_clock    = 0x00187de7,
3902                 .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
3903                 .radio_type     = UNSET,
3904                 .tuner_addr     = ADDR_UNSET,
3905                 .radio_addr     = ADDR_UNSET,
3906                 .tda9887_conf   = TDA9887_PRESENT,
3907                 .inputs         = {{
3908                         .name = name_tv,
3909                         .vmux = 3,
3910                         .amux = TV,
3911                         .tv   = 1,
3912                 },{
3913                         .name = name_comp1,
3914                         .vmux = 1,
3915                         .amux = LINE1,
3916                 },{
3917                         .name = name_svideo,
3918                         .vmux = 8,
3919                         .amux = LINE1,
3920                 }},
3921                 .radio = {
3922                         .name = name_radio,
3923                         .amux = LINE2,
3924                 },
3925                 .mpeg  = SAA7134_MPEG_EMPRESS,
3926         },
3927         [SAA7134_BOARD_TWINHAN_DTV_DVB_3056] = {
3928                 .name           = "Twinhan Hybrid DTV-DVB 3056 PCI",
3929                 .audio_clock    = 0x00187de7,
3930                 .tuner_type     = TUNER_PHILIPS_TDA8290,
3931                 .radio_type     = UNSET,
3932                 .tuner_addr     = ADDR_UNSET,
3933                 .radio_addr     = ADDR_UNSET,
3934                 .tuner_config   = 2,
3935                 .mpeg           = SAA7134_MPEG_DVB,
3936                 .gpiomask       = 0x0200000,
3937                 .inputs = {{
3938                         .name   = name_tv,
3939                         .vmux   = 1,
3940                         .amux   = TV,
3941                         .tv     = 1,
3942                 }, {
3943                         .name   = name_comp1,
3944                         .vmux   = 3,
3945                         .amux   = LINE1,
3946                 }, {
3947                         .name   = name_svideo,
3948                         .vmux   = 8,            /* untested */
3949                         .amux   = LINE1,
3950                 } },
3951                 .radio = {
3952                         .name   = name_radio,
3953                         .amux   = TV,
3954                         .gpio   = 0x0200000,
3955                 },
3956         },
3957         [SAA7134_BOARD_GENIUS_TVGO_A11MCE] = {
3958                 /* Adrian Pardini <pardo.bsso@gmail.com> */
3959                 .name           = "Genius TVGO AM11MCE",
3960                 .audio_clock    = 0x00200000,
3961                 .tuner_type     = TUNER_TNF_5335MF,
3962                 .radio_type     = UNSET,
3963                 .tuner_addr     = ADDR_UNSET,
3964                 .radio_addr     = ADDR_UNSET,
3965                 .gpiomask       = 0xf000,
3966                 .inputs         = {{
3967                         .name = name_tv_mono,
3968                         .vmux = 1,
3969                         .amux = LINE2,
3970                         .gpio = 0x0000,
3971                         .tv   = 1,
3972                 }, {
3973                         .name = name_comp1,
3974                         .vmux = 3,
3975                         .amux = LINE1,
3976                         .gpio = 0x2000,
3977                         .tv = 1
3978                 }, {
3979                         .name = name_svideo,
3980                         .vmux = 8,
3981                         .amux = LINE1,
3982                         .gpio = 0x2000,
3983         } },
3984                 .radio = {
3985                         .name = name_radio,
3986                         .amux = LINE2,
3987                         .gpio = 0x1000,
3988                 },
3989                 .mute = {
3990                         .name = name_mute,
3991                         .amux = LINE2,
3992                         .gpio = 0x6000,
3993                 },
3994         },
3995 };
3996
3997 const unsigned int saa7134_bcount = ARRAY_SIZE(saa7134_boards);
3998
3999 /* ------------------------------------------------------------------ */
4000 /* PCI ids + subsystem IDs                                            */
4001
4002 struct pci_device_id saa7134_pci_tbl[] = {
4003         {
4004                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4005                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4006                 .subvendor    = PCI_VENDOR_ID_PHILIPS,
4007                 .subdevice    = 0x2001,
4008                 .driver_data  = SAA7134_BOARD_PROTEUS_PRO,
4009         },{
4010                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4011                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4012                 .subvendor    = PCI_VENDOR_ID_PHILIPS,
4013                 .subdevice    = 0x2001,
4014                 .driver_data  = SAA7134_BOARD_PROTEUS_PRO,
4015         },{
4016                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4017                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4018                 .subvendor    = PCI_VENDOR_ID_PHILIPS,
4019                 .subdevice    = 0x6752,
4020                 .driver_data  = SAA7134_BOARD_EMPRESS,
4021         },{
4022                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4023                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4024                 .subvendor    = 0x1131,
4025                 .subdevice    = 0x4e85,
4026                 .driver_data  = SAA7134_BOARD_MONSTERTV,
4027         },{
4028                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4029                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4030                 .subvendor    = 0x153b,
4031                 .subdevice    = 0x1142,
4032                 .driver_data  = SAA7134_BOARD_CINERGY400,
4033         },{
4034                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4035                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4036                 .subvendor    = 0x153b,
4037                 .subdevice    = 0x1143,
4038                 .driver_data  = SAA7134_BOARD_CINERGY600,
4039         },{
4040                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4041                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4042                 .subvendor    = 0x153b,
4043                 .subdevice    = 0x1158,
4044                 .driver_data  = SAA7134_BOARD_CINERGY600_MK3,
4045         },{
4046                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4047                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4048                 .subvendor    = 0x153b,
4049                 .subdevice    = 0x1162,
4050                 .driver_data  = SAA7134_BOARD_CINERGY400_CARDBUS,
4051         },{
4052                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4053                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4054                 .subvendor    = 0x5169,
4055                 .subdevice    = 0x0138,
4056                 .driver_data  = SAA7134_BOARD_FLYVIDEO3000_NTSC,
4057         },{
4058                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4059                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4060                 .subvendor    = 0x5168,
4061                 .subdevice    = 0x0138,
4062                 .driver_data  = SAA7134_BOARD_FLYVIDEO3000,
4063         },{
4064                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4065                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4066                 .subvendor    = 0x4e42,                         /* "Typhoon PCI Capture TV Card" Art.No. 50673 */
4067                 .subdevice    = 0x0138,
4068                 .driver_data  = SAA7134_BOARD_FLYVIDEO3000,
4069         },{
4070                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4071                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
4072                 .subvendor    = 0x5168,
4073                 .subdevice    = 0x0138,
4074                 .driver_data  = SAA7134_BOARD_FLYVIDEO2000,
4075         },{
4076                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4077                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
4078                 .subvendor    = 0x4e42,         /* Typhoon */
4079                 .subdevice    = 0x0138,         /* LifeView FlyTV Prime30 OEM */
4080                 .driver_data  = SAA7134_BOARD_FLYVIDEO2000,
4081         },{
4082                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4083                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4084                 .subvendor    = 0x5168,
4085                 .subdevice    = 0x0212, /* minipci, LR212 */
4086                 .driver_data  = SAA7134_BOARD_FLYTVPLATINUM_MINI,
4087         },{
4088                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4089                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4090                 .subvendor    = 0x14c0,
4091                 .subdevice    = 0x1212, /* minipci, LR1212 */
4092                 .driver_data  = SAA7134_BOARD_FLYTVPLATINUM_MINI2,
4093         },{
4094                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4095                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4096                 .subvendor    = 0x4e42,
4097                 .subdevice    = 0x0212, /* OEM minipci, LR212 */
4098                 .driver_data  = SAA7134_BOARD_FLYTVPLATINUM_MINI,
4099         },{
4100                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4101                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4102                 .subvendor    = 0x5168, /* Animation Technologies (LifeView) */
4103                 .subdevice    = 0x0214, /* Standard PCI, LR214 Rev E and earlier (SAA7135) */
4104                 .driver_data  = SAA7134_BOARD_FLYTVPLATINUM_FM,
4105         },{
4106                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4107                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4108                 .subvendor    = 0x5168, /* Animation Technologies (LifeView) */
4109                 .subdevice    = 0x5214, /* Standard PCI, LR214 Rev F onwards (SAA7131) */
4110                 .driver_data  = SAA7134_BOARD_FLYTVPLATINUM_FM,
4111         },{
4112                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4113                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4114                 .subvendor    = 0x1489, /* KYE */
4115                 .subdevice    = 0x0214, /* Genius VideoWonder ProTV */
4116                 .driver_data  = SAA7134_BOARD_FLYTVPLATINUM_FM, /* is an LR214WF actually */
4117         },{
4118                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4119                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4120                 .subvendor    = 0x16be,
4121                 .subdevice    = 0x0003,
4122                 .driver_data  = SAA7134_BOARD_MD7134,
4123         },{
4124                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4125                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
4126                 .subvendor    = 0x1048,
4127                 .subdevice    = 0x226b,
4128                 .driver_data  = SAA7134_BOARD_ELSA,
4129         },{
4130                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4131                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
4132                 .subvendor    = 0x1048,
4133                 .subdevice    = 0x226a,
4134                 .driver_data  = SAA7134_BOARD_ELSA_500TV,
4135         },{
4136                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4137                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
4138                 .subvendor    = 0x1048,
4139                 .subdevice    = 0x226c,
4140                 .driver_data  = SAA7134_BOARD_ELSA_700TV,
4141         },{
4142                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4143                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4144                 .subvendor    = PCI_VENDOR_ID_ASUSTEK,
4145                 .subdevice    = 0x4842,
4146                 .driver_data  = SAA7134_BOARD_ASUSTeK_TVFM7134,
4147         },{
4148                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4149                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4150                 .subvendor    = PCI_VENDOR_ID_ASUSTEK,
4151                 .subdevice    = 0x4845,
4152                 .driver_data  = SAA7134_BOARD_ASUSTeK_TVFM7135,
4153         },{
4154                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4155                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4156                 .subvendor    = PCI_VENDOR_ID_ASUSTEK,
4157                 .subdevice    = 0x4830,
4158                 .driver_data  = SAA7134_BOARD_ASUSTeK_TVFM7134,
4159         },{
4160                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4161                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4162                 .subvendor    = PCI_VENDOR_ID_ASUSTEK,
4163                 .subdevice    = 0x4843,
4164                 .driver_data  = SAA7134_BOARD_ASUSTEK_TVFM7133,
4165         },{
4166                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4167                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4168                 .subvendor    = PCI_VENDOR_ID_ASUSTEK,
4169                 .subdevice    = 0x4840,
4170                 .driver_data  = SAA7134_BOARD_ASUSTeK_TVFM7134,
4171         },{
4172                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4173                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4174                 .subvendor    = PCI_VENDOR_ID_PHILIPS,
4175                 .subdevice    = 0xfe01,
4176                 .driver_data  = SAA7134_BOARD_TVSTATION_RDS,
4177         },{
4178                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4179                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4180                 .subvendor    = 0x1894,
4181                 .subdevice    = 0xfe01,
4182                 .driver_data  = SAA7134_BOARD_TVSTATION_RDS,
4183         },{
4184                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4185                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4186                 .subvendor    = 0x1894,
4187                 .subdevice    = 0xa006,
4188                 .driver_data  = SAA7134_BOARD_TVSTATION_DVR,
4189         },{
4190                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4191                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4192                 .subvendor    = 0x1131,
4193                 .subdevice    = 0x7133,
4194                 .driver_data  = SAA7134_BOARD_VA1000POWER,
4195         },{
4196                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4197                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
4198                 .subvendor    = PCI_VENDOR_ID_PHILIPS,
4199                 .subdevice    = 0x2001,
4200                 .driver_data  = SAA7134_BOARD_10MOONSTVMASTER,
4201         },{
4202                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4203                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4204                 .subvendor    = 0x185b,
4205                 .subdevice    = 0xc100,
4206                 .driver_data  = SAA7134_BOARD_VIDEOMATE_TV,
4207         },{
4208                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4209                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4210                 .subvendor    = 0x185b,
4211                 .subdevice    = 0xc100,
4212                 .driver_data  = SAA7134_BOARD_VIDEOMATE_TV_GOLD_PLUS,
4213         },{
4214                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4215                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
4216                 .subvendor    = PCI_VENDOR_ID_MATROX,
4217                 .subdevice    = 0x48d0,
4218                 .driver_data  = SAA7134_BOARD_CRONOS_PLUS,
4219         },{
4220                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4221                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4222                 .subvendor    = 0x1461, /* Avermedia Technologies Inc */
4223                 .subdevice    = 0xa70b,
4224                 .driver_data  = SAA7134_BOARD_MD2819,
4225         },{
4226                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4227                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
4228                 .subvendor    = 0x1461, /* Avermedia Technologies Inc */
4229                 .subdevice    = 0x2115,
4230                 .driver_data  = SAA7134_BOARD_AVERMEDIA_STUDIO_305,
4231         },{
4232                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4233                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
4234                 .subvendor    = 0x1461, /* Avermedia Technologies Inc */
4235                 .subdevice    = 0x2108,
4236                 .driver_data  = SAA7134_BOARD_AVERMEDIA_305,
4237         },{
4238                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4239                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
4240                 .subvendor    = 0x1461, /* Avermedia Technologies Inc */
4241                 .subdevice    = 0x10ff,
4242                 .driver_data  = SAA7134_BOARD_AVERMEDIA_DVD_EZMAKER,
4243         },{
4244                 /* AVerMedia CardBus */
4245                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4246                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4247                 .subvendor    = 0x1461, /* Avermedia Technologies Inc */
4248                 .subdevice    = 0xd6ee,
4249                 .driver_data  = SAA7134_BOARD_AVERMEDIA_CARDBUS,
4250         },{
4251                 /* TransGear 3000TV */
4252                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4253                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
4254                 .subvendor    = 0x1461, /* Avermedia Technologies Inc */
4255                 .subdevice    = 0x050c,
4256                 .driver_data  = SAA7134_BOARD_TG3000TV,
4257         },{
4258                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4259                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4260                 .subvendor    = 0x11bd,
4261                 .subdevice    = 0x002b,
4262                 .driver_data  = SAA7134_BOARD_PINNACLE_PCTV_STEREO,
4263         },{
4264                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4265                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4266                 .subvendor    = 0x11bd,
4267                 .subdevice    = 0x002d,
4268                 .driver_data  = SAA7134_BOARD_PINNACLE_300I_DVBT_PAL,
4269         },{
4270                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4271                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4272                 .subvendor    = 0x1019,
4273                 .subdevice    = 0x4cb4,
4274                 .driver_data  = SAA7134_BOARD_ECS_TVP3XP,
4275         },{
4276                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4277                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4278                 .subvendor    = 0x1019,
4279                 .subdevice    = 0x4cb5,
4280                 .driver_data  = SAA7134_BOARD_ECS_TVP3XP_4CB5,
4281         },{
4282                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4283                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4284                 .subvendor    = 0x1019,
4285                 .subdevice    = 0x4cb6,
4286                 .driver_data  = SAA7134_BOARD_ECS_TVP3XP_4CB6,
4287         },{
4288                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4289                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4290                 .subvendor    = 0x12ab,
4291                 .subdevice    = 0x0800,
4292                 .driver_data  = SAA7134_BOARD_UPMOST_PURPLE_TV,
4293         },{
4294                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4295                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
4296                 .subvendor    = 0x153b,
4297                 .subdevice    = 0x1152,
4298                 .driver_data  = SAA7134_BOARD_CINERGY200,
4299         },{
4300                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4301                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
4302                 .subvendor    = 0x185b,
4303                 .subdevice    = 0xc100,
4304                 .driver_data  = SAA7134_BOARD_VIDEOMATE_TV_PVR,
4305         },{
4306                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4307                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4308                 .subvendor    = 0x1461, /* Avermedia Technologies Inc */
4309                 .subdevice    = 0x9715,
4310                 .driver_data  = SAA7134_BOARD_AVERMEDIA_STUDIO_307,
4311         },{
4312                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4313                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4314                 .subvendor    = 0x1461, /* Avermedia Technologies Inc */
4315                 .subdevice    = 0xa70a,
4316                 .driver_data  = SAA7134_BOARD_AVERMEDIA_307,
4317         },{
4318                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4319                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4320                 .subvendor    = 0x185b,
4321                 .subdevice    = 0xc200,
4322                 .driver_data  = SAA7134_BOARD_VIDEOMATE_GOLD_PLUS,
4323         },{
4324                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4325                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4326                 .subvendor    = 0x1540,
4327                 .subdevice    = 0x9524,
4328                 .driver_data  = SAA7134_BOARD_PROVIDEO_PV952,
4329
4330         },{
4331                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4332                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4333                 .subvendor    = 0x5168,
4334                 .subdevice    = 0x0502,                /* Cardbus version */
4335                 .driver_data  = SAA7134_BOARD_FLYDVBT_DUO_CARDBUS,
4336         },{
4337                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4338                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4339                 .subvendor    = 0x5168,
4340                 .subdevice    = 0x0306,                /* PCI version */
4341                 .driver_data  = SAA7134_BOARD_FLYDVBTDUO,
4342         },{
4343                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4344                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4345                 .subvendor    = 0x1461, /* Avermedia Technologies Inc */
4346                 .subdevice    = 0xf31f,
4347                 .driver_data  = SAA7134_BOARD_AVERMEDIA_GO_007_FM,
4348
4349         },{
4350                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4351                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
4352                 .subvendor    = PCI_VENDOR_ID_PHILIPS,
4353                 .subdevice    = 0x2004,
4354                 .driver_data  = SAA7134_BOARD_PHILIPS_TOUGH,
4355         },{
4356                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4357                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4358                 .subvendor    = 0x1421,
4359                 .subdevice    = 0x0350,         /* PCI version */
4360                 .driver_data  = SAA7134_BOARD_ADS_INSTANT_TV,
4361         },{
4362                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4363                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4364                 .subvendor    = 0x1421,
4365                 .subdevice    = 0x0351,         /* PCI version, new revision */
4366                 .driver_data  = SAA7134_BOARD_ADS_INSTANT_TV,
4367         },{
4368                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4369                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4370                 .subvendor    = 0x1421,
4371                 .subdevice    = 0x0370,         /* cardbus version */
4372                 .driver_data  = SAA7134_BOARD_ADS_INSTANT_TV,
4373         },{
4374                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4375                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4376                 .subvendor    = 0x1421,
4377                 .subdevice    = 0x1370,        /* cardbus version */
4378                 .driver_data  = SAA7134_BOARD_ADS_INSTANT_TV,
4379
4380         },{
4381                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4382                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4383                 .subvendor    = 0x4e42,         /* Typhoon */
4384                 .subdevice    = 0x0502,         /* LifeView LR502 OEM */
4385                 .driver_data  = SAA7134_BOARD_FLYDVBT_DUO_CARDBUS,
4386         },{
4387                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4388                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4389                 .subvendor    = 0x1043,
4390                 .subdevice    = 0x0210,         /* mini pci NTSC version */
4391                 .driver_data  = SAA7134_BOARD_FLYTV_DIGIMATRIX,
4392         },{
4393                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4394                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4395                 .subvendor    = 0x1043,
4396                 .subdevice    = 0x0210,         /* mini pci PAL/SECAM version */
4397                 .driver_data  = SAA7134_BOARD_ASUSTEK_DIGIMATRIX_TV,
4398
4399         },{
4400                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4401                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4402                 .subvendor    = 0x0000, /* It shouldn't break anything, since subdevice id seems unique */
4403                 .subdevice    = 0x4091,
4404                 .driver_data  = SAA7134_BOARD_BEHOLD_409FM,
4405         },{
4406                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4407                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4408                 .subvendor    = 0x5456, /* GoTView */
4409                 .subdevice    = 0x7135,
4410                 .driver_data  = SAA7134_BOARD_GOTVIEW_7135,
4411         },{
4412                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4413                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4414                 .subvendor    = PCI_VENDOR_ID_PHILIPS,
4415                 .subdevice    = 0x2004,
4416                 .driver_data  = SAA7134_BOARD_PHILIPS_EUROPA,
4417         },{
4418                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4419                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4420                 .subvendor    = 0x185b,
4421                 .subdevice    = 0xc900,
4422                 .driver_data  = SAA7134_BOARD_VIDEOMATE_DVBT_300,
4423         },{
4424                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4425                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
4426                 .subvendor    = 0x185b,
4427                 .subdevice    = 0xc901,
4428                 .driver_data  = SAA7134_BOARD_VIDEOMATE_DVBT_200,
4429         },{
4430                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4431                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4432                 .subvendor    = 0x1435,
4433                 .subdevice    = 0x7350,
4434                 .driver_data  = SAA7134_BOARD_RTD_VFG7350,
4435         },{
4436                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4437                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4438                 .subvendor    = 0x1435,
4439                 .subdevice    = 0x7330,
4440                 .driver_data  = SAA7134_BOARD_RTD_VFG7330,
4441         },{
4442                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4443                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4444                 .subvendor    = 0x1461,
4445                 .subdevice    = 0x1044,
4446                 .driver_data  = SAA7134_BOARD_AVERMEDIA_AVERTVHD_A180,
4447         },{
4448                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4449                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4450                 .subvendor    = 0x1131,
4451                 .subdevice    = 0x4ee9,
4452                 .driver_data  = SAA7134_BOARD_MONSTERTV_MOBILE,
4453         },{
4454                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4455                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4456                 .subvendor    = 0x11bd,
4457                 .subdevice    = 0x002e,
4458                 .driver_data  = SAA7134_BOARD_PINNACLE_PCTV_110i,
4459         },{
4460                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4461                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4462                 .subvendor    = 0x1043,
4463                 .subdevice    = 0x4862,
4464                 .driver_data  = SAA7134_BOARD_ASUSTeK_P7131_DUAL,
4465         },{
4466                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4467                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4468                 .subvendor    = PCI_VENDOR_ID_PHILIPS,
4469                 .subdevice    = 0x2018,
4470                 .driver_data  = SAA7134_BOARD_PHILIPS_TIGER,
4471         },{
4472                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4473                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4474                 .subvendor    = 0x1462,
4475                 .subdevice    = 0x6231, /* tda8275a, ks003 IR */
4476                 .driver_data  = SAA7134_BOARD_MSI_TVATANYWHERE_PLUS,
4477         },{
4478                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4479                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4480                 .subvendor    = 0x1462,
4481                 .subdevice    = 0x8624, /* tda8275, ks003 IR */
4482                 .driver_data  = SAA7134_BOARD_MSI_TVATANYWHERE_PLUS,
4483         },{
4484                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4485                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4486                 .subvendor    = 0x153b,
4487                 .subdevice    = 0x1160,
4488                 .driver_data  = SAA7134_BOARD_CINERGY250PCI,
4489         },{
4490                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4491                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,  /* SAA 7131E */
4492                 .subvendor    = 0x5168,
4493                 .subdevice    = 0x0319,
4494                 .driver_data  = SAA7134_BOARD_FLYDVB_TRIO,
4495         },{
4496                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4497                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4498                 .subvendor    = 0x1461,
4499                 .subdevice    = 0x2c05,
4500                 .driver_data  = SAA7134_BOARD_AVERMEDIA_777,
4501         },{
4502                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4503                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4504                 .subvendor    = 0x5168,
4505                 .subdevice    = 0x0301,
4506                 .driver_data  = SAA7134_BOARD_FLYDVBT_LR301,
4507         },{
4508                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4509                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4510                 .subvendor    = 0x0331,
4511                 .subdevice    = 0x1421,
4512                 .driver_data  = SAA7134_BOARD_ADS_DUO_CARDBUS_PTV331,
4513         },{
4514                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4515                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4516                 .subvendor    = 0x17de,
4517                 .subdevice    = 0x7201,
4518                 .driver_data  = SAA7134_BOARD_TEVION_DVBT_220RF,
4519         },{
4520                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4521                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4522                 .subvendor    = 0x17de,
4523                 .subdevice    = 0x7250,
4524                 .driver_data  = SAA7134_BOARD_KWORLD_DVBT_210,
4525         },{
4526                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4527                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133, /* SAA7135HL */
4528                 .subvendor    = 0x17de,
4529                 .subdevice    = 0x7350,
4530                 .driver_data  = SAA7134_BOARD_KWORLD_ATSC110,
4531         },{
4532                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4533                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133, /* SAA7135HL */
4534                 .subvendor    = 0x17de,
4535                 .subdevice    = 0x7352,
4536                 .driver_data  = SAA7134_BOARD_KWORLD_ATSC110, /* ATSC 115 */
4537         },{
4538                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4539                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4540                 .subvendor    = 0x1461,
4541                 .subdevice    = 0x7360,
4542                 .driver_data  = SAA7134_BOARD_AVERMEDIA_A169_B,
4543         },{
4544                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4545                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4546                 .subvendor    = 0x1461,
4547                 .subdevice    = 0x6360,
4548                 .driver_data  = SAA7134_BOARD_AVERMEDIA_A169_B1,
4549         },{
4550                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4551                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4552                 .subvendor    = 0x16be,
4553                 .subdevice    = 0x0005,
4554                 .driver_data  = SAA7134_BOARD_MD7134_BRIDGE_2,
4555         },{
4556                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4557                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4558                 .subvendor    = 0x5168,
4559                 .subdevice    = 0x0300,
4560                 .driver_data  = SAA7134_BOARD_FLYDVBS_LR300,
4561         },{
4562                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4563                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4564                 .subvendor    = 0x4e42,
4565                 .subdevice    = 0x0300,/* LR300 */
4566                 .driver_data  = SAA7134_BOARD_FLYDVBS_LR300,
4567         },{
4568                 .vendor = PCI_VENDOR_ID_PHILIPS,
4569                 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
4570                 .subvendor = 0x1489,
4571                 .subdevice = 0x0301,
4572                 .driver_data = SAA7134_BOARD_FLYDVBT_LR301,
4573         },{
4574                 .vendor = PCI_VENDOR_ID_PHILIPS,
4575                 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
4576                 .subvendor = 0x5168, /* Animation Technologies (LifeView) */
4577                 .subdevice = 0x0304,
4578                 .driver_data = SAA7134_BOARD_FLYTVPLATINUM_FM,
4579         },{
4580                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4581                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4582                 .subvendor    = 0x5168,
4583                 .subdevice    = 0x3306,
4584                 .driver_data  = SAA7134_BOARD_FLYDVBT_HYBRID_CARDBUS,
4585         },{
4586                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4587                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4588                 .subvendor    = 0x5168,
4589                 .subdevice    = 0x3502,  /* whats the difference to 0x3306 ?*/
4590                 .driver_data  = SAA7134_BOARD_FLYDVBT_HYBRID_CARDBUS,
4591         },{
4592                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4593                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4594                 .subvendor    = 0x5168,
4595                 .subdevice    = 0x3307, /* FlyDVB-T Hybrid Mini PCI */
4596                 .driver_data  = SAA7134_BOARD_FLYDVBT_HYBRID_CARDBUS,
4597         }, {
4598                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4599                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4600                 .subvendor    = 0x16be,
4601                 .subdevice    = 0x0007,
4602                 .driver_data  = SAA7134_BOARD_MEDION_MD8800_QUADRO,
4603         },{
4604                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4605                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4606                 .subvendor    = 0x16be,
4607                 .subdevice    = 0x0008,
4608                 .driver_data  = SAA7134_BOARD_MEDION_MD8800_QUADRO,
4609         },{
4610                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4611                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4612                 .subvendor    = 0x16be,
4613                 .subdevice    = 0x000d, /* triple CTX948_V1.1.1 */
4614                 .driver_data  = SAA7134_BOARD_MEDION_MD8800_QUADRO,
4615         }, {
4616                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4617                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4618                 .subvendor    = 0x1461,
4619                 .subdevice    = 0x2c05,
4620                 .driver_data  = SAA7134_BOARD_AVERMEDIA_777,
4621         },{
4622                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4623                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4624                 .subvendor    = 0x1489,
4625                 .subdevice    = 0x0502,                /* Cardbus version */
4626                 .driver_data  = SAA7134_BOARD_FLYDVBT_DUO_CARDBUS,
4627         },{
4628                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4629                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
4630                 .subvendor    = 0x0919, /* Philips Proteus PRO 2309 */
4631                 .subdevice    = 0x2003,
4632                 .driver_data  = SAA7134_BOARD_PROTEUS_2309,
4633         },{
4634                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4635                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4636                 .subvendor    = 0x1461,
4637                 .subdevice    = 0x2c00,
4638                 .driver_data  = SAA7134_BOARD_AVERMEDIA_A16AR,
4639         },{
4640                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4641                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4642                 .subvendor    = 0x1043,
4643                 .subdevice    = 0x4860,
4644                 .driver_data  = SAA7134_BOARD_ASUS_EUROPA2_HYBRID,
4645         },{
4646                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4647                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4648                 .subvendor    = 0x11bd,
4649                 .subdevice    = 0x002f,
4650                 .driver_data  = SAA7134_BOARD_PINNACLE_PCTV_310i,
4651         },{
4652                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4653                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4654                 .subvendor    = 0x1461, /* Avermedia Technologies Inc */
4655                 .subdevice    = 0x9715,
4656                 .driver_data  = SAA7134_BOARD_AVERMEDIA_STUDIO_507,
4657         },{
4658                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4659                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4660                 .subvendor    = 0x1043,
4661                 .subdevice    = 0x4876,
4662                 .driver_data  = SAA7134_BOARD_ASUSTeK_P7131_HYBRID_LNA,
4663         },{
4664                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4665                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4666                 .subvendor    = 0x0070,
4667                 .subdevice    = 0x6700,
4668                 .driver_data  = SAA7134_BOARD_HAUPPAUGE_HVR1110,
4669         },{
4670                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4671                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4672                 .subvendor    = 0x0070,
4673                 .subdevice    = 0x6701,
4674                 .driver_data  = SAA7134_BOARD_HAUPPAUGE_HVR1110,
4675         },{
4676                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4677                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4678                 .subvendor    = 0x0070,
4679                 .subdevice    = 0x6702,
4680                 .driver_data  = SAA7134_BOARD_HAUPPAUGE_HVR1110,
4681         },{
4682                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4683                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4684                 .subvendor    = 0x0070,
4685                 .subdevice    = 0x6703,
4686                 .driver_data  = SAA7134_BOARD_HAUPPAUGE_HVR1110,
4687         },{
4688                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4689                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4690                 .subvendor    = 0x0070,
4691                 .subdevice    = 0x6704,
4692                 .driver_data  = SAA7134_BOARD_HAUPPAUGE_HVR1110,
4693         },{
4694                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4695                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4696                 .subvendor    = 0x0070,
4697                 .subdevice    = 0x6705,
4698                 .driver_data  = SAA7134_BOARD_HAUPPAUGE_HVR1110,
4699         },{
4700                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4701                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4702                 .subvendor    = 0x153b,
4703                 .subdevice    = 0x1172,
4704                 .driver_data  = SAA7134_BOARD_CINERGY_HT_PCMCIA,
4705         },{
4706                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4707                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
4708                 .subvendor    = PCI_VENDOR_ID_PHILIPS,
4709                 .subdevice    = 0x2342,
4710                 .driver_data  = SAA7134_BOARD_ENCORE_ENLTV,
4711         },{
4712                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4713                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
4714                 .subvendor    = 0x1131,
4715                 .subdevice    = 0x2341,
4716                 .driver_data  = SAA7134_BOARD_ENCORE_ENLTV,
4717         },{
4718                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4719                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
4720                 .subvendor    = 0x3016,
4721                 .subdevice    = 0x2344,
4722                 .driver_data  = SAA7134_BOARD_ENCORE_ENLTV,
4723         },{
4724                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4725                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
4726                 .subvendor    = 0x1131,
4727                 .subdevice    = 0x230f,
4728                 .driver_data  = SAA7134_BOARD_ENCORE_ENLTV_FM,
4729         },{
4730                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4731                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4732                 .subvendor    = 0x153b,
4733                 .subdevice    = 0x1175,
4734                 .driver_data  = SAA7134_BOARD_CINERGY_HT_PCI,
4735         },{
4736                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4737                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4738                 .subvendor    = 0x1461, /* Avermedia Technologies Inc */
4739                 .subdevice    = 0xf31e,
4740                 .driver_data  = SAA7134_BOARD_AVERMEDIA_M102,
4741         },{
4742                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4743                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4744                 .subvendor    = 0x4E42,         /* MSI */
4745                 .subdevice    = 0x0306,         /* TV@nywhere DUO */
4746                 .driver_data  = SAA7134_BOARD_FLYDVBTDUO,
4747         },{
4748                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4749                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4750                 .subvendor    = 0x1043,
4751                 .subdevice    = 0x4871,
4752                 .driver_data  = SAA7134_BOARD_ASUS_P7131_4871,
4753         },{
4754                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4755                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4756                 .subvendor    = 0x1043,
4757                 .subdevice    = 0x4857,
4758                 .driver_data  = SAA7134_BOARD_ASUSTeK_P7131_DUAL,
4759         },{
4760                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4761                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4762                 .subvendor    = 0x0919, /* SinoVideo PCI 2309 Proteus (7134) */
4763                 .subdevice    = 0x2003, /* OEM cardbus */
4764                 .driver_data  = SAA7134_BOARD_SABRENT_TV_PCB05,
4765         },{
4766                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4767                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
4768                 .subvendor    = PCI_VENDOR_ID_PHILIPS,
4769                 .subdevice    = 0x2304,
4770                 .driver_data  = SAA7134_BOARD_10MOONSTVMASTER3,
4771         },{
4772                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4773                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4774                 .subvendor    = 0x1461, /* Avermedia Technologies Inc */
4775                 .subdevice    = 0xf01d, /* AVerTV DVB-T Super 007 */
4776                 .driver_data  = SAA7134_BOARD_AVERMEDIA_SUPER_007,
4777         },{
4778                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4779                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
4780                 .subvendor    = 0x0000,
4781                 .subdevice    = 0x4016,
4782                 .driver_data  = SAA7134_BOARD_BEHOLD_401,
4783         },{
4784                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4785                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4786                 .subvendor    = 0x0000,
4787                 .subdevice    = 0x4036,
4788                 .driver_data  = SAA7134_BOARD_BEHOLD_403,
4789         },{
4790                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4791                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4792                 .subvendor    = 0x0000,
4793                 .subdevice    = 0x4037,
4794                 .driver_data  = SAA7134_BOARD_BEHOLD_403FM,
4795         },{
4796                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4797                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
4798                 .subvendor    = 0x0000,
4799                 .subdevice    = 0x4050,
4800                 .driver_data  = SAA7134_BOARD_BEHOLD_405,
4801         },{
4802                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4803                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
4804                 .subvendor    = 0x0000,
4805                 .subdevice    = 0x4051,
4806                 .driver_data  = SAA7134_BOARD_BEHOLD_405FM,
4807         },{
4808                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4809                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4810                 .subvendor    = 0x0000,
4811                 .subdevice    = 0x4070,
4812                 .driver_data  = SAA7134_BOARD_BEHOLD_407,
4813         },{
4814                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4815                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4816                 .subvendor    = 0x0000,
4817                 .subdevice    = 0x4071,
4818                 .driver_data  = SAA7134_BOARD_BEHOLD_407FM,
4819         },{
4820                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4821                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4822                 .subvendor    = 0x0000,
4823                 .subdevice    = 0x4090,
4824                 .driver_data  = SAA7134_BOARD_BEHOLD_409,
4825         },{
4826                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4827                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
4828                 .subvendor    = 0x0000,
4829                 .subdevice    = 0x5051,
4830                 .driver_data  = SAA7134_BOARD_BEHOLD_505FM,
4831         },{
4832                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4833                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
4834                 .subvendor    = 0x0000,
4835                 .subdevice    = 0x505B,
4836                 .driver_data  = SAA7134_BOARD_BEHOLD_505FM,
4837         },{
4838                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4839                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
4840                 .subvendor    = 0x5ace,
4841                 .subdevice    = 0x5050,
4842                 .driver_data  = SAA7134_BOARD_BEHOLD_505FM,
4843         },{
4844                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4845                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4846                 .subvendor    = 0x0000,
4847                 .subdevice    = 0x5071,
4848                 .driver_data  = SAA7134_BOARD_BEHOLD_507_9FM,
4849         },{
4850                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4851                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4852                 .subvendor    = 0x0000,
4853                 .subdevice    = 0x507B,
4854                 .driver_data  = SAA7134_BOARD_BEHOLD_507_9FM,
4855         },{
4856                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4857                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4858                 .subvendor    = 0x5ace,
4859                 .subdevice    = 0x5070,
4860                 .driver_data  = SAA7134_BOARD_BEHOLD_507_9FM,
4861         },{
4862                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4863                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4864                 .subvendor    = 0x5ace,
4865                 .subdevice    = 0x5090,
4866                 .driver_data  = SAA7134_BOARD_BEHOLD_507_9FM,
4867         },{
4868                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4869                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4870                 .subvendor    = 0x0000,
4871                 .subdevice    = 0x5201,
4872                 .driver_data  = SAA7134_BOARD_BEHOLD_COLUMBUS_TVFM,
4873         },{
4874                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4875                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4876                 .subvendor    = 0x5ace,
4877                 .subdevice    = 0x6070,
4878                 .driver_data  = SAA7134_BOARD_BEHOLD_607_9FM,
4879         },{
4880                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4881                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4882                 .subvendor    = 0x5ace,
4883                 .subdevice    = 0x6071,
4884                 .driver_data  = SAA7134_BOARD_BEHOLD_607_9FM,
4885         },{
4886                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4887                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4888                 .subvendor    = 0x5ace,
4889                 .subdevice    = 0x6072,
4890                 .driver_data  = SAA7134_BOARD_BEHOLD_607_9FM,
4891         },{
4892                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4893                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4894                 .subvendor    = 0x5ace,
4895                 .subdevice    = 0x6073,
4896                 .driver_data  = SAA7134_BOARD_BEHOLD_607_9FM,
4897         },{
4898                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4899                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4900                 .subvendor    = 0x5ace,
4901                 .subdevice    = 0x6090,
4902                 .driver_data  = SAA7134_BOARD_BEHOLD_607_9FM,
4903         },{
4904                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4905                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4906                 .subvendor    = 0x5ace,
4907                 .subdevice    = 0x6091,
4908                 .driver_data  = SAA7134_BOARD_BEHOLD_607_9FM,
4909         },{
4910                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4911                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4912                 .subvendor    = 0x5ace,
4913                 .subdevice    = 0x6092,
4914                 .driver_data  = SAA7134_BOARD_BEHOLD_607_9FM,
4915         },{
4916                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4917                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4918                 .subvendor    = 0x5ace,
4919                 .subdevice    = 0x6093,
4920                 .driver_data  = SAA7134_BOARD_BEHOLD_607_9FM,
4921         },{
4922                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4923                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4924                 .subvendor    = 0x5ace,
4925                 .subdevice    = 0x6190,
4926                 .driver_data  = SAA7134_BOARD_BEHOLD_M6,
4927         },{
4928                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4929                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4930                 .subvendor    = 0x5ace,
4931                 .subdevice    = 0x6193,
4932                 .driver_data  = SAA7134_BOARD_BEHOLD_M6,
4933         },{
4934                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4935                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4936                 .subvendor    = 0x4e42,
4937                 .subdevice    = 0x3502,
4938                 .driver_data  = SAA7134_BOARD_FLYDVBT_HYBRID_CARDBUS,
4939         }, {
4940                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4941                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4942                 .subvendor    = 0x1822, /*Twinhan Technology Co. Ltd*/
4943                 .subdevice    = 0x0022,
4944                 .driver_data  = SAA7134_BOARD_TWINHAN_DTV_DVB_3056,
4945         },{
4946                 /* --- boards without eeprom + subsystem ID --- */
4947                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4948                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4949                 .subvendor    = PCI_VENDOR_ID_PHILIPS,
4950                 .subdevice    = 0,
4951                 .driver_data  = SAA7134_BOARD_NOAUTO,
4952         },{
4953                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4954                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
4955                 .subvendor    = PCI_VENDOR_ID_PHILIPS,
4956                 .subdevice    = 0,
4957                 .driver_data  = SAA7134_BOARD_NOAUTO,
4958         },{
4959                 /* --- default catch --- */
4960                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4961                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
4962                 .subvendor    = PCI_ANY_ID,
4963                 .subdevice    = PCI_ANY_ID,
4964                 .driver_data  = SAA7134_BOARD_UNKNOWN,
4965         },{
4966                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4967                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
4968                 .subvendor    = PCI_ANY_ID,
4969                 .subdevice    = PCI_ANY_ID,
4970                 .driver_data  = SAA7134_BOARD_UNKNOWN,
4971         },{
4972                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4973                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
4974                 .subvendor    = PCI_ANY_ID,
4975                 .subdevice    = PCI_ANY_ID,
4976                 .driver_data  = SAA7134_BOARD_UNKNOWN,
4977         },{
4978                 .vendor       = PCI_VENDOR_ID_PHILIPS,
4979                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7135,
4980                 .subvendor    = PCI_ANY_ID,
4981                 .subdevice    = PCI_ANY_ID,
4982                 .driver_data  = SAA7134_BOARD_UNKNOWN,
4983         },{
4984                 /* --- end of list --- */
4985         }
4986 };
4987 MODULE_DEVICE_TABLE(pci, saa7134_pci_tbl);
4988
4989 /* ----------------------------------------------------------- */
4990 /* flyvideo tweaks                                             */
4991
4992
4993 static void board_flyvideo(struct saa7134_dev *dev)
4994 {
4995         printk("%s: there are different flyvideo cards with different tuners\n"
4996                "%s: out there, you might have to use the tuner=<nr> insmod\n"
4997                "%s: option to override the default value.\n",
4998                dev->name, dev->name, dev->name);
4999 }
5000
5001 /* ----------------------------------------------------------- */
5002
5003 static void hauppauge_eeprom(struct saa7134_dev *dev, u8 *eeprom_data)
5004 {
5005         struct tveeprom tv;
5006
5007         tveeprom_hauppauge_analog(&dev->i2c_client, &tv, eeprom_data);
5008
5009         /* Make sure we support the board model */
5010         switch (tv.model) {
5011         case 67019: /* WinTV-HVR1110 (Retail, IR Blaster, hybrid, FM, SVid/Comp, 3.5mm audio in) */
5012         case 67109: /* WinTV-HVR1000 (Retail, IR Receive, analog, no FM, SVid/Comp, 3.5mm audio in) */
5013         case 67559: /* WinTV-HVR1110 (OEM, no IR, hybrid, FM, SVid/Comp, RCA aud) */
5014         case 67569: /* WinTV-HVR1110 (OEM, no IR, hybrid, FM) */
5015         case 67579: /* WinTV-HVR1110 (OEM, no IR, hybrid, no FM) */
5016         case 67589: /* WinTV-HVR1110 (OEM, no IR, hybrid, no FM, SVid/Comp, RCA aud) */
5017         case 67599: /* WinTV-HVR1110 (OEM, no IR, hybrid, no FM, SVid/Comp, RCA aud) */
5018                 break;
5019         default:
5020                 printk(KERN_WARNING "%s: warning: "
5021                        "unknown hauppauge model #%d\n", dev->name, tv.model);
5022                 break;
5023         }
5024
5025         printk(KERN_INFO "%s: hauppauge eeprom: model=%d\n",
5026                dev->name, tv.model);
5027 }
5028
5029 /* ----------------------------------------------------------- */
5030
5031 int saa7134_board_init1(struct saa7134_dev *dev)
5032 {
5033         /* Always print gpio, often manufacturers encode tuner type and other info. */
5034         saa_writel(SAA7134_GPIO_GPMODE0 >> 2, 0);
5035         dev->gpio_value = saa_readl(SAA7134_GPIO_GPSTATUS0 >> 2);
5036         printk(KERN_INFO "%s: board init: gpio is %x\n", dev->name, dev->gpio_value);
5037
5038         switch (dev->board) {
5039         case SAA7134_BOARD_FLYVIDEO2000:
5040         case SAA7134_BOARD_FLYVIDEO3000:
5041         case SAA7134_BOARD_FLYVIDEO3000_NTSC:
5042                 dev->has_remote = SAA7134_REMOTE_GPIO;
5043                 board_flyvideo(dev);
5044                 break;
5045         case SAA7134_BOARD_FLYTVPLATINUM_MINI2:
5046         case SAA7134_BOARD_FLYTVPLATINUM_FM:
5047         case SAA7134_BOARD_CINERGY400:
5048         case SAA7134_BOARD_CINERGY600:
5049         case SAA7134_BOARD_CINERGY600_MK3:
5050         case SAA7134_BOARD_ECS_TVP3XP:
5051         case SAA7134_BOARD_ECS_TVP3XP_4CB5:
5052         case SAA7134_BOARD_ECS_TVP3XP_4CB6:
5053         case SAA7134_BOARD_MD2819:
5054         case SAA7134_BOARD_KWORLD_VSTREAM_XPERT:
5055         case SAA7134_BOARD_KWORLD_XPERT:
5056         case SAA7134_BOARD_AVERMEDIA_STUDIO_305:
5057         case SAA7134_BOARD_AVERMEDIA_305:
5058         case SAA7134_BOARD_AVERMEDIA_STUDIO_307:
5059         case SAA7134_BOARD_AVERMEDIA_307:
5060         case SAA7134_BOARD_AVERMEDIA_STUDIO_507:
5061         case SAA7134_BOARD_AVERMEDIA_GO_007_FM:
5062         case SAA7134_BOARD_AVERMEDIA_777:
5063 /*      case SAA7134_BOARD_SABRENT_SBTTVFM:  */ /* not finished yet */
5064         case SAA7134_BOARD_VIDEOMATE_TV_PVR:
5065         case SAA7134_BOARD_VIDEOMATE_GOLD_PLUS:
5066         case SAA7134_BOARD_VIDEOMATE_TV_GOLD_PLUSII:
5067         case SAA7134_BOARD_VIDEOMATE_DVBT_300:
5068         case SAA7134_BOARD_VIDEOMATE_DVBT_200:
5069         case SAA7134_BOARD_VIDEOMATE_DVBT_200A:
5070         case SAA7134_BOARD_MANLI_MTV001:
5071         case SAA7134_BOARD_MANLI_MTV002:
5072         case SAA7134_BOARD_BEHOLD_409FM:
5073         case SAA7134_BOARD_AVACSSMARTTV:
5074         case SAA7134_BOARD_GOTVIEW_7135:
5075         case SAA7134_BOARD_KWORLD_TERMINATOR:
5076         case SAA7134_BOARD_SEDNA_PC_TV_CARDBUS:
5077         case SAA7134_BOARD_FLYDVBT_LR301:
5078         case SAA7134_BOARD_ASUSTeK_P7131_DUAL:
5079         case SAA7134_BOARD_ASUSTeK_P7131_HYBRID_LNA:
5080         case SAA7134_BOARD_FLYDVBTDUO:
5081         case SAA7134_BOARD_PROTEUS_2309:
5082         case SAA7134_BOARD_AVERMEDIA_A16AR:
5083         case SAA7134_BOARD_ENCORE_ENLTV:
5084         case SAA7134_BOARD_ENCORE_ENLTV_FM:
5085         case SAA7134_BOARD_10MOONSTVMASTER3:
5086         case SAA7134_BOARD_BEHOLD_401:
5087         case SAA7134_BOARD_BEHOLD_403:
5088         case SAA7134_BOARD_BEHOLD_403FM:
5089         case SAA7134_BOARD_BEHOLD_405:
5090         case SAA7134_BOARD_BEHOLD_405FM:
5091         case SAA7134_BOARD_BEHOLD_407:
5092         case SAA7134_BOARD_BEHOLD_407FM:
5093         case SAA7134_BOARD_BEHOLD_409:
5094         case SAA7134_BOARD_BEHOLD_505FM:
5095         case SAA7134_BOARD_BEHOLD_507_9FM:
5096         case SAA7134_BOARD_GENIUS_TVGO_A11MCE:
5097                 dev->has_remote = SAA7134_REMOTE_GPIO;
5098                 break;
5099         case SAA7134_BOARD_FLYDVBS_LR300:
5100                 saa_writeb(SAA7134_GPIO_GPMODE3, 0x80);
5101                 saa_writeb(SAA7134_GPIO_GPSTATUS2, 0x40);
5102                 dev->has_remote = SAA7134_REMOTE_GPIO;
5103                 break;
5104         case SAA7134_BOARD_MD5044:
5105                 printk("%s: seems there are two different versions of the MD5044\n"
5106                        "%s: (with the same ID) out there.  If sound doesn't work for\n"
5107                        "%s: you try the audio_clock_override=0x200000 insmod option.\n",
5108                        dev->name,dev->name,dev->name);
5109                 break;
5110         case SAA7134_BOARD_CINERGY400_CARDBUS:
5111                 /* power-up tuner chip */
5112                 saa_andorl(SAA7134_GPIO_GPMODE0 >> 2,   0x00040000, 0x00040000);
5113                 saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x00040000, 0x00000000);
5114                 break;
5115         case SAA7134_BOARD_PINNACLE_300I_DVBT_PAL:
5116                 /* this turns the remote control chip off to work around a bug in it */
5117                 saa_writeb(SAA7134_GPIO_GPMODE1, 0x80);
5118                 saa_writeb(SAA7134_GPIO_GPSTATUS1, 0x80);
5119                 break;
5120         case SAA7134_BOARD_MONSTERTV_MOBILE:
5121                 /* power-up tuner chip */
5122                 saa_andorl(SAA7134_GPIO_GPMODE0 >> 2,   0x00040000, 0x00040000);
5123                 saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x00040000, 0x00000004);
5124                 break;
5125         case SAA7134_BOARD_FLYDVBT_DUO_CARDBUS:
5126                 /* turn the fan on */
5127                 saa_writeb(SAA7134_GPIO_GPMODE3, 0x08);
5128                 saa_writeb(SAA7134_GPIO_GPSTATUS3, 0x06);
5129                 break;
5130         case SAA7134_BOARD_ADS_DUO_CARDBUS_PTV331:
5131         case SAA7134_BOARD_FLYDVBT_HYBRID_CARDBUS:
5132                 saa_andorl(SAA7134_GPIO_GPMODE0 >> 2, 0x08000000, 0x08000000);
5133                 saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x08000000, 0x00000000);
5134                 break;
5135         case SAA7134_BOARD_AVERMEDIA_CARDBUS:
5136         case SAA7134_BOARD_BEHOLD_COLUMBUS_TVFM:
5137                 /* power-up tuner chip */
5138                 saa_andorl(SAA7134_GPIO_GPMODE0 >> 2,   0xffffffff, 0xffffffff);
5139                 saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0xffffffff, 0xffffffff);
5140                 msleep(1);
5141                 break;
5142         case SAA7134_BOARD_RTD_VFG7350:
5143
5144                 /*
5145                  * Make sure Production Test Register at offset 0x1D1 is cleared
5146                  * to take chip out of test mode.  Clearing bit 4 (TST_EN_AOUT)
5147                  * prevents pin 105 from remaining low; keeping pin 105 low
5148                  * continually resets the SAA6752 chip.
5149                  */
5150
5151                 saa_writeb (SAA7134_PRODUCTION_TEST_MODE, 0x00);
5152                 break;
5153         /* i2c remotes */
5154         case SAA7134_BOARD_PINNACLE_PCTV_110i:
5155         case SAA7134_BOARD_PINNACLE_PCTV_310i:
5156         case SAA7134_BOARD_UPMOST_PURPLE_TV:
5157         case SAA7134_BOARD_HAUPPAUGE_HVR1110:
5158         case SAA7134_BOARD_BEHOLD_607_9FM:
5159         case SAA7134_BOARD_BEHOLD_M6:
5160                 dev->has_remote = SAA7134_REMOTE_I2C;
5161                 break;
5162         case SAA7134_BOARD_AVERMEDIA_A169_B:
5163         case SAA7134_BOARD_MD7134_BRIDGE_2:
5164                 printk("%s: %s: dual saa713x broadcast decoders\n"
5165                        "%s: Sorry, none of the inputs to this chip are supported yet.\n"
5166                        "%s: Dual decoder functionality is disabled for now, use the other chip.\n",
5167                        dev->name,card(dev).name,dev->name,dev->name);
5168                 break;
5169         case SAA7134_BOARD_AVERMEDIA_M102:
5170                 /* enable tuner */
5171                dev->has_remote = SAA7134_REMOTE_GPIO;
5172                 saa_andorl(SAA7134_GPIO_GPMODE0 >> 2,   0x8c040007, 0x8c040007);
5173                 saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x0c0007cd, 0x0c0007cd);
5174                 break;
5175         }
5176         return 0;
5177 }
5178
5179 /* stuff which needs working i2c */
5180 int saa7134_board_init2(struct saa7134_dev *dev)
5181 {
5182         unsigned char buf;
5183         int board;
5184         struct tuner_setup tun_setup;
5185         tun_setup.config = 0;
5186         tun_setup.tuner_callback = saa7134_tuner_callback;
5187
5188         switch (dev->board) {
5189         case SAA7134_BOARD_BMK_MPEX_NOTUNER:
5190         case SAA7134_BOARD_BMK_MPEX_TUNER:
5191                 dev->i2c_client.addr = 0x60;
5192                 board = (i2c_master_recv(&dev->i2c_client,&buf,0) < 0)
5193                         ? SAA7134_BOARD_BMK_MPEX_NOTUNER
5194                         : SAA7134_BOARD_BMK_MPEX_TUNER;
5195                 if (board == dev->board)
5196                         break;
5197                 dev->board = board;
5198                 printk("%s: board type fixup: %s\n", dev->name,
5199                 saa7134_boards[dev->board].name);
5200                 dev->tuner_type = saa7134_boards[dev->board].tuner_type;
5201
5202                 if (TUNER_ABSENT != dev->tuner_type) {
5203                                 tun_setup.mode_mask = T_RADIO | T_ANALOG_TV | T_DIGITAL_TV;
5204                                 tun_setup.type = dev->tuner_type;
5205                                 tun_setup.addr = ADDR_UNSET;
5206
5207                                 saa7134_i2c_call_clients (dev, TUNER_SET_TYPE_ADDR, &tun_setup);
5208                 }
5209                 break;
5210         case SAA7134_BOARD_MD7134:
5211                 {
5212                 u8 subaddr;
5213                 u8 data[3];
5214                 int ret, tuner_t;
5215
5216                 struct i2c_msg msg[] = {{.addr=0x50, .flags=0, .buf=&subaddr, .len = 1},
5217                                         {.addr=0x50, .flags=I2C_M_RD, .buf=data, .len = 3}};
5218                 subaddr= 0x14;
5219                 tuner_t = 0;
5220                 ret = i2c_transfer(&dev->i2c_adap, msg, 2);
5221                 if (ret != 2) {
5222                         printk(KERN_ERR "EEPROM read failure\n");
5223                 } else if ((data[0] != 0) && (data[0] != 0xff)) {
5224                         /* old config structure */
5225                         subaddr = data[0] + 2;
5226                         msg[1].len = 2;
5227                         i2c_transfer(&dev->i2c_adap, msg, 2);
5228                         tuner_t = (data[0] << 8) + data[1];
5229                         switch (tuner_t){
5230                         case 0x0103:
5231                                 dev->tuner_type = TUNER_PHILIPS_PAL;
5232                                 break;
5233                         case 0x010C:
5234                                 dev->tuner_type = TUNER_PHILIPS_FM1216ME_MK3;
5235                                 break;
5236                         default:
5237                                 printk(KERN_ERR "%s Cant determine tuner type %x from EEPROM\n", dev->name, tuner_t);
5238                         }
5239                 } else if ((data[1] != 0) && (data[1] != 0xff)) {
5240                         /* new config structure */
5241                         subaddr = data[1] + 1;
5242                         msg[1].len = 1;
5243                         i2c_transfer(&dev->i2c_adap, msg, 2);
5244                         subaddr = data[0] + 1;
5245                         msg[1].len = 2;
5246                         i2c_transfer(&dev->i2c_adap, msg, 2);
5247                         tuner_t = (data[1] << 8) + data[0];
5248                         switch (tuner_t) {
5249                         case 0x0005:
5250                                 dev->tuner_type = TUNER_PHILIPS_FM1216ME_MK3;
5251                                 break;
5252                         case 0x001d:
5253                                 dev->tuner_type = TUNER_PHILIPS_FMD1216ME_MK3;
5254                                         printk(KERN_INFO "%s Board has DVB-T\n", dev->name);
5255                                 break;
5256                         default:
5257                                 printk(KERN_ERR "%s Cant determine tuner type %x from EEPROM\n", dev->name, tuner_t);
5258                         }
5259                 } else {
5260                         printk(KERN_ERR "%s unexpected config structure\n", dev->name);
5261                 }
5262
5263                 printk(KERN_INFO "%s Tuner type is %d\n", dev->name, dev->tuner_type);
5264                 if (dev->tuner_type == TUNER_PHILIPS_FMD1216ME_MK3) {
5265                         struct v4l2_priv_tun_config tda9887_cfg;
5266
5267                         tda9887_cfg.tuner = TUNER_TDA9887;
5268                         tda9887_cfg.priv  = &dev->tda9887_conf;
5269
5270                         dev->tda9887_conf = TDA9887_PRESENT      |
5271                                             TDA9887_PORT1_ACTIVE |
5272                                             TDA9887_PORT2_ACTIVE;
5273
5274                         saa7134_i2c_call_clients(dev, TUNER_SET_CONFIG,
5275                                                  &tda9887_cfg);
5276                 }
5277
5278                 tun_setup.mode_mask = T_RADIO | T_ANALOG_TV | T_DIGITAL_TV;
5279                 tun_setup.type = dev->tuner_type;
5280                 tun_setup.addr = ADDR_UNSET;
5281
5282                 saa7134_i2c_call_clients (dev, TUNER_SET_TYPE_ADDR,&tun_setup);
5283                 }
5284                 break;
5285         case SAA7134_BOARD_PHILIPS_EUROPA:
5286         case SAA7134_BOARD_VIDEOMATE_DVBT_300:
5287         case SAA7134_BOARD_ASUS_EUROPA2_HYBRID:
5288                 /* The Philips EUROPA based hybrid boards have the tuner connected through
5289                  * the channel decoder. We have to make it transparent to find it
5290                  */
5291                 {
5292                 u8 data[] = { 0x07, 0x02};
5293                 struct i2c_msg msg = {.addr=0x08, .flags=0, .buf=data, .len = sizeof(data)};
5294                 i2c_transfer(&dev->i2c_adap, &msg, 1);
5295
5296                 tun_setup.mode_mask = T_ANALOG_TV | T_DIGITAL_TV;
5297                 tun_setup.type = dev->tuner_type;
5298                 tun_setup.addr = dev->tuner_addr;
5299
5300                 saa7134_i2c_call_clients (dev, TUNER_SET_TYPE_ADDR,&tun_setup);
5301                 }
5302                 break;
5303         case SAA7134_BOARD_PHILIPS_TIGER:
5304         case SAA7134_BOARD_PHILIPS_TIGER_S:
5305                 {
5306                 u8 data[] = { 0x3c, 0x33, 0x60};
5307                 struct i2c_msg msg = {.addr=0x08, .flags=0, .buf=data, .len = sizeof(data)};
5308                 if(dev->autodetected && (dev->eedata[0x49] == 0x50)) {
5309                         dev->board = SAA7134_BOARD_PHILIPS_TIGER_S;
5310                         printk(KERN_INFO "%s: Reconfigured board as %s\n",
5311                                 dev->name, saa7134_boards[dev->board].name);
5312                 }
5313                 if(dev->board == SAA7134_BOARD_PHILIPS_TIGER_S) {
5314                         tun_setup.mode_mask = T_ANALOG_TV | T_DIGITAL_TV;
5315                         tun_setup.type = TUNER_PHILIPS_TDA8290;
5316                         tun_setup.addr = 0x4b;
5317                         tun_setup.config = 2;
5318
5319                         saa7134_i2c_call_clients (dev, TUNER_SET_TYPE_ADDR,&tun_setup);
5320                         data[2] = 0x68;
5321                 }
5322                 i2c_transfer(&dev->i2c_adap, &msg, 1);
5323                 }
5324                 break;
5325         case SAA7134_BOARD_HAUPPAUGE_HVR1110:
5326                 hauppauge_eeprom(dev, dev->eedata+0x80);
5327                 /* break intentionally omitted */
5328         case SAA7134_BOARD_PINNACLE_PCTV_310i:
5329         case SAA7134_BOARD_KWORLD_DVBT_210:
5330         case SAA7134_BOARD_TEVION_DVBT_220RF:
5331         case SAA7134_BOARD_ASUSTeK_P7131_DUAL:
5332         case SAA7134_BOARD_ASUSTeK_P7131_HYBRID_LNA:
5333         case SAA7134_BOARD_MEDION_MD8800_QUADRO:
5334         case SAA7134_BOARD_AVERMEDIA_SUPER_007:
5335         case SAA7134_BOARD_TWINHAN_DTV_DVB_3056:
5336                 /* this is a hybrid board, initialize to analog mode
5337                  * and configure firmware eeprom address
5338                  */
5339                 {
5340                 u8 data[] = { 0x3c, 0x33, 0x60};
5341                 struct i2c_msg msg = {.addr=0x08, .flags=0, .buf=data, .len = sizeof(data)};
5342                 i2c_transfer(&dev->i2c_adap, &msg, 1);
5343                 }
5344                 break;
5345         case SAA7134_BOARD_FLYDVB_TRIO:
5346                 {
5347                 u8 data[] = { 0x3c, 0x33, 0x62};
5348                 struct i2c_msg msg = {.addr=0x09, .flags=0, .buf=data, .len = sizeof(data)};
5349                 i2c_transfer(&dev->i2c_adap, &msg, 1);
5350                 }
5351                 break;
5352         case SAA7134_BOARD_ADS_DUO_CARDBUS_PTV331:
5353         case SAA7134_BOARD_FLYDVBT_HYBRID_CARDBUS:
5354                 /* initialize analog mode  */
5355                 {
5356                 u8 data[] = { 0x3c, 0x33, 0x6a};
5357                 struct i2c_msg msg = {.addr=0x08, .flags=0, .buf=data, .len = sizeof(data)};
5358                 i2c_transfer(&dev->i2c_adap, &msg, 1);
5359                 }
5360                 break;
5361         case SAA7134_BOARD_CINERGY_HT_PCMCIA:
5362         case SAA7134_BOARD_CINERGY_HT_PCI:
5363                 /* initialize analog mode */
5364                 {
5365                 u8 data[] = { 0x3c, 0x33, 0x68};
5366                 struct i2c_msg msg = {.addr=0x08, .flags=0, .buf=data, .len = sizeof(data)};
5367                 i2c_transfer(&dev->i2c_adap, &msg, 1);
5368                 }
5369                 break;
5370         case SAA7134_BOARD_KWORLD_ATSC110:
5371                 {
5372                         /* enable tuner */
5373                         int i;
5374                         static const u8 buffer [] = { 0x10,0x12,0x13,0x04,0x16,0x00,0x14,0x04,0x017,0x00 };
5375                         dev->i2c_client.addr = 0x0a;
5376                         for (i = 0; i < 5; i++)
5377                                 if (2 != i2c_master_send(&dev->i2c_client,&buffer[i*2],2))
5378                                         printk(KERN_WARNING "%s: Unable to enable tuner(%i).\n",
5379                                                dev->name, i);
5380                 }
5381                 break;
5382         case SAA7134_BOARD_VIDEOMATE_DVBT_200:
5383         case SAA7134_BOARD_VIDEOMATE_DVBT_200A:
5384                 /* The T200 and the T200A share the same pci id.  Consequently,
5385                  * we are going to query eeprom to try to find out which one we
5386                  * are actually looking at. */
5387
5388                 /* Don't do this if the board was specifically selected with an
5389                  * insmod option or if we have the default configuration T200*/
5390                 if(!dev->autodetected || (dev->eedata[0x41] == 0xd0))
5391                         break;
5392                 if(dev->eedata[0x41] == 0x02) {
5393                         /* Reconfigure board  as T200A */
5394                         dev->board = SAA7134_BOARD_VIDEOMATE_DVBT_200A;
5395                         dev->tuner_type   = saa7134_boards[dev->board].tuner_type;
5396                         dev->tda9887_conf = saa7134_boards[dev->board].tda9887_conf;
5397                         printk(KERN_INFO "%s: Reconfigured board as %s\n",
5398                                 dev->name, saa7134_boards[dev->board].name);
5399                 } else {
5400                         printk(KERN_WARNING "%s: Unexpected tuner type info: %x in eeprom\n",
5401                                 dev->name, dev->eedata[0x41]);
5402                         break;
5403                 }
5404                 break;
5405         }
5406         return 0;
5407 }
5408
5409 /* ----------------------------------------------------------- */
5410 /*
5411  * Local variables:
5412  * c-basic-offset: 8
5413  * End:
5414  */