diff options
author | Steven Toth <stoth@hauppauge.com> | 2008-01-05 14:53:01 -0500 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@infradead.org> | 2008-01-25 16:05:06 -0500 |
commit | 60464da8b1ed8d7c19563f58cadb0ca990448a36 (patch) | |
tree | 1751dfeee1e761792fc7c313b4eaba10166d0d08 /drivers/media/video/cx88/cx88-dvb.c | |
parent | 27c685a4b09b5e391023d769cddb97e4fcb3b9e1 (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.c | 36 |
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 | ||
376 | static 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 | |||
385 | static 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 | |||
374 | static int dvb_register(struct cx8802_dev *dev) | 392 | static 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); |