aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/video/em28xx/em28xx-cards.c
diff options
context:
space:
mode:
authorDevin Heitmueller <devin.heitmueller@gmail.com>2008-06-04 12:43:46 -0400
committerMauro Carvalho Chehab <mchehab@infradead.org>2008-07-20 06:08:19 -0400
commit4fd305b2a2c4d16e8d4ebc95c84f946edd3385c5 (patch)
treedbc539d5d4391e66ce7e4383c3f23b462ea672c1 /drivers/media/video/em28xx/em28xx-cards.c
parent72937890f98167cbe626f24df2c16d6b63e3e357 (diff)
V4L/DVB (7992): Add support for Pinnacle PCTV HD Pro stick (the older variant 2304:0227)
Signed-off-by: Devin Heitmueller <devin.heitmueller@gmail.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Diffstat (limited to 'drivers/media/video/em28xx/em28xx-cards.c')
-rw-r--r--drivers/media/video/em28xx/em28xx-cards.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/drivers/media/video/em28xx/em28xx-cards.c b/drivers/media/video/em28xx/em28xx-cards.c
index 8cbda43727c3..c22c90301d85 100644
--- a/drivers/media/video/em28xx/em28xx-cards.c
+++ b/drivers/media/video/em28xx/em28xx-cards.c
@@ -196,6 +196,29 @@ struct em28xx_board em28xx_boards[] = {
196 .amux = 1, 196 .amux = 1,
197 } }, 197 } },
198 }, 198 },
199 [EM2880_BOARD_PINNACLE_PCTV_HD_PRO] = {
200 .name = "Pinnacle PCTV HD Pro Stick",
201 .vchannels = 3,
202 .tda9887_conf = TDA9887_PRESENT,
203 .tuner_type = TUNER_XC2028,
204 .mts_firmware = 1,
205 .has_12mhz_i2s = 1,
206 .has_dvb = 1,
207 .decoder = EM28XX_TVP5150,
208 .input = { {
209 .type = EM28XX_VMUX_TELEVISION,
210 .vmux = TVP5150_COMPOSITE0,
211 .amux = 0,
212 }, {
213 .type = EM28XX_VMUX_COMPOSITE1,
214 .vmux = TVP5150_COMPOSITE1,
215 .amux = 1,
216 }, {
217 .type = EM28XX_VMUX_SVIDEO,
218 .vmux = TVP5150_SVIDEO,
219 .amux = 1,
220 } },
221 },
199 [EM2880_BOARD_TERRATEC_HYBRID_XS] = { 222 [EM2880_BOARD_TERRATEC_HYBRID_XS] = {
200 .name = "Terratec Hybrid XS", 223 .name = "Terratec Hybrid XS",
201 .vchannels = 3, 224 .vchannels = 3,
@@ -417,6 +440,8 @@ struct usb_device_id em28xx_id_table [] = {
417 .driver_info = EM2820_BOARD_PINNACLE_DVC_90 }, 440 .driver_info = EM2820_BOARD_PINNACLE_DVC_90 },
418 { USB_DEVICE(0x2304, 0x021a), 441 { USB_DEVICE(0x2304, 0x021a),
419 .driver_info = EM2820_BOARD_PINNACLE_DVC_90 }, 442 .driver_info = EM2820_BOARD_PINNACLE_DVC_90 },
443 { USB_DEVICE(0x2304, 0x0227),
444 .driver_info = EM2880_BOARD_PINNACLE_PCTV_HD_PRO },
420 { USB_DEVICE(0x2040, 0x6500), 445 { USB_DEVICE(0x2040, 0x6500),
421 .driver_info = EM2880_BOARD_HAUPPAUGE_WINTV_HVR_900 }, 446 .driver_info = EM2880_BOARD_HAUPPAUGE_WINTV_HVR_900 },
422 { USB_DEVICE(0x2040, 0x6502), 447 { USB_DEVICE(0x2040, 0x6502),
@@ -544,6 +569,7 @@ void em28xx_pre_card_setup(struct em28xx *dev)
544 case EM2880_BOARD_HAUPPAUGE_WINTV_HVR_900: 569 case EM2880_BOARD_HAUPPAUGE_WINTV_HVR_900:
545 case EM2880_BOARD_TERRATEC_HYBRID_XS: 570 case EM2880_BOARD_TERRATEC_HYBRID_XS:
546 case EM2880_BOARD_HAUPPAUGE_WINTV_HVR_950: 571 case EM2880_BOARD_HAUPPAUGE_WINTV_HVR_950:
572 case EM2880_BOARD_PINNACLE_PCTV_HD_PRO:
547 em28xx_write_regs(dev, EM28XX_R0F_XCLK, "\x27", 1); 573 em28xx_write_regs(dev, EM28XX_R0F_XCLK, "\x27", 1);
548 em28xx_write_regs(dev, EM28XX_R06_I2C_CLK, "\x40", 1); 574 em28xx_write_regs(dev, EM28XX_R06_I2C_CLK, "\x40", 1);
549 msleep(50); 575 msleep(50);
@@ -577,6 +603,7 @@ static void em28xx_setup_xc3028(struct em28xx *dev, struct xc2028_ctrl *ctl)
577 ctl->demod = XC3028_FE_ZARLINK456; 603 ctl->demod = XC3028_FE_ZARLINK456;
578 break; 604 break;
579 case EM2880_BOARD_HAUPPAUGE_WINTV_HVR_950: 605 case EM2880_BOARD_HAUPPAUGE_WINTV_HVR_950:
606 case EM2880_BOARD_PINNACLE_PCTV_HD_PRO:
580 /* FIXME: Better to specify the needed IF */ 607 /* FIXME: Better to specify the needed IF */
581 ctl->demod = XC3028_FE_DEFAULT; 608 ctl->demod = XC3028_FE_DEFAULT;
582 break; 609 break;