aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Documentation/video4linux/CARDLIST.em28xx1
-rw-r--r--drivers/media/video/em28xx/em28xx-cards.c34
-rw-r--r--drivers/media/video/em28xx/em28xx.h1
3 files changed, 36 insertions, 0 deletions
diff --git a/Documentation/video4linux/CARDLIST.em28xx b/Documentation/video4linux/CARDLIST.em28xx
index 187cc48d0924..ea537f5ae408 100644
--- a/Documentation/video4linux/CARDLIST.em28xx
+++ b/Documentation/video4linux/CARDLIST.em28xx
@@ -57,3 +57,4 @@
57 56 -> Pinnacle Hybrid Pro (2) (em2882) [2304:0226] 57 56 -> Pinnacle Hybrid Pro (2) (em2882) [2304:0226]
58 57 -> Kworld PlusTV HD Hybrid 330 (em2883) [eb1a:a316] 58 57 -> Kworld PlusTV HD Hybrid 330 (em2883) [eb1a:a316]
59 58 -> Compro VideoMate ForYou/Stereo (em2820/em2840) [185b:2041] 59 58 -> Compro VideoMate ForYou/Stereo (em2820/em2840) [185b:2041]
60 59 -> Pinnacle PCTV HD Mini (em2874) [2304:023f]
diff --git a/drivers/media/video/em28xx/em28xx-cards.c b/drivers/media/video/em28xx/em28xx-cards.c
index 791ab2cc7d8f..e4251117cbe3 100644
--- a/drivers/media/video/em28xx/em28xx-cards.c
+++ b/drivers/media/video/em28xx/em28xx-cards.c
@@ -1087,6 +1087,20 @@ struct em28xx_board em28xx_boards[] = {
1087 .amux = EM28XX_AMUX_LINE_IN, 1087 .amux = EM28XX_AMUX_LINE_IN,
1088 } }, 1088 } },
1089 }, 1089 },
1090 [EM2874_BOARD_PINNACLE_PCTV_80E] = {
1091 .name = "Pinnacle PCTV HD Mini",
1092 .vchannels = 0,
1093 .tuner_type = TUNER_ABSENT,
1094 .has_dvb = 1,
1095 .decoder = EM28XX_NODECODER,
1096#ifdef DJH_DEBUG
1097 .input = { {
1098 .type = EM28XX_VMUX_TELEVISION,
1099 .vmux = TVP5150_COMPOSITE0,
1100 .amux = EM28XX_AMUX_LINE_IN,
1101 } },
1102#endif
1103 },
1090}; 1104};
1091const unsigned int em28xx_bcount = ARRAY_SIZE(em28xx_boards); 1105const unsigned int em28xx_bcount = ARRAY_SIZE(em28xx_boards);
1092 1106
@@ -1180,6 +1194,8 @@ struct usb_device_id em28xx_id_table [] = {
1180 .driver_info = EM2882_BOARD_PINNACLE_HYBRID_PRO }, 1194 .driver_info = EM2882_BOARD_PINNACLE_HYBRID_PRO },
1181 { USB_DEVICE(0x2304, 0x0227), 1195 { USB_DEVICE(0x2304, 0x0227),
1182 .driver_info = EM2880_BOARD_PINNACLE_PCTV_HD_PRO }, 1196 .driver_info = EM2880_BOARD_PINNACLE_PCTV_HD_PRO },
1197 { USB_DEVICE(0x2304, 0x023f),
1198 .driver_info = EM2874_BOARD_PINNACLE_PCTV_80E },
1183 { USB_DEVICE(0x0413, 0x6023), 1199 { USB_DEVICE(0x0413, 0x6023),
1184 .driver_info = EM2800_BOARD_LEADTEK_WINFAST_USBII }, 1200 .driver_info = EM2800_BOARD_LEADTEK_WINFAST_USBII },
1185 { USB_DEVICE(0x093b, 0xa005), 1201 { USB_DEVICE(0x093b, 0xa005),
@@ -1255,6 +1271,17 @@ static struct em28xx_reg_seq em2882_terratec_hybrid_xs_digital[] = {
1255 { -1, -1, -1, -1}, 1271 { -1, -1, -1, -1},
1256}; 1272};
1257 1273
1274/* Pinnacle PCTV HD Mini (80e) GPIOs
1275 0-5: not used
1276 6: demod reset, active low
1277 7: LED on, active high */
1278static struct em28xx_reg_seq em2874_pinnacle_80e_digital[] = {
1279 {EM28XX_R06_I2C_CLK, 0x45, 0xff, 10}, /*400 KHz*/
1280 {EM2874_R80_GPIO, 0x80, 0xff, 100},/*Demod reset*/
1281 {EM2874_R80_GPIO, 0xc0, 0xff, 10},
1282 { -1, -1, -1, -1},
1283};
1284
1258/* 1285/*
1259 * EEPROM hash table for devices with generic USB IDs 1286 * EEPROM hash table for devices with generic USB IDs
1260 */ 1287 */
@@ -1518,6 +1545,13 @@ void em28xx_pre_card_setup(struct em28xx *dev)
1518 /* enables audio for that device */ 1545 /* enables audio for that device */
1519 em28xx_write_regs_req(dev, 0x00, 0x08, "\xfd", 1); 1546 em28xx_write_regs_req(dev, 0x00, 0x08, "\xfd", 1);
1520 break; 1547 break;
1548
1549 case EM2874_BOARD_PINNACLE_PCTV_80E:
1550 /* Set 400 KHz clock */
1551 em28xx_write_regs(dev, EM28XX_R06_I2C_CLK, "\x45", 1);
1552
1553 dev->digital_gpio = em2874_pinnacle_80e_digital;
1554 break;
1521 } 1555 }
1522 1556
1523 em28xx_gpio_set(dev, dev->tun_analog_gpio); 1557 em28xx_gpio_set(dev, dev->tun_analog_gpio);
diff --git a/drivers/media/video/em28xx/em28xx.h b/drivers/media/video/em28xx/em28xx.h
index 7bf08cebb633..1350a9cea7c5 100644
--- a/drivers/media/video/em28xx/em28xx.h
+++ b/drivers/media/video/em28xx/em28xx.h
@@ -97,6 +97,7 @@
97#define EM2882_BOARD_PINNACLE_HYBRID_PRO 56 97#define EM2882_BOARD_PINNACLE_HYBRID_PRO 56
98#define EM2883_BOARD_KWORLD_HYBRID_A316 57 98#define EM2883_BOARD_KWORLD_HYBRID_A316 57
99#define EM2820_BOARD_COMPRO_VIDEOMATE_FORYOU 58 99#define EM2820_BOARD_COMPRO_VIDEOMATE_FORYOU 58
100#define EM2874_BOARD_PINNACLE_PCTV_80E 59
100 101
101/* Limits minimum and default number of buffers */ 102/* Limits minimum and default number of buffers */
102#define EM28XX_MIN_BUF 4 103#define EM28XX_MIN_BUF 4