aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/media')
-rw-r--r--drivers/media/video/em28xx/em28xx-cards.c24
-rw-r--r--drivers/media/video/em28xx/em28xx-dvb.c1
2 files changed, 21 insertions, 4 deletions
diff --git a/drivers/media/video/em28xx/em28xx-cards.c b/drivers/media/video/em28xx/em28xx-cards.c
index 1bd789a52e63..ba20065c24b1 100644
--- a/drivers/media/video/em28xx/em28xx-cards.c
+++ b/drivers/media/video/em28xx/em28xx-cards.c
@@ -157,6 +157,20 @@ static struct em28xx_reg_seq evga_indtube_digital[] = {
157 { -1, -1, -1, -1}, 157 { -1, -1, -1, -1},
158}; 158};
159 159
160/* Pinnacle Hybrid Pro eb1a:2881 */
161static struct em28xx_reg_seq pinnacle_hybrid_pro_analog[] = {
162 {EM28XX_R08_GPIO, 0x6f, ~EM_GPIO_4, 10},
163 { -1, -1, -1, -1},
164};
165
166static struct em28xx_reg_seq pinnacle_hybrid_pro_digital[] = {
167 {EM28XX_R08_GPIO, 0x6e, ~EM_GPIO_4, 10},
168 {EM2880_R04_GPO, 0x04, 0xff, 100},/* zl10353 reset */
169 {EM2880_R04_GPO, 0x0c, 0xff, 1},
170 { -1, -1, -1, -1},
171};
172
173
160/* Callback for the most boards */ 174/* Callback for the most boards */
161static struct em28xx_reg_seq default_tuner_gpio[] = { 175static struct em28xx_reg_seq default_tuner_gpio[] = {
162 {EM28XX_R08_GPIO, EM_GPIO_4, EM_GPIO_4, 10}, 176 {EM28XX_R08_GPIO, EM_GPIO_4, EM_GPIO_4, 10},
@@ -1253,25 +1267,26 @@ struct em28xx_board em28xx_boards[] = {
1253 }, 1267 },
1254 [EM2881_BOARD_PINNACLE_HYBRID_PRO] = { 1268 [EM2881_BOARD_PINNACLE_HYBRID_PRO] = {
1255 .name = "Pinnacle Hybrid Pro", 1269 .name = "Pinnacle Hybrid Pro",
1256 .valid = EM28XX_BOARD_NOT_VALIDATED,
1257 .tuner_type = TUNER_XC2028, 1270 .tuner_type = TUNER_XC2028,
1258 .tuner_gpio = default_tuner_gpio, 1271 .tuner_gpio = default_tuner_gpio,
1259 .decoder = EM28XX_TVP5150, 1272 .decoder = EM28XX_TVP5150,
1273 .has_dvb = 1,
1274 .dvb_gpio = pinnacle_hybrid_pro_digital,
1260 .input = { { 1275 .input = { {
1261 .type = EM28XX_VMUX_TELEVISION, 1276 .type = EM28XX_VMUX_TELEVISION,
1262 .vmux = TVP5150_COMPOSITE0, 1277 .vmux = TVP5150_COMPOSITE0,
1263 .amux = EM28XX_AMUX_VIDEO, 1278 .amux = EM28XX_AMUX_VIDEO,
1264 .gpio = default_analog, 1279 .gpio = pinnacle_hybrid_pro_analog,
1265 }, { 1280 }, {
1266 .type = EM28XX_VMUX_COMPOSITE1, 1281 .type = EM28XX_VMUX_COMPOSITE1,
1267 .vmux = TVP5150_COMPOSITE1, 1282 .vmux = TVP5150_COMPOSITE1,
1268 .amux = EM28XX_AMUX_LINE_IN, 1283 .amux = EM28XX_AMUX_LINE_IN,
1269 .gpio = default_analog, 1284 .gpio = pinnacle_hybrid_pro_analog,
1270 }, { 1285 }, {
1271 .type = EM28XX_VMUX_SVIDEO, 1286 .type = EM28XX_VMUX_SVIDEO,
1272 .vmux = TVP5150_SVIDEO, 1287 .vmux = TVP5150_SVIDEO,
1273 .amux = EM28XX_AMUX_LINE_IN, 1288 .amux = EM28XX_AMUX_LINE_IN,
1274 .gpio = default_analog, 1289 .gpio = pinnacle_hybrid_pro_analog,
1275 } }, 1290 } },
1276 }, 1291 },
1277 [EM2882_BOARD_PINNACLE_HYBRID_PRO] = { 1292 [EM2882_BOARD_PINNACLE_HYBRID_PRO] = {
@@ -1641,6 +1656,7 @@ static struct em28xx_hash_table em28xx_eeprom_hash[] = {
1641 {0x966a0441, EM2880_BOARD_KWORLD_DVB_310U, TUNER_XC2028}, 1656 {0x966a0441, EM2880_BOARD_KWORLD_DVB_310U, TUNER_XC2028},
1642 {0x9567eb1a, EM2880_BOARD_EMPIRE_DUAL_TV, TUNER_XC2028}, 1657 {0x9567eb1a, EM2880_BOARD_EMPIRE_DUAL_TV, TUNER_XC2028},
1643 {0xcee44a99, EM2882_BOARD_EVGA_INDTUBE, TUNER_XC2028}, 1658 {0xcee44a99, EM2882_BOARD_EVGA_INDTUBE, TUNER_XC2028},
1659 {0xb8846b20, EM2881_BOARD_PINNACLE_HYBRID_PRO, TUNER_XC2028},
1644}; 1660};
1645 1661
1646/* I2C devicelist hash table for devices with generic USB IDs */ 1662/* I2C devicelist hash table for devices with generic USB IDs */
diff --git a/drivers/media/video/em28xx/em28xx-dvb.c b/drivers/media/video/em28xx/em28xx-dvb.c
index f3f0e8fe73c6..5ebc274c1b2f 100644
--- a/drivers/media/video/em28xx/em28xx-dvb.c
+++ b/drivers/media/video/em28xx/em28xx-dvb.c
@@ -489,6 +489,7 @@ static int dvb_init(struct em28xx *dev)
489 } 489 }
490 break; 490 break;
491 case EM2880_BOARD_TERRATEC_HYBRID_XS: 491 case EM2880_BOARD_TERRATEC_HYBRID_XS:
492 case EM2881_BOARD_PINNACLE_HYBRID_PRO:
492 dvb->frontend = dvb_attach(zl10353_attach, 493 dvb->frontend = dvb_attach(zl10353_attach,
493 &em28xx_terratec_xs_zl10353_xc3028, 494 &em28xx_terratec_xs_zl10353_xc3028,
494 &dev->i2c_adap); 495 &dev->i2c_adap);