aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media
diff options
context:
space:
mode:
authorDevin Heitmueller <devin.heitmueller@gmail.com>2008-11-12 00:05:28 -0500
committerMauro Carvalho Chehab <mchehab@redhat.com>2008-12-29 14:53:32 -0500
commit864ec0b7a03c8401e6e49f9e480489478ea14cb5 (patch)
treed623a69c33f5e37311c4d6d4ac91fcbcef891a6c /drivers/media
parentebef13d480f0223512963ee785bd93770d404fe3 (diff)
V4L/DVB (9590): Add registration for Pinnacle 80e ATSC tuner
Add registration for Pinnacle 80e ATSC tuner Register the em2874 based Pinnacle 80e device. Note that support for this device also requires the new drx-j driver (which is not available yet) Thanks for Ray Lu from Empia for providing the em2874 datasheet. Thanks to Joerg Schindler from Pinnacle for providing sample hardware. Thanks to Rainer Miethling from Pinnacle for providing engineering support. Signed-off-by: Devin Heitmueller <devin.heitmueller@gmail.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media')
-rw-r--r--drivers/media/video/em28xx/em28xx-cards.c34
-rw-r--r--drivers/media/video/em28xx/em28xx.h1
2 files changed, 35 insertions, 0 deletions
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