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 + -
显示快捷键?