aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/video/em28xx/em28xx-cards.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/media/video/em28xx/em28xx-cards.c')
-rw-r--r--drivers/media/video/em28xx/em28xx-cards.c50
1 files changed, 50 insertions, 0 deletions
diff --git a/drivers/media/video/em28xx/em28xx-cards.c b/drivers/media/video/em28xx/em28xx-cards.c
index edf6f77862cc..81f9ff55588d 100644
--- a/drivers/media/video/em28xx/em28xx-cards.c
+++ b/drivers/media/video/em28xx/em28xx-cards.c
@@ -240,6 +240,52 @@ struct em28xx_board em28xx_boards[] = {
240 .amux = 1, 240 .amux = 1,
241 } }, 241 } },
242 }, 242 },
243 [EM2880_BOARD_AMD_ATI_TV_WONDER_HD_600] = {
244 .name = "AMD ATI TV Wonder HD 600",
245 .vchannels = 3,
246 .tda9887_conf = TDA9887_PRESENT,
247 .tuner_type = TUNER_XC2028,
248 .mts_firmware = 1,
249 .has_12mhz_i2s = 1,
250 .has_dvb = 1,
251 .decoder = EM28XX_TVP5150,
252 .input = { {
253 .type = EM28XX_VMUX_TELEVISION,
254 .vmux = TVP5150_COMPOSITE0,
255 .amux = 0,
256 }, {
257 .type = EM28XX_VMUX_COMPOSITE1,
258 .vmux = TVP5150_COMPOSITE1,
259 .amux = 1,
260 }, {
261 .type = EM28XX_VMUX_SVIDEO,
262 .vmux = TVP5150_SVIDEO,
263 .amux = 1,
264 } },
265 },
266 [EM2880_BOARD_AMD_ATI_TV_WONDER_HD_600] = {
267 .name = "AMD ATI TV Wonder HD 600",
268 .vchannels = 3,
269 .tda9887_conf = TDA9887_PRESENT,
270 .tuner_type = TUNER_XC2028,
271 .mts_firmware = 1,
272 .has_12mhz_i2s = 1,
273 .has_dvb = 1,
274 .decoder = EM28XX_TVP5150,
275 .input = { {
276 .type = EM28XX_VMUX_TELEVISION,
277 .vmux = TVP5150_COMPOSITE0,
278 .amux = 0,
279 }, {
280 .type = EM28XX_VMUX_COMPOSITE1,
281 .vmux = TVP5150_COMPOSITE1,
282 .amux = 1,
283 }, {
284 .type = EM28XX_VMUX_SVIDEO,
285 .vmux = TVP5150_SVIDEO,
286 .amux = 1,
287 } },
288 },
243 [EM2880_BOARD_TERRATEC_HYBRID_XS] = { 289 [EM2880_BOARD_TERRATEC_HYBRID_XS] = {
244 .name = "Terratec Hybrid XS", 290 .name = "Terratec Hybrid XS",
245 .vchannels = 3, 291 .vchannels = 3,
@@ -493,6 +539,8 @@ struct usb_device_id em28xx_id_table [] = {
493 .driver_info = EM2880_BOARD_TERRATEC_HYBRID_XS }, 539 .driver_info = EM2880_BOARD_TERRATEC_HYBRID_XS },
494 { USB_DEVICE(0x0ccd, 0x0047), 540 { USB_DEVICE(0x0ccd, 0x0047),
495 .driver_info = EM2880_BOARD_TERRATEC_PRODIGY_XS }, 541 .driver_info = EM2880_BOARD_TERRATEC_PRODIGY_XS },
542 { USB_DEVICE(0x0438, 0xb002),
543 .driver_info = EM2880_BOARD_AMD_ATI_TV_WONDER_HD_600 },
496 { }, 544 { },
497}; 545};
498MODULE_DEVICE_TABLE(usb, em28xx_id_table); 546MODULE_DEVICE_TABLE(usb, em28xx_id_table);
@@ -608,6 +656,7 @@ void em28xx_pre_card_setup(struct em28xx *dev)
608 case EM2880_BOARD_TERRATEC_HYBRID_XS: 656 case EM2880_BOARD_TERRATEC_HYBRID_XS:
609 case EM2880_BOARD_HAUPPAUGE_WINTV_HVR_950: 657 case EM2880_BOARD_HAUPPAUGE_WINTV_HVR_950:
610 case EM2880_BOARD_PINNACLE_PCTV_HD_PRO: 658 case EM2880_BOARD_PINNACLE_PCTV_HD_PRO:
659 case EM2880_BOARD_AMD_ATI_TV_WONDER_HD_600:
611 em28xx_write_regs(dev, EM28XX_R0F_XCLK, "\x27", 1); 660 em28xx_write_regs(dev, EM28XX_R0F_XCLK, "\x27", 1);
612 em28xx_write_regs(dev, EM28XX_R06_I2C_CLK, "\x40", 1); 661 em28xx_write_regs(dev, EM28XX_R06_I2C_CLK, "\x40", 1);
613 msleep(50); 662 msleep(50);
@@ -649,6 +698,7 @@ static void em28xx_setup_xc3028(struct em28xx *dev, struct xc2028_ctrl *ctl)
649 break; 698 break;
650 case EM2880_BOARD_HAUPPAUGE_WINTV_HVR_950: 699 case EM2880_BOARD_HAUPPAUGE_WINTV_HVR_950:
651 case EM2880_BOARD_PINNACLE_PCTV_HD_PRO: 700 case EM2880_BOARD_PINNACLE_PCTV_HD_PRO:
701 case EM2880_BOARD_AMD_ATI_TV_WONDER_HD_600:
652 /* FIXME: Better to specify the needed IF */ 702 /* FIXME: Better to specify the needed IF */
653 ctl->demod = XC3028_FE_DEFAULT; 703 ctl->demod = XC3028_FE_DEFAULT;
654 break; 704 break;