diff options
author | Mauro Carvalho Chehab <mchehab@redhat.com> | 2009-02-11 12:13:20 -0500 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2009-03-30 11:42:43 -0400 |
commit | 0bf4f6ce6d43b135867a78fa1b4ac58e22d2e329 (patch) | |
tree | 6762b6d44b7515615a222ae0dd109e705dcce070 /drivers/media/video/em28xx/em28xx-cards.c | |
parent | 517efa89acef3ac440e6e1ca10252d407ba51abf (diff) |
V4L/DVB (10514): em28xx: Add support for Kaiomy TVnPC U2 stick
Thanks to Peter Senna Tschudin <peter.senna@gmail.com> for borrow me one
of those devices.
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/video/em28xx/em28xx-cards.c')
-rw-r--r-- | drivers/media/video/em28xx/em28xx-cards.c | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/drivers/media/video/em28xx/em28xx-cards.c b/drivers/media/video/em28xx/em28xx-cards.c index 369db26cd721..c62243ef73b4 100644 --- a/drivers/media/video/em28xx/em28xx-cards.c +++ b/drivers/media/video/em28xx/em28xx-cards.c | |||
@@ -1252,6 +1252,33 @@ struct em28xx_board em28xx_boards[] = { | |||
1252 | .amux = EM28XX_AMUX_LINE_IN, | 1252 | .amux = EM28XX_AMUX_LINE_IN, |
1253 | } }, | 1253 | } }, |
1254 | }, | 1254 | }, |
1255 | [EM2860_BOARD_KAIOMY_TVNPC_U2] = { | ||
1256 | .name = "Kaiomy TVnPC U2", | ||
1257 | .vchannels = 3, | ||
1258 | .tuner_type = TUNER_XC2028, | ||
1259 | .tuner_addr = 0x61, | ||
1260 | .mts_firmware = 1, | ||
1261 | .decoder = EM28XX_TVP5150, | ||
1262 | .tuner_gpio = default_tuner_gpio, | ||
1263 | .input = { { | ||
1264 | .type = EM28XX_VMUX_TELEVISION, | ||
1265 | .vmux = TVP5150_COMPOSITE0, | ||
1266 | .amux = EM28XX_AMUX_VIDEO, | ||
1267 | |||
1268 | }, { | ||
1269 | .type = EM28XX_VMUX_COMPOSITE1, | ||
1270 | .vmux = TVP5150_COMPOSITE1, | ||
1271 | .amux = EM28XX_AMUX_LINE_IN, | ||
1272 | }, { | ||
1273 | .type = EM28XX_VMUX_SVIDEO, | ||
1274 | .vmux = TVP5150_SVIDEO, | ||
1275 | .amux = EM28XX_AMUX_LINE_IN, | ||
1276 | } }, | ||
1277 | .radio = { | ||
1278 | .type = EM28XX_RADIO, | ||
1279 | .amux = EM28XX_AMUX_LINE_IN, | ||
1280 | } | ||
1281 | } | ||
1255 | }; | 1282 | }; |
1256 | const unsigned int em28xx_bcount = ARRAY_SIZE(em28xx_boards); | 1283 | const unsigned int em28xx_bcount = ARRAY_SIZE(em28xx_boards); |
1257 | 1284 | ||
@@ -1279,6 +1306,8 @@ struct usb_device_id em28xx_id_table [] = { | |||
1279 | .driver_info = EM2820_BOARD_UNKNOWN }, | 1306 | .driver_info = EM2820_BOARD_UNKNOWN }, |
1280 | { USB_DEVICE(0xeb1a, 0xe300), | 1307 | { USB_DEVICE(0xeb1a, 0xe300), |
1281 | .driver_info = EM2861_BOARD_KWORLD_PVRTV_300U }, | 1308 | .driver_info = EM2861_BOARD_KWORLD_PVRTV_300U }, |
1309 | { USB_DEVICE(0xeb1a, 0xe303), | ||
1310 | .driver_info = EM2860_BOARD_KAIOMY_TVNPC_U2 }, | ||
1282 | { USB_DEVICE(0xeb1a, 0xe305), | 1311 | { USB_DEVICE(0xeb1a, 0xe305), |
1283 | .driver_info = EM2880_BOARD_KWORLD_DVB_305U }, | 1312 | .driver_info = EM2880_BOARD_KWORLD_DVB_305U }, |
1284 | { USB_DEVICE(0xeb1a, 0xe310), | 1313 | { USB_DEVICE(0xeb1a, 0xe310), |
@@ -1524,6 +1553,20 @@ void em28xx_pre_card_setup(struct em28xx *dev) | |||
1524 | /* enables audio for that devices */ | 1553 | /* enables audio for that devices */ |
1525 | em28xx_write_reg(dev, EM28XX_R08_GPIO, 0xfd); | 1554 | em28xx_write_reg(dev, EM28XX_R08_GPIO, 0xfd); |
1526 | break; | 1555 | break; |
1556 | |||
1557 | case EM2860_BOARD_KAIOMY_TVNPC_U2: | ||
1558 | em28xx_write_regs(dev, EM28XX_R0F_XCLK, "\x07", 1); | ||
1559 | em28xx_write_regs(dev, EM28XX_R06_I2C_CLK, "\x40", 1); | ||
1560 | em28xx_write_regs(dev, 0x0d, "\x42", 1); | ||
1561 | em28xx_write_regs(dev, 0x08, "\xfd", 1); | ||
1562 | msleep(10); | ||
1563 | em28xx_write_regs(dev, 0x08, "\xff", 1); | ||
1564 | msleep(10); | ||
1565 | em28xx_write_regs(dev, 0x08, "\x7f", 1); | ||
1566 | msleep(10); | ||
1567 | em28xx_write_regs(dev, 0x08, "\x6b", 1); | ||
1568 | |||
1569 | break; | ||
1527 | } | 1570 | } |
1528 | 1571 | ||
1529 | em28xx_gpio_set(dev, dev->board.tuner_gpio); | 1572 | em28xx_gpio_set(dev, dev->board.tuner_gpio); |