V4L/DVB (3735): Add support for pcHDTV HD5500 ATSC/QAM
Rusty Scott [Fri, 7 Apr 2006 05:21:31 +0000 (02:21 -0300)]
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>

Documentation/video4linux/CARDLIST.cx88
drivers/media/video/cx88/cx88-cards.c
drivers/media/video/cx88/cx88-dvb.c
drivers/media/video/cx88/cx88-mpeg.c
drivers/media/video/cx88/cx88.h

index 3b39a91..f85907e 100644 (file)
@@ -45,3 +45,4 @@
  44 -> DViCO FusionHDTV DVB-T Dual Digital                 [18ac:db50,18ac:db54]
  45 -> KWorld HardwareMpegTV XPert                         [17de:0840]
  46 -> DViCO FusionHDTV DVB-T Hybrid                       [18ac:db40,18ac:db44]
+ 47 -> pcHDTV HD5500 HDTV                                  [7063:5500]
index f80154b..55ea37d 100644 (file)
@@ -601,6 +601,28 @@ struct cx88_board cx88_boards[] = {
                },
                .dvb            = 1,
        },
+       [CX88_BOARD_PCHDTV_HD5500] = {
+               .name           = "pcHDTV HD5500 HDTV",
+               .tuner_type     = TUNER_LG_TDVS_H062F,
+               .radio_type     = UNSET,
+               .tuner_addr     = ADDR_UNSET,
+               .radio_addr     = ADDR_UNSET,
+               .tda9887_conf   = TDA9887_PRESENT,
+               .input          = {{
+                       .type   = CX88_VMUX_TELEVISION,
+                       .vmux   = 0,
+                       .gpio0  = 0x87fd,
+               },{
+                       .type   = CX88_VMUX_COMPOSITE1,
+                       .vmux   = 1,
+                       .gpio0  = 0x87f9,
+               },{
+                       .type   = CX88_VMUX_SVIDEO,
+                       .vmux   = 2,
+                       .gpio0  = 0x87f9,
+               }},
+               .dvb            = 1,
+       },
        [CX88_BOARD_HAUPPAUGE_ROSLYN] = {
                // entry added by Kaustubh D. Bhalerao <bhalerao.1@osu.edu>
                // GPIO values obtained from regspy, courtesy Sean Covel
@@ -1311,6 +1333,10 @@ struct cx88_subid cx88_subids[] = {
                .subvendor = 0x18ac,
                .subdevice = 0xdb44,
                .card      = CX88_BOARD_DVICO_FUSIONHDTV_DVB_T_HYBRID,
+       },{
+               .subvendor = 0x7063,
+               .subdevice = 0x5500,
+               .card      = CX88_BOARD_PCHDTV_HD5500,
        },
 };
 const unsigned int cx88_idcount = ARRAY_SIZE(cx88_subids);
index 3619a44..5c05e09 100644 (file)
@@ -455,6 +455,14 @@ static struct lgdt330x_config fusionhdtv_5_gold = {
        .pll_set          = lgdt330x_pll_set,
        .set_ts_params    = lgdt330x_set_ts_param,
 };
+
+static struct lgdt330x_config pchdtv_hd5500 = {
+       .demod_address    = 0x59,
+       .demod_chip       = LGDT3303,
+       .serial_mpeg      = 0x40, /* TPSERIAL for 3303 in TOP_CONTROL */
+       .pll_set          = lgdt330x_pll_set,
+       .set_ts_params    = lgdt330x_set_ts_param,
+};
 #endif
 
 #ifdef HAVE_NXT200X
@@ -661,6 +669,22 @@ static int dvb_register(struct cx8802_dev *dev)
                                                    &dev->core->i2c_adap);
                }
                break;
+       case CX88_BOARD_PCHDTV_HD5500:
+               dev->ts_gen_cntrl = 0x08;
+               {
+               /* Do a hardware reset of chip before using it. */
+               struct cx88_core *core = dev->core;
+
+               cx_clear(MO_GP0_IO, 1);
+               mdelay(100);
+               cx_set(MO_GP0_IO, 1);
+               mdelay(200);
+               dev->core->pll_addr = 0x61;
+               dev->core->pll_desc = &dvb_pll_tdvs_tua6034;
+               dev->dvb.frontend = lgdt330x_attach(&pchdtv_hd5500,
+                                                   &dev->core->i2c_adap);
+               }
+               break;
 #endif
 #ifdef HAVE_NXT200X
        case CX88_BOARD_ATI_HDTVWONDER:
index 7d16888..810bf8d 100644 (file)
@@ -76,6 +76,7 @@ static int cx8802_start_dma(struct cx8802_dev    *dev,
                case CX88_BOARD_DVICO_FUSIONHDTV_3_GOLD_Q:
                case CX88_BOARD_DVICO_FUSIONHDTV_3_GOLD_T:
                case CX88_BOARD_DVICO_FUSIONHDTV_5_GOLD:
+               case CX88_BOARD_PCHDTV_HD5500:
                        cx_write(TS_SOP_STAT, 1<<13);
                        break;
                case CX88_BOARD_HAUPPAUGE_NOVASPLUS_S1:
index 326a25f..12944f7 100644 (file)
@@ -189,6 +189,7 @@ extern struct sram_channel cx88_sram_channels[];
 #define CX88_BOARD_DVICO_FUSIONHDTV_DVB_T_DUAL 44
 #define CX88_BOARD_KWORLD_HARDWARE_MPEG_TV_XPERT 45
 #define CX88_BOARD_DVICO_FUSIONHDTV_DVB_T_HYBRID 46
+#define CX88_BOARD_PCHDTV_HD5500           47
 
 enum cx88_itype {
        CX88_VMUX_COMPOSITE1 = 1,