blob: 3a038133b26082f60c6e419599642e46227b51e0 [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001/*
Linus Torvalds1da177e2005-04-16 15:20:36 -07002 *
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>
Mauro Carvalho Chehabbc36a682008-04-22 14:45:27 -030025#include <linux/i2c.h>
26#include <linux/i2c-algo-bit.h>
Linus Torvalds1da177e2005-04-16 15:20:36 -070027
28#include "saa7134-reg.h"
29#include "saa7134.h"
Mauro Carvalho Chehabbc36a682008-04-22 14:45:27 -030030#include "tuner-xc2028.h"
Michael Krufky5e453dc2006-01-09 15:32:31 -020031#include <media/v4l2-common.h>
Michael Krufky993efa72007-11-15 10:34:33 -030032#include <media/tveeprom.h>
Dmitry Belimovb34dddb2008-04-23 14:09:08 -030033#include "tea5767.h"
Michael Krufkyf9996c92009-02-28 17:45:17 -030034#include "tda18271.h"
Linus Torvalds1da177e2005-04-16 15:20:36 -070035
36/* commly used strings */
37static char name_mute[] = "mute";
38static char name_radio[] = "Radio";
39static char name_tv[] = "Television";
40static char name_tv_mono[] = "TV (mono only)";
Stas Sergeevf438d972007-09-17 15:34:09 -030041static char name_comp[] = "Composite";
Linus Torvalds1da177e2005-04-16 15:20:36 -070042static char name_comp1[] = "Composite1";
43static char name_comp2[] = "Composite2";
44static char name_comp3[] = "Composite3";
45static char name_comp4[] = "Composite4";
46static char name_svideo[] = "S-Video";
47
48/* ------------------------------------------------------------------ */
49/* board config info */
50
Mauro Carvalho Chehabc117d052008-04-26 14:05:58 -030051/* If radio_type !=UNSET, radio_addr should be specified
52 */
53
Linus Torvalds1da177e2005-04-16 15:20:36 -070054struct saa7134_board saa7134_boards[] = {
55 [SAA7134_BOARD_UNKNOWN] = {
56 .name = "UNKNOWN/GENERIC",
57 .audio_clock = 0x00187de7,
58 .tuner_type = TUNER_ABSENT,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -070059 .radio_type = UNSET,
60 .tuner_addr = ADDR_UNSET,
61 .radio_addr = ADDR_UNSET,
62
Linus Torvalds1da177e2005-04-16 15:20:36 -070063 .inputs = {{
64 .name = "default",
65 .vmux = 0,
66 .amux = LINE1,
67 }},
68 },
69 [SAA7134_BOARD_PROTEUS_PRO] = {
70 /* /me */
71 .name = "Proteus Pro [philips reference design]",
72 .audio_clock = 0x00187de7,
73 .tuner_type = TUNER_PHILIPS_PAL,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -070074 .radio_type = UNSET,
75 .tuner_addr = ADDR_UNSET,
76 .radio_addr = ADDR_UNSET,
77
Linus Torvalds1da177e2005-04-16 15:20:36 -070078 .inputs = {{
79 .name = name_comp1,
80 .vmux = 0,
81 .amux = LINE1,
82 },{
83 .name = name_tv,
84 .vmux = 1,
85 .amux = TV,
86 .tv = 1,
87 },{
88 .name = name_tv_mono,
89 .vmux = 1,
90 .amux = LINE2,
91 .tv = 1,
92 }},
93 .radio = {
94 .name = name_radio,
95 .amux = LINE2,
96 },
97 },
98 [SAA7134_BOARD_FLYVIDEO3000] = {
99 /* "Marco d'Itri" <md@Linux.IT> */
100 .name = "LifeView FlyVIDEO3000",
101 .audio_clock = 0x00200000,
102 .tuner_type = TUNER_PHILIPS_PAL,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -0700103 .radio_type = UNSET,
104 .tuner_addr = ADDR_UNSET,
105 .radio_addr = ADDR_UNSET,
106
Linus Torvalds1da177e2005-04-16 15:20:36 -0700107 .gpiomask = 0xe000,
108 .inputs = {{
109 .name = name_tv,
110 .vmux = 1,
111 .amux = TV,
112 .gpio = 0x8000,
113 .tv = 1,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -0700114 },{
Linus Torvalds1da177e2005-04-16 15:20:36 -0700115 .name = name_tv_mono,
116 .vmux = 1,
117 .amux = LINE2,
118 .gpio = 0x0000,
119 .tv = 1,
120 },{
121 .name = name_comp1,
122 .vmux = 0,
123 .amux = LINE2,
124 .gpio = 0x4000,
125 },{
126 .name = name_comp2,
127 .vmux = 3,
128 .amux = LINE2,
129 .gpio = 0x4000,
130 },{
131 .name = name_svideo,
132 .vmux = 8,
133 .amux = LINE2,
134 .gpio = 0x4000,
135 }},
136 .radio = {
137 .name = name_radio,
138 .amux = LINE2,
139 .gpio = 0x2000,
140 },
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -0700141 .mute = {
142 .name = name_mute,
143 .amux = TV,
144 .gpio = 0x8000,
145 },
Linus Torvalds1da177e2005-04-16 15:20:36 -0700146 },
147 [SAA7134_BOARD_FLYVIDEO2000] = {
148 /* "TC Wan" <tcwan@cs.usm.my> */
Peter Missel10b7a902006-01-23 17:11:06 -0200149 .name = "LifeView/Typhoon FlyVIDEO2000",
Linus Torvalds1da177e2005-04-16 15:20:36 -0700150 .audio_clock = 0x00200000,
151 .tuner_type = TUNER_LG_PAL_NEW_TAPC,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -0700152 .radio_type = UNSET,
153 .tuner_addr = ADDR_UNSET,
154 .radio_addr = ADDR_UNSET,
155
Linus Torvalds1da177e2005-04-16 15:20:36 -0700156 .gpiomask = 0xe000,
157 .inputs = {{
158 .name = name_tv,
159 .vmux = 1,
160 .amux = LINE2,
161 .gpio = 0x0000,
162 .tv = 1,
163 },{
164 .name = name_comp1,
165 .vmux = 0,
166 .amux = LINE2,
167 .gpio = 0x4000,
168 },{
169 .name = name_comp2,
170 .vmux = 3,
171 .amux = LINE2,
172 .gpio = 0x4000,
173 },{
174 .name = name_svideo,
175 .vmux = 8,
176 .amux = LINE2,
177 .gpio = 0x4000,
178 }},
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -0700179 .radio = {
180 .name = name_radio,
181 .amux = LINE2,
Linus Torvalds1da177e2005-04-16 15:20:36 -0700182 .gpio = 0x2000,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -0700183 },
Linus Torvalds1da177e2005-04-16 15:20:36 -0700184 .mute = {
185 .name = name_mute,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -0700186 .amux = LINE2,
Linus Torvalds1da177e2005-04-16 15:20:36 -0700187 .gpio = 0x8000,
188 },
189 },
190 [SAA7134_BOARD_FLYTVPLATINUM_MINI] = {
191 /* "Arnaud Quette" <aquette@free.fr> */
192 .name = "LifeView FlyTV Platinum Mini",
193 .audio_clock = 0x00200000,
194 .tuner_type = TUNER_PHILIPS_TDA8290,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -0700195 .radio_type = UNSET,
196 .tuner_addr = ADDR_UNSET,
197 .radio_addr = ADDR_UNSET,
198
Linus Torvalds1da177e2005-04-16 15:20:36 -0700199 .inputs = {{
200 .name = name_tv,
201 .vmux = 1,
Mauro Carvalho Chehabac19ecc2005-06-23 22:05:09 -0700202 .amux = TV,
Linus Torvalds1da177e2005-04-16 15:20:36 -0700203 .tv = 1,
204 },{
Glen Gray2d14f782005-11-08 21:36:12 -0800205 .name = name_comp1, /* Composite signal on S-Video input */
Linus Torvalds1da177e2005-04-16 15:20:36 -0700206 .vmux = 0,
207 .amux = LINE2,
208 },{
Glen Gray2d14f782005-11-08 21:36:12 -0800209 .name = name_comp2, /* Composite input */
210 .vmux = 3,
211 .amux = LINE2,
212 },{
Linus Torvalds1da177e2005-04-16 15:20:36 -0700213 .name = name_svideo,
214 .vmux = 8,
215 .amux = LINE2,
216 }},
217 },
218 [SAA7134_BOARD_FLYTVPLATINUM_FM] = {
219 /* LifeView FlyTV Platinum FM (LR214WF) */
220 /* "Peter Missel <peter.missel@onlinehome.de> */
Hartmut Hackmann42e6b3b2006-03-27 19:04:48 -0300221 .name = "LifeView FlyTV Platinum FM / Gold",
Linus Torvalds1da177e2005-04-16 15:20:36 -0700222 .audio_clock = 0x00200000,
223 .tuner_type = TUNER_PHILIPS_TDA8290,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -0700224 .radio_type = UNSET,
225 .tuner_addr = ADDR_UNSET,
226 .radio_addr = ADDR_UNSET,
227
Peter Missel6c9e7372005-05-01 08:59:05 -0700228 .gpiomask = 0x1E000, /* Set GP16 and unused 15,14,13 to Output */
Linus Torvalds1da177e2005-04-16 15:20:36 -0700229 .inputs = {{
230 .name = name_tv,
231 .vmux = 1,
232 .amux = TV,
Peter Missel6c9e7372005-05-01 08:59:05 -0700233 .gpio = 0x10000, /* GP16=1 selects TV input */
Linus Torvalds1da177e2005-04-16 15:20:36 -0700234 .tv = 1,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -0700235 },{
Linus Torvalds1da177e2005-04-16 15:20:36 -0700236/* .name = name_tv_mono,
237 .vmux = 1,
238 .amux = LINE2,
239 .gpio = 0x0000,
240 .tv = 1,
241 },{
242*/ .name = name_comp1, /* Composite signal on S-Video input */
243 .vmux = 0,
244 .amux = LINE2,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -0700245/* .gpio = 0x4000, */
Linus Torvalds1da177e2005-04-16 15:20:36 -0700246 },{
247 .name = name_comp2, /* Composite input */
248 .vmux = 3,
249 .amux = LINE2,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -0700250/* .gpio = 0x4000, */
Linus Torvalds1da177e2005-04-16 15:20:36 -0700251 },{
252 .name = name_svideo, /* S-Video signal on S-Video input */
253 .vmux = 8,
254 .amux = LINE2,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -0700255/* .gpio = 0x4000, */
Linus Torvalds1da177e2005-04-16 15:20:36 -0700256 }},
Peter Missel6c9e7372005-05-01 08:59:05 -0700257 .radio = {
Linus Torvalds1da177e2005-04-16 15:20:36 -0700258 .name = name_radio,
Peter Missel6c9e7372005-05-01 08:59:05 -0700259 .amux = TV,
260 .gpio = 0x00000, /* GP16=0 selects FM radio antenna */
Linus Torvalds1da177e2005-04-16 15:20:36 -0700261 },
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -0700262 .mute = {
263 .name = name_mute,
264 .amux = TV,
265 .gpio = 0x10000,
266 },
Peter Missel6c9e7372005-05-01 08:59:05 -0700267 },
Linus Torvalds1da177e2005-04-16 15:20:36 -0700268 [SAA7134_BOARD_EMPRESS] = {
269 /* "Gert Vervoort" <gert.vervoort@philips.com> */
270 .name = "EMPRESS",
271 .audio_clock = 0x00187de7,
272 .tuner_type = TUNER_PHILIPS_PAL,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -0700273 .radio_type = UNSET,
274 .tuner_addr = ADDR_UNSET,
275 .radio_addr = ADDR_UNSET,
Hans Verkuil195784b2009-03-28 09:27:02 -0300276 .empress_addr = 0x20,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -0700277
Linus Torvalds1da177e2005-04-16 15:20:36 -0700278 .inputs = {{
279 .name = name_comp1,
280 .vmux = 0,
281 .amux = LINE1,
282 },{
283 .name = name_svideo,
284 .vmux = 8,
285 .amux = LINE1,
286 },{
287 .name = name_tv,
288 .vmux = 1,
289 .amux = LINE2,
290 .tv = 1,
291 }},
292 .radio = {
293 .name = name_radio,
294 .amux = LINE2,
295 },
296 .mpeg = SAA7134_MPEG_EMPRESS,
297 .video_out = CCIR656,
298 },
299 [SAA7134_BOARD_MONSTERTV] = {
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -0700300 /* "K.Ohta" <alpha292@bremen.or.jp> */
301 .name = "SKNet Monster TV",
302 .audio_clock = 0x00187de7,
303 .tuner_type = TUNER_PHILIPS_NTSC_M,
304 .radio_type = UNSET,
305 .tuner_addr = ADDR_UNSET,
306 .radio_addr = ADDR_UNSET,
307
308 .inputs = {{
309 .name = name_tv,
310 .vmux = 1,
311 .amux = TV,
312 .tv = 1,
313 },{
314 .name = name_comp1,
315 .vmux = 0,
316 .amux = LINE1,
317 },{
318 .name = name_svideo,
319 .vmux = 8,
320 .amux = LINE1,
321 }},
322 .radio = {
323 .name = name_radio,
324 .amux = LINE2,
325 },
Linus Torvalds1da177e2005-04-16 15:20:36 -0700326 },
327 [SAA7134_BOARD_MD9717] = {
328 .name = "Tevion MD 9717",
329 .audio_clock = 0x00200000,
330 .tuner_type = TUNER_PHILIPS_PAL,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -0700331 .radio_type = UNSET,
332 .tuner_addr = ADDR_UNSET,
333 .radio_addr = ADDR_UNSET,
Linus Torvalds1da177e2005-04-16 15:20:36 -0700334 .inputs = {{
335 .name = name_tv,
336 .vmux = 1,
337 .amux = TV,
338 .tv = 1,
339 },{
340 /* workaround for problems with normal TV sound */
341 .name = name_tv_mono,
342 .vmux = 1,
343 .amux = LINE2,
344 .tv = 1,
345 },{
346 .name = name_comp1,
Hermann Pitton4aa504a2007-11-28 21:50:26 -0300347 .vmux = 0,
Linus Torvalds1da177e2005-04-16 15:20:36 -0700348 .amux = LINE1,
349 },{
350 .name = name_comp2,
351 .vmux = 3,
352 .amux = LINE1,
353 },{
354 .name = name_svideo,
355 .vmux = 8,
356 .amux = LINE1,
357 }},
358 .radio = {
359 .name = name_radio,
360 .amux = LINE2,
361 },
Hermann Pittoncc764662007-11-28 21:54:35 -0300362 .mute = {
363 .name = name_mute,
364 .amux = TV,
365 },
Linus Torvalds1da177e2005-04-16 15:20:36 -0700366 },
367 [SAA7134_BOARD_TVSTATION_RDS] = {
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -0700368 /* Typhoon TV Tuner RDS: Art.Nr. 50694 */
Linus Torvalds1da177e2005-04-16 15:20:36 -0700369 .name = "KNC One TV-Station RDS / Typhoon TV Tuner RDS",
370 .audio_clock = 0x00200000,
371 .tuner_type = TUNER_PHILIPS_FM1216ME_MK3,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -0700372 .radio_type = UNSET,
373 .tuner_addr = ADDR_UNSET,
374 .radio_addr = ADDR_UNSET,
Linus Torvalds1da177e2005-04-16 15:20:36 -0700375 .tda9887_conf = TDA9887_PRESENT,
376 .inputs = {{
377 .name = name_tv,
378 .vmux = 1,
379 .amux = TV,
380 .tv = 1,
381 },{
382 .name = name_tv_mono,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -0700383 .vmux = 1,
384 .amux = LINE2,
385 .tv = 1,
386 },{
Linus Torvalds1da177e2005-04-16 15:20:36 -0700387
388 .name = name_svideo,
389 .vmux = 8,
390 .amux = LINE1,
391 },{
392 .name = name_comp1,
393 .vmux = 3,
394 .amux = LINE1,
395 },{
396
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -0700397 .name = "CVid over SVid",
398 .vmux = 0,
399 .amux = LINE1,
400 }},
Linus Torvalds1da177e2005-04-16 15:20:36 -0700401 .radio = {
402 .name = name_radio,
403 .amux = LINE2,
404 },
405 },
406 [SAA7134_BOARD_TVSTATION_DVR] = {
407 .name = "KNC One TV-Station DVR",
408 .audio_clock = 0x00200000,
409 .tuner_type = TUNER_PHILIPS_FM1216ME_MK3,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -0700410 .radio_type = UNSET,
411 .tuner_addr = ADDR_UNSET,
412 .radio_addr = ADDR_UNSET,
Hans Verkuil195784b2009-03-28 09:27:02 -0300413 .empress_addr = 0x20,
Linus Torvalds1da177e2005-04-16 15:20:36 -0700414 .tda9887_conf = TDA9887_PRESENT,
415 .gpiomask = 0x820000,
416 .inputs = {{
417 .name = name_tv,
418 .vmux = 1,
Rafał Bilskiaac0ca62007-06-20 05:36:26 -0300419 .amux = TV,
Linus Torvalds1da177e2005-04-16 15:20:36 -0700420 .tv = 1,
421 .gpio = 0x20000,
422 },{
423 .name = name_svideo,
424 .vmux = 8,
425 .amux = LINE1,
426 .gpio = 0x20000,
427 },{
428 .name = name_comp1,
429 .vmux = 3,
430 .amux = LINE1,
431 .gpio = 0x20000,
432 }},
433 .radio = {
434 .name = name_radio,
435 .amux = LINE2,
436 .gpio = 0x20000,
437 },
438 .mpeg = SAA7134_MPEG_EMPRESS,
439 .video_out = CCIR656,
440 },
441 [SAA7134_BOARD_CINERGY400] = {
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -0700442 .name = "Terratec Cinergy 400 TV",
443 .audio_clock = 0x00200000,
444 .tuner_type = TUNER_PHILIPS_PAL,
445 .radio_type = UNSET,
446 .tuner_addr = ADDR_UNSET,
447 .radio_addr = ADDR_UNSET,
448 .inputs = {{
449 .name = name_tv,
450 .vmux = 1,
451 .amux = TV,
452 .tv = 1,
453 },{
454 .name = name_comp1,
455 .vmux = 4,
456 .amux = LINE1,
457 },{
458 .name = name_svideo,
459 .vmux = 8,
460 .amux = LINE1,
461 },{
462 .name = name_comp2, /* CVideo over SVideo Connector */
463 .vmux = 0,
464 .amux = LINE1,
465 }}
466 },
Linus Torvalds1da177e2005-04-16 15:20:36 -0700467 [SAA7134_BOARD_MD5044] = {
468 .name = "Medion 5044",
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -0700469 .audio_clock = 0x00187de7, /* was: 0x00200000, */
Linus Torvalds1da177e2005-04-16 15:20:36 -0700470 .tuner_type = TUNER_PHILIPS_FM1216ME_MK3,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -0700471 .radio_type = UNSET,
472 .tuner_addr = ADDR_UNSET,
473 .radio_addr = ADDR_UNSET,
Linus Torvalds1da177e2005-04-16 15:20:36 -0700474 .tda9887_conf = TDA9887_PRESENT,
475 .inputs = {{
476 .name = name_tv,
477 .vmux = 1,
478 .amux = TV,
479 .tv = 1,
480 },{
481 /* workaround for problems with normal TV sound */
482 .name = name_tv_mono,
483 .vmux = 1,
484 .amux = LINE2,
485 .tv = 1,
486 },{
487 .name = name_comp1,
488 .vmux = 0,
489 .amux = LINE2,
490 },{
491 .name = name_comp2,
492 .vmux = 3,
493 .amux = LINE2,
494 },{
495 .name = name_svideo,
496 .vmux = 8,
497 .amux = LINE2,
498 }},
499 .radio = {
500 .name = name_radio,
501 .amux = LINE2,
502 },
503 },
504 [SAA7134_BOARD_KWORLD] = {
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -0700505 .name = "Kworld/KuroutoShikou SAA7130-TVPCI",
Linus Torvalds1da177e2005-04-16 15:20:36 -0700506 .audio_clock = 0x00187de7,
507 .tuner_type = TUNER_PHILIPS_NTSC_M,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -0700508 .radio_type = UNSET,
509 .tuner_addr = ADDR_UNSET,
510 .radio_addr = ADDR_UNSET,
511 .inputs = {{
512 .name = name_svideo,
513 .vmux = 8,
514 .amux = LINE1,
515 },{
516 .name = name_comp1,
517 .vmux = 3,
518 .amux = LINE1,
519 },{
520 .name = name_tv,
521 .vmux = 1,
522 .amux = LINE2,
523 .tv = 1,
524 }},
525 },
Linus Torvalds1da177e2005-04-16 15:20:36 -0700526 [SAA7134_BOARD_CINERGY600] = {
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -0700527 .name = "Terratec Cinergy 600 TV",
528 .audio_clock = 0x00200000,
529 .tuner_type = TUNER_PHILIPS_PAL,
530 .radio_type = UNSET,
531 .tuner_addr = ADDR_UNSET,
532 .radio_addr = ADDR_UNSET,
Linus Torvalds1da177e2005-04-16 15:20:36 -0700533 .tda9887_conf = TDA9887_PRESENT,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -0700534 .inputs = {{
535 .name = name_tv,
536 .vmux = 1,
537 .amux = TV,
538 .tv = 1,
539 },{
540 .name = name_comp1,
541 .vmux = 4,
542 .amux = LINE1,
543 },{
544 .name = name_svideo,
545 .vmux = 8,
546 .amux = LINE1,
547 },{
548 .name = name_comp2, /* CVideo over SVideo Connector */
549 .vmux = 0,
550 .amux = LINE1,
551 }},
Linus Torvalds1da177e2005-04-16 15:20:36 -0700552 .radio = {
553 .name = name_radio,
554 .amux = LINE2,
Michael Krufky67ac9a42006-03-14 16:18:49 -0300555 },
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -0700556 },
Linus Torvalds1da177e2005-04-16 15:20:36 -0700557 [SAA7134_BOARD_MD7134] = {
558 .name = "Medion 7134",
Linus Torvalds1da177e2005-04-16 15:20:36 -0700559 .audio_clock = 0x00187de7,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -0700560 .tuner_type = TUNER_PHILIPS_FMD1216ME_MK3,
561 .radio_type = UNSET,
562 .tuner_addr = ADDR_UNSET,
563 .radio_addr = ADDR_UNSET,
Linus Torvalds1da177e2005-04-16 15:20:36 -0700564 .tda9887_conf = TDA9887_PRESENT,
565 .mpeg = SAA7134_MPEG_DVB,
566 .inputs = {{
567 .name = name_tv,
568 .vmux = 1,
569 .amux = TV,
570 .tv = 1,
571 },{
572 .name = name_comp1,
573 .vmux = 0,
574 .amux = LINE1,
575 },{
576 .name = name_svideo,
577 .vmux = 8,
578 .amux = LINE1,
579 }},
580 .radio = {
581 .name = name_radio,
582 .amux = LINE2,
Hermann Pittoncc764662007-11-28 21:54:35 -0300583 },
584 .mute = {
585 .name = name_mute,
586 .amux = TV,
Linus Torvalds1da177e2005-04-16 15:20:36 -0700587 },
588 },
589 [SAA7134_BOARD_TYPHOON_90031] = {
590 /* aka Typhoon "TV+Radio", Art.Nr 90031 */
591 /* Tom Zoerner <tomzo at users sourceforge net> */
592 .name = "Typhoon TV+Radio 90031",
593 .audio_clock = 0x00200000,
594 .tuner_type = TUNER_PHILIPS_PAL,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -0700595 .radio_type = UNSET,
596 .tuner_addr = ADDR_UNSET,
597 .radio_addr = ADDR_UNSET,
Linus Torvalds1da177e2005-04-16 15:20:36 -0700598 .tda9887_conf = TDA9887_PRESENT,
599 .inputs = {{
600 .name = name_tv,
601 .vmux = 1,
602 .amux = TV,
603 .tv = 1,
604 },{
605 .name = name_comp1,
606 .vmux = 3,
607 .amux = LINE1,
608 },{
609 .name = name_svideo,
610 .vmux = 8,
611 .amux = LINE1,
612 }},
613 .radio = {
614 .name = name_radio,
615 .amux = LINE2,
616 },
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -0700617 },
Linus Torvalds1da177e2005-04-16 15:20:36 -0700618 [SAA7134_BOARD_ELSA] = {
619 .name = "ELSA EX-VISION 300TV",
620 .audio_clock = 0x00187de7,
621 .tuner_type = TUNER_HITACHI_NTSC,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -0700622 .radio_type = UNSET,
623 .tuner_addr = ADDR_UNSET,
624 .radio_addr = ADDR_UNSET,
Linus Torvalds1da177e2005-04-16 15:20:36 -0700625 .inputs = {{
626 .name = name_svideo,
627 .vmux = 8,
628 .amux = LINE1,
629 },{
630 .name = name_comp1,
631 .vmux = 0,
632 .amux = LINE1,
633 },{
634 .name = name_tv,
635 .vmux = 4,
636 .amux = LINE2,
637 .tv = 1,
638 }},
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -0700639 },
Linus Torvalds1da177e2005-04-16 15:20:36 -0700640 [SAA7134_BOARD_ELSA_500TV] = {
641 .name = "ELSA EX-VISION 500TV",
642 .audio_clock = 0x00187de7,
643 .tuner_type = TUNER_HITACHI_NTSC,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -0700644 .radio_type = UNSET,
645 .tuner_addr = ADDR_UNSET,
646 .radio_addr = ADDR_UNSET,
Linus Torvalds1da177e2005-04-16 15:20:36 -0700647 .inputs = {{
648 .name = name_svideo,
649 .vmux = 7,
650 .amux = LINE1,
651 },{
652 .name = name_tv,
653 .vmux = 8,
654 .amux = TV,
655 .tv = 1,
656 },{
657 .name = name_tv_mono,
658 .vmux = 8,
659 .amux = LINE2,
660 .tv = 1,
661 }},
Linus Torvalds1da177e2005-04-16 15:20:36 -0700662 },
Tamuki Shoichid0456d12006-02-27 00:08:04 -0300663 [SAA7134_BOARD_ELSA_700TV] = {
664 .name = "ELSA EX-VISION 700TV",
665 .audio_clock = 0x00187de7,
666 .tuner_type = TUNER_HITACHI_NTSC,
667 .radio_type = UNSET,
668 .tuner_addr = ADDR_UNSET,
669 .radio_addr = ADDR_UNSET,
670 .inputs = {{
671 .name = name_tv,
672 .vmux = 4,
673 .amux = LINE2,
674 .tv = 1,
675 },{
676 .name = name_comp1,
677 .vmux = 6,
678 .amux = LINE1,
679 },{
680 .name = name_svideo,
681 .vmux = 7,
682 .amux = LINE1,
683 }},
684 .mute = {
685 .name = name_mute,
686 .amux = TV,
687 },
688 },
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -0700689 [SAA7134_BOARD_ASUSTeK_TVFM7134] = {
690 .name = "ASUS TV-FM 7134",
691 .audio_clock = 0x00187de7,
692 .tuner_type = TUNER_PHILIPS_FM1216ME_MK3,
693 .radio_type = UNSET,
694 .tuner_addr = ADDR_UNSET,
695 .radio_addr = ADDR_UNSET,
696 .tda9887_conf = TDA9887_PRESENT,
697 .inputs = {{
698 .name = name_tv,
699 .vmux = 1,
700 .amux = TV,
701 .tv = 1,
702 },{
703 .name = name_comp1,
704 .vmux = 4,
705 .amux = LINE2,
706 },{
707 .name = name_svideo,
708 .vmux = 6,
709 .amux = LINE2,
710 }},
711 .radio = {
712 .name = name_radio,
713 .amux = LINE1,
714 },
715 },
716 [SAA7134_BOARD_ASUSTeK_TVFM7135] = {
717 .name = "ASUS TV-FM 7135",
718 .audio_clock = 0x00187de7,
719 .tuner_type = TUNER_PHILIPS_TDA8290,
720 .radio_type = UNSET,
721 .tuner_addr = ADDR_UNSET,
722 .radio_addr = ADDR_UNSET,
Linus Torvalds1da177e2005-04-16 15:20:36 -0700723 .gpiomask = 0x200000,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -0700724 .inputs = {{
725 .name = name_tv,
726 .vmux = 1,
727 .amux = TV,
Linus Torvalds1da177e2005-04-16 15:20:36 -0700728 .gpio = 0x0000,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -0700729 .tv = 1,
730 },{
731 .name = name_comp1,
732 .vmux = 4,
733 .amux = LINE2,
Linus Torvalds1da177e2005-04-16 15:20:36 -0700734 .gpio = 0x0000,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -0700735 },{
736 .name = name_svideo,
737 .vmux = 6,
738 .amux = LINE2,
Linus Torvalds1da177e2005-04-16 15:20:36 -0700739 .gpio = 0x0000,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -0700740 }},
741 .radio = {
742 .name = name_radio,
743 .amux = TV,
Linus Torvalds1da177e2005-04-16 15:20:36 -0700744 .gpio = 0x200000,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -0700745 },
746 .mute = {
747 .name = name_mute,
748 .gpio = 0x0000,
749 },
750
Linus Torvalds1da177e2005-04-16 15:20:36 -0700751 },
752 [SAA7134_BOARD_VA1000POWER] = {
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -0700753 .name = "AOPEN VA1000 POWER",
Linus Torvalds1da177e2005-04-16 15:20:36 -0700754 .audio_clock = 0x00187de7,
755 .tuner_type = TUNER_PHILIPS_NTSC,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -0700756 .radio_type = UNSET,
757 .tuner_addr = ADDR_UNSET,
758 .radio_addr = ADDR_UNSET,
759 .inputs = {{
760 .name = name_svideo,
761 .vmux = 8,
762 .amux = LINE1,
763 },{
764 .name = name_comp1,
765 .vmux = 3,
766 .amux = LINE1,
767 },{
768 .name = name_tv,
769 .vmux = 1,
770 .amux = LINE2,
771 .tv = 1,
772 }},
Linus Torvalds1da177e2005-04-16 15:20:36 -0700773 },
774 [SAA7134_BOARD_10MOONSTVMASTER] = {
775 /* "lilicheng" <llc@linuxfans.org> */
776 .name = "10MOONS PCI TV CAPTURE CARD",
777 .audio_clock = 0x00200000,
778 .tuner_type = TUNER_LG_PAL_NEW_TAPC,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -0700779 .radio_type = UNSET,
780 .tuner_addr = ADDR_UNSET,
781 .radio_addr = ADDR_UNSET,
Linus Torvalds1da177e2005-04-16 15:20:36 -0700782 .gpiomask = 0xe000,
783 .inputs = {{
784 .name = name_tv,
785 .vmux = 1,
786 .amux = LINE2,
787 .gpio = 0x0000,
788 .tv = 1,
789 },{
790 .name = name_comp1,
791 .vmux = 0,
792 .amux = LINE2,
793 .gpio = 0x4000,
794 },{
795 .name = name_comp2,
796 .vmux = 3,
797 .amux = LINE2,
798 .gpio = 0x4000,
799 },{
800 .name = name_svideo,
801 .vmux = 8,
802 .amux = LINE2,
803 .gpio = 0x4000,
804 }},
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -0700805 .radio = {
806 .name = name_radio,
807 .amux = LINE2,
Linus Torvalds1da177e2005-04-16 15:20:36 -0700808 .gpio = 0x2000,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -0700809 },
Linus Torvalds1da177e2005-04-16 15:20:36 -0700810 .mute = {
811 .name = name_mute,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -0700812 .amux = LINE2,
Linus Torvalds1da177e2005-04-16 15:20:36 -0700813 .gpio = 0x8000,
814 },
815 },
816 [SAA7134_BOARD_BMK_MPEX_NOTUNER] = {
817 /* "Andrew de Quincey" <adq@lidskialf.net> */
818 .name = "BMK MPEX No Tuner",
819 .audio_clock = 0x200000,
820 .tuner_type = TUNER_ABSENT,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -0700821 .radio_type = UNSET,
822 .tuner_addr = ADDR_UNSET,
823 .radio_addr = ADDR_UNSET,
Hans Verkuil195784b2009-03-28 09:27:02 -0300824 .empress_addr = 0x20,
Linus Torvalds1da177e2005-04-16 15:20:36 -0700825 .inputs = {{
826 .name = name_comp1,
827 .vmux = 4,
828 .amux = LINE1,
829 },{
830 .name = name_comp2,
831 .vmux = 3,
832 .amux = LINE1,
833 },{
834 .name = name_comp3,
835 .vmux = 0,
836 .amux = LINE1,
837 },{
838 .name = name_comp4,
839 .vmux = 1,
840 .amux = LINE1,
841 },{
842 .name = name_svideo,
843 .vmux = 8,
844 .amux = LINE1,
845 }},
846 .mpeg = SAA7134_MPEG_EMPRESS,
847 .video_out = CCIR656,
848 },
849 [SAA7134_BOARD_VIDEOMATE_TV] = {
850 .name = "Compro VideoMate TV",
851 .audio_clock = 0x00187de7,
852 .tuner_type = TUNER_PHILIPS_NTSC_M,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -0700853 .radio_type = UNSET,
854 .tuner_addr = ADDR_UNSET,
855 .radio_addr = ADDR_UNSET,
856 .inputs = {{
857 .name = name_svideo,
858 .vmux = 8,
859 .amux = LINE1,
860 },{
861 .name = name_comp1,
862 .vmux = 3,
863 .amux = LINE1,
864 },{
865 .name = name_tv,
866 .vmux = 1,
867 .amux = LINE2,
868 .tv = 1,
869 }},
870 },
871 [SAA7134_BOARD_VIDEOMATE_TV_GOLD_PLUS] = {
Linus Torvalds1da177e2005-04-16 15:20:36 -0700872 .name = "Compro VideoMate TV Gold+",
873 .audio_clock = 0x00187de7,
874 .tuner_type = TUNER_PHILIPS_NTSC_M,
875 .gpiomask = 0x800c0000,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -0700876 .radio_type = UNSET,
877 .tuner_addr = ADDR_UNSET,
878 .radio_addr = ADDR_UNSET,
879 .inputs = {{
880 .name = name_svideo,
881 .vmux = 8,
882 .amux = LINE1,
883 .gpio = 0x06c00012,
884 },{
885 .name = name_comp1,
886 .vmux = 3,
887 .amux = LINE1,
888 .gpio = 0x0ac20012,
889 },{
890 .name = name_tv,
891 .vmux = 1,
892 .amux = LINE2,
893 .gpio = 0x08c20012,
894 .tv = 1,
895 }}, /* radio and probably mute is missing */
896 },
Linus Torvalds1da177e2005-04-16 15:20:36 -0700897 [SAA7134_BOARD_CRONOS_PLUS] = {
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -0700898 /*
899 gpio pins:
900 0 .. 3 BASE_ID
901 4 .. 7 PROTECT_ID
902 8 .. 11 USER_OUT
903 12 .. 13 USER_IN
904 14 .. 15 VIDIN_SEL
905 */
Linus Torvalds1da177e2005-04-16 15:20:36 -0700906 .name = "Matrox CronosPlus",
907 .tuner_type = TUNER_ABSENT,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -0700908 .radio_type = UNSET,
909 .tuner_addr = ADDR_UNSET,
910 .radio_addr = ADDR_UNSET,
Linus Torvalds1da177e2005-04-16 15:20:36 -0700911 .gpiomask = 0xcf00,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -0700912 .inputs = {{
913 .name = name_comp1,
914 .vmux = 0,
Linus Torvalds1da177e2005-04-16 15:20:36 -0700915 .gpio = 2 << 14,
916 },{
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -0700917 .name = name_comp2,
918 .vmux = 0,
Linus Torvalds1da177e2005-04-16 15:20:36 -0700919 .gpio = 1 << 14,
920 },{
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -0700921 .name = name_comp3,
922 .vmux = 0,
Linus Torvalds1da177e2005-04-16 15:20:36 -0700923 .gpio = 0 << 14,
924 },{
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -0700925 .name = name_comp4,
926 .vmux = 0,
Linus Torvalds1da177e2005-04-16 15:20:36 -0700927 .gpio = 3 << 14,
928 },{
929 .name = name_svideo,
930 .vmux = 8,
931 .gpio = 2 << 14,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -0700932 }},
933 },
Linus Torvalds1da177e2005-04-16 15:20:36 -0700934 [SAA7134_BOARD_MD2819] = {
935 .name = "AverMedia M156 / Medion 2819",
936 .audio_clock = 0x00187de7,
937 .tuner_type = TUNER_PHILIPS_FM1216ME_MK3,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -0700938 .radio_type = UNSET,
939 .tuner_addr = ADDR_UNSET,
940 .radio_addr = ADDR_UNSET,
Linus Torvalds1da177e2005-04-16 15:20:36 -0700941 .tda9887_conf = TDA9887_PRESENT,
Hermann Pittonad1ef132008-01-20 19:32:39 -0300942 .gpiomask = 0x03,
Linus Torvalds1da177e2005-04-16 15:20:36 -0700943 .inputs = {{
944 .name = name_tv,
945 .vmux = 1,
946 .amux = TV,
947 .tv = 1,
Hermann Pittonad1ef132008-01-20 19:32:39 -0300948 .gpio = 0x00,
949 }, {
Linus Torvalds1da177e2005-04-16 15:20:36 -0700950 .name = name_comp1,
Linus Torvalds1da177e2005-04-16 15:20:36 -0700951 .vmux = 3,
Hermann Pittonad1ef132008-01-20 19:32:39 -0300952 .amux = LINE1,
953 .gpio = 0x02,
954 }, {
955 .name = name_comp2,
956 .vmux = 0,
957 .amux = LINE1,
958 .gpio = 0x02,
959 }, {
Linus Torvalds1da177e2005-04-16 15:20:36 -0700960 .name = name_svideo,
961 .vmux = 8,
Hermann Pittonad1ef132008-01-20 19:32:39 -0300962 .amux = LINE1,
963 .gpio = 0x02,
964 } },
Linus Torvalds1da177e2005-04-16 15:20:36 -0700965 .radio = {
966 .name = name_radio,
Hermann Pittonad1ef132008-01-20 19:32:39 -0300967 .amux = LINE1,
968 .gpio = 0x01,
969 },
970 .mute = {
971 .name = name_mute,
972 .amux = TV,
973 .gpio = 0x00,
Linus Torvalds1da177e2005-04-16 15:20:36 -0700974 },
975 },
976 [SAA7134_BOARD_BMK_MPEX_TUNER] = {
977 /* "Greg Wickham <greg.wickham@grangenet.net> */
978 .name = "BMK MPEX Tuner",
979 .audio_clock = 0x200000,
980 .tuner_type = TUNER_PHILIPS_PAL,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -0700981 .radio_type = UNSET,
982 .tuner_addr = ADDR_UNSET,
983 .radio_addr = ADDR_UNSET,
Hans Verkuil195784b2009-03-28 09:27:02 -0300984 .empress_addr = 0x20,
Linus Torvalds1da177e2005-04-16 15:20:36 -0700985 .inputs = {{
986 .name = name_comp1,
987 .vmux = 1,
988 .amux = LINE1,
989 },{
990 .name = name_svideo,
991 .vmux = 8,
992 .amux = LINE1,
993 },{
994 .name = name_tv,
995 .vmux = 3,
996 .amux = TV,
997 .tv = 1,
998 }},
999 .mpeg = SAA7134_MPEG_EMPRESS,
1000 .video_out = CCIR656,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07001001 },
1002 [SAA7134_BOARD_ASUSTEK_TVFM7133] = {
1003 .name = "ASUS TV-FM 7133",
1004 .audio_clock = 0x00187de7,
1005 /* probably wrong, the 7133 one is the NTSC version ...
1006 * .tuner_type = TUNER_PHILIPS_FM1236_MK3 */
1007 .tuner_type = TUNER_LG_NTSC_NEW_TAPC,
1008 .radio_type = UNSET,
1009 .tuner_addr = ADDR_UNSET,
1010 .radio_addr = ADDR_UNSET,
1011 .tda9887_conf = TDA9887_PRESENT,
1012 .inputs = {{
1013 .name = name_tv,
1014 .vmux = 1,
1015 .amux = TV,
1016 .tv = 1,
1017
Linus Torvalds1da177e2005-04-16 15:20:36 -07001018 },{
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07001019 .name = name_comp1,
1020 .vmux = 4,
1021 .amux = LINE2,
1022 },{
1023 .name = name_svideo,
1024 .vmux = 6,
1025 .amux = LINE2,
1026 }},
1027 .radio = {
1028 .name = name_radio,
1029 .amux = LINE1,
1030 },
1031 },
Linus Torvalds1da177e2005-04-16 15:20:36 -07001032 [SAA7134_BOARD_PINNACLE_PCTV_STEREO] = {
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07001033 .name = "Pinnacle PCTV Stereo (saa7134)",
1034 .audio_clock = 0x00187de7,
1035 .tuner_type = TUNER_MT2032,
1036 .radio_type = UNSET,
1037 .tuner_addr = ADDR_UNSET,
1038 .radio_addr = ADDR_UNSET,
Hartmut Hackmanndf8cf702006-03-03 12:09:26 -03001039 .tda9887_conf = TDA9887_PRESENT | TDA9887_INTERCARRIER | TDA9887_PORT2_INACTIVE,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07001040 .inputs = {{
1041 .name = name_tv,
1042 .vmux = 3,
1043 .amux = TV,
1044 .tv = 1,
1045 },{
1046 .name = name_comp1,
1047 .vmux = 0,
1048 .amux = LINE2,
1049 },{
1050 .name = name_comp2,
1051 .vmux = 1,
1052 .amux = LINE2,
1053 },{
1054 .name = name_svideo,
1055 .vmux = 8,
1056 .amux = LINE2,
1057 }},
1058 },
Linus Torvalds1da177e2005-04-16 15:20:36 -07001059 [SAA7134_BOARD_MANLI_MTV002] = {
1060 /* Ognjen Nastic <ognjen@logosoft.ba> */
Dmitry Belimovb34dddb2008-04-23 14:09:08 -03001061 .name = "Manli MuchTV M-TV002",
Linus Torvalds1da177e2005-04-16 15:20:36 -07001062 .audio_clock = 0x00200000,
1063 .tuner_type = TUNER_PHILIPS_PAL,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07001064 .radio_type = UNSET,
1065 .tuner_addr = ADDR_UNSET,
1066 .radio_addr = ADDR_UNSET,
Linus Torvalds1da177e2005-04-16 15:20:36 -07001067 .inputs = {{
1068 .name = name_svideo,
1069 .vmux = 8,
1070 .amux = LINE1,
1071 },{
1072 .name = name_comp1,
1073 .vmux = 1,
1074 .amux = LINE1,
1075 },{
1076 .name = name_tv,
1077 .vmux = 3,
1078 .amux = LINE2,
1079 .tv = 1,
1080 }},
1081 .radio = {
1082 .name = name_radio,
1083 .amux = LINE2,
1084 },
Linus Torvalds1da177e2005-04-16 15:20:36 -07001085 },
1086 [SAA7134_BOARD_MANLI_MTV001] = {
1087 /* Ognjen Nastic <ognjen@logosoft.ba> UNTESTED */
Dmitry Belimovb34dddb2008-04-23 14:09:08 -03001088 .name = "Manli MuchTV M-TV001",
Linus Torvalds1da177e2005-04-16 15:20:36 -07001089 .audio_clock = 0x00200000,
1090 .tuner_type = TUNER_PHILIPS_PAL,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07001091 .radio_type = UNSET,
1092 .tuner_addr = ADDR_UNSET,
1093 .radio_addr = ADDR_UNSET,
Linus Torvalds1da177e2005-04-16 15:20:36 -07001094 .inputs = {{
1095 .name = name_svideo,
1096 .vmux = 8,
1097 .amux = LINE1,
1098 },{
1099 .name = name_comp1,
1100 .vmux = 1,
1101 .amux = LINE1,
1102 },{
1103 .name = name_tv,
1104 .vmux = 3,
1105 .amux = LINE2,
1106 .tv = 1,
1107 }},
Mauro Carvalho Chehabac19ecc2005-06-23 22:05:09 -07001108 .mute = {
1109 .name = name_mute,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07001110 .amux = LINE1,
Mauro Carvalho Chehabac19ecc2005-06-23 22:05:09 -07001111 },
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07001112 },
Linus Torvalds1da177e2005-04-16 15:20:36 -07001113 [SAA7134_BOARD_TG3000TV] = {
1114 /* TransGear 3000TV */
1115 .name = "Nagase Sangyo TransGear 3000TV",
1116 .audio_clock = 0x00187de7,
1117 .tuner_type = TUNER_PHILIPS_NTSC_M,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07001118 .radio_type = UNSET,
1119 .tuner_addr = ADDR_UNSET,
1120 .radio_addr = ADDR_UNSET,
Linus Torvalds1da177e2005-04-16 15:20:36 -07001121 .inputs = {{
1122 .name = name_tv,
1123 .vmux = 1,
1124 .amux = LINE2,
1125 .tv = 1,
1126 },{
1127 .name = name_comp1,
1128 .vmux = 3,
1129 .amux = LINE2,
1130 },{
1131 .name = name_svideo,
1132 .vmux = 8,
1133 .amux = LINE2,
1134 }},
1135 },
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07001136 [SAA7134_BOARD_ECS_TVP3XP] = {
1137 .name = "Elitegroup ECS TVP3XP FM1216 Tuner Card(PAL-BG,FM) ",
1138 .audio_clock = 0x187de7, /* xtal 32.1 MHz */
1139 .tuner_type = TUNER_PHILIPS_PAL,
1140 .radio_type = UNSET,
1141 .tuner_addr = ADDR_UNSET,
1142 .radio_addr = ADDR_UNSET,
1143 .inputs = {{
1144 .name = name_tv,
1145 .vmux = 1,
1146 .amux = TV,
1147 .tv = 1,
1148 },{
1149 .name = name_tv_mono,
1150 .vmux = 1,
1151 .amux = LINE2,
1152 .tv = 1,
1153 },{
1154 .name = name_comp1,
1155 .vmux = 3,
1156 .amux = LINE1,
1157 },{
1158 .name = name_svideo,
1159 .vmux = 8,
1160 .amux = LINE1,
Linus Torvalds1da177e2005-04-16 15:20:36 -07001161 },{
1162 .name = "CVid over SVid",
1163 .vmux = 0,
1164 .amux = LINE1,
1165 }},
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07001166 .radio = {
1167 .name = name_radio,
1168 .amux = LINE2,
1169 },
1170 },
1171 [SAA7134_BOARD_ECS_TVP3XP_4CB5] = {
1172 .name = "Elitegroup ECS TVP3XP FM1236 Tuner Card (NTSC,FM)",
1173 .audio_clock = 0x187de7,
1174 .tuner_type = TUNER_PHILIPS_NTSC,
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 = TV,
1182 .tv = 1,
1183 },{
1184 .name = name_tv_mono,
1185 .vmux = 1,
1186 .amux = LINE2,
1187 .tv = 1,
1188 },{
1189 .name = name_comp1,
1190 .vmux = 3,
1191 .amux = LINE1,
1192 },{
1193 .name = name_svideo,
1194 .vmux = 8,
1195 .amux = LINE1,
1196 },{
1197 .name = "CVid over SVid",
1198 .vmux = 0,
1199 .amux = LINE1,
1200 }},
1201 .radio = {
1202 .name = name_radio,
1203 .amux = LINE2,
1204 },
1205 },
Simon Farnsworthb39423a2007-05-01 10:01:20 -03001206 [SAA7134_BOARD_ECS_TVP3XP_4CB6] = {
1207 /* Barry Scott <barry.scott@onelan.co.uk> */
1208 .name = "Elitegroup ECS TVP3XP FM1246 Tuner Card (PAL,FM)",
1209 .audio_clock = 0x187de7,
1210 .tuner_type = TUNER_PHILIPS_PAL_I,
1211 .radio_type = UNSET,
1212 .tuner_addr = ADDR_UNSET,
1213 .radio_addr = ADDR_UNSET,
1214 .inputs = {{
1215 .name = name_tv,
1216 .vmux = 1,
1217 .amux = TV,
1218 .tv = 1,
1219 },{
1220 .name = name_tv_mono,
1221 .vmux = 1,
1222 .amux = LINE2,
1223 .tv = 1,
1224 },{
1225 .name = name_comp1,
1226 .vmux = 3,
1227 .amux = LINE1,
1228 },{
1229 .name = name_svideo,
1230 .vmux = 8,
1231 .amux = LINE1,
1232 },{
1233 .name = "CVid over SVid",
1234 .vmux = 0,
1235 .amux = LINE1,
1236 }},
1237 .radio = {
1238 .name = name_radio,
1239 .amux = LINE2,
1240 },
1241 },
Linus Torvalds1da177e2005-04-16 15:20:36 -07001242 [SAA7134_BOARD_AVACSSMARTTV] = {
1243 /* Roman Pszonczenko <romka@kolos.math.uni.lodz.pl> */
1244 .name = "AVACS SmartTV",
1245 .audio_clock = 0x00187de7,
1246 .tuner_type = TUNER_PHILIPS_PAL,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07001247 .radio_type = UNSET,
1248 .tuner_addr = ADDR_UNSET,
1249 .radio_addr = ADDR_UNSET,
Linus Torvalds1da177e2005-04-16 15:20:36 -07001250 .inputs = {{
1251 .name = name_tv,
1252 .vmux = 1,
1253 .amux = TV,
1254 .tv = 1,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07001255 },{
Linus Torvalds1da177e2005-04-16 15:20:36 -07001256 .name = name_tv_mono,
1257 .vmux = 1,
1258 .amux = LINE2,
1259 .tv = 1,
1260 },{
1261 .name = name_comp1,
1262 .vmux = 0,
1263 .amux = LINE2,
1264 },{
1265 .name = name_comp2,
1266 .vmux = 3,
1267 .amux = LINE2,
1268 },{
1269 .name = name_svideo,
1270 .vmux = 8,
1271 .amux = LINE2,
1272 }},
1273 .radio = {
1274 .name = name_radio,
1275 .amux = LINE2,
1276 .gpio = 0x200000,
1277 },
1278 },
1279 [SAA7134_BOARD_AVERMEDIA_DVD_EZMAKER] = {
1280 /* Michael Smith <msmith@cbnco.com> */
1281 .name = "AVerMedia DVD EZMaker",
1282 .audio_clock = 0x00187de7,
1283 .tuner_type = TUNER_ABSENT,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07001284 .radio_type = UNSET,
1285 .tuner_addr = ADDR_UNSET,
1286 .radio_addr = ADDR_UNSET,
Linus Torvalds1da177e2005-04-16 15:20:36 -07001287 .inputs = {{
1288 .name = name_comp1,
1289 .vmux = 3,
1290 },{
1291 .name = name_svideo,
1292 .vmux = 8,
1293 }},
1294 },
Massimo Piccionie2fc00c2008-07-11 13:48:02 -03001295 [SAA7134_BOARD_AVERMEDIA_M103] = {
1296 /* Massimo Piccioni <dafastidio@libero.it> */
1297 .name = "AVerMedia MiniPCI DVB-T Hybrid M103",
1298 .audio_clock = 0x187de7,
1299 .tuner_type = TUNER_XC2028,
1300 .radio_type = UNSET,
1301 .tuner_addr = ADDR_UNSET,
1302 .radio_addr = ADDR_UNSET,
1303 .mpeg = SAA7134_MPEG_DVB,
1304 .inputs = {{
1305 .name = name_tv,
1306 .vmux = 1,
1307 .amux = TV,
1308 .tv = 1,
1309 } },
1310 },
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07001311 [SAA7134_BOARD_NOVAC_PRIMETV7133] = {
1312 /* toshii@netbsd.org */
1313 .name = "Noval Prime TV 7133",
1314 .audio_clock = 0x00200000,
1315 .tuner_type = TUNER_ALPS_TSBH1_NTSC,
1316 .radio_type = UNSET,
1317 .tuner_addr = ADDR_UNSET,
1318 .radio_addr = ADDR_UNSET,
1319 .inputs = {{
1320 .name = name_comp1,
1321 .vmux = 3,
1322 },{
1323 .name = name_tv,
1324 .vmux = 1,
1325 .amux = TV,
1326 .tv = 1,
1327 },{
1328 .name = name_svideo,
1329 .vmux = 8,
1330 }},
1331 },
Linus Torvalds1da177e2005-04-16 15:20:36 -07001332 [SAA7134_BOARD_AVERMEDIA_STUDIO_305] = {
1333 .name = "AverMedia AverTV Studio 305",
1334 .audio_clock = 0x00187de7,
1335 .tuner_type = TUNER_PHILIPS_FM1256_IH3,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07001336 .radio_type = UNSET,
1337 .tuner_addr = ADDR_UNSET,
1338 .radio_addr = ADDR_UNSET,
Linus Torvalds1da177e2005-04-16 15:20:36 -07001339 .tda9887_conf = TDA9887_PRESENT,
Linus Torvalds1da177e2005-04-16 15:20:36 -07001340 .inputs = {{
1341 .name = name_tv,
1342 .vmux = 1,
1343 .amux = LINE2,
1344 .tv = 1,
1345 },{
1346 .name = name_comp1,
1347 .vmux = 0,
1348 .amux = LINE2,
1349 },{
1350 .name = name_comp2,
1351 .vmux = 3,
1352 .amux = LINE2,
1353 },{
1354 .name = name_svideo,
1355 .vmux = 8,
1356 .amux = LINE2,
1357 }},
1358 .radio = {
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07001359 .name = name_radio,
1360 .amux = LINE2,
1361 },
Linus Torvalds1da177e2005-04-16 15:20:36 -07001362 .mute = {
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07001363 .name = name_mute,
1364 .amux = LINE1,
Linus Torvalds1da177e2005-04-16 15:20:36 -07001365 },
1366 },
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07001367 [SAA7134_BOARD_UPMOST_PURPLE_TV] = {
1368 .name = "UPMOST PURPLE TV",
1369 .audio_clock = 0x00187de7,
1370 .tuner_type = TUNER_PHILIPS_FM1236_MK3,
1371 .radio_type = UNSET,
1372 .tuner_addr = ADDR_UNSET,
1373 .radio_addr = ADDR_UNSET,
1374 .tda9887_conf = TDA9887_PRESENT,
1375 .inputs = {{
1376 .name = name_tv,
1377 .vmux = 7,
1378 .amux = TV,
1379 .tv = 1,
1380 },{
1381 .name = name_svideo,
1382 .vmux = 7,
1383 .amux = LINE1,
1384 }},
Linus Torvalds1da177e2005-04-16 15:20:36 -07001385 },
1386 [SAA7134_BOARD_ITEMS_MTV005] = {
1387 /* Norman Jonas <normanjonas@arcor.de> */
1388 .name = "Items MuchTV Plus / IT-005",
1389 .audio_clock = 0x00187de7,
1390 .tuner_type = TUNER_PHILIPS_PAL,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07001391 .radio_type = UNSET,
1392 .tuner_addr = ADDR_UNSET,
1393 .radio_addr = ADDR_UNSET,
Linus Torvalds1da177e2005-04-16 15:20:36 -07001394 .inputs = {{
1395 .name = name_tv,
1396 .vmux = 3,
1397 .amux = TV,
1398 .tv = 1,
1399 },{
1400 .name = name_comp1,
1401 .vmux = 1,
1402 .amux = LINE1,
1403 },{
1404 .name = name_svideo,
1405 .vmux = 8,
1406 .amux = LINE1,
1407 }},
1408 .radio = {
1409 .name = name_radio,
1410 .amux = LINE2,
1411 },
1412 },
1413 [SAA7134_BOARD_CINERGY200] = {
1414 .name = "Terratec Cinergy 200 TV",
1415 .audio_clock = 0x00200000,
1416 .tuner_type = TUNER_PHILIPS_PAL,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07001417 .radio_type = UNSET,
1418 .tuner_addr = ADDR_UNSET,
1419 .radio_addr = ADDR_UNSET,
Linus Torvalds1da177e2005-04-16 15:20:36 -07001420 .inputs = {{
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07001421 .name = name_tv,
Linus Torvalds1da177e2005-04-16 15:20:36 -07001422 .vmux = 1,
1423 .amux = LINE2,
1424 .tv = 1,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07001425 },{
1426 .name = name_comp1,
1427 .vmux = 4,
1428 .amux = LINE1,
1429 },{
1430 .name = name_svideo,
1431 .vmux = 8,
1432 .amux = LINE1,
1433 },{
1434 .name = name_comp2, /* CVideo over SVideo Connector */
1435 .vmux = 0,
1436 .amux = LINE1,
Linus Torvalds1da177e2005-04-16 15:20:36 -07001437 }},
1438 .mute = {
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07001439 .name = name_mute,
1440 .amux = LINE2,
Linus Torvalds1da177e2005-04-16 15:20:36 -07001441 },
1442 },
1443 [SAA7134_BOARD_VIDEOMATE_TV_PVR] = {
1444 /* Alain St-Denis <alain@topaze.homeip.net> */
1445 .name = "Compro VideoMate TV PVR/FM",
1446 .audio_clock = 0x00187de7,
1447 .tuner_type = TUNER_PHILIPS_NTSC_M,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07001448 .radio_type = UNSET,
1449 .tuner_addr = ADDR_UNSET,
1450 .radio_addr = ADDR_UNSET,
Linus Torvalds1da177e2005-04-16 15:20:36 -07001451 .gpiomask = 0x808c0080,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07001452 .inputs = {{
1453 .name = name_svideo,
1454 .vmux = 8,
1455 .amux = LINE1,
Linus Torvalds1da177e2005-04-16 15:20:36 -07001456 .gpio = 0x00080,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07001457 },{
1458 .name = name_comp1,
1459 .vmux = 3,
1460 .amux = LINE1,
Linus Torvalds1da177e2005-04-16 15:20:36 -07001461 .gpio = 0x00080,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07001462 },{
1463 .name = name_tv,
1464 .vmux = 1,
1465 .amux = LINE2_LEFT,
1466 .tv = 1,
Linus Torvalds1da177e2005-04-16 15:20:36 -07001467 .gpio = 0x00080,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07001468 }},
Linus Torvalds1da177e2005-04-16 15:20:36 -07001469 .radio = {
1470 .name = name_radio,
1471 .amux = LINE2,
1472 .gpio = 0x80000,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07001473 },
Linus Torvalds1da177e2005-04-16 15:20:36 -07001474 .mute = {
1475 .name = name_mute,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07001476 .amux = LINE2,
Linus Torvalds1da177e2005-04-16 15:20:36 -07001477 .gpio = 0x40000,
1478 },
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07001479 },
1480 [SAA7134_BOARD_SABRENT_SBTTVFM] = {
Linus Torvalds1da177e2005-04-16 15:20:36 -07001481 /* Michael Rodriguez-Torrent <mrtorrent@asu.edu> */
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07001482 .name = "Sabrent SBT-TVFM (saa7130)",
1483 .audio_clock = 0x00187de7,
1484 .tuner_type = TUNER_PHILIPS_NTSC_M,
1485 .radio_type = UNSET,
1486 .tuner_addr = ADDR_UNSET,
1487 .radio_addr = ADDR_UNSET,
1488 .inputs = {{
Linus Torvalds1da177e2005-04-16 15:20:36 -07001489 .name = name_comp1,
1490 .vmux = 1,
Mauro Carvalho Chehab6a989d72005-09-09 13:03:57 -07001491 .amux = LINE1,
Linus Torvalds1da177e2005-04-16 15:20:36 -07001492 },{
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07001493 .name = name_tv,
1494 .vmux = 3,
1495 .amux = LINE2,
1496 .tv = 1,
1497 },{
1498 .name = name_svideo,
1499 .vmux = 8,
Mauro Carvalho Chehab6a989d72005-09-09 13:03:57 -07001500 .amux = LINE1,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07001501 }},
1502 .radio = {
1503 .name = name_radio,
1504 .amux = LINE2,
1505 },
1506 },
Linus Torvalds1da177e2005-04-16 15:20:36 -07001507 [SAA7134_BOARD_ZOLID_XPERT_TV7134] = {
1508 /* Helge Jensen <helge.jensen@slog.dk> */
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07001509 .name = ":Zolid Xpert TV7134",
Linus Torvalds1da177e2005-04-16 15:20:36 -07001510 .audio_clock = 0x00187de7,
1511 .tuner_type = TUNER_PHILIPS_NTSC,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07001512 .radio_type = UNSET,
1513 .tuner_addr = ADDR_UNSET,
1514 .radio_addr = ADDR_UNSET,
1515 .inputs = {{
Linus Torvalds1da177e2005-04-16 15:20:36 -07001516 .name = name_svideo,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07001517 .vmux = 8,
1518 .amux = LINE1,
1519 },{
1520 .name = name_comp1,
1521 .vmux = 3,
1522 .amux = LINE1,
1523 },{
1524 .name = name_tv,
1525 .vmux = 1,
1526 .amux = LINE2,
1527 .tv = 1,
1528 }},
Linus Torvalds1da177e2005-04-16 15:20:36 -07001529 },
1530 [SAA7134_BOARD_EMPIRE_PCI_TV_RADIO_LE] = {
1531 /* "Matteo Az" <matte.az@nospam.libero.it> ;-) */
1532 .name = "Empire PCI TV-Radio LE",
1533 .audio_clock = 0x00187de7,
1534 .tuner_type = TUNER_PHILIPS_PAL,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07001535 .radio_type = UNSET,
1536 .tuner_addr = ADDR_UNSET,
1537 .radio_addr = ADDR_UNSET,
Linus Torvalds1da177e2005-04-16 15:20:36 -07001538 .gpiomask = 0x4000,
1539 .inputs = {{
1540 .name = name_tv_mono,
1541 .vmux = 1,
1542 .amux = LINE2,
1543 .gpio = 0x8000,
1544 .tv = 1,
1545 },{
1546 .name = name_comp1,
1547 .vmux = 3,
1548 .amux = LINE1,
1549 .gpio = 0x8000,
1550 },{
1551 .name = name_svideo,
1552 .vmux = 6,
1553 .amux = LINE1,
1554 .gpio = 0x8000,
1555 }},
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07001556 .radio = {
1557 .name = name_radio,
1558 .amux = LINE1,
1559 .gpio = 0x8000,
1560 },
Linus Torvalds1da177e2005-04-16 15:20:36 -07001561 .mute = {
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07001562 .name = name_mute,
1563 .amux = TV,
1564 .gpio =0x8000,
1565 }
Linus Torvalds1da177e2005-04-16 15:20:36 -07001566 },
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07001567 [SAA7134_BOARD_AVERMEDIA_STUDIO_307] = {
Linus Torvalds1da177e2005-04-16 15:20:36 -07001568 /*
1569 Nickolay V. Shmyrev <nshmyrev@yandex.ru>
1570 Lots of thanks to Andrey Zolotarev <zolotarev_andrey@mail.ru>
1571 */
1572 .name = "Avermedia AVerTV Studio 307",
1573 .audio_clock = 0x00187de7,
1574 .tuner_type = TUNER_PHILIPS_FM1256_IH3,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07001575 .radio_type = UNSET,
1576 .tuner_addr = ADDR_UNSET,
1577 .radio_addr = ADDR_UNSET,
Linus Torvalds1da177e2005-04-16 15:20:36 -07001578 .tda9887_conf = TDA9887_PRESENT,
1579 .gpiomask = 0x03,
1580 .inputs = {{
1581 .name = name_tv,
1582 .vmux = 1,
1583 .amux = TV,
1584 .tv = 1,
1585 .gpio = 0x00,
1586 },{
Stas Sergeevf438d972007-09-17 15:34:09 -03001587 .name = name_comp,
Linus Torvalds1da177e2005-04-16 15:20:36 -07001588 .vmux = 3,
Stas Sergeevf5e4fee2007-09-02 03:56:18 -03001589 .amux = LINE1,
1590 .gpio = 0x02,
Linus Torvalds1da177e2005-04-16 15:20:36 -07001591 },{
1592 .name = name_svideo,
1593 .vmux = 8,
Stas Sergeevf5e4fee2007-09-02 03:56:18 -03001594 .amux = LINE1,
1595 .gpio = 0x02,
Linus Torvalds1da177e2005-04-16 15:20:36 -07001596 }},
1597 .radio = {
1598 .name = name_radio,
1599 .amux = LINE1,
1600 .gpio = 0x01,
1601 },
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07001602 .mute = {
1603 .name = name_mute,
1604 .amux = LINE1,
1605 .gpio = 0x00,
1606 },
1607 },
1608 [SAA7134_BOARD_AVERMEDIA_GO_007_FM] = {
Mauro Carvalho Chehabac19ecc2005-06-23 22:05:09 -07001609 .name = "Avermedia AVerTV GO 007 FM",
1610 .audio_clock = 0x00187de7,
1611 .tuner_type = TUNER_PHILIPS_TDA8290,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07001612 .radio_type = UNSET,
1613 .tuner_addr = ADDR_UNSET,
1614 .radio_addr = ADDR_UNSET,
Mauro Carvalho Chehabac19ecc2005-06-23 22:05:09 -07001615 .gpiomask = 0x00300003,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07001616 /* .gpiomask = 0x8c240003, */
Mauro Carvalho Chehabac19ecc2005-06-23 22:05:09 -07001617 .inputs = {{
1618 .name = name_tv,
1619 .vmux = 1,
1620 .amux = TV,
1621 .tv = 1,
1622 .gpio = 0x01,
1623 },{
1624 .name = name_comp1,
1625 .vmux = 0,
Damian Minkovfbc84082007-03-29 08:47:39 -03001626 .amux = LINE1,
Mauro Carvalho Chehabac19ecc2005-06-23 22:05:09 -07001627 .gpio = 0x02,
1628 },{
1629 .name = name_svideo,
1630 .vmux = 6,
Damian Minkovfbc84082007-03-29 08:47:39 -03001631 .amux = LINE1,
Mauro Carvalho Chehabac19ecc2005-06-23 22:05:09 -07001632 .gpio = 0x02,
1633 }},
1634 .radio = {
1635 .name = name_radio,
1636 .amux = LINE1,
1637 .gpio = 0x00300001,
1638 },
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07001639 .mute = {
1640 .name = name_mute,
1641 .amux = TV,
1642 .gpio = 0x01,
1643 },
1644 },
Linus Torvalds1da177e2005-04-16 15:20:36 -07001645 [SAA7134_BOARD_AVERMEDIA_CARDBUS] = {
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07001646 /* Kees.Blom@cwi.nl */
1647 .name = "AVerMedia Cardbus TV/Radio (E500)",
1648 .audio_clock = 0x187de7,
1649 .tuner_type = TUNER_PHILIPS_TDA8290,
1650 .radio_type = UNSET,
1651 .tuner_addr = ADDR_UNSET,
1652 .radio_addr = ADDR_UNSET,
Linus Torvalds1da177e2005-04-16 15:20:36 -07001653 .inputs = {{
1654 .name = name_tv,
1655 .vmux = 1,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07001656 .amux = TV,
Linus Torvalds1da177e2005-04-16 15:20:36 -07001657 .tv = 1,
1658 },{
1659 .name = name_comp1,
1660 .vmux = 3,
1661 .amux = LINE2,
1662 },{
1663 .name = name_svideo,
1664 .vmux = 8,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07001665 .amux = LINE1,
Linus Torvalds1da177e2005-04-16 15:20:36 -07001666 }},
1667 .radio = {
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07001668 .name = name_radio,
Linus Torvalds1da177e2005-04-16 15:20:36 -07001669 .amux = LINE1,
1670 },
1671 },
1672 [SAA7134_BOARD_CINERGY400_CARDBUS] = {
1673 .name = "Terratec Cinergy 400 mobile",
1674 .audio_clock = 0x187de7,
1675 .tuner_type = TUNER_ALPS_TSBE5_PAL,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07001676 .radio_type = UNSET,
1677 .tuner_addr = ADDR_UNSET,
1678 .radio_addr = ADDR_UNSET,
1679 .tda9887_conf = TDA9887_PRESENT,
Linus Torvalds1da177e2005-04-16 15:20:36 -07001680 .inputs = {{
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07001681 .name = name_tv,
Linus Torvalds1da177e2005-04-16 15:20:36 -07001682 .vmux = 1,
1683 .amux = TV,
1684 .tv = 1,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07001685 },{
Linus Torvalds1da177e2005-04-16 15:20:36 -07001686 .name = name_tv_mono,
1687 .vmux = 1,
1688 .amux = LINE2,
1689 .tv = 1,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07001690 },{
1691 .name = name_comp1,
1692 .vmux = 3,
1693 .amux = LINE1,
1694 },{
1695 .name = name_svideo,
1696 .vmux = 8,
1697 .amux = LINE1,
Linus Torvalds1da177e2005-04-16 15:20:36 -07001698 }},
1699 },
1700 [SAA7134_BOARD_CINERGY600_MK3] = {
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07001701 .name = "Terratec Cinergy 600 TV MK3",
1702 .audio_clock = 0x00200000,
Linus Torvalds1da177e2005-04-16 15:20:36 -07001703 .tuner_type = TUNER_PHILIPS_FM1216ME_MK3,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07001704 .radio_type = UNSET,
1705 .tuner_addr = ADDR_UNSET,
1706 .radio_addr = ADDR_UNSET,
1707 .tda9887_conf = TDA9887_PRESENT,
1708 .inputs = {{
1709 .name = name_tv,
1710 .vmux = 1,
1711 .amux = TV,
1712 .tv = 1,
1713 },{
1714 .name = name_comp1,
1715 .vmux = 4,
1716 .amux = LINE1,
1717 },{
1718 .name = name_svideo,
1719 .vmux = 8,
1720 .amux = LINE1,
1721 },{
1722 .name = name_comp2, /* CVideo over SVideo Connector */
1723 .vmux = 0,
1724 .amux = LINE1,
1725 }},
Linus Torvalds1da177e2005-04-16 15:20:36 -07001726 .radio = {
1727 .name = name_radio,
1728 .amux = LINE2,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07001729 },
1730 },
1731 [SAA7134_BOARD_VIDEOMATE_GOLD_PLUS] = {
1732 /* Dylan Walkden <dylan_walkden@hotmail.com> */
1733 .name = "Compro VideoMate Gold+ Pal",
1734 .audio_clock = 0x00187de7,
1735 .tuner_type = TUNER_PHILIPS_PAL,
1736 .radio_type = UNSET,
1737 .tuner_addr = ADDR_UNSET,
1738 .radio_addr = ADDR_UNSET,
1739 .gpiomask = 0x1ce780,
1740 .inputs = {{
1741 .name = name_svideo,
1742 .vmux = 0, /* CVideo over SVideo Connector - ok? */
1743 .amux = LINE1,
1744 .gpio = 0x008080,
1745 },{
1746 .name = name_comp1,
1747 .vmux = 3,
1748 .amux = LINE1,
1749 .gpio = 0x008080,
1750 },{
1751 .name = name_tv,
1752 .vmux = 1,
1753 .amux = TV,
1754 .tv = 1,
1755 .gpio = 0x008080,
1756 }},
1757 .radio = {
1758 .name = name_radio,
1759 .amux = LINE2,
1760 .gpio = 0x80000,
1761 },
1762 .mute = {
1763 .name = name_mute,
1764 .amux = LINE2,
1765 .gpio = 0x0c8000,
1766 },
1767 },
Linus Torvalds1da177e2005-04-16 15:20:36 -07001768 [SAA7134_BOARD_PINNACLE_300I_DVBT_PAL] = {
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07001769 .name = "Pinnacle PCTV 300i DVB-T + PAL",
1770 .audio_clock = 0x00187de7,
1771 .tuner_type = TUNER_MT2032,
1772 .radio_type = UNSET,
1773 .tuner_addr = ADDR_UNSET,
1774 .radio_addr = ADDR_UNSET,
Hartmut Hackmanndf8cf702006-03-03 12:09:26 -03001775 .tda9887_conf = TDA9887_PRESENT | TDA9887_INTERCARRIER | TDA9887_PORT2_INACTIVE,
Linus Torvalds1da177e2005-04-16 15:20:36 -07001776 .mpeg = SAA7134_MPEG_DVB,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07001777 .inputs = {{
1778 .name = name_tv,
1779 .vmux = 3,
1780 .amux = TV,
1781 .tv = 1,
1782 },{
1783 .name = name_comp1,
1784 .vmux = 0,
1785 .amux = LINE2,
1786 },{
1787 .name = name_comp2,
1788 .vmux = 1,
1789 .amux = LINE2,
1790 },{
1791 .name = name_svideo,
1792 .vmux = 8,
1793 .amux = LINE2,
1794 }},
1795 },
Linus Torvalds1da177e2005-04-16 15:20:36 -07001796 [SAA7134_BOARD_PROVIDEO_PV952] = {
1797 /* andreas.kretschmer@web.de */
1798 .name = "ProVideo PV952",
1799 .audio_clock = 0x00187de7,
1800 .tuner_type = TUNER_PHILIPS_FM1216ME_MK3,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07001801 .radio_type = UNSET,
1802 .tuner_addr = ADDR_UNSET,
1803 .radio_addr = ADDR_UNSET,
Linus Torvalds1da177e2005-04-16 15:20:36 -07001804 .tda9887_conf = TDA9887_PRESENT,
1805 .inputs = {{
1806 .name = name_comp1,
1807 .vmux = 0,
1808 .amux = LINE1,
1809 },{
1810 .name = name_tv,
1811 .vmux = 1,
1812 .amux = TV,
1813 .tv = 1,
1814 },{
1815 .name = name_tv_mono,
1816 .vmux = 1,
1817 .amux = LINE2,
1818 .tv = 1,
1819 }},
1820 .radio = {
1821 .name = name_radio,
1822 .amux = LINE2,
1823 },
1824 },
1825 [SAA7134_BOARD_AVERMEDIA_305] = {
1826 /* much like the "studio" version but without radio
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07001827 * and another tuner (sirspiritus@yandex.ru) */
Linus Torvalds1da177e2005-04-16 15:20:36 -07001828 .name = "AverMedia AverTV/305",
1829 .audio_clock = 0x00187de7,
1830 .tuner_type = TUNER_PHILIPS_FQ1216ME,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07001831 .radio_type = UNSET,
1832 .tuner_addr = ADDR_UNSET,
1833 .radio_addr = ADDR_UNSET,
Linus Torvalds1da177e2005-04-16 15:20:36 -07001834 .tda9887_conf = TDA9887_PRESENT,
Linus Torvalds1da177e2005-04-16 15:20:36 -07001835 .inputs = {{
1836 .name = name_tv,
1837 .vmux = 1,
1838 .amux = LINE2,
1839 .tv = 1,
1840 },{
1841 .name = name_comp1,
1842 .vmux = 0,
1843 .amux = LINE2,
1844 },{
1845 .name = name_comp2,
1846 .vmux = 3,
1847 .amux = LINE2,
1848 },{
1849 .name = name_svideo,
1850 .vmux = 8,
1851 .amux = LINE2,
1852 }},
1853 .mute = {
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07001854 .name = name_mute,
1855 .amux = LINE1,
Linus Torvalds1da177e2005-04-16 15:20:36 -07001856 },
1857 },
1858 [SAA7134_BOARD_FLYDVBTDUO] = {
1859 /* LifeView FlyDVB-T DUO */
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07001860 /* "Nico Sabbi <nsabbi@tiscali.it> Hartmut Hackmann hartmut.hackmann@t-online.de*/
Peter Misseldb483672007-04-27 12:31:20 -03001861 .name = "LifeView FlyDVB-T DUO / MSI TV@nywhere Duo",
Linus Torvalds1da177e2005-04-16 15:20:36 -07001862 .audio_clock = 0x00200000,
1863 .tuner_type = TUNER_PHILIPS_TDA8290,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07001864 .radio_type = UNSET,
1865 .tuner_addr = ADDR_UNSET,
1866 .radio_addr = ADDR_UNSET,
Peter Missel7c7fea62007-04-27 12:31:14 -03001867 .gpiomask = 0x00200000,
Michael Krufky8ce47da2007-04-27 12:31:14 -03001868 .mpeg = SAA7134_MPEG_DVB,
Linus Torvalds1da177e2005-04-16 15:20:36 -07001869 .inputs = {{
1870 .name = name_tv,
1871 .vmux = 1,
1872 .amux = TV,
Peter Missel7c7fea62007-04-27 12:31:14 -03001873 .gpio = 0x200000, /* GPIO21=High for TV input */
Linus Torvalds1da177e2005-04-16 15:20:36 -07001874 .tv = 1,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07001875 },{
Linus Torvalds1da177e2005-04-16 15:20:36 -07001876 .name = name_comp1, /* Composite signal on S-Video input */
1877 .vmux = 0,
1878 .amux = LINE2,
Linus Torvalds1da177e2005-04-16 15:20:36 -07001879 },{
1880 .name = name_comp2, /* Composite input */
1881 .vmux = 3,
1882 .amux = LINE2,
Linus Torvalds1da177e2005-04-16 15:20:36 -07001883 },{
1884 .name = name_svideo, /* S-Video signal on S-Video input */
1885 .vmux = 8,
1886 .amux = LINE2,
Linus Torvalds1da177e2005-04-16 15:20:36 -07001887 }},
Peter Missel7c7fea62007-04-27 12:31:14 -03001888 .radio = {
1889 .name = name_radio,
1890 .amux = TV,
1891 .gpio = 0x000000, /* GPIO21=Low for FM radio antenna */
1892 },
Linus Torvalds1da177e2005-04-16 15:20:36 -07001893 },
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07001894 [SAA7134_BOARD_PHILIPS_TOUGH] = {
1895 .name = "Philips TOUGH DVB-T reference design",
1896 .tuner_type = TUNER_ABSENT,
Mauro Carvalho Chehabac19ecc2005-06-23 22:05:09 -07001897 .audio_clock = 0x00187de7,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07001898 .radio_type = UNSET,
1899 .tuner_addr = ADDR_UNSET,
1900 .radio_addr = ADDR_UNSET,
1901 .mpeg = SAA7134_MPEG_DVB,
1902 .inputs = {{
1903 .name = name_comp1,
1904 .vmux = 0,
1905 .amux = LINE1,
1906 },{
1907 .name = name_svideo,
1908 .vmux = 8,
1909 .amux = LINE1,
1910 }},
Mauro Carvalho Chehabac19ecc2005-06-23 22:05:09 -07001911 },
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07001912 [SAA7134_BOARD_AVERMEDIA_307] = {
1913 /*
1914 Davydov Vladimir <vladimir@iqmedia.com>
1915 */
1916 .name = "Avermedia AVerTV 307",
1917 .audio_clock = 0x00187de7,
1918 .tuner_type = TUNER_PHILIPS_FQ1216ME,
1919 .radio_type = UNSET,
1920 .tuner_addr = ADDR_UNSET,
1921 .radio_addr = ADDR_UNSET,
1922 .tda9887_conf = TDA9887_PRESENT,
1923 .inputs = {{
1924 .name = name_tv,
1925 .vmux = 1,
1926 .amux = TV,
1927 .tv = 1,
1928 },{
1929 .name = name_comp1,
1930 .vmux = 0,
1931 .amux = LINE1,
1932 },{
1933 .name = name_comp2,
1934 .vmux = 3,
1935 .amux = LINE1,
1936 },{
1937 .name = name_svideo,
1938 .vmux = 8,
1939 .amux = LINE1,
1940 }},
1941 },
1942 [SAA7134_BOARD_ADS_INSTANT_TV] = {
1943 .name = "ADS Tech Instant TV (saa7135)",
1944 .audio_clock = 0x00187de7,
1945 .tuner_type = TUNER_PHILIPS_TDA8290,
1946 .radio_type = UNSET,
1947 .tuner_addr = ADDR_UNSET,
1948 .radio_addr = ADDR_UNSET,
1949 .inputs = {{
1950 .name = name_tv,
1951 .vmux = 1,
1952 .amux = TV,
1953 .tv = 1,
1954 },{
1955 .name = name_comp1,
1956 .vmux = 3,
1957 .amux = LINE2,
1958 },{
1959 .name = name_svideo,
1960 .vmux = 8,
1961 .amux = LINE2,
1962 }},
1963 },
1964 [SAA7134_BOARD_KWORLD_VSTREAM_XPERT] = {
1965 .name = "Kworld/Tevion V-Stream Xpert TV PVR7134",
1966 .audio_clock = 0x00187de7,
1967 .tuner_type = TUNER_PHILIPS_PAL_I,
1968 .radio_type = UNSET,
1969 .tuner_addr = ADDR_UNSET,
1970 .radio_addr = ADDR_UNSET,
1971 .gpiomask = 0x0700,
1972 .inputs = {{
1973 .name = name_tv,
1974 .vmux = 1,
1975 .amux = TV,
1976 .tv = 1,
1977 .gpio = 0x000,
1978 },{
1979 .name = name_comp1,
1980 .vmux = 3,
1981 .amux = LINE1,
1982 .gpio = 0x200, /* gpio by DScaler */
1983 },{
1984 .name = name_svideo,
1985 .vmux = 0,
1986 .amux = LINE1,
1987 .gpio = 0x200,
1988 }},
1989 .radio = {
1990 .name = name_radio,
1991 .amux = LINE1,
1992 .gpio = 0x100,
1993 },
1994 .mute = {
1995 .name = name_mute,
1996 .amux = TV,
1997 .gpio = 0x000,
1998 },
1999 },
Peter Missel10b7a902006-01-23 17:11:06 -02002000 [SAA7134_BOARD_FLYDVBT_DUO_CARDBUS] = {
Hartmut Hackmann2c591942006-08-07 14:03:32 -03002001 .name = "LifeView/Typhoon/Genius FlyDVB-T Duo Cardbus",
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07002002 .audio_clock = 0x00200000,
2003 .tuner_type = TUNER_PHILIPS_TDA8290,
2004 .radio_type = UNSET,
2005 .tuner_addr = ADDR_UNSET,
2006 .radio_addr = ADDR_UNSET,
2007 .mpeg = SAA7134_MPEG_DVB,
Peter Missel10b7a902006-01-23 17:11:06 -02002008 .gpiomask = 0x00200000,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07002009 .inputs = {{
2010 .name = name_tv,
2011 .vmux = 1,
2012 .amux = TV,
Peter Missel10b7a902006-01-23 17:11:06 -02002013 .gpio = 0x200000, /* GPIO21=High for TV input */
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07002014 .tv = 1,
2015 },{
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07002016 .name = name_svideo, /* S-Video signal on S-Video input */
2017 .vmux = 8,
2018 .amux = LINE2,
Peter Missel10b7a902006-01-23 17:11:06 -02002019 },{
2020 .name = name_comp1, /* Composite signal on S-Video input */
2021 .vmux = 0,
2022 .amux = LINE2,
2023 },{
2024 .name = name_comp2, /* Composite input */
2025 .vmux = 3,
2026 .amux = LINE2,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07002027 }},
2028 .radio = {
2029 .name = name_radio,
Peter Missel10b7a902006-01-23 17:11:06 -02002030 .amux = TV,
2031 .gpio = 0x000000, /* GPIO21=Low for FM radio antenna */
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07002032 },
2033 },
2034 [SAA7134_BOARD_VIDEOMATE_TV_GOLD_PLUSII] = {
2035 .name = "Compro VideoMate TV Gold+II",
2036 .audio_clock = 0x002187de7,
2037 .tuner_type = TUNER_LG_PAL_NEW_TAPC,
2038 .radio_type = TUNER_TEA5767,
2039 .tuner_addr = 0x63,
2040 .radio_addr = 0x60,
2041 .gpiomask = 0x8c1880,
2042 .inputs = {{
2043 .name = name_svideo,
2044 .vmux = 0,
2045 .amux = LINE1,
2046 .gpio = 0x800800,
2047 },{
2048 .name = name_comp1,
2049 .vmux = 3,
2050 .amux = LINE1,
2051 .gpio = 0x801000,
2052 },{
2053 .name = name_tv,
2054 .vmux = 1,
2055 .amux = TV,
2056 .tv = 1,
2057 .gpio = 0x800000,
2058 }},
2059 .radio = {
2060 .name = name_radio,
2061 .amux = TV,
2062 .gpio = 0x880000,
2063 },
2064 .mute = {
2065 .name = name_mute,
2066 .amux = LINE2,
2067 .gpio = 0x840000,
2068 },
2069 },
2070 [SAA7134_BOARD_KWORLD_XPERT] = {
2071 /*
2072 FIXME:
2073 - Remote control doesn't initialize properly.
2074 - Audio volume starts muted,
2075 then gradually increases after channel change.
2076 - Overlay scaling problems (application error?)
2077 - Composite S-Video untested.
2078 From: Konrad Rzepecki <hannibal@megapolis.pl>
2079 */
2080 .name = "Kworld Xpert TV PVR7134",
2081 .audio_clock = 0x00187de7,
2082 .tuner_type = TUNER_TENA_9533_DI,
2083 .radio_type = TUNER_TEA5767,
2084 .tuner_addr = 0x61,
2085 .radio_addr = 0x60,
2086 .gpiomask = 0x0700,
2087 .inputs = {{
2088 .name = name_tv,
2089 .vmux = 1,
2090 .amux = TV,
2091 .tv = 1,
2092 .gpio = 0x000,
2093 },{
2094 .name = name_comp1,
2095 .vmux = 3,
2096 .amux = LINE1,
2097 .gpio = 0x200, /* gpio by DScaler */
2098 },{
2099 .name = name_svideo,
2100 .vmux = 0,
2101 .amux = LINE1,
2102 .gpio = 0x200,
2103 }},
2104 .radio = {
2105 .name = name_radio,
2106 .amux = LINE1,
2107 .gpio = 0x100,
2108 },
2109 .mute = {
2110 .name = name_mute,
2111 .amux = TV,
2112 .gpio = 0x000,
2113 },
2114 },
Mauro Carvalho Chehab2f180712005-09-09 13:03:46 -07002115 [SAA7134_BOARD_FLYTV_DIGIMATRIX] = {
2116 .name = "FlyTV mini Asus Digimatrix",
2117 .audio_clock = 0x00200000,
Michael Krufkyf3629be2006-03-11 17:02:01 -03002118 .tuner_type = TUNER_LG_TALN,
Mauro Carvalho Chehab2f180712005-09-09 13:03:46 -07002119 .radio_type = UNSET,
2120 .tuner_addr = ADDR_UNSET,
2121 .radio_addr = ADDR_UNSET,
2122 .inputs = {{
2123 .name = name_tv,
2124 .vmux = 1,
2125 .amux = TV,
2126 .tv = 1,
2127 },{
2128 .name = name_tv_mono,
2129 .vmux = 1,
2130 .amux = LINE2,
2131 .tv = 1,
2132 },{
2133 .name = name_comp1,
2134 .vmux = 0,
2135 .amux = LINE2,
2136 },{
2137 .name = name_comp2,
2138 .vmux = 3,
2139 .amux = LINE2,
2140 },{
2141 .name = name_svideo,
2142 .vmux = 8,
2143 .amux = LINE2,
2144 }},
2145 .radio = {
2146 .name = name_radio, /* radio unconfirmed */
2147 .amux = LINE2,
2148 },
2149 },
Mauro Carvalho Chehab260784d2005-09-09 13:03:49 -07002150 [SAA7134_BOARD_KWORLD_TERMINATOR] = {
2151 /* Kworld V-Stream Studio TV Terminator */
2152 /* "James Webb <jrwebb@qwest.net> */
2153 .name = "V-Stream Studio TV Terminator",
2154 .audio_clock = 0x00187de7,
2155 .tuner_type = TUNER_PHILIPS_TDA8290,
2156 .radio_type = UNSET,
2157 .tuner_addr = ADDR_UNSET,
2158 .radio_addr = ADDR_UNSET,
2159 .gpiomask = 1 << 21,
2160 .inputs = {{
2161 .name = name_tv,
2162 .vmux = 1,
2163 .amux = TV,
2164 .gpio = 0x0000000,
2165 .tv = 1,
2166 },{
2167 .name = name_comp1, /* Composite input */
2168 .vmux = 3,
2169 .amux = LINE2,
2170 .gpio = 0x0000000,
2171 },{
2172 .name = name_svideo, /* S-Video input */
2173 .vmux = 8,
2174 .amux = LINE2,
2175 .gpio = 0x0000000,
2176 }},
2177 .radio = {
2178 .name = name_radio,
2179 .amux = TV,
2180 .gpio = 0x0200000,
2181 },
2182 },
Mauro Carvalho Chehab4279f022005-09-09 13:03:51 -07002183 [SAA7134_BOARD_YUAN_TUN900] = {
2184 /* FIXME:
2185 * S-Video and composite sources untested.
2186 * Radio not working.
2187 * Remote control not yet implemented.
2188 * From : codemaster@webgeeks.be */
2189 .name = "Yuan TUN-900 (saa7135)",
2190 .audio_clock = 0x00187de7,
2191 .tuner_type = TUNER_PHILIPS_TDA8290,
2192 .radio_type = UNSET,
2193 .tuner_addr= ADDR_UNSET,
2194 .radio_addr= ADDR_UNSET,
2195 .gpiomask = 0x00010003,
2196 .inputs = {{
2197 .name = name_tv,
2198 .vmux = 1,
2199 .amux = TV,
2200 .tv = 1,
2201 .gpio = 0x01,
2202 },{
2203 .name = name_comp1,
2204 .vmux = 0,
2205 .amux = LINE2,
2206 .gpio = 0x02,
2207 },{
2208 .name = name_svideo,
2209 .vmux = 6,
2210 .amux = LINE2,
2211 .gpio = 0x02,
2212 }},
2213 .radio = {
2214 .name = name_radio,
2215 .amux = LINE1,
2216 .gpio = 0x00010003,
2217 },
2218 .mute = {
2219 .name = name_mute,
2220 .amux = TV,
2221 .gpio = 0x01,
2222 },
2223 },
Nickolay V. Shmyreva8ff4172005-11-08 21:36:16 -08002224 [SAA7134_BOARD_BEHOLD_409FM] = {
Mauro Carvalho Chehab4ac97912005-11-08 21:37:43 -08002225 /* <http://tuner.beholder.ru>, Sergey <skiv@orel.ru> */
Dmitry Belimovb34dddb2008-04-23 14:09:08 -03002226 /* Beholder Intl. Ltd. 2008 */
2227 /*Dmitry Belimov <d.belimov@gmail.com> */
Mauro Carvalho Chehab4ac97912005-11-08 21:37:43 -08002228 .name = "Beholder BeholdTV 409 FM",
2229 .audio_clock = 0x00187de7,
2230 .tuner_type = TUNER_PHILIPS_FM1216ME_MK3,
2231 .radio_type = UNSET,
2232 .tuner_addr = ADDR_UNSET,
2233 .radio_addr = ADDR_UNSET,
2234 .tda9887_conf = TDA9887_PRESENT,
Dmitry Belimovb34dddb2008-04-23 14:09:08 -03002235 .gpiomask = 0x00008000,
Mauro Carvalho Chehab4ac97912005-11-08 21:37:43 -08002236 .inputs = {{
2237 .name = name_tv,
Nickolay V. Shmyreva8ff4172005-11-08 21:36:16 -08002238 .vmux = 3,
2239 .amux = TV,
2240 .tv = 1,
2241 },{
2242 .name = name_comp1,
2243 .vmux = 1,
2244 .amux = LINE1,
Mauro Carvalho Chehab4ac97912005-11-08 21:37:43 -08002245 },{
2246 .name = name_svideo,
Nickolay V. Shmyreva8ff4172005-11-08 21:36:16 -08002247 .vmux = 8,
2248 .amux = LINE1,
Mauro Carvalho Chehab4ac97912005-11-08 21:37:43 -08002249 }},
2250 .radio = {
2251 .name = name_radio,
Nickolay V. Shmyreva8ff4172005-11-08 21:36:16 -08002252 .amux = LINE2,
Trent Piepho657de3c2006-06-20 00:30:57 -03002253 },
Mauro Carvalho Chehab4ac97912005-11-08 21:37:43 -08002254 },
2255 [SAA7134_BOARD_GOTVIEW_7135] = {
Nickolay V. Shmyrevdcd555e2005-11-08 21:36:23 -08002256 /* Mike Baikov <mike@baikov.com> */
Nickolay V. Shmyrev6b961442005-11-08 21:36:22 -08002257 /* Andrey Cvetcov <ays14@yandex.ru> */
Mauro Carvalho Chehab4ac97912005-11-08 21:37:43 -08002258 .name = "GoTView 7135 PCI",
2259 .audio_clock = 0x00187de7,
2260 .tuner_type = TUNER_PHILIPS_FM1216ME_MK3,
2261 .radio_type = UNSET,
2262 .tuner_addr = ADDR_UNSET,
2263 .radio_addr = ADDR_UNSET,
2264 .tda9887_conf = TDA9887_PRESENT,
2265 .gpiomask = 0x00200003,
2266 .inputs = {{
2267 .name = name_tv,
2268 .vmux = 1,
2269 .amux = TV,
2270 .tv = 1,
2271 .gpio = 0x00200003,
2272 },{
2273 .name = name_tv_mono,
2274 .vmux = 1,
2275 .amux = LINE2,
2276 .gpio = 0x00200003,
2277 },{
2278 .name = name_comp1,
2279 .vmux = 3,
2280 .amux = LINE1,
2281 .gpio = 0x00200003,
2282 },{
2283 .name = name_svideo,
2284 .vmux = 8,
2285 .amux = LINE1,
2286 .gpio = 0x00200003,
2287 }},
2288 .radio = {
2289 .name = name_radio,
2290 .amux = LINE2,
2291 .gpio = 0x00200003,
2292 },
2293 .mute = {
2294 .name = name_mute,
2295 .amux = TV,
2296 .gpio = 0x00200003,
2297 },
2298 },
Hartmut Hackmann2cf36ac2005-11-08 21:36:32 -08002299 [SAA7134_BOARD_PHILIPS_EUROPA] = {
2300 .name = "Philips EUROPA V3 reference design",
2301 .audio_clock = 0x00187de7,
2302 .tuner_type = TUNER_PHILIPS_TD1316,
2303 .radio_type = UNSET,
2304 .tuner_addr = 0x61,
2305 .radio_addr = ADDR_UNSET,
Hartmut Hackmann44fd06f2006-02-27 00:09:11 -03002306 .tda9887_conf = TDA9887_PRESENT | TDA9887_PORT1_ACTIVE,
Hartmut Hackmann2cf36ac2005-11-08 21:36:32 -08002307 .mpeg = SAA7134_MPEG_DVB,
2308 .inputs = {{
2309 .name = name_tv,
2310 .vmux = 3,
2311 .amux = TV,
2312 .tv = 1,
2313 },{
2314 .name = name_comp1,
2315 .vmux = 0,
2316 .amux = LINE2,
2317 },{
2318 .name = name_svideo,
2319 .vmux = 8,
2320 .amux = LINE2,
2321 }},
2322 },
2323 [SAA7134_BOARD_VIDEOMATE_DVBT_300] = {
2324 .name = "Compro Videomate DVB-T300",
2325 .audio_clock = 0x00187de7,
2326 .tuner_type = TUNER_PHILIPS_TD1316,
2327 .radio_type = UNSET,
2328 .tuner_addr = 0x61,
2329 .radio_addr = ADDR_UNSET,
Hartmut Hackmann44fd06f2006-02-27 00:09:11 -03002330 .tda9887_conf = TDA9887_PRESENT | TDA9887_PORT1_ACTIVE,
Hartmut Hackmann2cf36ac2005-11-08 21:36:32 -08002331 .mpeg = SAA7134_MPEG_DVB,
2332 .inputs = {{
2333 .name = name_tv,
2334 .vmux = 3,
2335 .amux = TV,
2336 .tv = 1,
2337 },{
2338 .name = name_comp1,
2339 .vmux = 1,
2340 .amux = LINE2,
2341 },{
2342 .name = name_svideo,
2343 .vmux = 8,
2344 .amux = LINE2,
2345 }},
2346 },
2347 [SAA7134_BOARD_VIDEOMATE_DVBT_200] = {
2348 .name = "Compro Videomate DVB-T200",
2349 .tuner_type = TUNER_ABSENT,
2350 .audio_clock = 0x00187de7,
2351 .radio_type = UNSET,
2352 .tuner_addr = ADDR_UNSET,
2353 .radio_addr = ADDR_UNSET,
2354 .mpeg = SAA7134_MPEG_DVB,
2355 .inputs = {{
2356 .name = name_comp1,
2357 .vmux = 0,
2358 .amux = LINE1,
2359 },{
2360 .name = name_svideo,
2361 .vmux = 8,
2362 .amux = LINE1,
2363 }},
2364 },
Mauro Carvalho Chehab4ac97912005-11-08 21:37:43 -08002365 [SAA7134_BOARD_RTD_VFG7350] = {
2366 .name = "RTD Embedded Technologies VFG7350",
2367 .audio_clock = 0x00200000,
2368 .tuner_type = TUNER_ABSENT,
2369 .radio_type = UNSET,
2370 .tuner_addr = ADDR_UNSET,
2371 .radio_addr = ADDR_UNSET,
Hans Verkuil195784b2009-03-28 09:27:02 -03002372 .empress_addr = 0x21,
Mauro Carvalho Chehab4ac97912005-11-08 21:37:43 -08002373 .inputs = {{
2374 .name = "Composite 0",
2375 .vmux = 0,
2376 .amux = LINE1,
2377 },{
2378 .name = "Composite 1",
2379 .vmux = 1,
2380 .amux = LINE2,
2381 },{
2382 .name = "Composite 2",
2383 .vmux = 2,
2384 .amux = LINE1,
2385 },{
2386 .name = "Composite 3",
2387 .vmux = 3,
2388 .amux = LINE2,
2389 },{
2390 .name = "S-Video 0",
2391 .vmux = 8,
2392 .amux = LINE1,
2393 },{
2394 .name = "S-Video 1",
2395 .vmux = 9,
2396 .amux = LINE2,
2397 }},
2398 .mpeg = SAA7134_MPEG_EMPRESS,
2399 .video_out = CCIR656,
Robert W. Boone2f8d4f52005-11-08 21:37:10 -08002400 .vid_port_opts = ( SET_T_CODE_POLARITY_NON_INVERTED |
2401 SET_CLOCK_NOT_DELAYED |
2402 SET_CLOCK_INVERTED |
2403 SET_VSYNC_OFF ),
Mauro Carvalho Chehab4ac97912005-11-08 21:37:43 -08002404 },
2405 [SAA7134_BOARD_RTD_VFG7330] = {
2406 .name = "RTD Embedded Technologies VFG7330",
2407 .audio_clock = 0x00200000,
2408 .tuner_type = TUNER_ABSENT,
2409 .radio_type = UNSET,
2410 .tuner_addr = ADDR_UNSET,
2411 .radio_addr = ADDR_UNSET,
2412 .inputs = {{
2413 .name = "Composite 0",
2414 .vmux = 0,
2415 .amux = LINE1,
2416 },{
2417 .name = "Composite 1",
2418 .vmux = 1,
2419 .amux = LINE2,
2420 },{
2421 .name = "Composite 2",
2422 .vmux = 2,
2423 .amux = LINE1,
2424 },{
2425 .name = "Composite 3",
2426 .vmux = 3,
2427 .amux = LINE2,
2428 },{
2429 .name = "S-Video 0",
2430 .vmux = 8,
2431 .amux = LINE1,
2432 },{
2433 .name = "S-Video 1",
2434 .vmux = 9,
2435 .amux = LINE2,
2436 }},
2437 },
Mauro Carvalho Chehab058afaf2005-11-08 21:36:49 -08002438 [SAA7134_BOARD_FLYTVPLATINUM_MINI2] = {
2439 .name = "LifeView FlyTV Platinum Mini2",
2440 .audio_clock = 0x00200000,
2441 .tuner_type = TUNER_PHILIPS_TDA8290,
2442 .radio_type = UNSET,
2443 .tuner_addr = ADDR_UNSET,
2444 .radio_addr = ADDR_UNSET,
2445
2446 .inputs = {{
2447 .name = name_tv,
2448 .vmux = 1,
2449 .amux = TV,
2450 .tv = 1,
2451 },{
2452 .name = name_comp1, /* Composite signal on S-Video input */
2453 .vmux = 0,
2454 .amux = LINE2,
2455 },{
2456 .name = name_comp2, /* Composite input */
2457 .vmux = 3,
2458 .amux = LINE2,
2459 },{
2460 .name = name_svideo,
2461 .vmux = 8,
2462 .amux = LINE2,
2463 }},
2464 },
Michael Krufky76bc3a32005-11-08 21:37:27 -08002465 [SAA7134_BOARD_AVERMEDIA_AVERTVHD_A180] = {
Michael Krufkyac113d12005-11-08 21:38:21 -08002466 /* Michael Krufky <mkrufky@m1k.net>
2467 * Uses Alps Electric TDHU2, containing NXT2004 ATSC Decoder
2468 * AFAIK, there is no analog demod, thus,
2469 * no support for analog television.
2470 */
Michael Krufky76bc3a32005-11-08 21:37:27 -08002471 .name = "AVerMedia AVerTVHD MCE A180",
2472 .audio_clock = 0x00187de7,
2473 .tuner_type = TUNER_ABSENT,
2474 .radio_type = UNSET,
2475 .tuner_addr = ADDR_UNSET,
2476 .radio_addr = ADDR_UNSET,
Michael Krufky3b64e8e2005-11-08 21:38:20 -08002477 .mpeg = SAA7134_MPEG_DVB,
Michael Krufky76bc3a32005-11-08 21:37:27 -08002478 .inputs = {{
2479 .name = name_comp1,
2480 .vmux = 3,
2481 .amux = LINE2,
2482 },{
2483 .name = name_svideo,
2484 .vmux = 8,
2485 .amux = LINE2,
2486 }},
2487 },
Pieter Palmerscf1c5d12005-11-08 21:37:40 -08002488 [SAA7134_BOARD_MONSTERTV_MOBILE] = {
2489 .name = "SKNet MonsterTV Mobile",
2490 .audio_clock = 0x00187de7,
2491 .tuner_type = TUNER_PHILIPS_TDA8290,
2492 .radio_type = UNSET,
2493 .tuner_addr = ADDR_UNSET,
2494 .radio_addr = ADDR_UNSET,
2495
2496 .inputs = {{
2497 .name = name_tv,
2498 .vmux = 1,
2499 .amux = TV,
2500 .tv = 1,
2501 },{
2502 .name = name_comp1,
2503 .vmux = 3,
2504 .amux = LINE1,
2505 },{
2506 .name = name_svideo,
2507 .vmux = 6,
2508 .amux = LINE1,
2509 }},
2510 },
Ricardo Cerqueirac2f6f9d2005-11-08 21:37:51 -08002511 [SAA7134_BOARD_PINNACLE_PCTV_110i] = {
Karsten Suehringcb46e3c2006-02-27 00:08:08 -03002512 .name = "Pinnacle PCTV 40i/50i/110i (saa7133)",
Ricardo Cerqueirac2f6f9d2005-11-08 21:37:51 -08002513 .audio_clock = 0x00187de7,
2514 .tuner_type = TUNER_PHILIPS_TDA8290,
2515 .radio_type = UNSET,
2516 .tuner_addr = ADDR_UNSET,
2517 .radio_addr = ADDR_UNSET,
2518 .gpiomask = 0x080200000,
Yuri Funduryaneec25fa2008-02-17 01:22:37 -03002519 .inputs = { {
2520 .name = name_tv,
2521 .vmux = 4,
2522 .amux = TV,
2523 .tv = 1,
2524 }, {
2525 .name = name_comp1,
2526 .vmux = 1,
2527 .amux = LINE2,
2528 }, {
2529 .name = name_comp2,
2530 .vmux = 0,
2531 .amux = LINE2,
2532 }, {
2533 .name = name_svideo,
2534 .vmux = 8,
2535 .amux = LINE2,
2536 } },
Ricardo Cerqueirac2f6f9d2005-11-08 21:37:51 -08002537 .radio = {
Yuri Funduryaneec25fa2008-02-17 01:22:37 -03002538 .name = name_radio,
2539 .amux = TV,
2540 .gpio = 0x0200000,
Ricardo Cerqueirac2f6f9d2005-11-08 21:37:51 -08002541 },
2542 },
Hermann Pitton28f02242005-11-08 21:38:03 -08002543 [SAA7134_BOARD_ASUSTeK_P7131_DUAL] = {
2544 .name = "ASUSTeK P7131 Dual",
2545 .audio_clock = 0x00187de7,
2546 .tuner_type = TUNER_PHILIPS_TDA8290,
2547 .radio_type = UNSET,
2548 .tuner_addr = ADDR_UNSET,
2549 .radio_addr = ADDR_UNSET,
2550 .gpiomask = 1 << 21,
Hartmut Hackmannd4b0aba2005-11-08 21:38:44 -08002551 .mpeg = SAA7134_MPEG_DVB,
Hermann Pitton28f02242005-11-08 21:38:03 -08002552 .inputs = {{
2553 .name = name_tv,
2554 .vmux = 1,
2555 .amux = TV,
2556 .tv = 1,
Hartmut Hackmann83646812006-10-12 20:38:51 -03002557 .gpio = 0x0000000,
Hermann Pitton28f02242005-11-08 21:38:03 -08002558 },{
2559 .name = name_comp1,
2560 .vmux = 3,
2561 .amux = LINE2,
Hartmut Hackmann83646812006-10-12 20:38:51 -03002562 .gpio = 0x0200000,
Hermann Pitton28f02242005-11-08 21:38:03 -08002563 },{
Hermann Pitton8387c662006-12-10 21:08:03 -03002564 .name = name_comp2,
2565 .vmux = 0,
2566 .amux = LINE2,
2567 .gpio = 0x0200000,
2568 },{
Hermann Pitton28f02242005-11-08 21:38:03 -08002569 .name = name_svideo,
2570 .vmux = 8,
2571 .amux = LINE2,
Hartmut Hackmann83646812006-10-12 20:38:51 -03002572 .gpio = 0x0200000,
Hermann Pitton28f02242005-11-08 21:38:03 -08002573 }},
2574 .radio = {
2575 .name = name_radio,
2576 .amux = TV,
2577 .gpio = 0x0200000,
2578 },
2579 },
Ricardo Cerqueira17ce1ff2005-11-08 21:38:47 -08002580 [SAA7134_BOARD_SEDNA_PC_TV_CARDBUS] = {
Paul T Zalacfe2e36c2005-11-08 21:38:04 -08002581 /* Paul Tom Zalac <pzalac@gmail.com> */
Pavel Mihaylovc3d93192005-11-08 21:38:43 -08002582 /* Pavel Mihaylov <bin@bash.info> */
Ricardo Cerqueira17ce1ff2005-11-08 21:38:47 -08002583 .name = "Sedna/MuchTV PC TV Cardbus TV/Radio (ITO25 Rev:2B)",
2584 /* Sedna/MuchTV (OEM) Cardbus TV Tuner */
Paul T Zalacfe2e36c2005-11-08 21:38:04 -08002585 .audio_clock = 0x00187de7,
Pavel Mihaylovc3d93192005-11-08 21:38:43 -08002586 .tuner_type = TUNER_PHILIPS_TDA8290,
Paul T Zalacfe2e36c2005-11-08 21:38:04 -08002587 .radio_type = UNSET,
2588 .tuner_addr = ADDR_UNSET,
2589 .radio_addr = ADDR_UNSET,
Pavel Mihaylovc3d93192005-11-08 21:38:43 -08002590 .gpiomask = 0xe880c0,
Paul T Zalacfe2e36c2005-11-08 21:38:04 -08002591 .inputs = {{
Pavel Mihaylovc3d93192005-11-08 21:38:43 -08002592 .name = name_tv,
2593 .vmux = 3,
2594 .amux = TV,
2595 .tv = 1,
2596 },{
Paul T Zalacfe2e36c2005-11-08 21:38:04 -08002597 .name = name_comp1,
2598 .vmux = 1,
Pavel Mihaylovc3d93192005-11-08 21:38:43 -08002599 .amux = LINE1,
2600 },{
2601 .name = name_svideo,
2602 .vmux = 6,
2603 .amux = LINE1,
Paul T Zalacfe2e36c2005-11-08 21:38:04 -08002604 }},
Pavel Mihaylovc3d93192005-11-08 21:38:43 -08002605 .radio = {
2606 .name = name_radio,
2607 .amux = LINE2,
2608 },
Paul T Zalacfe2e36c2005-11-08 21:38:04 -08002609 },
Michael Krufky5d5c9902005-11-08 21:38:08 -08002610 [SAA7134_BOARD_ASUSTEK_DIGIMATRIX_TV] = {
2611 /* "Cyril Lacoux (Yack)" <clacoux@ifeelgood.org> */
2612 .name = "ASUS Digimatrix TV",
2613 .audio_clock = 0x00200000,
2614 .tuner_type = TUNER_PHILIPS_FQ1216ME,
2615 .tda9887_conf = TDA9887_PRESENT,
2616 .radio_type = UNSET,
2617 .tuner_addr = ADDR_UNSET,
2618 .radio_addr = ADDR_UNSET,
2619 .inputs = {{
2620 .name = name_tv,
2621 .vmux = 1,
2622 .amux = TV,
2623 .tv = 1,
2624 },{
2625 .name = name_comp1,
2626 .vmux = 3,
2627 .amux = LINE1,
2628 },{
2629 .name = name_svideo,
2630 .vmux = 8,
2631 .amux = LINE1,
2632 }},
2633 },
Hartmut Hackmann90e9df72005-11-08 21:38:42 -08002634 [SAA7134_BOARD_PHILIPS_TIGER] = {
2635 .name = "Philips Tiger reference design",
2636 .audio_clock = 0x00187de7,
2637 .tuner_type = TUNER_PHILIPS_TDA8290,
2638 .radio_type = UNSET,
2639 .tuner_addr = ADDR_UNSET,
2640 .radio_addr = ADDR_UNSET,
Hartmut Hackmann58ef4f92007-04-27 12:31:12 -03002641 .tuner_config = 0,
Hartmut Hackmann90e9df72005-11-08 21:38:42 -08002642 .mpeg = SAA7134_MPEG_DVB,
Hartmut Hackmannde956c12007-04-27 12:31:12 -03002643 .gpiomask = 0x0200000,
Hartmut Hackmann90e9df72005-11-08 21:38:42 -08002644 .inputs = {{
2645 .name = name_tv,
2646 .vmux = 1,
2647 .amux = TV,
2648 .tv = 1,
2649 },{
2650 .name = name_comp1,
2651 .vmux = 3,
2652 .amux = LINE1,
2653 },{
2654 .name = name_svideo,
2655 .vmux = 8,
2656 .amux = LINE1,
2657 }},
Hartmut Hackmann0f79c362006-01-14 21:26:44 -02002658 .radio = {
2659 .name = name_radio,
2660 .amux = TV,
2661 .gpio = 0x0200000,
2662 },
Hartmut Hackmann90e9df72005-11-08 21:38:42 -08002663 },
Ricardo Cerqueira80d2ad92005-11-13 16:08:01 -08002664 [SAA7134_BOARD_MSI_TVATANYWHERE_PLUS] = {
2665 .name = "MSI TV@Anywhere plus",
2666 .audio_clock = 0x00187de7,
2667 .tuner_type = TUNER_PHILIPS_TDA8290,
2668 .radio_type = UNSET,
2669 .tuner_addr = ADDR_UNSET,
2670 .radio_addr = ADDR_UNSET,
hermann pittone382f622007-01-07 21:19:48 -03002671 .gpiomask = 1 << 21,
Ricardo Cerqueira80d2ad92005-11-13 16:08:01 -08002672 .inputs = {{
2673 .name = name_tv,
2674 .vmux = 1,
2675 .amux = TV,
2676 .tv = 1,
2677 },{
2678 .name = name_comp1,
2679 .vmux = 3,
hermann pittone382f622007-01-07 21:19:48 -03002680 .amux = LINE2, /* unconfirmed, taken from Philips driver */
2681 },{
2682 .name = name_comp2,
2683 .vmux = 0, /* untested, Composite over S-Video */
2684 .amux = LINE2,
Ricardo Cerqueira80d2ad92005-11-13 16:08:01 -08002685 },{
2686 .name = name_svideo,
hermann pittone382f622007-01-07 21:19:48 -03002687 .vmux = 8,
2688 .amux = LINE2,
Ricardo Cerqueira80d2ad92005-11-13 16:08:01 -08002689 }},
2690 .radio = {
2691 .name = name_radio,
hermann pittone382f622007-01-07 21:19:48 -03002692 .amux = TV,
2693 .gpio = 0x0200000,
Ricardo Cerqueira80d2ad92005-11-13 16:08:01 -08002694 },
2695 },
Jörg Schummerf639c9b2006-01-09 15:25:01 -02002696 [SAA7134_BOARD_CINERGY250PCI] = {
2697 /* remote-control does not work. The signal about a
2698 key press comes in via gpio, but the key code
2699 doesn't. Neither does it have an i2c remote control
2700 interface. */
2701 .name = "Terratec Cinergy 250 PCI TV",
2702 .audio_clock = 0x00187de7,
2703 .tuner_type = TUNER_PHILIPS_TDA8290,
2704 .radio_type = UNSET,
2705 .tuner_addr = ADDR_UNSET,
2706 .radio_addr = ADDR_UNSET,
2707 .gpiomask = 0x80200000,
2708 .inputs = {{
2709 .name = name_tv,
2710 .vmux = 1,
2711 .amux = TV,
2712 .tv = 1,
2713 },{
2714 .name = name_svideo, /* NOT tested */
2715 .vmux = 8,
2716 .amux = LINE1,
2717 }},
2718 .radio = {
2719 .name = name_radio,
Hartmut Hackmann58ef4f92007-04-27 12:31:12 -03002720 .amux = TV,
Jörg Schummerf639c9b2006-01-09 15:25:01 -02002721 .gpio = 0x0200000,
2722 },
2723 },
Peter Missel4aa6ba52006-01-09 15:32:45 -02002724 [SAA7134_BOARD_FLYDVB_TRIO] = {
2725 /* LifeView LR319 FlyDVB Trio */
2726 /* Peter Missel <peter.missel@onlinehome.de> */
2727 .name = "LifeView FlyDVB Trio",
2728 .audio_clock = 0x00200000,
2729 .tuner_type = TUNER_PHILIPS_TDA8290,
2730 .radio_type = UNSET,
2731 .tuner_addr = ADDR_UNSET,
2732 .radio_addr = ADDR_UNSET,
2733 .gpiomask = 0x00200000,
Hartmut Hackmann293cdab2006-02-27 21:08:07 -03002734 .mpeg = SAA7134_MPEG_DVB,
Peter Missel4aa6ba52006-01-09 15:32:45 -02002735 .inputs = {{
2736 .name = name_tv, /* Analog broadcast/cable TV */
2737 .vmux = 1,
2738 .amux = TV,
2739 .gpio = 0x200000, /* GPIO21=High for TV input */
2740 .tv = 1,
2741 },{
2742 .name = name_svideo, /* S-Video signal on S-Video input */
2743 .vmux = 8,
2744 .amux = LINE2,
2745 },{
2746 .name = name_comp1, /* Composite signal on S-Video input */
2747 .vmux = 0,
2748 .amux = LINE2,
2749 },{
2750 .name = name_comp2, /* Composite input */
2751 .vmux = 3,
2752 .amux = LINE2,
2753 }},
2754 .radio = {
2755 .name = name_radio,
2756 .amux = TV,
2757 .gpio = 0x000000, /* GPIO21=Low for FM radio antenna */
2758 },
2759 },
Jose Alberto Regueroa78d0bf2006-02-07 06:25:14 -02002760 [SAA7134_BOARD_AVERMEDIA_777] = {
2761 .name = "AverTV DVB-T 777",
2762 .audio_clock = 0x00187de7,
2763 .tuner_type = TUNER_ABSENT,
2764 .radio_type = UNSET,
2765 .tuner_addr = ADDR_UNSET,
2766 .radio_addr = ADDR_UNSET,
2767 .mpeg = SAA7134_MPEG_DVB,
2768 .inputs = {{
2769 .name = name_comp1,
Hartmut Hackmann2174eb92006-03-27 19:15:47 -03002770 .vmux = 1,
Jose Alberto Regueroa78d0bf2006-02-07 06:25:14 -02002771 .amux = LINE1,
2772 },{
2773 .name = name_svideo,
2774 .vmux = 8,
2775 .amux = LINE1,
2776 }},
2777 },
Giampiero Giancipoli3d8466e2006-02-07 06:49:09 -02002778 [SAA7134_BOARD_FLYDVBT_LR301] = {
2779 /* LifeView FlyDVB-T */
2780 /* Giampiero Giancipoli <gianci@libero.it> */
Hartmut Hackmann42e6b3b2006-03-27 19:04:48 -03002781 .name = "LifeView FlyDVB-T / Genius VideoWonder DVB-T",
Giampiero Giancipoli3d8466e2006-02-07 06:49:09 -02002782 .audio_clock = 0x00200000,
2783 .tuner_type = TUNER_ABSENT,
2784 .radio_type = UNSET,
2785 .tuner_addr = ADDR_UNSET,
2786 .radio_addr = ADDR_UNSET,
2787 .mpeg = SAA7134_MPEG_DVB,
2788 .inputs = {{
2789 .name = name_comp1, /* Composite input */
2790 .vmux = 3,
2791 .amux = LINE2,
2792 },{
2793 .name = name_svideo, /* S-Video signal on S-Video input */
2794 .vmux = 8,
2795 .amux = LINE2,
2796 }},
2797 },
Hartmut Hackmanndf42eaf2006-02-07 06:49:10 -02002798 [SAA7134_BOARD_ADS_DUO_CARDBUS_PTV331] = {
2799 .name = "ADS Instant TV Duo Cardbus PTV331",
2800 .audio_clock = 0x00200000,
2801 .tuner_type = TUNER_PHILIPS_TDA8290,
2802 .radio_type = UNSET,
2803 .tuner_addr = ADDR_UNSET,
2804 .radio_addr = ADDR_UNSET,
2805 .mpeg = SAA7134_MPEG_DVB,
2806 .gpiomask = 0x00600000, /* Bit 21 0=Radio, Bit 22 0=TV */
2807 .inputs = {{
2808 .name = name_tv,
2809 .vmux = 1,
2810 .amux = TV,
2811 .tv = 1,
2812 .gpio = 0x00200000,
2813 }},
2814 },
Peter Hartshorn3dfb7292006-02-07 06:49:13 -02002815 [SAA7134_BOARD_TEVION_DVBT_220RF] = {
Adrian Bunk793f2252006-03-08 10:50:06 -03002816 .name = "Tevion/KWorld DVB-T 220RF",
Peter Hartshorn3dfb7292006-02-07 06:49:13 -02002817 .audio_clock = 0x00187de7,
2818 .tuner_type = TUNER_PHILIPS_TDA8290,
2819 .radio_type = UNSET,
2820 .tuner_addr = ADDR_UNSET,
2821 .radio_addr = ADDR_UNSET,
2822 .mpeg = SAA7134_MPEG_DVB,
Simon Farnsworth289ea1f2007-09-10 13:37:26 -03002823 .gpiomask = 1 << 21,
Peter Hartshorn3dfb7292006-02-07 06:49:13 -02002824 .inputs = {{
2825 .name = name_tv,
2826 .vmux = 1,
2827 .amux = TV,
2828 .tv = 1,
2829 },{
2830 .name = name_comp1,
2831 .vmux = 3,
2832 .amux = LINE1,
2833 },{
Simon Farnsworth289ea1f2007-09-10 13:37:26 -03002834 .name = name_comp2,
Peter Hartshorn3dfb7292006-02-07 06:49:13 -02002835 .vmux = 0,
2836 .amux = LINE1,
Simon Farnsworth289ea1f2007-09-10 13:37:26 -03002837 },{
2838 .name = name_svideo,
2839 .vmux = 8,
2840 .amux = LINE1,
Peter Hartshorn3dfb7292006-02-07 06:49:13 -02002841 }},
2842 .radio = {
2843 .name = name_radio,
Simon Farnsworth289ea1f2007-09-10 13:37:26 -03002844 .amux = TV,
2845 .gpio = 0x0200000,
Peter Hartshorn3dfb7292006-02-07 06:49:13 -02002846 },
2847 },
Simon Farnsworthb39423a2007-05-01 10:01:20 -03002848 [SAA7134_BOARD_KWORLD_DVBT_210] = {
2849 .name = "KWorld DVB-T 210",
2850 .audio_clock = 0x00187de7,
2851 .tuner_type = TUNER_PHILIPS_TDA8290,
2852 .radio_type = UNSET,
2853 .tuner_addr = ADDR_UNSET,
2854 .radio_addr = ADDR_UNSET,
2855 .mpeg = SAA7134_MPEG_DVB,
2856 .gpiomask = 1 << 21,
2857 .inputs = {{
2858 .name = name_tv,
2859 .vmux = 1,
2860 .amux = TV,
2861 .tv = 1,
2862 },{
2863 .name = name_comp1,
2864 .vmux = 3,
2865 .amux = LINE1,
2866 },{
2867 .name = name_svideo,
2868 .vmux = 8,
2869 .amux = LINE1,
2870 }},
2871 .radio = {
2872 .name = name_radio,
2873 .amux = TV,
2874 .gpio = 0x0200000,
2875 },
2876 },
Andrew Burri3e1410a2006-02-27 00:08:23 -03002877 [SAA7134_BOARD_KWORLD_ATSC110] = {
Eric Sandeen0ac3a5b2007-10-08 16:13:02 -03002878 .name = "Kworld ATSC110/115",
Andrew Burri3e1410a2006-02-27 00:08:23 -03002879 .audio_clock = 0x00187de7,
2880 .tuner_type = TUNER_PHILIPS_TUV1236D,
2881 .radio_type = UNSET,
2882 .tuner_addr = ADDR_UNSET,
2883 .radio_addr = ADDR_UNSET,
2884 .tda9887_conf = TDA9887_PRESENT,
2885 .mpeg = SAA7134_MPEG_DVB,
2886 .inputs = {{
2887 .name = name_tv,
2888 .vmux = 1,
2889 .amux = TV,
2890 .tv = 1,
Curt Meyers6ba509d2006-02-27 00:08:32 -03002891 },{
2892 .name = name_comp1,
2893 .vmux = 3,
2894 .amux = LINE2,
2895 },{
2896 .name = name_svideo,
2897 .vmux = 8,
2898 .amux = LINE2,
Andrew Burri3e1410a2006-02-27 00:08:23 -03002899 }},
2900 },
Rickard Osser68593af2006-03-11 17:14:12 -03002901 [SAA7134_BOARD_AVERMEDIA_A169_B] = {
2902 /* AVerMedia A169 */
2903 /* Rickard Osser <ricky@osser.se> */
2904 /* This card has two saa7134 chips on it,
2905 but only one of them is currently working. */
2906 .name = "AVerMedia A169 B",
2907 .audio_clock = 0x02187de7,
2908 .tuner_type = TUNER_LG_TALN,
2909 .radio_type = UNSET,
2910 .tuner_addr = ADDR_UNSET,
2911 .radio_addr = ADDR_UNSET,
2912 .tda9887_conf = TDA9887_PRESENT,
2913 .gpiomask = 0x0a60000,
2914 },
2915 [SAA7134_BOARD_AVERMEDIA_A169_B1] = {
2916 /* AVerMedia A169 */
2917 /* Rickard Osser <ricky@osser.se> */
2918 .name = "AVerMedia A169 B1",
2919 .audio_clock = 0x02187de7,
2920 .tuner_type = TUNER_LG_TALN,
2921 .radio_type = UNSET,
2922 .tuner_addr = ADDR_UNSET,
2923 .radio_addr = ADDR_UNSET,
2924 .tda9887_conf = TDA9887_PRESENT,
2925 .gpiomask = 0xca60000,
2926 .inputs = {{
2927 .name = name_tv,
2928 .vmux = 4,
2929 .amux = TV,
2930 .tv = 1,
2931 .gpio = 0x04a61000,
2932 },{
2933 .name = name_comp2, /* Composite SVIDEO (B/W if signal is carried with SVIDEO) */
2934 .vmux = 1,
2935 .amux = LINE2,
2936 },{
2937 .name = name_svideo,
2938 .vmux = 9, /* 9 is correct as S-VIDEO1 according to a169.inf! */
2939 .amux = LINE1,
2940 }},
2941 },
Michael Krufkyba3a5a82006-03-14 19:02:12 -03002942 [SAA7134_BOARD_MD7134_BRIDGE_2] = {
Hartmut Hackmann637afdb2008-04-22 14:46:08 -03002943 /* The second saa7134 on this card only serves as DVB-S host bridge */
Michael Krufkyba3a5a82006-03-14 19:02:12 -03002944 .name = "Medion 7134 Bridge #2",
2945 .audio_clock = 0x00187de7,
2946 .radio_type = UNSET,
2947 .tuner_addr = ADDR_UNSET,
2948 .radio_addr = ADDR_UNSET,
Hartmut Hackmann637afdb2008-04-22 14:46:08 -03002949 .mpeg = SAA7134_MPEG_DVB,
Michael Krufkyba3a5a82006-03-14 19:02:12 -03002950 },
Hartmut Hackmannd95b8942006-03-27 19:39:30 -03002951 [SAA7134_BOARD_FLYDVBT_HYBRID_CARDBUS] = {
Mauro Carvalho Chehab593f18c2007-10-07 02:17:09 -03002952 .name = "LifeView FlyDVB-T Hybrid Cardbus/MSI TV @nywhere A/D NB",
Hartmut Hackmannd95b8942006-03-27 19:39:30 -03002953 .audio_clock = 0x00200000,
2954 .tuner_type = TUNER_PHILIPS_TDA8290,
2955 .radio_type = UNSET,
2956 .tuner_addr = ADDR_UNSET,
2957 .radio_addr = ADDR_UNSET,
2958 .mpeg = SAA7134_MPEG_DVB,
2959 .gpiomask = 0x00600000, /* Bit 21 0=Radio, Bit 22 0=TV */
2960 .inputs = {{
2961 .name = name_tv,
2962 .vmux = 1,
2963 .amux = TV,
2964 .gpio = 0x200000, /* GPIO21=High for TV input */
2965 .tv = 1,
2966 },{
2967 .name = name_svideo, /* S-Video signal on S-Video input */
2968 .vmux = 8,
2969 .amux = LINE2,
2970 },{
2971 .name = name_comp1, /* Composite signal on S-Video input */
2972 .vmux = 0,
2973 .amux = LINE2,
2974 },{
2975 .name = name_comp2, /* Composite input */
2976 .vmux = 3,
2977 .amux = LINE2,
2978 }},
2979 .radio = {
2980 .name = name_radio,
2981 .amux = TV,
2982 .gpio = 0x000000, /* GPIO21=Low for FM radio antenna */
2983 },
2984 },
Zac Bowlingf49ba8d2006-06-19 19:49:20 -03002985 [SAA7134_BOARD_FLYVIDEO3000_NTSC] = {
2986 /* "Zac Bowling" <zac@zacbowling.com> */
2987 .name = "LifeView FlyVIDEO3000 (NTSC)",
2988 .audio_clock = 0x00200000,
2989 .tuner_type = TUNER_PHILIPS_NTSC,
2990 .radio_type = UNSET,
2991 .tuner_addr = ADDR_UNSET,
2992 .radio_addr = ADDR_UNSET,
2993
2994 .gpiomask = 0xe000,
2995 .inputs = {{
2996 .name = name_tv,
2997 .vmux = 1,
2998 .amux = TV,
2999 .gpio = 0x8000,
3000 .tv = 1,
3001 },{
3002 .name = name_tv_mono,
3003 .vmux = 1,
3004 .amux = LINE2,
3005 .gpio = 0x0000,
3006 .tv = 1,
3007 },{
3008 .name = name_comp1,
3009 .vmux = 0,
3010 .amux = LINE2,
3011 .gpio = 0x4000,
3012 },{
3013 .name = name_comp2,
3014 .vmux = 3,
3015 .amux = LINE2,
3016 .gpio = 0x4000,
3017 },{
3018 .name = name_svideo,
3019 .vmux = 8,
3020 .amux = LINE2,
3021 .gpio = 0x4000,
3022 }},
3023 .radio = {
3024 .name = name_radio,
3025 .amux = LINE2,
3026 .gpio = 0x2000,
3027 },
3028 .mute = {
3029 .name = name_mute,
3030 .amux = TV,
3031 .gpio = 0x8000,
3032 },
3033 },
Hartmut Hackmann5eda2272006-08-07 14:03:32 -03003034 [SAA7134_BOARD_MEDION_MD8800_QUADRO] = {
3035 .name = "Medion Md8800 Quadro",
3036 .audio_clock = 0x00187de7,
3037 .tuner_type = TUNER_PHILIPS_TDA8290,
3038 .radio_type = UNSET,
3039 .tuner_addr = ADDR_UNSET,
3040 .radio_addr = ADDR_UNSET,
3041 .mpeg = SAA7134_MPEG_DVB,
3042 .inputs = {{
3043 .name = name_tv,
3044 .vmux = 1,
3045 .amux = TV,
3046 .tv = 1,
3047 },{
3048 .name = name_comp1,
3049 .vmux = 0,
hermann pitton387a2992007-10-25 21:26:53 -03003050 .amux = LINE1,
Hartmut Hackmann5eda2272006-08-07 14:03:32 -03003051 },{
3052 .name = name_svideo,
3053 .vmux = 8,
hermann pitton387a2992007-10-25 21:26:53 -03003054 .amux = LINE1,
Hartmut Hackmann5eda2272006-08-07 14:03:32 -03003055 }},
3056 },
Igor M. Liplianine2ac28f2006-08-08 09:10:10 -03003057 [SAA7134_BOARD_FLYDVBS_LR300] = {
3058 /* LifeView FlyDVB-s */
3059 /* Igor M. Liplianin <liplianin@tut.by> */
3060 .name = "LifeView FlyDVB-S /Acorp TV134DS",
3061 .audio_clock = 0x00200000,
3062 .tuner_type = TUNER_ABSENT,
3063 .radio_type = UNSET,
3064 .tuner_addr = ADDR_UNSET,
3065 .radio_addr = ADDR_UNSET,
3066 .mpeg = SAA7134_MPEG_DVB,
3067 .inputs = {{
3068 .name = name_comp1, /* Composite input */
3069 .vmux = 3,
3070 .amux = LINE1,
3071 },{
3072 .name = name_svideo, /* S-Video signal on S-Video input */
3073 .vmux = 8,
3074 .amux = LINE1,
3075 }},
3076 },
Michal Majchrowiczb04c1ba2006-09-13 16:42:42 -03003077 [SAA7134_BOARD_PROTEUS_2309] = {
3078 .name = "Proteus Pro 2309",
3079 .audio_clock = 0x00187de7,
3080 .tuner_type = TUNER_PHILIPS_FM1216ME_MK3,
3081 .radio_type = UNSET,
3082 .tuner_addr = ADDR_UNSET,
3083 .radio_addr = ADDR_UNSET,
3084 .tda9887_conf = TDA9887_PRESENT,
3085 .inputs = {{
3086 .name = name_tv,
3087 .vmux = 1,
3088 .amux = LINE2,
3089 .tv = 1,
3090 },{
3091 .name = name_comp1,
3092 .vmux = 0,
3093 .amux = LINE2,
3094 },{
3095 .name = name_comp2,
3096 .vmux = 3,
3097 .amux = LINE2,
3098 },{
3099 .name = name_svideo,
3100 .vmux = 8,
3101 .amux = LINE2,
3102 }},
3103 .mute = {
3104 .name = name_mute,
3105 .amux = LINE1,
3106 },
3107 },
Petr Baudis515c2082006-09-26 16:53:53 -03003108 [SAA7134_BOARD_AVERMEDIA_A16AR] = {
3109 /* Petr Baudis <pasky@ucw.cz> */
3110 .name = "AVerMedia TV Hybrid A16AR",
3111 .audio_clock = 0x187de7,
pasky@ucw.cz0871a882006-11-12 14:24:57 -03003112 .tuner_type = TUNER_PHILIPS_TD1316, /* untested */
Petr Baudis515c2082006-09-26 16:53:53 -03003113 .radio_type = TUNER_TEA5767, /* untested */
3114 .tuner_addr = ADDR_UNSET,
Mauro Carvalho Chehabc117d052008-04-26 14:05:58 -03003115 .radio_addr = 0x60,
Petr Baudis515c2082006-09-26 16:53:53 -03003116 .tda9887_conf = TDA9887_PRESENT,
3117 .mpeg = SAA7134_MPEG_DVB,
3118 .inputs = {{
3119 .name = name_tv,
3120 .vmux = 1,
3121 .amux = TV,
3122 .tv = 1,
3123 },{
3124 .name = name_comp1,
3125 .vmux = 3,
3126 .amux = LINE2,
3127 },{
3128 .name = name_svideo,
3129 .vmux = 8,
3130 .amux = LINE1,
3131 }},
3132 .radio = {
3133 .name = name_radio,
3134 .amux = LINE1,
3135 },
3136 },
Hartmut Hackmanncf146ca2006-10-02 20:49:24 -03003137 [SAA7134_BOARD_ASUS_EUROPA2_HYBRID] = {
3138 .name = "Asus Europa2 OEM",
3139 .audio_clock = 0x00187de7,
3140 .tuner_type = TUNER_PHILIPS_FMD1216ME_MK3,
3141 .radio_type = UNSET,
3142 .tuner_addr = ADDR_UNSET,
3143 .radio_addr = ADDR_UNSET,
3144 .tda9887_conf = TDA9887_PRESENT| TDA9887_PORT1_ACTIVE | TDA9887_PORT2_ACTIVE,
3145 .mpeg = SAA7134_MPEG_DVB,
3146 .inputs = {{
3147 .name = name_tv,
3148 .vmux = 3,
3149 .amux = TV,
3150 .tv = 1,
3151 },{
3152 .name = name_comp1,
3153 .vmux = 4,
3154 .amux = LINE2,
3155 },{
3156 .name = name_svideo,
3157 .vmux = 8,
3158 .amux = LINE2,
3159 }},
3160 .radio = {
3161 .name = name_radio,
3162 .amux = LINE1,
3163 },
3164 },
Hartmut Hackmann587d2fd2006-10-06 19:13:50 -03003165 [SAA7134_BOARD_PINNACLE_PCTV_310i] = {
3166 .name = "Pinnacle PCTV 310i",
3167 .audio_clock = 0x00187de7,
3168 .tuner_type = TUNER_PHILIPS_TDA8290,
3169 .radio_type = UNSET,
3170 .tuner_addr = ADDR_UNSET,
3171 .radio_addr = ADDR_UNSET,
Hartmut Hackmann58ef4f92007-04-27 12:31:12 -03003172 .tuner_config = 1,
Hartmut Hackmann587d2fd2006-10-06 19:13:50 -03003173 .mpeg = SAA7134_MPEG_DVB,
3174 .gpiomask = 0x000200000,
3175 .inputs = {{
3176 .name = name_tv,
3177 .vmux = 4,
3178 .amux = TV,
3179 .tv = 1,
3180 },{
3181 .name = name_comp1,
3182 .vmux = 1,
3183 .amux = LINE2,
3184 },{
3185 .name = name_comp2,
3186 .vmux = 0,
3187 .amux = LINE2,
3188 },{
3189 .name = name_svideo,
3190 .vmux = 8,
3191 .amux = LINE2,
3192 }},
3193 .radio = {
3194 .name = name_radio,
3195 .amux = TV,
3196 .gpio = 0x0200000,
3197 },
3198 },
Mikhail Fedotov3ac706d2006-10-06 20:23:47 -03003199 [SAA7134_BOARD_AVERMEDIA_STUDIO_507] = {
3200 /* Mikhail Fedotov <mo_fedotov@mail.ru> */
3201 .name = "Avermedia AVerTV Studio 507",
3202 .audio_clock = 0x00187de7,
3203 .tuner_type = TUNER_PHILIPS_FM1256_IH3,
3204 .radio_type = UNSET,
3205 .tuner_addr = ADDR_UNSET,
3206 .radio_addr = ADDR_UNSET,
3207 .tda9887_conf = TDA9887_PRESENT,
3208 .gpiomask = 0x03,
3209 .inputs = {{
3210 .name = name_tv,
3211 .vmux = 1,
3212 .amux = TV,
3213 .tv = 1,
3214 .gpio = 0x00,
3215 },{
3216 .name = name_comp1,
3217 .vmux = 0,
3218 .amux = LINE2,
3219 .gpio = 0x00,
3220 },{
3221 .name = name_comp2,
3222 .vmux = 3,
3223 .amux = LINE2,
3224 .gpio = 0x00,
3225 },{
3226 .name = name_svideo,
3227 .vmux = 8,
3228 .amux = LINE2,
3229 .gpio = 0x00,
3230 }},
3231 .radio = {
3232 .name = name_radio,
3233 .amux = LINE2,
3234 .gpio = 0x01,
3235 },
3236 .mute = {
3237 .name = name_mute,
3238 .amux = LINE1,
3239 .gpio = 0x00,
3240 },
3241 },
Hartmut Hackmanncbb94522006-10-30 20:00:16 -03003242 [SAA7134_BOARD_VIDEOMATE_DVBT_200A] = {
3243 /* Francis Barber <fedora@barber-family.id.au> */
3244 .name = "Compro Videomate DVB-T200A",
3245 .audio_clock = 0x00187de7,
3246 .tuner_type = TUNER_ABSENT,
3247 .radio_type = UNSET,
3248 .tuner_addr = ADDR_UNSET,
3249 .radio_addr = ADDR_UNSET,
3250 .tda9887_conf = TDA9887_PRESENT | TDA9887_PORT1_ACTIVE,
3251 .mpeg = SAA7134_MPEG_DVB,
3252 .inputs = {{
3253 .name = name_tv,
3254 .vmux = 3,
3255 .amux = TV,
3256 .tv = 1,
3257 },{
3258 .name = name_comp1,
3259 .vmux = 1,
3260 .amux = LINE2,
3261 },{
3262 .name = name_svideo,
3263 .vmux = 8,
3264 .amux = LINE2,
3265 }},
3266 },
Thomas Gentyc6e53da2006-11-05 14:17:30 -03003267 [SAA7134_BOARD_HAUPPAUGE_HVR1110] = {
3268 /* Thomas Genty <tomlohave@gmail.com> */
David Bentham8acdbcf2008-09-28 16:29:51 -03003269 /* David Bentham <db260179@hotmail.com> */
Thomas Gentyc6e53da2006-11-05 14:17:30 -03003270 .name = "Hauppauge WinTV-HVR1110 DVB-T/Hybrid",
3271 .audio_clock = 0x00187de7,
3272 .tuner_type = TUNER_PHILIPS_TDA8290,
3273 .radio_type = UNSET,
3274 .tuner_addr = ADDR_UNSET,
3275 .radio_addr = ADDR_UNSET,
Michael Krufkyb3aa2262007-12-09 21:13:38 -03003276 .tuner_config = 1,
Thomas Gentyc6e53da2006-11-05 14:17:30 -03003277 .mpeg = SAA7134_MPEG_DVB,
David Bentham8acdbcf2008-09-28 16:29:51 -03003278 .gpiomask = 0x0200100,
Thomas Gentyc6e53da2006-11-05 14:17:30 -03003279 .inputs = {{
3280 .name = name_tv,
3281 .vmux = 1,
3282 .amux = TV,
3283 .tv = 1,
David Bentham8acdbcf2008-09-28 16:29:51 -03003284 .gpio = 0x0000100,
3285 }, {
3286 .name = name_comp1,
3287 .vmux = 3,
3288 .amux = LINE1,
3289 }, {
3290 .name = name_svideo,
3291 .vmux = 8,
3292 .amux = LINE1,
3293 } },
Thomas Gentyc6e53da2006-11-05 14:17:30 -03003294 .radio = {
3295 .name = name_radio,
David Bentham8acdbcf2008-09-28 16:29:51 -03003296 .amux = TV,
3297 .gpio = 0x0200100,
Thomas Gentyc6e53da2006-11-05 14:17:30 -03003298 },
3299 },
Michael Krufkye8944282009-03-10 17:02:07 -03003300 [SAA7134_BOARD_HAUPPAUGE_HVR1120] = {
Michael Krufky3abdedd2009-01-19 01:10:49 -03003301 .name = "Hauppauge WinTV-HVR1120 ATSC/QAM-Hybrid",
Michael Krufkyf9996c92009-02-28 17:45:17 -03003302 .audio_clock = 0x00187de7,
3303 .tuner_type = TUNER_PHILIPS_TDA8290,
3304 .radio_type = UNSET,
3305 .tuner_addr = ADDR_UNSET,
3306 .radio_addr = ADDR_UNSET,
3307 .tuner_config = 3,
Michael Krufky3abdedd2009-01-19 01:10:49 -03003308 .mpeg = SAA7134_MPEG_DVB,
3309 .ts_type = SAA7134_MPEG_TS_SERIAL,
Michael Krufkyf9996c92009-02-28 17:45:17 -03003310 .gpiomask = 0x0800100, /* GPIO 21 is an INPUT */
3311 .inputs = {{
3312 .name = name_tv,
3313 .vmux = 1,
3314 .amux = TV,
3315 .tv = 1,
3316 .gpio = 0x0000100,
3317 }, {
3318 .name = name_comp1,
3319 .vmux = 3,
3320 .amux = LINE1,
3321 }, {
3322 .name = name_svideo,
3323 .vmux = 8,
3324 .amux = LINE1,
3325 } },
3326 .radio = {
3327 .name = name_radio,
3328 .amux = TV,
3329 .gpio = 0x0800100, /* GPIO 23 HI for FM */
3330 },
3331 },
3332 [SAA7134_BOARD_HAUPPAUGE_HVR1110R3] = {
3333 .name = "Hauppauge WinTV-HVR1110r3",
3334 .audio_clock = 0x00187de7,
3335 .tuner_type = TUNER_PHILIPS_TDA8290,
3336 .radio_type = UNSET,
3337 .tuner_addr = ADDR_UNSET,
3338 .radio_addr = ADDR_UNSET,
3339 .tuner_config = 3,
3340 .gpiomask = 0x0800100, /* GPIO 21 is an INPUT */
3341 .inputs = {{
3342 .name = name_tv,
3343 .vmux = 1,
3344 .amux = TV,
3345 .tv = 1,
3346 .gpio = 0x0000100,
3347 }, {
3348 .name = name_comp1,
3349 .vmux = 3,
3350 .amux = LINE1,
3351 }, {
3352 .name = name_svideo,
3353 .vmux = 8,
3354 .amux = LINE1,
3355 } },
3356 .radio = {
3357 .name = name_radio,
3358 .amux = TV,
3359 .gpio = 0x0800100, /* GPIO 23 HI for FM */
3360 },
3361 },
Hartmut Hackmann550a9a52006-11-15 21:31:54 -03003362 [SAA7134_BOARD_CINERGY_HT_PCMCIA] = {
3363 .name = "Terratec Cinergy HT PCMCIA",
3364 .audio_clock = 0x00187de7,
3365 .tuner_type = TUNER_PHILIPS_TDA8290,
3366 .radio_type = UNSET,
3367 .tuner_addr = ADDR_UNSET,
3368 .radio_addr = ADDR_UNSET,
3369 .mpeg = SAA7134_MPEG_DVB,
3370 .inputs = {{
3371 .name = name_tv,
3372 .vmux = 1,
3373 .amux = TV,
3374 .tv = 1,
3375 },{
3376 .name = name_comp1,
3377 .vmux = 0,
3378 .amux = LINE1,
3379 },{
3380 .name = name_svideo,
3381 .vmux = 6,
3382 .amux = LINE1,
3383 }},
3384 },
Steven Walterd1158f42006-12-20 09:29:09 -03003385 [SAA7134_BOARD_ENCORE_ENLTV] = {
Juan Pablo Sormanic36c4592006-12-27 12:46:36 -03003386 /* Steven Walter <stevenrwalter@gmail.com>
3387 Juan Pablo Sormani <sorman@gmail.com> */
Steven Walterd1158f42006-12-20 09:29:09 -03003388 .name = "Encore ENLTV",
Juan Pablo Sormanic36c4592006-12-27 12:46:36 -03003389 .audio_clock = 0x00200000,
Steven Walterd1158f42006-12-20 09:29:09 -03003390 .tuner_type = TUNER_TNF_5335MF,
3391 .radio_type = UNSET,
3392 .tuner_addr = ADDR_UNSET,
3393 .radio_addr = ADDR_UNSET,
3394 .inputs = {{
3395 .name = name_tv,
3396 .vmux = 1,
Juan Pablo Sormanic36c4592006-12-27 12:46:36 -03003397 .amux = 3,
Steven Walterd1158f42006-12-20 09:29:09 -03003398 .tv = 1,
3399 },{
Juan Pablo Sormanic36c4592006-12-27 12:46:36 -03003400 .name = name_tv_mono,
3401 .vmux = 7,
3402 .amux = 4,
3403 .tv = 1,
3404 },{
3405 .name = name_comp1,
3406 .vmux = 3,
3407 .amux = 2,
3408 },{
Steven Walterd1158f42006-12-20 09:29:09 -03003409 .name = name_svideo,
Juan Pablo Sormanic36c4592006-12-27 12:46:36 -03003410 .vmux = 0,
3411 .amux = 2,
Steven Walterd1158f42006-12-20 09:29:09 -03003412 }},
Juan Pablo Sormanic36c4592006-12-27 12:46:36 -03003413 .radio = {
3414 .name = name_radio,
3415 .amux = LINE2,
3416/* .gpio = 0x00300001,*/
3417 .gpio = 0x20000,
3418
3419 },
3420 .mute = {
3421 .name = name_mute,
3422 .amux = 0,
3423 },
3424 },
3425 [SAA7134_BOARD_ENCORE_ENLTV_FM] = {
3426 /* Juan Pablo Sormani <sorman@gmail.com> */
3427 .name = "Encore ENLTV-FM",
3428 .audio_clock = 0x00200000,
Michael Krufkyab8b8702008-04-22 14:46:05 -03003429 .tuner_type = TUNER_PHILIPS_FCV1236D,
Juan Pablo Sormanic36c4592006-12-27 12:46:36 -03003430 .radio_type = UNSET,
3431 .tuner_addr = ADDR_UNSET,
3432 .radio_addr = ADDR_UNSET,
3433 .inputs = {{
3434 .name = name_tv,
3435 .vmux = 1,
3436 .amux = 3,
3437 .tv = 1,
3438 },{
3439 .name = name_tv_mono,
3440 .vmux = 7,
3441 .amux = 4,
3442 .tv = 1,
3443 },{
3444 .name = name_comp1,
3445 .vmux = 3,
3446 .amux = 2,
3447 },{
3448 .name = name_svideo,
3449 .vmux = 0,
3450 .amux = 2,
3451 }},
3452 .radio = {
3453 .name = name_radio,
3454 .amux = LINE2,
3455 .gpio = 0x20000,
3456
3457 },
3458 .mute = {
3459 .name = name_mute,
3460 .amux = 0,
3461 },
Steven Walterd1158f42006-12-20 09:29:09 -03003462 },
Mauro Carvalho Chehabbf1ece62008-06-26 17:03:00 -03003463 [SAA7134_BOARD_ENCORE_ENLTV_FM53] = {
3464 .name = "Encore ENLTV-FM v5.3",
3465 .audio_clock = 0x00200000,
3466 .tuner_type = TUNER_TNF_5335MF,
3467 .radio_type = UNSET,
3468 .tuner_addr = ADDR_UNSET,
3469 .radio_addr = ADDR_UNSET,
3470 .gpiomask = 0x7000,
3471 .inputs = { {
3472 .name = name_tv,
3473 .vmux = 1,
3474 .amux = 1,
3475 .tv = 1,
3476 .gpio = 0x50000,
3477 }, {
3478 .name = name_comp1,
3479 .vmux = 3,
3480 .amux = 2,
3481 .gpio = 0x2000,
3482 }, {
3483 .name = name_svideo,
3484 .vmux = 8,
3485 .amux = 2,
3486 .gpio = 0x2000,
3487 } },
3488 .radio = {
3489 .name = name_radio,
3490 .vmux = 1,
3491 .amux = 1,
3492 },
3493 .mute = {
3494 .name = name_mute,
3495 .gpio = 0xf000,
3496 .amux = 0,
3497 },
3498 },
Michael Krufky9de271e2007-01-16 18:36:40 -03003499 [SAA7134_BOARD_CINERGY_HT_PCI] = {
3500 .name = "Terratec Cinergy HT PCI",
3501 .audio_clock = 0x00187de7,
3502 .tuner_type = TUNER_PHILIPS_TDA8290,
3503 .radio_type = UNSET,
3504 .tuner_addr = ADDR_UNSET,
3505 .radio_addr = ADDR_UNSET,
3506 .mpeg = SAA7134_MPEG_DVB,
3507 .inputs = {{
3508 .name = name_tv,
3509 .vmux = 1,
3510 .amux = TV,
3511 .tv = 1,
3512 },{
3513 .name = name_comp1,
3514 .vmux = 0,
3515 .amux = LINE1,
3516 },{
3517 .name = name_svideo,
3518 .vmux = 6,
3519 .amux = LINE1,
3520 }},
3521 },
Hartmut Hackmann58ef4f92007-04-27 12:31:12 -03003522 [SAA7134_BOARD_PHILIPS_TIGER_S] = {
3523 .name = "Philips Tiger - S Reference design",
3524 .audio_clock = 0x00187de7,
3525 .tuner_type = TUNER_PHILIPS_TDA8290,
3526 .radio_type = UNSET,
3527 .tuner_addr = ADDR_UNSET,
3528 .radio_addr = ADDR_UNSET,
3529 .tuner_config = 2,
3530 .mpeg = SAA7134_MPEG_DVB,
3531 .gpiomask = 0x0200000,
3532 .inputs = {{
3533 .name = name_tv,
3534 .vmux = 1,
3535 .amux = TV,
3536 .tv = 1,
3537 },{
3538 .name = name_comp1,
3539 .vmux = 3,
3540 .amux = LINE1,
3541 },{
3542 .name = name_svideo,
3543 .vmux = 8,
3544 .amux = LINE1,
3545 }},
3546 .radio = {
3547 .name = name_radio,
3548 .amux = TV,
3549 .gpio = 0x0200000,
3550 },
3551 },
Markus Rechbergere95d3172007-04-27 12:31:19 -03003552 [SAA7134_BOARD_AVERMEDIA_M102] = {
3553 .name = "Avermedia M102",
3554 .audio_clock = 0x00187de7,
3555 .tuner_type = TUNER_PHILIPS_TDA8290,
3556 .radio_type = UNSET,
3557 .tuner_addr = ADDR_UNSET,
3558 .radio_addr = ADDR_UNSET,
3559 .gpiomask = 1<<21,
3560 .inputs = {{
3561 .name = name_tv,
3562 .vmux = 1,
3563 .amux = TV,
3564 .tv = 1,
3565 },{
3566 .name = name_comp1,
3567 .vmux = 0,
3568 .amux = LINE2,
3569 },{
3570 .name = name_svideo,
3571 .vmux = 6,
3572 .amux = LINE2,
3573 }},
3574 },
Hartmut Hackmanne06cea42007-03-13 20:58:29 -03003575 [SAA7134_BOARD_ASUS_P7131_4871] = {
3576 .name = "ASUS P7131 4871",
3577 .audio_clock = 0x00187de7,
3578 .tuner_type = TUNER_PHILIPS_TDA8290,
3579 .radio_type = UNSET,
3580 .tuner_addr = ADDR_UNSET,
3581 .radio_addr = ADDR_UNSET,
3582 .tuner_config = 2,
3583 .mpeg = SAA7134_MPEG_DVB,
3584 .gpiomask = 0x0200000,
3585 .inputs = {{
3586 .name = name_tv,
3587 .vmux = 1,
3588 .amux = TV,
3589 .tv = 1,
3590 .gpio = 0x0200000,
3591 }},
3592 },
Hartmut Hackmannf3eec0c02007-03-14 20:33:55 -03003593 [SAA7134_BOARD_ASUSTeK_P7131_HYBRID_LNA] = {
3594 .name = "ASUSTeK P7131 Hybrid",
Hartmut Hackmanne06cea42007-03-13 20:58:29 -03003595 .audio_clock = 0x00187de7,
3596 .tuner_type = TUNER_PHILIPS_TDA8290,
3597 .radio_type = UNSET,
3598 .tuner_addr = ADDR_UNSET,
3599 .radio_addr = ADDR_UNSET,
3600 .tuner_config = 2,
3601 .gpiomask = 1 << 21,
3602 .mpeg = SAA7134_MPEG_DVB,
3603 .inputs = {{
3604 .name = name_tv,
3605 .vmux = 1,
3606 .amux = TV,
3607 .tv = 1,
3608 .gpio = 0x0000000,
3609 },{
3610 .name = name_comp1,
3611 .vmux = 3,
3612 .amux = LINE2,
3613 .gpio = 0x0200000,
3614 },{
3615 .name = name_comp2,
3616 .vmux = 0,
3617 .amux = LINE2,
3618 .gpio = 0x0200000,
3619 },{
3620 .name = name_svideo,
3621 .vmux = 8,
3622 .amux = LINE2,
3623 .gpio = 0x0200000,
3624 }},
3625 .radio = {
3626 .name = name_radio,
3627 .amux = TV,
3628 .gpio = 0x0200000,
3629 },
Hermann Pitton0b17d0e2008-07-12 12:27:59 -03003630 },
3631 [SAA7134_BOARD_ASUSTeK_P7131_ANALOG] = {
3632 .name = "ASUSTeK P7131 Analog",
3633 .audio_clock = 0x00187de7,
3634 .tuner_type = TUNER_PHILIPS_TDA8290,
3635 .radio_type = UNSET,
3636 .tuner_addr = ADDR_UNSET,
3637 .radio_addr = ADDR_UNSET,
3638 .gpiomask = 1 << 21,
3639 .inputs = {{
3640 .name = name_tv,
3641 .vmux = 1,
3642 .amux = TV,
3643 .tv = 1,
3644 .gpio = 0x0000000,
3645 }, {
3646 .name = name_comp1,
3647 .vmux = 3,
3648 .amux = LINE2,
3649 }, {
3650 .name = name_comp2,
3651 .vmux = 0,
3652 .amux = LINE2,
3653 }, {
3654 .name = name_svideo,
3655 .vmux = 8,
3656 .amux = LINE2,
3657 } },
3658 .radio = {
3659 .name = name_radio,
3660 .amux = TV,
3661 .gpio = 0x0200000,
3662 },
Hartmut Hackmanne06cea42007-03-13 20:58:29 -03003663 },
James T Klaas53958b32007-05-01 10:48:09 -03003664 [SAA7134_BOARD_SABRENT_TV_PCB05] = {
3665 .name = "Sabrent PCMCIA TV-PCB05",
3666 .audio_clock = 0x00187de7,
3667 .tuner_type = TUNER_PHILIPS_TDA8290,
3668 .radio_type = UNSET,
3669 .tuner_addr = ADDR_UNSET,
3670 .radio_addr = ADDR_UNSET,
3671 .inputs = {{
3672 .name = name_tv,
3673 .vmux = 1,
3674 .amux = TV,
3675 .tv = 1,
3676 },{
3677 .name = name_comp1,
3678 .vmux = 3,
3679 .amux = LINE1,
3680 },{
3681 .name = name_comp2,
3682 .vmux = 0,
3683 .amux = LINE1,
3684 },{
3685 .name = name_svideo,
3686 .vmux = 8,
3687 .amux = LINE1,
3688 }},
3689 .mute = {
3690 .name = name_mute,
3691 .amux = TV,
3692 },
3693 },
Tony Wanaaccb822007-05-10 12:16:47 -03003694 [SAA7134_BOARD_10MOONSTVMASTER3] = {
3695 /* Tony Wan <aloha_cn@hotmail.com> */
3696 .name = "10MOONS TM300 TV Card",
3697 .audio_clock = 0x00200000,
3698 .tuner_type = TUNER_LG_PAL_NEW_TAPC,
3699 .radio_type = UNSET,
3700 .tuner_addr = ADDR_UNSET,
3701 .radio_addr = ADDR_UNSET,
3702 .gpiomask = 0x7000,
3703 .inputs = {{
3704 .name = name_tv,
3705 .vmux = 1,
3706 .amux = LINE2,
3707 .gpio = 0x0000,
3708 .tv = 1,
3709 },{
3710 .name = name_comp1,
3711 .vmux = 3,
3712 .amux = LINE1,
3713 .gpio = 0x2000,
3714 },{
3715 .name = name_svideo,
3716 .vmux = 8,
3717 .amux = LINE1,
3718 .gpio = 0x2000,
3719 }},
3720 .mute = {
3721 .name = name_mute,
3722 .amux = LINE2,
3723 .gpio = 0x3000,
3724 },
3725 },
Edgar Simod90d9f52007-08-20 14:14:50 -03003726 [SAA7134_BOARD_AVERMEDIA_SUPER_007] = {
3727 .name = "Avermedia Super 007",
3728 .audio_clock = 0x00187de7,
3729 .tuner_type = TUNER_PHILIPS_TDA8290,
3730 .radio_type = UNSET,
3731 .tuner_addr = ADDR_UNSET,
3732 .radio_addr = ADDR_UNSET,
3733 .tuner_config = 0,
3734 .mpeg = SAA7134_MPEG_DVB,
3735 .inputs = {{
3736 .name = name_tv, /* FIXME: analog tv untested */
3737 .vmux = 1,
3738 .amux = TV,
3739 .tv = 1,
3740 }},
3741 },
Mauro Carvalho Chehab36f6bb92008-06-26 17:03:00 -03003742 [SAA7134_BOARD_AVERMEDIA_M135A] = {
3743 .name = "Avermedia PCI pure analog (M135A)",
3744 .audio_clock = 0x00187de7,
3745 .tuner_type = TUNER_PHILIPS_TDA8290,
3746 .radio_type = UNSET,
3747 .tuner_addr = ADDR_UNSET,
3748 .radio_addr = ADDR_UNSET,
3749 .tuner_config = 2,
3750 .gpiomask = 0x020200000,
3751 .inputs = {{
3752 .name = name_tv,
3753 .vmux = 1,
3754 .amux = TV,
3755 .tv = 1,
3756 }, {
3757 .name = name_comp1,
3758 .vmux = 3,
3759 .amux = LINE1,
3760 }, {
3761 .name = name_svideo,
3762 .vmux = 8,
3763 .amux = LINE1,
3764 } },
3765 .radio = {
3766 .name = name_radio,
3767 .amux = TV,
3768 .gpio = 0x00200000,
3769 },
3770 .mute = {
3771 .name = name_mute,
3772 .amux = TV,
3773 .gpio = 0x01,
3774 },
3775 },
Andrey J. Melnikoff (TEMHOTA)e8018c92008-01-07 05:17:39 -03003776 [SAA7134_BOARD_BEHOLD_401] = {
Dmitry Belimovb34dddb2008-04-23 14:09:08 -03003777 /* Beholder Intl. Ltd. 2008 */
3778 /*Dmitry Belimov <d.belimov@gmail.com> */
Andrey J. Melnikoff (TEMHOTA)e8018c92008-01-07 05:17:39 -03003779 .name = "Beholder BeholdTV 401",
3780 .audio_clock = 0x00187de7,
3781 .tuner_type = TUNER_PHILIPS_FQ1216ME,
3782 .radio_type = UNSET,
3783 .tuner_addr = ADDR_UNSET,
3784 .radio_addr = ADDR_UNSET,
Dmitry Belimovb34dddb2008-04-23 14:09:08 -03003785 .gpiomask = 0x00008000,
Andrey J. Melnikoff (TEMHOTA)e8018c92008-01-07 05:17:39 -03003786 .inputs = {{
3787 .name = name_svideo,
3788 .vmux = 8,
3789 .amux = LINE1,
3790 },{
3791 .name = name_comp1,
3792 .vmux = 1,
3793 .amux = LINE1,
3794 },{
3795 .name = name_tv,
3796 .vmux = 3,
3797 .amux = LINE2,
3798 .tv = 1,
3799 }},
3800 .mute = {
3801 .name = name_mute,
3802 .amux = LINE1,
3803 },
3804 },
3805 [SAA7134_BOARD_BEHOLD_403] = {
Dmitry Belimovb34dddb2008-04-23 14:09:08 -03003806 /* Beholder Intl. Ltd. 2008 */
3807 /*Dmitry Belimov <d.belimov@gmail.com> */
Andrey J. Melnikoff (TEMHOTA)e8018c92008-01-07 05:17:39 -03003808 .name = "Beholder BeholdTV 403",
3809 .audio_clock = 0x00187de7,
3810 .tuner_type = TUNER_PHILIPS_FQ1216ME,
3811 .radio_type = UNSET,
3812 .tuner_addr = ADDR_UNSET,
3813 .radio_addr = ADDR_UNSET,
Dmitry Belimovb34dddb2008-04-23 14:09:08 -03003814 .gpiomask = 0x00008000,
Andrey J. Melnikoff (TEMHOTA)e8018c92008-01-07 05:17:39 -03003815 .inputs = {{
3816 .name = name_svideo,
3817 .vmux = 8,
3818 .amux = LINE1,
3819 },{
3820 .name = name_comp1,
3821 .vmux = 1,
3822 .amux = LINE1,
3823 },{
3824 .name = name_tv,
3825 .vmux = 3,
3826 .amux = LINE2,
3827 .tv = 1,
3828 }},
3829 },
3830 [SAA7134_BOARD_BEHOLD_403FM] = {
Dmitry Belimovb34dddb2008-04-23 14:09:08 -03003831 /* Beholder Intl. Ltd. 2008 */
3832 /*Dmitry Belimov <d.belimov@gmail.com> */
Andrey J. Melnikoff (TEMHOTA)e8018c92008-01-07 05:17:39 -03003833 .name = "Beholder BeholdTV 403 FM",
3834 .audio_clock = 0x00187de7,
3835 .tuner_type = TUNER_PHILIPS_FQ1216ME,
3836 .radio_type = UNSET,
3837 .tuner_addr = ADDR_UNSET,
3838 .radio_addr = ADDR_UNSET,
Dmitry Belimovb34dddb2008-04-23 14:09:08 -03003839 .gpiomask = 0x00008000,
Andrey J. Melnikoff (TEMHOTA)e8018c92008-01-07 05:17:39 -03003840 .inputs = {{
3841 .name = name_svideo,
3842 .vmux = 8,
3843 .amux = LINE1,
3844 },{
3845 .name = name_comp1,
3846 .vmux = 1,
3847 .amux = LINE1,
3848 },{
3849 .name = name_tv,
3850 .vmux = 3,
3851 .amux = LINE2,
3852 .tv = 1,
3853 }},
3854 .radio = {
3855 .name = name_radio,
3856 .amux = LINE2,
3857 },
3858 },
3859 [SAA7134_BOARD_BEHOLD_405] = {
Dmitry Belimovb34dddb2008-04-23 14:09:08 -03003860 /* Beholder Intl. Ltd. 2008 */
3861 /*Dmitry Belimov <d.belimov@gmail.com> */
Andrey J. Melnikoff (TEMHOTA)e8018c92008-01-07 05:17:39 -03003862 .name = "Beholder BeholdTV 405",
3863 .audio_clock = 0x00187de7,
3864 .tuner_type = TUNER_PHILIPS_FM1216ME_MK3,
3865 .radio_type = UNSET,
3866 .tuner_addr = ADDR_UNSET,
3867 .radio_addr = ADDR_UNSET,
3868 .tda9887_conf = TDA9887_PRESENT,
Dmitry Belimovb34dddb2008-04-23 14:09:08 -03003869 .gpiomask = 0x00008000,
Andrey J. Melnikoff (TEMHOTA)e8018c92008-01-07 05:17:39 -03003870 .inputs = {{
3871 .name = name_svideo,
3872 .vmux = 8,
3873 .amux = LINE1,
3874 },{
3875 .name = name_comp1,
3876 .vmux = 3,
3877 .amux = LINE1,
3878 },{
3879 .name = name_tv,
3880 .vmux = 3,
3881 .amux = LINE2,
3882 .tv = 1,
3883 }},
3884 },
3885 [SAA7134_BOARD_BEHOLD_405FM] = {
3886 /* Sergey <skiv@orel.ru> */
Dmitry Belimovb34dddb2008-04-23 14:09:08 -03003887 /* Beholder Intl. Ltd. 2008 */
3888 /*Dmitry Belimov <d.belimov@gmail.com> */
Andrey J. Melnikoff (TEMHOTA)e8018c92008-01-07 05:17:39 -03003889 .name = "Beholder BeholdTV 405 FM",
3890 .audio_clock = 0x00187de7,
3891 .tuner_type = TUNER_PHILIPS_FM1216ME_MK3,
3892 .radio_type = UNSET,
3893 .tuner_addr = ADDR_UNSET,
3894 .radio_addr = ADDR_UNSET,
3895 .tda9887_conf = TDA9887_PRESENT,
Dmitry Belimovb34dddb2008-04-23 14:09:08 -03003896 .gpiomask = 0x00008000,
Andrey J. Melnikoff (TEMHOTA)e8018c92008-01-07 05:17:39 -03003897 .inputs = {{
3898 .name = name_svideo,
3899 .vmux = 8,
3900 .amux = LINE1,
3901 },{
3902 .name = name_comp1,
3903 .vmux = 3,
3904 .amux = LINE1,
3905 },{
3906 .name = name_tv,
3907 .vmux = 3,
3908 .amux = LINE2,
3909 .tv = 1,
3910 }},
3911 .radio = {
3912 .name = name_radio,
3913 .amux = LINE2,
3914 },
3915 },
Mauro Carvalho Chehab1434bc02008-01-07 05:20:04 -03003916 [SAA7134_BOARD_BEHOLD_407] = {
Dmitry Belimovb34dddb2008-04-23 14:09:08 -03003917 /* Beholder Intl. Ltd. 2008 */
3918 /*Dmitry Belimov <d.belimov@gmail.com> */
Mauro Carvalho Chehab1434bc02008-01-07 05:20:04 -03003919 .name = "Beholder BeholdTV 407",
3920 .audio_clock = 0x00187de7,
3921 .tuner_type = TUNER_PHILIPS_FM1216ME_MK3,
3922 .radio_type = UNSET,
3923 .tuner_addr = ADDR_UNSET,
3924 .radio_addr = ADDR_UNSET,
3925 .tda9887_conf = TDA9887_PRESENT,
Dmitry Belimovb34dddb2008-04-23 14:09:08 -03003926 .gpiomask = 0x00008000,
Mauro Carvalho Chehab1434bc02008-01-07 05:20:04 -03003927 .inputs = {{
3928 .name = name_svideo,
3929 .vmux = 8,
3930 .amux = LINE1,
3931 .gpio = 0xc0c000,
3932 },{
3933 .name = name_comp1,
3934 .vmux = 1,
3935 .amux = LINE1,
3936 .gpio = 0xc0c000,
3937 },{
3938 .name = name_tv,
3939 .vmux = 3,
3940 .amux = TV,
3941 .tv = 1,
3942 .gpio = 0xc0c000,
3943 }},
3944 },
Andrey J. Melnikoff (TEMHOTA)e8018c92008-01-07 05:17:39 -03003945 [SAA7134_BOARD_BEHOLD_407FM] = {
Dmitry Belimovb34dddb2008-04-23 14:09:08 -03003946 /* Beholder Intl. Ltd. 2008 */
3947 /*Dmitry Belimov <d.belimov@gmail.com> */
Andrey J. Melnikoff (TEMHOTA)e8018c92008-01-07 05:17:39 -03003948 .name = "Beholder BeholdTV 407 FM",
3949 .audio_clock = 0x00187de7,
3950 .tuner_type = TUNER_PHILIPS_FM1216ME_MK3,
3951 .radio_type = UNSET,
3952 .tuner_addr = ADDR_UNSET,
3953 .radio_addr = ADDR_UNSET,
3954 .tda9887_conf = TDA9887_PRESENT,
Dmitry Belimovb34dddb2008-04-23 14:09:08 -03003955 .gpiomask = 0x00008000,
Andrey J. Melnikoff (TEMHOTA)e8018c92008-01-07 05:17:39 -03003956 .inputs = {{
3957 .name = name_svideo,
3958 .vmux = 8,
3959 .amux = LINE1,
3960 .gpio = 0xc0c000,
3961 },{
3962 .name = name_comp1,
3963 .vmux = 1,
3964 .amux = LINE1,
3965 .gpio = 0xc0c000,
3966 },{
3967 .name = name_tv,
3968 .vmux = 3,
3969 .amux = TV,
3970 .tv = 1,
3971 .gpio = 0xc0c000,
3972 }},
3973 .radio = {
3974 .name = name_radio,
3975 .amux = LINE2,
3976 .gpio = 0xc0c000,
3977 },
3978 },
3979 [SAA7134_BOARD_BEHOLD_409] = {
Dmitry Belimovb34dddb2008-04-23 14:09:08 -03003980 /* Beholder Intl. Ltd. 2008 */
3981 /*Dmitry Belimov <d.belimov@gmail.com> */
Andrey J. Melnikoff (TEMHOTA)e8018c92008-01-07 05:17:39 -03003982 .name = "Beholder BeholdTV 409",
3983 .audio_clock = 0x00187de7,
3984 .tuner_type = TUNER_PHILIPS_FM1216ME_MK3,
3985 .radio_type = UNSET,
3986 .tuner_addr = ADDR_UNSET,
3987 .radio_addr = ADDR_UNSET,
3988 .tda9887_conf = TDA9887_PRESENT,
Dmitry Belimovb34dddb2008-04-23 14:09:08 -03003989 .gpiomask = 0x00008000,
Andrey J. Melnikoff (TEMHOTA)e8018c92008-01-07 05:17:39 -03003990 .inputs = {{
3991 .name = name_tv,
3992 .vmux = 3,
3993 .amux = TV,
3994 .tv = 1,
3995 },{
3996 .name = name_comp1,
3997 .vmux = 1,
3998 .amux = LINE1,
3999 },{
4000 .name = name_svideo,
4001 .vmux = 8,
4002 .amux = LINE1,
4003 }},
4004 },
4005 [SAA7134_BOARD_BEHOLD_505FM] = {
Dmitry Belimovb34dddb2008-04-23 14:09:08 -03004006 /* Beholder Intl. Ltd. 2008 */
4007 /*Dmitry Belimov <d.belimov@gmail.com> */
Andrey J. Melnikoff (TEMHOTA)e8018c92008-01-07 05:17:39 -03004008 .name = "Beholder BeholdTV 505 FM/RDS",
4009 .audio_clock = 0x00200000,
4010 .tuner_type = TUNER_PHILIPS_FM1216ME_MK3,
4011 .radio_type = UNSET,
4012 .tuner_addr = ADDR_UNSET,
4013 .radio_addr = ADDR_UNSET,
4014 .tda9887_conf = TDA9887_PRESENT,
Dmitry Belimovb34dddb2008-04-23 14:09:08 -03004015 .gpiomask = 0x00008000,
Andrey J. Melnikoff (TEMHOTA)e8018c92008-01-07 05:17:39 -03004016 .inputs = {{
4017 .name = name_tv,
4018 .vmux = 3,
4019 .amux = LINE2,
4020 .tv = 1,
4021 },{
4022 .name = name_comp1,
4023 .vmux = 1,
4024 .amux = LINE1,
4025 },{
4026 .name = name_svideo,
4027 .vmux = 8,
4028 .amux = LINE1,
4029 }},
4030 .mute = {
4031 .name = name_mute,
4032 .amux = LINE1,
4033 },
4034 .radio = {
4035 .name = name_radio,
4036 .amux = LINE2,
4037 },
4038 },
4039 [SAA7134_BOARD_BEHOLD_507_9FM] = {
Dmitry Belimovb34dddb2008-04-23 14:09:08 -03004040 /* Beholder Intl. Ltd. 2008 */
4041 /*Dmitry Belimov <d.belimov@gmail.com> */
Andrey J. Melnikoff (TEMHOTA)e8018c92008-01-07 05:17:39 -03004042 .name = "Beholder BeholdTV 507 FM/RDS / BeholdTV 509 FM",
4043 .audio_clock = 0x00187de7,
4044 .tuner_type = TUNER_PHILIPS_FM1216ME_MK3,
4045 .radio_type = UNSET,
4046 .tuner_addr = ADDR_UNSET,
4047 .radio_addr = ADDR_UNSET,
4048 .tda9887_conf = TDA9887_PRESENT,
Dmitry Belimovb34dddb2008-04-23 14:09:08 -03004049 .gpiomask = 0x00008000,
Andrey J. Melnikoff (TEMHOTA)e8018c92008-01-07 05:17:39 -03004050 .inputs = {{
4051 .name = name_tv,
4052 .vmux = 3,
4053 .amux = TV,
4054 .tv = 1,
4055 },{
4056 .name = name_comp1,
4057 .vmux = 1,
4058 .amux = LINE1,
4059 },{
4060 .name = name_svideo,
4061 .vmux = 8,
4062 .amux = LINE1,
4063 }},
4064 .radio = {
4065 .name = name_radio,
4066 .amux = LINE2,
4067 },
4068 },
4069 [SAA7134_BOARD_BEHOLD_COLUMBUS_TVFM] = {
Dmitry Belimovb34dddb2008-04-23 14:09:08 -03004070 /* Beholder Intl. Ltd. 2008 */
4071 /*Dmitry Belimov <d.belimov@gmail.com> */
Andrey J. Melnikoff (TEMHOTA)e8018c92008-01-07 05:17:39 -03004072 .name = "Beholder BeholdTV Columbus TVFM",
4073 .audio_clock = 0x00187de7,
4074 .tuner_type = TUNER_ALPS_TSBE5_PAL,
4075 .radio_type = UNSET,
4076 .tuner_addr = ADDR_UNSET,
4077 .radio_addr = ADDR_UNSET,
4078 .tda9887_conf = TDA9887_PRESENT,
Dmitry Belimovb34dddb2008-04-23 14:09:08 -03004079 .gpiomask = 0x000A8004,
Andrey J. Melnikoff (TEMHOTA)e8018c92008-01-07 05:17:39 -03004080 .inputs = {{
4081 .name = name_tv,
4082 .vmux = 3,
4083 .amux = TV,
4084 .tv = 1,
Dmitry Belimovb34dddb2008-04-23 14:09:08 -03004085 .gpio = 0x000A8004,
4086 }, {
Andrey J. Melnikoff (TEMHOTA)e8018c92008-01-07 05:17:39 -03004087 .name = name_comp1,
4088 .vmux = 1,
4089 .amux = LINE1,
Dmitry Belimovb34dddb2008-04-23 14:09:08 -03004090 .gpio = 0x000A8000,
4091 }, {
Andrey J. Melnikoff (TEMHOTA)e8018c92008-01-07 05:17:39 -03004092 .name = name_svideo,
4093 .vmux = 8,
4094 .amux = LINE1,
Dmitry Belimovb34dddb2008-04-23 14:09:08 -03004095 .gpio = 0x000A8000,
4096 } },
Andrey J. Melnikoff (TEMHOTA)e8018c92008-01-07 05:17:39 -03004097 .radio = {
4098 .name = name_radio,
4099 .amux = LINE2,
Dmitry Belimovb34dddb2008-04-23 14:09:08 -03004100 .gpio = 0x000A8000,
Andrey J. Melnikoff (TEMHOTA)e8018c92008-01-07 05:17:39 -03004101 },
4102 },
4103 [SAA7134_BOARD_BEHOLD_607_9FM] = {
4104 /* Andrey Melnikoff <temnota@kmv.ru> */
4105 .name = "Beholder BeholdTV 607 / BeholdTV 609",
4106 .audio_clock = 0x00187de7,
4107 .tuner_type = TUNER_PHILIPS_FM1216ME_MK3,
4108 .radio_type = UNSET,
4109 .tuner_addr = ADDR_UNSET,
4110 .radio_addr = ADDR_UNSET,
4111 .tda9887_conf = TDA9887_PRESENT,
4112 .inputs = {{
4113 .name = name_tv,
4114 .vmux = 3,
4115 .amux = TV,
4116 .tv = 1,
4117 },{
4118 .name = name_comp1,
4119 .vmux = 1,
4120 .amux = LINE1,
4121 },{
4122 .name = name_svideo,
4123 .vmux = 8,
4124 .amux = LINE1,
4125 }},
4126 .radio = {
4127 .name = name_radio,
4128 .amux = LINE2,
4129 },
4130 },
4131 [SAA7134_BOARD_BEHOLD_M6] = {
4132 /* Igor Kuznetsov <igk@igk.ru> */
4133 /* Andrey Melnikoff <temnota@kmv.ru> */
Dmitry Belimov878cf2a2008-06-10 14:22:00 -03004134 /* Beholder Intl. Ltd. Dmitry Belimov <d.belimov@gmail.com> */
4135 .name = "Beholder BeholdTV M6",
Andrey J. Melnikoff (TEMHOTA)e8018c92008-01-07 05:17:39 -03004136 .audio_clock = 0x00187de7,
4137 .tuner_type = TUNER_PHILIPS_FM1216ME_MK3,
4138 .radio_type = UNSET,
4139 .tuner_addr = ADDR_UNSET,
4140 .radio_addr = ADDR_UNSET,
Hans Verkuil195784b2009-03-28 09:27:02 -03004141 .empress_addr = 0x20,
Andrey J. Melnikoff (TEMHOTA)e8018c92008-01-07 05:17:39 -03004142 .tda9887_conf = TDA9887_PRESENT,
Dmitry Belimov878cf2a2008-06-10 14:22:00 -03004143 .inputs = { {
Andrey J. Melnikoff (TEMHOTA)e8018c92008-01-07 05:17:39 -03004144 .name = name_tv,
4145 .vmux = 3,
4146 .amux = TV,
4147 .tv = 1,
Dmitry Belimov878cf2a2008-06-10 14:22:00 -03004148 }, {
Andrey J. Melnikoff (TEMHOTA)e8018c92008-01-07 05:17:39 -03004149 .name = name_comp1,
4150 .vmux = 1,
4151 .amux = LINE1,
Dmitry Belimov878cf2a2008-06-10 14:22:00 -03004152 }, {
Andrey J. Melnikoff (TEMHOTA)e8018c92008-01-07 05:17:39 -03004153 .name = name_svideo,
4154 .vmux = 8,
4155 .amux = LINE1,
Dmitry Belimov878cf2a2008-06-10 14:22:00 -03004156 } },
Andrey J. Melnikoff (TEMHOTA)e8018c92008-01-07 05:17:39 -03004157 .radio = {
4158 .name = name_radio,
4159 .amux = LINE2,
4160 },
4161 .mpeg = SAA7134_MPEG_EMPRESS,
Dmitry Belimov878cf2a2008-06-10 14:22:00 -03004162 .video_out = CCIR656,
4163 .vid_port_opts = (SET_T_CODE_POLARITY_NON_INVERTED |
4164 SET_CLOCK_NOT_DELAYED |
4165 SET_CLOCK_INVERTED |
4166 SET_VSYNC_OFF),
4167 },
4168 [SAA7134_BOARD_BEHOLD_M63] = {
4169 /* Igor Kuznetsov <igk@igk.ru> */
4170 /* Andrey Melnikoff <temnota@kmv.ru> */
4171 /* Beholder Intl. Ltd. Dmitry Belimov <d.belimov@gmail.com> */
4172 .name = "Beholder BeholdTV M63",
4173 .audio_clock = 0x00187de7,
4174 .tuner_type = TUNER_PHILIPS_FM1216ME_MK3,
4175 .radio_type = UNSET,
4176 .tuner_addr = ADDR_UNSET,
4177 .radio_addr = ADDR_UNSET,
Hans Verkuil195784b2009-03-28 09:27:02 -03004178 .empress_addr = 0x20,
Dmitry Belimov878cf2a2008-06-10 14:22:00 -03004179 .tda9887_conf = TDA9887_PRESENT,
4180 .inputs = { {
4181 .name = name_tv,
4182 .vmux = 3,
4183 .amux = TV,
4184 .tv = 1,
4185 }, {
4186 .name = name_comp1,
4187 .vmux = 1,
4188 .amux = LINE1,
4189 }, {
4190 .name = name_svideo,
4191 .vmux = 8,
4192 .amux = LINE1,
4193 } },
4194 .radio = {
4195 .name = name_radio,
4196 .amux = LINE2,
4197 },
4198 .mpeg = SAA7134_MPEG_EMPRESS,
4199 .video_out = CCIR656,
4200 .vid_port_opts = (SET_T_CODE_POLARITY_NON_INVERTED |
4201 SET_CLOCK_NOT_DELAYED |
4202 SET_CLOCK_INVERTED |
4203 SET_VSYNC_OFF),
4204 },
4205 [SAA7134_BOARD_BEHOLD_M6_EXTRA] = {
4206 /* Igor Kuznetsov <igk@igk.ru> */
4207 /* Andrey Melnikoff <temnota@kmv.ru> */
4208 /* Beholder Intl. Ltd. Dmitry Belimov <d.belimov@gmail.com> */
4209 .name = "Beholder BeholdTV M6 Extra",
4210 .audio_clock = 0x00187de7,
4211 /* FIXME: Must be PHILIPS_FM1216ME_MK5*/
4212 .tuner_type = TUNER_PHILIPS_FM1216ME_MK3,
4213 .radio_type = UNSET,
4214 .tuner_addr = ADDR_UNSET,
4215 .radio_addr = ADDR_UNSET,
Hans Verkuil195784b2009-03-28 09:27:02 -03004216 .empress_addr = 0x20,
Dmitry Belimov878cf2a2008-06-10 14:22:00 -03004217 .tda9887_conf = TDA9887_PRESENT,
4218 .inputs = { {
4219 .name = name_tv,
4220 .vmux = 3,
4221 .amux = TV,
4222 .tv = 1,
4223 }, {
4224 .name = name_comp1,
4225 .vmux = 1,
4226 .amux = LINE1,
4227 }, {
4228 .name = name_svideo,
4229 .vmux = 8,
4230 .amux = LINE1,
4231 } },
4232 .radio = {
4233 .name = name_radio,
4234 .amux = LINE2,
4235 },
4236 .mpeg = SAA7134_MPEG_EMPRESS,
4237 .video_out = CCIR656,
4238 .vid_port_opts = (SET_T_CODE_POLARITY_NON_INVERTED |
4239 SET_CLOCK_NOT_DELAYED |
4240 SET_CLOCK_INVERTED |
4241 SET_VSYNC_OFF),
Andrey J. Melnikoff (TEMHOTA)e8018c92008-01-07 05:17:39 -03004242 },
Hermann Pitton4ba24372008-01-20 19:27:51 -03004243 [SAA7134_BOARD_TWINHAN_DTV_DVB_3056] = {
4244 .name = "Twinhan Hybrid DTV-DVB 3056 PCI",
4245 .audio_clock = 0x00187de7,
4246 .tuner_type = TUNER_PHILIPS_TDA8290,
4247 .radio_type = UNSET,
4248 .tuner_addr = ADDR_UNSET,
4249 .radio_addr = ADDR_UNSET,
4250 .tuner_config = 2,
4251 .mpeg = SAA7134_MPEG_DVB,
4252 .gpiomask = 0x0200000,
4253 .inputs = {{
4254 .name = name_tv,
4255 .vmux = 1,
4256 .amux = TV,
4257 .tv = 1,
4258 }, {
4259 .name = name_comp1,
4260 .vmux = 3,
4261 .amux = LINE1,
4262 }, {
4263 .name = name_svideo,
4264 .vmux = 8, /* untested */
4265 .amux = LINE1,
4266 } },
4267 .radio = {
4268 .name = name_radio,
4269 .amux = TV,
4270 .gpio = 0x0200000,
4271 },
4272 },
Adrian Pardinif0ba3562008-02-11 12:40:53 -03004273 [SAA7134_BOARD_GENIUS_TVGO_A11MCE] = {
4274 /* Adrian Pardini <pardo.bsso@gmail.com> */
4275 .name = "Genius TVGO AM11MCE",
4276 .audio_clock = 0x00200000,
4277 .tuner_type = TUNER_TNF_5335MF,
4278 .radio_type = UNSET,
4279 .tuner_addr = ADDR_UNSET,
4280 .radio_addr = ADDR_UNSET,
4281 .gpiomask = 0xf000,
4282 .inputs = {{
4283 .name = name_tv_mono,
4284 .vmux = 1,
4285 .amux = LINE2,
4286 .gpio = 0x0000,
4287 .tv = 1,
4288 }, {
4289 .name = name_comp1,
4290 .vmux = 3,
4291 .amux = LINE1,
4292 .gpio = 0x2000,
4293 .tv = 1
4294 }, {
4295 .name = name_svideo,
4296 .vmux = 8,
4297 .amux = LINE1,
4298 .gpio = 0x2000,
4299 } },
4300 .radio = {
4301 .name = name_radio,
4302 .amux = LINE2,
4303 .gpio = 0x1000,
4304 },
4305 .mute = {
4306 .name = name_mute,
4307 .amux = LINE2,
4308 .gpio = 0x6000,
4309 },
4310 },
Hartmut Hackmann6ab465a2008-04-22 14:42:11 -03004311 [SAA7134_BOARD_PHILIPS_SNAKE] = {
4312 .name = "NXP Snake DVB-S reference design",
4313 .audio_clock = 0x00200000,
4314 .tuner_type = TUNER_ABSENT,
4315 .radio_type = UNSET,
4316 .tuner_addr = ADDR_UNSET,
4317 .radio_addr = ADDR_UNSET,
4318 .mpeg = SAA7134_MPEG_DVB,
4319 .inputs = {{
4320 .name = name_comp1,
4321 .vmux = 3,
4322 .amux = LINE1,
4323 }, {
4324 .name = name_svideo,
4325 .vmux = 8,
4326 .amux = LINE1,
4327 } },
4328 },
Hermann Pitton7b5b3f12008-04-22 14:42:12 -03004329 [SAA7134_BOARD_CREATIX_CTX953] = {
4330 .name = "Medion/Creatix CTX953 Hybrid",
4331 .audio_clock = 0x00187de7,
4332 .tuner_type = TUNER_PHILIPS_TDA8290,
4333 .radio_type = UNSET,
4334 .tuner_addr = ADDR_UNSET,
4335 .radio_addr = ADDR_UNSET,
4336 .tuner_config = 0,
4337 .mpeg = SAA7134_MPEG_DVB,
4338 .inputs = {{
4339 .name = name_tv,
4340 .vmux = 1,
4341 .amux = TV,
4342 .tv = 1,
4343 }, {
4344 .name = name_comp1,
4345 .vmux = 0,
4346 .amux = LINE1,
4347 }, {
4348 .name = name_svideo,
4349 .vmux = 8,
4350 .amux = LINE1,
4351 } },
4352 },
Russell Kliese6a6179b62008-04-22 14:42:12 -03004353 [SAA7134_BOARD_MSI_TVANYWHERE_AD11] = {
4354 .name = "MSI TV@nywhere A/D v1.1",
4355 .audio_clock = 0x00187de7,
4356 .tuner_type = TUNER_PHILIPS_TDA8290,
4357 .radio_type = UNSET,
4358 .tuner_addr = ADDR_UNSET,
4359 .radio_addr = ADDR_UNSET,
4360 .tuner_config = 2,
4361 .mpeg = SAA7134_MPEG_DVB,
4362 .gpiomask = 0x0200000,
4363 .inputs = { {
4364 .name = name_tv,
4365 .vmux = 1,
4366 .amux = TV,
4367 .tv = 1,
4368 }, {
4369 .name = name_comp1,
4370 .vmux = 3,
4371 .amux = LINE1,
4372 }, {
4373 .name = name_svideo,
4374 .vmux = 8,
4375 .amux = LINE1,
4376 } },
4377 .radio = {
4378 .name = name_radio,
4379 .amux = TV,
4380 .gpio = 0x0200000,
4381 },
4382 },
Mauro Carvalho Chehabbc36a682008-04-22 14:45:27 -03004383 [SAA7134_BOARD_AVERMEDIA_CARDBUS_506] = {
Mauro Carvalho Chehabd9ae6dd2008-04-22 14:46:06 -03004384 .name = "AVerMedia Cardbus TV/Radio (E506R)",
4385 .audio_clock = 0x187de7,
4386 .tuner_type = TUNER_XC2028,
Mauro Carvalho Chehab6e741712008-04-22 14:46:07 -03004387 .radio_type = UNSET,
Mauro Carvalho Chehabd9ae6dd2008-04-22 14:46:06 -03004388 .tuner_addr = ADDR_UNSET,
4389 .radio_addr = ADDR_UNSET,
Mauro Carvalho Chehabbc36a682008-04-22 14:45:27 -03004390 .mpeg = SAA7134_MPEG_DVB,
Mauro Carvalho Chehabbc36a682008-04-22 14:45:27 -03004391 .inputs = {{
4392 .name = name_tv,
4393 .vmux = 1,
4394 .amux = TV,
4395 .tv = 1,
4396 }, {
Tim Farrington31489362009-01-15 09:58:55 -03004397 .name = name_comp1,
4398 .vmux = 3,
Tim Farringtone5e4cd82008-06-29 11:54:08 -03004399 .amux = LINE1,
Mauro Carvalho Chehabbc36a682008-04-22 14:45:27 -03004400 }, {
4401 .name = name_svideo,
4402 .vmux = 8,
Tim Farrington31489362009-01-15 09:58:55 -03004403 .amux = LINE2,
Mauro Carvalho Chehabbc36a682008-04-22 14:45:27 -03004404 } },
4405 .radio = {
4406 .name = name_radio,
4407 .amux = TV,
4408 },
4409 },
4410 [SAA7134_BOARD_AVERMEDIA_A16D] = {
4411 .name = "AVerMedia Hybrid TV/Radio (A16D)",
4412 .audio_clock = 0x187de7,
4413 .tuner_type = TUNER_XC2028,
Mauro Carvalho Chehab6e741712008-04-22 14:46:07 -03004414 .radio_type = UNSET,
Mauro Carvalho Chehabd9ae6dd2008-04-22 14:46:06 -03004415 .tuner_addr = ADDR_UNSET,
4416 .radio_addr = ADDR_UNSET,
Hans Verkuilf87086e2008-07-18 00:50:58 -03004417 .mpeg = SAA7134_MPEG_DVB,
Mauro Carvalho Chehabbc36a682008-04-22 14:45:27 -03004418 .inputs = {{
4419 .name = name_tv,
4420 .vmux = 1,
4421 .amux = TV,
4422 .tv = 1,
4423 }, {
4424 .name = name_svideo,
4425 .vmux = 8,
4426 .amux = LINE1,
Dan Taylor9c7ecaf2008-06-27 13:29:41 -03004427 }, {
4428 .name = name_comp,
4429 .vmux = 0,
4430 .amux = LINE1,
Mauro Carvalho Chehabbc36a682008-04-22 14:45:27 -03004431 } },
4432 .radio = {
4433 .name = name_radio,
Tim Farrington6e501a32008-06-15 13:33:42 -03004434 .amux = TV,
Mauro Carvalho Chehabbc36a682008-04-22 14:45:27 -03004435 },
4436 },
4437 [SAA7134_BOARD_AVERMEDIA_M115] = {
4438 .name = "Avermedia M115",
4439 .audio_clock = 0x187de7,
4440 .tuner_type = TUNER_XC2028,
Mauro Carvalho Chehab6e741712008-04-22 14:46:07 -03004441 .radio_type = UNSET,
Mauro Carvalho Chehabd9ae6dd2008-04-22 14:46:06 -03004442 .tuner_addr = ADDR_UNSET,
4443 .radio_addr = ADDR_UNSET,
Mauro Carvalho Chehabbc36a682008-04-22 14:45:27 -03004444 .inputs = {{
4445 .name = name_tv,
4446 .vmux = 1,
4447 .amux = TV,
4448 .tv = 1,
4449 }, {
4450 .name = name_comp1,
4451 .vmux = 3,
4452 .amux = LINE1,
4453 }, {
4454 .name = name_svideo,
4455 .vmux = 8,
4456 .amux = LINE2,
4457 } },
4458 },
4459 [SAA7134_BOARD_VIDEOMATE_T750] = {
4460 /* John Newbigin <jn@it.swin.edu.au> */
4461 .name = "Compro VideoMate T750",
4462 .audio_clock = 0x00187de7,
4463 .tuner_type = TUNER_XC2028,
Mauro Carvalho Chehab6e741712008-04-22 14:46:07 -03004464 .radio_type = UNSET,
Mauro Carvalho Chehabd9ae6dd2008-04-22 14:46:06 -03004465 .tuner_addr = ADDR_UNSET,
4466 .radio_addr = ADDR_UNSET,
Mauro Carvalho Chehabbc36a682008-04-22 14:45:27 -03004467 .mpeg = SAA7134_MPEG_DVB,
4468 .inputs = {{
4469 .name = name_tv,
4470 .vmux = 3,
4471 .amux = TV,
4472 .tv = 1,
4473 }, {
4474 .name = name_comp1,
4475 .vmux = 1,
4476 .amux = LINE2,
4477 }, {
4478 .name = name_svideo,
4479 .vmux = 8,
4480 .amux = LINE2,
4481 } },
4482 .radio = {
4483 .name = name_radio,
4484 .amux = TV,
4485 }
Matthias Schwarzottfc9d8ed2008-04-08 21:45:08 -03004486 },
4487 [SAA7134_BOARD_AVERMEDIA_A700_PRO] = {
4488 /* Matthias Schwarzott <zzam@gentoo.org> */
4489 .name = "Avermedia DVB-S Pro A700",
4490 .audio_clock = 0x00187de7,
4491 .tuner_type = TUNER_ABSENT,
4492 .radio_type = UNSET,
4493 .tuner_addr = ADDR_UNSET,
4494 .radio_addr = ADDR_UNSET,
Matthias Schwarzott04574182009-02-24 12:35:16 -03004495 .mpeg = SAA7134_MPEG_DVB,
Matthias Schwarzottfc9d8ed2008-04-08 21:45:08 -03004496 .inputs = { {
4497 .name = name_comp,
4498 .vmux = 1,
4499 .amux = LINE1,
4500 }, {
4501 .name = name_svideo,
4502 .vmux = 6,
4503 .amux = LINE1,
4504 } },
4505 },
4506 [SAA7134_BOARD_AVERMEDIA_A700_HYBRID] = {
4507 /* Matthias Schwarzott <zzam@gentoo.org> */
4508 .name = "Avermedia DVB-S Hybrid+FM A700",
4509 .audio_clock = 0x00187de7,
4510 .tuner_type = TUNER_ABSENT, /* TUNER_XC2028 */
4511 .radio_type = UNSET,
4512 .tuner_addr = ADDR_UNSET,
4513 .radio_addr = ADDR_UNSET,
Matthias Schwarzott04574182009-02-24 12:35:16 -03004514 .mpeg = SAA7134_MPEG_DVB,
Matthias Schwarzottfc9d8ed2008-04-08 21:45:08 -03004515 .inputs = { {
4516 .name = name_comp,
4517 .vmux = 1,
4518 .amux = LINE1,
4519 }, {
4520 .name = name_svideo,
4521 .vmux = 6,
4522 .amux = LINE1,
4523 } },
4524 },
Igor Kuznetsov02505272008-04-26 14:53:48 -03004525 [SAA7134_BOARD_BEHOLD_H6] = {
4526 /* Igor Kuznetsov <igk@igk.ru> */
4527 .name = "Beholder BeholdTV H6",
4528 .audio_clock = 0x00187de7,
4529 .tuner_type = TUNER_PHILIPS_FMD1216ME_MK3,
4530 .radio_type = UNSET,
4531 .tuner_addr = ADDR_UNSET,
4532 .radio_addr = ADDR_UNSET,
4533 .tda9887_conf = TDA9887_PRESENT,
Dmitri Belimovf204ae42008-12-23 03:51:38 -03004534 .mpeg = SAA7134_MPEG_DVB,
Igor Kuznetsov02505272008-04-26 14:53:48 -03004535 .inputs = {{
4536 .name = name_tv,
4537 .vmux = 3,
4538 .amux = TV,
4539 .tv = 1,
4540 }, {
4541 .name = name_comp1,
4542 .vmux = 1,
4543 .amux = LINE1,
4544 }, {
4545 .name = name_svideo,
4546 .vmux = 8,
4547 .amux = LINE1,
4548 } },
4549 .radio = {
4550 .name = name_radio,
4551 .amux = LINE2,
4552 },
Igor Kuznetsov02505272008-04-26 14:53:48 -03004553 },
hermann pitton301e9d62008-09-14 17:49:14 -03004554 [SAA7134_BOARD_ASUSTeK_TIGER_3IN1] = {
4555 .name = "Asus Tiger 3in1",
4556 .audio_clock = 0x00187de7,
4557 .tuner_type = TUNER_PHILIPS_TDA8290,
4558 .radio_type = UNSET,
4559 .tuner_addr = ADDR_UNSET,
4560 .radio_addr = ADDR_UNSET,
4561 .tuner_config = 2,
4562 .gpiomask = 1 << 21,
4563 .mpeg = SAA7134_MPEG_DVB,
4564 .inputs = {{
4565 .name = name_tv,
4566 .vmux = 1,
4567 .amux = TV,
4568 .tv = 1,
4569 }, {
4570 .name = name_comp,
4571 .vmux = 0,
4572 .amux = LINE2,
4573 }, {
4574 .name = name_svideo,
4575 .vmux = 8,
4576 .amux = LINE2,
4577 } },
4578 .radio = {
4579 .name = name_radio,
4580 .amux = TV,
4581 .gpio = 0x0200000,
4582 },
4583 },
Mauro Carvalho Chehab9b000192008-06-26 17:03:00 -03004584 [SAA7134_BOARD_REAL_ANGEL_220] = {
4585 .name = "Zogis Real Angel 220",
4586 .audio_clock = 0x00187de7,
4587 .tuner_type = TUNER_TNF_5335MF,
4588 .radio_type = UNSET,
4589 .tuner_addr = ADDR_UNSET,
4590 .radio_addr = ADDR_UNSET,
4591 .gpiomask = 0x801a8087,
4592 .inputs = { {
4593 .name = name_tv,
4594 .vmux = 3,
4595 .amux = LINE2,
4596 .tv = 1,
4597 .gpio = 0x624000,
Hermann Pitton028165a2008-10-04 21:37:36 -03004598 }, {
Mauro Carvalho Chehab9b000192008-06-26 17:03:00 -03004599 .name = name_comp1,
4600 .vmux = 1,
4601 .amux = LINE1,
4602 .gpio = 0x624000,
4603 }, {
4604 .name = name_svideo,
4605 .vmux = 1,
4606 .amux = LINE1,
4607 .gpio = 0x624000,
4608 } },
4609 .radio = {
4610 .name = name_radio,
4611 .amux = LINE2,
4612 .gpio = 0x624001,
4613 },
4614 .mute = {
4615 .name = name_mute,
4616 .amux = TV,
4617 },
4618 },
Adam Gloverf689d902008-05-06 03:20:27 -03004619 [SAA7134_BOARD_ADS_INSTANT_HDTV_PCI] = {
4620 .name = "ADS Tech Instant HDTV",
4621 .audio_clock = 0x00187de7,
4622 .tuner_type = TUNER_PHILIPS_TUV1236D,
4623 .radio_type = UNSET,
4624 .tuner_addr = ADDR_UNSET,
4625 .radio_addr = ADDR_UNSET,
4626 .tda9887_conf = TDA9887_PRESENT,
4627 .mpeg = SAA7134_MPEG_DVB,
4628 .inputs = { {
4629 .name = name_tv,
4630 .vmux = 1,
4631 .amux = TV,
4632 .tv = 1,
4633 }, {
4634 .name = name_comp,
Hermann Pitton028165a2008-10-04 21:37:36 -03004635 .vmux = 4,
4636 .amux = LINE1,
Adam Gloverf689d902008-05-06 03:20:27 -03004637 }, {
4638 .name = name_svideo,
4639 .vmux = 8,
4640 .amux = LINE1,
4641 } },
4642 },
Hermann Pitton028165a2008-10-04 21:37:36 -03004643 [SAA7134_BOARD_ASUSTeK_TIGER] = {
4644 .name = "Asus Tiger Rev:1.00",
4645 .audio_clock = 0x00187de7,
4646 .tuner_type = TUNER_PHILIPS_TDA8290,
4647 .radio_type = UNSET,
4648 .tuner_addr = ADDR_UNSET,
4649 .radio_addr = ADDR_UNSET,
4650 .tuner_config = 0,
4651 .mpeg = SAA7134_MPEG_DVB,
4652 .gpiomask = 0x0200000,
4653 .inputs = { {
4654 .name = name_tv,
4655 .vmux = 1,
4656 .amux = TV,
4657 .tv = 1,
4658 }, {
4659 .name = name_comp1,
4660 .vmux = 3,
4661 .amux = LINE2,
4662 }, {
4663 .name = name_comp2,
4664 .vmux = 0,
4665 .amux = LINE2,
4666 }, {
4667 .name = name_svideo,
4668 .vmux = 8,
4669 .amux = LINE2,
4670 } },
4671 .radio = {
4672 .name = name_radio,
4673 .amux = TV,
4674 .gpio = 0x0200000,
4675 },
4676 },
Mauro Carvalho Chehab26d5f3a2008-12-07 13:19:29 -03004677 [SAA7134_BOARD_KWORLD_PLUS_TV_ANALOG] = {
4678 .name = "Kworld Plus TV Analog Lite PCI",
4679 .audio_clock = 0x00187de7,
4680 .tuner_type = TUNER_YMEC_TVF_5533MF,
4681 .radio_type = TUNER_TEA5767,
4682 .tuner_addr = ADDR_UNSET,
Hans Verkuilfac69862009-01-17 12:17:14 -03004683 .radio_addr = 0x60,
Mauro Carvalho Chehab26d5f3a2008-12-07 13:19:29 -03004684 .gpiomask = 0x80000700,
4685 .inputs = { {
4686 .name = name_tv,
4687 .vmux = 1,
4688 .amux = LINE2,
4689 .tv = 1,
4690 .gpio = 0x100,
4691 }, {
4692 .name = name_comp1,
4693 .vmux = 3,
4694 .amux = LINE1,
4695 .gpio = 0x200,
4696 }, {
4697 .name = name_svideo,
4698 .vmux = 8,
4699 .amux = LINE1,
4700 .gpio = 0x200,
4701 } },
4702 .radio = {
4703 .name = name_radio,
4704 .vmux = 1,
4705 .amux = LINE1,
4706 .gpio = 0x100,
4707 },
4708 .mute = {
4709 .name = name_mute,
4710 .vmux = 8,
4711 .amux = 2,
4712 },
4713 },
Pham Thanh Nam6a2d8022008-12-30 23:26:09 -03004714 [SAA7134_BOARD_AVERMEDIA_GO_007_FM_PLUS] = {
4715 .name = "Avermedia AVerTV GO 007 FM Plus",
4716 .audio_clock = 0x00187de7,
4717 .tuner_type = TUNER_PHILIPS_TDA8290,
4718 .radio_type = UNSET,
4719 .tuner_addr = ADDR_UNSET,
4720 .radio_addr = ADDR_UNSET,
4721 .gpiomask = 0x00300003,
4722 /* .gpiomask = 0x8c240003, */
4723 .inputs = { {
4724 .name = name_tv,
4725 .vmux = 1,
4726 .amux = TV,
4727 .tv = 1,
4728 .gpio = 0x01,
4729 }, {
4730 .name = name_svideo,
4731 .vmux = 6,
4732 .amux = LINE1,
4733 .gpio = 0x02,
4734 } },
4735 .radio = {
4736 .name = name_radio,
4737 .amux = TV,
4738 .gpio = 0x00300001,
4739 },
4740 .mute = {
4741 .name = name_mute,
4742 .amux = TV,
4743 .gpio = 0x01,
4744 },
4745 },
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07004746};
4747
Linus Torvalds1da177e2005-04-16 15:20:36 -07004748const unsigned int saa7134_bcount = ARRAY_SIZE(saa7134_boards);
4749
4750/* ------------------------------------------------------------------ */
4751/* PCI ids + subsystem IDs */
4752
4753struct pci_device_id saa7134_pci_tbl[] = {
4754 {
4755 .vendor = PCI_VENDOR_ID_PHILIPS,
4756 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
4757 .subvendor = PCI_VENDOR_ID_PHILIPS,
4758 .subdevice = 0x2001,
4759 .driver_data = SAA7134_BOARD_PROTEUS_PRO,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07004760 },{
Linus Torvalds1da177e2005-04-16 15:20:36 -07004761 .vendor = PCI_VENDOR_ID_PHILIPS,
4762 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
4763 .subvendor = PCI_VENDOR_ID_PHILIPS,
4764 .subdevice = 0x2001,
4765 .driver_data = SAA7134_BOARD_PROTEUS_PRO,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07004766 },{
Linus Torvalds1da177e2005-04-16 15:20:36 -07004767 .vendor = PCI_VENDOR_ID_PHILIPS,
4768 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
4769 .subvendor = PCI_VENDOR_ID_PHILIPS,
4770 .subdevice = 0x6752,
4771 .driver_data = SAA7134_BOARD_EMPRESS,
4772 },{
4773 .vendor = PCI_VENDOR_ID_PHILIPS,
4774 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07004775 .subvendor = 0x1131,
4776 .subdevice = 0x4e85,
Linus Torvalds1da177e2005-04-16 15:20:36 -07004777 .driver_data = SAA7134_BOARD_MONSTERTV,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07004778 },{
4779 .vendor = PCI_VENDOR_ID_PHILIPS,
4780 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
Michael Krufky7df64e82005-11-08 21:36:16 -08004781 .subvendor = 0x153b,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07004782 .subdevice = 0x1142,
4783 .driver_data = SAA7134_BOARD_CINERGY400,
4784 },{
4785 .vendor = PCI_VENDOR_ID_PHILIPS,
4786 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
Michael Krufky7df64e82005-11-08 21:36:16 -08004787 .subvendor = 0x153b,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07004788 .subdevice = 0x1143,
4789 .driver_data = SAA7134_BOARD_CINERGY600,
4790 },{
4791 .vendor = PCI_VENDOR_ID_PHILIPS,
4792 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
Michael Krufky7df64e82005-11-08 21:36:16 -08004793 .subvendor = 0x153b,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07004794 .subdevice = 0x1158,
4795 .driver_data = SAA7134_BOARD_CINERGY600_MK3,
4796 },{
Linus Torvalds1da177e2005-04-16 15:20:36 -07004797 .vendor = PCI_VENDOR_ID_PHILIPS,
4798 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
4799 .subvendor = 0x153b,
4800 .subdevice = 0x1162,
4801 .driver_data = SAA7134_BOARD_CINERGY400_CARDBUS,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07004802 },{
Linus Torvalds1da177e2005-04-16 15:20:36 -07004803 .vendor = PCI_VENDOR_ID_PHILIPS,
4804 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
Zac Bowlingf49ba8d2006-06-19 19:49:20 -03004805 .subvendor = 0x5169,
4806 .subdevice = 0x0138,
4807 .driver_data = SAA7134_BOARD_FLYVIDEO3000_NTSC,
4808 },{
4809 .vendor = PCI_VENDOR_ID_PHILIPS,
4810 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
Linus Torvalds1da177e2005-04-16 15:20:36 -07004811 .subvendor = 0x5168,
4812 .subdevice = 0x0138,
4813 .driver_data = SAA7134_BOARD_FLYVIDEO3000,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07004814 },{
Linus Torvalds1da177e2005-04-16 15:20:36 -07004815 .vendor = PCI_VENDOR_ID_PHILIPS,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07004816 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
4817 .subvendor = 0x4e42, /* "Typhoon PCI Capture TV Card" Art.No. 50673 */
4818 .subdevice = 0x0138,
4819 .driver_data = SAA7134_BOARD_FLYVIDEO3000,
4820 },{
Linus Torvalds1da177e2005-04-16 15:20:36 -07004821 .vendor = PCI_VENDOR_ID_PHILIPS,
4822 .device = PCI_DEVICE_ID_PHILIPS_SAA7130,
4823 .subvendor = 0x5168,
4824 .subdevice = 0x0138,
4825 .driver_data = SAA7134_BOARD_FLYVIDEO2000,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07004826 },{
Linus Torvalds1da177e2005-04-16 15:20:36 -07004827 .vendor = PCI_VENDOR_ID_PHILIPS,
Peter Missel10b7a902006-01-23 17:11:06 -02004828 .device = PCI_DEVICE_ID_PHILIPS_SAA7130,
4829 .subvendor = 0x4e42, /* Typhoon */
4830 .subdevice = 0x0138, /* LifeView FlyTV Prime30 OEM */
4831 .driver_data = SAA7134_BOARD_FLYVIDEO2000,
4832 },{
4833 .vendor = PCI_VENDOR_ID_PHILIPS,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07004834 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
Linus Torvalds1da177e2005-04-16 15:20:36 -07004835 .subvendor = 0x5168,
4836 .subdevice = 0x0212, /* minipci, LR212 */
4837 .driver_data = SAA7134_BOARD_FLYTVPLATINUM_MINI,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07004838 },{
Linus Torvalds1da177e2005-04-16 15:20:36 -07004839 .vendor = PCI_VENDOR_ID_PHILIPS,
4840 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
Mauro Carvalho Chehab058afaf2005-11-08 21:36:49 -08004841 .subvendor = 0x14c0,
4842 .subdevice = 0x1212, /* minipci, LR1212 */
4843 .driver_data = SAA7134_BOARD_FLYTVPLATINUM_MINI2,
4844 },{
4845 .vendor = PCI_VENDOR_ID_PHILIPS,
4846 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
Glen Gray2d14f782005-11-08 21:36:12 -08004847 .subvendor = 0x4e42,
4848 .subdevice = 0x0212, /* OEM minipci, LR212 */
4849 .driver_data = SAA7134_BOARD_FLYTVPLATINUM_MINI,
4850 },{
4851 .vendor = PCI_VENDOR_ID_PHILIPS,
4852 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
Peter Missel10e92062005-05-01 08:59:21 -07004853 .subvendor = 0x5168, /* Animation Technologies (LifeView) */
Simon Farnsworthb39423a2007-05-01 10:01:20 -03004854 .subdevice = 0x0214, /* Standard PCI, LR214 Rev E and earlier (SAA7135) */
4855 .driver_data = SAA7134_BOARD_FLYTVPLATINUM_FM,
4856 },{
4857 .vendor = PCI_VENDOR_ID_PHILIPS,
4858 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
4859 .subvendor = 0x5168, /* Animation Technologies (LifeView) */
4860 .subdevice = 0x5214, /* Standard PCI, LR214 Rev F onwards (SAA7131) */
Linus Torvalds1da177e2005-04-16 15:20:36 -07004861 .driver_data = SAA7134_BOARD_FLYTVPLATINUM_FM,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07004862 },{
Linus Torvalds1da177e2005-04-16 15:20:36 -07004863 .vendor = PCI_VENDOR_ID_PHILIPS,
Peter Missel10e92062005-05-01 08:59:21 -07004864 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
4865 .subvendor = 0x1489, /* KYE */
4866 .subdevice = 0x0214, /* Genius VideoWonder ProTV */
4867 .driver_data = SAA7134_BOARD_FLYTVPLATINUM_FM, /* is an LR214WF actually */
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07004868 },{
Peter Missel10e92062005-05-01 08:59:21 -07004869 .vendor = PCI_VENDOR_ID_PHILIPS,
Linus Torvalds1da177e2005-04-16 15:20:36 -07004870 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
4871 .subvendor = 0x16be,
4872 .subdevice = 0x0003,
4873 .driver_data = SAA7134_BOARD_MD7134,
4874 },{
4875 .vendor = PCI_VENDOR_ID_PHILIPS,
Hermann Pittona5525682008-12-05 19:49:34 -03004876 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
4877 .subvendor = 0x16be, /* CTX946 analog TV, HW mpeg, DVB-T */
4878 .subdevice = 0x5000, /* only analog TV and DVB-T for now */
4879 .driver_data = SAA7134_BOARD_MD7134,
4880 }, {
4881 .vendor = PCI_VENDOR_ID_PHILIPS,
Linus Torvalds1da177e2005-04-16 15:20:36 -07004882 .device = PCI_DEVICE_ID_PHILIPS_SAA7130,
4883 .subvendor = 0x1048,
4884 .subdevice = 0x226b,
4885 .driver_data = SAA7134_BOARD_ELSA,
4886 },{
4887 .vendor = PCI_VENDOR_ID_PHILIPS,
4888 .device = PCI_DEVICE_ID_PHILIPS_SAA7130,
4889 .subvendor = 0x1048,
Michael Krufky9a7871b2006-02-27 15:22:49 -03004890 .subdevice = 0x226a,
Linus Torvalds1da177e2005-04-16 15:20:36 -07004891 .driver_data = SAA7134_BOARD_ELSA_500TV,
4892 },{
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07004893 .vendor = PCI_VENDOR_ID_PHILIPS,
Tamuki Shoichid0456d12006-02-27 00:08:04 -03004894 .device = PCI_DEVICE_ID_PHILIPS_SAA7130,
Michael Krufkyba524292006-02-27 14:38:17 -03004895 .subvendor = 0x1048,
4896 .subdevice = 0x226c,
Tamuki Shoichid0456d12006-02-27 00:08:04 -03004897 .driver_data = SAA7134_BOARD_ELSA_700TV,
4898 },{
4899 .vendor = PCI_VENDOR_ID_PHILIPS,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07004900 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
4901 .subvendor = PCI_VENDOR_ID_ASUSTEK,
4902 .subdevice = 0x4842,
4903 .driver_data = SAA7134_BOARD_ASUSTeK_TVFM7134,
Linus Torvalds1da177e2005-04-16 15:20:36 -07004904 },{
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07004905 .vendor = PCI_VENDOR_ID_PHILIPS,
4906 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
4907 .subvendor = PCI_VENDOR_ID_ASUSTEK,
4908 .subdevice = 0x4845,
4909 .driver_data = SAA7134_BOARD_ASUSTeK_TVFM7135,
Linus Torvalds1da177e2005-04-16 15:20:36 -07004910 },{
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07004911 .vendor = PCI_VENDOR_ID_PHILIPS,
4912 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
4913 .subvendor = PCI_VENDOR_ID_ASUSTEK,
4914 .subdevice = 0x4830,
4915 .driver_data = SAA7134_BOARD_ASUSTeK_TVFM7134,
Linus Torvalds1da177e2005-04-16 15:20:36 -07004916 },{
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07004917 .vendor = PCI_VENDOR_ID_PHILIPS,
4918 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
4919 .subvendor = PCI_VENDOR_ID_ASUSTEK,
4920 .subdevice = 0x4843,
4921 .driver_data = SAA7134_BOARD_ASUSTEK_TVFM7133,
4922 },{
4923 .vendor = PCI_VENDOR_ID_PHILIPS,
4924 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
4925 .subvendor = PCI_VENDOR_ID_ASUSTEK,
4926 .subdevice = 0x4840,
4927 .driver_data = SAA7134_BOARD_ASUSTeK_TVFM7134,
4928 },{
Linus Torvalds1da177e2005-04-16 15:20:36 -07004929 .vendor = PCI_VENDOR_ID_PHILIPS,
4930 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
4931 .subvendor = PCI_VENDOR_ID_PHILIPS,
4932 .subdevice = 0xfe01,
4933 .driver_data = SAA7134_BOARD_TVSTATION_RDS,
4934 },{
4935 .vendor = PCI_VENDOR_ID_PHILIPS,
4936 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
4937 .subvendor = 0x1894,
4938 .subdevice = 0xfe01,
4939 .driver_data = SAA7134_BOARD_TVSTATION_RDS,
4940 },{
4941 .vendor = PCI_VENDOR_ID_PHILIPS,
4942 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
4943 .subvendor = 0x1894,
4944 .subdevice = 0xa006,
4945 .driver_data = SAA7134_BOARD_TVSTATION_DVR,
4946 },{
4947 .vendor = PCI_VENDOR_ID_PHILIPS,
4948 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07004949 .subvendor = 0x1131,
4950 .subdevice = 0x7133,
Linus Torvalds1da177e2005-04-16 15:20:36 -07004951 .driver_data = SAA7134_BOARD_VA1000POWER,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07004952 },{
Linus Torvalds1da177e2005-04-16 15:20:36 -07004953 .vendor = PCI_VENDOR_ID_PHILIPS,
4954 .device = PCI_DEVICE_ID_PHILIPS_SAA7130,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07004955 .subvendor = PCI_VENDOR_ID_PHILIPS,
4956 .subdevice = 0x2001,
Linus Torvalds1da177e2005-04-16 15:20:36 -07004957 .driver_data = SAA7134_BOARD_10MOONSTVMASTER,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07004958 },{
Linus Torvalds1da177e2005-04-16 15:20:36 -07004959 .vendor = PCI_VENDOR_ID_PHILIPS,
4960 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07004961 .subvendor = 0x185b,
4962 .subdevice = 0xc100,
Linus Torvalds1da177e2005-04-16 15:20:36 -07004963 .driver_data = SAA7134_BOARD_VIDEOMATE_TV,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07004964 },{
Linus Torvalds1da177e2005-04-16 15:20:36 -07004965 .vendor = PCI_VENDOR_ID_PHILIPS,
4966 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07004967 .subvendor = 0x185b,
4968 .subdevice = 0xc100,
Linus Torvalds1da177e2005-04-16 15:20:36 -07004969 .driver_data = SAA7134_BOARD_VIDEOMATE_TV_GOLD_PLUS,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07004970 },{
Linus Torvalds1da177e2005-04-16 15:20:36 -07004971 .vendor = PCI_VENDOR_ID_PHILIPS,
4972 .device = PCI_DEVICE_ID_PHILIPS_SAA7130,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07004973 .subvendor = PCI_VENDOR_ID_MATROX,
4974 .subdevice = 0x48d0,
Linus Torvalds1da177e2005-04-16 15:20:36 -07004975 .driver_data = SAA7134_BOARD_CRONOS_PLUS,
4976 },{
4977 .vendor = PCI_VENDOR_ID_PHILIPS,
4978 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07004979 .subvendor = 0x1461, /* Avermedia Technologies Inc */
4980 .subdevice = 0xa70b,
Linus Torvalds1da177e2005-04-16 15:20:36 -07004981 .driver_data = SAA7134_BOARD_MD2819,
4982 },{
4983 .vendor = PCI_VENDOR_ID_PHILIPS,
Matthias Schwarzottfc9d8ed2008-04-08 21:45:08 -03004984 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
4985 .subvendor = 0x1461, /* Avermedia Technologies Inc */
4986 .subdevice = 0xa7a1,
4987 .driver_data = SAA7134_BOARD_AVERMEDIA_A700_PRO,
4988 }, {
4989 .vendor = PCI_VENDOR_ID_PHILIPS,
4990 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
4991 .subvendor = 0x1461, /* Avermedia Technologies Inc */
4992 .subdevice = 0xa7a2,
4993 .driver_data = SAA7134_BOARD_AVERMEDIA_A700_HYBRID,
4994 }, {
4995 .vendor = PCI_VENDOR_ID_PHILIPS,
Linus Torvalds1da177e2005-04-16 15:20:36 -07004996 .device = PCI_DEVICE_ID_PHILIPS_SAA7130,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07004997 .subvendor = 0x1461, /* Avermedia Technologies Inc */
4998 .subdevice = 0x2115,
Linus Torvalds1da177e2005-04-16 15:20:36 -07004999 .driver_data = SAA7134_BOARD_AVERMEDIA_STUDIO_305,
5000 },{
5001 .vendor = PCI_VENDOR_ID_PHILIPS,
5002 .device = PCI_DEVICE_ID_PHILIPS_SAA7130,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07005003 .subvendor = 0x1461, /* Avermedia Technologies Inc */
5004 .subdevice = 0x2108,
Linus Torvalds1da177e2005-04-16 15:20:36 -07005005 .driver_data = SAA7134_BOARD_AVERMEDIA_305,
5006 },{
5007 .vendor = PCI_VENDOR_ID_PHILIPS,
5008 .device = PCI_DEVICE_ID_PHILIPS_SAA7130,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07005009 .subvendor = 0x1461, /* Avermedia Technologies Inc */
5010 .subdevice = 0x10ff,
Linus Torvalds1da177e2005-04-16 15:20:36 -07005011 .driver_data = SAA7134_BOARD_AVERMEDIA_DVD_EZMAKER,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07005012 },{
Linus Torvalds1da177e2005-04-16 15:20:36 -07005013 /* AVerMedia CardBus */
5014 .vendor = PCI_VENDOR_ID_PHILIPS,
5015 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07005016 .subvendor = 0x1461, /* Avermedia Technologies Inc */
5017 .subdevice = 0xd6ee,
Linus Torvalds1da177e2005-04-16 15:20:36 -07005018 .driver_data = SAA7134_BOARD_AVERMEDIA_CARDBUS,
5019 },{
5020 /* TransGear 3000TV */
5021 .vendor = PCI_VENDOR_ID_PHILIPS,
5022 .device = PCI_DEVICE_ID_PHILIPS_SAA7130,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07005023 .subvendor = 0x1461, /* Avermedia Technologies Inc */
5024 .subdevice = 0x050c,
Linus Torvalds1da177e2005-04-16 15:20:36 -07005025 .driver_data = SAA7134_BOARD_TG3000TV,
5026 },{
Linus Torvalds1da177e2005-04-16 15:20:36 -07005027 .vendor = PCI_VENDOR_ID_PHILIPS,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07005028 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
5029 .subvendor = 0x11bd,
5030 .subdevice = 0x002b,
5031 .driver_data = SAA7134_BOARD_PINNACLE_PCTV_STEREO,
5032 },{
5033 .vendor = PCI_VENDOR_ID_PHILIPS,
5034 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
5035 .subvendor = 0x11bd,
5036 .subdevice = 0x002d,
5037 .driver_data = SAA7134_BOARD_PINNACLE_300I_DVBT_PAL,
5038 },{
5039 .vendor = PCI_VENDOR_ID_PHILIPS,
5040 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
5041 .subvendor = 0x1019,
5042 .subdevice = 0x4cb4,
5043 .driver_data = SAA7134_BOARD_ECS_TVP3XP,
5044 },{
5045 .vendor = PCI_VENDOR_ID_PHILIPS,
5046 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
5047 .subvendor = 0x1019,
5048 .subdevice = 0x4cb5,
5049 .driver_data = SAA7134_BOARD_ECS_TVP3XP_4CB5,
5050 },{
5051 .vendor = PCI_VENDOR_ID_PHILIPS,
Simon Farnsworthb39423a2007-05-01 10:01:20 -03005052 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
5053 .subvendor = 0x1019,
5054 .subdevice = 0x4cb6,
5055 .driver_data = SAA7134_BOARD_ECS_TVP3XP_4CB6,
5056 },{
5057 .vendor = PCI_VENDOR_ID_PHILIPS,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07005058 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
5059 .subvendor = 0x12ab,
5060 .subdevice = 0x0800,
5061 .driver_data = SAA7134_BOARD_UPMOST_PURPLE_TV,
Linus Torvalds1da177e2005-04-16 15:20:36 -07005062 },{
5063 .vendor = PCI_VENDOR_ID_PHILIPS,
5064 .device = PCI_DEVICE_ID_PHILIPS_SAA7130,
Michael Krufky7df64e82005-11-08 21:36:16 -08005065 .subvendor = 0x153b,
Linus Torvalds1da177e2005-04-16 15:20:36 -07005066 .subdevice = 0x1152,
5067 .driver_data = SAA7134_BOARD_CINERGY200,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07005068 },{
Linus Torvalds1da177e2005-04-16 15:20:36 -07005069 .vendor = PCI_VENDOR_ID_PHILIPS,
5070 .device = PCI_DEVICE_ID_PHILIPS_SAA7130,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07005071 .subvendor = 0x185b,
5072 .subdevice = 0xc100,
Linus Torvalds1da177e2005-04-16 15:20:36 -07005073 .driver_data = SAA7134_BOARD_VIDEOMATE_TV_PVR,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07005074 },{
Linus Torvalds1da177e2005-04-16 15:20:36 -07005075 .vendor = PCI_VENDOR_ID_PHILIPS,
Linus Torvalds1da177e2005-04-16 15:20:36 -07005076 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
5077 .subvendor = 0x1461, /* Avermedia Technologies Inc */
5078 .subdevice = 0x9715,
Mauro Carvalho Chehabac19ecc2005-06-23 22:05:09 -07005079 .driver_data = SAA7134_BOARD_AVERMEDIA_STUDIO_307,
5080 },{
5081 .vendor = PCI_VENDOR_ID_PHILIPS,
5082 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
5083 .subvendor = 0x1461, /* Avermedia Technologies Inc */
5084 .subdevice = 0xa70a,
Linus Torvalds1da177e2005-04-16 15:20:36 -07005085 .driver_data = SAA7134_BOARD_AVERMEDIA_307,
5086 },{
5087 .vendor = PCI_VENDOR_ID_PHILIPS,
5088 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
5089 .subvendor = 0x185b,
5090 .subdevice = 0xc200,
5091 .driver_data = SAA7134_BOARD_VIDEOMATE_GOLD_PLUS,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07005092 },{
Linus Torvalds1da177e2005-04-16 15:20:36 -07005093 .vendor = PCI_VENDOR_ID_PHILIPS,
5094 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
5095 .subvendor = 0x1540,
5096 .subdevice = 0x9524,
5097 .driver_data = SAA7134_BOARD_PROVIDEO_PV952,
5098
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07005099 },{
Linus Torvalds1da177e2005-04-16 15:20:36 -07005100 .vendor = PCI_VENDOR_ID_PHILIPS,
5101 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
5102 .subvendor = 0x5168,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07005103 .subdevice = 0x0502, /* Cardbus version */
Peter Missel10b7a902006-01-23 17:11:06 -02005104 .driver_data = SAA7134_BOARD_FLYDVBT_DUO_CARDBUS,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07005105 },{
5106 .vendor = PCI_VENDOR_ID_PHILIPS,
5107 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
5108 .subvendor = 0x5168,
5109 .subdevice = 0x0306, /* PCI version */
Linus Torvalds1da177e2005-04-16 15:20:36 -07005110 .driver_data = SAA7134_BOARD_FLYDVBTDUO,
Mauro Carvalho Chehabac19ecc2005-06-23 22:05:09 -07005111 },{
5112 .vendor = PCI_VENDOR_ID_PHILIPS,
5113 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
5114 .subvendor = 0x1461, /* Avermedia Technologies Inc */
5115 .subdevice = 0xf31f,
5116 .driver_data = SAA7134_BOARD_AVERMEDIA_GO_007_FM,
5117
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07005118 },{
Mauro Carvalho Chehabac19ecc2005-06-23 22:05:09 -07005119 .vendor = PCI_VENDOR_ID_PHILIPS,
Mauro Carvalho Chehab36f6bb92008-06-26 17:03:00 -03005120 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
5121 .subvendor = 0x1461, /* Avermedia Technologies Inc */
5122 .subdevice = 0xf11d,
5123 .driver_data = SAA7134_BOARD_AVERMEDIA_M135A,
5124 }, {
5125 .vendor = PCI_VENDOR_ID_PHILIPS,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07005126 .device = PCI_DEVICE_ID_PHILIPS_SAA7130,
5127 .subvendor = PCI_VENDOR_ID_PHILIPS,
5128 .subdevice = 0x2004,
5129 .driver_data = SAA7134_BOARD_PHILIPS_TOUGH,
5130 },{
5131 .vendor = PCI_VENDOR_ID_PHILIPS,
5132 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
Mauro Carvalho Chehabac19ecc2005-06-23 22:05:09 -07005133 .subvendor = 0x1421,
5134 .subdevice = 0x0350, /* PCI version */
5135 .driver_data = SAA7134_BOARD_ADS_INSTANT_TV,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07005136 },{
Mauro Carvalho Chehabac19ecc2005-06-23 22:05:09 -07005137 .vendor = PCI_VENDOR_ID_PHILIPS,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07005138 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
Mauro Carvalho Chehabac19ecc2005-06-23 22:05:09 -07005139 .subvendor = 0x1421,
Ricardo Cerqueira41d70c22006-01-09 15:25:34 -02005140 .subdevice = 0x0351, /* PCI version, new revision */
5141 .driver_data = SAA7134_BOARD_ADS_INSTANT_TV,
5142 },{
5143 .vendor = PCI_VENDOR_ID_PHILIPS,
5144 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
5145 .subvendor = 0x1421,
Mauro Carvalho Chehabac19ecc2005-06-23 22:05:09 -07005146 .subdevice = 0x0370, /* cardbus version */
5147 .driver_data = SAA7134_BOARD_ADS_INSTANT_TV,
Hartmut Hackmannd4b0aba2005-11-08 21:38:44 -08005148 },{
5149 .vendor = PCI_VENDOR_ID_PHILIPS,
5150 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
5151 .subvendor = 0x1421,
5152 .subdevice = 0x1370, /* cardbus version */
5153 .driver_data = SAA7134_BOARD_ADS_INSTANT_TV,
Linus Torvalds1da177e2005-04-16 15:20:36 -07005154
Peter Missel10b7a902006-01-23 17:11:06 -02005155 },{
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07005156 .vendor = PCI_VENDOR_ID_PHILIPS,
5157 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
Peter Missel10b7a902006-01-23 17:11:06 -02005158 .subvendor = 0x4e42, /* Typhoon */
5159 .subdevice = 0x0502, /* LifeView LR502 OEM */
5160 .driver_data = SAA7134_BOARD_FLYDVBT_DUO_CARDBUS,
Mauro Carvalho Chehab2f180712005-09-09 13:03:46 -07005161 },{
5162 .vendor = PCI_VENDOR_ID_PHILIPS,
5163 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
5164 .subvendor = 0x1043,
5165 .subdevice = 0x0210, /* mini pci NTSC version */
5166 .driver_data = SAA7134_BOARD_FLYTV_DIGIMATRIX,
5167 },{
5168 .vendor = PCI_VENDOR_ID_PHILIPS,
5169 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
5170 .subvendor = 0x1043,
5171 .subdevice = 0x0210, /* mini pci PAL/SECAM version */
Michael Krufky5d5c9902005-11-08 21:38:08 -08005172 .driver_data = SAA7134_BOARD_ASUSTEK_DIGIMATRIX_TV,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07005173
5174 },{
Nickolay V. Shmyreva8ff4172005-11-08 21:36:16 -08005175 .vendor = PCI_VENDOR_ID_PHILIPS,
5176 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
5177 .subvendor = 0x0000, /* It shouldn't break anything, since subdevice id seems unique */
5178 .subdevice = 0x4091,
5179 .driver_data = SAA7134_BOARD_BEHOLD_409FM,
Mauro Carvalho Chehab4ac97912005-11-08 21:37:43 -08005180 },{
5181 .vendor = PCI_VENDOR_ID_PHILIPS,
5182 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
5183 .subvendor = 0x5456, /* GoTView */
5184 .subdevice = 0x7135,
5185 .driver_data = SAA7134_BOARD_GOTVIEW_7135,
5186 },{
Hartmut Hackmann2cf36ac2005-11-08 21:36:32 -08005187 .vendor = PCI_VENDOR_ID_PHILIPS,
5188 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
5189 .subvendor = PCI_VENDOR_ID_PHILIPS,
5190 .subdevice = 0x2004,
5191 .driver_data = SAA7134_BOARD_PHILIPS_EUROPA,
Mauro Carvalho Chehab4ac97912005-11-08 21:37:43 -08005192 },{
Hartmut Hackmann2cf36ac2005-11-08 21:36:32 -08005193 .vendor = PCI_VENDOR_ID_PHILIPS,
5194 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
5195 .subvendor = 0x185b,
5196 .subdevice = 0xc900,
5197 .driver_data = SAA7134_BOARD_VIDEOMATE_DVBT_300,
Mauro Carvalho Chehab4ac97912005-11-08 21:37:43 -08005198 },{
Hartmut Hackmann2cf36ac2005-11-08 21:36:32 -08005199 .vendor = PCI_VENDOR_ID_PHILIPS,
5200 .device = PCI_DEVICE_ID_PHILIPS_SAA7130,
5201 .subvendor = 0x185b,
5202 .subdevice = 0xc901,
5203 .driver_data = SAA7134_BOARD_VIDEOMATE_DVBT_200,
5204 },{
Mauro Carvalho Chehab4ac97912005-11-08 21:37:43 -08005205 .vendor = PCI_VENDOR_ID_PHILIPS,
5206 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
5207 .subvendor = 0x1435,
5208 .subdevice = 0x7350,
5209 .driver_data = SAA7134_BOARD_RTD_VFG7350,
Nickolay V. Shmyrevbb881f12005-11-08 21:36:35 -08005210 },{
Mauro Carvalho Chehab4ac97912005-11-08 21:37:43 -08005211 .vendor = PCI_VENDOR_ID_PHILIPS,
5212 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
5213 .subvendor = 0x1435,
5214 .subdevice = 0x7330,
5215 .driver_data = SAA7134_BOARD_RTD_VFG7330,
Pieter Palmerscf1c5d12005-11-08 21:37:40 -08005216 },{
Mauro Carvalho Chehab4ac97912005-11-08 21:37:43 -08005217 .vendor = PCI_VENDOR_ID_PHILIPS,
5218 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
5219 .subvendor = 0x1461,
5220 .subdevice = 0x1044,
5221 .driver_data = SAA7134_BOARD_AVERMEDIA_AVERTVHD_A180,
5222 },{
Pieter Palmerscf1c5d12005-11-08 21:37:40 -08005223 .vendor = PCI_VENDOR_ID_PHILIPS,
5224 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
5225 .subvendor = 0x1131,
5226 .subdevice = 0x4ee9,
5227 .driver_data = SAA7134_BOARD_MONSTERTV_MOBILE,
Mauro Carvalho Chehab4ac97912005-11-08 21:37:43 -08005228 },{
Ricardo Cerqueirac2f6f9d2005-11-08 21:37:51 -08005229 .vendor = PCI_VENDOR_ID_PHILIPS,
5230 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
5231 .subvendor = 0x11bd,
5232 .subdevice = 0x002e,
5233 .driver_data = SAA7134_BOARD_PINNACLE_PCTV_110i,
5234 },{
Hermann Pitton28f02242005-11-08 21:38:03 -08005235 .vendor = PCI_VENDOR_ID_PHILIPS,
5236 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
5237 .subvendor = 0x1043,
5238 .subdevice = 0x4862,
5239 .driver_data = SAA7134_BOARD_ASUSTeK_P7131_DUAL,
Pavel Mihaylovc3d93192005-11-08 21:38:43 -08005240 },{
Hartmut Hackmann90e9df72005-11-08 21:38:42 -08005241 .vendor = PCI_VENDOR_ID_PHILIPS,
5242 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
5243 .subvendor = PCI_VENDOR_ID_PHILIPS,
5244 .subdevice = 0x2018,
5245 .driver_data = SAA7134_BOARD_PHILIPS_TIGER,
Hermann Pitton28f02242005-11-08 21:38:03 -08005246 },{
Ricardo Cerqueira80d2ad92005-11-13 16:08:01 -08005247 .vendor = PCI_VENDOR_ID_PHILIPS,
5248 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
5249 .subvendor = 0x1462,
Hermann Pittonb6667e52008-01-12 14:43:48 -03005250 .subdevice = 0x6231, /* tda8275a, ks003 IR */
5251 .driver_data = SAA7134_BOARD_MSI_TVATANYWHERE_PLUS,
5252 },{
5253 .vendor = PCI_VENDOR_ID_PHILIPS,
5254 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
5255 .subvendor = 0x1462,
5256 .subdevice = 0x8624, /* tda8275, ks003 IR */
Ricardo Cerqueira80d2ad92005-11-13 16:08:01 -08005257 .driver_data = SAA7134_BOARD_MSI_TVATANYWHERE_PLUS,
5258 },{
Jörg Schummerf639c9b2006-01-09 15:25:01 -02005259 .vendor = PCI_VENDOR_ID_PHILIPS,
5260 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
5261 .subvendor = 0x153b,
5262 .subdevice = 0x1160,
5263 .driver_data = SAA7134_BOARD_CINERGY250PCI,
5264 },{
Peter Missel4aa6ba52006-01-09 15:32:45 -02005265 .vendor = PCI_VENDOR_ID_PHILIPS,
5266 .device = PCI_DEVICE_ID_PHILIPS_SAA7133, /* SAA 7131E */
5267 .subvendor = 0x5168,
5268 .subdevice = 0x0319,
5269 .driver_data = SAA7134_BOARD_FLYDVB_TRIO,
5270 },{
Jose Alberto Regueroa78d0bf2006-02-07 06:25:14 -02005271 .vendor = PCI_VENDOR_ID_PHILIPS,
Hartmut Hackmann1e9bfb92006-08-07 14:03:32 -03005272 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
Jose Alberto Regueroa78d0bf2006-02-07 06:25:14 -02005273 .subvendor = 0x1461,
5274 .subdevice = 0x2c05,
5275 .driver_data = SAA7134_BOARD_AVERMEDIA_777,
5276 },{
Giampiero Giancipoli3d8466e2006-02-07 06:49:09 -02005277 .vendor = PCI_VENDOR_ID_PHILIPS,
5278 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
5279 .subvendor = 0x5168,
5280 .subdevice = 0x0301,
5281 .driver_data = SAA7134_BOARD_FLYDVBT_LR301,
5282 },{
Hartmut Hackmanndf42eaf2006-02-07 06:49:10 -02005283 .vendor = PCI_VENDOR_ID_PHILIPS,
5284 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
5285 .subvendor = 0x0331,
5286 .subdevice = 0x1421,
5287 .driver_data = SAA7134_BOARD_ADS_DUO_CARDBUS_PTV331,
5288 },{
Peter Hartshorn3dfb7292006-02-07 06:49:13 -02005289 .vendor = PCI_VENDOR_ID_PHILIPS,
5290 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
5291 .subvendor = 0x17de,
5292 .subdevice = 0x7201,
5293 .driver_data = SAA7134_BOARD_TEVION_DVBT_220RF,
5294 },{
Andrew Burri3e1410a2006-02-27 00:08:23 -03005295 .vendor = PCI_VENDOR_ID_PHILIPS,
Simon Farnsworthb39423a2007-05-01 10:01:20 -03005296 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
5297 .subvendor = 0x17de,
5298 .subdevice = 0x7250,
5299 .driver_data = SAA7134_BOARD_KWORLD_DVBT_210,
5300 },{
5301 .vendor = PCI_VENDOR_ID_PHILIPS,
Andrew Burri3e1410a2006-02-27 00:08:23 -03005302 .device = PCI_DEVICE_ID_PHILIPS_SAA7133, /* SAA7135HL */
5303 .subvendor = 0x17de,
5304 .subdevice = 0x7350,
5305 .driver_data = SAA7134_BOARD_KWORLD_ATSC110,
5306 },{
Rickard Osser68593af2006-03-11 17:14:12 -03005307 .vendor = PCI_VENDOR_ID_PHILIPS,
Eric Sandeen0ac3a5b2007-10-08 16:13:02 -03005308 .device = PCI_DEVICE_ID_PHILIPS_SAA7133, /* SAA7135HL */
5309 .subvendor = 0x17de,
5310 .subdevice = 0x7352,
5311 .driver_data = SAA7134_BOARD_KWORLD_ATSC110, /* ATSC 115 */
5312 },{
5313 .vendor = PCI_VENDOR_ID_PHILIPS,
Rickard Osser68593af2006-03-11 17:14:12 -03005314 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
5315 .subvendor = 0x1461,
5316 .subdevice = 0x7360,
5317 .driver_data = SAA7134_BOARD_AVERMEDIA_A169_B,
5318 },{
5319 .vendor = PCI_VENDOR_ID_PHILIPS,
5320 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
5321 .subvendor = 0x1461,
5322 .subdevice = 0x6360,
5323 .driver_data = SAA7134_BOARD_AVERMEDIA_A169_B1,
5324 },{
Michael Krufkyba3a5a82006-03-14 19:02:12 -03005325 .vendor = PCI_VENDOR_ID_PHILIPS,
5326 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
5327 .subvendor = 0x16be,
5328 .subdevice = 0x0005,
5329 .driver_data = SAA7134_BOARD_MD7134_BRIDGE_2,
5330 },{
Igor M. Liplianine2ac28f2006-08-08 09:10:10 -03005331 .vendor = PCI_VENDOR_ID_PHILIPS,
5332 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
5333 .subvendor = 0x5168,
5334 .subdevice = 0x0300,
5335 .driver_data = SAA7134_BOARD_FLYDVBS_LR300,
5336 },{
5337 .vendor = PCI_VENDOR_ID_PHILIPS,
5338 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
5339 .subvendor = 0x4e42,
5340 .subdevice = 0x0300,/* LR300 */
5341 .driver_data = SAA7134_BOARD_FLYDVBS_LR300,
5342 },{
Hartmut Hackmann42e6b3b2006-03-27 19:04:48 -03005343 .vendor = PCI_VENDOR_ID_PHILIPS,
5344 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
5345 .subvendor = 0x1489,
5346 .subdevice = 0x0301,
5347 .driver_data = SAA7134_BOARD_FLYDVBT_LR301,
5348 },{
5349 .vendor = PCI_VENDOR_ID_PHILIPS,
5350 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
5351 .subvendor = 0x5168, /* Animation Technologies (LifeView) */
5352 .subdevice = 0x0304,
5353 .driver_data = SAA7134_BOARD_FLYTVPLATINUM_FM,
5354 },{
Hartmut Hackmannd95b8942006-03-27 19:39:30 -03005355 .vendor = PCI_VENDOR_ID_PHILIPS,
5356 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
5357 .subvendor = 0x5168,
5358 .subdevice = 0x3306,
5359 .driver_data = SAA7134_BOARD_FLYDVBT_HYBRID_CARDBUS,
5360 },{
5361 .vendor = PCI_VENDOR_ID_PHILIPS,
5362 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
5363 .subvendor = 0x5168,
5364 .subdevice = 0x3502, /* whats the difference to 0x3306 ?*/
5365 .driver_data = SAA7134_BOARD_FLYDVBT_HYBRID_CARDBUS,
5366 },{
Hartmut Hackmann5eda2272006-08-07 14:03:32 -03005367 .vendor = PCI_VENDOR_ID_PHILIPS,
5368 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
Hermann Pitton29e4e052008-01-20 19:49:51 -03005369 .subvendor = 0x5168,
5370 .subdevice = 0x3307, /* FlyDVB-T Hybrid Mini PCI */
5371 .driver_data = SAA7134_BOARD_FLYDVBT_HYBRID_CARDBUS,
5372 }, {
5373 .vendor = PCI_VENDOR_ID_PHILIPS,
5374 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
Hartmut Hackmann5eda2272006-08-07 14:03:32 -03005375 .subvendor = 0x16be,
5376 .subdevice = 0x0007,
5377 .driver_data = SAA7134_BOARD_MEDION_MD8800_QUADRO,
5378 },{
5379 .vendor = PCI_VENDOR_ID_PHILIPS,
5380 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
5381 .subvendor = 0x16be,
5382 .subdevice = 0x0008,
5383 .driver_data = SAA7134_BOARD_MEDION_MD8800_QUADRO,
5384 },{
Hartmut Hackmann1e9bfb92006-08-07 14:03:32 -03005385 .vendor = PCI_VENDOR_ID_PHILIPS,
5386 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
Hermann Pitton728b92a2008-01-20 19:42:01 -03005387 .subvendor = 0x16be,
5388 .subdevice = 0x000d, /* triple CTX948_V1.1.1 */
5389 .driver_data = SAA7134_BOARD_MEDION_MD8800_QUADRO,
5390 }, {
5391 .vendor = PCI_VENDOR_ID_PHILIPS,
5392 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
Hartmut Hackmann1e9bfb92006-08-07 14:03:32 -03005393 .subvendor = 0x1461,
5394 .subdevice = 0x2c05,
5395 .driver_data = SAA7134_BOARD_AVERMEDIA_777,
5396 },{
Hartmut Hackmann2c591942006-08-07 14:03:32 -03005397 .vendor = PCI_VENDOR_ID_PHILIPS,
5398 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
5399 .subvendor = 0x1489,
5400 .subdevice = 0x0502, /* Cardbus version */
5401 .driver_data = SAA7134_BOARD_FLYDVBT_DUO_CARDBUS,
5402 },{
Michal Majchrowiczb04c1ba2006-09-13 16:42:42 -03005403 .vendor = PCI_VENDOR_ID_PHILIPS,
5404 .device = PCI_DEVICE_ID_PHILIPS_SAA7130,
5405 .subvendor = 0x0919, /* Philips Proteus PRO 2309 */
5406 .subdevice = 0x2003,
5407 .driver_data = SAA7134_BOARD_PROTEUS_2309,
5408 },{
Petr Baudis515c2082006-09-26 16:53:53 -03005409 .vendor = PCI_VENDOR_ID_PHILIPS,
5410 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
5411 .subvendor = 0x1461,
5412 .subdevice = 0x2c00,
5413 .driver_data = SAA7134_BOARD_AVERMEDIA_A16AR,
5414 },{
Hartmut Hackmanncf146ca2006-10-02 20:49:24 -03005415 .vendor = PCI_VENDOR_ID_PHILIPS,
5416 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
5417 .subvendor = 0x1043,
5418 .subdevice = 0x4860,
5419 .driver_data = SAA7134_BOARD_ASUS_EUROPA2_HYBRID,
5420 },{
Hartmut Hackmann587d2fd2006-10-06 19:13:50 -03005421 .vendor = PCI_VENDOR_ID_PHILIPS,
5422 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
5423 .subvendor = 0x11bd,
5424 .subdevice = 0x002f,
5425 .driver_data = SAA7134_BOARD_PINNACLE_PCTV_310i,
5426 },{
Mikhail Fedotov3ac706d2006-10-06 20:23:47 -03005427 .vendor = PCI_VENDOR_ID_PHILIPS,
5428 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
5429 .subvendor = 0x1461, /* Avermedia Technologies Inc */
5430 .subdevice = 0x9715,
5431 .driver_data = SAA7134_BOARD_AVERMEDIA_STUDIO_507,
5432 },{
Hartmut Hackmann83646812006-10-12 20:38:51 -03005433 .vendor = PCI_VENDOR_ID_PHILIPS,
5434 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
5435 .subvendor = 0x1043,
5436 .subdevice = 0x4876,
Hartmut Hackmannf3eec0c02007-03-14 20:33:55 -03005437 .driver_data = SAA7134_BOARD_ASUSTeK_P7131_HYBRID_LNA,
Hartmut Hackmann83646812006-10-12 20:38:51 -03005438 },{
Thomas Gentyc6e53da2006-11-05 14:17:30 -03005439 .vendor = PCI_VENDOR_ID_PHILIPS,
5440 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
5441 .subvendor = 0x0070,
Michael Krufkyddf12222007-11-15 10:01:11 -03005442 .subdevice = 0x6700,
5443 .driver_data = SAA7134_BOARD_HAUPPAUGE_HVR1110,
5444 },{
5445 .vendor = PCI_VENDOR_ID_PHILIPS,
5446 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
5447 .subvendor = 0x0070,
Thomas Gentyc6e53da2006-11-05 14:17:30 -03005448 .subdevice = 0x6701,
5449 .driver_data = SAA7134_BOARD_HAUPPAUGE_HVR1110,
5450 },{
Hartmut Hackmann550a9a52006-11-15 21:31:54 -03005451 .vendor = PCI_VENDOR_ID_PHILIPS,
5452 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
Michael Krufkyddf12222007-11-15 10:01:11 -03005453 .subvendor = 0x0070,
5454 .subdevice = 0x6702,
5455 .driver_data = SAA7134_BOARD_HAUPPAUGE_HVR1110,
5456 },{
5457 .vendor = PCI_VENDOR_ID_PHILIPS,
5458 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
5459 .subvendor = 0x0070,
5460 .subdevice = 0x6703,
5461 .driver_data = SAA7134_BOARD_HAUPPAUGE_HVR1110,
5462 },{
5463 .vendor = PCI_VENDOR_ID_PHILIPS,
5464 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
5465 .subvendor = 0x0070,
5466 .subdevice = 0x6704,
5467 .driver_data = SAA7134_BOARD_HAUPPAUGE_HVR1110,
5468 },{
5469 .vendor = PCI_VENDOR_ID_PHILIPS,
5470 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
5471 .subvendor = 0x0070,
5472 .subdevice = 0x6705,
5473 .driver_data = SAA7134_BOARD_HAUPPAUGE_HVR1110,
5474 },{
5475 .vendor = PCI_VENDOR_ID_PHILIPS,
5476 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
Michael Krufkyf9996c92009-02-28 17:45:17 -03005477 .subvendor = 0x0070,
5478 .subdevice = 0x6706,
Michael Krufkye8944282009-03-10 17:02:07 -03005479 .driver_data = SAA7134_BOARD_HAUPPAUGE_HVR1120,
Michael Krufkyf9996c92009-02-28 17:45:17 -03005480 },{
5481 .vendor = PCI_VENDOR_ID_PHILIPS,
5482 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
5483 .subvendor = 0x0070,
5484 .subdevice = 0x6707,
5485 .driver_data = SAA7134_BOARD_HAUPPAUGE_HVR1110R3,
5486 },{
5487 .vendor = PCI_VENDOR_ID_PHILIPS,
5488 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
5489 .subvendor = 0x0070,
5490 .subdevice = 0x6708,
Michael Krufkye8944282009-03-10 17:02:07 -03005491 .driver_data = SAA7134_BOARD_HAUPPAUGE_HVR1120,
Michael Krufkyf9996c92009-02-28 17:45:17 -03005492 },{
5493 .vendor = PCI_VENDOR_ID_PHILIPS,
5494 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
5495 .subvendor = 0x0070,
5496 .subdevice = 0x6709,
5497 .driver_data = SAA7134_BOARD_HAUPPAUGE_HVR1110R3,
5498 },{
5499 .vendor = PCI_VENDOR_ID_PHILIPS,
5500 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
5501 .subvendor = 0x0070,
5502 .subdevice = 0x670a,
5503 .driver_data = SAA7134_BOARD_HAUPPAUGE_HVR1110R3,
5504 },{
5505 .vendor = PCI_VENDOR_ID_PHILIPS,
5506 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
Hartmut Hackmann550a9a52006-11-15 21:31:54 -03005507 .subvendor = 0x153b,
5508 .subdevice = 0x1172,
5509 .driver_data = SAA7134_BOARD_CINERGY_HT_PCMCIA,
5510 },{
Steven Walterd1158f42006-12-20 09:29:09 -03005511 .vendor = PCI_VENDOR_ID_PHILIPS,
5512 .device = PCI_DEVICE_ID_PHILIPS_SAA7130,
5513 .subvendor = PCI_VENDOR_ID_PHILIPS,
5514 .subdevice = 0x2342,
5515 .driver_data = SAA7134_BOARD_ENCORE_ENLTV,
5516 },{
Juan Pablo Sormanic36c4592006-12-27 12:46:36 -03005517 .vendor = PCI_VENDOR_ID_PHILIPS,
5518 .device = PCI_DEVICE_ID_PHILIPS_SAA7130,
5519 .subvendor = 0x1131,
5520 .subdevice = 0x2341,
5521 .driver_data = SAA7134_BOARD_ENCORE_ENLTV,
5522 },{
5523 .vendor = PCI_VENDOR_ID_PHILIPS,
5524 .device = PCI_DEVICE_ID_PHILIPS_SAA7130,
5525 .subvendor = 0x3016,
5526 .subdevice = 0x2344,
5527 .driver_data = SAA7134_BOARD_ENCORE_ENLTV,
5528 },{
5529 .vendor = PCI_VENDOR_ID_PHILIPS,
5530 .device = PCI_DEVICE_ID_PHILIPS_SAA7130,
5531 .subvendor = 0x1131,
5532 .subdevice = 0x230f,
5533 .driver_data = SAA7134_BOARD_ENCORE_ENLTV_FM,
5534 },{
Michael Krufky9de271e2007-01-16 18:36:40 -03005535 .vendor = PCI_VENDOR_ID_PHILIPS,
Mauro Carvalho Chehabbf1ece62008-06-26 17:03:00 -03005536 .device = PCI_DEVICE_ID_PHILIPS_SAA7130,
5537 .subvendor = 0x1a7f,
5538 .subdevice = 0x2008,
5539 .driver_data = SAA7134_BOARD_ENCORE_ENLTV_FM53,
5540 }, {
5541 .vendor = PCI_VENDOR_ID_PHILIPS,
Michael Krufky9de271e2007-01-16 18:36:40 -03005542 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
5543 .subvendor = 0x153b,
5544 .subdevice = 0x1175,
5545 .driver_data = SAA7134_BOARD_CINERGY_HT_PCI,
5546 },{
Markus Rechbergere95d3172007-04-27 12:31:19 -03005547 .vendor = PCI_VENDOR_ID_PHILIPS,
5548 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
5549 .subvendor = 0x1461, /* Avermedia Technologies Inc */
5550 .subdevice = 0xf31e,
5551 .driver_data = SAA7134_BOARD_AVERMEDIA_M102,
5552 },{
Peter Misseldb483672007-04-27 12:31:20 -03005553 .vendor = PCI_VENDOR_ID_PHILIPS,
5554 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
5555 .subvendor = 0x4E42, /* MSI */
5556 .subdevice = 0x0306, /* TV@nywhere DUO */
5557 .driver_data = SAA7134_BOARD_FLYDVBTDUO,
5558 },{
Hartmut Hackmanne06cea42007-03-13 20:58:29 -03005559 .vendor = PCI_VENDOR_ID_PHILIPS,
5560 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
5561 .subvendor = 0x1043,
5562 .subdevice = 0x4871,
5563 .driver_data = SAA7134_BOARD_ASUS_P7131_4871,
5564 },{
5565 .vendor = PCI_VENDOR_ID_PHILIPS,
5566 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
5567 .subvendor = 0x1043,
Hermann Pitton028165a2008-10-04 21:37:36 -03005568 .subdevice = 0x4857, /* REV:1.00 */
5569 .driver_data = SAA7134_BOARD_ASUSTeK_TIGER,
Hartmut Hackmanne06cea42007-03-13 20:58:29 -03005570 },{
James T Klaas53958b32007-05-01 10:48:09 -03005571 .vendor = PCI_VENDOR_ID_PHILIPS,
5572 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
5573 .subvendor = 0x0919, /* SinoVideo PCI 2309 Proteus (7134) */
5574 .subdevice = 0x2003, /* OEM cardbus */
5575 .driver_data = SAA7134_BOARD_SABRENT_TV_PCB05,
5576 },{
Tony Wanaaccb822007-05-10 12:16:47 -03005577 .vendor = PCI_VENDOR_ID_PHILIPS,
5578 .device = PCI_DEVICE_ID_PHILIPS_SAA7130,
5579 .subvendor = PCI_VENDOR_ID_PHILIPS,
5580 .subdevice = 0x2304,
5581 .driver_data = SAA7134_BOARD_10MOONSTVMASTER3,
5582 },{
Edgar Simod90d9f52007-08-20 14:14:50 -03005583 .vendor = PCI_VENDOR_ID_PHILIPS,
5584 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
5585 .subvendor = 0x1461, /* Avermedia Technologies Inc */
5586 .subdevice = 0xf01d, /* AVerTV DVB-T Super 007 */
5587 .driver_data = SAA7134_BOARD_AVERMEDIA_SUPER_007,
5588 },{
Mauro Carvalho Chehab593f18c2007-10-07 02:17:09 -03005589 .vendor = PCI_VENDOR_ID_PHILIPS,
Andrey J. Melnikoff (TEMHOTA)e8018c92008-01-07 05:17:39 -03005590 .device = PCI_DEVICE_ID_PHILIPS_SAA7130,
Andrey J. Melnikoff (TEMHOTA)e8018c92008-01-07 05:17:39 -03005591 .subvendor = 0x0000,
5592 .subdevice = 0x4016,
5593 .driver_data = SAA7134_BOARD_BEHOLD_401,
5594 },{
5595 .vendor = PCI_VENDOR_ID_PHILIPS,
5596 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
Andrey J. Melnikoff (TEMHOTA)e8018c92008-01-07 05:17:39 -03005597 .subvendor = 0x0000,
5598 .subdevice = 0x4036,
5599 .driver_data = SAA7134_BOARD_BEHOLD_403,
5600 },{
5601 .vendor = PCI_VENDOR_ID_PHILIPS,
5602 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
5603 .subvendor = 0x0000,
5604 .subdevice = 0x4037,
5605 .driver_data = SAA7134_BOARD_BEHOLD_403FM,
5606 },{
5607 .vendor = PCI_VENDOR_ID_PHILIPS,
5608 .device = PCI_DEVICE_ID_PHILIPS_SAA7130,
5609 .subvendor = 0x0000,
5610 .subdevice = 0x4050,
5611 .driver_data = SAA7134_BOARD_BEHOLD_405,
5612 },{
5613 .vendor = PCI_VENDOR_ID_PHILIPS,
5614 .device = PCI_DEVICE_ID_PHILIPS_SAA7130,
5615 .subvendor = 0x0000,
5616 .subdevice = 0x4051,
5617 .driver_data = SAA7134_BOARD_BEHOLD_405FM,
5618 },{
5619 .vendor = PCI_VENDOR_ID_PHILIPS,
5620 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
5621 .subvendor = 0x0000,
5622 .subdevice = 0x4070,
5623 .driver_data = SAA7134_BOARD_BEHOLD_407,
5624 },{
5625 .vendor = PCI_VENDOR_ID_PHILIPS,
5626 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
5627 .subvendor = 0x0000,
5628 .subdevice = 0x4071,
5629 .driver_data = SAA7134_BOARD_BEHOLD_407FM,
5630 },{
5631 .vendor = PCI_VENDOR_ID_PHILIPS,
5632 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
5633 .subvendor = 0x0000,
5634 .subdevice = 0x4090,
5635 .driver_data = SAA7134_BOARD_BEHOLD_409,
5636 },{
5637 .vendor = PCI_VENDOR_ID_PHILIPS,
5638 .device = PCI_DEVICE_ID_PHILIPS_SAA7130,
5639 .subvendor = 0x0000,
5640 .subdevice = 0x5051,
5641 .driver_data = SAA7134_BOARD_BEHOLD_505FM,
5642 },{
5643 .vendor = PCI_VENDOR_ID_PHILIPS,
5644 .device = PCI_DEVICE_ID_PHILIPS_SAA7130,
5645 .subvendor = 0x0000,
5646 .subdevice = 0x505B,
5647 .driver_data = SAA7134_BOARD_BEHOLD_505FM,
5648 },{
5649 .vendor = PCI_VENDOR_ID_PHILIPS,
5650 .device = PCI_DEVICE_ID_PHILIPS_SAA7130,
5651 .subvendor = 0x5ace,
5652 .subdevice = 0x5050,
5653 .driver_data = SAA7134_BOARD_BEHOLD_505FM,
5654 },{
5655 .vendor = PCI_VENDOR_ID_PHILIPS,
5656 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
5657 .subvendor = 0x0000,
5658 .subdevice = 0x5071,
5659 .driver_data = SAA7134_BOARD_BEHOLD_507_9FM,
5660 },{
5661 .vendor = PCI_VENDOR_ID_PHILIPS,
5662 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
5663 .subvendor = 0x0000,
5664 .subdevice = 0x507B,
5665 .driver_data = SAA7134_BOARD_BEHOLD_507_9FM,
5666 },{
5667 .vendor = PCI_VENDOR_ID_PHILIPS,
5668 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
5669 .subvendor = 0x5ace,
5670 .subdevice = 0x5070,
5671 .driver_data = SAA7134_BOARD_BEHOLD_507_9FM,
5672 },{
5673 .vendor = PCI_VENDOR_ID_PHILIPS,
5674 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
5675 .subvendor = 0x5ace,
5676 .subdevice = 0x5090,
5677 .driver_data = SAA7134_BOARD_BEHOLD_507_9FM,
5678 },{
5679 .vendor = PCI_VENDOR_ID_PHILIPS,
5680 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
5681 .subvendor = 0x0000,
5682 .subdevice = 0x5201,
5683 .driver_data = SAA7134_BOARD_BEHOLD_COLUMBUS_TVFM,
5684 },{
5685 .vendor = PCI_VENDOR_ID_PHILIPS,
5686 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
5687 .subvendor = 0x5ace,
5688 .subdevice = 0x6070,
5689 .driver_data = SAA7134_BOARD_BEHOLD_607_9FM,
5690 },{
5691 .vendor = PCI_VENDOR_ID_PHILIPS,
5692 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
5693 .subvendor = 0x5ace,
5694 .subdevice = 0x6071,
5695 .driver_data = SAA7134_BOARD_BEHOLD_607_9FM,
5696 },{
5697 .vendor = PCI_VENDOR_ID_PHILIPS,
5698 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
5699 .subvendor = 0x5ace,
5700 .subdevice = 0x6072,
5701 .driver_data = SAA7134_BOARD_BEHOLD_607_9FM,
5702 },{
5703 .vendor = PCI_VENDOR_ID_PHILIPS,
5704 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
5705 .subvendor = 0x5ace,
5706 .subdevice = 0x6073,
5707 .driver_data = SAA7134_BOARD_BEHOLD_607_9FM,
5708 },{
5709 .vendor = PCI_VENDOR_ID_PHILIPS,
5710 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
5711 .subvendor = 0x5ace,
5712 .subdevice = 0x6090,
5713 .driver_data = SAA7134_BOARD_BEHOLD_607_9FM,
5714 },{
5715 .vendor = PCI_VENDOR_ID_PHILIPS,
5716 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
5717 .subvendor = 0x5ace,
5718 .subdevice = 0x6091,
5719 .driver_data = SAA7134_BOARD_BEHOLD_607_9FM,
5720 },{
5721 .vendor = PCI_VENDOR_ID_PHILIPS,
5722 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
5723 .subvendor = 0x5ace,
5724 .subdevice = 0x6092,
5725 .driver_data = SAA7134_BOARD_BEHOLD_607_9FM,
5726 },{
5727 .vendor = PCI_VENDOR_ID_PHILIPS,
5728 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
5729 .subvendor = 0x5ace,
5730 .subdevice = 0x6093,
5731 .driver_data = SAA7134_BOARD_BEHOLD_607_9FM,
5732 },{
5733 .vendor = PCI_VENDOR_ID_PHILIPS,
5734 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
5735 .subvendor = 0x5ace,
5736 .subdevice = 0x6190,
5737 .driver_data = SAA7134_BOARD_BEHOLD_M6,
5738 },{
5739 .vendor = PCI_VENDOR_ID_PHILIPS,
5740 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
5741 .subvendor = 0x5ace,
5742 .subdevice = 0x6193,
Dmitry Belimov878cf2a2008-06-10 14:22:00 -03005743 .driver_data = SAA7134_BOARD_BEHOLD_M6_EXTRA,
Igor Kuznetsov5fe95e02008-04-26 14:59:08 -03005744 }, {
5745 .vendor = PCI_VENDOR_ID_PHILIPS,
5746 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
5747 .subvendor = 0x5ace,
5748 .subdevice = 0x6191,
Dmitry Belimov878cf2a2008-06-10 14:22:00 -03005749 .driver_data = SAA7134_BOARD_BEHOLD_M63,
Andrey J. Melnikoff (TEMHOTA)e8018c92008-01-07 05:17:39 -03005750 },{
5751 .vendor = PCI_VENDOR_ID_PHILIPS,
Mauro Carvalho Chehab593f18c2007-10-07 02:17:09 -03005752 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
5753 .subvendor = 0x4e42,
5754 .subdevice = 0x3502,
Hermann Pitton4ba24372008-01-20 19:27:51 -03005755 .driver_data = SAA7134_BOARD_FLYDVBT_HYBRID_CARDBUS,
5756 }, {
5757 .vendor = PCI_VENDOR_ID_PHILIPS,
5758 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
5759 .subvendor = 0x1822, /*Twinhan Technology Co. Ltd*/
5760 .subdevice = 0x0022,
5761 .driver_data = SAA7134_BOARD_TWINHAN_DTV_DVB_3056,
Hermann Pitton7b5b3f12008-04-22 14:42:12 -03005762 }, {
5763 .vendor = PCI_VENDOR_ID_PHILIPS,
5764 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
5765 .subvendor = 0x16be,
5766 .subdevice = 0x0010, /* Medion version CTX953_V.1.4.3 */
5767 .driver_data = SAA7134_BOARD_CREATIX_CTX953,
Russell Kliese6a6179b62008-04-22 14:42:12 -03005768 }, {
5769 .vendor = PCI_VENDOR_ID_PHILIPS,
5770 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
5771 .subvendor = 0x1462, /* MSI */
5772 .subdevice = 0x8625, /* TV@nywhere A/D v1.1 */
5773 .driver_data = SAA7134_BOARD_MSI_TVANYWHERE_AD11,
Mauro Carvalho Chehab593f18c2007-10-07 02:17:09 -03005774 },{
Mauro Carvalho Chehabbc36a682008-04-22 14:45:27 -03005775 .vendor = PCI_VENDOR_ID_PHILIPS,
5776 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
5777 .subvendor = 0x1461, /* Avermedia Technologies Inc */
5778 .subdevice = 0xf436,
5779 .driver_data = SAA7134_BOARD_AVERMEDIA_CARDBUS_506,
5780 }, {
5781 .vendor = PCI_VENDOR_ID_PHILIPS,
5782 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
5783 .subvendor = 0x1461, /* Avermedia Technologies Inc */
5784 .subdevice = 0xf936,
5785 .driver_data = SAA7134_BOARD_AVERMEDIA_A16D,
5786 }, {
5787 .vendor = PCI_VENDOR_ID_PHILIPS,
5788 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
5789 .subvendor = 0x1461, /* Avermedia Technologies Inc */
5790 .subdevice = 0xa836,
5791 .driver_data = SAA7134_BOARD_AVERMEDIA_M115,
5792 }, {
5793 .vendor = PCI_VENDOR_ID_PHILIPS,
5794 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
5795 .subvendor = 0x185b,
5796 .subdevice = 0xc900,
5797 .driver_data = SAA7134_BOARD_VIDEOMATE_T750,
5798 }, {
Igor Kuznetsov02505272008-04-26 14:53:48 -03005799 .vendor = PCI_VENDOR_ID_PHILIPS,
Adam Gloverf689d902008-05-06 03:20:27 -03005800 .device = PCI_DEVICE_ID_PHILIPS_SAA7133, /* SAA7135HL */
5801 .subvendor = 0x1421,
5802 .subdevice = 0x0380,
5803 .driver_data = SAA7134_BOARD_ADS_INSTANT_HDTV_PCI,
5804 }, {
5805 .vendor = PCI_VENDOR_ID_PHILIPS,
Igor Kuznetsov02505272008-04-26 14:53:48 -03005806 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
Daniel Gimpelevichbfda3a02008-06-28 01:45:26 -03005807 .subvendor = 0x5169,
5808 .subdevice = 0x1502,
5809 .driver_data = SAA7134_BOARD_FLYTVPLATINUM_MINI,
5810 }, {
5811 .vendor = PCI_VENDOR_ID_PHILIPS,
5812 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
Igor Kuznetsov02505272008-04-26 14:53:48 -03005813 .subvendor = 0x5ace,
5814 .subdevice = 0x6290,
5815 .driver_data = SAA7134_BOARD_BEHOLD_H6,
5816 }, {
Massimo Piccionie2fc00c2008-07-11 13:48:02 -03005817 .vendor = PCI_VENDOR_ID_PHILIPS,
5818 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
5819 .subvendor = 0x1461, /* Avermedia Technologies Inc */
5820 .subdevice = 0xf636,
5821 .driver_data = SAA7134_BOARD_AVERMEDIA_M103,
5822 }, {
hermann pitton301e9d62008-09-14 17:49:14 -03005823 .vendor = PCI_VENDOR_ID_PHILIPS,
5824 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
5825 .subvendor = 0x1043,
5826 .subdevice = 0x4878, /* REV:1.02G */
5827 .driver_data = SAA7134_BOARD_ASUSTeK_TIGER_3IN1,
5828 }, {
Mauro Carvalho Chehab26d5f3a2008-12-07 13:19:29 -03005829 .vendor = PCI_VENDOR_ID_PHILIPS,
5830 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
5831 .subvendor = 0x17de,
5832 .subdevice = 0x7128,
5833 .driver_data = SAA7134_BOARD_KWORLD_PLUS_TV_ANALOG,
5834 }, {
Pham Thanh Nam4a87d7c2008-12-31 06:57:19 -03005835 .vendor = PCI_VENDOR_ID_PHILIPS,
5836 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
5837 .subvendor = 0x1461, /* Avermedia Technologies Inc */
5838 .subdevice = 0xf31d,
5839 .driver_data = SAA7134_BOARD_AVERMEDIA_GO_007_FM_PLUS,
5840
5841 }, {
Linus Torvalds1da177e2005-04-16 15:20:36 -07005842 /* --- boards without eeprom + subsystem ID --- */
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07005843 .vendor = PCI_VENDOR_ID_PHILIPS,
5844 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
5845 .subvendor = PCI_VENDOR_ID_PHILIPS,
Linus Torvalds1da177e2005-04-16 15:20:36 -07005846 .subdevice = 0,
5847 .driver_data = SAA7134_BOARD_NOAUTO,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07005848 },{
5849 .vendor = PCI_VENDOR_ID_PHILIPS,
5850 .device = PCI_DEVICE_ID_PHILIPS_SAA7130,
5851 .subvendor = PCI_VENDOR_ID_PHILIPS,
Linus Torvalds1da177e2005-04-16 15:20:36 -07005852 .subdevice = 0,
5853 .driver_data = SAA7134_BOARD_NOAUTO,
5854 },{
Linus Torvalds1da177e2005-04-16 15:20:36 -07005855 /* --- default catch --- */
5856 .vendor = PCI_VENDOR_ID_PHILIPS,
5857 .device = PCI_DEVICE_ID_PHILIPS_SAA7130,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07005858 .subvendor = PCI_ANY_ID,
5859 .subdevice = PCI_ANY_ID,
Linus Torvalds1da177e2005-04-16 15:20:36 -07005860 .driver_data = SAA7134_BOARD_UNKNOWN,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07005861 },{
Linus Torvalds1da177e2005-04-16 15:20:36 -07005862 .vendor = PCI_VENDOR_ID_PHILIPS,
5863 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07005864 .subvendor = PCI_ANY_ID,
5865 .subdevice = PCI_ANY_ID,
Linus Torvalds1da177e2005-04-16 15:20:36 -07005866 .driver_data = SAA7134_BOARD_UNKNOWN,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07005867 },{
Linus Torvalds1da177e2005-04-16 15:20:36 -07005868 .vendor = PCI_VENDOR_ID_PHILIPS,
5869 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07005870 .subvendor = PCI_ANY_ID,
5871 .subdevice = PCI_ANY_ID,
Linus Torvalds1da177e2005-04-16 15:20:36 -07005872 .driver_data = SAA7134_BOARD_UNKNOWN,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07005873 },{
Linus Torvalds1da177e2005-04-16 15:20:36 -07005874 .vendor = PCI_VENDOR_ID_PHILIPS,
5875 .device = PCI_DEVICE_ID_PHILIPS_SAA7135,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07005876 .subvendor = PCI_ANY_ID,
5877 .subdevice = PCI_ANY_ID,
Linus Torvalds1da177e2005-04-16 15:20:36 -07005878 .driver_data = SAA7134_BOARD_UNKNOWN,
5879 },{
5880 /* --- end of list --- */
5881 }
5882};
5883MODULE_DEVICE_TABLE(pci, saa7134_pci_tbl);
5884
5885/* ----------------------------------------------------------- */
5886/* flyvideo tweaks */
5887
Linus Torvalds1da177e2005-04-16 15:20:36 -07005888
5889static void board_flyvideo(struct saa7134_dev *dev)
5890{
Linus Torvalds1da177e2005-04-16 15:20:36 -07005891 printk("%s: there are different flyvideo cards with different tuners\n"
5892 "%s: out there, you might have to use the tuner=<nr> insmod\n"
5893 "%s: option to override the default value.\n",
5894 dev->name, dev->name, dev->name);
5895}
5896
Mauro Carvalho Chehabbc36a682008-04-22 14:45:27 -03005897static int saa7134_xc2028_callback(struct saa7134_dev *dev,
5898 int command, int arg)
5899{
5900 switch (command) {
5901 case XC2028_TUNER_RESET:
Tim Farrington6e501a32008-06-15 13:33:42 -03005902 saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x00008000, 0x00000000);
5903 saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x00008000, 0x00008000);
5904 switch (dev->board) {
5905 case SAA7134_BOARD_AVERMEDIA_CARDBUS_506:
Massimo Piccionie2fc00c2008-07-11 13:48:02 -03005906 case SAA7134_BOARD_AVERMEDIA_M103:
Tim Farrington6e501a32008-06-15 13:33:42 -03005907 saa7134_set_gpio(dev, 23, 0);
5908 msleep(10);
5909 saa7134_set_gpio(dev, 23, 1);
5910 break;
5911 case SAA7134_BOARD_AVERMEDIA_A16D:
5912 saa7134_set_gpio(dev, 21, 0);
5913 msleep(10);
5914 saa7134_set_gpio(dev, 21, 1);
5915 break;
5916 }
5917 return 0;
Mauro Carvalho Chehabbc36a682008-04-22 14:45:27 -03005918 }
5919 return -EINVAL;
5920}
5921
5922
Michael Krufkyf9996c92009-02-28 17:45:17 -03005923static int saa7134_tda8290_827x_callback(struct saa7134_dev *dev,
5924 int command, int arg)
Mauro Carvalho Chehabbc36a682008-04-22 14:45:27 -03005925{
5926 u8 sync_control;
5927
5928 switch (command) {
5929 case 0: /* switch LNA gain through GPIO 22*/
5930 saa7134_set_gpio(dev, 22, arg) ;
5931 break;
5932 case 1: /* vsync output at GPIO22. 50 / 60Hz */
5933 saa_andorb(SAA7134_VIDEO_PORT_CTRL3, 0x80, 0x80);
5934 saa_andorb(SAA7134_VIDEO_PORT_CTRL6, 0x0f, 0x03);
5935 if (arg == 1)
5936 sync_control = 11;
5937 else
5938 sync_control = 17;
5939 saa_writeb(SAA7134_VGATE_START, sync_control);
5940 saa_writeb(SAA7134_VGATE_STOP, sync_control + 1);
5941 saa_andorb(SAA7134_MISC_VGATE_MSB, 0x03, 0x00);
5942 break;
5943 default:
5944 return -EINVAL;
5945 }
5946
5947 return 0;
5948}
5949
Michael Krufkyf9996c92009-02-28 17:45:17 -03005950static inline int saa7134_tda18271_hvr11x0_toggle_agc(struct saa7134_dev *dev,
5951 enum tda18271_mode mode)
5952{
5953 /* toggle AGC switch through GPIO 26 */
5954 switch (mode) {
5955 case TDA18271_ANALOG:
5956 saa7134_set_gpio(dev, 26, 0);
5957 break;
5958 case TDA18271_DIGITAL:
5959 saa7134_set_gpio(dev, 26, 1);
5960 break;
5961 default:
5962 return -EINVAL;
5963 }
5964 return 0;
5965}
5966
5967static int saa7134_tda8290_18271_callback(struct saa7134_dev *dev,
5968 int command, int arg)
5969{
5970 int ret = 0;
5971
5972 switch (command) {
5973 case TDA18271_CALLBACK_CMD_AGC_ENABLE: /* 0 */
5974 switch (dev->board) {
Michael Krufkye8944282009-03-10 17:02:07 -03005975 case SAA7134_BOARD_HAUPPAUGE_HVR1120:
Michael Krufkyf9996c92009-02-28 17:45:17 -03005976 case SAA7134_BOARD_HAUPPAUGE_HVR1110R3:
5977 ret = saa7134_tda18271_hvr11x0_toggle_agc(dev, arg);
5978 break;
5979 default:
5980 break;
5981 }
5982 break;
5983 default:
5984 ret = -EINVAL;
5985 break;
5986 }
5987 return ret;
5988}
5989
5990static int saa7134_tda8290_callback(struct saa7134_dev *dev,
5991 int command, int arg)
5992{
5993 int ret;
5994
5995 switch (dev->board) {
Michael Krufkye8944282009-03-10 17:02:07 -03005996 case SAA7134_BOARD_HAUPPAUGE_HVR1120:
Michael Krufkyf9996c92009-02-28 17:45:17 -03005997 case SAA7134_BOARD_HAUPPAUGE_HVR1110R3:
5998 /* tda8290 + tda18271 */
5999 ret = saa7134_tda8290_18271_callback(dev, command, arg);
6000 break;
6001 default:
6002 /* tda8290 + tda827x */
6003 ret = saa7134_tda8290_827x_callback(dev, command, arg);
6004 break;
6005 }
6006 return ret;
6007}
6008
Michael Krufkyd7cba042008-09-12 13:31:45 -03006009int saa7134_tuner_callback(void *priv, int component, int command, int arg)
Mauro Carvalho Chehabbc36a682008-04-22 14:45:27 -03006010{
Hartmut Hackmann0fea03f2008-04-22 14:46:10 -03006011 struct saa7134_dev *dev = priv;
Hartmut Hackmann7bff4b42008-04-22 14:46:08 -03006012 if (dev != NULL) {
6013 switch (dev->tuner_type) {
6014 case TUNER_PHILIPS_TDA8290:
6015 return saa7134_tda8290_callback(dev, command, arg);
6016 case TUNER_XC2028:
6017 return saa7134_xc2028_callback(dev, command, arg);
6018 }
Mauro Carvalho Chehab0be51b42008-04-22 14:46:10 -03006019 } else {
6020 printk(KERN_ERR "saa7134: Error - device struct undefined.\n");
6021 return -EINVAL;
Mauro Carvalho Chehabbc36a682008-04-22 14:45:27 -03006022 }
6023 return -EINVAL;
6024}
6025EXPORT_SYMBOL(saa7134_tuner_callback);
6026
Linus Torvalds1da177e2005-04-16 15:20:36 -07006027/* ----------------------------------------------------------- */
6028
Michael Krufky993efa72007-11-15 10:34:33 -03006029static void hauppauge_eeprom(struct saa7134_dev *dev, u8 *eeprom_data)
6030{
6031 struct tveeprom tv;
6032
6033 tveeprom_hauppauge_analog(&dev->i2c_client, &tv, eeprom_data);
6034
6035 /* Make sure we support the board model */
6036 switch (tv.model) {
6037 case 67019: /* WinTV-HVR1110 (Retail, IR Blaster, hybrid, FM, SVid/Comp, 3.5mm audio in) */
6038 case 67109: /* WinTV-HVR1000 (Retail, IR Receive, analog, no FM, SVid/Comp, 3.5mm audio in) */
Michael Krufkye8944282009-03-10 17:02:07 -03006039 case 67201: /* WinTV-HVR1120 (Retail, IR Receive, hybrid, FM, SVid/Comp, 3.5mm audio in) */
Michael Krufkyf9996c92009-02-28 17:45:17 -03006040 case 67301: /* WinTV-HVR1000 (Retail, IR Receive, analog, no FM, SVid/Comp, 3.5mm audio in) */
6041 case 67209: /* WinTV-HVR1110 (Retail, IR Receive, hybrid, FM, SVid/Comp, 3.5mm audio in) */
Michael Krufky993efa72007-11-15 10:34:33 -03006042 case 67559: /* WinTV-HVR1110 (OEM, no IR, hybrid, FM, SVid/Comp, RCA aud) */
6043 case 67569: /* WinTV-HVR1110 (OEM, no IR, hybrid, FM) */
6044 case 67579: /* WinTV-HVR1110 (OEM, no IR, hybrid, no FM) */
6045 case 67589: /* WinTV-HVR1110 (OEM, no IR, hybrid, no FM, SVid/Comp, RCA aud) */
6046 case 67599: /* WinTV-HVR1110 (OEM, no IR, hybrid, no FM, SVid/Comp, RCA aud) */
Michael Krufkye8944282009-03-10 17:02:07 -03006047 case 67651: /* WinTV-HVR1120 (OEM, no IR, hybrid, FM, SVid/Comp, RCA aud) */
Michael Krufkyf9996c92009-02-28 17:45:17 -03006048 case 67659: /* WinTV-HVR1110 (OEM, no IR, hybrid, FM, SVid/Comp, RCA aud) */
Michael Krufky993efa72007-11-15 10:34:33 -03006049 break;
6050 default:
6051 printk(KERN_WARNING "%s: warning: "
6052 "unknown hauppauge model #%d\n", dev->name, tv.model);
6053 break;
6054 }
6055
6056 printk(KERN_INFO "%s: hauppauge eeprom: model=%d\n",
6057 dev->name, tv.model);
6058}
6059
6060/* ----------------------------------------------------------- */
6061
Linus Torvalds1da177e2005-04-16 15:20:36 -07006062int saa7134_board_init1(struct saa7134_dev *dev)
6063{
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07006064 /* Always print gpio, often manufacturers encode tuner type and other info. */
Linus Torvalds1da177e2005-04-16 15:20:36 -07006065 saa_writel(SAA7134_GPIO_GPMODE0 >> 2, 0);
6066 dev->gpio_value = saa_readl(SAA7134_GPIO_GPSTATUS0 >> 2);
6067 printk(KERN_INFO "%s: board init: gpio is %x\n", dev->name, dev->gpio_value);
6068
6069 switch (dev->board) {
6070 case SAA7134_BOARD_FLYVIDEO2000:
6071 case SAA7134_BOARD_FLYVIDEO3000:
Zac Bowlingf49ba8d2006-06-19 19:49:20 -03006072 case SAA7134_BOARD_FLYVIDEO3000_NTSC:
Ricardo Cerqueiracb2444d2005-11-08 21:38:47 -08006073 dev->has_remote = SAA7134_REMOTE_GPIO;
Linus Torvalds1da177e2005-04-16 15:20:36 -07006074 board_flyvideo(dev);
6075 break;
Arnaud Patard6af90ab2005-11-08 21:36:55 -08006076 case SAA7134_BOARD_FLYTVPLATINUM_MINI2:
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07006077 case SAA7134_BOARD_FLYTVPLATINUM_FM:
Linus Torvalds1da177e2005-04-16 15:20:36 -07006078 case SAA7134_BOARD_CINERGY400:
6079 case SAA7134_BOARD_CINERGY600:
6080 case SAA7134_BOARD_CINERGY600_MK3:
6081 case SAA7134_BOARD_ECS_TVP3XP:
6082 case SAA7134_BOARD_ECS_TVP3XP_4CB5:
Simon Farnsworthb39423a2007-05-01 10:01:20 -03006083 case SAA7134_BOARD_ECS_TVP3XP_4CB6:
Linus Torvalds1da177e2005-04-16 15:20:36 -07006084 case SAA7134_BOARD_MD2819:
Mauro Carvalho Chehabac19ecc2005-06-23 22:05:09 -07006085 case SAA7134_BOARD_KWORLD_VSTREAM_XPERT:
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07006086 case SAA7134_BOARD_KWORLD_XPERT:
Linus Torvalds1da177e2005-04-16 15:20:36 -07006087 case SAA7134_BOARD_AVERMEDIA_STUDIO_305:
6088 case SAA7134_BOARD_AVERMEDIA_305:
Mauro Carvalho Chehabac19ecc2005-06-23 22:05:09 -07006089 case SAA7134_BOARD_AVERMEDIA_STUDIO_307:
Linus Torvalds1da177e2005-04-16 15:20:36 -07006090 case SAA7134_BOARD_AVERMEDIA_307:
Mikhail Fedotov3ac706d2006-10-06 20:23:47 -03006091 case SAA7134_BOARD_AVERMEDIA_STUDIO_507:
Mauro Carvalho Chehabac19ecc2005-06-23 22:05:09 -07006092 case SAA7134_BOARD_AVERMEDIA_GO_007_FM:
pasky@ucw.cz450efcf2006-11-12 14:22:32 -03006093 case SAA7134_BOARD_AVERMEDIA_777:
Mauro Carvalho Chehab36f6bb92008-06-26 17:03:00 -03006094 case SAA7134_BOARD_AVERMEDIA_M135A:
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07006095/* case SAA7134_BOARD_SABRENT_SBTTVFM: */ /* not finished yet */
Linus Torvalds1da177e2005-04-16 15:20:36 -07006096 case SAA7134_BOARD_VIDEOMATE_TV_PVR:
Nickolay V. Shmyrev2a9a9a82006-01-09 15:25:33 -02006097 case SAA7134_BOARD_VIDEOMATE_GOLD_PLUS:
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07006098 case SAA7134_BOARD_VIDEOMATE_TV_GOLD_PLUSII:
Nickolay V. Shmyrevfea095f2005-11-08 21:36:47 -08006099 case SAA7134_BOARD_VIDEOMATE_DVBT_300:
Michael Krufkyafce8922005-11-08 21:36:57 -08006100 case SAA7134_BOARD_VIDEOMATE_DVBT_200:
Hartmut Hackmanncbb94522006-10-30 20:00:16 -03006101 case SAA7134_BOARD_VIDEOMATE_DVBT_200A:
Mauro Carvalho Chehabbc36a682008-04-22 14:45:27 -03006102 case SAA7134_BOARD_VIDEOMATE_T750:
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07006103 case SAA7134_BOARD_MANLI_MTV001:
6104 case SAA7134_BOARD_MANLI_MTV002:
Nickolay V. Shmyreva8ff4172005-11-08 21:36:16 -08006105 case SAA7134_BOARD_BEHOLD_409FM:
Linus Torvalds1da177e2005-04-16 15:20:36 -07006106 case SAA7134_BOARD_AVACSSMARTTV:
Nickolay V. Shmyrev6b961442005-11-08 21:36:22 -08006107 case SAA7134_BOARD_GOTVIEW_7135:
James R. Webbdc2286c2005-11-08 21:37:00 -08006108 case SAA7134_BOARD_KWORLD_TERMINATOR:
Ricardo Cerqueira17ce1ff2005-11-08 21:38:47 -08006109 case SAA7134_BOARD_SEDNA_PC_TV_CARDBUS:
Giampiero Giancipoli3d8466e2006-02-07 06:49:09 -02006110 case SAA7134_BOARD_FLYDVBT_LR301:
Hermann Pitton91607232006-12-07 21:45:28 -03006111 case SAA7134_BOARD_ASUSTeK_P7131_DUAL:
Hartmut Hackmannf3eec0c02007-03-14 20:33:55 -03006112 case SAA7134_BOARD_ASUSTeK_P7131_HYBRID_LNA:
Hermann Pitton0b17d0e2008-07-12 12:27:59 -03006113 case SAA7134_BOARD_ASUSTeK_P7131_ANALOG:
Rudo Thomasa8029172006-02-27 00:08:46 -03006114 case SAA7134_BOARD_FLYDVBTDUO:
Michal Majchrowiczb04c1ba2006-09-13 16:42:42 -03006115 case SAA7134_BOARD_PROTEUS_2309:
pasky@ucw.cz29e0f1a2006-11-12 14:23:32 -03006116 case SAA7134_BOARD_AVERMEDIA_A16AR:
Juan Pablo Sormanic36c4592006-12-27 12:46:36 -03006117 case SAA7134_BOARD_ENCORE_ENLTV:
6118 case SAA7134_BOARD_ENCORE_ENLTV_FM:
Mauro Carvalho Chehabbf1ece62008-06-26 17:03:00 -03006119 case SAA7134_BOARD_ENCORE_ENLTV_FM53:
Tony Wan480f75a2007-05-11 11:33:50 -03006120 case SAA7134_BOARD_10MOONSTVMASTER3:
Andrey J. Melnikoff (TEMHOTA)e8018c92008-01-07 05:17:39 -03006121 case SAA7134_BOARD_BEHOLD_401:
6122 case SAA7134_BOARD_BEHOLD_403:
6123 case SAA7134_BOARD_BEHOLD_403FM:
6124 case SAA7134_BOARD_BEHOLD_405:
6125 case SAA7134_BOARD_BEHOLD_405FM:
6126 case SAA7134_BOARD_BEHOLD_407:
6127 case SAA7134_BOARD_BEHOLD_407FM:
6128 case SAA7134_BOARD_BEHOLD_409:
6129 case SAA7134_BOARD_BEHOLD_505FM:
6130 case SAA7134_BOARD_BEHOLD_507_9FM:
Adrian Pardinif0ba3562008-02-11 12:40:53 -03006131 case SAA7134_BOARD_GENIUS_TVGO_A11MCE:
Mauro Carvalho Chehab9b000192008-06-26 17:03:00 -03006132 case SAA7134_BOARD_REAL_ANGEL_220:
Mauro Carvalho Chehab26d5f3a2008-12-07 13:19:29 -03006133 case SAA7134_BOARD_KWORLD_PLUS_TV_ANALOG:
Pham Thanh Nam6a2d8022008-12-30 23:26:09 -03006134 case SAA7134_BOARD_AVERMEDIA_GO_007_FM_PLUS:
Ricardo Cerqueiracb2444d2005-11-08 21:38:47 -08006135 dev->has_remote = SAA7134_REMOTE_GPIO;
Linus Torvalds1da177e2005-04-16 15:20:36 -07006136 break;
Igor M. Liplianine2ac28f2006-08-08 09:10:10 -03006137 case SAA7134_BOARD_FLYDVBS_LR300:
6138 saa_writeb(SAA7134_GPIO_GPMODE3, 0x80);
6139 saa_writeb(SAA7134_GPIO_GPSTATUS2, 0x40);
6140 dev->has_remote = SAA7134_REMOTE_GPIO;
6141 break;
Linus Torvalds1da177e2005-04-16 15:20:36 -07006142 case SAA7134_BOARD_MD5044:
6143 printk("%s: seems there are two different versions of the MD5044\n"
Michael Krufkyfd2f2672006-03-11 16:21:36 -03006144 "%s: (with the same ID) out there. If sound doesn't work for\n"
6145 "%s: you try the audio_clock_override=0x200000 insmod option.\n",
6146 dev->name,dev->name,dev->name);
Linus Torvalds1da177e2005-04-16 15:20:36 -07006147 break;
6148 case SAA7134_BOARD_CINERGY400_CARDBUS:
6149 /* power-up tuner chip */
6150 saa_andorl(SAA7134_GPIO_GPMODE0 >> 2, 0x00040000, 0x00040000);
6151 saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x00040000, 0x00000000);
Mikhail Gusarov7bbbc0a2006-04-20 13:18:50 -03006152 break;
Hartmut Hackmanndf8cf702006-03-03 12:09:26 -03006153 case SAA7134_BOARD_PINNACLE_300I_DVBT_PAL:
6154 /* this turns the remote control chip off to work around a bug in it */
6155 saa_writeb(SAA7134_GPIO_GPMODE1, 0x80);
6156 saa_writeb(SAA7134_GPIO_GPSTATUS1, 0x80);
6157 break;
Pieter Palmerscf1c5d12005-11-08 21:37:40 -08006158 case SAA7134_BOARD_MONSTERTV_MOBILE:
6159 /* power-up tuner chip */
6160 saa_andorl(SAA7134_GPIO_GPMODE0 >> 2, 0x00040000, 0x00040000);
6161 saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x00040000, 0x00000004);
Linus Torvalds1da177e2005-04-16 15:20:36 -07006162 break;
Peter Missel10b7a902006-01-23 17:11:06 -02006163 case SAA7134_BOARD_FLYDVBT_DUO_CARDBUS:
Nickolay V. Shmyrev6b961442005-11-08 21:36:22 -08006164 /* turn the fan on */
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07006165 saa_writeb(SAA7134_GPIO_GPMODE3, 0x08);
6166 saa_writeb(SAA7134_GPIO_GPSTATUS3, 0x06);
6167 break;
Hartmut Hackmanndf42eaf2006-02-07 06:49:10 -02006168 case SAA7134_BOARD_ADS_DUO_CARDBUS_PTV331:
Hartmut Hackmannd95b8942006-03-27 19:39:30 -03006169 case SAA7134_BOARD_FLYDVBT_HYBRID_CARDBUS:
Hartmut Hackmann58ef4f92007-04-27 12:31:12 -03006170 saa_andorl(SAA7134_GPIO_GPMODE0 >> 2, 0x08000000, 0x08000000);
6171 saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x08000000, 0x00000000);
Hartmut Hackmanndf42eaf2006-02-07 06:49:10 -02006172 break;
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07006173 case SAA7134_BOARD_AVERMEDIA_CARDBUS:
Mauro Carvalho Chehabbc36a682008-04-22 14:45:27 -03006174 case SAA7134_BOARD_AVERMEDIA_M115:
Mauro Carvalho Chehab95a2fdb2008-03-28 17:52:44 -03006175 /* power-down tuner chip */
6176 saa_andorl(SAA7134_GPIO_GPMODE0 >> 2, 0xffffffff, 0);
6177 saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0xffffffff, 0);
6178 msleep(10);
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07006179 /* power-up tuner chip */
6180 saa_andorl(SAA7134_GPIO_GPMODE0 >> 2, 0xffffffff, 0xffffffff);
6181 saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0xffffffff, 0xffffffff);
Mauro Carvalho Chehab95a2fdb2008-03-28 17:52:44 -03006182 msleep(10);
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07006183 break;
Tim Farrington6e501a32008-06-15 13:33:42 -03006184 case SAA7134_BOARD_AVERMEDIA_CARDBUS_506:
Oldřich Jedličkacb3bf502009-02-12 03:43:11 -03006185 saa7134_set_gpio(dev, 23, 0);
6186 msleep(10);
6187 saa7134_set_gpio(dev, 23, 1);
6188 dev->has_remote = SAA7134_REMOTE_I2C;
6189 break;
Massimo Piccionie2fc00c2008-07-11 13:48:02 -03006190 case SAA7134_BOARD_AVERMEDIA_M103:
Tim Farrington6e501a32008-06-15 13:33:42 -03006191 saa7134_set_gpio(dev, 23, 0);
6192 msleep(10);
6193 saa7134_set_gpio(dev, 23, 1);
6194 break;
6195 case SAA7134_BOARD_AVERMEDIA_A16D:
6196 saa7134_set_gpio(dev, 21, 0);
6197 msleep(10);
6198 saa7134_set_gpio(dev, 21, 1);
6199 msleep(1);
6200 dev->has_remote = SAA7134_REMOTE_GPIO;
6201 break;
Dmitry Belimovb34dddb2008-04-23 14:09:08 -03006202 case SAA7134_BOARD_BEHOLD_COLUMBUS_TVFM:
6203 /* power-down tuner chip */
6204 saa_andorl(SAA7134_GPIO_GPMODE0 >> 2, 0x000A8004, 0x000A8004);
6205 saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x000A8004, 0);
6206 msleep(10);
6207 /* power-up tuner chip */
6208 saa_andorl(SAA7134_GPIO_GPMODE0 >> 2, 0x000A8004, 0x000A8004);
6209 saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x000A8004, 0x000A8004);
6210 msleep(10);
6211 /* remote via GPIO */
6212 dev->has_remote = SAA7134_REMOTE_GPIO;
6213 break;
Nickolay V. Shmyrevbb881f12005-11-08 21:36:35 -08006214 case SAA7134_BOARD_RTD_VFG7350:
6215
6216 /*
6217 * Make sure Production Test Register at offset 0x1D1 is cleared
6218 * to take chip out of test mode. Clearing bit 4 (TST_EN_AOUT)
6219 * prevents pin 105 from remaining low; keeping pin 105 low
6220 * continually resets the SAA6752 chip.
6221 */
6222
6223 saa_writeb (SAA7134_PRODUCTION_TEST_MODE, 0x00);
6224 break;
Michael Krufkye8944282009-03-10 17:02:07 -03006225 case SAA7134_BOARD_HAUPPAUGE_HVR1120:
Michael Krufkyf9996c92009-02-28 17:45:17 -03006226 case SAA7134_BOARD_HAUPPAUGE_HVR1110R3:
6227 /* GPIO 26 high for digital, low for analog */
6228 saa7134_set_gpio(dev, 26, 0);
6229 msleep(1);
6230
6231 saa7134_set_gpio(dev, 22, 0);
6232 msleep(10);
6233 saa7134_set_gpio(dev, 22, 1);
6234 break;
Ricardo Cerqueiracb2444d2005-11-08 21:38:47 -08006235 /* i2c remotes */
6236 case SAA7134_BOARD_PINNACLE_PCTV_110i:
Hartmut Hackmann587d2fd2006-10-06 19:13:50 -03006237 case SAA7134_BOARD_PINNACLE_PCTV_310i:
Ricardo Cerqueiracb2444d2005-11-08 21:38:47 -08006238 case SAA7134_BOARD_UPMOST_PURPLE_TV:
Brian Rogersba340b42008-10-13 08:37:06 -03006239 case SAA7134_BOARD_MSI_TVATANYWHERE_PLUS:
Thomas Genty177aaaf2006-11-29 21:57:24 -03006240 case SAA7134_BOARD_HAUPPAUGE_HVR1110:
Andrey J. Melnikoff (TEMHOTA)e8018c92008-01-07 05:17:39 -03006241 case SAA7134_BOARD_BEHOLD_607_9FM:
6242 case SAA7134_BOARD_BEHOLD_M6:
Dmitry Belimov878cf2a2008-06-10 14:22:00 -03006243 case SAA7134_BOARD_BEHOLD_M63:
6244 case SAA7134_BOARD_BEHOLD_M6_EXTRA:
Dmitri Belimovf204ae42008-12-23 03:51:38 -03006245 case SAA7134_BOARD_BEHOLD_H6:
Ricardo Cerqueiracb2444d2005-11-08 21:38:47 -08006246 dev->has_remote = SAA7134_REMOTE_I2C;
6247 break;
Rickard Osser68593af2006-03-11 17:14:12 -03006248 case SAA7134_BOARD_AVERMEDIA_A169_B:
Michael Krufky12a219d2006-03-14 16:07:42 -03006249 printk("%s: %s: dual saa713x broadcast decoders\n"
Rickard Osser68593af2006-03-11 17:14:12 -03006250 "%s: Sorry, none of the inputs to this chip are supported yet.\n"
6251 "%s: Dual decoder functionality is disabled for now, use the other chip.\n",
Michael Krufky12a219d2006-03-14 16:07:42 -03006252 dev->name,card(dev).name,dev->name,dev->name);
Rickard Osser68593af2006-03-11 17:14:12 -03006253 break;
Markus Rechbergere95d3172007-04-27 12:31:19 -03006254 case SAA7134_BOARD_AVERMEDIA_M102:
6255 /* enable tuner */
Albert Grahamd2761f22007-12-09 09:44:38 -03006256 dev->has_remote = SAA7134_REMOTE_GPIO;
Markus Rechbergere95d3172007-04-27 12:31:19 -03006257 saa_andorl(SAA7134_GPIO_GPMODE0 >> 2, 0x8c040007, 0x8c040007);
6258 saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x0c0007cd, 0x0c0007cd);
6259 break;
Matthias Schwarzottfc9d8ed2008-04-08 21:45:08 -03006260 case SAA7134_BOARD_AVERMEDIA_A700_HYBRID:
Matthias Schwarzott04574182009-02-24 12:35:16 -03006261 printk("%s: %s: hybrid analog/dvb card\n"
6262 "%s: Sorry, of the analog inputs, only analog s-video and composite "
6263 "are supported for now.\n",
6264 dev->name, card(dev).name, dev->name);
6265 case SAA7134_BOARD_AVERMEDIA_A700_PRO:
Matthias Schwarzottfc9d8ed2008-04-08 21:45:08 -03006266 /* write windows gpio values */
6267 saa_andorl(SAA7134_GPIO_GPMODE0 >> 2, 0x80040100, 0x80040100);
6268 saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x80040100, 0x00040100);
Matthias Schwarzottfc9d8ed2008-04-08 21:45:08 -03006269 break;
Linus Torvalds1da177e2005-04-16 15:20:36 -07006270 }
Linus Torvalds1da177e2005-04-16 15:20:36 -07006271 return 0;
6272}
6273
Mauro Carvalho Chehabc117d052008-04-26 14:05:58 -03006274static void saa7134_tuner_setup(struct saa7134_dev *dev)
6275{
6276 struct tuner_setup tun_setup;
6277 unsigned int mode_mask = T_RADIO |
6278 T_ANALOG_TV |
6279 T_DIGITAL_TV;
6280
6281 memset(&tun_setup, 0, sizeof(tun_setup));
6282 tun_setup.tuner_callback = saa7134_tuner_callback;
6283
6284 if (saa7134_boards[dev->board].radio_type != UNSET) {
6285 tun_setup.type = saa7134_boards[dev->board].radio_type;
6286 tun_setup.addr = saa7134_boards[dev->board].radio_addr;
6287
6288 tun_setup.mode_mask = T_RADIO;
6289
Hans Verkuilfac69862009-01-17 12:17:14 -03006290 saa_call_all(dev, tuner, s_type_addr, &tun_setup);
Mauro Carvalho Chehabc117d052008-04-26 14:05:58 -03006291 mode_mask &= ~T_RADIO;
6292 }
6293
6294 if ((dev->tuner_type != TUNER_ABSENT) && (dev->tuner_type != UNSET)) {
6295 tun_setup.type = dev->tuner_type;
6296 tun_setup.addr = dev->tuner_addr;
6297 tun_setup.config = saa7134_boards[dev->board].tuner_config;
6298 tun_setup.tuner_callback = saa7134_tuner_callback;
6299
6300 tun_setup.mode_mask = mode_mask;
6301
Hans Verkuilfac69862009-01-17 12:17:14 -03006302 saa_call_all(dev, tuner, s_type_addr, &tun_setup);
Mauro Carvalho Chehabc117d052008-04-26 14:05:58 -03006303 }
6304
6305 if (dev->tda9887_conf) {
6306 struct v4l2_priv_tun_config tda9887_cfg;
6307
6308 tda9887_cfg.tuner = TUNER_TDA9887;
6309 tda9887_cfg.priv = &dev->tda9887_conf;
6310
Hans Verkuilfac69862009-01-17 12:17:14 -03006311 saa_call_all(dev, tuner, s_config, &tda9887_cfg);
Mauro Carvalho Chehabc117d052008-04-26 14:05:58 -03006312 }
6313
6314 if (dev->tuner_type == TUNER_XC2028) {
6315 struct v4l2_priv_tun_config xc2028_cfg;
6316 struct xc2028_ctrl ctl;
6317
Oldrich Jedlickabdf398e2008-11-13 22:03:00 -03006318 memset(&xc2028_cfg, 0, sizeof(xc2028_cfg));
Mauro Carvalho Chehabc117d052008-04-26 14:05:58 -03006319 memset(&ctl, 0, sizeof(ctl));
6320
6321 ctl.fname = XC2028_DEFAULT_FIRMWARE;
6322 ctl.max_len = 64;
6323
6324 switch (dev->board) {
6325 case SAA7134_BOARD_AVERMEDIA_A16D:
Tim Farrington6e501a32008-06-15 13:33:42 -03006326 case SAA7134_BOARD_AVERMEDIA_CARDBUS_506:
Massimo Piccionie2fc00c2008-07-11 13:48:02 -03006327 case SAA7134_BOARD_AVERMEDIA_M103:
Mauro Carvalho Chehabc117d052008-04-26 14:05:58 -03006328 ctl.demod = XC3028_FE_ZARLINK456;
6329 break;
6330 default:
6331 ctl.demod = XC3028_FE_OREN538;
6332 ctl.mts = 1;
6333 }
6334
6335 xc2028_cfg.tuner = TUNER_XC2028;
6336 xc2028_cfg.priv = &ctl;
6337
Hans Verkuilfac69862009-01-17 12:17:14 -03006338 saa_call_all(dev, tuner, s_config, &xc2028_cfg);
Mauro Carvalho Chehabc117d052008-04-26 14:05:58 -03006339 }
6340}
6341
Linus Torvalds1da177e2005-04-16 15:20:36 -07006342/* stuff which needs working i2c */
6343int saa7134_board_init2(struct saa7134_dev *dev)
6344{
6345 unsigned char buf;
6346 int board;
Mauro Carvalho Chehabc117d052008-04-26 14:05:58 -03006347
Mauro Carvalho Chehabb9348352009-02-08 09:33:15 -03006348 /* Put here the code that enables the chips that are needed
6349 for analog mode and doesn't depend on the tuner attachment.
6350 It is also a good idea to get tuner type from eeprom, etc before
6351 initializing tuner, since we can avoid loading tuner driver
6352 on devices that has TUNER_ABSENT
6353 */
Linus Torvalds1da177e2005-04-16 15:20:36 -07006354 switch (dev->board) {
6355 case SAA7134_BOARD_BMK_MPEX_NOTUNER:
6356 case SAA7134_BOARD_BMK_MPEX_TUNER:
Mauro Carvalho Chehabb9348352009-02-08 09:33:15 -03006357 /* Checks if the device has a tuner at 0x60 addr
6358 If the device doesn't have a tuner, TUNER_ABSENT
6359 will be used at tuner_type, avoiding loading tuner
6360 without needing it
6361 */
Linus Torvalds1da177e2005-04-16 15:20:36 -07006362 dev->i2c_client.addr = 0x60;
Mauro Carvalho Chehabc117d052008-04-26 14:05:58 -03006363 board = (i2c_master_recv(&dev->i2c_client, &buf, 0) < 0)
Linus Torvalds1da177e2005-04-16 15:20:36 -07006364 ? SAA7134_BOARD_BMK_MPEX_NOTUNER
6365 : SAA7134_BOARD_BMK_MPEX_TUNER;
6366 if (board == dev->board)
6367 break;
6368 dev->board = board;
6369 printk("%s: board type fixup: %s\n", dev->name,
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07006370 saa7134_boards[dev->board].name);
Linus Torvalds1da177e2005-04-16 15:20:36 -07006371 dev->tuner_type = saa7134_boards[dev->board].tuner_type;
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07006372
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07006373 break;
Hartmut Hackmann2cf36ac2005-11-08 21:36:32 -08006374 case SAA7134_BOARD_MD7134:
Mauro Carvalho Chehabc117d052008-04-26 14:05:58 -03006375 {
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07006376 u8 subaddr;
6377 u8 data[3];
6378 int ret, tuner_t;
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07006379 struct i2c_msg msg[] = {{.addr=0x50, .flags=0, .buf=&subaddr, .len = 1},
6380 {.addr=0x50, .flags=I2C_M_RD, .buf=data, .len = 3}};
Mauro Carvalho Chehabb9348352009-02-08 09:33:15 -03006381
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07006382 subaddr= 0x14;
6383 tuner_t = 0;
Mauro Carvalho Chehabb9348352009-02-08 09:33:15 -03006384
6385 /* Retrieve device data from eeprom, checking for the
6386 proper tuner_type.
6387 */
Mauro Carvalho Chehab330a1152005-07-12 13:59:01 -07006388 ret = i2c_transfer(&dev->i2c_adap, msg, 2);
6389 if (ret != 2) {
6390 printk(KERN_ERR "EEPROM read failure\n");
6391 } else if ((data[0] != 0) && (data[0] != 0xff)) {
6392 /* old config structure */
6393 subaddr = data[0] + 2;
6394 msg[1].len = 2;
6395 i2c_transfer(&dev->i2c_adap, msg, 2);
6396 tuner_t = (data[0] << 8) + data[1];
6397 switch (tuner_t){
6398 case 0x0103:
6399 dev->tuner_type = TUNER_PHILIPS_PAL;
6400 break;
6401 case 0x010C:
6402 dev->tuner_type = TUNER_PHILIPS_FM1216ME_MK3;
6403 break;
6404 default:
6405 printk(KERN_ERR "%s Cant determine tuner type %x from EEPROM\n", dev->name, tuner_t);
6406 }
6407 } else if ((data[1] != 0) && (data[1] != 0xff)) {
6408 /* new config structure */
6409 subaddr = data[1] + 1;
6410 msg[1].len = 1;
6411 i2c_transfer(&dev->i2c_adap, msg, 2);
6412 subaddr = data[0] + 1;
6413 msg[1].len = 2;
6414 i2c_transfer(&dev->i2c_adap, msg, 2);
6415 tuner_t = (data[1] << 8) + data[0];
6416 switch (tuner_t) {
6417 case 0x0005:
6418 dev->tuner_type = TUNER_PHILIPS_FM1216ME_MK3;
6419 break;
6420 case 0x001d:
6421 dev->tuner_type = TUNER_PHILIPS_FMD1216ME_MK3;
6422 printk(KERN_INFO "%s Board has DVB-T\n", dev->name);
6423 break;
6424 default:
6425 printk(KERN_ERR "%s Cant determine tuner type %x from EEPROM\n", dev->name, tuner_t);
6426 }
6427 } else {
6428 printk(KERN_ERR "%s unexpected config structure\n", dev->name);
6429 }
6430
6431 printk(KERN_INFO "%s Tuner type is %d\n", dev->name, dev->tuner_type);
Linus Torvalds1da177e2005-04-16 15:20:36 -07006432 break;
Mauro Carvalho Chehabc117d052008-04-26 14:05:58 -03006433 }
Hartmut Hackmann2cf36ac2005-11-08 21:36:32 -08006434 case SAA7134_BOARD_PHILIPS_EUROPA:
Hartmut Hackmann6ab465a2008-04-22 14:42:11 -03006435 if (dev->autodetected && (dev->eedata[0x41] == 0x1c)) {
6436 /* Reconfigure board as Snake reference design */
6437 dev->board = SAA7134_BOARD_PHILIPS_SNAKE;
6438 dev->tuner_type = saa7134_boards[dev->board].tuner_type;
6439 printk(KERN_INFO "%s: Reconfigured board as %s\n",
6440 dev->name, saa7134_boards[dev->board].name);
6441 break;
6442 }
Mauro Carvalho Chehabb9348352009-02-08 09:33:15 -03006443 /* break intentionally omitted */
Hartmut Hackmann2cf36ac2005-11-08 21:36:32 -08006444 case SAA7134_BOARD_VIDEOMATE_DVBT_300:
Hartmut Hackmanncf146ca2006-10-02 20:49:24 -03006445 case SAA7134_BOARD_ASUS_EUROPA2_HYBRID:
Mauro Carvalho Chehabc117d052008-04-26 14:05:58 -03006446 {
6447
Mauro Carvalho Chehabb9348352009-02-08 09:33:15 -03006448 /* The Philips EUROPA based hybrid boards have the tuner
6449 connected through the channel decoder. We have to make it
6450 transparent to find it
Mauro Carvalho Chehab4ac97912005-11-08 21:37:43 -08006451 */
Hartmut Hackmann2cf36ac2005-11-08 21:36:32 -08006452 u8 data[] = { 0x07, 0x02};
6453 struct i2c_msg msg = {.addr=0x08, .flags=0, .buf=data, .len = sizeof(data)};
6454 i2c_transfer(&dev->i2c_adap, &msg, 1);
6455
Hartmut Hackmann2cf36ac2005-11-08 21:36:32 -08006456 break;
Mauro Carvalho Chehabc117d052008-04-26 14:05:58 -03006457 }
Hartmut Hackmann90e9df72005-11-08 21:38:42 -08006458 case SAA7134_BOARD_PHILIPS_TIGER:
Hartmut Hackmann58ef4f92007-04-27 12:31:12 -03006459 case SAA7134_BOARD_PHILIPS_TIGER_S:
Mauro Carvalho Chehabc117d052008-04-26 14:05:58 -03006460 {
Hartmut Hackmann58ef4f92007-04-27 12:31:12 -03006461 u8 data[] = { 0x3c, 0x33, 0x60};
Hartmut Hackmann58ef4f92007-04-27 12:31:12 -03006462 struct i2c_msg msg = {.addr=0x08, .flags=0, .buf=data, .len = sizeof(data)};
Mauro Carvalho Chehabc117d052008-04-26 14:05:58 -03006463 if (dev->autodetected && (dev->eedata[0x49] == 0x50)) {
Hartmut Hackmann58ef4f92007-04-27 12:31:12 -03006464 dev->board = SAA7134_BOARD_PHILIPS_TIGER_S;
6465 printk(KERN_INFO "%s: Reconfigured board as %s\n",
6466 dev->name, saa7134_boards[dev->board].name);
6467 }
Mauro Carvalho Chehabc117d052008-04-26 14:05:58 -03006468 if (dev->board == SAA7134_BOARD_PHILIPS_TIGER_S) {
6469 dev->tuner_type = TUNER_PHILIPS_TDA8290;
Hartmut Hackmann58ef4f92007-04-27 12:31:12 -03006470
Hartmut Hackmann58ef4f92007-04-27 12:31:12 -03006471 data[2] = 0x68;
Mauro Carvalho Chehabc117d052008-04-26 14:05:58 -03006472 i2c_transfer(&dev->i2c_adap, &msg, 1);
Mauro Carvalho Chehabb9348352009-02-08 09:33:15 -03006473 break;
Hartmut Hackmann58ef4f92007-04-27 12:31:12 -03006474 }
6475 i2c_transfer(&dev->i2c_adap, &msg, 1);
Hartmut Hackmann58ef4f92007-04-27 12:31:12 -03006476 break;
Mauro Carvalho Chehabc117d052008-04-26 14:05:58 -03006477 }
Mauro Carvalho Chehabb9348352009-02-08 09:33:15 -03006478 case SAA7134_BOARD_ASUSTeK_TVFM7135:
6479 /* The card below is detected as card=53, but is different */
Hermann Pitton0b17d0e2008-07-12 12:27:59 -03006480 if (dev->autodetected && (dev->eedata[0x27] == 0x03)) {
6481 dev->board = SAA7134_BOARD_ASUSTeK_P7131_ANALOG;
6482 printk(KERN_INFO "%s: P7131 analog only, using "
6483 "entry of %s\n",
6484 dev->name, saa7134_boards[dev->board].name);
6485 }
6486 break;
Michael Krufkye8944282009-03-10 17:02:07 -03006487 case SAA7134_BOARD_HAUPPAUGE_HVR1120:
Michael Krufkyf9996c92009-02-28 17:45:17 -03006488 case SAA7134_BOARD_HAUPPAUGE_HVR1110R3:
6489 hauppauge_eeprom(dev, dev->eedata+0x80);
6490 break;
Michael Krufky993efa72007-11-15 10:34:33 -03006491 case SAA7134_BOARD_HAUPPAUGE_HVR1110:
6492 hauppauge_eeprom(dev, dev->eedata+0x80);
6493 /* break intentionally omitted */
Hartmut Hackmann587d2fd2006-10-06 19:13:50 -03006494 case SAA7134_BOARD_PINNACLE_PCTV_310i:
Simon Farnsworthb39423a2007-05-01 10:01:20 -03006495 case SAA7134_BOARD_KWORLD_DVBT_210:
Peter Hartshorn3dfb7292006-02-07 06:49:13 -02006496 case SAA7134_BOARD_TEVION_DVBT_220RF:
Hermann Pitton028165a2008-10-04 21:37:36 -03006497 case SAA7134_BOARD_ASUSTeK_TIGER:
Hartmut Hackmannd4b0aba2005-11-08 21:38:44 -08006498 case SAA7134_BOARD_ASUSTeK_P7131_DUAL:
Hartmut Hackmannf3eec0c02007-03-14 20:33:55 -03006499 case SAA7134_BOARD_ASUSTeK_P7131_HYBRID_LNA:
Hartmut Hackmann5eda2272006-08-07 14:03:32 -03006500 case SAA7134_BOARD_MEDION_MD8800_QUADRO:
Hermann Pitton4ba24372008-01-20 19:27:51 -03006501 case SAA7134_BOARD_AVERMEDIA_SUPER_007:
6502 case SAA7134_BOARD_TWINHAN_DTV_DVB_3056:
Hermann Pitton7b5b3f12008-04-22 14:42:12 -03006503 case SAA7134_BOARD_CREATIX_CTX953:
Mauro Carvalho Chehabc117d052008-04-26 14:05:58 -03006504 {
Peter Hartshorn3dfb7292006-02-07 06:49:13 -02006505 /* this is a hybrid board, initialize to analog mode
6506 * and configure firmware eeprom address
6507 */
Hartmut Hackmann58ef4f92007-04-27 12:31:12 -03006508 u8 data[] = { 0x3c, 0x33, 0x60};
Hartmut Hackmann90e9df72005-11-08 21:38:42 -08006509 struct i2c_msg msg = {.addr=0x08, .flags=0, .buf=data, .len = sizeof(data)};
6510 i2c_transfer(&dev->i2c_adap, &msg, 1);
Hartmut Hackmann90e9df72005-11-08 21:38:42 -08006511 break;
Mauro Carvalho Chehabc117d052008-04-26 14:05:58 -03006512 }
hermann pitton301e9d62008-09-14 17:49:14 -03006513 case SAA7134_BOARD_ASUSTeK_TIGER_3IN1:
6514 {
6515 u8 data[] = { 0x3c, 0x33, 0x60};
6516 struct i2c_msg msg = {.addr = 0x0b, .flags = 0, .buf = data,
6517 .len = sizeof(data)};
6518 i2c_transfer(&dev->i2c_adap, &msg, 1);
6519 break;
6520 }
Nico Sabbi420f32f2006-03-03 12:11:28 -03006521 case SAA7134_BOARD_FLYDVB_TRIO:
Mauro Carvalho Chehabc117d052008-04-26 14:05:58 -03006522 {
Hartmut Hackmann293cdab2006-02-27 21:08:07 -03006523 u8 data[] = { 0x3c, 0x33, 0x62};
6524 struct i2c_msg msg = {.addr=0x09, .flags=0, .buf=data, .len = sizeof(data)};
6525 i2c_transfer(&dev->i2c_adap, &msg, 1);
Hartmut Hackmann293cdab2006-02-27 21:08:07 -03006526 break;
Mauro Carvalho Chehabc117d052008-04-26 14:05:58 -03006527 }
Hartmut Hackmanndf42eaf2006-02-07 06:49:10 -02006528 case SAA7134_BOARD_ADS_DUO_CARDBUS_PTV331:
Hartmut Hackmannd95b8942006-03-27 19:39:30 -03006529 case SAA7134_BOARD_FLYDVBT_HYBRID_CARDBUS:
Mauro Carvalho Chehabc117d052008-04-26 14:05:58 -03006530 {
Hartmut Hackmann58ef4f92007-04-27 12:31:12 -03006531 /* initialize analog mode */
Hartmut Hackmann58ef4f92007-04-27 12:31:12 -03006532 u8 data[] = { 0x3c, 0x33, 0x6a};
Hartmut Hackmanndf42eaf2006-02-07 06:49:10 -02006533 struct i2c_msg msg = {.addr=0x08, .flags=0, .buf=data, .len = sizeof(data)};
6534 i2c_transfer(&dev->i2c_adap, &msg, 1);
Hartmut Hackmanndf42eaf2006-02-07 06:49:10 -02006535 break;
Mauro Carvalho Chehabc117d052008-04-26 14:05:58 -03006536 }
Hartmut Hackmann550a9a52006-11-15 21:31:54 -03006537 case SAA7134_BOARD_CINERGY_HT_PCMCIA:
Michael Krufky9de271e2007-01-16 18:36:40 -03006538 case SAA7134_BOARD_CINERGY_HT_PCI:
Mauro Carvalho Chehabc117d052008-04-26 14:05:58 -03006539 {
Hartmut Hackmann58ef4f92007-04-27 12:31:12 -03006540 /* initialize analog mode */
Hartmut Hackmann58ef4f92007-04-27 12:31:12 -03006541 u8 data[] = { 0x3c, 0x33, 0x68};
Hartmut Hackmann550a9a52006-11-15 21:31:54 -03006542 struct i2c_msg msg = {.addr=0x08, .flags=0, .buf=data, .len = sizeof(data)};
6543 i2c_transfer(&dev->i2c_adap, &msg, 1);
Hartmut Hackmann550a9a52006-11-15 21:31:54 -03006544 break;
Mauro Carvalho Chehabc117d052008-04-26 14:05:58 -03006545 }
Hartmut Hackmanncbb94522006-10-30 20:00:16 -03006546 case SAA7134_BOARD_VIDEOMATE_DVBT_200:
6547 case SAA7134_BOARD_VIDEOMATE_DVBT_200A:
6548 /* The T200 and the T200A share the same pci id. Consequently,
6549 * we are going to query eeprom to try to find out which one we
6550 * are actually looking at. */
6551
6552 /* Don't do this if the board was specifically selected with an
6553 * insmod option or if we have the default configuration T200*/
Mauro Carvalho Chehabb9348352009-02-08 09:33:15 -03006554 if (!dev->autodetected || (dev->eedata[0x41] == 0xd0))
Hartmut Hackmanncbb94522006-10-30 20:00:16 -03006555 break;
Mauro Carvalho Chehabb9348352009-02-08 09:33:15 -03006556 if (dev->eedata[0x41] == 0x02) {
Hartmut Hackmanncbb94522006-10-30 20:00:16 -03006557 /* Reconfigure board as T200A */
6558 dev->board = SAA7134_BOARD_VIDEOMATE_DVBT_200A;
6559 dev->tuner_type = saa7134_boards[dev->board].tuner_type;
6560 dev->tda9887_conf = saa7134_boards[dev->board].tda9887_conf;
6561 printk(KERN_INFO "%s: Reconfigured board as %s\n",
6562 dev->name, saa7134_boards[dev->board].name);
6563 } else {
6564 printk(KERN_WARNING "%s: Unexpected tuner type info: %x in eeprom\n",
6565 dev->name, dev->eedata[0x41]);
6566 break;
6567 }
6568 break;
Mauro Carvalho Chehabb9348352009-02-08 09:33:15 -03006569 case SAA7134_BOARD_ADS_INSTANT_HDTV_PCI:
6570 case SAA7134_BOARD_KWORLD_ATSC110:
6571 {
6572 struct i2c_msg msg = { .addr = 0x0a, .flags = 0 };
6573 int i;
6574 static u8 buffer[][2] = {
6575 { 0x10, 0x12 },
6576 { 0x13, 0x04 },
6577 { 0x16, 0x00 },
6578 { 0x14, 0x04 },
6579 { 0x17, 0x00 },
6580 };
6581
6582 for (i = 0; i < ARRAY_SIZE(buffer); i++) {
6583 msg.buf = &buffer[i][0];
6584 msg.len = ARRAY_SIZE(buffer[0]);
6585 if (i2c_transfer(&dev->i2c_adap, &msg, 1) != 1)
6586 printk(KERN_WARNING
6587 "%s: Unable to enable tuner(%i).\n",
6588 dev->name, i);
6589 }
6590 break;
6591 }
6592 } /* switch() */
6593
6594 /* initialize tuner */
6595 if (TUNER_ABSENT != dev->tuner_type) {
6596 int has_demod = (dev->tda9887_conf & TDA9887_PRESENT);
6597
6598 /* Note: radio tuner address is always filled in,
6599 so we do not need to probe for a radio tuner device. */
6600 if (dev->radio_type != UNSET)
6601 v4l2_i2c_new_subdev(&dev->i2c_adap,
6602 "tuner", "tuner", dev->radio_addr);
6603 if (has_demod)
6604 v4l2_i2c_new_probed_subdev(&dev->i2c_adap, "tuner",
6605 "tuner", v4l2_i2c_tuner_addrs(ADDRS_DEMOD));
6606 if (dev->tuner_addr == ADDR_UNSET) {
6607 enum v4l2_i2c_tuner_type type =
6608 has_demod ? ADDRS_TV_WITH_DEMOD : ADDRS_TV;
6609
6610 v4l2_i2c_new_probed_subdev(&dev->i2c_adap, "tuner",
6611 "tuner", v4l2_i2c_tuner_addrs(type));
6612 } else {
6613 v4l2_i2c_new_subdev(&dev->i2c_adap,
6614 "tuner", "tuner", dev->tuner_addr);
6615 }
6616 }
6617
6618 saa7134_tuner_setup(dev);
6619
6620 switch (dev->board) {
Dmitry Belimovb34dddb2008-04-23 14:09:08 -03006621 case SAA7134_BOARD_BEHOLD_COLUMBUS_TVFM:
Mauro Carvalho Chehabc117d052008-04-26 14:05:58 -03006622 {
Dmitry Belimovb34dddb2008-04-23 14:09:08 -03006623 struct v4l2_priv_tun_config tea5767_cfg;
6624 struct tea5767_ctrl ctl;
6625
6626 dev->i2c_client.addr = 0xC0;
6627 /* set TEA5767(analog FM) defines */
6628 memset(&ctl, 0, sizeof(ctl));
6629 ctl.xtal_freq = TEA5767_HIGH_LO_13MHz;
6630 tea5767_cfg.tuner = TUNER_TEA5767;
6631 tea5767_cfg.priv = &ctl;
Hans Verkuilfac69862009-01-17 12:17:14 -03006632 saa_call_all(dev, tuner, s_config, &tea5767_cfg);
Dmitry Belimovb34dddb2008-04-23 14:09:08 -03006633 break;
Linus Torvalds1da177e2005-04-16 15:20:36 -07006634 }
Mauro Carvalho Chehabc117d052008-04-26 14:05:58 -03006635 } /* switch() */
Mauro Carvalho Chehabbc36a682008-04-22 14:45:27 -03006636
Linus Torvalds1da177e2005-04-16 15:20:36 -07006637 return 0;
6638}