|
@@ -1252,6 +1252,33 @@ struct em28xx_board em28xx_boards[] = {
|
|
|
.amux = EM28XX_AMUX_LINE_IN,
|
|
|
} },
|
|
|
},
|
|
|
+ [EM2860_BOARD_KAIOMY_TVNPC_U2] = {
|
|
|
+ .name = "Kaiomy TVnPC U2",
|
|
|
+ .vchannels = 3,
|
|
|
+ .tuner_type = TUNER_XC2028,
|
|
|
+ .tuner_addr = 0x61,
|
|
|
+ .mts_firmware = 1,
|
|
|
+ .decoder = EM28XX_TVP5150,
|
|
|
+ .tuner_gpio = default_tuner_gpio,
|
|
|
+ .input = { {
|
|
|
+ .type = EM28XX_VMUX_TELEVISION,
|
|
|
+ .vmux = TVP5150_COMPOSITE0,
|
|
|
+ .amux = EM28XX_AMUX_VIDEO,
|
|
|
+
|
|
|
+ }, {
|
|
|
+ .type = EM28XX_VMUX_COMPOSITE1,
|
|
|
+ .vmux = TVP5150_COMPOSITE1,
|
|
|
+ .amux = EM28XX_AMUX_LINE_IN,
|
|
|
+ }, {
|
|
|
+ .type = EM28XX_VMUX_SVIDEO,
|
|
|
+ .vmux = TVP5150_SVIDEO,
|
|
|
+ .amux = EM28XX_AMUX_LINE_IN,
|
|
|
+ } },
|
|
|
+ .radio = {
|
|
|
+ .type = EM28XX_RADIO,
|
|
|
+ .amux = EM28XX_AMUX_LINE_IN,
|
|
|
+ }
|
|
|
+ }
|
|
|
};
|
|
|
const unsigned int em28xx_bcount = ARRAY_SIZE(em28xx_boards);
|
|
|
|
|
@@ -1279,6 +1306,8 @@ struct usb_device_id em28xx_id_table [] = {
|
|
|
.driver_info = EM2820_BOARD_UNKNOWN },
|
|
|
{ USB_DEVICE(0xeb1a, 0xe300),
|
|
|
.driver_info = EM2861_BOARD_KWORLD_PVRTV_300U },
|
|
|
+ { USB_DEVICE(0xeb1a, 0xe303),
|
|
|
+ .driver_info = EM2860_BOARD_KAIOMY_TVNPC_U2 },
|
|
|
{ USB_DEVICE(0xeb1a, 0xe305),
|
|
|
.driver_info = EM2880_BOARD_KWORLD_DVB_305U },
|
|
|
{ USB_DEVICE(0xeb1a, 0xe310),
|
|
@@ -1524,6 +1553,20 @@ void em28xx_pre_card_setup(struct em28xx *dev)
|
|
|
/* enables audio for that devices */
|
|
|
em28xx_write_reg(dev, EM28XX_R08_GPIO, 0xfd);
|
|
|
break;
|
|
|
+
|
|
|
+ case EM2860_BOARD_KAIOMY_TVNPC_U2:
|
|
|
+ em28xx_write_regs(dev, EM28XX_R0F_XCLK, "\x07", 1);
|
|
|
+ em28xx_write_regs(dev, EM28XX_R06_I2C_CLK, "\x40", 1);
|
|
|
+ em28xx_write_regs(dev, 0x0d, "\x42", 1);
|
|
|
+ em28xx_write_regs(dev, 0x08, "\xfd", 1);
|
|
|
+ msleep(10);
|
|
|
+ em28xx_write_regs(dev, 0x08, "\xff", 1);
|
|
|
+ msleep(10);
|
|
|
+ em28xx_write_regs(dev, 0x08, "\x7f", 1);
|
|
|
+ msleep(10);
|
|
|
+ em28xx_write_regs(dev, 0x08, "\x6b", 1);
|
|
|
+
|
|
|
+ break;
|
|
|
}
|
|
|
|
|
|
em28xx_gpio_set(dev, dev->board.tuner_gpio);
|