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