diff options
-rw-r--r-- | Documentation/video4linux/CARDLIST.em28xx | 1 | ||||
-rw-r--r-- | drivers/media/video/em28xx/em28xx-cards.c | 34 | ||||
-rw-r--r-- | drivers/media/video/em28xx/em28xx.h | 1 |
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 | }; |
1091 | const unsigned int em28xx_bcount = ARRAY_SIZE(em28xx_boards); | 1105 | const 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 */ | ||
1278 | static 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 |