3 * device driver for philips saa7134 based TV cards
6 * (c) 2001-04 Gerd Knorr <kraxel@bytesex.org> [SuSE Labs]
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.
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.
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.
23 #include <linux/init.h>
24 #include <linux/module.h>
25 #include <linux/i2c.h>
26 #include <linux/i2c-algo-bit.h>
28 #include "saa7134-reg.h"
30 #include "tuner-xc2028.h"
31 #include <media/v4l2-common.h>
32 #include <media/tveeprom.h>
38 /* commly used strings */
39 static char name_mute
[] = "mute";
40 static char name_radio
[] = "Radio";
41 static char name_tv
[] = "Television";
42 static char name_tv_mono
[] = "TV (mono only)";
43 static char name_comp
[] = "Composite";
44 static char name_comp1
[] = "Composite1";
45 static char name_comp2
[] = "Composite2";
46 static char name_comp3
[] = "Composite3";
47 static char name_comp4
[] = "Composite4";
48 static char name_svideo
[] = "S-Video";
50 /* ------------------------------------------------------------------ */
51 /* board config info */
53 static struct tda18271_std_map aver_a706_std_map
= {
54 .fm_radio
= { .if_freq
= 5500, .fm_rfn
= 0, .agc_mode
= 3, .std
= 0,
55 .if_lvl
= 0, .rfagc_top
= 0x2c, },
58 /* If radio_type !=UNSET, radio_addr should be specified
61 struct saa7134_board saa7134_boards
[] = {
62 [SAA7134_BOARD_UNKNOWN
] = {
63 .name
= "UNKNOWN/GENERIC",
64 .audio_clock
= 0x00187de7,
65 .tuner_type
= TUNER_ABSENT
,
67 .tuner_addr
= ADDR_UNSET
,
68 .radio_addr
= ADDR_UNSET
,
76 [SAA7134_BOARD_PROTEUS_PRO
] = {
78 .name
= "Proteus Pro [philips reference design]",
79 .audio_clock
= 0x00187de7,
80 .tuner_type
= TUNER_PHILIPS_PAL
,
82 .tuner_addr
= ADDR_UNSET
,
83 .radio_addr
= ADDR_UNSET
,
105 [SAA7134_BOARD_FLYVIDEO3000
] = {
106 /* "Marco d'Itri" <md@Linux.IT> */
107 .name
= "LifeView FlyVIDEO3000",
108 .audio_clock
= 0x00200000,
109 .tuner_type
= TUNER_PHILIPS_PAL
,
111 .tuner_addr
= ADDR_UNSET
,
112 .radio_addr
= ADDR_UNSET
,
122 .name
= name_tv_mono
,
154 [SAA7134_BOARD_FLYVIDEO2000
] = {
155 /* "TC Wan" <tcwan@cs.usm.my> */
156 .name
= "LifeView/Typhoon FlyVIDEO2000",
157 .audio_clock
= 0x00200000,
158 .tuner_type
= TUNER_LG_PAL_NEW_TAPC
,
160 .tuner_addr
= ADDR_UNSET
,
161 .radio_addr
= ADDR_UNSET
,
197 [SAA7134_BOARD_FLYTVPLATINUM_MINI
] = {
198 /* "Arnaud Quette" <aquette@free.fr> */
199 .name
= "LifeView FlyTV Platinum Mini",
200 .audio_clock
= 0x00200000,
201 .tuner_type
= TUNER_PHILIPS_TDA8290
,
203 .tuner_addr
= ADDR_UNSET
,
204 .radio_addr
= ADDR_UNSET
,
212 .name
= name_comp1
, /* Composite signal on S-Video input */
216 .name
= name_comp2
, /* Composite input */
225 [SAA7134_BOARD_FLYTVPLATINUM_FM
] = {
226 /* LifeView FlyTV Platinum FM (LR214WF) */
227 /* "Peter Missel <peter.missel@onlinehome.de> */
228 .name
= "LifeView FlyTV Platinum FM / Gold",
229 .audio_clock
= 0x00200000,
230 .tuner_type
= TUNER_PHILIPS_TDA8290
,
232 .tuner_addr
= ADDR_UNSET
,
233 .radio_addr
= ADDR_UNSET
,
235 .gpiomask
= 0x1E000, /* Set GP16 and unused 15,14,13 to Output */
240 .gpio
= 0x10000, /* GP16=1 selects TV input */
243 /* .name = name_tv_mono,
249 */ .name
= name_comp1
, /* Composite signal on S-Video input */
252 /* .gpio = 0x4000, */
254 .name
= name_comp2
, /* Composite input */
257 /* .gpio = 0x4000, */
259 .name
= name_svideo
, /* S-Video signal on S-Video input */
262 /* .gpio = 0x4000, */
267 .gpio
= 0x00000, /* GP16=0 selects FM radio antenna */
275 [SAA7134_BOARD_ROVERMEDIA_LINK_PRO_FM
] = {
276 /* RoverMedia TV Link Pro FM (LR138 REV:I) */
277 /* Eugene Yudin <Eugene.Yudin@gmail.com> */
278 .name
= "RoverMedia TV Link Pro FM",
279 .audio_clock
= 0x00200000,
280 .tuner_type
= TUNER_PHILIPS_FM1216ME_MK3
, /* TCL MFPE05 2 */
282 .tuner_addr
= ADDR_UNSET
,
283 .radio_addr
= ADDR_UNSET
,
284 .tda9887_conf
= TDA9887_PRESENT
,
293 .name
= name_tv_mono
,
325 [SAA7134_BOARD_EMPRESS
] = {
326 /* "Gert Vervoort" <gert.vervoort@philips.com> */
328 .audio_clock
= 0x00187de7,
329 .tuner_type
= TUNER_PHILIPS_PAL
,
331 .tuner_addr
= ADDR_UNSET
,
332 .radio_addr
= ADDR_UNSET
,
333 .empress_addr
= 0x20,
353 .mpeg
= SAA7134_MPEG_EMPRESS
,
354 .video_out
= CCIR656
,
356 [SAA7134_BOARD_MONSTERTV
] = {
357 /* "K.Ohta" <alpha292@bremen.or.jp> */
358 .name
= "SKNet Monster TV",
359 .audio_clock
= 0x00187de7,
360 .tuner_type
= TUNER_PHILIPS_NTSC_M
,
362 .tuner_addr
= ADDR_UNSET
,
363 .radio_addr
= ADDR_UNSET
,
384 [SAA7134_BOARD_MD9717
] = {
385 .name
= "Tevion MD 9717",
386 .audio_clock
= 0x00200000,
387 .tuner_type
= TUNER_PHILIPS_PAL
,
389 .tuner_addr
= ADDR_UNSET
,
390 .radio_addr
= ADDR_UNSET
,
397 /* workaround for problems with normal TV sound */
398 .name
= name_tv_mono
,
424 [SAA7134_BOARD_TVSTATION_RDS
] = {
425 /* Typhoon TV Tuner RDS: Art.Nr. 50694 */
426 .name
= "KNC One TV-Station RDS / Typhoon TV Tuner RDS",
427 .audio_clock
= 0x00200000,
428 .tuner_type
= TUNER_PHILIPS_FM1216ME_MK3
,
430 .tuner_addr
= ADDR_UNSET
,
431 .radio_addr
= ADDR_UNSET
,
432 .tda9887_conf
= TDA9887_PRESENT
,
439 .name
= name_tv_mono
,
454 .name
= "CVid over SVid",
463 [SAA7134_BOARD_TVSTATION_DVR
] = {
464 .name
= "KNC One TV-Station DVR",
465 .audio_clock
= 0x00200000,
466 .tuner_type
= TUNER_PHILIPS_FM1216ME_MK3
,
468 .tuner_addr
= ADDR_UNSET
,
469 .radio_addr
= ADDR_UNSET
,
470 .empress_addr
= 0x20,
471 .tda9887_conf
= TDA9887_PRESENT
,
472 .gpiomask
= 0x820000,
495 .mpeg
= SAA7134_MPEG_EMPRESS
,
496 .video_out
= CCIR656
,
498 [SAA7134_BOARD_CINERGY400
] = {
499 .name
= "Terratec Cinergy 400 TV",
500 .audio_clock
= 0x00200000,
501 .tuner_type
= TUNER_PHILIPS_PAL
,
503 .tuner_addr
= ADDR_UNSET
,
504 .radio_addr
= ADDR_UNSET
,
519 .name
= name_comp2
, /* CVideo over SVideo Connector */
524 [SAA7134_BOARD_MD5044
] = {
525 .name
= "Medion 5044",
526 .audio_clock
= 0x00187de7, /* was: 0x00200000, */
527 .tuner_type
= TUNER_PHILIPS_FM1216ME_MK3
,
529 .tuner_addr
= ADDR_UNSET
,
530 .radio_addr
= ADDR_UNSET
,
531 .tda9887_conf
= TDA9887_PRESENT
,
538 /* workaround for problems with normal TV sound */
539 .name
= name_tv_mono
,
561 [SAA7134_BOARD_KWORLD
] = {
562 .name
= "Kworld/KuroutoShikou SAA7130-TVPCI",
563 .audio_clock
= 0x00187de7,
564 .tuner_type
= TUNER_PHILIPS_NTSC_M
,
566 .tuner_addr
= ADDR_UNSET
,
567 .radio_addr
= ADDR_UNSET
,
583 [SAA7134_BOARD_CINERGY600
] = {
584 .name
= "Terratec Cinergy 600 TV",
585 .audio_clock
= 0x00200000,
586 .tuner_type
= TUNER_PHILIPS_PAL
,
588 .tuner_addr
= ADDR_UNSET
,
589 .radio_addr
= ADDR_UNSET
,
590 .tda9887_conf
= TDA9887_PRESENT
,
605 .name
= name_comp2
, /* CVideo over SVideo Connector */
614 [SAA7134_BOARD_MD7134
] = {
615 .name
= "Medion 7134",
616 .audio_clock
= 0x00187de7,
617 .tuner_type
= TUNER_PHILIPS_FMD1216ME_MK3
,
619 .tuner_addr
= ADDR_UNSET
,
620 .radio_addr
= ADDR_UNSET
,
621 .tda9887_conf
= TDA9887_PRESENT
,
622 .mpeg
= SAA7134_MPEG_DVB
,
646 [SAA7134_BOARD_TYPHOON_90031
] = {
647 /* aka Typhoon "TV+Radio", Art.Nr 90031 */
648 /* Tom Zoerner <tomzo at users sourceforge net> */
649 .name
= "Typhoon TV+Radio 90031",
650 .audio_clock
= 0x00200000,
651 .tuner_type
= TUNER_PHILIPS_PAL
,
653 .tuner_addr
= ADDR_UNSET
,
654 .radio_addr
= ADDR_UNSET
,
655 .tda9887_conf
= TDA9887_PRESENT
,
675 [SAA7134_BOARD_ELSA
] = {
676 .name
= "ELSA EX-VISION 300TV",
677 .audio_clock
= 0x00187de7,
678 .tuner_type
= TUNER_HITACHI_NTSC
,
680 .tuner_addr
= ADDR_UNSET
,
681 .radio_addr
= ADDR_UNSET
,
697 [SAA7134_BOARD_ELSA_500TV
] = {
698 .name
= "ELSA EX-VISION 500TV",
699 .audio_clock
= 0x00187de7,
700 .tuner_type
= TUNER_HITACHI_NTSC
,
702 .tuner_addr
= ADDR_UNSET
,
703 .radio_addr
= ADDR_UNSET
,
714 .name
= name_tv_mono
,
720 [SAA7134_BOARD_ELSA_700TV
] = {
721 .name
= "ELSA EX-VISION 700TV",
722 .audio_clock
= 0x00187de7,
723 .tuner_type
= TUNER_HITACHI_NTSC
,
725 .tuner_addr
= ADDR_UNSET
,
726 .radio_addr
= ADDR_UNSET
,
746 [SAA7134_BOARD_ASUSTeK_TVFM7134
] = {
747 .name
= "ASUS TV-FM 7134",
748 .audio_clock
= 0x00187de7,
749 .tuner_type
= TUNER_PHILIPS_FM1216ME_MK3
,
751 .tuner_addr
= ADDR_UNSET
,
752 .radio_addr
= ADDR_UNSET
,
753 .tda9887_conf
= TDA9887_PRESENT
,
773 [SAA7134_BOARD_ASUSTeK_TVFM7135
] = {
774 .name
= "ASUS TV-FM 7135",
775 .audio_clock
= 0x00187de7,
776 .tuner_type
= TUNER_PHILIPS_TDA8290
,
778 .tuner_addr
= ADDR_UNSET
,
779 .radio_addr
= ADDR_UNSET
,
780 .gpiomask
= 0x200000,
809 [SAA7134_BOARD_VA1000POWER
] = {
810 .name
= "AOPEN VA1000 POWER",
811 .audio_clock
= 0x00187de7,
812 .tuner_type
= TUNER_PHILIPS_NTSC
,
814 .tuner_addr
= ADDR_UNSET
,
815 .radio_addr
= ADDR_UNSET
,
831 [SAA7134_BOARD_10MOONSTVMASTER
] = {
832 /* "lilicheng" <llc@linuxfans.org> */
833 .name
= "10MOONS PCI TV CAPTURE CARD",
834 .audio_clock
= 0x00200000,
835 .tuner_type
= TUNER_LG_PAL_NEW_TAPC
,
837 .tuner_addr
= ADDR_UNSET
,
838 .radio_addr
= ADDR_UNSET
,
873 [SAA7134_BOARD_BMK_MPEX_NOTUNER
] = {
874 /* "Andrew de Quincey" <adq@lidskialf.net> */
875 .name
= "BMK MPEX No Tuner",
876 .audio_clock
= 0x200000,
877 .tuner_type
= TUNER_ABSENT
,
879 .tuner_addr
= ADDR_UNSET
,
880 .radio_addr
= ADDR_UNSET
,
881 .empress_addr
= 0x20,
903 .mpeg
= SAA7134_MPEG_EMPRESS
,
904 .video_out
= CCIR656
,
906 [SAA7134_BOARD_VIDEOMATE_TV
] = {
907 .name
= "Compro VideoMate TV",
908 .audio_clock
= 0x00187de7,
909 .tuner_type
= TUNER_PHILIPS_NTSC_M
,
911 .tuner_addr
= ADDR_UNSET
,
912 .radio_addr
= ADDR_UNSET
,
928 [SAA7134_BOARD_VIDEOMATE_TV_GOLD_PLUS
] = {
929 .name
= "Compro VideoMate TV Gold+",
930 .audio_clock
= 0x00187de7,
931 .tuner_type
= TUNER_PHILIPS_NTSC_M
,
932 .gpiomask
= 0x800c0000,
934 .tuner_addr
= ADDR_UNSET
,
935 .radio_addr
= ADDR_UNSET
,
952 }}, /* radio and probably mute is missing */
954 [SAA7134_BOARD_CRONOS_PLUS
] = {
963 .name
= "Matrox CronosPlus",
964 .tuner_type
= TUNER_ABSENT
,
966 .tuner_addr
= ADDR_UNSET
,
967 .radio_addr
= ADDR_UNSET
,
991 [SAA7134_BOARD_MD2819
] = {
992 .name
= "AverMedia M156 / Medion 2819",
993 .audio_clock
= 0x00187de7,
994 .tuner_type
= TUNER_PHILIPS_FM1216ME_MK3
,
996 .tuner_addr
= ADDR_UNSET
,
997 .radio_addr
= ADDR_UNSET
,
998 .tda9887_conf
= TDA9887_PRESENT
,
1017 .name
= name_svideo
,
1033 [SAA7134_BOARD_BMK_MPEX_TUNER
] = {
1034 /* "Greg Wickham <greg.wickham@grangenet.net> */
1035 .name
= "BMK MPEX Tuner",
1036 .audio_clock
= 0x200000,
1037 .tuner_type
= TUNER_PHILIPS_PAL
,
1038 .radio_type
= UNSET
,
1039 .tuner_addr
= ADDR_UNSET
,
1040 .radio_addr
= ADDR_UNSET
,
1041 .empress_addr
= 0x20,
1047 .name
= name_svideo
,
1056 .mpeg
= SAA7134_MPEG_EMPRESS
,
1057 .video_out
= CCIR656
,
1059 [SAA7134_BOARD_ASUSTEK_TVFM7133
] = {
1060 .name
= "ASUS TV-FM 7133",
1061 .audio_clock
= 0x00187de7,
1062 /* probably wrong, the 7133 one is the NTSC version ...
1063 * .tuner_type = TUNER_PHILIPS_FM1236_MK3 */
1064 .tuner_type
= TUNER_LG_NTSC_NEW_TAPC
,
1065 .radio_type
= UNSET
,
1066 .tuner_addr
= ADDR_UNSET
,
1067 .radio_addr
= ADDR_UNSET
,
1068 .tda9887_conf
= TDA9887_PRESENT
,
1080 .name
= name_svideo
,
1089 [SAA7134_BOARD_PINNACLE_PCTV_STEREO
] = {
1090 .name
= "Pinnacle PCTV Stereo (saa7134)",
1091 .audio_clock
= 0x00187de7,
1092 .tuner_type
= TUNER_MT2032
,
1093 .radio_type
= UNSET
,
1094 .tuner_addr
= ADDR_UNSET
,
1095 .radio_addr
= ADDR_UNSET
,
1096 .tda9887_conf
= TDA9887_PRESENT
| TDA9887_INTERCARRIER
| TDA9887_PORT2_INACTIVE
,
1111 .name
= name_svideo
,
1116 [SAA7134_BOARD_MANLI_MTV002
] = {
1117 /* Ognjen Nastic <ognjen@logosoft.ba> */
1118 .name
= "Manli MuchTV M-TV002",
1119 .audio_clock
= 0x00200000,
1120 .tuner_type
= TUNER_PHILIPS_PAL
,
1121 .radio_type
= UNSET
,
1122 .tuner_addr
= ADDR_UNSET
,
1123 .radio_addr
= ADDR_UNSET
,
1125 .name
= name_svideo
,
1143 [SAA7134_BOARD_MANLI_MTV001
] = {
1144 /* Ognjen Nastic <ognjen@logosoft.ba> UNTESTED */
1145 .name
= "Manli MuchTV M-TV001",
1146 .audio_clock
= 0x00200000,
1147 .tuner_type
= TUNER_PHILIPS_PAL
,
1148 .radio_type
= UNSET
,
1149 .tuner_addr
= ADDR_UNSET
,
1150 .radio_addr
= ADDR_UNSET
,
1152 .name
= name_svideo
,
1170 [SAA7134_BOARD_TG3000TV
] = {
1171 /* TransGear 3000TV */
1172 .name
= "Nagase Sangyo TransGear 3000TV",
1173 .audio_clock
= 0x00187de7,
1174 .tuner_type
= TUNER_PHILIPS_NTSC_M
,
1175 .radio_type
= UNSET
,
1176 .tuner_addr
= ADDR_UNSET
,
1177 .radio_addr
= ADDR_UNSET
,
1188 .name
= name_svideo
,
1193 [SAA7134_BOARD_ECS_TVP3XP
] = {
1194 .name
= "Elitegroup ECS TVP3XP FM1216 Tuner Card(PAL-BG,FM) ",
1195 .audio_clock
= 0x187de7, /* xtal 32.1 MHz */
1196 .tuner_type
= TUNER_PHILIPS_PAL
,
1197 .radio_type
= UNSET
,
1198 .tuner_addr
= ADDR_UNSET
,
1199 .radio_addr
= ADDR_UNSET
,
1206 .name
= name_tv_mono
,
1215 .name
= name_svideo
,
1219 .name
= "CVid over SVid",
1228 [SAA7134_BOARD_ECS_TVP3XP_4CB5
] = {
1229 .name
= "Elitegroup ECS TVP3XP FM1236 Tuner Card (NTSC,FM)",
1230 .audio_clock
= 0x187de7,
1231 .tuner_type
= TUNER_PHILIPS_NTSC
,
1232 .radio_type
= UNSET
,
1233 .tuner_addr
= ADDR_UNSET
,
1234 .radio_addr
= ADDR_UNSET
,
1241 .name
= name_tv_mono
,
1250 .name
= name_svideo
,
1254 .name
= "CVid over SVid",
1263 [SAA7134_BOARD_ECS_TVP3XP_4CB6
] = {
1264 /* Barry Scott <barry.scott@onelan.co.uk> */
1265 .name
= "Elitegroup ECS TVP3XP FM1246 Tuner Card (PAL,FM)",
1266 .audio_clock
= 0x187de7,
1267 .tuner_type
= TUNER_PHILIPS_PAL_I
,
1268 .radio_type
= UNSET
,
1269 .tuner_addr
= ADDR_UNSET
,
1270 .radio_addr
= ADDR_UNSET
,
1277 .name
= name_tv_mono
,
1286 .name
= name_svideo
,
1290 .name
= "CVid over SVid",
1299 [SAA7134_BOARD_AVACSSMARTTV
] = {
1300 /* Roman Pszonczenko <romka@kolos.math.uni.lodz.pl> */
1301 .name
= "AVACS SmartTV",
1302 .audio_clock
= 0x00187de7,
1303 .tuner_type
= TUNER_PHILIPS_PAL
,
1304 .radio_type
= UNSET
,
1305 .tuner_addr
= ADDR_UNSET
,
1306 .radio_addr
= ADDR_UNSET
,
1313 .name
= name_tv_mono
,
1326 .name
= name_svideo
,
1336 [SAA7134_BOARD_AVERMEDIA_DVD_EZMAKER
] = {
1337 /* Michael Smith <msmith@cbnco.com> */
1338 .name
= "AVerMedia DVD EZMaker",
1339 .audio_clock
= 0x00187de7,
1340 .tuner_type
= TUNER_ABSENT
,
1341 .radio_type
= UNSET
,
1342 .tuner_addr
= ADDR_UNSET
,
1343 .radio_addr
= ADDR_UNSET
,
1348 .name
= name_svideo
,
1352 [SAA7134_BOARD_AVERMEDIA_M103
] = {
1353 /* Massimo Piccioni <dafastidio@libero.it> */
1354 .name
= "AVerMedia MiniPCI DVB-T Hybrid M103",
1355 .audio_clock
= 0x187de7,
1356 .tuner_type
= TUNER_XC2028
,
1357 .radio_type
= UNSET
,
1358 .tuner_addr
= ADDR_UNSET
,
1359 .radio_addr
= ADDR_UNSET
,
1360 .mpeg
= SAA7134_MPEG_DVB
,
1368 [SAA7134_BOARD_NOVAC_PRIMETV7133
] = {
1369 /* toshii@netbsd.org */
1370 .name
= "Noval Prime TV 7133",
1371 .audio_clock
= 0x00200000,
1372 .tuner_type
= TUNER_ALPS_TSBH1_NTSC
,
1373 .radio_type
= UNSET
,
1374 .tuner_addr
= ADDR_UNSET
,
1375 .radio_addr
= ADDR_UNSET
,
1385 .name
= name_svideo
,
1389 [SAA7134_BOARD_AVERMEDIA_STUDIO_305
] = {
1390 .name
= "AverMedia AverTV Studio 305",
1391 .audio_clock
= 0x00187de7,
1392 .tuner_type
= TUNER_PHILIPS_FM1256_IH3
,
1393 .radio_type
= UNSET
,
1394 .tuner_addr
= ADDR_UNSET
,
1395 .radio_addr
= ADDR_UNSET
,
1396 .tda9887_conf
= TDA9887_PRESENT
,
1411 .name
= name_svideo
,
1424 [SAA7134_BOARD_AVERMEDIA_STUDIO_505
] = {
1425 /* Vasiliy Temnikov <vaka@newmail.ru> */
1426 .name
= "AverMedia AverTV Studio 505",
1427 .audio_clock
= 0x00187de7,
1428 .tuner_type
= TUNER_PHILIPS_FM1216ME_MK3
,
1429 .radio_type
= UNSET
,
1430 .tuner_addr
= ADDR_UNSET
,
1431 .radio_addr
= ADDR_UNSET
,
1432 .tda9887_conf
= TDA9887_PRESENT
,
1447 .name
= name_svideo
,
1460 [SAA7134_BOARD_UPMOST_PURPLE_TV
] = {
1461 .name
= "UPMOST PURPLE TV",
1462 .audio_clock
= 0x00187de7,
1463 .tuner_type
= TUNER_PHILIPS_FM1236_MK3
,
1464 .radio_type
= UNSET
,
1465 .tuner_addr
= ADDR_UNSET
,
1466 .radio_addr
= ADDR_UNSET
,
1467 .tda9887_conf
= TDA9887_PRESENT
,
1474 .name
= name_svideo
,
1479 [SAA7134_BOARD_ITEMS_MTV005
] = {
1480 /* Norman Jonas <normanjonas@arcor.de> */
1481 .name
= "Items MuchTV Plus / IT-005",
1482 .audio_clock
= 0x00187de7,
1483 .tuner_type
= TUNER_PHILIPS_PAL
,
1484 .radio_type
= UNSET
,
1485 .tuner_addr
= ADDR_UNSET
,
1486 .radio_addr
= ADDR_UNSET
,
1497 .name
= name_svideo
,
1506 [SAA7134_BOARD_CINERGY200
] = {
1507 .name
= "Terratec Cinergy 200 TV",
1508 .audio_clock
= 0x00200000,
1509 .tuner_type
= TUNER_PHILIPS_PAL
,
1510 .radio_type
= UNSET
,
1511 .tuner_addr
= ADDR_UNSET
,
1512 .radio_addr
= ADDR_UNSET
,
1523 .name
= name_svideo
,
1527 .name
= name_comp2
, /* CVideo over SVideo Connector */
1536 [SAA7134_BOARD_VIDEOMATE_TV_PVR
] = {
1537 /* Alain St-Denis <alain@topaze.homeip.net> */
1538 .name
= "Compro VideoMate TV PVR/FM",
1539 .audio_clock
= 0x00187de7,
1540 .tuner_type
= TUNER_PHILIPS_NTSC_M
,
1541 .radio_type
= UNSET
,
1542 .tuner_addr
= ADDR_UNSET
,
1543 .radio_addr
= ADDR_UNSET
,
1544 .gpiomask
= 0x808c0080,
1546 .name
= name_svideo
,
1573 [SAA7134_BOARD_SABRENT_SBTTVFM
] = {
1574 /* Michael Rodriguez-Torrent <mrtorrent@asu.edu> */
1575 .name
= "Sabrent SBT-TVFM (saa7130)",
1576 .audio_clock
= 0x00187de7,
1577 .tuner_type
= TUNER_PHILIPS_NTSC_M
,
1578 .radio_type
= UNSET
,
1579 .tuner_addr
= ADDR_UNSET
,
1580 .radio_addr
= ADDR_UNSET
,
1591 .name
= name_svideo
,
1600 [SAA7134_BOARD_ZOLID_XPERT_TV7134
] = {
1601 /* Helge Jensen <helge.jensen@slog.dk> */
1602 .name
= ":Zolid Xpert TV7134",
1603 .audio_clock
= 0x00187de7,
1604 .tuner_type
= TUNER_PHILIPS_NTSC
,
1605 .radio_type
= UNSET
,
1606 .tuner_addr
= ADDR_UNSET
,
1607 .radio_addr
= ADDR_UNSET
,
1609 .name
= name_svideo
,
1623 [SAA7134_BOARD_EMPIRE_PCI_TV_RADIO_LE
] = {
1624 /* "Matteo Az" <matte.az@nospam.libero.it> ;-) */
1625 .name
= "Empire PCI TV-Radio LE",
1626 .audio_clock
= 0x00187de7,
1627 .tuner_type
= TUNER_PHILIPS_PAL
,
1628 .radio_type
= UNSET
,
1629 .tuner_addr
= ADDR_UNSET
,
1630 .radio_addr
= ADDR_UNSET
,
1633 .name
= name_tv_mono
,
1644 .name
= name_svideo
,
1660 [SAA7134_BOARD_AVERMEDIA_STUDIO_307
] = {
1662 Nickolay V. Shmyrev <nshmyrev@yandex.ru>
1663 Lots of thanks to Andrey Zolotarev <zolotarev_andrey@mail.ru>
1665 .name
= "Avermedia AVerTV Studio 307",
1666 .audio_clock
= 0x00187de7,
1667 .tuner_type
= TUNER_PHILIPS_FM1256_IH3
,
1668 .radio_type
= UNSET
,
1669 .tuner_addr
= ADDR_UNSET
,
1670 .radio_addr
= ADDR_UNSET
,
1671 .tda9887_conf
= TDA9887_PRESENT
,
1685 .name
= name_svideo
,
1701 [SAA7134_BOARD_AVERMEDIA_GO_007_FM
] = {
1702 .name
= "Avermedia AVerTV GO 007 FM",
1703 .audio_clock
= 0x00187de7,
1704 .tuner_type
= TUNER_PHILIPS_TDA8290
,
1705 .radio_type
= UNSET
,
1706 .tuner_addr
= ADDR_UNSET
,
1707 .radio_addr
= ADDR_UNSET
,
1708 .gpiomask
= 0x00300003,
1709 /* .gpiomask = 0x8c240003, */
1722 .name
= name_svideo
,
1738 [SAA7134_BOARD_AVERMEDIA_CARDBUS
] = {
1739 /* Kees.Blom@cwi.nl */
1740 .name
= "AVerMedia Cardbus TV/Radio (E500)",
1741 .audio_clock
= 0x187de7,
1742 .tuner_type
= TUNER_PHILIPS_TDA8290
,
1743 .radio_type
= UNSET
,
1744 .tuner_addr
= ADDR_UNSET
,
1745 .radio_addr
= ADDR_UNSET
,
1756 .name
= name_svideo
,
1765 [SAA7134_BOARD_AVERMEDIA_CARDBUS_501
] = {
1766 /* Oldrich Jedlicka <oldium.pro@seznam.cz> */
1767 .name
= "AVerMedia Cardbus TV/Radio (E501R)",
1768 .audio_clock
= 0x187de7,
1769 .tuner_type
= TUNER_ALPS_TSBE5_PAL
,
1770 .radio_type
= TUNER_TEA5767
,
1773 .tda9887_conf
= TDA9887_PRESENT
,
1774 .gpiomask
= 0x08000000,
1787 .name
= name_svideo
,
1798 [SAA7134_BOARD_CINERGY400_CARDBUS
] = {
1799 .name
= "Terratec Cinergy 400 mobile",
1800 .audio_clock
= 0x187de7,
1801 .tuner_type
= TUNER_ALPS_TSBE5_PAL
,
1802 .radio_type
= UNSET
,
1803 .tuner_addr
= ADDR_UNSET
,
1804 .radio_addr
= ADDR_UNSET
,
1805 .tda9887_conf
= TDA9887_PRESENT
,
1812 .name
= name_tv_mono
,
1821 .name
= name_svideo
,
1826 [SAA7134_BOARD_CINERGY600_MK3
] = {
1827 .name
= "Terratec Cinergy 600 TV MK3",
1828 .audio_clock
= 0x00200000,
1829 .tuner_type
= TUNER_PHILIPS_FM1216ME_MK3
,
1830 .radio_type
= UNSET
,
1831 .tuner_addr
= ADDR_UNSET
,
1832 .radio_addr
= ADDR_UNSET
,
1834 .tda9887_conf
= TDA9887_PRESENT
,
1845 .name
= name_svideo
,
1849 .name
= name_comp2
, /* CVideo over SVideo Connector */
1858 [SAA7134_BOARD_VIDEOMATE_GOLD_PLUS
] = {
1859 /* Dylan Walkden <dylan_walkden@hotmail.com> */
1860 .name
= "Compro VideoMate Gold+ Pal",
1861 .audio_clock
= 0x00187de7,
1862 .tuner_type
= TUNER_PHILIPS_PAL
,
1863 .radio_type
= UNSET
,
1864 .tuner_addr
= ADDR_UNSET
,
1865 .radio_addr
= ADDR_UNSET
,
1866 .gpiomask
= 0x1ce780,
1868 .name
= name_svideo
,
1869 .vmux
= 0, /* CVideo over SVideo Connector - ok? */
1895 [SAA7134_BOARD_PINNACLE_300I_DVBT_PAL
] = {
1896 .name
= "Pinnacle PCTV 300i DVB-T + PAL",
1897 .audio_clock
= 0x00187de7,
1898 .tuner_type
= TUNER_MT2032
,
1899 .radio_type
= UNSET
,
1900 .tuner_addr
= ADDR_UNSET
,
1901 .radio_addr
= ADDR_UNSET
,
1902 .tda9887_conf
= TDA9887_PRESENT
| TDA9887_INTERCARRIER
| TDA9887_PORT2_INACTIVE
,
1903 .mpeg
= SAA7134_MPEG_DVB
,
1918 .name
= name_svideo
,
1923 [SAA7134_BOARD_PROVIDEO_PV952
] = {
1924 /* andreas.kretschmer@web.de */
1925 .name
= "ProVideo PV952",
1926 .audio_clock
= 0x00187de7,
1927 .tuner_type
= TUNER_PHILIPS_FM1216ME_MK3
,
1928 .radio_type
= UNSET
,
1929 .tuner_addr
= ADDR_UNSET
,
1930 .radio_addr
= ADDR_UNSET
,
1931 .tda9887_conf
= TDA9887_PRESENT
,
1942 .name
= name_tv_mono
,
1952 [SAA7134_BOARD_AVERMEDIA_305
] = {
1953 /* much like the "studio" version but without radio
1954 * and another tuner (sirspiritus@yandex.ru) */
1955 .name
= "AverMedia AverTV/305",
1956 .audio_clock
= 0x00187de7,
1957 .tuner_type
= TUNER_PHILIPS_FQ1216ME
,
1958 .radio_type
= UNSET
,
1959 .tuner_addr
= ADDR_UNSET
,
1960 .radio_addr
= ADDR_UNSET
,
1961 .tda9887_conf
= TDA9887_PRESENT
,
1976 .name
= name_svideo
,
1985 [SAA7134_BOARD_FLYDVBTDUO
] = {
1986 /* LifeView FlyDVB-T DUO */
1987 /* "Nico Sabbi <nsabbi@tiscali.it> Hartmut Hackmann hartmut.hackmann@t-online.de*/
1988 .name
= "LifeView FlyDVB-T DUO / MSI TV@nywhere Duo",
1989 .audio_clock
= 0x00200000,
1990 .tuner_type
= TUNER_PHILIPS_TDA8290
,
1991 .radio_type
= UNSET
,
1992 .tuner_addr
= ADDR_UNSET
,
1993 .radio_addr
= ADDR_UNSET
,
1994 .gpiomask
= 0x00200000,
1995 .mpeg
= SAA7134_MPEG_DVB
,
2000 .gpio
= 0x200000, /* GPIO21=High for TV input */
2003 .name
= name_comp1
, /* Composite signal on S-Video input */
2007 .name
= name_comp2
, /* Composite input */
2011 .name
= name_svideo
, /* S-Video signal on S-Video input */
2018 .gpio
= 0x000000, /* GPIO21=Low for FM radio antenna */
2021 [SAA7134_BOARD_PHILIPS_TOUGH
] = {
2022 .name
= "Philips TOUGH DVB-T reference design",
2023 .tuner_type
= TUNER_ABSENT
,
2024 .audio_clock
= 0x00187de7,
2025 .radio_type
= UNSET
,
2026 .tuner_addr
= ADDR_UNSET
,
2027 .radio_addr
= ADDR_UNSET
,
2028 .mpeg
= SAA7134_MPEG_DVB
,
2034 .name
= name_svideo
,
2039 [SAA7134_BOARD_AVERMEDIA_307
] = {
2041 Davydov Vladimir <vladimir@iqmedia.com>
2043 .name
= "Avermedia AVerTV 307",
2044 .audio_clock
= 0x00187de7,
2045 .tuner_type
= TUNER_PHILIPS_FQ1216ME
,
2046 .radio_type
= UNSET
,
2047 .tuner_addr
= ADDR_UNSET
,
2048 .radio_addr
= ADDR_UNSET
,
2049 .tda9887_conf
= TDA9887_PRESENT
,
2064 .name
= name_svideo
,
2069 [SAA7134_BOARD_ADS_INSTANT_TV
] = {
2070 .name
= "ADS Tech Instant TV (saa7135)",
2071 .audio_clock
= 0x00187de7,
2072 .tuner_type
= TUNER_PHILIPS_TDA8290
,
2073 .radio_type
= UNSET
,
2074 .tuner_addr
= ADDR_UNSET
,
2075 .radio_addr
= ADDR_UNSET
,
2086 .name
= name_svideo
,
2091 [SAA7134_BOARD_KWORLD_VSTREAM_XPERT
] = {
2092 .name
= "Kworld/Tevion V-Stream Xpert TV PVR7134",
2093 .audio_clock
= 0x00187de7,
2094 .tuner_type
= TUNER_PHILIPS_PAL_I
,
2095 .radio_type
= UNSET
,
2096 .tuner_addr
= ADDR_UNSET
,
2097 .radio_addr
= ADDR_UNSET
,
2109 .gpio
= 0x200, /* gpio by DScaler */
2111 .name
= name_svideo
,
2127 [SAA7134_BOARD_FLYDVBT_DUO_CARDBUS
] = {
2128 .name
= "LifeView/Typhoon/Genius FlyDVB-T Duo Cardbus",
2129 .audio_clock
= 0x00200000,
2130 .tuner_type
= TUNER_PHILIPS_TDA8290
,
2131 .radio_type
= UNSET
,
2132 .tuner_addr
= ADDR_UNSET
,
2133 .radio_addr
= ADDR_UNSET
,
2134 .mpeg
= SAA7134_MPEG_DVB
,
2135 .gpiomask
= 0x00200000,
2140 .gpio
= 0x200000, /* GPIO21=High for TV input */
2143 .name
= name_svideo
, /* S-Video signal on S-Video input */
2147 .name
= name_comp1
, /* Composite signal on S-Video input */
2151 .name
= name_comp2
, /* Composite input */
2158 .gpio
= 0x000000, /* GPIO21=Low for FM radio antenna */
2161 [SAA7134_BOARD_VIDEOMATE_TV_GOLD_PLUSII
] = {
2162 .name
= "Compro VideoMate TV Gold+II",
2163 .audio_clock
= 0x002187de7,
2164 .tuner_type
= TUNER_LG_PAL_NEW_TAPC
,
2165 .radio_type
= TUNER_TEA5767
,
2168 .gpiomask
= 0x8c1880,
2170 .name
= name_svideo
,
2197 [SAA7134_BOARD_KWORLD_XPERT
] = {
2200 - Remote control doesn't initialize properly.
2201 - Audio volume starts muted,
2202 then gradually increases after channel change.
2203 - Overlay scaling problems (application error?)
2204 - Composite S-Video untested.
2205 From: Konrad Rzepecki <hannibal@megapolis.pl>
2207 .name
= "Kworld Xpert TV PVR7134",
2208 .audio_clock
= 0x00187de7,
2209 .tuner_type
= TUNER_TENA_9533_DI
,
2210 .radio_type
= TUNER_TEA5767
,
2224 .gpio
= 0x200, /* gpio by DScaler */
2226 .name
= name_svideo
,
2242 [SAA7134_BOARD_FLYTV_DIGIMATRIX
] = {
2243 .name
= "FlyTV mini Asus Digimatrix",
2244 .audio_clock
= 0x00200000,
2245 .tuner_type
= TUNER_LG_TALN
,
2246 .radio_type
= UNSET
,
2247 .tuner_addr
= ADDR_UNSET
,
2248 .radio_addr
= ADDR_UNSET
,
2255 .name
= name_tv_mono
,
2268 .name
= name_svideo
,
2273 .name
= name_radio
, /* radio unconfirmed */
2277 [SAA7134_BOARD_KWORLD_TERMINATOR
] = {
2278 /* Kworld V-Stream Studio TV Terminator */
2279 /* "James Webb <jrwebb@qwest.net> */
2280 .name
= "V-Stream Studio TV Terminator",
2281 .audio_clock
= 0x00187de7,
2282 .tuner_type
= TUNER_PHILIPS_TDA8290
,
2283 .radio_type
= UNSET
,
2284 .tuner_addr
= ADDR_UNSET
,
2285 .radio_addr
= ADDR_UNSET
,
2286 .gpiomask
= 1 << 21,
2294 .name
= name_comp1
, /* Composite input */
2299 .name
= name_svideo
, /* S-Video input */
2310 [SAA7134_BOARD_YUAN_TUN900
] = {
2312 * S-Video and composite sources untested.
2313 * Radio not working.
2314 * Remote control not yet implemented.
2315 * From : codemaster@webgeeks.be */
2316 .name
= "Yuan TUN-900 (saa7135)",
2317 .audio_clock
= 0x00187de7,
2318 .tuner_type
= TUNER_PHILIPS_TDA8290
,
2319 .radio_type
= UNSET
,
2320 .tuner_addr
= ADDR_UNSET
,
2321 .radio_addr
= ADDR_UNSET
,
2322 .gpiomask
= 0x00010003,
2335 .name
= name_svideo
,
2351 [SAA7134_BOARD_BEHOLD_409FM
] = {
2352 /* <http://tuner.beholder.ru>, Sergey <skiv@orel.ru> */
2353 /* Beholder Intl. Ltd. 2008 */
2354 /*Dmitry Belimov <d.belimov@gmail.com> */
2355 .name
= "Beholder BeholdTV 409 FM",
2356 .audio_clock
= 0x00187de7,
2357 .tuner_type
= TUNER_PHILIPS_FM1216ME_MK3
,
2358 .radio_type
= UNSET
,
2359 .tuner_addr
= ADDR_UNSET
,
2360 .radio_addr
= ADDR_UNSET
,
2361 .tda9887_conf
= TDA9887_PRESENT
,
2362 .gpiomask
= 0x00008000,
2373 .name
= name_svideo
,
2382 [SAA7134_BOARD_GOTVIEW_7135
] = {
2383 /* Mike Baikov <mike@baikov.com> */
2384 /* Andrey Cvetcov <ays14@yandex.ru> */
2385 .name
= "GoTView 7135 PCI",
2386 .audio_clock
= 0x00187de7,
2387 .tuner_type
= TUNER_PHILIPS_FM1216ME_MK3
,
2388 .radio_type
= UNSET
,
2389 .tuner_addr
= ADDR_UNSET
,
2390 .radio_addr
= ADDR_UNSET
,
2391 .tda9887_conf
= TDA9887_PRESENT
,
2392 .gpiomask
= 0x00200003,
2400 .name
= name_tv_mono
,
2410 .name
= name_svideo
,
2426 [SAA7134_BOARD_PHILIPS_EUROPA
] = {
2427 .name
= "Philips EUROPA V3 reference design",
2428 .audio_clock
= 0x00187de7,
2429 .tuner_type
= TUNER_PHILIPS_TD1316
,
2430 .radio_type
= UNSET
,
2432 .radio_addr
= ADDR_UNSET
,
2433 .tda9887_conf
= TDA9887_PRESENT
| TDA9887_PORT1_ACTIVE
,
2434 .mpeg
= SAA7134_MPEG_DVB
,
2445 .name
= name_svideo
,
2450 [SAA7134_BOARD_VIDEOMATE_DVBT_300
] = {
2451 .name
= "Compro Videomate DVB-T300",
2452 .audio_clock
= 0x00187de7,
2453 .tuner_type
= TUNER_PHILIPS_TD1316
,
2454 .radio_type
= UNSET
,
2456 .radio_addr
= ADDR_UNSET
,
2457 .tda9887_conf
= TDA9887_PRESENT
| TDA9887_PORT1_ACTIVE
,
2458 .mpeg
= SAA7134_MPEG_DVB
,
2469 .name
= name_svideo
,
2474 [SAA7134_BOARD_VIDEOMATE_DVBT_200
] = {
2475 .name
= "Compro Videomate DVB-T200",
2476 .tuner_type
= TUNER_ABSENT
,
2477 .audio_clock
= 0x00187de7,
2478 .radio_type
= UNSET
,
2479 .tuner_addr
= ADDR_UNSET
,
2480 .radio_addr
= ADDR_UNSET
,
2481 .mpeg
= SAA7134_MPEG_DVB
,
2487 .name
= name_svideo
,
2492 [SAA7134_BOARD_RTD_VFG7350
] = {
2493 .name
= "RTD Embedded Technologies VFG7350",
2494 .audio_clock
= 0x00200000,
2495 .tuner_type
= TUNER_ABSENT
,
2496 .radio_type
= UNSET
,
2497 .tuner_addr
= ADDR_UNSET
,
2498 .radio_addr
= ADDR_UNSET
,
2499 .empress_addr
= 0x21,
2501 .name
= "Composite 0",
2505 .name
= "Composite 1",
2509 .name
= "Composite 2",
2513 .name
= "Composite 3",
2517 .name
= "S-Video 0",
2521 .name
= "S-Video 1",
2525 .mpeg
= SAA7134_MPEG_EMPRESS
,
2526 .video_out
= CCIR656
,
2527 .vid_port_opts
= ( SET_T_CODE_POLARITY_NON_INVERTED
|
2528 SET_CLOCK_NOT_DELAYED
|
2529 SET_CLOCK_INVERTED
|
2532 [SAA7134_BOARD_RTD_VFG7330
] = {
2533 .name
= "RTD Embedded Technologies VFG7330",
2534 .audio_clock
= 0x00200000,
2535 .tuner_type
= TUNER_ABSENT
,
2536 .radio_type
= UNSET
,
2537 .tuner_addr
= ADDR_UNSET
,
2538 .radio_addr
= ADDR_UNSET
,
2540 .name
= "Composite 0",
2544 .name
= "Composite 1",
2548 .name
= "Composite 2",
2552 .name
= "Composite 3",
2556 .name
= "S-Video 0",
2560 .name
= "S-Video 1",
2565 [SAA7134_BOARD_FLYTVPLATINUM_MINI2
] = {
2566 .name
= "LifeView FlyTV Platinum Mini2",
2567 .audio_clock
= 0x00200000,
2568 .tuner_type
= TUNER_PHILIPS_TDA8290
,
2569 .radio_type
= UNSET
,
2570 .tuner_addr
= ADDR_UNSET
,
2571 .radio_addr
= ADDR_UNSET
,
2579 .name
= name_comp1
, /* Composite signal on S-Video input */
2583 .name
= name_comp2
, /* Composite input */
2587 .name
= name_svideo
,
2592 [SAA7134_BOARD_AVERMEDIA_AVERTVHD_A180
] = {
2593 /* Michael Krufky <mkrufky@linuxtv.org>
2594 * Uses Alps Electric TDHU2, containing NXT2004 ATSC Decoder
2595 * AFAIK, there is no analog demod, thus,
2596 * no support for analog television.
2598 .name
= "AVerMedia AVerTVHD MCE A180",
2599 .audio_clock
= 0x00187de7,
2600 .tuner_type
= TUNER_ABSENT
,
2601 .radio_type
= UNSET
,
2602 .tuner_addr
= ADDR_UNSET
,
2603 .radio_addr
= ADDR_UNSET
,
2604 .mpeg
= SAA7134_MPEG_DVB
,
2610 .name
= name_svideo
,
2615 [SAA7134_BOARD_MONSTERTV_MOBILE
] = {
2616 .name
= "SKNet MonsterTV Mobile",
2617 .audio_clock
= 0x00187de7,
2618 .tuner_type
= TUNER_PHILIPS_TDA8290
,
2619 .radio_type
= UNSET
,
2620 .tuner_addr
= ADDR_UNSET
,
2621 .radio_addr
= ADDR_UNSET
,
2633 .name
= name_svideo
,
2638 [SAA7134_BOARD_PINNACLE_PCTV_110i
] = {
2639 .name
= "Pinnacle PCTV 40i/50i/110i (saa7133)",
2640 .audio_clock
= 0x00187de7,
2641 .tuner_type
= TUNER_PHILIPS_TDA8290
,
2642 .radio_type
= UNSET
,
2643 .tuner_addr
= ADDR_UNSET
,
2644 .radio_addr
= ADDR_UNSET
,
2645 .gpiomask
= 0x080200000,
2660 .name
= name_svideo
,
2670 [SAA7134_BOARD_ASUSTeK_P7131_DUAL
] = {
2671 .name
= "ASUSTeK P7131 Dual",
2672 .audio_clock
= 0x00187de7,
2673 .tuner_type
= TUNER_PHILIPS_TDA8290
,
2674 .radio_type
= UNSET
,
2675 .tuner_addr
= ADDR_UNSET
,
2676 .radio_addr
= ADDR_UNSET
,
2677 .gpiomask
= 1 << 21,
2678 .mpeg
= SAA7134_MPEG_DVB
,
2696 .name
= name_svideo
,
2707 [SAA7134_BOARD_SEDNA_PC_TV_CARDBUS
] = {
2708 /* Paul Tom Zalac <pzalac@gmail.com> */
2709 /* Pavel Mihaylov <bin@bash.info> */
2710 .name
= "Sedna/MuchTV PC TV Cardbus TV/Radio (ITO25 Rev:2B)",
2711 /* Sedna/MuchTV (OEM) Cardbus TV Tuner */
2712 .audio_clock
= 0x00187de7,
2713 .tuner_type
= TUNER_PHILIPS_TDA8290
,
2714 .radio_type
= UNSET
,
2715 .tuner_addr
= ADDR_UNSET
,
2716 .radio_addr
= ADDR_UNSET
,
2717 .gpiomask
= 0xe880c0,
2728 .name
= name_svideo
,
2737 [SAA7134_BOARD_ASUSTEK_DIGIMATRIX_TV
] = {
2738 /* "Cyril Lacoux (Yack)" <clacoux@ifeelgood.org> */
2739 .name
= "ASUS Digimatrix TV",
2740 .audio_clock
= 0x00200000,
2741 .tuner_type
= TUNER_PHILIPS_FQ1216ME
,
2742 .tda9887_conf
= TDA9887_PRESENT
,
2743 .radio_type
= UNSET
,
2744 .tuner_addr
= ADDR_UNSET
,
2745 .radio_addr
= ADDR_UNSET
,
2756 .name
= name_svideo
,
2761 [SAA7134_BOARD_PHILIPS_TIGER
] = {
2762 .name
= "Philips Tiger reference design",
2763 .audio_clock
= 0x00187de7,
2764 .tuner_type
= TUNER_PHILIPS_TDA8290
,
2765 .radio_type
= UNSET
,
2766 .tuner_addr
= ADDR_UNSET
,
2767 .radio_addr
= ADDR_UNSET
,
2768 .tda829x_conf
= { .lna_cfg
= TDA8290_LNA_OFF
},
2769 .mpeg
= SAA7134_MPEG_DVB
,
2770 .gpiomask
= 0x0200000,
2781 .name
= name_svideo
,
2791 [SAA7134_BOARD_MSI_TVATANYWHERE_PLUS
] = {
2792 .name
= "MSI TV@Anywhere plus",
2793 .audio_clock
= 0x00187de7,
2794 .tuner_type
= TUNER_PHILIPS_TDA8290
,
2795 .radio_type
= UNSET
,
2796 .tuner_addr
= ADDR_UNSET
,
2797 .radio_addr
= ADDR_UNSET
,
2798 .gpiomask
= 1 << 21,
2807 .amux
= LINE2
, /* unconfirmed, taken from Philips driver */
2810 .vmux
= 0, /* untested, Composite over S-Video */
2813 .name
= name_svideo
,
2823 [SAA7134_BOARD_CINERGY250PCI
] = {
2824 /* remote-control does not work. The signal about a
2825 key press comes in via gpio, but the key code
2826 doesn't. Neither does it have an i2c remote control
2828 .name
= "Terratec Cinergy 250 PCI TV",
2829 .audio_clock
= 0x00187de7,
2830 .tuner_type
= TUNER_PHILIPS_TDA8290
,
2831 .radio_type
= UNSET
,
2832 .tuner_addr
= ADDR_UNSET
,
2833 .radio_addr
= ADDR_UNSET
,
2834 .gpiomask
= 0x80200000,
2841 .name
= name_svideo
, /* NOT tested */
2851 [SAA7134_BOARD_FLYDVB_TRIO
] = {
2852 /* LifeView LR319 FlyDVB Trio */
2853 /* Peter Missel <peter.missel@onlinehome.de> */
2854 .name
= "LifeView FlyDVB Trio",
2855 .audio_clock
= 0x00200000,
2856 .tuner_type
= TUNER_PHILIPS_TDA8290
,
2857 .radio_type
= UNSET
,
2858 .tuner_addr
= ADDR_UNSET
,
2859 .radio_addr
= ADDR_UNSET
,
2860 .gpiomask
= 0x00200000,
2861 .mpeg
= SAA7134_MPEG_DVB
,
2863 .name
= name_tv
, /* Analog broadcast/cable TV */
2866 .gpio
= 0x200000, /* GPIO21=High for TV input */
2869 .name
= name_svideo
, /* S-Video signal on S-Video input */
2873 .name
= name_comp1
, /* Composite signal on S-Video input */
2877 .name
= name_comp2
, /* Composite input */
2884 .gpio
= 0x000000, /* GPIO21=Low for FM radio antenna */
2887 [SAA7134_BOARD_AVERMEDIA_777
] = {
2888 .name
= "AverTV DVB-T 777",
2889 .audio_clock
= 0x00187de7,
2890 .tuner_type
= TUNER_ABSENT
,
2891 .radio_type
= UNSET
,
2892 .tuner_addr
= ADDR_UNSET
,
2893 .radio_addr
= ADDR_UNSET
,
2894 .mpeg
= SAA7134_MPEG_DVB
,
2900 .name
= name_svideo
,
2905 [SAA7134_BOARD_FLYDVBT_LR301
] = {
2906 /* LifeView FlyDVB-T */
2907 /* Giampiero Giancipoli <gianci@libero.it> */
2908 .name
= "LifeView FlyDVB-T / Genius VideoWonder DVB-T",
2909 .audio_clock
= 0x00200000,
2910 .tuner_type
= TUNER_ABSENT
,
2911 .radio_type
= UNSET
,
2912 .tuner_addr
= ADDR_UNSET
,
2913 .radio_addr
= ADDR_UNSET
,
2914 .mpeg
= SAA7134_MPEG_DVB
,
2916 .name
= name_comp1
, /* Composite input */
2920 .name
= name_svideo
, /* S-Video signal on S-Video input */
2925 [SAA7134_BOARD_ADS_DUO_CARDBUS_PTV331
] = {
2926 .name
= "ADS Instant TV Duo Cardbus PTV331",
2927 .audio_clock
= 0x00200000,
2928 .tuner_type
= TUNER_PHILIPS_TDA8290
,
2929 .radio_type
= UNSET
,
2930 .tuner_addr
= ADDR_UNSET
,
2931 .radio_addr
= ADDR_UNSET
,
2932 .mpeg
= SAA7134_MPEG_DVB
,
2933 .gpiomask
= 0x00600000, /* Bit 21 0=Radio, Bit 22 0=TV */
2942 [SAA7134_BOARD_TEVION_DVBT_220RF
] = {
2943 .name
= "Tevion/KWorld DVB-T 220RF",
2944 .audio_clock
= 0x00187de7,
2945 .tuner_type
= TUNER_PHILIPS_TDA8290
,
2946 .radio_type
= UNSET
,
2947 .tuner_addr
= ADDR_UNSET
,
2948 .radio_addr
= ADDR_UNSET
,
2949 .mpeg
= SAA7134_MPEG_DVB
,
2950 .gpiomask
= 1 << 21,
2965 .name
= name_svideo
,
2975 [SAA7134_BOARD_KWORLD_DVBT_210
] = {
2976 .name
= "KWorld DVB-T 210",
2977 .audio_clock
= 0x00187de7,
2978 .tuner_type
= TUNER_PHILIPS_TDA8290
,
2979 .radio_type
= UNSET
,
2980 .tuner_addr
= ADDR_UNSET
,
2981 .radio_addr
= ADDR_UNSET
,
2982 .mpeg
= SAA7134_MPEG_DVB
,
2983 .gpiomask
= 1 << 21,
2994 .name
= name_svideo
,
3004 [SAA7134_BOARD_KWORLD_ATSC110
] = {
3005 .name
= "Kworld ATSC110/115",
3006 .audio_clock
= 0x00187de7,
3007 .tuner_type
= TUNER_PHILIPS_TUV1236D
,
3008 .radio_type
= UNSET
,
3009 .tuner_addr
= ADDR_UNSET
,
3010 .radio_addr
= ADDR_UNSET
,
3011 .tda9887_conf
= TDA9887_PRESENT
,
3012 .mpeg
= SAA7134_MPEG_DVB
,
3023 .name
= name_svideo
,
3028 [SAA7134_BOARD_AVERMEDIA_A169_B
] = {
3029 /* AVerMedia A169 */
3030 /* Rickard Osser <ricky@osser.se> */
3031 /* This card has two saa7134 chips on it,
3032 but only one of them is currently working. */
3033 .name
= "AVerMedia A169 B",
3034 .audio_clock
= 0x02187de7,
3035 .tuner_type
= TUNER_LG_TALN
,
3036 .radio_type
= UNSET
,
3037 .tuner_addr
= ADDR_UNSET
,
3038 .radio_addr
= ADDR_UNSET
,
3039 .tda9887_conf
= TDA9887_PRESENT
,
3040 .gpiomask
= 0x0a60000,
3042 [SAA7134_BOARD_AVERMEDIA_A169_B1
] = {
3043 /* AVerMedia A169 */
3044 /* Rickard Osser <ricky@osser.se> */
3045 .name
= "AVerMedia A169 B1",
3046 .audio_clock
= 0x02187de7,
3047 .tuner_type
= TUNER_LG_TALN
,
3048 .radio_type
= UNSET
,
3049 .tuner_addr
= ADDR_UNSET
,
3050 .radio_addr
= ADDR_UNSET
,
3051 .tda9887_conf
= TDA9887_PRESENT
,
3052 .gpiomask
= 0xca60000,
3060 .name
= name_comp2
, /* Composite SVIDEO (B/W if signal is carried with SVIDEO) */
3064 .name
= name_svideo
,
3065 .vmux
= 9, /* 9 is correct as S-VIDEO1 according to a169.inf! */
3069 [SAA7134_BOARD_MD7134_BRIDGE_2
] = {
3070 /* The second saa7134 on this card only serves as DVB-S host bridge */
3071 .name
= "Medion 7134 Bridge #2",
3072 .audio_clock
= 0x00187de7,
3073 .radio_type
= UNSET
,
3074 .tuner_addr
= ADDR_UNSET
,
3075 .radio_addr
= ADDR_UNSET
,
3076 .mpeg
= SAA7134_MPEG_DVB
,
3078 [SAA7134_BOARD_FLYDVBT_HYBRID_CARDBUS
] = {
3079 .name
= "LifeView FlyDVB-T Hybrid Cardbus/MSI TV @nywhere A/D NB",
3080 .audio_clock
= 0x00200000,
3081 .tuner_type
= TUNER_PHILIPS_TDA8290
,
3082 .radio_type
= UNSET
,
3083 .tuner_addr
= ADDR_UNSET
,
3084 .radio_addr
= ADDR_UNSET
,
3085 .mpeg
= SAA7134_MPEG_DVB
,
3086 .gpiomask
= 0x00600000, /* Bit 21 0=Radio, Bit 22 0=TV */
3091 .gpio
= 0x200000, /* GPIO21=High for TV input */
3094 .name
= name_svideo
, /* S-Video signal on S-Video input */
3098 .name
= name_comp1
, /* Composite signal on S-Video input */
3102 .name
= name_comp2
, /* Composite input */
3109 .gpio
= 0x000000, /* GPIO21=Low for FM radio antenna */
3112 [SAA7134_BOARD_FLYVIDEO3000_NTSC
] = {
3113 /* "Zac Bowling" <zac@zacbowling.com> */
3114 .name
= "LifeView FlyVIDEO3000 (NTSC)",
3115 .audio_clock
= 0x00200000,
3116 .tuner_type
= TUNER_PHILIPS_NTSC
,
3117 .radio_type
= UNSET
,
3118 .tuner_addr
= ADDR_UNSET
,
3119 .radio_addr
= ADDR_UNSET
,
3129 .name
= name_tv_mono
,
3145 .name
= name_svideo
,
3161 [SAA7134_BOARD_MEDION_MD8800_QUADRO
] = {
3162 .name
= "Medion Md8800 Quadro",
3163 .audio_clock
= 0x00187de7,
3164 .tuner_type
= TUNER_PHILIPS_TDA8290
,
3165 .radio_type
= UNSET
,
3166 .tuner_addr
= ADDR_UNSET
,
3167 .radio_addr
= ADDR_UNSET
,
3168 .mpeg
= SAA7134_MPEG_DVB
,
3179 .name
= name_svideo
,
3184 [SAA7134_BOARD_FLYDVBS_LR300
] = {
3185 /* LifeView FlyDVB-s */
3186 /* Igor M. Liplianin <liplianin@tut.by> */
3187 .name
= "LifeView FlyDVB-S /Acorp TV134DS",
3188 .audio_clock
= 0x00200000,
3189 .tuner_type
= TUNER_ABSENT
,
3190 .radio_type
= UNSET
,
3191 .tuner_addr
= ADDR_UNSET
,
3192 .radio_addr
= ADDR_UNSET
,
3193 .mpeg
= SAA7134_MPEG_DVB
,
3195 .name
= name_comp1
, /* Composite input */
3199 .name
= name_svideo
, /* S-Video signal on S-Video input */
3204 [SAA7134_BOARD_PROTEUS_2309
] = {
3205 .name
= "Proteus Pro 2309",
3206 .audio_clock
= 0x00187de7,
3207 .tuner_type
= TUNER_PHILIPS_FM1216ME_MK3
,
3208 .radio_type
= UNSET
,
3209 .tuner_addr
= ADDR_UNSET
,
3210 .radio_addr
= ADDR_UNSET
,
3211 .tda9887_conf
= TDA9887_PRESENT
,
3226 .name
= name_svideo
,
3235 [SAA7134_BOARD_AVERMEDIA_A16AR
] = {
3236 /* Petr Baudis <pasky@ucw.cz> */
3237 .name
= "AVerMedia TV Hybrid A16AR",
3238 .audio_clock
= 0x187de7,
3239 .tuner_type
= TUNER_PHILIPS_TD1316
, /* untested */
3240 .radio_type
= TUNER_TEA5767
, /* untested */
3241 .tuner_addr
= ADDR_UNSET
,
3243 .tda9887_conf
= TDA9887_PRESENT
,
3244 .mpeg
= SAA7134_MPEG_DVB
,
3255 .name
= name_svideo
,
3264 [SAA7134_BOARD_ASUS_EUROPA2_HYBRID
] = {
3265 .name
= "Asus Europa2 OEM",
3266 .audio_clock
= 0x00187de7,
3267 .tuner_type
= TUNER_PHILIPS_FMD1216ME_MK3
,
3268 .radio_type
= UNSET
,
3269 .tuner_addr
= ADDR_UNSET
,
3270 .radio_addr
= ADDR_UNSET
,
3271 .tda9887_conf
= TDA9887_PRESENT
| TDA9887_PORT1_ACTIVE
| TDA9887_PORT2_ACTIVE
,
3272 .mpeg
= SAA7134_MPEG_DVB
,
3283 .name
= name_svideo
,
3292 [SAA7134_BOARD_PINNACLE_PCTV_310i
] = {
3293 .name
= "Pinnacle PCTV 310i",
3294 .audio_clock
= 0x00187de7,
3295 .tuner_type
= TUNER_PHILIPS_TDA8290
,
3296 .radio_type
= UNSET
,
3297 .tuner_addr
= ADDR_UNSET
,
3298 .radio_addr
= ADDR_UNSET
,
3299 .tda829x_conf
= { .lna_cfg
= TDA8290_LNA_GP0_HIGH_ON
},
3300 .mpeg
= SAA7134_MPEG_DVB
,
3301 .gpiomask
= 0x000200000,
3316 .name
= name_svideo
,
3326 [SAA7134_BOARD_AVERMEDIA_STUDIO_507
] = {
3327 /* Mikhail Fedotov <mo_fedotov@mail.ru> */
3328 .name
= "Avermedia AVerTV Studio 507",
3329 .audio_clock
= 0x00187de7,
3330 .tuner_type
= TUNER_PHILIPS_FM1256_IH3
,
3331 .radio_type
= UNSET
,
3332 .tuner_addr
= ADDR_UNSET
,
3333 .radio_addr
= ADDR_UNSET
,
3334 .tda9887_conf
= TDA9887_PRESENT
,
3353 .name
= name_svideo
,
3369 [SAA7134_BOARD_VIDEOMATE_DVBT_200A
] = {
3370 /* Francis Barber <fedora@barber-family.id.au> */
3371 .name
= "Compro Videomate DVB-T200A",
3372 .audio_clock
= 0x00187de7,
3373 .tuner_type
= TUNER_ABSENT
,
3374 .radio_type
= UNSET
,
3375 .tuner_addr
= ADDR_UNSET
,
3376 .radio_addr
= ADDR_UNSET
,
3377 .tda9887_conf
= TDA9887_PRESENT
| TDA9887_PORT1_ACTIVE
,
3378 .mpeg
= SAA7134_MPEG_DVB
,
3389 .name
= name_svideo
,
3394 [SAA7134_BOARD_HAUPPAUGE_HVR1110
] = {
3395 /* Thomas Genty <tomlohave@gmail.com> */
3396 /* David Bentham <db260179@hotmail.com> */
3397 .name
= "Hauppauge WinTV-HVR1110 DVB-T/Hybrid",
3398 .audio_clock
= 0x00187de7,
3399 .tuner_type
= TUNER_PHILIPS_TDA8290
,
3400 .radio_type
= UNSET
,
3401 .tuner_addr
= ADDR_UNSET
,
3402 .radio_addr
= ADDR_UNSET
,
3403 .tda829x_conf
= { .lna_cfg
= TDA8290_LNA_GP0_HIGH_ON
},
3404 .mpeg
= SAA7134_MPEG_DVB
,
3405 .gpiomask
= 0x0200100,
3417 .name
= name_svideo
,
3427 [SAA7134_BOARD_HAUPPAUGE_HVR1150
] = {
3428 .name
= "Hauppauge WinTV-HVR1150 ATSC/QAM-Hybrid",
3429 .audio_clock
= 0x00187de7,
3430 .tuner_type
= TUNER_PHILIPS_TDA8290
,
3431 .radio_type
= UNSET
,
3432 .tuner_addr
= ADDR_UNSET
,
3433 .radio_addr
= ADDR_UNSET
,
3434 .tda829x_conf
= { .lna_cfg
= TDA8290_LNA_ON_BRIDGE
},
3435 .mpeg
= SAA7134_MPEG_DVB
,
3436 .ts_type
= SAA7134_MPEG_TS_SERIAL
,
3438 .gpiomask
= 0x0800100, /* GPIO 21 is an INPUT */
3450 .name
= name_svideo
,
3457 .gpio
= 0x0800100, /* GPIO 23 HI for FM */
3460 [SAA7134_BOARD_HAUPPAUGE_HVR1120
] = {
3461 .name
= "Hauppauge WinTV-HVR1120 DVB-T/Hybrid",
3462 .audio_clock
= 0x00187de7,
3463 .tuner_type
= TUNER_PHILIPS_TDA8290
,
3464 .radio_type
= UNSET
,
3465 .tuner_addr
= ADDR_UNSET
,
3466 .radio_addr
= ADDR_UNSET
,
3467 .tda829x_conf
= { .lna_cfg
= TDA8290_LNA_ON_BRIDGE
},
3468 .mpeg
= SAA7134_MPEG_DVB
,
3469 .ts_type
= SAA7134_MPEG_TS_SERIAL
,
3470 .gpiomask
= 0x0800100, /* GPIO 21 is an INPUT */
3482 .name
= name_svideo
,
3489 .gpio
= 0x0800100, /* GPIO 23 HI for FM */
3492 [SAA7134_BOARD_CINERGY_HT_PCMCIA
] = {
3493 .name
= "Terratec Cinergy HT PCMCIA",
3494 .audio_clock
= 0x00187de7,
3495 .tuner_type
= TUNER_PHILIPS_TDA8290
,
3496 .radio_type
= UNSET
,
3497 .tuner_addr
= ADDR_UNSET
,
3498 .radio_addr
= ADDR_UNSET
,
3499 .mpeg
= SAA7134_MPEG_DVB
,
3510 .name
= name_svideo
,
3515 [SAA7134_BOARD_ENCORE_ENLTV
] = {
3516 /* Steven Walter <stevenrwalter@gmail.com>
3517 Juan Pablo Sormani <sorman@gmail.com> */
3518 .name
= "Encore ENLTV",
3519 .audio_clock
= 0x00200000,
3520 .tuner_type
= TUNER_TNF_5335MF
,
3521 .radio_type
= UNSET
,
3522 .tuner_addr
= ADDR_UNSET
,
3523 .radio_addr
= ADDR_UNSET
,
3530 .name
= name_tv_mono
,
3539 .name
= name_svideo
,
3546 /* .gpio = 0x00300001,*/
3555 [SAA7134_BOARD_ENCORE_ENLTV_FM
] = {
3556 /* Juan Pablo Sormani <sorman@gmail.com> */
3557 .name
= "Encore ENLTV-FM",
3558 .audio_clock
= 0x00200000,
3559 .tuner_type
= TUNER_PHILIPS_FCV1236D
,
3560 .radio_type
= UNSET
,
3561 .tuner_addr
= ADDR_UNSET
,
3562 .radio_addr
= ADDR_UNSET
,
3569 .name
= name_tv_mono
,
3578 .name
= name_svideo
,
3593 [SAA7134_BOARD_ENCORE_ENLTV_FM53
] = {
3594 .name
= "Encore ENLTV-FM v5.3",
3595 .audio_clock
= 0x00200000,
3596 .tuner_type
= TUNER_TNF_5335MF
,
3597 .radio_type
= UNSET
,
3598 .tuner_addr
= ADDR_UNSET
,
3599 .radio_addr
= ADDR_UNSET
,
3613 .name
= name_svideo
,
3629 [SAA7134_BOARD_ENCORE_ENLTV_FM3
] = {
3630 .name
= "Encore ENLTV-FM 3",
3631 .audio_clock
= 0x02187de7,
3632 .tuner_type
= TUNER_TENA_TNF_5337
,
3633 .radio_type
= TUNER_TEA5767
,
3646 .name
= name_svideo
,
3661 [SAA7134_BOARD_CINERGY_HT_PCI
] = {
3662 .name
= "Terratec Cinergy HT PCI",
3663 .audio_clock
= 0x00187de7,
3664 .tuner_type
= TUNER_PHILIPS_TDA8290
,
3665 .radio_type
= UNSET
,
3666 .tuner_addr
= ADDR_UNSET
,
3667 .radio_addr
= ADDR_UNSET
,
3668 .mpeg
= SAA7134_MPEG_DVB
,
3679 .name
= name_svideo
,
3684 [SAA7134_BOARD_PHILIPS_TIGER_S
] = {
3685 .name
= "Philips Tiger - S Reference design",
3686 .audio_clock
= 0x00187de7,
3687 .tuner_type
= TUNER_PHILIPS_TDA8290
,
3688 .radio_type
= UNSET
,
3689 .tuner_addr
= ADDR_UNSET
,
3690 .radio_addr
= ADDR_UNSET
,
3691 .tda829x_conf
= { .lna_cfg
= TDA8290_LNA_GP0_HIGH_OFF
},
3692 .mpeg
= SAA7134_MPEG_DVB
,
3693 .gpiomask
= 0x0200000,
3704 .name
= name_svideo
,
3714 [SAA7134_BOARD_AVERMEDIA_M102
] = {
3715 .name
= "Avermedia M102",
3716 .audio_clock
= 0x00187de7,
3717 .tuner_type
= TUNER_PHILIPS_TDA8290
,
3718 .radio_type
= UNSET
,
3719 .tuner_addr
= ADDR_UNSET
,
3720 .radio_addr
= ADDR_UNSET
,
3732 .name
= name_svideo
,
3737 [SAA7134_BOARD_ASUS_P7131_4871
] = {
3738 .name
= "ASUS P7131 4871",
3739 .audio_clock
= 0x00187de7,
3740 .tuner_type
= TUNER_PHILIPS_TDA8290
,
3741 .radio_type
= UNSET
,
3742 .tuner_addr
= ADDR_UNSET
,
3743 .radio_addr
= ADDR_UNSET
,
3744 .tda829x_conf
= { .lna_cfg
= TDA8290_LNA_GP0_HIGH_OFF
},
3745 .mpeg
= SAA7134_MPEG_DVB
,
3746 .gpiomask
= 0x0200000,
3755 [SAA7134_BOARD_ASUSTeK_P7131_HYBRID_LNA
] = {
3756 .name
= "ASUSTeK P7131 Hybrid",
3757 .audio_clock
= 0x00187de7,
3758 .tuner_type
= TUNER_PHILIPS_TDA8290
,
3759 .radio_type
= UNSET
,
3760 .tuner_addr
= ADDR_UNSET
,
3761 .radio_addr
= ADDR_UNSET
,
3762 .tda829x_conf
= { .lna_cfg
= TDA8290_LNA_GP0_HIGH_OFF
},
3763 .gpiomask
= 1 << 21,
3764 .mpeg
= SAA7134_MPEG_DVB
,
3782 .name
= name_svideo
,
3793 [SAA7134_BOARD_ASUSTeK_P7131_ANALOG
] = {
3794 .name
= "ASUSTeK P7131 Analog",
3795 .audio_clock
= 0x00187de7,
3796 .tuner_type
= TUNER_PHILIPS_TDA8290
,
3797 .radio_type
= UNSET
,
3798 .tuner_addr
= ADDR_UNSET
,
3799 .radio_addr
= ADDR_UNSET
,
3800 .gpiomask
= 1 << 21,
3816 .name
= name_svideo
,
3826 [SAA7134_BOARD_SABRENT_TV_PCB05
] = {
3827 .name
= "Sabrent PCMCIA TV-PCB05",
3828 .audio_clock
= 0x00187de7,
3829 .tuner_type
= TUNER_PHILIPS_TDA8290
,
3830 .radio_type
= UNSET
,
3831 .tuner_addr
= ADDR_UNSET
,
3832 .radio_addr
= ADDR_UNSET
,
3847 .name
= name_svideo
,
3856 [SAA7134_BOARD_10MOONSTVMASTER3
] = {
3857 /* Tony Wan <aloha_cn@hotmail.com> */
3858 .name
= "10MOONS TM300 TV Card",
3859 .audio_clock
= 0x00200000,
3860 .tuner_type
= TUNER_LG_PAL_NEW_TAPC
,
3861 .radio_type
= UNSET
,
3862 .tuner_addr
= ADDR_UNSET
,
3863 .radio_addr
= ADDR_UNSET
,
3877 .name
= name_svideo
,
3888 [SAA7134_BOARD_AVERMEDIA_SUPER_007
] = {
3889 .name
= "Avermedia Super 007",
3890 .audio_clock
= 0x00187de7,
3891 .tuner_type
= TUNER_PHILIPS_TDA8290
,
3892 .radio_type
= UNSET
,
3893 .tuner_addr
= ADDR_UNSET
,
3894 .radio_addr
= ADDR_UNSET
,
3895 .tda829x_conf
= { .lna_cfg
= TDA8290_LNA_OFF
},
3896 .mpeg
= SAA7134_MPEG_DVB
,
3898 .name
= name_tv
, /* FIXME: analog tv untested */
3904 [SAA7134_BOARD_AVERMEDIA_M135A
] = {
3905 .name
= "Avermedia PCI pure analog (M135A)",
3906 .audio_clock
= 0x00187de7,
3907 .tuner_type
= TUNER_PHILIPS_TDA8290
,
3908 .radio_type
= UNSET
,
3909 .tuner_addr
= ADDR_UNSET
,
3910 .radio_addr
= ADDR_UNSET
,
3911 .tda829x_conf
= { .lna_cfg
= TDA8290_LNA_GP0_HIGH_OFF
},
3912 .gpiomask
= 0x020200000,
3923 .name
= name_svideo
,
3938 [SAA7134_BOARD_AVERMEDIA_M733A
] = {
3939 .name
= "Avermedia PCI M733A",
3940 .audio_clock
= 0x00187de7,
3941 .tuner_type
= TUNER_PHILIPS_TDA8290
,
3942 .radio_type
= UNSET
,
3943 .tuner_addr
= ADDR_UNSET
,
3944 .radio_addr
= ADDR_UNSET
,
3945 .tda829x_conf
= { .lna_cfg
= TDA8290_LNA_OFF
},
3946 .gpiomask
= 0x020200000,
3957 .name
= name_svideo
,
3972 [SAA7134_BOARD_BEHOLD_401
] = {
3973 /* Beholder Intl. Ltd. 2008 */
3974 /*Dmitry Belimov <d.belimov@gmail.com> */
3975 .name
= "Beholder BeholdTV 401",
3976 .audio_clock
= 0x00187de7,
3977 .tuner_type
= TUNER_PHILIPS_FQ1216ME
,
3978 .radio_type
= UNSET
,
3979 .tuner_addr
= ADDR_UNSET
,
3980 .radio_addr
= ADDR_UNSET
,
3981 .gpiomask
= 0x00008000,
3983 .name
= name_svideo
,
4001 [SAA7134_BOARD_BEHOLD_403
] = {
4002 /* Beholder Intl. Ltd. 2008 */
4003 /*Dmitry Belimov <d.belimov@gmail.com> */
4004 .name
= "Beholder BeholdTV 403",
4005 .audio_clock
= 0x00187de7,
4006 .tuner_type
= TUNER_PHILIPS_FQ1216ME
,
4007 .radio_type
= UNSET
,
4008 .tuner_addr
= ADDR_UNSET
,
4009 .radio_addr
= ADDR_UNSET
,
4010 .gpiomask
= 0x00008000,
4012 .name
= name_svideo
,
4026 [SAA7134_BOARD_BEHOLD_403FM
] = {
4027 /* Beholder Intl. Ltd. 2008 */
4028 /*Dmitry Belimov <d.belimov@gmail.com> */
4029 .name
= "Beholder BeholdTV 403 FM",
4030 .audio_clock
= 0x00187de7,
4031 .tuner_type
= TUNER_PHILIPS_FQ1216ME
,
4032 .radio_type
= UNSET
,
4033 .tuner_addr
= ADDR_UNSET
,
4034 .radio_addr
= ADDR_UNSET
,
4035 .gpiomask
= 0x00008000,
4037 .name
= name_svideo
,
4055 [SAA7134_BOARD_BEHOLD_405
] = {
4056 /* Beholder Intl. Ltd. 2008 */
4057 /*Dmitry Belimov <d.belimov@gmail.com> */
4058 .name
= "Beholder BeholdTV 405",
4059 .audio_clock
= 0x00187de7,
4060 .tuner_type
= TUNER_PHILIPS_FM1216ME_MK3
,
4061 .radio_type
= UNSET
,
4062 .tuner_addr
= ADDR_UNSET
,
4063 .radio_addr
= ADDR_UNSET
,
4064 .tda9887_conf
= TDA9887_PRESENT
,
4065 .gpiomask
= 0x00008000,
4067 .name
= name_svideo
,
4081 [SAA7134_BOARD_BEHOLD_405FM
] = {
4082 /* Sergey <skiv@orel.ru> */
4083 /* Beholder Intl. Ltd. 2008 */
4084 /*Dmitry Belimov <d.belimov@gmail.com> */
4085 .name
= "Beholder BeholdTV 405 FM",
4086 .audio_clock
= 0x00187de7,
4087 .tuner_type
= TUNER_PHILIPS_FM1216ME_MK3
,
4088 .radio_type
= UNSET
,
4089 .tuner_addr
= ADDR_UNSET
,
4090 .radio_addr
= ADDR_UNSET
,
4091 .tda9887_conf
= TDA9887_PRESENT
,
4092 .gpiomask
= 0x00008000,
4094 .name
= name_svideo
,
4112 [SAA7134_BOARD_BEHOLD_407
] = {
4113 /* Beholder Intl. Ltd. 2008 */
4114 /*Dmitry Belimov <d.belimov@gmail.com> */
4115 .name
= "Beholder BeholdTV 407",
4116 .audio_clock
= 0x00187de7,
4117 .tuner_type
= TUNER_PHILIPS_FM1216ME_MK3
,
4118 .radio_type
= UNSET
,
4119 .tuner_addr
= ADDR_UNSET
,
4120 .radio_addr
= ADDR_UNSET
,
4121 .tda9887_conf
= TDA9887_PRESENT
,
4122 .gpiomask
= 0x00008000,
4124 .name
= name_svideo
,
4141 [SAA7134_BOARD_BEHOLD_407FM
] = {
4142 /* Beholder Intl. Ltd. 2008 */
4143 /*Dmitry Belimov <d.belimov@gmail.com> */
4144 .name
= "Beholder BeholdTV 407 FM",
4145 .audio_clock
= 0x00187de7,
4146 .tuner_type
= TUNER_PHILIPS_FM1216ME_MK3
,
4147 .radio_type
= UNSET
,
4148 .tuner_addr
= ADDR_UNSET
,
4149 .radio_addr
= ADDR_UNSET
,
4150 .tda9887_conf
= TDA9887_PRESENT
,
4151 .gpiomask
= 0x00008000,
4153 .name
= name_svideo
,
4175 [SAA7134_BOARD_BEHOLD_409
] = {
4176 /* Beholder Intl. Ltd. 2008 */
4177 /*Dmitry Belimov <d.belimov@gmail.com> */
4178 .name
= "Beholder BeholdTV 409",
4179 .audio_clock
= 0x00187de7,
4180 .tuner_type
= TUNER_PHILIPS_FM1216ME_MK3
,
4181 .radio_type
= UNSET
,
4182 .tuner_addr
= ADDR_UNSET
,
4183 .radio_addr
= ADDR_UNSET
,
4184 .tda9887_conf
= TDA9887_PRESENT
,
4185 .gpiomask
= 0x00008000,
4196 .name
= name_svideo
,
4201 [SAA7134_BOARD_BEHOLD_505FM
] = {
4202 /* Beholder Intl. Ltd. 2008 */
4203 /*Dmitry Belimov <d.belimov@gmail.com> */
4204 .name
= "Beholder BeholdTV 505 FM",
4205 .audio_clock
= 0x00200000,
4206 .tuner_type
= TUNER_PHILIPS_FM1216ME_MK3
,
4207 .radio_type
= UNSET
,
4208 .tuner_addr
= ADDR_UNSET
,
4209 .radio_addr
= ADDR_UNSET
,
4210 .tda9887_conf
= TDA9887_PRESENT
,
4211 .gpiomask
= 0x00008000,
4222 .name
= name_svideo
,
4235 [SAA7134_BOARD_BEHOLD_505RDS_MK5
] = {
4236 /* Beholder Intl. Ltd. 2008 */
4237 /*Dmitry Belimov <d.belimov@gmail.com> */
4238 .name
= "Beholder BeholdTV 505 RDS",
4239 .audio_clock
= 0x00200000,
4240 .tuner_type
= TUNER_PHILIPS_FM1216MK5
,
4241 .radio_type
= UNSET
,
4242 .tuner_addr
= ADDR_UNSET
,
4243 .radio_addr
= ADDR_UNSET
,
4245 .tda9887_conf
= TDA9887_PRESENT
,
4246 .gpiomask
= 0x00008000,
4257 .name
= name_svideo
,
4270 [SAA7134_BOARD_BEHOLD_507_9FM
] = {
4271 /* Beholder Intl. Ltd. 2008 */
4272 /*Dmitry Belimov <d.belimov@gmail.com> */
4273 .name
= "Beholder BeholdTV 507 FM / BeholdTV 509 FM",
4274 .audio_clock
= 0x00187de7,
4275 .tuner_type
= TUNER_PHILIPS_FM1216ME_MK3
,
4276 .radio_type
= UNSET
,
4277 .tuner_addr
= ADDR_UNSET
,
4278 .radio_addr
= ADDR_UNSET
,
4279 .tda9887_conf
= TDA9887_PRESENT
,
4280 .gpiomask
= 0x00008000,
4291 .name
= name_svideo
,
4300 [SAA7134_BOARD_BEHOLD_507RDS_MK5
] = {
4301 /* Beholder Intl. Ltd. 2008 */
4302 /*Dmitry Belimov <d.belimov@gmail.com> */
4303 .name
= "Beholder BeholdTV 507 RDS",
4304 .audio_clock
= 0x00187de7,
4305 .tuner_type
= TUNER_PHILIPS_FM1216MK5
,
4306 .radio_type
= UNSET
,
4307 .tuner_addr
= ADDR_UNSET
,
4308 .radio_addr
= ADDR_UNSET
,
4310 .tda9887_conf
= TDA9887_PRESENT
,
4311 .gpiomask
= 0x00008000,
4322 .name
= name_svideo
,
4331 [SAA7134_BOARD_BEHOLD_507RDS_MK3
] = {
4332 /* Beholder Intl. Ltd. 2008 */
4333 /*Dmitry Belimov <d.belimov@gmail.com> */
4334 .name
= "Beholder BeholdTV 507 RDS",
4335 .audio_clock
= 0x00187de7,
4336 .tuner_type
= TUNER_PHILIPS_FM1216ME_MK3
,
4337 .radio_type
= UNSET
,
4338 .tuner_addr
= ADDR_UNSET
,
4339 .radio_addr
= ADDR_UNSET
,
4341 .tda9887_conf
= TDA9887_PRESENT
,
4342 .gpiomask
= 0x00008000,
4353 .name
= name_svideo
,
4362 [SAA7134_BOARD_BEHOLD_COLUMBUS_TVFM
] = {
4363 /* Beholder Intl. Ltd. 2008 */
4364 /* Dmitry Belimov <d.belimov@gmail.com> */
4365 .name
= "Beholder BeholdTV Columbus TV/FM",
4366 .audio_clock
= 0x00187de7,
4367 .tuner_type
= TUNER_ALPS_TSBE5_PAL
,
4368 .radio_type
= TUNER_TEA5767
,
4369 .tuner_addr
= 0xc2 >> 1,
4370 .radio_addr
= 0xc0 >> 1,
4371 .tda9887_conf
= TDA9887_PRESENT
,
4372 .gpiomask
= 0x000A8004,
4385 .name
= name_svideo
,
4396 [SAA7134_BOARD_BEHOLD_607FM_MK3
] = {
4397 /* Andrey Melnikoff <temnota@kmv.ru> */
4398 .name
= "Beholder BeholdTV 607 FM",
4399 .audio_clock
= 0x00187de7,
4400 .tuner_type
= TUNER_PHILIPS_FM1216ME_MK3
,
4401 .radio_type
= UNSET
,
4402 .tuner_addr
= ADDR_UNSET
,
4403 .radio_addr
= ADDR_UNSET
,
4404 .tda9887_conf
= TDA9887_PRESENT
,
4415 .name
= name_svideo
,
4424 [SAA7134_BOARD_BEHOLD_609FM_MK3
] = {
4425 /* Andrey Melnikoff <temnota@kmv.ru> */
4426 .name
= "Beholder BeholdTV 609 FM",
4427 .audio_clock
= 0x00187de7,
4428 .tuner_type
= TUNER_PHILIPS_FM1216ME_MK3
,
4429 .radio_type
= UNSET
,
4430 .tuner_addr
= ADDR_UNSET
,
4431 .radio_addr
= ADDR_UNSET
,
4432 .tda9887_conf
= TDA9887_PRESENT
,
4443 .name
= name_svideo
,
4452 [SAA7134_BOARD_BEHOLD_607FM_MK5
] = {
4453 /* Andrey Melnikoff <temnota@kmv.ru> */
4454 .name
= "Beholder BeholdTV 607 FM",
4455 .audio_clock
= 0x00187de7,
4456 .tuner_type
= TUNER_PHILIPS_FM1216MK5
,
4457 .radio_type
= UNSET
,
4458 .tuner_addr
= ADDR_UNSET
,
4459 .radio_addr
= ADDR_UNSET
,
4460 .tda9887_conf
= TDA9887_PRESENT
,
4471 .name
= name_svideo
,
4480 [SAA7134_BOARD_BEHOLD_609FM_MK5
] = {
4481 /* Andrey Melnikoff <temnota@kmv.ru> */
4482 .name
= "Beholder BeholdTV 609 FM",
4483 .audio_clock
= 0x00187de7,
4484 .tuner_type
= TUNER_PHILIPS_FM1216MK5
,
4485 .radio_type
= UNSET
,
4486 .tuner_addr
= ADDR_UNSET
,
4487 .radio_addr
= ADDR_UNSET
,
4488 .tda9887_conf
= TDA9887_PRESENT
,
4499 .name
= name_svideo
,
4508 [SAA7134_BOARD_BEHOLD_607RDS_MK3
] = {
4509 /* Andrey Melnikoff <temnota@kmv.ru> */
4510 .name
= "Beholder BeholdTV 607 RDS",
4511 .audio_clock
= 0x00187de7,
4512 .tuner_type
= TUNER_PHILIPS_FM1216ME_MK3
,
4513 .radio_type
= UNSET
,
4514 .tuner_addr
= ADDR_UNSET
,
4515 .radio_addr
= ADDR_UNSET
,
4517 .tda9887_conf
= TDA9887_PRESENT
,
4528 .name
= name_svideo
,
4537 [SAA7134_BOARD_BEHOLD_609RDS_MK3
] = {
4538 /* Andrey Melnikoff <temnota@kmv.ru> */
4539 .name
= "Beholder BeholdTV 609 RDS",
4540 .audio_clock
= 0x00187de7,
4541 .tuner_type
= TUNER_PHILIPS_FM1216ME_MK3
,
4542 .radio_type
= UNSET
,
4543 .tuner_addr
= ADDR_UNSET
,
4544 .radio_addr
= ADDR_UNSET
,
4546 .tda9887_conf
= TDA9887_PRESENT
,
4557 .name
= name_svideo
,
4566 [SAA7134_BOARD_BEHOLD_607RDS_MK5
] = {
4567 /* Andrey Melnikoff <temnota@kmv.ru> */
4568 .name
= "Beholder BeholdTV 607 RDS",
4569 .audio_clock
= 0x00187de7,
4570 .tuner_type
= TUNER_PHILIPS_FM1216MK5
,
4571 .radio_type
= UNSET
,
4572 .tuner_addr
= ADDR_UNSET
,
4573 .radio_addr
= ADDR_UNSET
,
4575 .tda9887_conf
= TDA9887_PRESENT
,
4586 .name
= name_svideo
,
4595 [SAA7134_BOARD_BEHOLD_609RDS_MK5
] = {
4596 /* Andrey Melnikoff <temnota@kmv.ru> */
4597 .name
= "Beholder BeholdTV 609 RDS",
4598 .audio_clock
= 0x00187de7,
4599 .tuner_type
= TUNER_PHILIPS_FM1216MK5
,
4600 .radio_type
= UNSET
,
4601 .tuner_addr
= ADDR_UNSET
,
4602 .radio_addr
= ADDR_UNSET
,
4604 .tda9887_conf
= TDA9887_PRESENT
,
4615 .name
= name_svideo
,
4624 [SAA7134_BOARD_BEHOLD_M6
] = {
4625 /* Igor Kuznetsov <igk@igk.ru> */
4626 /* Andrey Melnikoff <temnota@kmv.ru> */
4627 /* Beholder Intl. Ltd. Dmitry Belimov <d.belimov@gmail.com> */
4628 /* Alexey Osipov <lion-simba@pridelands.ru> */
4629 .name
= "Beholder BeholdTV M6",
4630 .audio_clock
= 0x00187de7,
4631 .tuner_type
= TUNER_PHILIPS_FM1216ME_MK3
,
4632 .radio_type
= UNSET
,
4633 .tuner_addr
= ADDR_UNSET
,
4634 .radio_addr
= ADDR_UNSET
,
4635 .empress_addr
= 0x20,
4636 .tda9887_conf
= TDA9887_PRESENT
,
4647 .name
= name_svideo
,
4655 .mpeg
= SAA7134_MPEG_EMPRESS
,
4656 .video_out
= CCIR656
,
4657 .vid_port_opts
= (SET_T_CODE_POLARITY_NON_INVERTED
|
4658 SET_CLOCK_NOT_DELAYED
|
4659 SET_CLOCK_INVERTED
|
4662 [SAA7134_BOARD_BEHOLD_M63
] = {
4663 /* Igor Kuznetsov <igk@igk.ru> */
4664 /* Andrey Melnikoff <temnota@kmv.ru> */
4665 /* Beholder Intl. Ltd. Dmitry Belimov <d.belimov@gmail.com> */
4666 .name
= "Beholder BeholdTV M63",
4667 .audio_clock
= 0x00187de7,
4668 .tuner_type
= TUNER_PHILIPS_FM1216ME_MK3
,
4669 .radio_type
= UNSET
,
4670 .tuner_addr
= ADDR_UNSET
,
4671 .radio_addr
= ADDR_UNSET
,
4672 .empress_addr
= 0x20,
4673 .tda9887_conf
= TDA9887_PRESENT
,
4684 .name
= name_svideo
,
4692 .mpeg
= SAA7134_MPEG_EMPRESS
,
4693 .video_out
= CCIR656
,
4694 .vid_port_opts
= (SET_T_CODE_POLARITY_NON_INVERTED
|
4695 SET_CLOCK_NOT_DELAYED
|
4696 SET_CLOCK_INVERTED
|
4699 [SAA7134_BOARD_BEHOLD_M6_EXTRA
] = {
4700 /* Igor Kuznetsov <igk@igk.ru> */
4701 /* Andrey Melnikoff <temnota@kmv.ru> */
4702 /* Beholder Intl. Ltd. Dmitry Belimov <d.belimov@gmail.com> */
4703 /* Alexey Osipov <lion-simba@pridelands.ru> */
4704 .name
= "Beholder BeholdTV M6 Extra",
4705 .audio_clock
= 0x00187de7,
4706 .tuner_type
= TUNER_PHILIPS_FM1216MK5
,
4707 .radio_type
= UNSET
,
4708 .tuner_addr
= ADDR_UNSET
,
4709 .radio_addr
= ADDR_UNSET
,
4711 .empress_addr
= 0x20,
4712 .tda9887_conf
= TDA9887_PRESENT
,
4723 .name
= name_svideo
,
4731 .mpeg
= SAA7134_MPEG_EMPRESS
,
4732 .video_out
= CCIR656
,
4733 .vid_port_opts
= (SET_T_CODE_POLARITY_NON_INVERTED
|
4734 SET_CLOCK_NOT_DELAYED
|
4735 SET_CLOCK_INVERTED
|
4738 [SAA7134_BOARD_TWINHAN_DTV_DVB_3056
] = {
4739 .name
= "Twinhan Hybrid DTV-DVB 3056 PCI",
4740 .audio_clock
= 0x00187de7,
4741 .tuner_type
= TUNER_PHILIPS_TDA8290
,
4742 .radio_type
= UNSET
,
4743 .tuner_addr
= ADDR_UNSET
,
4744 .radio_addr
= ADDR_UNSET
,
4745 .tda829x_conf
= { .lna_cfg
= TDA8290_LNA_GP0_HIGH_OFF
},
4746 .mpeg
= SAA7134_MPEG_DVB
,
4747 .gpiomask
= 0x0200000,
4758 .name
= name_svideo
,
4759 .vmux
= 8, /* untested */
4768 [SAA7134_BOARD_GENIUS_TVGO_A11MCE
] = {
4769 /* Adrian Pardini <pardo.bsso@gmail.com> */
4770 .name
= "Genius TVGO AM11MCE",
4771 .audio_clock
= 0x00200000,
4772 .tuner_type
= TUNER_TNF_5335MF
,
4773 .radio_type
= UNSET
,
4774 .tuner_addr
= ADDR_UNSET
,
4775 .radio_addr
= ADDR_UNSET
,
4778 .name
= name_tv_mono
,
4790 .name
= name_svideo
,
4806 [SAA7134_BOARD_PHILIPS_SNAKE
] = {
4807 .name
= "NXP Snake DVB-S reference design",
4808 .audio_clock
= 0x00200000,
4809 .tuner_type
= TUNER_ABSENT
,
4810 .radio_type
= UNSET
,
4811 .tuner_addr
= ADDR_UNSET
,
4812 .radio_addr
= ADDR_UNSET
,
4813 .mpeg
= SAA7134_MPEG_DVB
,
4819 .name
= name_svideo
,
4824 [SAA7134_BOARD_CREATIX_CTX953
] = {
4825 .name
= "Medion/Creatix CTX953 Hybrid",
4826 .audio_clock
= 0x00187de7,
4827 .tuner_type
= TUNER_PHILIPS_TDA8290
,
4828 .radio_type
= UNSET
,
4829 .tuner_addr
= ADDR_UNSET
,
4830 .radio_addr
= ADDR_UNSET
,
4831 .tda829x_conf
= { .lna_cfg
= TDA8290_LNA_OFF
},
4832 .mpeg
= SAA7134_MPEG_DVB
,
4843 .name
= name_svideo
,
4848 [SAA7134_BOARD_MSI_TVANYWHERE_AD11
] = {
4849 .name
= "MSI TV@nywhere A/D v1.1",
4850 .audio_clock
= 0x00187de7,
4851 .tuner_type
= TUNER_PHILIPS_TDA8290
,
4852 .radio_type
= UNSET
,
4853 .tuner_addr
= ADDR_UNSET
,
4854 .radio_addr
= ADDR_UNSET
,
4855 .tda829x_conf
= { .lna_cfg
= TDA8290_LNA_GP0_HIGH_OFF
},
4856 .mpeg
= SAA7134_MPEG_DVB
,
4857 .gpiomask
= 0x0200000,
4868 .name
= name_svideo
,
4878 [SAA7134_BOARD_AVERMEDIA_CARDBUS_506
] = {
4879 .name
= "AVerMedia Cardbus TV/Radio (E506R)",
4880 .audio_clock
= 0x187de7,
4881 .tuner_type
= TUNER_XC2028
,
4882 .radio_type
= UNSET
,
4883 .tuner_addr
= ADDR_UNSET
,
4884 .radio_addr
= ADDR_UNSET
,
4885 .mpeg
= SAA7134_MPEG_DVB
,
4896 .name
= name_svideo
,
4905 [SAA7134_BOARD_AVERMEDIA_A16D
] = {
4906 .name
= "AVerMedia Hybrid TV/Radio (A16D)",
4907 .audio_clock
= 0x187de7,
4908 .tuner_type
= TUNER_XC2028
,
4909 .radio_type
= UNSET
,
4910 .tuner_addr
= ADDR_UNSET
,
4911 .radio_addr
= ADDR_UNSET
,
4912 .mpeg
= SAA7134_MPEG_DVB
,
4919 .name
= name_svideo
,
4932 [SAA7134_BOARD_AVERMEDIA_M115
] = {
4933 .name
= "Avermedia M115",
4934 .audio_clock
= 0x187de7,
4935 .tuner_type
= TUNER_XC2028
,
4936 .radio_type
= UNSET
,
4937 .tuner_addr
= ADDR_UNSET
,
4938 .radio_addr
= ADDR_UNSET
,
4949 .name
= name_svideo
,
4954 [SAA7134_BOARD_VIDEOMATE_T750
] = {
4955 /* John Newbigin <jn@it.swin.edu.au> */
4956 .name
= "Compro VideoMate T750",
4957 .audio_clock
= 0x00187de7,
4958 .tuner_type
= TUNER_XC2028
,
4959 .radio_type
= UNSET
,
4961 .radio_addr
= ADDR_UNSET
,
4962 .mpeg
= SAA7134_MPEG_DVB
,
4973 .name
= name_svideo
,
4982 [SAA7134_BOARD_AVERMEDIA_A700_PRO
] = {
4983 /* Matthias Schwarzott <zzam@gentoo.org> */
4984 .name
= "Avermedia DVB-S Pro A700",
4985 .audio_clock
= 0x00187de7,
4986 .tuner_type
= TUNER_ABSENT
,
4987 .radio_type
= UNSET
,
4988 .tuner_addr
= ADDR_UNSET
,
4989 .radio_addr
= ADDR_UNSET
,
4990 .mpeg
= SAA7134_MPEG_DVB
,
4996 .name
= name_svideo
,
5001 [SAA7134_BOARD_AVERMEDIA_A700_HYBRID
] = {
5002 /* Matthias Schwarzott <zzam@gentoo.org> */
5003 .name
= "Avermedia DVB-S Hybrid+FM A700",
5004 .audio_clock
= 0x00187de7,
5005 .tuner_type
= TUNER_XC2028
,
5006 .radio_type
= UNSET
,
5007 .tuner_addr
= ADDR_UNSET
,
5008 .radio_addr
= ADDR_UNSET
,
5009 .mpeg
= SAA7134_MPEG_DVB
,
5020 .name
= name_svideo
,
5029 [SAA7134_BOARD_BEHOLD_H6
] = {
5030 /* Igor Kuznetsov <igk@igk.ru> */
5031 .name
= "Beholder BeholdTV H6",
5032 .audio_clock
= 0x00187de7,
5033 .tuner_type
= TUNER_PHILIPS_FMD1216MEX_MK3
,
5034 .radio_type
= UNSET
,
5035 .tuner_addr
= ADDR_UNSET
,
5036 .radio_addr
= ADDR_UNSET
,
5037 .tda9887_conf
= TDA9887_PRESENT
,
5038 .mpeg
= SAA7134_MPEG_DVB
,
5049 .name
= name_svideo
,
5058 [SAA7134_BOARD_ASUSTeK_TIGER_3IN1
] = {
5059 .name
= "Asus Tiger 3in1",
5060 .audio_clock
= 0x00187de7,
5061 .tuner_type
= TUNER_PHILIPS_TDA8290
,
5062 .radio_type
= UNSET
,
5063 .tuner_addr
= ADDR_UNSET
,
5064 .radio_addr
= ADDR_UNSET
,
5065 .tda829x_conf
= { .lna_cfg
= TDA8290_LNA_GP0_HIGH_OFF
},
5066 .gpiomask
= 1 << 21,
5067 .mpeg
= SAA7134_MPEG_DVB
,
5078 .name
= name_svideo
,
5088 [SAA7134_BOARD_ASUSTeK_PS3_100
] = {
5089 .name
= "Asus My Cinema PS3-100",
5090 .audio_clock
= 0x00187de7,
5091 .tuner_type
= TUNER_PHILIPS_TDA8290
,
5092 .radio_type
= UNSET
,
5093 .tuner_addr
= ADDR_UNSET
,
5094 .radio_addr
= ADDR_UNSET
,
5095 .tda829x_conf
= { .lna_cfg
= TDA8290_LNA_GP0_HIGH_OFF
},
5096 .gpiomask
= 1 << 21,
5097 .mpeg
= SAA7134_MPEG_DVB
,
5108 .name
= name_svideo
,
5118 [SAA7134_BOARD_REAL_ANGEL_220
] = {
5119 .name
= "Zogis Real Angel 220",
5120 .audio_clock
= 0x00187de7,
5121 .tuner_type
= TUNER_TNF_5335MF
,
5122 .radio_type
= UNSET
,
5123 .tuner_addr
= ADDR_UNSET
,
5124 .radio_addr
= ADDR_UNSET
,
5125 .gpiomask
= 0x801a8087,
5138 .name
= name_svideo
,
5153 [SAA7134_BOARD_ADS_INSTANT_HDTV_PCI
] = {
5154 .name
= "ADS Tech Instant HDTV",
5155 .audio_clock
= 0x00187de7,
5156 .tuner_type
= TUNER_PHILIPS_TUV1236D
,
5157 .radio_type
= UNSET
,
5158 .tuner_addr
= ADDR_UNSET
,
5159 .radio_addr
= ADDR_UNSET
,
5160 .tda9887_conf
= TDA9887_PRESENT
,
5161 .mpeg
= SAA7134_MPEG_DVB
,
5172 .name
= name_svideo
,
5177 [SAA7134_BOARD_ASUSTeK_TIGER
] = {
5178 .name
= "Asus Tiger Rev:1.00",
5179 .audio_clock
= 0x00187de7,
5180 .tuner_type
= TUNER_PHILIPS_TDA8290
,
5181 .radio_type
= UNSET
,
5182 .tuner_addr
= ADDR_UNSET
,
5183 .radio_addr
= ADDR_UNSET
,
5184 .tda829x_conf
= { .lna_cfg
= TDA8290_LNA_OFF
},
5185 .mpeg
= SAA7134_MPEG_DVB
,
5186 .gpiomask
= 0x0200000,
5201 .name
= name_svideo
,
5211 [SAA7134_BOARD_KWORLD_PLUS_TV_ANALOG
] = {
5212 .name
= "Kworld Plus TV Analog Lite PCI",
5213 .audio_clock
= 0x00187de7,
5214 .tuner_type
= TUNER_YMEC_TVF_5533MF
,
5215 .radio_type
= TUNER_TEA5767
,
5216 .tuner_addr
= ADDR_UNSET
,
5218 .gpiomask
= 0x80000700,
5231 .name
= name_svideo
,
5248 [SAA7134_BOARD_KWORLD_PCI_SBTVD_FULLSEG
] = {
5249 .name
= "Kworld PCI SBTVD/ISDB-T Full-Seg Hybrid",
5250 .audio_clock
= 0x00187de7,
5251 .tuner_type
= TUNER_PHILIPS_TDA8290
,
5252 .tuner_addr
= ADDR_UNSET
,
5253 .radio_type
= UNSET
,
5254 .radio_addr
= ADDR_UNSET
,
5255 .gpiomask
= 0x8e054000,
5256 .mpeg
= SAA7134_MPEG_DVB
,
5257 .ts_type
= SAA7134_MPEG_TS_PARALLEL
,
5270 .name
= name_svideo
,
5290 [SAA7134_BOARD_AVERMEDIA_GO_007_FM_PLUS
] = {
5291 .name
= "Avermedia AVerTV GO 007 FM Plus",
5292 .audio_clock
= 0x00187de7,
5293 .tuner_type
= TUNER_PHILIPS_TDA8290
,
5294 .radio_type
= UNSET
,
5295 .tuner_addr
= ADDR_UNSET
,
5296 .radio_addr
= ADDR_UNSET
,
5297 .gpiomask
= 0x00300003,
5298 /* .gpiomask = 0x8c240003, */
5306 .name
= name_svideo
,
5322 [SAA7134_BOARD_AVERMEDIA_STUDIO_507UA
] = {
5323 /* Andy Shevchenko <andy@smile.org.ua> */
5324 .name
= "Avermedia AVerTV Studio 507UA",
5325 .audio_clock
= 0x00187de7,
5326 .tuner_type
= TUNER_PHILIPS_FM1216ME_MK3
, /* Should be MK5 */
5327 .radio_type
= UNSET
,
5328 .tuner_addr
= ADDR_UNSET
,
5329 .radio_addr
= ADDR_UNSET
,
5330 .tda9887_conf
= TDA9887_PRESENT
,
5344 .name
= name_svideo
,
5360 [SAA7134_BOARD_VIDEOMATE_S350
] = {
5361 /* Jan D. Louw <jd.louw@mweb.co.za */
5362 .name
= "Compro VideoMate S350/S300",
5363 .audio_clock
= 0x00187de7,
5364 .tuner_type
= TUNER_ABSENT
,
5365 .radio_type
= UNSET
,
5366 .tuner_addr
= ADDR_UNSET
,
5367 .radio_addr
= ADDR_UNSET
,
5368 .mpeg
= SAA7134_MPEG_DVB
,
5374 .name
= name_svideo
,
5375 .vmux
= 8, /* Not tested */
5379 [SAA7134_BOARD_BEHOLD_X7
] = {
5380 /* Beholder Intl. Ltd. Dmitry Belimov <d.belimov@gmail.com> */
5381 .name
= "Beholder BeholdTV X7",
5382 .audio_clock
= 0x00187de7,
5383 .tuner_type
= TUNER_XC5000
,
5384 .radio_type
= UNSET
,
5385 .tuner_addr
= ADDR_UNSET
,
5386 .radio_addr
= ADDR_UNSET
,
5387 .mpeg
= SAA7134_MPEG_DVB
,
5398 .name
= name_svideo
,
5407 [SAA7134_BOARD_ZOLID_HYBRID_PCI
] = {
5408 .name
= "Zolid Hybrid TV Tuner PCI",
5409 .audio_clock
= 0x00187de7,
5410 .tuner_type
= TUNER_PHILIPS_TDA8290
,
5411 .radio_type
= UNSET
,
5412 .tuner_addr
= ADDR_UNSET
,
5413 .radio_addr
= ADDR_UNSET
,
5414 .tda829x_conf
= { .lna_cfg
= TDA8290_LNA_OFF
},
5415 .mpeg
= SAA7134_MPEG_DVB
,
5416 .ts_type
= SAA7134_MPEG_TS_PARALLEL
,
5423 .radio
= { /* untested */
5428 [SAA7134_BOARD_ASUS_EUROPA_HYBRID
] = {
5429 .name
= "Asus Europa Hybrid OEM",
5430 .audio_clock
= 0x00187de7,
5431 .tuner_type
= TUNER_PHILIPS_TD1316
,
5432 .radio_type
= UNSET
,
5434 .radio_addr
= ADDR_UNSET
,
5435 .tda9887_conf
= TDA9887_PRESENT
| TDA9887_PORT1_ACTIVE
,
5436 .mpeg
= SAA7134_MPEG_DVB
,
5447 .name
= name_svideo
,
5452 [SAA7134_BOARD_LEADTEK_WINFAST_DTV1000S
] = {
5453 .name
= "Leadtek Winfast DTV1000S",
5454 .audio_clock
= 0x00187de7,
5455 .tuner_type
= TUNER_PHILIPS_TDA8290
,
5456 .radio_type
= UNSET
,
5457 .tuner_addr
= ADDR_UNSET
,
5458 .radio_addr
= ADDR_UNSET
,
5459 .mpeg
= SAA7134_MPEG_DVB
,
5464 .name
= name_svideo
,
5468 [SAA7134_BOARD_BEHOLD_505RDS_MK3
] = {
5469 /* Beholder Intl. Ltd. 2008 */
5470 /*Dmitry Belimov <d.belimov@gmail.com> */
5471 .name
= "Beholder BeholdTV 505 RDS",
5472 .audio_clock
= 0x00200000,
5473 .tuner_type
= TUNER_PHILIPS_FM1216ME_MK3
,
5474 .radio_type
= UNSET
,
5475 .tuner_addr
= ADDR_UNSET
,
5476 .radio_addr
= ADDR_UNSET
,
5478 .tda9887_conf
= TDA9887_PRESENT
,
5479 .gpiomask
= 0x00008000,
5490 .name
= name_svideo
,
5503 [SAA7134_BOARD_HAWELL_HW_404M7
] = {
5504 /* Hawell HW-404M7 & Hawell HW-808M7 */
5505 /* Bogoslovskiy Viktor <bogovic@bk.ru> */
5506 .name
= "Hawell HW-404M7",
5507 .audio_clock
= 0x00200000,
5508 .tuner_type
= UNSET
,
5509 .radio_type
= UNSET
,
5510 .tuner_addr
= ADDR_UNSET
,
5511 .radio_addr
= ADDR_UNSET
,
5512 .gpiomask
= 0x389c00,
5520 [SAA7134_BOARD_BEHOLD_H7
] = {
5521 /* Beholder Intl. Ltd. Dmitry Belimov <d.belimov@gmail.com> */
5522 .name
= "Beholder BeholdTV H7",
5523 .audio_clock
= 0x00187de7,
5524 .tuner_type
= TUNER_XC5000
,
5525 .radio_type
= UNSET
,
5526 .tuner_addr
= ADDR_UNSET
,
5527 .radio_addr
= ADDR_UNSET
,
5528 .mpeg
= SAA7134_MPEG_DVB
,
5529 .ts_type
= SAA7134_MPEG_TS_PARALLEL
,
5540 .name
= name_svideo
,
5549 [SAA7134_BOARD_BEHOLD_A7
] = {
5550 /* Beholder Intl. Ltd. Dmitry Belimov <d.belimov@gmail.com> */
5551 .name
= "Beholder BeholdTV A7",
5552 .audio_clock
= 0x00187de7,
5553 .tuner_type
= TUNER_XC5000
,
5554 .radio_type
= UNSET
,
5555 .tuner_addr
= ADDR_UNSET
,
5556 .radio_addr
= ADDR_UNSET
,
5567 .name
= name_svideo
,
5576 [SAA7134_BOARD_TECHNOTREND_BUDGET_T3000
] = {
5577 .name
= "TechoTrend TT-budget T-3000",
5578 .tuner_type
= TUNER_PHILIPS_TD1316
,
5579 .audio_clock
= 0x00187de7,
5580 .radio_type
= UNSET
,
5582 .radio_addr
= ADDR_UNSET
,
5583 .tda9887_conf
= TDA9887_PRESENT
| TDA9887_PORT1_ACTIVE
,
5584 .mpeg
= SAA7134_MPEG_DVB
,
5595 .name
= name_svideo
,
5600 [SAA7134_BOARD_VIDEOMATE_M1F
] = {
5601 /* Pavel Osnova <pvosnova@gmail.com> */
5602 .name
= "Compro VideoMate Vista M1F",
5603 .audio_clock
= 0x00187de7,
5604 .tuner_type
= TUNER_LG_PAL_NEW_TAPC
,
5605 .radio_type
= TUNER_TEA5767
,
5606 .tuner_addr
= ADDR_UNSET
,
5618 .name
= name_svideo
,
5631 [SAA7134_BOARD_MAGICPRO_PROHDTV_PRO2
] = {
5632 /* Timothy Lee <timothy.lee@siriushk.com> */
5633 .name
= "MagicPro ProHDTV Pro2 DMB-TH/Hybrid",
5634 .audio_clock
= 0x00187de7,
5635 .tuner_type
= TUNER_PHILIPS_TDA8290
,
5636 .radio_type
= UNSET
,
5637 .tda829x_conf
= { .lna_cfg
= TDA8290_LNA_ON_BRIDGE
},
5638 .tuner_addr
= ADDR_UNSET
,
5639 .radio_addr
= ADDR_UNSET
,
5640 .gpiomask
= 0x02050000,
5641 .mpeg
= SAA7134_MPEG_DVB
,
5642 .ts_type
= SAA7134_MPEG_TS_PARALLEL
,
5655 .name
= name_svideo
,
5672 [SAA7134_BOARD_BEHOLD_501
] = {
5673 /* Beholder Intl. Ltd. 2010 */
5674 /* Dmitry Belimov <d.belimov@gmail.com> */
5675 .name
= "Beholder BeholdTV 501",
5676 .audio_clock
= 0x00200000,
5677 .tuner_type
= TUNER_ABSENT
,
5678 .radio_type
= UNSET
,
5679 .tuner_addr
= ADDR_UNSET
,
5680 .radio_addr
= ADDR_UNSET
,
5681 .gpiomask
= 0x00008000,
5692 .name
= name_svideo
,
5701 [SAA7134_BOARD_BEHOLD_503FM
] = {
5702 /* Beholder Intl. Ltd. 2010 */
5703 /* Dmitry Belimov <d.belimov@gmail.com> */
5704 .name
= "Beholder BeholdTV 503 FM",
5705 .audio_clock
= 0x00200000,
5706 .tuner_type
= TUNER_ABSENT
,
5707 .radio_type
= UNSET
,
5708 .tuner_addr
= ADDR_UNSET
,
5709 .radio_addr
= ADDR_UNSET
,
5710 .gpiomask
= 0x00008000,
5721 .name
= name_svideo
,
5730 [SAA7134_BOARD_SENSORAY811_911
] = {
5731 .name
= "Sensoray 811/911",
5732 .audio_clock
= 0x00200000,
5733 .tuner_type
= TUNER_ABSENT
,
5734 .radio_type
= UNSET
,
5735 .tuner_addr
= ADDR_UNSET
,
5736 .radio_addr
= ADDR_UNSET
,
5746 .name
= name_svideo
,
5751 [SAA7134_BOARD_KWORLD_PC150U
] = {
5752 .name
= "Kworld PC150-U",
5753 .audio_clock
= 0x00187de7,
5754 .tuner_type
= TUNER_PHILIPS_TDA8290
,
5755 .radio_type
= UNSET
,
5756 .tuner_addr
= ADDR_UNSET
,
5757 .radio_addr
= ADDR_UNSET
,
5758 .mpeg
= SAA7134_MPEG_DVB
,
5759 .gpiomask
= 1 << 21,
5760 .ts_type
= SAA7134_MPEG_TS_PARALLEL
,
5771 .name
= name_svideo
,
5781 [SAA7134_BOARD_HAWELL_HW_9004V1
] = {
5782 /* Hawell HW-9004V1 */
5783 /* Vadim Frolov <fralik@gmail.com> */
5784 .name
= "Hawell HW-9004V1",
5785 .audio_clock
= 0x00200000,
5786 .tuner_type
= UNSET
,
5787 .radio_type
= UNSET
,
5788 .tuner_addr
= ADDR_UNSET
,
5789 .radio_addr
= ADDR_UNSET
,
5790 .gpiomask
= 0x618E700,
5798 [SAA7134_BOARD_AVERMEDIA_A706
] = {
5799 .name
= "AverMedia AverTV Satellite Hybrid+FM A706",
5800 .audio_clock
= 0x00187de7,
5801 .tuner_type
= TUNER_PHILIPS_TDA8290
,
5802 .radio_type
= UNSET
,
5803 .tuner_addr
= ADDR_UNSET
,
5804 .radio_addr
= ADDR_UNSET
,
5805 .tda829x_conf
= { .lna_cfg
= TDA8290_LNA_OFF
,
5807 .tda18271_std_map
= &aver_a706_std_map
},
5808 .gpiomask
= 1 << 11,
5809 .mpeg
= SAA7134_MPEG_DVB
,
5820 .name
= name_svideo
,
5833 const unsigned int saa7134_bcount
= ARRAY_SIZE(saa7134_boards
);
5835 /* ------------------------------------------------------------------ */
5836 /* PCI ids + subsystem IDs */
5838 struct pci_device_id saa7134_pci_tbl
[] = {
5840 .vendor
= PCI_VENDOR_ID_PHILIPS
,
5841 .device
= PCI_DEVICE_ID_PHILIPS_SAA7134
,
5842 .subvendor
= PCI_VENDOR_ID_PHILIPS
,
5843 .subdevice
= 0x2001,
5844 .driver_data
= SAA7134_BOARD_PROTEUS_PRO
,
5846 .vendor
= PCI_VENDOR_ID_PHILIPS
,
5847 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
5848 .subvendor
= PCI_VENDOR_ID_PHILIPS
,
5849 .subdevice
= 0x2001,
5850 .driver_data
= SAA7134_BOARD_PROTEUS_PRO
,
5852 .vendor
= PCI_VENDOR_ID_PHILIPS
,
5853 .device
= PCI_DEVICE_ID_PHILIPS_SAA7134
,
5854 .subvendor
= PCI_VENDOR_ID_PHILIPS
,
5855 .subdevice
= 0x6752,
5856 .driver_data
= SAA7134_BOARD_EMPRESS
,
5858 .vendor
= PCI_VENDOR_ID_PHILIPS
,
5859 .device
= PCI_DEVICE_ID_PHILIPS_SAA7134
,
5860 .subvendor
= 0x1131,
5861 .subdevice
= 0x4e85,
5862 .driver_data
= SAA7134_BOARD_MONSTERTV
,
5864 .vendor
= PCI_VENDOR_ID_PHILIPS
,
5865 .device
= PCI_DEVICE_ID_PHILIPS_SAA7134
,
5866 .subvendor
= 0x153b,
5867 .subdevice
= 0x1142,
5868 .driver_data
= SAA7134_BOARD_CINERGY400
,
5870 .vendor
= PCI_VENDOR_ID_PHILIPS
,
5871 .device
= PCI_DEVICE_ID_PHILIPS_SAA7134
,
5872 .subvendor
= 0x153b,
5873 .subdevice
= 0x1143,
5874 .driver_data
= SAA7134_BOARD_CINERGY600
,
5876 .vendor
= PCI_VENDOR_ID_PHILIPS
,
5877 .device
= PCI_DEVICE_ID_PHILIPS_SAA7134
,
5878 .subvendor
= 0x153b,
5879 .subdevice
= 0x1158,
5880 .driver_data
= SAA7134_BOARD_CINERGY600_MK3
,
5882 .vendor
= PCI_VENDOR_ID_PHILIPS
,
5883 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
5884 .subvendor
= 0x153b,
5885 .subdevice
= 0x1162,
5886 .driver_data
= SAA7134_BOARD_CINERGY400_CARDBUS
,
5888 .vendor
= PCI_VENDOR_ID_PHILIPS
,
5889 .device
= PCI_DEVICE_ID_PHILIPS_SAA7134
,
5890 .subvendor
= 0x5169,
5891 .subdevice
= 0x0138,
5892 .driver_data
= SAA7134_BOARD_FLYVIDEO3000_NTSC
,
5894 .vendor
= PCI_VENDOR_ID_PHILIPS
,
5895 .device
= PCI_DEVICE_ID_PHILIPS_SAA7134
,
5896 .subvendor
= 0x5168,
5897 .subdevice
= 0x0138,
5898 .driver_data
= SAA7134_BOARD_FLYVIDEO3000
,
5900 .vendor
= PCI_VENDOR_ID_PHILIPS
,
5901 .device
= PCI_DEVICE_ID_PHILIPS_SAA7134
,
5902 .subvendor
= 0x4e42, /* "Typhoon PCI Capture TV Card" Art.No. 50673 */
5903 .subdevice
= 0x0138,
5904 .driver_data
= SAA7134_BOARD_FLYVIDEO3000
,
5906 .vendor
= PCI_VENDOR_ID_PHILIPS
,
5907 .device
= PCI_DEVICE_ID_PHILIPS_SAA7130
,
5908 .subvendor
= 0x5168,
5909 .subdevice
= 0x0138,
5910 .driver_data
= SAA7134_BOARD_FLYVIDEO2000
,
5912 .vendor
= PCI_VENDOR_ID_PHILIPS
,
5913 .device
= PCI_DEVICE_ID_PHILIPS_SAA7130
,
5914 .subvendor
= 0x4e42, /* Typhoon */
5915 .subdevice
= 0x0138, /* LifeView FlyTV Prime30 OEM */
5916 .driver_data
= SAA7134_BOARD_FLYVIDEO2000
,
5918 .vendor
= PCI_VENDOR_ID_PHILIPS
,
5919 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
5920 .subvendor
= 0x5168,
5921 .subdevice
= 0x0212, /* minipci, LR212 */
5922 .driver_data
= SAA7134_BOARD_FLYTVPLATINUM_MINI
,
5924 .vendor
= PCI_VENDOR_ID_PHILIPS
,
5925 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
5926 .subvendor
= 0x14c0,
5927 .subdevice
= 0x1212, /* minipci, LR1212 */
5928 .driver_data
= SAA7134_BOARD_FLYTVPLATINUM_MINI2
,
5930 .vendor
= PCI_VENDOR_ID_PHILIPS
,
5931 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
5932 .subvendor
= 0x4e42,
5933 .subdevice
= 0x0212, /* OEM minipci, LR212 */
5934 .driver_data
= SAA7134_BOARD_FLYTVPLATINUM_MINI
,
5936 .vendor
= PCI_VENDOR_ID_PHILIPS
,
5937 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
5938 .subvendor
= 0x5168, /* Animation Technologies (LifeView) */
5939 .subdevice
= 0x0214, /* Standard PCI, LR214 Rev E and earlier (SAA7135) */
5940 .driver_data
= SAA7134_BOARD_FLYTVPLATINUM_FM
,
5942 .vendor
= PCI_VENDOR_ID_PHILIPS
,
5943 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
5944 .subvendor
= 0x5168, /* Animation Technologies (LifeView) */
5945 .subdevice
= 0x5214, /* Standard PCI, LR214 Rev F onwards (SAA7131) */
5946 .driver_data
= SAA7134_BOARD_FLYTVPLATINUM_FM
,
5948 .vendor
= PCI_VENDOR_ID_PHILIPS
,
5949 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
5950 .subvendor
= 0x1489, /* KYE */
5951 .subdevice
= 0x0214, /* Genius VideoWonder ProTV */
5952 .driver_data
= SAA7134_BOARD_FLYTVPLATINUM_FM
, /* is an LR214WF actually */
5954 .vendor
= PCI_VENDOR_ID_PHILIPS
,
5955 .device
= PCI_DEVICE_ID_PHILIPS_SAA7134
,
5956 .subvendor
= 0x16be,
5957 .subdevice
= 0x0003,
5958 .driver_data
= SAA7134_BOARD_MD7134
,
5960 .vendor
= PCI_VENDOR_ID_PHILIPS
,
5961 .device
= PCI_DEVICE_ID_PHILIPS_SAA7134
,
5962 .subvendor
= 0x16be, /* CTX946 analog TV, HW mpeg, DVB-T */
5963 .subdevice
= 0x5000, /* only analog TV and DVB-T for now */
5964 .driver_data
= SAA7134_BOARD_MD7134
,
5966 .vendor
= PCI_VENDOR_ID_PHILIPS
,
5967 .device
= PCI_DEVICE_ID_PHILIPS_SAA7130
,
5968 .subvendor
= 0x1048,
5969 .subdevice
= 0x226b,
5970 .driver_data
= SAA7134_BOARD_ELSA
,
5972 .vendor
= PCI_VENDOR_ID_PHILIPS
,
5973 .device
= PCI_DEVICE_ID_PHILIPS_SAA7130
,
5974 .subvendor
= 0x1048,
5975 .subdevice
= 0x226a,
5976 .driver_data
= SAA7134_BOARD_ELSA_500TV
,
5978 .vendor
= PCI_VENDOR_ID_PHILIPS
,
5979 .device
= PCI_DEVICE_ID_PHILIPS_SAA7130
,
5980 .subvendor
= 0x1048,
5981 .subdevice
= 0x226c,
5982 .driver_data
= SAA7134_BOARD_ELSA_700TV
,
5984 .vendor
= PCI_VENDOR_ID_PHILIPS
,
5985 .device
= PCI_DEVICE_ID_PHILIPS_SAA7134
,
5986 .subvendor
= PCI_VENDOR_ID_ASUSTEK
,
5987 .subdevice
= 0x4842,
5988 .driver_data
= SAA7134_BOARD_ASUSTeK_TVFM7134
,
5990 .vendor
= PCI_VENDOR_ID_PHILIPS
,
5991 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
5992 .subvendor
= PCI_VENDOR_ID_ASUSTEK
,
5993 .subdevice
= 0x4845,
5994 .driver_data
= SAA7134_BOARD_ASUSTeK_TVFM7135
,
5996 .vendor
= PCI_VENDOR_ID_PHILIPS
,
5997 .device
= PCI_DEVICE_ID_PHILIPS_SAA7134
,
5998 .subvendor
= PCI_VENDOR_ID_ASUSTEK
,
5999 .subdevice
= 0x4830,
6000 .driver_data
= SAA7134_BOARD_ASUSTeK_TVFM7134
,
6002 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6003 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
6004 .subvendor
= PCI_VENDOR_ID_ASUSTEK
,
6005 .subdevice
= 0x4843,
6006 .driver_data
= SAA7134_BOARD_ASUSTEK_TVFM7133
,
6008 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6009 .device
= PCI_DEVICE_ID_PHILIPS_SAA7134
,
6010 .subvendor
= PCI_VENDOR_ID_ASUSTEK
,
6011 .subdevice
= 0x4840,
6012 .driver_data
= SAA7134_BOARD_ASUSTeK_TVFM7134
,
6014 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6015 .device
= PCI_DEVICE_ID_PHILIPS_SAA7134
,
6016 .subvendor
= PCI_VENDOR_ID_PHILIPS
,
6017 .subdevice
= 0xfe01,
6018 .driver_data
= SAA7134_BOARD_TVSTATION_RDS
,
6020 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6021 .device
= PCI_DEVICE_ID_PHILIPS_SAA7134
,
6022 .subvendor
= 0x1894,
6023 .subdevice
= 0xfe01,
6024 .driver_data
= SAA7134_BOARD_TVSTATION_RDS
,
6026 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6027 .device
= PCI_DEVICE_ID_PHILIPS_SAA7134
,
6028 .subvendor
= 0x1894,
6029 .subdevice
= 0xa006,
6030 .driver_data
= SAA7134_BOARD_TVSTATION_DVR
,
6032 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6033 .device
= PCI_DEVICE_ID_PHILIPS_SAA7134
,
6034 .subvendor
= 0x1131,
6035 .subdevice
= 0x7133,
6036 .driver_data
= SAA7134_BOARD_VA1000POWER
,
6038 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6039 .device
= PCI_DEVICE_ID_PHILIPS_SAA7130
,
6040 .subvendor
= PCI_VENDOR_ID_PHILIPS
,
6041 .subdevice
= 0x2001,
6042 .driver_data
= SAA7134_BOARD_10MOONSTVMASTER
,
6044 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6045 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
6046 .subvendor
= 0x185b,
6047 .subdevice
= 0xc100,
6048 .driver_data
= SAA7134_BOARD_VIDEOMATE_TV
,
6050 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6051 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
6052 .subvendor
= 0x185b,
6053 .subdevice
= 0xc100,
6054 .driver_data
= SAA7134_BOARD_VIDEOMATE_TV_GOLD_PLUS
,
6056 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6057 .device
= PCI_DEVICE_ID_PHILIPS_SAA7130
,
6058 .subvendor
= PCI_VENDOR_ID_MATROX
,
6059 .subdevice
= 0x48d0,
6060 .driver_data
= SAA7134_BOARD_CRONOS_PLUS
,
6062 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6063 .device
= PCI_DEVICE_ID_PHILIPS_SAA7134
,
6064 .subvendor
= 0x1461, /* Avermedia Technologies Inc */
6065 .subdevice
= 0xa70b,
6066 .driver_data
= SAA7134_BOARD_MD2819
,
6068 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6069 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
6070 .subvendor
= 0x1461, /* Avermedia Technologies Inc */
6071 .subdevice
= 0xa7a1,
6072 .driver_data
= SAA7134_BOARD_AVERMEDIA_A700_PRO
,
6074 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6075 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
6076 .subvendor
= 0x1461, /* Avermedia Technologies Inc */
6077 .subdevice
= 0xa7a2,
6078 .driver_data
= SAA7134_BOARD_AVERMEDIA_A700_HYBRID
,
6080 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6081 .device
= PCI_DEVICE_ID_PHILIPS_SAA7130
,
6082 .subvendor
= 0x1461, /* Avermedia Technologies Inc */
6083 .subdevice
= 0x2115,
6084 .driver_data
= SAA7134_BOARD_AVERMEDIA_STUDIO_305
,
6086 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6087 .device
= PCI_DEVICE_ID_PHILIPS_SAA7130
,
6088 .subvendor
= 0x1461, /* Avermedia Technologies Inc */
6089 .subdevice
= 0xa115,
6090 .driver_data
= SAA7134_BOARD_AVERMEDIA_STUDIO_505
,
6092 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6093 .device
= PCI_DEVICE_ID_PHILIPS_SAA7130
,
6094 .subvendor
= 0x1461, /* Avermedia Technologies Inc */
6095 .subdevice
= 0x2108,
6096 .driver_data
= SAA7134_BOARD_AVERMEDIA_305
,
6098 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6099 .device
= PCI_DEVICE_ID_PHILIPS_SAA7130
,
6100 .subvendor
= 0x1461, /* Avermedia Technologies Inc */
6101 .subdevice
= 0x10ff,
6102 .driver_data
= SAA7134_BOARD_AVERMEDIA_DVD_EZMAKER
,
6104 /* AVerMedia CardBus */
6105 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6106 .device
= PCI_DEVICE_ID_PHILIPS_SAA7134
,
6107 .subvendor
= 0x1461, /* Avermedia Technologies Inc */
6108 .subdevice
= 0xd6ee,
6109 .driver_data
= SAA7134_BOARD_AVERMEDIA_CARDBUS
,
6111 /* AVerMedia CardBus */
6112 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6113 .device
= PCI_DEVICE_ID_PHILIPS_SAA7134
,
6114 .subvendor
= 0x1461, /* Avermedia Technologies Inc */
6115 .subdevice
= 0xb7e9,
6116 .driver_data
= SAA7134_BOARD_AVERMEDIA_CARDBUS_501
,
6118 /* TransGear 3000TV */
6119 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6120 .device
= PCI_DEVICE_ID_PHILIPS_SAA7130
,
6121 .subvendor
= 0x1461, /* Avermedia Technologies Inc */
6122 .subdevice
= 0x050c,
6123 .driver_data
= SAA7134_BOARD_TG3000TV
,
6125 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6126 .device
= PCI_DEVICE_ID_PHILIPS_SAA7134
,
6127 .subvendor
= 0x11bd,
6128 .subdevice
= 0x002b,
6129 .driver_data
= SAA7134_BOARD_PINNACLE_PCTV_STEREO
,
6131 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6132 .device
= PCI_DEVICE_ID_PHILIPS_SAA7134
,
6133 .subvendor
= 0x11bd,
6134 .subdevice
= 0x002d,
6135 .driver_data
= SAA7134_BOARD_PINNACLE_300I_DVBT_PAL
,
6137 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6138 .device
= PCI_DEVICE_ID_PHILIPS_SAA7134
,
6139 .subvendor
= 0x1019,
6140 .subdevice
= 0x4cb4,
6141 .driver_data
= SAA7134_BOARD_ECS_TVP3XP
,
6143 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6144 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
6145 .subvendor
= 0x1019,
6146 .subdevice
= 0x4cb5,
6147 .driver_data
= SAA7134_BOARD_ECS_TVP3XP_4CB5
,
6149 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6150 .device
= PCI_DEVICE_ID_PHILIPS_SAA7134
,
6151 .subvendor
= 0x1019,
6152 .subdevice
= 0x4cb6,
6153 .driver_data
= SAA7134_BOARD_ECS_TVP3XP_4CB6
,
6155 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6156 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
6157 .subvendor
= 0x12ab,
6158 .subdevice
= 0x0800,
6159 .driver_data
= SAA7134_BOARD_UPMOST_PURPLE_TV
,
6161 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6162 .device
= PCI_DEVICE_ID_PHILIPS_SAA7130
,
6163 .subvendor
= 0x153b,
6164 .subdevice
= 0x1152,
6165 .driver_data
= SAA7134_BOARD_CINERGY200
,
6167 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6168 .device
= PCI_DEVICE_ID_PHILIPS_SAA7130
,
6169 .subvendor
= 0x185b,
6170 .subdevice
= 0xc100,
6171 .driver_data
= SAA7134_BOARD_VIDEOMATE_TV_PVR
,
6173 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6174 .device
= PCI_DEVICE_ID_PHILIPS_SAA7134
,
6175 .subvendor
= 0x1461, /* Avermedia Technologies Inc */
6176 .subdevice
= 0x9715,
6177 .driver_data
= SAA7134_BOARD_AVERMEDIA_STUDIO_307
,
6179 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6180 .device
= PCI_DEVICE_ID_PHILIPS_SAA7134
,
6181 .subvendor
= 0x1461, /* Avermedia Technologies Inc */
6182 .subdevice
= 0xa70a,
6183 .driver_data
= SAA7134_BOARD_AVERMEDIA_307
,
6185 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6186 .device
= PCI_DEVICE_ID_PHILIPS_SAA7134
,
6187 .subvendor
= 0x185b,
6188 .subdevice
= 0xc200,
6189 .driver_data
= SAA7134_BOARD_VIDEOMATE_GOLD_PLUS
,
6191 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6192 .device
= PCI_DEVICE_ID_PHILIPS_SAA7134
,
6193 .subvendor
= 0x1540,
6194 .subdevice
= 0x9524,
6195 .driver_data
= SAA7134_BOARD_PROVIDEO_PV952
,
6198 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6199 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
6200 .subvendor
= 0x5168,
6201 .subdevice
= 0x0502, /* Cardbus version */
6202 .driver_data
= SAA7134_BOARD_FLYDVBT_DUO_CARDBUS
,
6204 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6205 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
6206 .subvendor
= 0x5168,
6207 .subdevice
= 0x0306, /* PCI version */
6208 .driver_data
= SAA7134_BOARD_FLYDVBTDUO
,
6210 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6211 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
6212 .subvendor
= 0x1461, /* Avermedia Technologies Inc */
6213 .subdevice
= 0xf31f,
6214 .driver_data
= SAA7134_BOARD_AVERMEDIA_GO_007_FM
,
6217 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6218 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
6219 .subvendor
= 0x1461, /* Avermedia Technologies Inc */
6220 .subdevice
= 0xf11d,
6221 .driver_data
= SAA7134_BOARD_AVERMEDIA_M135A
,
6223 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6224 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
6225 .subvendor
= 0x1461, /* Avermedia Technologies Inc */
6226 .subdevice
= 0x4155,
6227 .driver_data
= SAA7134_BOARD_AVERMEDIA_M733A
,
6229 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6230 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
6231 .subvendor
= 0x1461, /* Avermedia Technologies Inc */
6232 .subdevice
= 0x4255,
6233 .driver_data
= SAA7134_BOARD_AVERMEDIA_M733A
,
6235 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6236 .device
= PCI_DEVICE_ID_PHILIPS_SAA7130
,
6237 .subvendor
= PCI_VENDOR_ID_PHILIPS
,
6238 .subdevice
= 0x2004,
6239 .driver_data
= SAA7134_BOARD_PHILIPS_TOUGH
,
6241 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6242 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
6243 .subvendor
= 0x1421,
6244 .subdevice
= 0x0350, /* PCI version */
6245 .driver_data
= SAA7134_BOARD_ADS_INSTANT_TV
,
6247 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6248 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
6249 .subvendor
= 0x1421,
6250 .subdevice
= 0x0351, /* PCI version, new revision */
6251 .driver_data
= SAA7134_BOARD_ADS_INSTANT_TV
,
6253 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6254 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
6255 .subvendor
= 0x1421,
6256 .subdevice
= 0x0370, /* cardbus version */
6257 .driver_data
= SAA7134_BOARD_ADS_INSTANT_TV
,
6259 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6260 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
6261 .subvendor
= 0x1421,
6262 .subdevice
= 0x1370, /* cardbus version */
6263 .driver_data
= SAA7134_BOARD_ADS_INSTANT_TV
,
6266 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6267 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
6268 .subvendor
= 0x4e42, /* Typhoon */
6269 .subdevice
= 0x0502, /* LifeView LR502 OEM */
6270 .driver_data
= SAA7134_BOARD_FLYDVBT_DUO_CARDBUS
,
6272 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6273 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
6274 .subvendor
= 0x1043,
6275 .subdevice
= 0x0210, /* mini pci NTSC version */
6276 .driver_data
= SAA7134_BOARD_FLYTV_DIGIMATRIX
,
6278 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6279 .device
= PCI_DEVICE_ID_PHILIPS_SAA7134
,
6280 .subvendor
= 0x1043,
6281 .subdevice
= 0x0210, /* mini pci PAL/SECAM version */
6282 .driver_data
= SAA7134_BOARD_ASUSTEK_DIGIMATRIX_TV
,
6285 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6286 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
6287 .subvendor
= 0x0000, /* It shouldn't break anything, since subdevice id seems unique */
6288 .subdevice
= 0x4091,
6289 .driver_data
= SAA7134_BOARD_BEHOLD_409FM
,
6291 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6292 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
6293 .subvendor
= 0x5456, /* GoTView */
6294 .subdevice
= 0x7135,
6295 .driver_data
= SAA7134_BOARD_GOTVIEW_7135
,
6297 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6298 .device
= PCI_DEVICE_ID_PHILIPS_SAA7134
,
6299 .subvendor
= PCI_VENDOR_ID_PHILIPS
,
6300 .subdevice
= 0x2004,
6301 .driver_data
= SAA7134_BOARD_PHILIPS_EUROPA
,
6303 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6304 .device
= PCI_DEVICE_ID_PHILIPS_SAA7134
,
6305 .subvendor
= 0x185b,
6306 .subdevice
= 0xc900,
6307 .driver_data
= SAA7134_BOARD_VIDEOMATE_DVBT_300
,
6309 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6310 .device
= PCI_DEVICE_ID_PHILIPS_SAA7130
,
6311 .subvendor
= 0x185b,
6312 .subdevice
= 0xc901,
6313 .driver_data
= SAA7134_BOARD_VIDEOMATE_DVBT_200
,
6315 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6316 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
6317 .subvendor
= 0x1435,
6318 .subdevice
= 0x7350,
6319 .driver_data
= SAA7134_BOARD_RTD_VFG7350
,
6321 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6322 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
6323 .subvendor
= 0x1435,
6324 .subdevice
= 0x7330,
6325 .driver_data
= SAA7134_BOARD_RTD_VFG7330
,
6327 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6328 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
6329 .subvendor
= 0x1461,
6330 .subdevice
= 0x1044,
6331 .driver_data
= SAA7134_BOARD_AVERMEDIA_AVERTVHD_A180
,
6333 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6334 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
6335 .subvendor
= 0x1131,
6336 .subdevice
= 0x4ee9,
6337 .driver_data
= SAA7134_BOARD_MONSTERTV_MOBILE
,
6339 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6340 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
6341 .subvendor
= 0x11bd,
6342 .subdevice
= 0x002e,
6343 .driver_data
= SAA7134_BOARD_PINNACLE_PCTV_110i
,
6345 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6346 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
6347 .subvendor
= 0x1043,
6348 .subdevice
= 0x4862,
6349 .driver_data
= SAA7134_BOARD_ASUSTeK_P7131_DUAL
,
6351 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6352 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
6353 .subvendor
= PCI_VENDOR_ID_PHILIPS
,
6354 .subdevice
= 0x2018,
6355 .driver_data
= SAA7134_BOARD_PHILIPS_TIGER
,
6357 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6358 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
6359 .subvendor
= 0x1462,
6360 .subdevice
= 0x6231, /* tda8275a, ks003 IR */
6361 .driver_data
= SAA7134_BOARD_MSI_TVATANYWHERE_PLUS
,
6363 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6364 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
6365 .subvendor
= 0x1462,
6366 .subdevice
= 0x8624, /* tda8275, ks003 IR */
6367 .driver_data
= SAA7134_BOARD_MSI_TVATANYWHERE_PLUS
,
6369 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6370 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
6371 .subvendor
= 0x153b,
6372 .subdevice
= 0x1160,
6373 .driver_data
= SAA7134_BOARD_CINERGY250PCI
,
6375 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6376 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
, /* SAA 7131E */
6377 .subvendor
= 0x5168,
6378 .subdevice
= 0x0319,
6379 .driver_data
= SAA7134_BOARD_FLYDVB_TRIO
,
6381 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6382 .device
= PCI_DEVICE_ID_PHILIPS_SAA7134
,
6383 .subvendor
= 0x1461,
6384 .subdevice
= 0x2c05,
6385 .driver_data
= SAA7134_BOARD_AVERMEDIA_777
,
6387 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6388 .device
= PCI_DEVICE_ID_PHILIPS_SAA7134
,
6389 .subvendor
= 0x5168,
6390 .subdevice
= 0x0301,
6391 .driver_data
= SAA7134_BOARD_FLYDVBT_LR301
,
6393 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6394 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
6395 .subvendor
= 0x0331,
6396 .subdevice
= 0x1421,
6397 .driver_data
= SAA7134_BOARD_ADS_DUO_CARDBUS_PTV331
,
6399 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6400 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
6401 .subvendor
= 0x17de,
6402 .subdevice
= 0x7201,
6403 .driver_data
= SAA7134_BOARD_TEVION_DVBT_220RF
,
6405 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6406 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
6407 .subvendor
= 0x17de,
6408 .subdevice
= 0x7250,
6409 .driver_data
= SAA7134_BOARD_KWORLD_DVBT_210
,
6411 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6412 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
, /* SAA7135HL */
6413 .subvendor
= 0x17de,
6414 .subdevice
= 0x7350,
6415 .driver_data
= SAA7134_BOARD_KWORLD_ATSC110
,
6417 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6418 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
, /* SAA7135HL */
6419 .subvendor
= 0x17de,
6420 .subdevice
= 0x7352,
6421 .driver_data
= SAA7134_BOARD_KWORLD_ATSC110
, /* ATSC 115 */
6423 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6424 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
, /* SAA7135HL */
6425 .subvendor
= 0x17de,
6426 .subdevice
= 0xa134,
6427 .driver_data
= SAA7134_BOARD_KWORLD_PC150U
,
6429 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6430 .device
= PCI_DEVICE_ID_PHILIPS_SAA7134
,
6431 .subvendor
= 0x1461,
6432 .subdevice
= 0x7360,
6433 .driver_data
= SAA7134_BOARD_AVERMEDIA_A169_B
,
6435 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6436 .device
= PCI_DEVICE_ID_PHILIPS_SAA7134
,
6437 .subvendor
= 0x1461,
6438 .subdevice
= 0x6360,
6439 .driver_data
= SAA7134_BOARD_AVERMEDIA_A169_B1
,
6441 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6442 .device
= PCI_DEVICE_ID_PHILIPS_SAA7134
,
6443 .subvendor
= 0x16be,
6444 .subdevice
= 0x0005,
6445 .driver_data
= SAA7134_BOARD_MD7134_BRIDGE_2
,
6447 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6448 .device
= PCI_DEVICE_ID_PHILIPS_SAA7134
,
6449 .subvendor
= 0x5168,
6450 .subdevice
= 0x0300,
6451 .driver_data
= SAA7134_BOARD_FLYDVBS_LR300
,
6453 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6454 .device
= PCI_DEVICE_ID_PHILIPS_SAA7134
,
6455 .subvendor
= 0x4e42,
6456 .subdevice
= 0x0300,/* LR300 */
6457 .driver_data
= SAA7134_BOARD_FLYDVBS_LR300
,
6459 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6460 .device
= PCI_DEVICE_ID_PHILIPS_SAA7134
,
6461 .subvendor
= 0x1489,
6462 .subdevice
= 0x0301,
6463 .driver_data
= SAA7134_BOARD_FLYDVBT_LR301
,
6465 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6466 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
6467 .subvendor
= 0x5168, /* Animation Technologies (LifeView) */
6468 .subdevice
= 0x0304,
6469 .driver_data
= SAA7134_BOARD_FLYTVPLATINUM_FM
,
6471 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6472 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
6473 .subvendor
= 0x5168,
6474 .subdevice
= 0x3306,
6475 .driver_data
= SAA7134_BOARD_FLYDVBT_HYBRID_CARDBUS
,
6477 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6478 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
6479 .subvendor
= 0x5168,
6480 .subdevice
= 0x3502, /* whats the difference to 0x3306 ?*/
6481 .driver_data
= SAA7134_BOARD_FLYDVBT_HYBRID_CARDBUS
,
6483 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6484 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
6485 .subvendor
= 0x5168,
6486 .subdevice
= 0x3307, /* FlyDVB-T Hybrid Mini PCI */
6487 .driver_data
= SAA7134_BOARD_FLYDVBT_HYBRID_CARDBUS
,
6489 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6490 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
6491 .subvendor
= 0x16be,
6492 .subdevice
= 0x0007,
6493 .driver_data
= SAA7134_BOARD_MEDION_MD8800_QUADRO
,
6495 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6496 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
6497 .subvendor
= 0x16be,
6498 .subdevice
= 0x0008,
6499 .driver_data
= SAA7134_BOARD_MEDION_MD8800_QUADRO
,
6501 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6502 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
6503 .subvendor
= 0x16be,
6504 .subdevice
= 0x000d, /* triple CTX948_V1.1.1 */
6505 .driver_data
= SAA7134_BOARD_MEDION_MD8800_QUADRO
,
6507 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6508 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
6509 .subvendor
= 0x1461,
6510 .subdevice
= 0x2c05,
6511 .driver_data
= SAA7134_BOARD_AVERMEDIA_777
,
6513 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6514 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
6515 .subvendor
= 0x1489,
6516 .subdevice
= 0x0502, /* Cardbus version */
6517 .driver_data
= SAA7134_BOARD_FLYDVBT_DUO_CARDBUS
,
6519 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6520 .device
= PCI_DEVICE_ID_PHILIPS_SAA7130
,
6521 .subvendor
= 0x0919, /* Philips Proteus PRO 2309 */
6522 .subdevice
= 0x2003,
6523 .driver_data
= SAA7134_BOARD_PROTEUS_2309
,
6525 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6526 .device
= PCI_DEVICE_ID_PHILIPS_SAA7134
,
6527 .subvendor
= 0x1461,
6528 .subdevice
= 0x2c00,
6529 .driver_data
= SAA7134_BOARD_AVERMEDIA_A16AR
,
6531 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6532 .device
= PCI_DEVICE_ID_PHILIPS_SAA7134
,
6533 .subvendor
= 0x1043,
6534 .subdevice
= 0x4860,
6535 .driver_data
= SAA7134_BOARD_ASUS_EUROPA2_HYBRID
,
6537 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6538 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
6539 .subvendor
= 0x11bd,
6540 .subdevice
= 0x002f,
6541 .driver_data
= SAA7134_BOARD_PINNACLE_PCTV_310i
,
6543 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6544 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
6545 .subvendor
= 0x1461, /* Avermedia Technologies Inc */
6546 .subdevice
= 0x9715,
6547 .driver_data
= SAA7134_BOARD_AVERMEDIA_STUDIO_507
,
6549 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6550 .device
= PCI_DEVICE_ID_PHILIPS_SAA7134
,
6551 .subvendor
= 0x1461, /* Avermedia Technologies Inc */
6552 .subdevice
= 0xa11b,
6553 .driver_data
= SAA7134_BOARD_AVERMEDIA_STUDIO_507UA
,
6555 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6556 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
6557 .subvendor
= 0x1043,
6558 .subdevice
= 0x4876,
6559 .driver_data
= SAA7134_BOARD_ASUSTeK_P7131_HYBRID_LNA
,
6561 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6562 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
6563 .subvendor
= 0x0070,
6564 .subdevice
= 0x6700,
6565 .driver_data
= SAA7134_BOARD_HAUPPAUGE_HVR1110
,
6567 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6568 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
6569 .subvendor
= 0x0070,
6570 .subdevice
= 0x6701,
6571 .driver_data
= SAA7134_BOARD_HAUPPAUGE_HVR1110
,
6573 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6574 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
6575 .subvendor
= 0x0070,
6576 .subdevice
= 0x6702,
6577 .driver_data
= SAA7134_BOARD_HAUPPAUGE_HVR1110
,
6579 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6580 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
6581 .subvendor
= 0x0070,
6582 .subdevice
= 0x6703,
6583 .driver_data
= SAA7134_BOARD_HAUPPAUGE_HVR1110
,
6585 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6586 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
6587 .subvendor
= 0x0070,
6588 .subdevice
= 0x6704,
6589 .driver_data
= SAA7134_BOARD_HAUPPAUGE_HVR1110
,
6591 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6592 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
6593 .subvendor
= 0x0070,
6594 .subdevice
= 0x6705,
6595 .driver_data
= SAA7134_BOARD_HAUPPAUGE_HVR1110
,
6597 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6598 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
6599 .subvendor
= 0x0070,
6600 .subdevice
= 0x6706,
6601 .driver_data
= SAA7134_BOARD_HAUPPAUGE_HVR1150
,
6603 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6604 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
6605 .subvendor
= 0x0070,
6606 .subdevice
= 0x6707,
6607 .driver_data
= SAA7134_BOARD_HAUPPAUGE_HVR1120
,
6609 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6610 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
6611 .subvendor
= 0x0070,
6612 .subdevice
= 0x6708,
6613 .driver_data
= SAA7134_BOARD_HAUPPAUGE_HVR1150
,
6615 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6616 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
6617 .subvendor
= 0x0070,
6618 .subdevice
= 0x6709,
6619 .driver_data
= SAA7134_BOARD_HAUPPAUGE_HVR1120
,
6621 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6622 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
6623 .subvendor
= 0x0070,
6624 .subdevice
= 0x670a,
6625 .driver_data
= SAA7134_BOARD_HAUPPAUGE_HVR1120
,
6627 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6628 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
6629 .subvendor
= 0x153b,
6630 .subdevice
= 0x1172,
6631 .driver_data
= SAA7134_BOARD_CINERGY_HT_PCMCIA
,
6633 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6634 .device
= PCI_DEVICE_ID_PHILIPS_SAA7130
,
6635 .subvendor
= PCI_VENDOR_ID_PHILIPS
,
6636 .subdevice
= 0x2342,
6637 .driver_data
= SAA7134_BOARD_ENCORE_ENLTV
,
6639 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6640 .device
= PCI_DEVICE_ID_PHILIPS_SAA7130
,
6641 .subvendor
= 0x1131,
6642 .subdevice
= 0x2341,
6643 .driver_data
= SAA7134_BOARD_ENCORE_ENLTV
,
6645 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6646 .device
= PCI_DEVICE_ID_PHILIPS_SAA7130
,
6647 .subvendor
= 0x3016,
6648 .subdevice
= 0x2344,
6649 .driver_data
= SAA7134_BOARD_ENCORE_ENLTV
,
6651 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6652 .device
= PCI_DEVICE_ID_PHILIPS_SAA7130
,
6653 .subvendor
= 0x1131,
6654 .subdevice
= 0x230f,
6655 .driver_data
= SAA7134_BOARD_ENCORE_ENLTV_FM
,
6657 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6658 .device
= PCI_DEVICE_ID_PHILIPS_SAA7130
,
6659 .subvendor
= 0x1a7f,
6660 .subdevice
= 0x2008,
6661 .driver_data
= SAA7134_BOARD_ENCORE_ENLTV_FM53
,
6663 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6664 .device
= PCI_DEVICE_ID_PHILIPS_SAA7134
,
6665 .subvendor
= 0x1a7f,
6666 .subdevice
= 0x2108,
6667 .driver_data
= SAA7134_BOARD_ENCORE_ENLTV_FM3
,
6669 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6670 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
6671 .subvendor
= 0x153b,
6672 .subdevice
= 0x1175,
6673 .driver_data
= SAA7134_BOARD_CINERGY_HT_PCI
,
6675 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6676 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
6677 .subvendor
= 0x1461, /* Avermedia Technologies Inc */
6678 .subdevice
= 0xf31e,
6679 .driver_data
= SAA7134_BOARD_AVERMEDIA_M102
,
6681 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6682 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
6683 .subvendor
= 0x4E42, /* MSI */
6684 .subdevice
= 0x0306, /* TV@nywhere DUO */
6685 .driver_data
= SAA7134_BOARD_FLYDVBTDUO
,
6687 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6688 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
6689 .subvendor
= 0x1043,
6690 .subdevice
= 0x4871,
6691 .driver_data
= SAA7134_BOARD_ASUS_P7131_4871
,
6693 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6694 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
6695 .subvendor
= 0x1043,
6696 .subdevice
= 0x4857, /* REV:1.00 */
6697 .driver_data
= SAA7134_BOARD_ASUSTeK_TIGER
,
6699 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6700 .device
= PCI_DEVICE_ID_PHILIPS_SAA7134
,
6701 .subvendor
= 0x0919, /* SinoVideo PCI 2309 Proteus (7134) */
6702 .subdevice
= 0x2003, /* OEM cardbus */
6703 .driver_data
= SAA7134_BOARD_SABRENT_TV_PCB05
,
6705 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6706 .device
= PCI_DEVICE_ID_PHILIPS_SAA7130
,
6707 .subvendor
= PCI_VENDOR_ID_PHILIPS
,
6708 .subdevice
= 0x2304,
6709 .driver_data
= SAA7134_BOARD_10MOONSTVMASTER3
,
6711 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6712 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
6713 .subvendor
= 0x1461, /* Avermedia Technologies Inc */
6714 .subdevice
= 0xf01d, /* AVerTV DVB-T Super 007 */
6715 .driver_data
= SAA7134_BOARD_AVERMEDIA_SUPER_007
,
6717 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6718 .device
= PCI_DEVICE_ID_PHILIPS_SAA7130
,
6719 .subvendor
= 0x0000,
6720 .subdevice
= 0x4016,
6721 .driver_data
= SAA7134_BOARD_BEHOLD_401
,
6723 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6724 .device
= PCI_DEVICE_ID_PHILIPS_SAA7134
,
6725 .subvendor
= 0x0000,
6726 .subdevice
= 0x4036,
6727 .driver_data
= SAA7134_BOARD_BEHOLD_403
,
6729 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6730 .device
= PCI_DEVICE_ID_PHILIPS_SAA7134
,
6731 .subvendor
= 0x0000,
6732 .subdevice
= 0x4037,
6733 .driver_data
= SAA7134_BOARD_BEHOLD_403FM
,
6735 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6736 .device
= PCI_DEVICE_ID_PHILIPS_SAA7130
,
6737 .subvendor
= 0x0000,
6738 .subdevice
= 0x4050,
6739 .driver_data
= SAA7134_BOARD_BEHOLD_405
,
6741 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6742 .device
= PCI_DEVICE_ID_PHILIPS_SAA7130
,
6743 .subvendor
= 0x0000,
6744 .subdevice
= 0x4051,
6745 .driver_data
= SAA7134_BOARD_BEHOLD_405FM
,
6747 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6748 .device
= PCI_DEVICE_ID_PHILIPS_SAA7134
,
6749 .subvendor
= 0x0000,
6750 .subdevice
= 0x4070,
6751 .driver_data
= SAA7134_BOARD_BEHOLD_407
,
6753 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6754 .device
= PCI_DEVICE_ID_PHILIPS_SAA7134
,
6755 .subvendor
= 0x0000,
6756 .subdevice
= 0x4071,
6757 .driver_data
= SAA7134_BOARD_BEHOLD_407FM
,
6759 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6760 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
6761 .subvendor
= 0x0000,
6762 .subdevice
= 0x4090,
6763 .driver_data
= SAA7134_BOARD_BEHOLD_409
,
6765 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6766 .device
= PCI_DEVICE_ID_PHILIPS_SAA7130
,
6767 .subvendor
= 0x0000,
6768 .subdevice
= 0x505B,
6769 .driver_data
= SAA7134_BOARD_BEHOLD_505RDS_MK5
,
6771 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6772 .device
= PCI_DEVICE_ID_PHILIPS_SAA7130
,
6773 .subvendor
= 0x0000,
6774 .subdevice
= 0x5051,
6775 .driver_data
= SAA7134_BOARD_BEHOLD_505RDS_MK3
,
6777 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6778 .device
= PCI_DEVICE_ID_PHILIPS_SAA7130
,
6779 .subvendor
= 0x5ace,
6780 .subdevice
= 0x5050,
6781 .driver_data
= SAA7134_BOARD_BEHOLD_505FM
,
6783 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6784 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
6785 .subvendor
= 0x0000,
6786 .subdevice
= 0x5071,
6787 .driver_data
= SAA7134_BOARD_BEHOLD_507RDS_MK3
,
6789 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6790 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
6791 .subvendor
= 0x0000,
6792 .subdevice
= 0x507B,
6793 .driver_data
= SAA7134_BOARD_BEHOLD_507RDS_MK5
,
6795 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6796 .device
= PCI_DEVICE_ID_PHILIPS_SAA7134
,
6797 .subvendor
= 0x5ace,
6798 .subdevice
= 0x5070,
6799 .driver_data
= SAA7134_BOARD_BEHOLD_507_9FM
,
6801 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6802 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
6803 .subvendor
= 0x5ace,
6804 .subdevice
= 0x5090,
6805 .driver_data
= SAA7134_BOARD_BEHOLD_507_9FM
,
6807 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6808 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
6809 .subvendor
= 0x0000,
6810 .subdevice
= 0x5201,
6811 .driver_data
= SAA7134_BOARD_BEHOLD_COLUMBUS_TVFM
,
6813 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6814 .device
= PCI_DEVICE_ID_PHILIPS_SAA7134
,
6815 .subvendor
= 0x5ace,
6816 .subdevice
= 0x6070,
6817 .driver_data
= SAA7134_BOARD_BEHOLD_607FM_MK3
,
6819 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6820 .device
= PCI_DEVICE_ID_PHILIPS_SAA7134
,
6821 .subvendor
= 0x5ace,
6822 .subdevice
= 0x6071,
6823 .driver_data
= SAA7134_BOARD_BEHOLD_607FM_MK5
,
6825 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6826 .device
= PCI_DEVICE_ID_PHILIPS_SAA7134
,
6827 .subvendor
= 0x5ace,
6828 .subdevice
= 0x6072,
6829 .driver_data
= SAA7134_BOARD_BEHOLD_607RDS_MK3
,
6831 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6832 .device
= PCI_DEVICE_ID_PHILIPS_SAA7134
,
6833 .subvendor
= 0x5ace,
6834 .subdevice
= 0x6073,
6835 .driver_data
= SAA7134_BOARD_BEHOLD_607RDS_MK5
,
6837 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6838 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
6839 .subvendor
= 0x5ace,
6840 .subdevice
= 0x6090,
6841 .driver_data
= SAA7134_BOARD_BEHOLD_609FM_MK3
,
6843 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6844 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
6845 .subvendor
= 0x5ace,
6846 .subdevice
= 0x6091,
6847 .driver_data
= SAA7134_BOARD_BEHOLD_609FM_MK5
,
6849 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6850 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
6851 .subvendor
= 0x5ace,
6852 .subdevice
= 0x6092,
6853 .driver_data
= SAA7134_BOARD_BEHOLD_609RDS_MK3
,
6855 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6856 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
6857 .subvendor
= 0x5ace,
6858 .subdevice
= 0x6093,
6859 .driver_data
= SAA7134_BOARD_BEHOLD_609RDS_MK5
,
6861 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6862 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
6863 .subvendor
= 0x5ace,
6864 .subdevice
= 0x6190,
6865 .driver_data
= SAA7134_BOARD_BEHOLD_M6
,
6867 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6868 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
6869 .subvendor
= 0x5ace,
6870 .subdevice
= 0x6193,
6871 .driver_data
= SAA7134_BOARD_BEHOLD_M6_EXTRA
,
6873 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6874 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
6875 .subvendor
= 0x5ace,
6876 .subdevice
= 0x6191,
6877 .driver_data
= SAA7134_BOARD_BEHOLD_M63
,
6879 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6880 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
6881 .subvendor
= 0x4e42,
6882 .subdevice
= 0x3502,
6883 .driver_data
= SAA7134_BOARD_FLYDVBT_HYBRID_CARDBUS
,
6885 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6886 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
6887 .subvendor
= 0x1822, /*Twinhan Technology Co. Ltd*/
6888 .subdevice
= 0x0022,
6889 .driver_data
= SAA7134_BOARD_TWINHAN_DTV_DVB_3056
,
6891 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6892 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
6893 .subvendor
= 0x16be,
6894 .subdevice
= 0x0010, /* Medion version CTX953_V.1.4.3 */
6895 .driver_data
= SAA7134_BOARD_CREATIX_CTX953
,
6897 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6898 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
6899 .subvendor
= 0x1462, /* MSI */
6900 .subdevice
= 0x8625, /* TV@nywhere A/D v1.1 */
6901 .driver_data
= SAA7134_BOARD_MSI_TVANYWHERE_AD11
,
6903 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6904 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
6905 .subvendor
= 0x1461, /* Avermedia Technologies Inc */
6906 .subdevice
= 0xf436,
6907 .driver_data
= SAA7134_BOARD_AVERMEDIA_CARDBUS_506
,
6909 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6910 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
6911 .subvendor
= 0x1461, /* Avermedia Technologies Inc */
6912 .subdevice
= 0xf936,
6913 .driver_data
= SAA7134_BOARD_AVERMEDIA_A16D
,
6915 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6916 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
6917 .subvendor
= 0x1461, /* Avermedia Technologies Inc */
6918 .subdevice
= 0xa836,
6919 .driver_data
= SAA7134_BOARD_AVERMEDIA_M115
,
6921 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6922 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
6923 .subvendor
= 0x185b,
6924 .subdevice
= 0xc900,
6925 .driver_data
= SAA7134_BOARD_VIDEOMATE_T750
,
6927 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6928 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
, /* SAA7135HL */
6929 .subvendor
= 0x1421,
6930 .subdevice
= 0x0380,
6931 .driver_data
= SAA7134_BOARD_ADS_INSTANT_HDTV_PCI
,
6933 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6934 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
6935 .subvendor
= 0x5169,
6936 .subdevice
= 0x1502,
6937 .driver_data
= SAA7134_BOARD_FLYTVPLATINUM_MINI
,
6939 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6940 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
6941 .subvendor
= 0x5ace,
6942 .subdevice
= 0x6290,
6943 .driver_data
= SAA7134_BOARD_BEHOLD_H6
,
6945 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6946 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
6947 .subvendor
= 0x1461, /* Avermedia Technologies Inc */
6948 .subdevice
= 0xf636,
6949 .driver_data
= SAA7134_BOARD_AVERMEDIA_M103
,
6951 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6952 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
6953 .subvendor
= 0x1461, /* Avermedia Technologies Inc */
6954 .subdevice
= 0xf736,
6955 .driver_data
= SAA7134_BOARD_AVERMEDIA_M103
,
6957 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6958 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
6959 .subvendor
= 0x1043,
6960 .subdevice
= 0x4878, /* REV:1.02G */
6961 .driver_data
= SAA7134_BOARD_ASUSTeK_TIGER_3IN1
,
6963 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6964 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
6965 .subvendor
= 0x1043,
6966 .subdevice
= 0x48cd,
6967 .driver_data
= SAA7134_BOARD_ASUSTeK_PS3_100
,
6969 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6970 .device
= PCI_DEVICE_ID_PHILIPS_SAA7134
,
6971 .subvendor
= 0x17de,
6972 .subdevice
= 0x7128,
6973 .driver_data
= SAA7134_BOARD_KWORLD_PLUS_TV_ANALOG
,
6975 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6976 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
6977 .subvendor
= 0x17de,
6978 .subdevice
= 0xb136,
6979 .driver_data
= SAA7134_BOARD_KWORLD_PCI_SBTVD_FULLSEG
,
6981 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6982 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
6983 .subvendor
= 0x1461, /* Avermedia Technologies Inc */
6984 .subdevice
= 0xf31d,
6985 .driver_data
= SAA7134_BOARD_AVERMEDIA_GO_007_FM_PLUS
,
6987 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6988 .device
= PCI_DEVICE_ID_PHILIPS_SAA7130
,
6989 .subvendor
= 0x185b,
6990 .subdevice
= 0xc900,
6991 .driver_data
= SAA7134_BOARD_VIDEOMATE_S350
,
6993 .vendor
= PCI_VENDOR_ID_PHILIPS
,
6994 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
6995 .subvendor
= 0x5ace, /* Beholder Intl. Ltd. */
6996 .subdevice
= 0x7595,
6997 .driver_data
= SAA7134_BOARD_BEHOLD_X7
,
6999 .vendor
= PCI_VENDOR_ID_PHILIPS
,
7000 .device
= PCI_DEVICE_ID_PHILIPS_SAA7134
,
7001 .subvendor
= 0x19d1, /* RoverMedia */
7002 .subdevice
= 0x0138, /* LifeView FlyTV Prime30 OEM */
7003 .driver_data
= SAA7134_BOARD_ROVERMEDIA_LINK_PRO_FM
,
7005 .vendor
= PCI_VENDOR_ID_PHILIPS
,
7006 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
7007 .subvendor
= PCI_VENDOR_ID_PHILIPS
,
7008 .subdevice
= 0x2004,
7009 .driver_data
= SAA7134_BOARD_ZOLID_HYBRID_PCI
,
7011 .vendor
= PCI_VENDOR_ID_PHILIPS
,
7012 .device
= PCI_DEVICE_ID_PHILIPS_SAA7134
,
7013 .subvendor
= 0x1043,
7014 .subdevice
= 0x4847,
7015 .driver_data
= SAA7134_BOARD_ASUS_EUROPA_HYBRID
,
7017 .vendor
= PCI_VENDOR_ID_PHILIPS
,
7018 .device
= PCI_DEVICE_ID_PHILIPS_SAA7130
,
7019 .subvendor
= 0x107d,
7020 .subdevice
= 0x6655,
7021 .driver_data
= SAA7134_BOARD_LEADTEK_WINFAST_DTV1000S
,
7023 .vendor
= PCI_VENDOR_ID_PHILIPS
,
7024 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
7025 .subvendor
= 0x13c2,
7026 .subdevice
= 0x2804,
7027 .driver_data
= SAA7134_BOARD_TECHNOTREND_BUDGET_T3000
,
7029 .vendor
= PCI_VENDOR_ID_PHILIPS
,
7030 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
7031 .subvendor
= 0x5ace, /* Beholder Intl. Ltd. */
7032 .subdevice
= 0x7190,
7033 .driver_data
= SAA7134_BOARD_BEHOLD_H7
,
7035 .vendor
= PCI_VENDOR_ID_PHILIPS
,
7036 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
7037 .subvendor
= 0x5ace, /* Beholder Intl. Ltd. */
7038 .subdevice
= 0x7090,
7039 .driver_data
= SAA7134_BOARD_BEHOLD_A7
,
7041 .vendor
= PCI_VENDOR_ID_PHILIPS
,
7042 .device
= PCI_DEVICE_ID_PHILIPS_SAA7135
,
7043 .subvendor
= 0x185b,
7044 .subdevice
= 0xc900,
7045 .driver_data
= SAA7134_BOARD_VIDEOMATE_M1F
,
7047 .vendor
= PCI_VENDOR_ID_PHILIPS
,
7048 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
7049 .subvendor
= 0x5ace,
7050 .subdevice
= 0x5030,
7051 .driver_data
= SAA7134_BOARD_BEHOLD_503FM
,
7053 .vendor
= PCI_VENDOR_ID_PHILIPS
,
7054 .device
= PCI_DEVICE_ID_PHILIPS_SAA7130
,
7055 .subvendor
= 0x5ace,
7056 .subdevice
= 0x5010,
7057 .driver_data
= SAA7134_BOARD_BEHOLD_501
,
7059 .vendor
= PCI_VENDOR_ID_PHILIPS
,
7060 .device
= PCI_DEVICE_ID_PHILIPS_SAA7134
,
7061 .subvendor
= 0x17de,
7062 .subdevice
= 0xd136,
7063 .driver_data
= SAA7134_BOARD_MAGICPRO_PROHDTV_PRO2
,
7065 .vendor
= PCI_VENDOR_ID_PHILIPS
,
7066 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
7067 .subvendor
= 0x6000,
7068 .subdevice
= 0x0811,
7069 .driver_data
= SAA7134_BOARD_SENSORAY811_911
,
7071 .vendor
= PCI_VENDOR_ID_PHILIPS
,
7072 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
7073 .subvendor
= 0x6000,
7074 .subdevice
= 0x0911,
7075 .driver_data
= SAA7134_BOARD_SENSORAY811_911
,
7077 .vendor
= PCI_VENDOR_ID_PHILIPS
,
7078 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
7079 .subvendor
= 0x1461, /* Avermedia Technologies Inc */
7080 .subdevice
= 0x2055, /* AverTV Satellite Hybrid+FM A706 */
7081 .driver_data
= SAA7134_BOARD_AVERMEDIA_A706
,
7083 /* --- boards without eeprom + subsystem ID --- */
7084 .vendor
= PCI_VENDOR_ID_PHILIPS
,
7085 .device
= PCI_DEVICE_ID_PHILIPS_SAA7134
,
7086 .subvendor
= PCI_VENDOR_ID_PHILIPS
,
7088 .driver_data
= SAA7134_BOARD_NOAUTO
,
7090 .vendor
= PCI_VENDOR_ID_PHILIPS
,
7091 .device
= PCI_DEVICE_ID_PHILIPS_SAA7130
,
7092 .subvendor
= PCI_VENDOR_ID_PHILIPS
,
7094 .driver_data
= SAA7134_BOARD_NOAUTO
,
7096 /* --- default catch --- */
7097 .vendor
= PCI_VENDOR_ID_PHILIPS
,
7098 .device
= PCI_DEVICE_ID_PHILIPS_SAA7130
,
7099 .subvendor
= PCI_ANY_ID
,
7100 .subdevice
= PCI_ANY_ID
,
7101 .driver_data
= SAA7134_BOARD_UNKNOWN
,
7103 .vendor
= PCI_VENDOR_ID_PHILIPS
,
7104 .device
= PCI_DEVICE_ID_PHILIPS_SAA7133
,
7105 .subvendor
= PCI_ANY_ID
,
7106 .subdevice
= PCI_ANY_ID
,
7107 .driver_data
= SAA7134_BOARD_UNKNOWN
,
7109 .vendor
= PCI_VENDOR_ID_PHILIPS
,
7110 .device
= PCI_DEVICE_ID_PHILIPS_SAA7134
,
7111 .subvendor
= PCI_ANY_ID
,
7112 .subdevice
= PCI_ANY_ID
,
7113 .driver_data
= SAA7134_BOARD_UNKNOWN
,
7115 .vendor
= PCI_VENDOR_ID_PHILIPS
,
7116 .device
= PCI_DEVICE_ID_PHILIPS_SAA7135
,
7117 .subvendor
= PCI_ANY_ID
,
7118 .subdevice
= PCI_ANY_ID
,
7119 .driver_data
= SAA7134_BOARD_UNKNOWN
,
7121 /* --- end of list --- */
7124 MODULE_DEVICE_TABLE(pci
, saa7134_pci_tbl
);
7126 /* ----------------------------------------------------------- */
7127 /* flyvideo tweaks */
7130 static void board_flyvideo(struct saa7134_dev
*dev
)
7132 printk("%s: there are different flyvideo cards with different tuners\n"
7133 "%s: out there, you might have to use the tuner=<nr> insmod\n"
7134 "%s: option to override the default value.\n",
7135 dev
->name
, dev
->name
, dev
->name
);
7138 static int saa7134_xc2028_callback(struct saa7134_dev
*dev
,
7139 int command
, int arg
)
7142 case XC2028_TUNER_RESET
:
7143 saa_andorl(SAA7134_GPIO_GPSTATUS0
>> 2, 0x00008000, 0x00000000);
7144 saa_andorl(SAA7134_GPIO_GPSTATUS0
>> 2, 0x00008000, 0x00008000);
7145 switch (dev
->board
) {
7146 case SAA7134_BOARD_AVERMEDIA_CARDBUS_506
:
7147 case SAA7134_BOARD_AVERMEDIA_M103
:
7148 saa7134_set_gpio(dev
, 23, 0);
7150 saa7134_set_gpio(dev
, 23, 1);
7152 case SAA7134_BOARD_AVERMEDIA_A16D
:
7153 saa7134_set_gpio(dev
, 21, 0);
7155 saa7134_set_gpio(dev
, 21, 1);
7157 case SAA7134_BOARD_AVERMEDIA_A700_HYBRID
:
7158 saa7134_set_gpio(dev
, 18, 0);
7160 saa7134_set_gpio(dev
, 18, 1);
7162 case SAA7134_BOARD_VIDEOMATE_T750
:
7163 saa7134_set_gpio(dev
, 20, 0);
7165 saa7134_set_gpio(dev
, 20, 1);
7173 static int saa7134_xc5000_callback(struct saa7134_dev
*dev
,
7174 int command
, int arg
)
7176 switch (dev
->board
) {
7177 case SAA7134_BOARD_BEHOLD_X7
:
7178 case SAA7134_BOARD_BEHOLD_H7
:
7179 case SAA7134_BOARD_BEHOLD_A7
:
7180 if (command
== XC5000_TUNER_RESET
) {
7181 /* Down and UP pheripherial RESET pin for reset all chips */
7182 saa_writeb(SAA7134_SPECIAL_MODE
, 0x00);
7184 saa_writeb(SAA7134_SPECIAL_MODE
, 0x01);
7189 saa_andorl(SAA7134_GPIO_GPMODE0
>> 2, 0x06e20000, 0x06e20000);
7190 saa_andorl(SAA7134_GPIO_GPSTATUS0
>> 2, 0x06a20000, 0x06a20000);
7191 saa_andorl(SAA7133_ANALOG_IO_SELECT
>> 2, 0x02, 0x02);
7192 saa_andorl(SAA7134_ANALOG_IN_CTRL1
>> 2, 0x81, 0x81);
7193 saa_andorl(SAA7134_AUDIO_CLOCK0
>> 2, 0x03187de7, 0x03187de7);
7194 saa_andorl(SAA7134_AUDIO_PLL_CTRL
>> 2, 0x03, 0x03);
7195 saa_andorl(SAA7134_AUDIO_CLOCKS_PER_FIELD0
>> 2,
7196 0x0001e000, 0x0001e000);
7202 static int saa7134_tda8290_827x_callback(struct saa7134_dev
*dev
,
7203 int command
, int arg
)
7208 case 0: /* switch LNA gain through GPIO 22*/
7209 saa7134_set_gpio(dev
, 22, arg
) ;
7211 case 1: /* vsync output at GPIO22. 50 / 60Hz */
7212 saa_andorb(SAA7134_VIDEO_PORT_CTRL3
, 0x80, 0x80);
7213 saa_andorb(SAA7134_VIDEO_PORT_CTRL6
, 0x0f, 0x03);
7218 saa_writeb(SAA7134_VGATE_START
, sync_control
);
7219 saa_writeb(SAA7134_VGATE_STOP
, sync_control
+ 1);
7220 saa_andorb(SAA7134_MISC_VGATE_MSB
, 0x03, 0x00);
7229 static inline int saa7134_tda18271_hvr11x0_toggle_agc(struct saa7134_dev
*dev
,
7230 enum tda18271_mode mode
)
7232 /* toggle AGC switch through GPIO 26 */
7234 case TDA18271_ANALOG
:
7235 saa7134_set_gpio(dev
, 26, 0);
7237 case TDA18271_DIGITAL
:
7238 saa7134_set_gpio(dev
, 26, 1);
7246 static inline int saa7134_kworld_sbtvd_toggle_agc(struct saa7134_dev
*dev
,
7247 enum tda18271_mode mode
)
7249 /* toggle AGC switch through GPIO 27 */
7251 case TDA18271_ANALOG
:
7252 saa_writel(SAA7134_GPIO_GPMODE0
>> 2, 0x4000);
7253 saa_writel(SAA7134_GPIO_GPSTATUS0
>> 2, 0x4000);
7256 case TDA18271_DIGITAL
:
7257 saa_writel(SAA7134_GPIO_GPMODE0
>> 2, 0x14000);
7258 saa_writel(SAA7134_GPIO_GPSTATUS0
>> 2, 0x14000);
7260 saa_writel(SAA7134_GPIO_GPMODE0
>> 2, 0x54000);
7261 saa_writel(SAA7134_GPIO_GPSTATUS0
>> 2, 0x54000);
7270 static int saa7134_kworld_pc150u_toggle_agc(struct saa7134_dev
*dev
,
7271 enum tda18271_mode mode
)
7274 case TDA18271_ANALOG
:
7275 saa7134_set_gpio(dev
, 18, 0);
7277 case TDA18271_DIGITAL
:
7278 saa7134_set_gpio(dev
, 18, 1);
7287 static int saa7134_tda8290_18271_callback(struct saa7134_dev
*dev
,
7288 int command
, int arg
)
7293 case TDA18271_CALLBACK_CMD_AGC_ENABLE
: /* 0 */
7294 switch (dev
->board
) {
7295 case SAA7134_BOARD_HAUPPAUGE_HVR1150
:
7296 case SAA7134_BOARD_HAUPPAUGE_HVR1120
:
7297 case SAA7134_BOARD_MAGICPRO_PROHDTV_PRO2
:
7298 ret
= saa7134_tda18271_hvr11x0_toggle_agc(dev
, arg
);
7300 case SAA7134_BOARD_KWORLD_PCI_SBTVD_FULLSEG
:
7301 ret
= saa7134_kworld_sbtvd_toggle_agc(dev
, arg
);
7303 case SAA7134_BOARD_KWORLD_PC150U
:
7304 ret
= saa7134_kworld_pc150u_toggle_agc(dev
, arg
);
7317 static int saa7134_tda8290_callback(struct saa7134_dev
*dev
,
7318 int command
, int arg
)
7322 switch (dev
->board
) {
7323 case SAA7134_BOARD_HAUPPAUGE_HVR1150
:
7324 case SAA7134_BOARD_HAUPPAUGE_HVR1120
:
7325 case SAA7134_BOARD_AVERMEDIA_M733A
:
7326 case SAA7134_BOARD_KWORLD_PCI_SBTVD_FULLSEG
:
7327 case SAA7134_BOARD_KWORLD_PC150U
:
7328 case SAA7134_BOARD_MAGICPRO_PROHDTV_PRO2
:
7329 /* tda8290 + tda18271 */
7330 ret
= saa7134_tda8290_18271_callback(dev
, command
, arg
);
7333 /* tda8290 + tda827x */
7334 ret
= saa7134_tda8290_827x_callback(dev
, command
, arg
);
7340 int saa7134_tuner_callback(void *priv
, int component
, int command
, int arg
)
7342 struct saa7134_dev
*dev
= priv
;
7345 switch (dev
->tuner_type
) {
7346 case TUNER_PHILIPS_TDA8290
:
7347 return saa7134_tda8290_callback(dev
, command
, arg
);
7349 return saa7134_xc2028_callback(dev
, command
, arg
);
7351 return saa7134_xc5000_callback(dev
, command
, arg
);
7354 printk(KERN_ERR
"saa7134: Error - device struct undefined.\n");
7359 EXPORT_SYMBOL(saa7134_tuner_callback
);
7361 /* ----------------------------------------------------------- */
7363 static void hauppauge_eeprom(struct saa7134_dev
*dev
, u8
*eeprom_data
)
7367 tveeprom_hauppauge_analog(&dev
->i2c_client
, &tv
, eeprom_data
);
7369 /* Make sure we support the board model */
7371 case 67019: /* WinTV-HVR1110 (Retail, IR Blaster, hybrid, FM, SVid/Comp, 3.5mm audio in) */
7372 case 67109: /* WinTV-HVR1000 (Retail, IR Receive, analog, no FM, SVid/Comp, 3.5mm audio in) */
7373 case 67201: /* WinTV-HVR1150 (Retail, IR Receive, hybrid, FM, SVid/Comp, 3.5mm audio in) */
7374 case 67301: /* WinTV-HVR1000 (Retail, IR Receive, analog, no FM, SVid/Comp, 3.5mm audio in) */
7375 case 67209: /* WinTV-HVR1110 (Retail, IR Receive, hybrid, FM, SVid/Comp, 3.5mm audio in) */
7376 case 67559: /* WinTV-HVR1110 (OEM, no IR, hybrid, FM, SVid/Comp, RCA aud) */
7377 case 67569: /* WinTV-HVR1110 (OEM, no IR, hybrid, FM) */
7378 case 67579: /* WinTV-HVR1110 (OEM, no IR, hybrid, no FM) */
7379 case 67589: /* WinTV-HVR1110 (OEM, no IR, hybrid, no FM, SVid/Comp, RCA aud) */
7380 case 67599: /* WinTV-HVR1110 (OEM, no IR, hybrid, no FM, SVid/Comp, RCA aud) */
7381 case 67651: /* WinTV-HVR1150 (OEM, no IR, hybrid, FM, SVid/Comp, RCA aud) */
7382 case 67659: /* WinTV-HVR1110 (OEM, no IR, hybrid, FM, SVid/Comp, RCA aud) */
7385 printk(KERN_WARNING
"%s: warning: "
7386 "unknown hauppauge model #%d\n", dev
->name
, tv
.model
);
7390 printk(KERN_INFO
"%s: hauppauge eeprom: model=%d\n",
7391 dev
->name
, tv
.model
);
7394 /* ----------------------------------------------------------- */
7396 int saa7134_board_init1(struct saa7134_dev
*dev
)
7398 /* Always print gpio, often manufacturers encode tuner type and other info. */
7399 saa_writel(SAA7134_GPIO_GPMODE0
>> 2, 0);
7400 dev
->gpio_value
= saa_readl(SAA7134_GPIO_GPSTATUS0
>> 2);
7401 printk(KERN_INFO
"%s: board init: gpio is %x\n", dev
->name
, dev
->gpio_value
);
7403 switch (dev
->board
) {
7404 case SAA7134_BOARD_FLYVIDEO2000
:
7405 case SAA7134_BOARD_FLYVIDEO3000
:
7406 case SAA7134_BOARD_FLYVIDEO3000_NTSC
:
7407 dev
->has_remote
= SAA7134_REMOTE_GPIO
;
7408 board_flyvideo(dev
);
7410 case SAA7134_BOARD_FLYTVPLATINUM_MINI2
:
7411 case SAA7134_BOARD_FLYTVPLATINUM_FM
:
7412 case SAA7134_BOARD_CINERGY400
:
7413 case SAA7134_BOARD_CINERGY600
:
7414 case SAA7134_BOARD_CINERGY600_MK3
:
7415 case SAA7134_BOARD_ECS_TVP3XP
:
7416 case SAA7134_BOARD_ECS_TVP3XP_4CB5
:
7417 case SAA7134_BOARD_ECS_TVP3XP_4CB6
:
7418 case SAA7134_BOARD_MD2819
:
7419 case SAA7134_BOARD_KWORLD_VSTREAM_XPERT
:
7420 case SAA7134_BOARD_KWORLD_XPERT
:
7421 case SAA7134_BOARD_AVERMEDIA_STUDIO_305
:
7422 case SAA7134_BOARD_AVERMEDIA_STUDIO_505
:
7423 case SAA7134_BOARD_AVERMEDIA_305
:
7424 case SAA7134_BOARD_AVERMEDIA_STUDIO_307
:
7425 case SAA7134_BOARD_AVERMEDIA_307
:
7426 case SAA7134_BOARD_AVERMEDIA_STUDIO_507
:
7427 case SAA7134_BOARD_AVERMEDIA_GO_007_FM
:
7428 case SAA7134_BOARD_AVERMEDIA_777
:
7429 case SAA7134_BOARD_AVERMEDIA_M135A
:
7430 /* case SAA7134_BOARD_SABRENT_SBTTVFM: */ /* not finished yet */
7431 case SAA7134_BOARD_VIDEOMATE_TV_PVR
:
7432 case SAA7134_BOARD_VIDEOMATE_GOLD_PLUS
:
7433 case SAA7134_BOARD_VIDEOMATE_TV_GOLD_PLUSII
:
7434 case SAA7134_BOARD_VIDEOMATE_M1F
:
7435 case SAA7134_BOARD_VIDEOMATE_DVBT_300
:
7436 case SAA7134_BOARD_VIDEOMATE_DVBT_200
:
7437 case SAA7134_BOARD_VIDEOMATE_DVBT_200A
:
7438 case SAA7134_BOARD_MANLI_MTV001
:
7439 case SAA7134_BOARD_MANLI_MTV002
:
7440 case SAA7134_BOARD_BEHOLD_409FM
:
7441 case SAA7134_BOARD_AVACSSMARTTV
:
7442 case SAA7134_BOARD_GOTVIEW_7135
:
7443 case SAA7134_BOARD_KWORLD_TERMINATOR
:
7444 case SAA7134_BOARD_SEDNA_PC_TV_CARDBUS
:
7445 case SAA7134_BOARD_FLYDVBT_LR301
:
7446 case SAA7134_BOARD_ASUSTeK_PS3_100
:
7447 case SAA7134_BOARD_ASUSTeK_P7131_DUAL
:
7448 case SAA7134_BOARD_ASUSTeK_P7131_HYBRID_LNA
:
7449 case SAA7134_BOARD_ASUSTeK_P7131_ANALOG
:
7450 case SAA7134_BOARD_FLYDVBTDUO
:
7451 case SAA7134_BOARD_PROTEUS_2309
:
7452 case SAA7134_BOARD_AVERMEDIA_A16AR
:
7453 case SAA7134_BOARD_ENCORE_ENLTV
:
7454 case SAA7134_BOARD_ENCORE_ENLTV_FM
:
7455 case SAA7134_BOARD_ENCORE_ENLTV_FM53
:
7456 case SAA7134_BOARD_ENCORE_ENLTV_FM3
:
7457 case SAA7134_BOARD_10MOONSTVMASTER3
:
7458 case SAA7134_BOARD_BEHOLD_401
:
7459 case SAA7134_BOARD_BEHOLD_403
:
7460 case SAA7134_BOARD_BEHOLD_403FM
:
7461 case SAA7134_BOARD_BEHOLD_405
:
7462 case SAA7134_BOARD_BEHOLD_405FM
:
7463 case SAA7134_BOARD_BEHOLD_407
:
7464 case SAA7134_BOARD_BEHOLD_407FM
:
7465 case SAA7134_BOARD_BEHOLD_409
:
7466 case SAA7134_BOARD_BEHOLD_505FM
:
7467 case SAA7134_BOARD_BEHOLD_505RDS_MK5
:
7468 case SAA7134_BOARD_BEHOLD_505RDS_MK3
:
7469 case SAA7134_BOARD_BEHOLD_507_9FM
:
7470 case SAA7134_BOARD_BEHOLD_507RDS_MK3
:
7471 case SAA7134_BOARD_BEHOLD_507RDS_MK5
:
7472 case SAA7134_BOARD_GENIUS_TVGO_A11MCE
:
7473 case SAA7134_BOARD_REAL_ANGEL_220
:
7474 case SAA7134_BOARD_KWORLD_PLUS_TV_ANALOG
:
7475 case SAA7134_BOARD_AVERMEDIA_GO_007_FM_PLUS
:
7476 case SAA7134_BOARD_ROVERMEDIA_LINK_PRO_FM
:
7477 case SAA7134_BOARD_LEADTEK_WINFAST_DTV1000S
:
7478 dev
->has_remote
= SAA7134_REMOTE_GPIO
;
7480 case SAA7134_BOARD_FLYDVBS_LR300
:
7481 saa_writeb(SAA7134_GPIO_GPMODE3
, 0x80);
7482 saa_writeb(SAA7134_GPIO_GPSTATUS2
, 0x40);
7483 dev
->has_remote
= SAA7134_REMOTE_GPIO
;
7485 case SAA7134_BOARD_MD5044
:
7486 printk("%s: seems there are two different versions of the MD5044\n"
7487 "%s: (with the same ID) out there. If sound doesn't work for\n"
7488 "%s: you try the audio_clock_override=0x200000 insmod option.\n",
7489 dev
->name
,dev
->name
,dev
->name
);
7491 case SAA7134_BOARD_CINERGY400_CARDBUS
:
7492 /* power-up tuner chip */
7493 saa_andorl(SAA7134_GPIO_GPMODE0
>> 2, 0x00040000, 0x00040000);
7494 saa_andorl(SAA7134_GPIO_GPSTATUS0
>> 2, 0x00040000, 0x00000000);
7496 case SAA7134_BOARD_PINNACLE_300I_DVBT_PAL
:
7497 /* this turns the remote control chip off to work around a bug in it */
7498 saa_writeb(SAA7134_GPIO_GPMODE1
, 0x80);
7499 saa_writeb(SAA7134_GPIO_GPSTATUS1
, 0x80);
7501 case SAA7134_BOARD_MONSTERTV_MOBILE
:
7502 /* power-up tuner chip */
7503 saa_andorl(SAA7134_GPIO_GPMODE0
>> 2, 0x00040000, 0x00040000);
7504 saa_andorl(SAA7134_GPIO_GPSTATUS0
>> 2, 0x00040000, 0x00000004);
7506 case SAA7134_BOARD_FLYDVBT_DUO_CARDBUS
:
7507 /* turn the fan on */
7508 saa_writeb(SAA7134_GPIO_GPMODE3
, 0x08);
7509 saa_writeb(SAA7134_GPIO_GPSTATUS3
, 0x06);
7511 case SAA7134_BOARD_ADS_DUO_CARDBUS_PTV331
:
7512 case SAA7134_BOARD_FLYDVBT_HYBRID_CARDBUS
:
7513 saa_andorl(SAA7134_GPIO_GPMODE0
>> 2, 0x08000000, 0x08000000);
7514 saa_andorl(SAA7134_GPIO_GPSTATUS0
>> 2, 0x08000000, 0x00000000);
7516 case SAA7134_BOARD_AVERMEDIA_CARDBUS
:
7517 case SAA7134_BOARD_AVERMEDIA_M115
:
7518 /* power-down tuner chip */
7519 saa_andorl(SAA7134_GPIO_GPMODE0
>> 2, 0xffffffff, 0);
7520 saa_andorl(SAA7134_GPIO_GPSTATUS0
>> 2, 0xffffffff, 0);
7522 /* power-up tuner chip */
7523 saa_andorl(SAA7134_GPIO_GPMODE0
>> 2, 0xffffffff, 0xffffffff);
7524 saa_andorl(SAA7134_GPIO_GPSTATUS0
>> 2, 0xffffffff, 0xffffffff);
7527 case SAA7134_BOARD_AVERMEDIA_CARDBUS_501
:
7528 /* power-down tuner chip */
7529 saa_andorl(SAA7134_GPIO_GPMODE0
>> 2, 0x08400000, 0x08400000);
7530 saa_andorl(SAA7134_GPIO_GPSTATUS0
>> 2, 0x08400000, 0);
7532 saa_andorl(SAA7134_GPIO_GPMODE0
>> 2, 0x08400000, 0x08400000);
7533 saa_andorl(SAA7134_GPIO_GPSTATUS0
>> 2, 0x08400000, 0x08400000);
7535 dev
->has_remote
= SAA7134_REMOTE_I2C
;
7537 case SAA7134_BOARD_AVERMEDIA_CARDBUS_506
:
7538 saa7134_set_gpio(dev
, 23, 0);
7540 saa7134_set_gpio(dev
, 23, 1);
7541 dev
->has_remote
= SAA7134_REMOTE_I2C
;
7543 case SAA7134_BOARD_AVERMEDIA_M103
:
7544 saa7134_set_gpio(dev
, 23, 0);
7546 saa7134_set_gpio(dev
, 23, 1);
7548 case SAA7134_BOARD_AVERMEDIA_A16D
:
7549 saa7134_set_gpio(dev
, 21, 0);
7551 saa7134_set_gpio(dev
, 21, 1);
7553 dev
->has_remote
= SAA7134_REMOTE_GPIO
;
7555 case SAA7134_BOARD_BEHOLD_COLUMBUS_TVFM
:
7556 /* power-down tuner chip */
7557 saa_andorl(SAA7134_GPIO_GPMODE0
>> 2, 0x000A8004, 0x000A8004);
7558 saa_andorl(SAA7134_GPIO_GPSTATUS0
>> 2, 0x000A8004, 0);
7560 /* power-up tuner chip */
7561 saa_andorl(SAA7134_GPIO_GPMODE0
>> 2, 0x000A8004, 0x000A8004);
7562 saa_andorl(SAA7134_GPIO_GPSTATUS0
>> 2, 0x000A8004, 0x000A8004);
7564 /* remote via GPIO */
7565 dev
->has_remote
= SAA7134_REMOTE_GPIO
;
7567 case SAA7134_BOARD_RTD_VFG7350
:
7570 * Make sure Production Test Register at offset 0x1D1 is cleared
7571 * to take chip out of test mode. Clearing bit 4 (TST_EN_AOUT)
7572 * prevents pin 105 from remaining low; keeping pin 105 low
7573 * continually resets the SAA6752 chip.
7576 saa_writeb (SAA7134_PRODUCTION_TEST_MODE
, 0x00);
7578 case SAA7134_BOARD_HAUPPAUGE_HVR1150
:
7579 case SAA7134_BOARD_HAUPPAUGE_HVR1120
:
7580 dev
->has_remote
= SAA7134_REMOTE_GPIO
;
7581 /* GPIO 26 high for digital, low for analog */
7582 saa7134_set_gpio(dev
, 26, 0);
7585 saa7134_set_gpio(dev
, 22, 0);
7587 saa7134_set_gpio(dev
, 22, 1);
7590 case SAA7134_BOARD_PINNACLE_PCTV_110i
:
7591 case SAA7134_BOARD_PINNACLE_PCTV_310i
:
7592 case SAA7134_BOARD_UPMOST_PURPLE_TV
:
7593 case SAA7134_BOARD_MSI_TVATANYWHERE_PLUS
:
7594 case SAA7134_BOARD_HAUPPAUGE_HVR1110
:
7595 case SAA7134_BOARD_BEHOLD_607FM_MK3
:
7596 case SAA7134_BOARD_BEHOLD_607FM_MK5
:
7597 case SAA7134_BOARD_BEHOLD_609FM_MK3
:
7598 case SAA7134_BOARD_BEHOLD_609FM_MK5
:
7599 case SAA7134_BOARD_BEHOLD_607RDS_MK3
:
7600 case SAA7134_BOARD_BEHOLD_607RDS_MK5
:
7601 case SAA7134_BOARD_BEHOLD_609RDS_MK3
:
7602 case SAA7134_BOARD_BEHOLD_609RDS_MK5
:
7603 case SAA7134_BOARD_BEHOLD_M6
:
7604 case SAA7134_BOARD_BEHOLD_M63
:
7605 case SAA7134_BOARD_BEHOLD_M6_EXTRA
:
7606 case SAA7134_BOARD_BEHOLD_H6
:
7607 case SAA7134_BOARD_BEHOLD_X7
:
7608 case SAA7134_BOARD_BEHOLD_H7
:
7609 case SAA7134_BOARD_BEHOLD_A7
:
7610 case SAA7134_BOARD_KWORLD_PC150U
:
7611 dev
->has_remote
= SAA7134_REMOTE_I2C
;
7613 case SAA7134_BOARD_AVERMEDIA_A169_B
:
7614 printk("%s: %s: dual saa713x broadcast decoders\n"
7615 "%s: Sorry, none of the inputs to this chip are supported yet.\n"
7616 "%s: Dual decoder functionality is disabled for now, use the other chip.\n",
7617 dev
->name
,card(dev
).name
,dev
->name
,dev
->name
);
7619 case SAA7134_BOARD_AVERMEDIA_M102
:
7621 dev
->has_remote
= SAA7134_REMOTE_GPIO
;
7622 saa_andorl(SAA7134_GPIO_GPMODE0
>> 2, 0x8c040007, 0x8c040007);
7623 saa_andorl(SAA7134_GPIO_GPSTATUS0
>> 2, 0x0c0007cd, 0x0c0007cd);
7625 case SAA7134_BOARD_AVERMEDIA_A700_HYBRID
:
7626 case SAA7134_BOARD_AVERMEDIA_A700_PRO
:
7627 /* write windows gpio values */
7628 saa_andorl(SAA7134_GPIO_GPMODE0
>> 2, 0x80040100, 0x80040100);
7629 saa_andorl(SAA7134_GPIO_GPSTATUS0
>> 2, 0x80040100, 0x00040100);
7631 case SAA7134_BOARD_AVERMEDIA_A706
:
7632 /* radio antenna select: tristate both as in Windows driver */
7633 saa7134_set_gpio(dev
, 12, 3); /* TV antenna */
7634 saa7134_set_gpio(dev
, 13, 3); /* FM antenna */
7635 dev
->has_remote
= SAA7134_REMOTE_I2C
;
7637 * Disable CE5039 DVB-S tuner now (SLEEP pin high) to prevent
7638 * it from interfering with analog tuner detection
7640 saa7134_set_gpio(dev
, 23, 1);
7642 case SAA7134_BOARD_VIDEOMATE_S350
:
7643 dev
->has_remote
= SAA7134_REMOTE_GPIO
;
7644 saa_andorl(SAA7134_GPIO_GPMODE0
>> 2, 0x0000C000, 0x0000C000);
7645 saa_andorl(SAA7134_GPIO_GPSTATUS0
>> 2, 0x0000C000, 0x0000C000);
7647 case SAA7134_BOARD_AVERMEDIA_M733A
:
7648 saa7134_set_gpio(dev
, 1, 1);
7650 saa7134_set_gpio(dev
, 1, 0);
7652 saa7134_set_gpio(dev
, 1, 1);
7653 dev
->has_remote
= SAA7134_REMOTE_GPIO
;
7655 case SAA7134_BOARD_MAGICPRO_PROHDTV_PRO2
:
7656 /* enable LGS-8G75 */
7657 saa_andorl(SAA7134_GPIO_GPMODE0
>> 2, 0x0e050000, 0x0c050000);
7658 saa_andorl(SAA7134_GPIO_GPSTATUS0
>> 2, 0x0e050000, 0x0c050000);
7660 case SAA7134_BOARD_VIDEOMATE_T750
:
7661 /* enable the analog tuner */
7662 saa_andorl(SAA7134_GPIO_GPMODE0
>> 2, 0x00008000, 0x00008000);
7663 saa_andorl(SAA7134_GPIO_GPSTATUS0
>> 2, 0x00008000, 0x00008000);
7669 static void saa7134_tuner_setup(struct saa7134_dev
*dev
)
7671 struct tuner_setup tun_setup
;
7672 unsigned int mode_mask
= T_RADIO
| T_ANALOG_TV
;
7674 memset(&tun_setup
, 0, sizeof(tun_setup
));
7675 tun_setup
.tuner_callback
= saa7134_tuner_callback
;
7677 if (saa7134_boards
[dev
->board
].radio_type
!= UNSET
) {
7678 tun_setup
.type
= saa7134_boards
[dev
->board
].radio_type
;
7679 tun_setup
.addr
= saa7134_boards
[dev
->board
].radio_addr
;
7681 tun_setup
.mode_mask
= T_RADIO
;
7683 saa_call_all(dev
, tuner
, s_type_addr
, &tun_setup
);
7684 mode_mask
&= ~T_RADIO
;
7687 if ((dev
->tuner_type
!= TUNER_ABSENT
) && (dev
->tuner_type
!= UNSET
)) {
7688 tun_setup
.type
= dev
->tuner_type
;
7689 tun_setup
.addr
= dev
->tuner_addr
;
7690 tun_setup
.config
= &saa7134_boards
[dev
->board
].tda829x_conf
;
7691 tun_setup
.tuner_callback
= saa7134_tuner_callback
;
7693 tun_setup
.mode_mask
= mode_mask
;
7695 saa_call_all(dev
, tuner
, s_type_addr
, &tun_setup
);
7698 if (dev
->tda9887_conf
) {
7699 struct v4l2_priv_tun_config tda9887_cfg
;
7701 tda9887_cfg
.tuner
= TUNER_TDA9887
;
7702 tda9887_cfg
.priv
= &dev
->tda9887_conf
;
7704 saa_call_all(dev
, tuner
, s_config
, &tda9887_cfg
);
7707 if (dev
->tuner_type
== TUNER_XC2028
) {
7708 struct v4l2_priv_tun_config xc2028_cfg
;
7709 struct xc2028_ctrl ctl
;
7711 memset(&xc2028_cfg
, 0, sizeof(xc2028_cfg
));
7712 memset(&ctl
, 0, sizeof(ctl
));
7714 ctl
.fname
= XC2028_DEFAULT_FIRMWARE
;
7717 switch (dev
->board
) {
7718 case SAA7134_BOARD_AVERMEDIA_A16D
:
7719 case SAA7134_BOARD_AVERMEDIA_CARDBUS_506
:
7720 case SAA7134_BOARD_AVERMEDIA_M103
:
7721 case SAA7134_BOARD_AVERMEDIA_A700_HYBRID
:
7722 ctl
.demod
= XC3028_FE_ZARLINK456
;
7725 ctl
.demod
= XC3028_FE_OREN538
;
7729 xc2028_cfg
.tuner
= TUNER_XC2028
;
7730 xc2028_cfg
.priv
= &ctl
;
7732 saa_call_all(dev
, tuner
, s_config
, &xc2028_cfg
);
7736 /* stuff which needs working i2c */
7737 int saa7134_board_init2(struct saa7134_dev
*dev
)
7742 /* Put here the code that enables the chips that are needed
7743 for analog mode and doesn't depend on the tuner attachment.
7744 It is also a good idea to get tuner type from eeprom, etc before
7745 initializing tuner, since we can avoid loading tuner driver
7746 on devices that has TUNER_ABSENT
7748 switch (dev
->board
) {
7749 case SAA7134_BOARD_BMK_MPEX_NOTUNER
:
7750 case SAA7134_BOARD_BMK_MPEX_TUNER
:
7751 /* Checks if the device has a tuner at 0x60 addr
7752 If the device doesn't have a tuner, TUNER_ABSENT
7753 will be used at tuner_type, avoiding loading tuner
7756 dev
->i2c_client
.addr
= 0x60;
7757 board
= (i2c_master_recv(&dev
->i2c_client
, &buf
, 0) < 0)
7758 ? SAA7134_BOARD_BMK_MPEX_NOTUNER
7759 : SAA7134_BOARD_BMK_MPEX_TUNER
;
7760 if (board
== dev
->board
)
7763 printk("%s: board type fixup: %s\n", dev
->name
,
7764 saa7134_boards
[dev
->board
].name
);
7765 dev
->tuner_type
= saa7134_boards
[dev
->board
].tuner_type
;
7768 case SAA7134_BOARD_MD7134
:
7773 struct i2c_msg msg
[] = {{.addr
=0x50, .flags
=0, .buf
=&subaddr
, .len
= 1},
7774 {.addr
=0x50, .flags
=I2C_M_RD
, .buf
=data
, .len
= 3}};
7779 /* Retrieve device data from eeprom, checking for the
7782 ret
= i2c_transfer(&dev
->i2c_adap
, msg
, 2);
7784 printk(KERN_ERR
"EEPROM read failure\n");
7785 } else if ((data
[0] != 0) && (data
[0] != 0xff)) {
7786 /* old config structure */
7787 subaddr
= data
[0] + 2;
7789 i2c_transfer(&dev
->i2c_adap
, msg
, 2);
7790 tuner_t
= (data
[0] << 8) + data
[1];
7793 dev
->tuner_type
= TUNER_PHILIPS_PAL
;
7796 dev
->tuner_type
= TUNER_PHILIPS_FM1216ME_MK3
;
7799 printk(KERN_ERR
"%s Can't determine tuner type %x from EEPROM\n", dev
->name
, tuner_t
);
7801 } else if ((data
[1] != 0) && (data
[1] != 0xff)) {
7802 /* new config structure */
7803 subaddr
= data
[1] + 1;
7805 i2c_transfer(&dev
->i2c_adap
, msg
, 2);
7806 subaddr
= data
[0] + 1;
7808 i2c_transfer(&dev
->i2c_adap
, msg
, 2);
7809 tuner_t
= (data
[1] << 8) + data
[0];
7812 dev
->tuner_type
= TUNER_PHILIPS_FM1216ME_MK3
;
7815 dev
->tuner_type
= TUNER_PHILIPS_FMD1216ME_MK3
;
7816 printk(KERN_INFO
"%s Board has DVB-T\n", dev
->name
);
7819 printk(KERN_ERR
"%s Can't determine tuner type %x from EEPROM\n", dev
->name
, tuner_t
);
7822 printk(KERN_ERR
"%s unexpected config structure\n", dev
->name
);
7825 printk(KERN_INFO
"%s Tuner type is %d\n", dev
->name
, dev
->tuner_type
);
7828 case SAA7134_BOARD_PHILIPS_EUROPA
:
7829 if (dev
->autodetected
&& (dev
->eedata
[0x41] == 0x1c)) {
7830 /* Reconfigure board as Snake reference design */
7831 dev
->board
= SAA7134_BOARD_PHILIPS_SNAKE
;
7832 dev
->tuner_type
= saa7134_boards
[dev
->board
].tuner_type
;
7833 printk(KERN_INFO
"%s: Reconfigured board as %s\n",
7834 dev
->name
, saa7134_boards
[dev
->board
].name
);
7837 /* break intentionally omitted */
7838 case SAA7134_BOARD_VIDEOMATE_DVBT_300
:
7839 case SAA7134_BOARD_ASUS_EUROPA2_HYBRID
:
7840 case SAA7134_BOARD_ASUS_EUROPA_HYBRID
:
7841 case SAA7134_BOARD_TECHNOTREND_BUDGET_T3000
:
7844 /* The Philips EUROPA based hybrid boards have the tuner
7845 connected through the channel decoder. We have to make it
7846 transparent to find it
7848 u8 data
[] = { 0x07, 0x02};
7849 struct i2c_msg msg
= {.addr
=0x08, .flags
=0, .buf
=data
, .len
= sizeof(data
)};
7850 i2c_transfer(&dev
->i2c_adap
, &msg
, 1);
7854 case SAA7134_BOARD_PHILIPS_TIGER
:
7855 case SAA7134_BOARD_PHILIPS_TIGER_S
:
7857 u8 data
[] = { 0x3c, 0x33, 0x60};
7858 struct i2c_msg msg
= {.addr
=0x08, .flags
=0, .buf
=data
, .len
= sizeof(data
)};
7859 if (dev
->autodetected
&& (dev
->eedata
[0x49] == 0x50)) {
7860 dev
->board
= SAA7134_BOARD_PHILIPS_TIGER_S
;
7861 printk(KERN_INFO
"%s: Reconfigured board as %s\n",
7862 dev
->name
, saa7134_boards
[dev
->board
].name
);
7864 if (dev
->board
== SAA7134_BOARD_PHILIPS_TIGER_S
) {
7865 dev
->tuner_type
= TUNER_PHILIPS_TDA8290
;
7868 i2c_transfer(&dev
->i2c_adap
, &msg
, 1);
7871 i2c_transfer(&dev
->i2c_adap
, &msg
, 1);
7874 case SAA7134_BOARD_ASUSTeK_TVFM7135
:
7875 /* The card below is detected as card=53, but is different */
7876 if (dev
->autodetected
&& (dev
->eedata
[0x27] == 0x03)) {
7877 dev
->board
= SAA7134_BOARD_ASUSTeK_P7131_ANALOG
;
7878 printk(KERN_INFO
"%s: P7131 analog only, using "
7880 dev
->name
, saa7134_boards
[dev
->board
].name
);
7882 /* IR init has already happened for other cards, so
7883 * we have to catch up. */
7884 dev
->has_remote
= SAA7134_REMOTE_GPIO
;
7885 saa7134_input_init1(dev
);
7888 case SAA7134_BOARD_HAUPPAUGE_HVR1150
:
7889 case SAA7134_BOARD_HAUPPAUGE_HVR1120
:
7890 hauppauge_eeprom(dev
, dev
->eedata
+0x80);
7892 case SAA7134_BOARD_HAUPPAUGE_HVR1110
:
7893 hauppauge_eeprom(dev
, dev
->eedata
+0x80);
7894 /* break intentionally omitted */
7895 case SAA7134_BOARD_PINNACLE_PCTV_310i
:
7896 case SAA7134_BOARD_KWORLD_DVBT_210
:
7897 case SAA7134_BOARD_TEVION_DVBT_220RF
:
7898 case SAA7134_BOARD_ASUSTeK_TIGER
:
7899 case SAA7134_BOARD_ASUSTeK_P7131_DUAL
:
7900 case SAA7134_BOARD_ASUSTeK_P7131_HYBRID_LNA
:
7901 case SAA7134_BOARD_MEDION_MD8800_QUADRO
:
7902 case SAA7134_BOARD_AVERMEDIA_SUPER_007
:
7903 case SAA7134_BOARD_TWINHAN_DTV_DVB_3056
:
7904 case SAA7134_BOARD_CREATIX_CTX953
:
7906 /* this is a hybrid board, initialize to analog mode
7907 * and configure firmware eeprom address
7909 u8 data
[] = { 0x3c, 0x33, 0x60};
7910 struct i2c_msg msg
= {.addr
=0x08, .flags
=0, .buf
=data
, .len
= sizeof(data
)};
7911 i2c_transfer(&dev
->i2c_adap
, &msg
, 1);
7914 case SAA7134_BOARD_ASUSTeK_TIGER_3IN1
:
7916 u8 data
[] = { 0x3c, 0x33, 0x60};
7917 struct i2c_msg msg
= {.addr
= 0x0b, .flags
= 0, .buf
= data
,
7918 .len
= sizeof(data
)};
7919 i2c_transfer(&dev
->i2c_adap
, &msg
, 1);
7922 case SAA7134_BOARD_ASUSTeK_PS3_100
:
7924 u8 data
[] = { 0x3c, 0x33, 0x60};
7925 struct i2c_msg msg
= {.addr
= 0x0b, .flags
= 0, .buf
= data
,
7926 .len
= sizeof(data
)};
7927 i2c_transfer(&dev
->i2c_adap
, &msg
, 1);
7930 case SAA7134_BOARD_FLYDVB_TRIO
:
7934 u8 data
[] = { 0x3c, 0x33, 0x62};
7935 struct i2c_msg msg
= {.addr
=0x09, .flags
=0, .buf
=data
, .len
= sizeof(data
)};
7936 i2c_transfer(&dev
->i2c_adap
, &msg
, 1);
7939 * send weak up message to pic16C505 chip
7940 * @ LifeView FlyDVB Trio
7945 if (1 != i2c_transfer(&dev
->i2c_adap
, &msg
, 1)) {
7946 printk(KERN_WARNING
"%s: send wake up byte to pic16C505"
7947 "(IR chip) failed\n", dev
->name
);
7949 msg
.flags
= I2C_M_RD
;
7950 rc
= i2c_transfer(&dev
->i2c_adap
, &msg
, 1);
7951 printk(KERN_INFO
"%s: probe IR chip @ i2c 0x%02x: %s\n",
7952 dev
->name
, msg
.addr
,
7953 (1 == rc
) ? "yes" : "no");
7955 dev
->has_remote
= SAA7134_REMOTE_I2C
;
7959 case SAA7134_BOARD_ADS_DUO_CARDBUS_PTV331
:
7960 case SAA7134_BOARD_FLYDVBT_HYBRID_CARDBUS
:
7962 /* initialize analog mode */
7963 u8 data
[] = { 0x3c, 0x33, 0x6a};
7964 struct i2c_msg msg
= {.addr
=0x08, .flags
=0, .buf
=data
, .len
= sizeof(data
)};
7965 i2c_transfer(&dev
->i2c_adap
, &msg
, 1);
7968 case SAA7134_BOARD_CINERGY_HT_PCMCIA
:
7969 case SAA7134_BOARD_CINERGY_HT_PCI
:
7971 /* initialize analog mode */
7972 u8 data
[] = { 0x3c, 0x33, 0x68};
7973 struct i2c_msg msg
= {.addr
=0x08, .flags
=0, .buf
=data
, .len
= sizeof(data
)};
7974 i2c_transfer(&dev
->i2c_adap
, &msg
, 1);
7977 case SAA7134_BOARD_VIDEOMATE_DVBT_200
:
7978 case SAA7134_BOARD_VIDEOMATE_DVBT_200A
:
7979 /* The T200 and the T200A share the same pci id. Consequently,
7980 * we are going to query eeprom to try to find out which one we
7981 * are actually looking at. */
7983 /* Don't do this if the board was specifically selected with an
7984 * insmod option or if we have the default configuration T200*/
7985 if (!dev
->autodetected
|| (dev
->eedata
[0x41] == 0xd0))
7987 if (dev
->eedata
[0x41] == 0x02) {
7988 /* Reconfigure board as T200A */
7989 dev
->board
= SAA7134_BOARD_VIDEOMATE_DVBT_200A
;
7990 dev
->tuner_type
= saa7134_boards
[dev
->board
].tuner_type
;
7991 dev
->tda9887_conf
= saa7134_boards
[dev
->board
].tda9887_conf
;
7992 printk(KERN_INFO
"%s: Reconfigured board as %s\n",
7993 dev
->name
, saa7134_boards
[dev
->board
].name
);
7995 printk(KERN_WARNING
"%s: Unexpected tuner type info: %x in eeprom\n",
7996 dev
->name
, dev
->eedata
[0x41]);
8000 case SAA7134_BOARD_ADS_INSTANT_HDTV_PCI
:
8001 case SAA7134_BOARD_KWORLD_ATSC110
:
8003 struct i2c_msg msg
= { .addr
= 0x0a, .flags
= 0 };
8005 static u8 buffer
[][2] = {
8013 for (i
= 0; i
< ARRAY_SIZE(buffer
); i
++) {
8014 msg
.buf
= &buffer
[i
][0];
8015 msg
.len
= ARRAY_SIZE(buffer
[0]);
8016 if (i2c_transfer(&dev
->i2c_adap
, &msg
, 1) != 1)
8018 "%s: Unable to enable tuner(%i).\n",
8023 case SAA7134_BOARD_BEHOLD_H6
:
8025 u8 data
[] = { 0x09, 0x9f, 0x86, 0x11};
8026 struct i2c_msg msg
= {.addr
= 0x61, .flags
= 0, .buf
= data
,
8027 .len
= sizeof(data
)};
8029 /* The tuner TUNER_PHILIPS_FMD1216MEX_MK3 after hardware */
8030 /* start has disabled IF and enabled DVB-T. When saa7134 */
8031 /* scan I2C devices it not detect IF tda9887 and can`t */
8032 /* watch TV without software reboot. For solve this problem */
8033 /* switch the tuner to analog TV mode manually. */
8034 if (i2c_transfer(&dev
->i2c_adap
, &msg
, 1) != 1)
8036 "%s: Unable to enable IF of the tuner.\n",
8040 case SAA7134_BOARD_KWORLD_PCI_SBTVD_FULLSEG
:
8041 saa_writel(SAA7134_GPIO_GPMODE0
>> 2, 0x4000);
8042 saa_writel(SAA7134_GPIO_GPSTATUS0
>> 2, 0x4000);
8044 saa7134_set_gpio(dev
, 27, 0);
8048 /* initialize tuner */
8049 if (TUNER_ABSENT
!= dev
->tuner_type
) {
8050 int has_demod
= (dev
->tda9887_conf
& TDA9887_PRESENT
);
8052 /* Note: radio tuner address is always filled in,
8053 so we do not need to probe for a radio tuner device. */
8054 if (dev
->radio_type
!= UNSET
)
8055 v4l2_i2c_new_subdev(&dev
->v4l2_dev
,
8056 &dev
->i2c_adap
, "tuner",
8057 dev
->radio_addr
, NULL
);
8059 v4l2_i2c_new_subdev(&dev
->v4l2_dev
,
8060 &dev
->i2c_adap
, "tuner",
8061 0, v4l2_i2c_tuner_addrs(ADDRS_DEMOD
));
8062 if (dev
->tuner_addr
== ADDR_UNSET
) {
8063 enum v4l2_i2c_tuner_type type
=
8064 has_demod
? ADDRS_TV_WITH_DEMOD
: ADDRS_TV
;
8066 v4l2_i2c_new_subdev(&dev
->v4l2_dev
,
8067 &dev
->i2c_adap
, "tuner",
8068 0, v4l2_i2c_tuner_addrs(type
));
8070 v4l2_i2c_new_subdev(&dev
->v4l2_dev
,
8071 &dev
->i2c_adap
, "tuner",
8072 dev
->tuner_addr
, NULL
);
8076 saa7134_tuner_setup(dev
);
8078 switch (dev
->board
) {
8079 case SAA7134_BOARD_BEHOLD_COLUMBUS_TVFM
:
8080 case SAA7134_BOARD_AVERMEDIA_CARDBUS_501
:
8082 struct v4l2_priv_tun_config tea5767_cfg
;
8083 struct tea5767_ctrl ctl
;
8085 dev
->i2c_client
.addr
= 0xC0;
8086 /* set TEA5767(analog FM) defines */
8087 memset(&ctl
, 0, sizeof(ctl
));
8088 ctl
.xtal_freq
= TEA5767_HIGH_LO_13MHz
;
8089 tea5767_cfg
.tuner
= TUNER_TEA5767
;
8090 tea5767_cfg
.priv
= &ctl
;
8091 saa_call_all(dev
, tuner
, s_config
, &tea5767_cfg
);