📄 bttv-cards.c
字号:
.tuner_type = -1,},{ .name = "Jetway TV/Capture JW-TV878-FBK, Kworld KW-TV878RF", .video_inputs = 4, .audio_inputs = 3, .tuner = 0, .svhs = 2, .gpiomask = 7, .muxsel = { 2, 3, 1, 1 }, // Tuner, SVid, SVHS, SVid to SVHS connector .audiomux = { 0 ,0 ,4, 4,4,4},// Yes, this tuner uses the same audio output for TV and FM radio! // This card lacks external Audio In, so we mute it on Ext. & Int. // The PCB can take a sbx1637/sbx1673, wiring unknown. // This card lacks PCI subsystem ID, sigh. // audiomux=1: lower volume, 2+3: mute // btwincap uses 0x80000/0x80003 .needs_tvaudio = 0, .no_msp34xx = 1, .pll = PLL_28, .tuner_type = 5, // Samsung TCPA9095PC27A (BG+DK), philips compatible, w/FM, stereo and // radio signal strength indicators work fine. .has_radio = 1, /* GPIO Info: GPIO0,1: HEF4052 A0,A1 GPIO2: HEF4052 nENABLE GPIO3-7: n.c. GPIO8-13: IRDC357 data0-5 (data6 n.c. ?) [chip not present on my card] GPIO14,15: ?? GPIO16-21: n.c. GPIO22,23: ?? ?? : mtu8b56ep microcontroller for IR (GPIO wiring unknown)*/},{ /* Arthur Tetzlaff-Deas, DSP Design Ltd <software@dspdesign.com> */ .name = "DSP Design TCVIDEO", .video_inputs = 4, .svhs = -1, .muxsel = { 2, 3, 1, 0}, .pll = PLL_28, .tuner_type = -1,},{ /* ---- card 0x50 ---------------------------------- */ .name = "Hauppauge WinTV PVR", .video_inputs = 4, .audio_inputs = 1, .tuner = 0, .svhs = 2, .muxsel = { 2, 0, 1, 1}, .needs_tvaudio = 1, .pll = PLL_28, .tuner_type = -1, .gpiomask = 7, .audiomux = {7},},{ .name = "IODATA GV-BCTV5/PCI", .video_inputs = 3, .audio_inputs = 1, .tuner = 0, .svhs = 2, .gpiomask = 0x0f0f80, .muxsel = {2, 3, 1, 0}, .audiomux = {0x030000, 0x010000, 0x030000, 0, 0x020000, 0}, .no_msp34xx = 1, .pll = PLL_28, .tuner_type = TUNER_PHILIPS_NTSC_M, .audio_hook = gvbctv3pci_audio, .has_radio = 1,},{ .name = "Osprey 100/150 (878)", /* 0x1(2|3)-45C6-C1 */ .video_inputs = 4, /* id-inputs-clock */ .audio_inputs = 0, .tuner = -1, .svhs = 3, .muxsel = { 3, 2, 0, 1 }, .pll = PLL_28, .tuner_type = -1, .no_msp34xx = 1, .no_tda9875 = 1, .no_tda7432 = 1,},{ .name = "Osprey 100/150 (848)", /* 0x04-54C0-C1 & older boards */ .video_inputs = 3, .audio_inputs = 0, .tuner = -1, .svhs = 2, .muxsel = { 2, 3, 1 }, .pll = PLL_28, .tuner_type = -1, .no_msp34xx = 1, .no_tda9875 = 1, .no_tda7432 = 1,},{ /* ---- card 0x54 ---------------------------------- */ .name = "Osprey 101 (848)", /* 0x05-40C0-C1 */ .video_inputs = 2, .audio_inputs = 0, .tuner = -1, .svhs = 1, .muxsel = { 3, 1 }, .pll = PLL_28, .tuner_type = -1, .no_msp34xx = 1, .no_tda9875 = 1, .no_tda7432 = 1,},{ .name = "Osprey 101/151", /* 0x1(4|5)-0004-C4 */ .video_inputs = 1, .audio_inputs = 0, .tuner = -1, .svhs = -1, .muxsel = { 0 }, .pll = PLL_28, .tuner_type = -1, .no_msp34xx = 1, .no_tda9875 = 1, .no_tda7432 = 1,},{ .name = "Osprey 101/151 w/ svid", /* 0x(16|17|20)-00C4-C1 */ .video_inputs = 2, .audio_inputs = 0, .tuner = -1, .svhs = 1, .muxsel = { 0, 1 }, .pll = PLL_28, .tuner_type = -1, .no_msp34xx = 1, .no_tda9875 = 1, .no_tda7432 = 1,},{ .name = "Osprey 200/201/250/251", /* 0x1(8|9|E|F)-0004-C4 */ .video_inputs = 1, .audio_inputs = 1, .tuner = -1, .svhs = -1, .muxsel = { 0 }, .pll = PLL_28, .tuner_type = -1, .no_msp34xx = 1, .no_tda9875 = 1, .no_tda7432 = 1,},{ /* ---- card 0x58 ---------------------------------- */ .name = "Osprey 200/250", /* 0x1(A|B)-00C4-C1 */ .video_inputs = 2, .audio_inputs = 1, .tuner = -1, .svhs = 1, .muxsel = { 0, 1 }, .pll = PLL_28, .tuner_type = -1, .no_msp34xx = 1, .no_tda9875 = 1, .no_tda7432 = 1,},{ .name = "Osprey 210/220", /* 0x1(A|B)-04C0-C1 */ .video_inputs = 2, .audio_inputs = 1, .tuner = -1, .svhs = 1, .muxsel = { 2, 3 }, .pll = PLL_28, .tuner_type = -1, .no_msp34xx = 1, .no_tda9875 = 1, .no_tda7432 = 1,},{ .name = "Osprey 500", /* 500 */ .video_inputs = 2, .audio_inputs = 1, .tuner = -1, .svhs = 1, .muxsel = { 2, 3 }, .pll = PLL_28, .tuner_type = -1, .no_msp34xx = 1, .no_tda9875 = 1, .no_tda7432 = 1,},{ .name = "Osprey 540", /* 540 */ .video_inputs = 4, .audio_inputs = 1, .tuner = -1,#if 0 /* TODO ... */ .svhs = OSPREY540_SVID_ANALOG, .muxsel = { [OSPREY540_COMP_ANALOG] = 2, [OSPREY540_SVID_ANALOG] = 3, },#endif .pll = PLL_28, .tuner_type = -1, .no_msp34xx = 1, .no_tda9875 = 1, .no_tda7432 = 1,#if 0 /* TODO ... */ .muxsel_hook = osprey_540_muxsel, .picture_hook = osprey_540_set_picture,#endif},{ /* ---- card 0x5C ---------------------------------- */ .name = "Osprey 2000", /* 2000 */ .video_inputs = 2, .audio_inputs = 1, .tuner = -1, .svhs = 1, .muxsel = { 2, 3 }, .pll = PLL_28, .tuner_type = -1, .no_msp34xx = 1, .no_tda9875 = 1, .no_tda7432 = 1, /* must avoid, conflicts with the bt860 */},{ /* M G Berberich <berberic@forwiss.uni-passau.de> */ .name = "IDS Eagle", .video_inputs = 4, .audio_inputs = 0, .tuner = -1, .tuner_type = -1, .svhs = -1, .gpiomask = 0, .muxsel = { 0, 1, 2, 3 }, .muxsel_hook = eagle_muxsel, .no_msp34xx = 1, .no_tda9875 = 1, .pll = PLL_28,},{ .name = "Pinnacle PCTV Sat", .video_inputs = 2, .audio_inputs = 0, .svhs = 1, .tuner = -1, .tuner_type = -1, .no_msp34xx = 1, .no_tda9875 = 1, .no_tda7432 = 1, .gpiomask = 0x01, .audiomux = { 0, 0, 0, 0, 1 }, .muxsel = { 3, 0, 1, 2}, .needs_tvaudio = 0, .pll = PLL_28,},{ .name = "Formac ProTV II (bt878)", .video_inputs = 4, .audio_inputs = 1, .tuner = 0, .svhs = 3, .gpiomask = 2, // TV, Comp1, Composite over SVID con, SVID .muxsel = { 2, 3, 1, 1}, .audiomux = { 2, 2, 0, 0, 0 }, .pll = PLL_28, .has_radio = 1, .tuner_type = TUNER_PHILIPS_PAL, /* sound routing: GPIO=0x00,0x01,0x03: mute (?) 0x02: both TV and radio (tuner: FM1216/I) The card has onboard audio connectors labeled "cdrom" and "board", not soldered here, though unknown wiring. Card lacks: external audio in, pci subsystem id. */},{ /* ---- card 0x60 ---------------------------------- */ .name = "MachTV", .video_inputs = 3, .audio_inputs = 1, .tuner = 0, .svhs = -1, .gpiomask = 7, .muxsel = { 2, 3, 1, 1}, .audiomux = { 0, 1, 2, 3, 4}, .needs_tvaudio = 1, .tuner_type = 5, .pll = 1,},{ .name = "Euresys Picolo", .video_inputs = 3, .audio_inputs = 0, .tuner = -1, .svhs = 2, .gpiomask = 0, .no_msp34xx = 1, .no_tda9875 = 1, .no_tda7432 = 1, .muxsel = { 2, 0, 1}, .pll = PLL_28,},{ /* Luc Van Hoeylandt <luc@e-magic.be> */ .name = "ProVideo PV150", /* 0x4f */ .video_inputs = 2, .audio_inputs = 0, .tuner = -1, .svhs = -1, .gpiomask = 0, .muxsel = { 2, 3 }, .audiomux = { 0 }, .needs_tvaudio = 0, .no_msp34xx = 1, .pll = PLL_28, .tuner_type = -1,},{ /* Hiroshi Takekawa <sian@big.or.jp> */ /* This card lacks subsystem ID */ .name = "AD-TVK503", /* 0x63 */ .video_inputs = 4, .audio_inputs = 1, .tuner = 0, .svhs = 2, .gpiomask = 0x001e8007, .muxsel = { 2, 3, 1, 0 }, /* Tuner, Radio, external, internal, off, on */ .audiomux = { 0x08, 0x0f, 0x0a, 0x08, 0x0f, 0x08 }, .needs_tvaudio = 0, .no_msp34xx = 1, .pll = PLL_28, .tuner_type = 2, .audio_hook = adtvk503_audio,},{ /* ---- card 0x64 ---------------------------------- */ .name = "Hercules Smart TV Stereo", .video_inputs = 4, .audio_inputs = 1, .tuner = 0, .svhs = 2, .gpiomask = 0x00, .muxsel = { 2, 3, 1, 1 }, .needs_tvaudio = 1, .no_msp34xx = 1, .pll = PLL_28, .tuner_type = 5, /* Notes: - card lacks subsystem ID - stereo variant w/ daughter board with tda9874a @0xb0 - Audio Routing: always from tda9874 independent of GPIO (?) external line in: unknown - Other chips: em78p156elp @ 0x96 (probably IR remote control) hef4053 (instead 4052) for unknown function */},{ .name = "Pace TV & Radio Card", .video_inputs = 4, .audio_inputs = 1, .tuner = 0, .svhs = 2, .muxsel = { 2, 3, 1, 1}, // Tuner, CVid, SVid, CVid over SVid connector .gpiomask = 0, .no_tda9875 = 1, .no_tda7432 = 1, .tuner_type = 1, .has_radio = 1, .pll = PLL_28, /* Bt878, Bt832, FI1246 tuner; no pci subsystem id only internal line out: (4pin header) RGGL Radio must be decoded by msp3410d (not routed through)*/ // .digital_mode = DIGITAL_MODE_CAMERA, // todo!},{ /* Chris Willing <chris@vislab.usyd.edu.au> */ .name = "IVC-200", .video_inputs = 1, .audio_inputs = 0, .tuner = -1, .tuner_type = -1, .svhs = -1, .gpiomask = 0xdf, .muxsel = { 2 }, .pll = PLL_28,},{ .name = "Grand X-Guard / Trust 814PCI", .video_inputs = 16, .audio_inputs = 0, .tuner = -1, .svhs = -1, .tuner_type = 4, .gpiomask2 = 0xff, .muxsel = { 2,2,2,2, 3,3,3,3, 1,1,1,1, 0,0,0,0 }, .muxsel_hook = xguard_muxsel, .no_msp34xx = 1, .no_tda9875 = 1, .no_tda7432 = 1, .pll = PLL_28,},{ /* ---- card 0x68 ---------------------------------- */ .name = "Nebula Electronics DigiTV", .video_inputs = 0, .audio_inputs = 0, .svhs = -1, .muxsel = { 2, 3, 1, 0}, .needs_tvaudio = 0, .no_msp34xx = 1, .no_tda9875 = 1, .no_tda7432 = 1, .pll = PLL_28, .tuner_type = -1,},{ /* Jorge Boncompte - DTI2 <jorge@dti2.net> */ .name = "ProVideo PV143", .video_inputs = 4, .audio_inputs = 0, .tuner = -1, .svhs = -1, .gpiomask = 0, .muxsel = { 2, 3, 1, 0 }, .audiomux = { 0 }, .needs_tvaudio = 0, .no_msp34xx = 1, .pll = PLL_28, .tuner_type = -1,},{ /* M.Klahr@phytec.de */ .name = "PHYTEC VD-009-X1 MiniDIN (bt878)", .video_inputs = 4, .audio_inputs = 0, .tuner = -1, /* card has no tuner */ .svhs = 3, .gpiomask = 0x00, .muxsel = { 2, 3, 1, 0}, .audiomux = { 0, 0, 0, 0, 0, 0 }, /* card has no audio */ .needs_tvaudio = 1, .pll = PLL_28, .tuner_type = -1,},{ .name = "PHYTEC VD-009-X1 Combi (bt878)", .video_inputs = 4, .audio_inputs = 0, .tuner = -1, /* card has no tuner */ .svhs = 3, .gpiomask = 0x00, .muxsel = { 2, 3, 1, 1}, .audiomux = { 0, 0, 0, 0, 0, 0 }, /* card has no audio */ .needs_tvaudio = 1, .pll = PLL_28, .tuner_type = -1,},{ /* ---- card 0x6c ---------------------------------- */ .name = "PHYTEC VD-009 MiniDIN (bt878)", .video_inputs = 10, .audio_inputs = 0, .tuner = -1, /* card has no tuner */ .svhs = 9, .gpiomask = 0x00, .gpiomask2 = 0x03, /* gpiomask2 defines the bits used to switch audio via the upper nibble of muxsel. here: used for
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -