ivtv-cards.c
来自「trident tm5600的linux驱动」· C语言 代码 · 共 1,279 行 · 第 1/3 页
C
1,279 行
};/* ------------------------------------------------------------------------- *//* Adaptec VideOh! AVC-2010 card */static const struct ivtv_card_pci_info ivtv_pci_avc2010[] = { { PCI_DEVICE_ID_IVTV16, IVTV_PCI_ID_ADAPTEC, 0x0092 }, { 0, 0, 0 }};static const struct ivtv_card ivtv_card_avc2010 = { .type = IVTV_CARD_AVC2010, .name = "Adaptec VideOh! AVC-2010", .v4l2_capabilities = IVTV_CAP_ENCODER, .hw_video = IVTV_HW_SAA7115, .hw_audio = IVTV_HW_CS53L32A, .hw_audio_ctrl = IVTV_HW_CS53L32A, .hw_all = IVTV_HW_CS53L32A | IVTV_HW_SAA7115, .video_inputs = { { IVTV_CARD_INPUT_SVIDEO1, 0, IVTV_SAA71XX_SVIDEO0 }, { IVTV_CARD_INPUT_COMPOSITE1, 0, IVTV_SAA71XX_COMPOSITE3 }, }, .audio_inputs = { { IVTV_CARD_INPUT_LINE_IN1, CS53L32A_IN2 }, }, /* Does not have a tuner */ .pci_list = ivtv_pci_avc2010,};/* ------------------------------------------------------------------------- *//* Nagase Transgear 5000TV card */static const struct ivtv_card_pci_info ivtv_pci_tg5000tv[] = { { PCI_DEVICE_ID_IVTV16, IVTV_PCI_ID_AVERMEDIA, 0xbfff }, { 0, 0, 0 }};static const struct ivtv_card ivtv_card_tg5000tv = { .type = IVTV_CARD_TG5000TV, .name = "Nagase Transgear 5000TV", .v4l2_capabilities = IVTV_CAP_ENCODER, .hw_video = IVTV_HW_SAA7114 | IVTV_HW_UPD64031A | IVTV_HW_UPD6408X | IVTV_HW_GPIO, .hw_audio = IVTV_HW_GPIO, .hw_audio_ctrl = IVTV_HW_GPIO, .hw_all = IVTV_HW_GPIO | IVTV_HW_SAA7114 | IVTV_HW_TUNER | IVTV_HW_UPD64031A | IVTV_HW_UPD6408X, .video_inputs = { { IVTV_CARD_INPUT_VID_TUNER, 0, IVTV_SAA71XX_SVIDEO0 }, { IVTV_CARD_INPUT_SVIDEO1, 1, IVTV_SAA71XX_SVIDEO2 }, { IVTV_CARD_INPUT_COMPOSITE1, 1, IVTV_SAA71XX_SVIDEO2 }, }, .audio_inputs = { { IVTV_CARD_INPUT_AUD_TUNER, IVTV_GPIO_TUNER }, { IVTV_CARD_INPUT_LINE_IN1, IVTV_GPIO_LINE_IN }, }, .gr_config = UPD64031A_VERTICAL_EXTERNAL, .gpio_init = { .direction = 0xe080, .initial_value = 0x8000 }, .gpio_audio_input = { .mask = 0x8080, .tuner = 0x8000, .linein = 0x0080 }, .gpio_audio_mute = { .mask = 0x6000, .mute = 0x6000 }, .gpio_audio_mode = { .mask = 0x4300, .mono = 0x4000, .stereo = 0x0200, .lang1 = 0x0300, .lang2 = 0x0000, .both = 0x0200 }, .gpio_video_input = { .mask = 0x0030, .tuner = 0x0000, .composite = 0x0010, .svideo = 0x0020 }, .tuners = { { .std = V4L2_STD_MN, .tuner = TUNER_PHILIPS_FQ1286 }, }, .pci_list = ivtv_pci_tg5000tv, .i2c = &ivtv_i2c_std,};/* ------------------------------------------------------------------------- *//* AOpen VA2000MAX-SNT6 card */static const struct ivtv_card_pci_info ivtv_pci_va2000[] = { { PCI_DEVICE_ID_IVTV16, 0, 0xff5f }, { 0, 0, 0 }};static const struct ivtv_card ivtv_card_va2000 = { .type = IVTV_CARD_VA2000MAX_SNT6, .name = "AOpen VA2000MAX-SNT6", .v4l2_capabilities = IVTV_CAP_ENCODER, .hw_video = IVTV_HW_SAA7115 | IVTV_HW_UPD6408X, .hw_audio = IVTV_HW_MSP34XX, .hw_audio_ctrl = IVTV_HW_MSP34XX, .hw_all = IVTV_HW_MSP34XX | IVTV_HW_SAA7115 | IVTV_HW_UPD6408X | IVTV_HW_TUNER, .video_inputs = { { IVTV_CARD_INPUT_VID_TUNER, 0, IVTV_SAA71XX_SVIDEO0 }, }, .audio_inputs = { { IVTV_CARD_INPUT_AUD_TUNER, MSP_TUNER }, }, .tuners = { { .std = V4L2_STD_MN, .tuner = TUNER_PHILIPS_FQ1286 }, }, .pci_list = ivtv_pci_va2000, .i2c = &ivtv_i2c_std,};/* ------------------------------------------------------------------------- *//* Yuan MPG600GR/Kuroutoshikou CX23416GYC-STVLP cards */static const struct ivtv_card_pci_info ivtv_pci_cx23416gyc[] = { { PCI_DEVICE_ID_IVTV16, IVTV_PCI_ID_YUAN1, 0x0600 }, { PCI_DEVICE_ID_IVTV16, IVTV_PCI_ID_YUAN4, 0x0600 }, { PCI_DEVICE_ID_IVTV16, IVTV_PCI_ID_MELCO, 0x0523 }, { 0, 0, 0 }};static const struct ivtv_card ivtv_card_cx23416gyc = { .type = IVTV_CARD_CX23416GYC, .name = "Yuan MPG600GR, Kuroutoshikou CX23416GYC-STVLP", .v4l2_capabilities = IVTV_CAP_ENCODER, .hw_video = IVTV_HW_SAA717X | IVTV_HW_GPIO | IVTV_HW_UPD64031A | IVTV_HW_UPD6408X, .hw_audio = IVTV_HW_SAA717X, .hw_audio_ctrl = IVTV_HW_SAA717X, .hw_all = IVTV_HW_GPIO | IVTV_HW_SAA717X | IVTV_HW_TUNER | IVTV_HW_UPD64031A | IVTV_HW_UPD6408X, .video_inputs = { { IVTV_CARD_INPUT_VID_TUNER, 0, IVTV_SAA71XX_SVIDEO3 | IVTV_SAA717X_TUNER_FLAG }, { IVTV_CARD_INPUT_SVIDEO1, 1, IVTV_SAA71XX_SVIDEO0 }, { IVTV_CARD_INPUT_COMPOSITE1, 1, IVTV_SAA71XX_SVIDEO3 }, }, .audio_inputs = { { IVTV_CARD_INPUT_AUD_TUNER, IVTV_SAA717X_IN2 }, { IVTV_CARD_INPUT_LINE_IN1, IVTV_SAA717X_IN0 }, }, .gr_config = UPD64031A_VERTICAL_EXTERNAL, .gpio_init = { .direction = 0xf880, .initial_value = 0x8800 }, .gpio_video_input = { .mask = 0x0020, .tuner = 0x0000, .composite = 0x0020, .svideo = 0x0020 }, .gpio_audio_freq = { .mask = 0xc000, .f32000 = 0x0000, .f44100 = 0x4000, .f48000 = 0x8000 }, .tuners = { { .std = V4L2_STD_PAL_SECAM, .tuner = TUNER_PHILIPS_FM1216ME_MK3 }, { .std = V4L2_STD_ALL, .tuner = TUNER_PHILIPS_FM1236_MK3 }, }, .pci_list = ivtv_pci_cx23416gyc, .i2c = &ivtv_i2c_std,};static const struct ivtv_card ivtv_card_cx23416gyc_nogr = { .type = IVTV_CARD_CX23416GYC_NOGR, .name = "Yuan MPG600GR, Kuroutoshikou CX23416GYC-STVLP (no GR)", .v4l2_capabilities = IVTV_CAP_ENCODER, .hw_video = IVTV_HW_SAA717X | IVTV_HW_GPIO | IVTV_HW_UPD6408X, .hw_audio = IVTV_HW_SAA717X, .hw_audio_ctrl = IVTV_HW_SAA717X, .hw_all = IVTV_HW_GPIO | IVTV_HW_SAA717X | IVTV_HW_TUNER | IVTV_HW_UPD6408X, .video_inputs = { { IVTV_CARD_INPUT_VID_TUNER, 0, IVTV_SAA71XX_COMPOSITE4 | IVTV_SAA717X_TUNER_FLAG }, { IVTV_CARD_INPUT_SVIDEO1, 1, IVTV_SAA71XX_SVIDEO0 }, { IVTV_CARD_INPUT_COMPOSITE1, 1, IVTV_SAA71XX_COMPOSITE0 }, }, .audio_inputs = { { IVTV_CARD_INPUT_AUD_TUNER, IVTV_SAA717X_IN2 }, { IVTV_CARD_INPUT_LINE_IN1, IVTV_SAA717X_IN0 }, }, .gpio_init = { .direction = 0xf880, .initial_value = 0x8800 }, .gpio_video_input = { .mask = 0x0020, .tuner = 0x0000, .composite = 0x0020, .svideo = 0x0020 }, .gpio_audio_freq = { .mask = 0xc000, .f32000 = 0x0000, .f44100 = 0x4000, .f48000 = 0x8000 }, .tuners = { { .std = V4L2_STD_PAL_SECAM, .tuner = TUNER_PHILIPS_FM1216ME_MK3 }, { .std = V4L2_STD_ALL, .tuner = TUNER_PHILIPS_FM1236_MK3 }, }, .i2c = &ivtv_i2c_std,};static const struct ivtv_card ivtv_card_cx23416gyc_nogrycs = { .type = IVTV_CARD_CX23416GYC_NOGRYCS, .name = "Yuan MPG600GR, Kuroutoshikou CX23416GYC-STVLP (no GR/YCS)", .v4l2_capabilities = IVTV_CAP_ENCODER, .hw_video = IVTV_HW_SAA717X | IVTV_HW_GPIO, .hw_audio = IVTV_HW_SAA717X, .hw_audio_ctrl = IVTV_HW_SAA717X, .hw_all = IVTV_HW_GPIO | IVTV_HW_SAA717X | IVTV_HW_TUNER, .video_inputs = { { IVTV_CARD_INPUT_VID_TUNER, 0, IVTV_SAA71XX_COMPOSITE4 | IVTV_SAA717X_TUNER_FLAG }, { IVTV_CARD_INPUT_SVIDEO1, 1, IVTV_SAA71XX_SVIDEO0 }, { IVTV_CARD_INPUT_COMPOSITE1, 1, IVTV_SAA71XX_COMPOSITE0 }, }, .audio_inputs = { { IVTV_CARD_INPUT_AUD_TUNER, IVTV_SAA717X_IN2 }, { IVTV_CARD_INPUT_LINE_IN1, IVTV_SAA717X_IN0 }, }, .gpio_init = { .direction = 0xf880, .initial_value = 0x8800 }, .gpio_video_input = { .mask = 0x0020, .tuner = 0x0000, .composite = 0x0020, .svideo = 0x0020 }, .gpio_audio_freq = { .mask = 0xc000, .f32000 = 0x0000, .f44100 = 0x4000, .f48000 = 0x8000 }, .tuners = { { .std = V4L2_STD_PAL_SECAM, .tuner = TUNER_PHILIPS_FM1216ME_MK3 }, { .std = V4L2_STD_ALL, .tuner = TUNER_PHILIPS_FM1236_MK3 }, }, .i2c = &ivtv_i2c_std,};/* ------------------------------------------------------------------------- *//* I/O Data GV-MVP/RX & GV-MVP/RX2W (dual tuner) cards */static const struct ivtv_card_pci_info ivtv_pci_gv_mvprx[] = { { PCI_DEVICE_ID_IVTV16, IVTV_PCI_ID_IODATA, 0xd01e }, { PCI_DEVICE_ID_IVTV16, IVTV_PCI_ID_IODATA, 0xd038 }, /* 2W unit #1 */ { PCI_DEVICE_ID_IVTV16, IVTV_PCI_ID_IODATA, 0xd039 }, /* 2W unit #2 */ { 0, 0, 0 }};static const struct ivtv_card ivtv_card_gv_mvprx = { .type = IVTV_CARD_GV_MVPRX, .name = "I/O Data GV-MVP/RX, GV-MVP/RX2W (dual tuner)", .v4l2_capabilities = IVTV_CAP_ENCODER, .hw_video = IVTV_HW_SAA7115 | IVTV_HW_UPD64031A | IVTV_HW_UPD6408X, .hw_audio = IVTV_HW_GPIO, .hw_audio_ctrl = IVTV_HW_WM8739, .hw_all = IVTV_HW_GPIO | IVTV_HW_SAA7115 | IVTV_HW_VP27SMPX | IVTV_HW_TUNER | IVTV_HW_WM8739 | IVTV_HW_UPD64031A | IVTV_HW_UPD6408X, .video_inputs = { { IVTV_CARD_INPUT_VID_TUNER, 0, IVTV_SAA71XX_SVIDEO0 }, { IVTV_CARD_INPUT_SVIDEO1, 1, IVTV_SAA71XX_SVIDEO1 }, { IVTV_CARD_INPUT_COMPOSITE1, 1, IVTV_SAA71XX_SVIDEO2 }, }, .audio_inputs = { { IVTV_CARD_INPUT_AUD_TUNER, IVTV_GPIO_TUNER }, { IVTV_CARD_INPUT_LINE_IN1, IVTV_GPIO_LINE_IN }, }, .gpio_init = { .direction = 0xc301, .initial_value = 0x0200 }, .gpio_audio_input = { .mask = 0xffff, .tuner = 0x0200, .linein = 0x0300 }, .tuners = { /* This card has the Panasonic VP27 tuner */ { .std = V4L2_STD_MN, .tuner = TUNER_PANASONIC_VP27 }, }, .pci_list = ivtv_pci_gv_mvprx, .i2c = &ivtv_i2c_std,};/* ------------------------------------------------------------------------- *//* I/O Data GV-MVP/RX2E card */static const struct ivtv_card_pci_info ivtv_pci_gv_mvprx2e[] = { { PCI_DEVICE_ID_IVTV16, IVTV_PCI_ID_IODATA, 0xd025 }, {0, 0, 0}};static const struct ivtv_card ivtv_card_gv_mvprx2e = { .type = IVTV_CARD_GV_MVPRX2E, .name = "I/O Data GV-MVP/RX2E", .v4l2_capabilities = IVTV_CAP_ENCODER, .hw_video = IVTV_HW_SAA7115, .hw_audio = IVTV_HW_GPIO, .hw_audio_ctrl = IVTV_HW_WM8739, .hw_all = IVTV_HW_GPIO | IVTV_HW_SAA7115 | IVTV_HW_TUNER | IVTV_HW_VP27SMPX | IVTV_HW_WM8739, .video_inputs = { { IVTV_CARD_INPUT_VID_TUNER, 0, IVTV_SAA71XX_COMPOSITE4 }, { IVTV_CARD_INPUT_SVIDEO1, 1, IVTV_SAA71XX_SVIDEO0 }, { IVTV_CARD_INPUT_COMPOSITE1, 1, IVTV_SAA71XX_COMPOSITE3 }, }, .audio_inputs = { { IVTV_CARD_INPUT_AUD_TUNER, IVTV_GPIO_TUNER }, { IVTV_CARD_INPUT_LINE_IN1, IVTV_GPIO_LINE_IN }, }, .gpio_init = { .direction = 0xc301, .initial_value = 0x0200 }, .gpio_audio_input = { .mask = 0xffff, .tuner = 0x0200, .linein = 0x0300 }, .tuners = { /* This card has the Panasonic VP27 tuner */ { .std = V4L2_STD_MN, .tuner = TUNER_PANASONIC_VP27 }, }, .pci_list = ivtv_pci_gv_mvprx2e, .i2c = &ivtv_i2c_std,};/* ------------------------------------------------------------------------- *//* GotVIEW PCI DVD card */static const struct ivtv_card_pci_info ivtv_pci_gotview_pci_dvd[] = { { PCI_DEVICE_ID_IVTV16, IVTV_PCI_ID_YUAN1, 0x0600 }, { 0, 0, 0 }};static const struct ivtv_card ivtv_card_gotview_pci_dvd = { .type = IVTV_CARD_GOTVIEW_PCI_DVD, .name = "GotView PCI DVD", .v4l2_capabilities = IVTV_CAP_ENCODER, .hw_video = IVTV_HW_SAA717X, .hw_audio = IVTV_HW_SAA717X, .hw_audio_ctrl = IVTV_HW_SAA717X, .hw_all = IVTV_HW_SAA717X | IVTV_HW_TUNER, .video_inputs = { { IVTV_CARD_INPUT_VID_TUNER, 0, IVTV_SAA71XX_COMPOSITE1 }, /* pin 116 */ { IVTV_CARD_INPUT_SVIDEO1, 1, IVTV_SAA71XX_SVIDEO0 }, /* pin 114/109 */ { IVTV_CARD_INPUT_COMPOSITE1, 1, IVTV_SAA71XX_COMPOSITE3 }, /* pin 118 */ }, .audio_inputs = { { IVTV_CARD_INPUT_AUD_TUNER, IVTV_SAA717X_IN0 }, { IVTV_CARD_INPUT_LINE_IN1, IVTV_SAA717X_IN2 }, }, .gpio_init = { .direction = 0xf000, .initial_value = 0xA000 }, .tuners = { /* This card has a Philips FQ1216ME MK3 tuner */ { .std = V4L2_STD_PAL_SECAM, .tuner = TUNER_PHILIPS_FM1216ME_MK3 }, }, .pci_list = ivtv_pci_gotview_pci_dvd, .i2c = &ivtv_i2c_std,};/* ------------------------------------------------------------------------- *//* GotVIEW PCI DVD2 Deluxe card */static const struct ivtv_card_pci_info ivtv_pci_gotview_pci_dvd2[] = { { PCI_DEVICE_ID_IVTV16, IVTV_PCI_ID_GOTVIEW1, 0x0600 }, { 0, 0, 0 }};static const struct ivtv_card ivtv_card_gotview_pci_dvd2 = { .type = IVTV_CARD_GOTVIEW_PCI_DVD2, .name = "GotView PCI DVD2 Deluxe", .v4l2_capabilities = IVTV_CAP_ENCODER, .hw_video = IVTV_HW_CX25840, .hw_audio = IVTV_HW_CX25840, .hw_audio_ctrl = IVTV_HW_CX25840, .hw_muxer = IVTV_HW_GPIO, .hw_all = IVTV_HW_CX25840 | IVTV_HW_TUNER, .video_inputs = { { IVTV_CARD_INPUT_VID_TUNER, 0, CX25840_COMPOSITE2 }, { IVTV_CARD_INPUT_SVIDEO1, 1, CX25840_SVIDEO_LUMA3 | CX25840_SVIDEO_CHROMA4 }, { IVTV_CARD_INPUT_COMPOSITE1, 1, CX25840_COMPOSITE1 }, }, .audio_inputs = { { IVTV_CARD_INPUT_AUD_TUNER, CX25840_AUDIO5, 0 }, { IVTV_CARD_INPUT_LINE_IN1, CX25840_AUDIO_SERIAL, 1 }, }, .radio_input = { IVTV_CARD_INPUT_AUD_TUNER, CX25840_AUDIO_SERIAL, 2 }, .gpio_init = { .direction = 0x0800, .initial_value = 0 }, .gpio_audio_input = { .mask = 0x0800, .tuner = 0, .linein = 0, .radio = 0x0800 }, .tuners = { /* This card has a Philips FQ1216ME MK5 tuner */ { .std = V4L2_STD_PAL_SECAM, .tuner = TUNER_PHILIPS_FM1216ME_MK3 }, }, .pci_list = ivtv_pci_gotview_pci_dvd2, .i2c = &ivtv_i2c_std,};/* ------------------------------------------------------------------------- *//* Yuan MPC622 miniPCI card */static const struct ivtv_card_pci_info ivtv_pci_yuan_mpc622[] = { { PCI_DEVICE_ID_IVTV16, IVTV_PCI_ID_YUAN2, 0xd998 }, { 0, 0, 0 }};static const struct ivtv_card ivtv_card_yuan_mpc622 = { .type = IVTV_CARD_YUAN_MPC622, .name = "Yuan MPC622", .v4l2_capabilities = IVTV_CAP_ENCODER, .hw_video = IVTV_HW_CX25840, .hw_audio = IVTV_HW_CX25840, .hw_audio_ctrl = IVTV_HW_CX25840, .hw_all = IVTV_HW_CX25840 | IVTV_HW_TUNER, .video_inputs = { { IVTV_CARD_INPUT_VID_TUNER, 0, CX25840_COMPOSITE2 }, { IVTV_CARD_INPUT_SVIDEO1, 1, CX25840_SVIDEO_LUMA3 | CX25840_SVIDEO_CHROMA4 }, { IVTV_CARD_INPUT_COMPOSITE1, 1, CX25840_COMPOSITE1 }, }, .audio_inputs = { { IVTV_CARD_INPUT_AUD_TUNER, CX25840_AUDIO5 }, { IVTV_CARD_INPUT_LINE_IN1, CX25840_AUDIO_SERIAL }, }, .gpio_init = { .direction = 0x00ff, .initial_value = 0x0002 }, .tuners = { /* This card has the TDA8290/TDA8275 tuner chips */ { .std = V4L2_STD_ALL, .tuner = TUNER_PHILIPS_TDA8290 }, }, .pci_list = ivtv_pci_yuan_mpc622, .i2c = &ivtv_i2c_tda8290,};/* ------------------------------------------------------------------------- *//* DIGITAL COWBOY DCT-MTVP1 card */static const struct ivtv_card_pci_info ivtv_pci_dctmvtvp1[] = { { PCI_DEVICE_ID_IVTV16, IVTV_PCI_ID_AVERMEDIA, 0xbfff }, { 0, 0, 0 }};static const struct ivtv_card ivtv_card_dctmvtvp1 = { .type = IVTV_CARD_DCTMTVP1, .name = "Digital Cowboy DCT-MTVP1", .v4l2_capabilities = IVTV_CAP_ENCODER, .hw_video = IVTV_HW_SAA7115 | IVTV_HW_UPD64031A | IVTV_HW_UPD6408X | IVTV_HW_GPIO, .hw_audio = IVTV_HW_GPIO, .hw_audio_ctrl = IVTV_HW_GPIO, .hw_all = IVTV_HW_GPIO | IVTV_HW_SAA7115 | IVTV_HW_TUNER | IVTV_HW_UPD64031A | IVTV_HW_UPD6408X, .video_inputs = { { IVTV_CARD_INPUT_VID_TUNER, 0, IVTV_SAA71XX_SVIDEO0 }, { IVTV_CARD_INPUT_SVIDEO1, 1, IVTV_SAA71XX_SVIDEO2 }, { IVTV_CARD_INPUT_COMPOSITE1, 1, IVTV_SAA71XX_SVIDEO2 }, }, .audio_inputs = { { IVTV_CARD_INPUT_AUD_TUNER, IVTV_GPIO_TUNER }, { IVTV_CARD_INPUT_LINE_IN1, IVTV_GPIO_LINE_IN }, }, .gpio_init = { .direction = 0xe080, .initial_value = 0x8000 }, .gpio_audio_input = { .mask = 0x8080, .tuner = 0x8000, .linein = 0x0080 },
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?