Lines Matching +full:dual +full:- +full:direction
1 // SPDX-License-Identifier: GPL-2.0-or-later
4 Copyright (C) 2003-2004 Kevin Thayer <nufan_wfk at yahoo.com>
5 Copyright (C) 2005-2007 Hans Verkuil <hverkuil@xs4all.nl>
9 #include "ivtv-driver.h"
10 #include "ivtv-cards.h"
11 #include "ivtv-i2c.h"
13 #include <media/drv-intf/msp3400.h>
17 #include <media/drv-intf/cx25840.h>
56 /* Please add new PCI IDs to: https://pci-ids.ucw.cz/
61 /* Hauppauge PVR-250 cards */
66 .name = "Hauppauge WinTV PVR-250",
90 /* ------------------------------------------------------------------------- */
92 /* Hauppauge PVR-350 cards */
97 .name = "S-Video + Composite",
103 .name = "S-Video",
119 .name = "Hauppauge WinTV PVR-350",
146 /* PVR-350 V1 boards have a different audio tuner input and use a
148 Note that the info below comes from a pre-production model so it may
152 .name = "Hauppauge WinTV PVR-350 (V1)",
178 /* ------------------------------------------------------------------------- */
180 /* Hauppauge PVR-150/PVR-500 cards */
184 .name = "Hauppauge WinTV PVR-150",
212 .gpio_init = { .direction = 0x1f01, .initial_value = 0x26f3 },
216 /* ------------------------------------------------------------------------- */
243 .gpio_init = { .direction = 0xe380, .initial_value = 0x8290 },
259 /* ------------------------------------------------------------------------- */
261 /* Yuan MPG600/Kuroutoshikou ITVC16-STVLP cards */
271 .name = "Yuan MPG600, Kuroutoshikou ITVC16-STVLP",
286 .gpio_init = { .direction = 0x3080, .initial_value = 0x0004 },
301 /* ------------------------------------------------------------------------- */
303 /* Yuan MPG160/Kuroutoshikou ITVC15-STVLP cards */
313 .name = "YUAN MPG160, Kuroutoshikou ITVC15-STVLP, I/O Data GV-M2TV/PCI",
328 .gpio_init = { .direction = 0x7080, .initial_value = 0x400c },
342 /* ------------------------------------------------------------------------- */
344 /* Yuan PG600/Diamond PVR-550 cards */
354 .name = "Yuan PG600, Diamond PVR-550",
378 /* ------------------------------------------------------------------------- */
380 /* Adaptec VideOh! AVC-2410 card */
389 .name = "Adaptec VideOh! AVC-2410",
414 { .std = V4L2_STD_ALL - V4L2_STD_NTSC_M_JP,
422 /* ------------------------------------------------------------------------- */
424 /* Adaptec VideOh! AVC-2010 card */
433 .name = "Adaptec VideOh! AVC-2010",
450 /* ------------------------------------------------------------------------- */
479 .gpio_init = { .direction = 0xe080, .initial_value = 0x8000 },
493 /* ------------------------------------------------------------------------- */
495 /* AOpen VA2000MAX-SNT6 card */
504 .name = "AOpen VA2000MAX-SNT6",
524 /* ------------------------------------------------------------------------- */
526 /* Yuan MPG600GR/Kuroutoshikou CX23416GYC-STVLP cards */
537 .name = "Yuan MPG600GR, Kuroutoshikou CX23416GYC-STVLP",
556 .gpio_init = { .direction = 0xf880, .initial_value = 0x8800 },
571 .name = "Yuan MPG600GR, Kuroutoshikou CX23416GYC-STVLP (no GR)",
588 .gpio_init = { .direction = 0xf880, .initial_value = 0x8800 },
602 .name = "Yuan MPG600GR, Kuroutoshikou CX23416GYC-STVLP (no GR/YCS)",
618 .gpio_init = { .direction = 0xf880, .initial_value = 0x8800 },
630 /* ------------------------------------------------------------------------- */
632 /* I/O Data GV-MVP/RX & GV-MVP/RX2W (dual tuner) cards */
643 .name = "I/O Data GV-MVP/RX, GV-MVP/RX2W (dual tuner)",
660 .gpio_init = { .direction = 0xc301, .initial_value = 0x0200 },
670 /* ------------------------------------------------------------------------- */
672 /* I/O Data GV-MVP/RX2E card */
681 .name = "I/O Data GV-MVP/RX2E",
697 .gpio_init = { .direction = 0xc301, .initial_value = 0x0200 },
707 /* ------------------------------------------------------------------------- */
733 .gpio_init = { .direction = 0xf000, .initial_value = 0xA000 },
742 /* ------------------------------------------------------------------------- */
771 .gpio_init = { .direction = 0x0800, .initial_value = 0 },
781 /* ------------------------------------------------------------------------- */
808 .gpio_init = { .direction = 0x00ff, .initial_value = 0x0002 },
817 /* ------------------------------------------------------------------------- */
819 /* DIGITAL COWBOY DCT-MTVP1 card */
828 .name = "Digital Cowboy DCT-MTVP1",
845 .gpio_init = { .direction = 0xe080, .initial_value = 0x8000 },
859 /* ------------------------------------------------------------------------- */
861 /* Yuan PG600-2/GotView PCI DVD Lite cards */
871 .name = "Yuan PG600-2, GotView PCI DVD Lite",
898 /* ------------------------------------------------------------------------- */
900 /* Club3D ZAP-TV1x01 cards */
909 .name = "Club3D ZAP-TV1x01",
934 /* ------------------------------------------------------------------------- */
962 /* enable line-in */
963 .gpio_init = { .direction = 0xe000, .initial_value = 0x4000 },
972 /* ------------------------------------------------------------------------- */
974 /* AVerMedia PVR-150 Plus / AVerTV M113 cards with a Daewoo/Partsnic Tuner */
984 .name = "AVerMedia PVR-150 Plus / AVerTV M113 Partsnic (Daewoo) Tuner",
1002 /* The 74HC4052 Dual 4:1 multiplexer is controlled by 2 GPIO lines */
1003 .gpio_init = { .direction = 0xc000, .initial_value = 0 },
1009 /* Subsystem ID's 0xc03[45] have a Partsnic PTI-5NF05 tuner */
1017 /* ------------------------------------------------------------------------- */
1019 /* AVerMedia UltraTV 1500 MCE (newer non-cx88 version, M113 variant) card */
1030 .comment = "For non-NTSC tuners, use the pal= or secam= module options",
1048 /* The 74HC4052 Dual 4:1 multiplexer is controlled by 2 GPIO lines */
1049 .gpio_init = { .direction = 0xc000, .initial_value = 0 },
1063 /* ------------------------------------------------------------------------- */
1087 .gpio_init = { .direction = 0x4000, .initial_value = 0x4000 },
1092 /* ------------------------------------------------------------------------- */
1131 /* ------------------------------------------------------------------------- */
1157 /* enable line-in + reset tuner */
1158 .gpio_init = { .direction = 0xe000, .initial_value = 0x4000 },
1167 /* ------------------------------------------------------------------------- */
1169 /* Buffalo PC-MV5L/PCI cards */
1178 .name = "Buffalo PC-MV5L/PCI",
1202 /* ------------------------------------------------------------------------- */
1228 .gpio_init = { .direction = 0x03e1, .initial_value = 0x0320 },
1295 const struct ivtv_card_video_input *card_input = itv->card->video_inputs + index; in ivtv_get_input()
1298 "S-Video 1", in ivtv_get_input()
1299 "S-Video 2", in ivtv_get_input()
1305 if (index >= itv->nof_inputs) in ivtv_get_input()
1306 return -EINVAL; in ivtv_get_input()
1307 input->index = index; in ivtv_get_input()
1308 strscpy(input->name, input_strs[card_input->video_type - 1], in ivtv_get_input()
1309 sizeof(input->name)); in ivtv_get_input()
1310 input->type = (card_input->video_type == IVTV_CARD_INPUT_VID_TUNER ? in ivtv_get_input()
1312 input->audioset = (1 << itv->nof_audio_inputs) - 1; in ivtv_get_input()
1313 input->std = (input->type == V4L2_INPUT_TYPE_TUNER) ? in ivtv_get_input()
1314 itv->tuner_std : V4L2_STD_ALL; in ivtv_get_input()
1320 const struct ivtv_card_output *card_output = itv->card->video_outputs + index; in ivtv_get_output()
1322 if (index >= itv->card->nof_outputs) in ivtv_get_output()
1323 return -EINVAL; in ivtv_get_output()
1324 output->index = index; in ivtv_get_output()
1325 strscpy(output->name, card_output->name, sizeof(output->name)); in ivtv_get_output()
1326 output->type = V4L2_OUTPUT_TYPE_ANALOG; in ivtv_get_output()
1327 output->audioset = 1; in ivtv_get_output()
1328 output->std = V4L2_STD_ALL; in ivtv_get_output()
1334 const struct ivtv_card_audio_input *aud_input = itv->card->audio_inputs + index; in ivtv_get_audio_input()
1342 if (index >= itv->nof_audio_inputs) in ivtv_get_audio_input()
1343 return -EINVAL; in ivtv_get_audio_input()
1344 strscpy(audio->name, input_strs[aud_input->audio_type - 1], in ivtv_get_audio_input()
1345 sizeof(audio->name)); in ivtv_get_audio_input()
1346 audio->index = index; in ivtv_get_audio_input()
1347 audio->capability = V4L2_AUDCAP_STEREO; in ivtv_get_audio_input()
1354 if (itv->card->video_outputs == NULL || index != 0) in ivtv_get_audio_output()
1355 return -EINVAL; in ivtv_get_audio_output()
1356 strscpy(aud_output->name, "A/V Audio Out", sizeof(aud_output->name)); in ivtv_get_audio_output()