aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/video/cx88/cx88-dvb.c
diff options
context:
space:
mode:
authorSteven Toth <stoth@hauppauge.com>2008-01-05 14:53:01 -0500
committerMauro Carvalho Chehab <mchehab@infradead.org>2008-01-25 16:05:06 -0500
commit60464da8b1ed8d7c19563f58cadb0ca990448a36 (patch)
tree1751dfeee1e761792fc7c313b4eaba10166d0d08 /drivers/media/video/cx88/cx88-dvb.c
parent27c685a4b09b5e391023d769cddb97e4fcb3b9e1 (diff)
V4L/DVB (7043): New card supported(partially): Pinnacle 800i
From Zhang: This patch continues the support for the Pinnacle HD 800i. Patch committed as-is, cleanups to follow ... Steve Signed-off-by: Chaogui Zhang <czhang1974@gmail.com> Signed-off-by: Steven Toth <stoth@hauppauge.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Diffstat (limited to 'drivers/media/video/cx88/cx88-dvb.c')
-rw-r--r--drivers/media/video/cx88/cx88-dvb.c36
1 files changed, 36 insertions, 0 deletions
diff --git a/drivers/media/video/cx88/cx88-dvb.c b/drivers/media/video/cx88/cx88-dvb.c
index fce19caf9d04..0246f97a9987 100644
--- a/drivers/media/video/cx88/cx88-dvb.c
+++ b/drivers/media/video/cx88/cx88-dvb.c
@@ -40,6 +40,8 @@
40#include "cx22702.h" 40#include "cx22702.h"
41#include "or51132.h" 41#include "or51132.h"
42#include "lgdt330x.h" 42#include "lgdt330x.h"
43#include "s5h1409.h"
44#include "xc5000.h"
43#include "nxt200x.h" 45#include "nxt200x.h"
44#include "cx24123.h" 46#include "cx24123.h"
45#include "isl6421.h" 47#include "isl6421.h"
@@ -371,6 +373,22 @@ static struct cx24123_config kworld_dvbs_100_config = {
371 .lnb_polarity = 1, 373 .lnb_polarity = 1,
372}; 374};
373 375
376static struct s5h1409_config pinnacle_pctv_hd_800i_config = {
377 .demod_address = 0x32 >> 1,
378 .output_mode = S5H1409_PARALLEL_OUTPUT,
379 .gpio = S5H1409_GPIO_ON,
380 .qam_if = 44000,
381 .inversion = S5H1409_INVERSION_OFF,
382 .status_mode = S5H1409_DEMODLOCKING,
383};
384
385static struct xc5000_config pinnacle_pctv_hd_800i_tuner_config = {
386 .i2c_address = 0x64,
387 .if_khz = 5380,
388 /* cannot set .video_dev here, do it right before attach */
389 .tuner_callback = cx88_tuner_callback,
390};
391
374static int dvb_register(struct cx8802_dev *dev) 392static int dvb_register(struct cx8802_dev *dev)
375{ 393{
376 /* init struct videobuf_dvb */ 394 /* init struct videobuf_dvb */
@@ -625,6 +643,24 @@ static int dvb_register(struct cx8802_dev *dev)
625 dev->dvb.frontend->ops.set_voltage = geniatech_dvbs_set_voltage; 643 dev->dvb.frontend->ops.set_voltage = geniatech_dvbs_set_voltage;
626 } 644 }
627 break; 645 break;
646 case CX88_BOARD_PINNACLE_PCTV_HD_800i:
647 /* Parallel mpeg data port and punctured clock mode */
648 dev->ts_gen_cntrl = 0x04;
649
650 dev->dvb.frontend = dvb_attach(s5h1409_attach,
651 &pinnacle_pctv_hd_800i_config,
652 &dev->core->i2c_adap);
653 if (dev->dvb.frontend != NULL) {
654 /* tuner_config.video_dev must point to
655 * i2c_adap.algo_data
656 */
657 pinnacle_pctv_hd_800i_tuner_config.video_dev =
658 dev->core->i2c_adap.algo_data;
659 dvb_attach(xc5000_attach, dev->dvb.frontend,
660 &dev->core->i2c_adap,
661 &pinnacle_pctv_hd_800i_tuner_config);
662 }
663 break;
628 default: 664 default:
629 printk(KERN_ERR "%s/2: The frontend of your DVB/ATSC card isn't supported yet\n", 665 printk(KERN_ERR "%s/2: The frontend of your DVB/ATSC card isn't supported yet\n",
630 dev->core->name); 666 dev->core->name);