aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRusty Scott <rustys@ieee.org>2006-04-07 01:21:31 -0400
committerMauro Carvalho Chehab <mchehab@infradead.org>2006-06-25 00:57:48 -0400
commitda215d22d82d547c5312f61ac9881ad571e67eea (patch)
treebb5f951cd219acb8fe4f97e5608ad4ddb078e0c7
parent62838084b4c4c83cd511893132e2d8da84f48813 (diff)
V4L/DVB (3735): Add support for pcHDTV HD5500 ATSC/QAM
Added card definitions for the pcHDTV HD5500 ATSC/QAM card Signed-off-by: Rusty Scott <rustys@ieee.org> Signed-off-by: Michael Krufky <mkrufky@linuxtv.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
-rw-r--r--Documentation/video4linux/CARDLIST.cx881
-rw-r--r--drivers/media/video/cx88/cx88-cards.c26
-rw-r--r--drivers/media/video/cx88/cx88-dvb.c24
-rw-r--r--drivers/media/video/cx88/cx88-mpeg.c1
-rw-r--r--drivers/media/video/cx88/cx88.h1
5 files changed, 53 insertions, 0 deletions
diff --git a/Documentation/video4linux/CARDLIST.cx88 b/Documentation/video4linux/CARDLIST.cx88
index 3b39a91b24bd..f85907ee2416 100644
--- a/Documentation/video4linux/CARDLIST.cx88
+++ b/Documentation/video4linux/CARDLIST.cx88
@@ -45,3 +45,4 @@
45 44 -> DViCO FusionHDTV DVB-T Dual Digital [18ac:db50,18ac:db54] 45 44 -> DViCO FusionHDTV DVB-T Dual Digital [18ac:db50,18ac:db54]
46 45 -> KWorld HardwareMpegTV XPert [17de:0840] 46 45 -> KWorld HardwareMpegTV XPert [17de:0840]
47 46 -> DViCO FusionHDTV DVB-T Hybrid [18ac:db40,18ac:db44] 47 46 -> DViCO FusionHDTV DVB-T Hybrid [18ac:db40,18ac:db44]
48 47 -> pcHDTV HD5500 HDTV [7063:5500]
diff --git a/drivers/media/video/cx88/cx88-cards.c b/drivers/media/video/cx88/cx88-cards.c
index f80154b87d22..55ea37dd85ba 100644
--- a/drivers/media/video/cx88/cx88-cards.c
+++ b/drivers/media/video/cx88/cx88-cards.c
@@ -601,6 +601,28 @@ struct cx88_board cx88_boards[] = {
601 }, 601 },
602 .dvb = 1, 602 .dvb = 1,
603 }, 603 },
604 [CX88_BOARD_PCHDTV_HD5500] = {
605 .name = "pcHDTV HD5500 HDTV",
606 .tuner_type = TUNER_LG_TDVS_H062F,
607 .radio_type = UNSET,
608 .tuner_addr = ADDR_UNSET,
609 .radio_addr = ADDR_UNSET,
610 .tda9887_conf = TDA9887_PRESENT,
611 .input = {{
612 .type = CX88_VMUX_TELEVISION,
613 .vmux = 0,
614 .gpio0 = 0x87fd,
615 },{
616 .type = CX88_VMUX_COMPOSITE1,
617 .vmux = 1,
618 .gpio0 = 0x87f9,
619 },{
620 .type = CX88_VMUX_SVIDEO,
621 .vmux = 2,
622 .gpio0 = 0x87f9,
623 }},
624 .dvb = 1,
625 },
604 [CX88_BOARD_HAUPPAUGE_ROSLYN] = { 626 [CX88_BOARD_HAUPPAUGE_ROSLYN] = {
605 // entry added by Kaustubh D. Bhalerao <bhalerao.1@osu.edu> 627 // entry added by Kaustubh D. Bhalerao <bhalerao.1@osu.edu>
606 // GPIO values obtained from regspy, courtesy Sean Covel 628 // GPIO values obtained from regspy, courtesy Sean Covel
@@ -1311,6 +1333,10 @@ struct cx88_subid cx88_subids[] = {
1311 .subvendor = 0x18ac, 1333 .subvendor = 0x18ac,
1312 .subdevice = 0xdb44, 1334 .subdevice = 0xdb44,
1313 .card = CX88_BOARD_DVICO_FUSIONHDTV_DVB_T_HYBRID, 1335 .card = CX88_BOARD_DVICO_FUSIONHDTV_DVB_T_HYBRID,
1336 },{
1337 .subvendor = 0x7063,
1338 .subdevice = 0x5500,
1339 .card = CX88_BOARD_PCHDTV_HD5500,
1314 }, 1340 },
1315}; 1341};
1316const unsigned int cx88_idcount = ARRAY_SIZE(cx88_subids); 1342const unsigned int cx88_idcount = ARRAY_SIZE(cx88_subids);
diff --git a/drivers/media/video/cx88/cx88-dvb.c b/drivers/media/video/cx88/cx88-dvb.c
index 3619a449aefd..5c05e09e73fa 100644
--- a/drivers/media/video/cx88/cx88-dvb.c
+++ b/drivers/media/video/cx88/cx88-dvb.c
@@ -455,6 +455,14 @@ static struct lgdt330x_config fusionhdtv_5_gold = {
455 .pll_set = lgdt330x_pll_set, 455 .pll_set = lgdt330x_pll_set,
456 .set_ts_params = lgdt330x_set_ts_param, 456 .set_ts_params = lgdt330x_set_ts_param,
457}; 457};
458
459static struct lgdt330x_config pchdtv_hd5500 = {
460 .demod_address = 0x59,
461 .demod_chip = LGDT3303,
462 .serial_mpeg = 0x40, /* TPSERIAL for 3303 in TOP_CONTROL */
463 .pll_set = lgdt330x_pll_set,
464 .set_ts_params = lgdt330x_set_ts_param,
465};
458#endif 466#endif
459 467
460#ifdef HAVE_NXT200X 468#ifdef HAVE_NXT200X
@@ -661,6 +669,22 @@ static int dvb_register(struct cx8802_dev *dev)
661 &dev->core->i2c_adap); 669 &dev->core->i2c_adap);
662 } 670 }
663 break; 671 break;
672 case CX88_BOARD_PCHDTV_HD5500:
673 dev->ts_gen_cntrl = 0x08;
674 {
675 /* Do a hardware reset of chip before using it. */
676 struct cx88_core *core = dev->core;
677
678 cx_clear(MO_GP0_IO, 1);
679 mdelay(100);
680 cx_set(MO_GP0_IO, 1);
681 mdelay(200);
682 dev->core->pll_addr = 0x61;
683 dev->core->pll_desc = &dvb_pll_tdvs_tua6034;
684 dev->dvb.frontend = lgdt330x_attach(&pchdtv_hd5500,
685 &dev->core->i2c_adap);
686 }
687 break;
664#endif 688#endif
665#ifdef HAVE_NXT200X 689#ifdef HAVE_NXT200X
666 case CX88_BOARD_ATI_HDTVWONDER: 690 case CX88_BOARD_ATI_HDTVWONDER:
diff --git a/drivers/media/video/cx88/cx88-mpeg.c b/drivers/media/video/cx88/cx88-mpeg.c
index 7d16888b4a86..810bf8d220c5 100644
--- a/drivers/media/video/cx88/cx88-mpeg.c
+++ b/drivers/media/video/cx88/cx88-mpeg.c
@@ -76,6 +76,7 @@ static int cx8802_start_dma(struct cx8802_dev *dev,
76 case CX88_BOARD_DVICO_FUSIONHDTV_3_GOLD_Q: 76 case CX88_BOARD_DVICO_FUSIONHDTV_3_GOLD_Q:
77 case CX88_BOARD_DVICO_FUSIONHDTV_3_GOLD_T: 77 case CX88_BOARD_DVICO_FUSIONHDTV_3_GOLD_T:
78 case CX88_BOARD_DVICO_FUSIONHDTV_5_GOLD: 78 case CX88_BOARD_DVICO_FUSIONHDTV_5_GOLD:
79 case CX88_BOARD_PCHDTV_HD5500:
79 cx_write(TS_SOP_STAT, 1<<13); 80 cx_write(TS_SOP_STAT, 1<<13);
80 break; 81 break;
81 case CX88_BOARD_HAUPPAUGE_NOVASPLUS_S1: 82 case CX88_BOARD_HAUPPAUGE_NOVASPLUS_S1:
diff --git a/drivers/media/video/cx88/cx88.h b/drivers/media/video/cx88/cx88.h
index 326a25f147f6..12944f7a9be2 100644
--- a/drivers/media/video/cx88/cx88.h
+++ b/drivers/media/video/cx88/cx88.h
@@ -189,6 +189,7 @@ extern struct sram_channel cx88_sram_channels[];
189#define CX88_BOARD_DVICO_FUSIONHDTV_DVB_T_DUAL 44 189#define CX88_BOARD_DVICO_FUSIONHDTV_DVB_T_DUAL 44
190#define CX88_BOARD_KWORLD_HARDWARE_MPEG_TV_XPERT 45 190#define CX88_BOARD_KWORLD_HARDWARE_MPEG_TV_XPERT 45
191#define CX88_BOARD_DVICO_FUSIONHDTV_DVB_T_HYBRID 46 191#define CX88_BOARD_DVICO_FUSIONHDTV_DVB_T_HYBRID 46
192#define CX88_BOARD_PCHDTV_HD5500 47
192 193
193enum cx88_itype { 194enum cx88_itype {
194 CX88_VMUX_COMPOSITE1 = 1, 195 CX88_VMUX_COMPOSITE1 = 1,