Commit da215d22 authored by Rusty Scott's avatar Rusty Scott Committed by Mauro Carvalho Chehab

V4L/DVB (3735): Add support for pcHDTV HD5500 ATSC/QAM

Added card definitions for the pcHDTV HD5500 ATSC/QAM card
Signed-off-by: default avatarRusty Scott <rustys@ieee.org>
Signed-off-by: default avatarMichael Krufky <mkrufky@linuxtv.org>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@infradead.org>
parent 62838084
...@@ -45,3 +45,4 @@ ...@@ -45,3 +45,4 @@
44 -> DViCO FusionHDTV DVB-T Dual Digital [18ac:db50,18ac:db54] 44 -> DViCO FusionHDTV DVB-T Dual Digital [18ac:db50,18ac:db54]
45 -> KWorld HardwareMpegTV XPert [17de:0840] 45 -> KWorld HardwareMpegTV XPert [17de:0840]
46 -> DViCO FusionHDTV DVB-T Hybrid [18ac:db40,18ac:db44] 46 -> DViCO FusionHDTV DVB-T Hybrid [18ac:db40,18ac:db44]
47 -> pcHDTV HD5500 HDTV [7063:5500]
...@@ -601,6 +601,28 @@ struct cx88_board cx88_boards[] = { ...@@ -601,6 +601,28 @@ struct cx88_board cx88_boards[] = {
}, },
.dvb = 1, .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] = { [CX88_BOARD_HAUPPAUGE_ROSLYN] = {
// entry added by Kaustubh D. Bhalerao <bhalerao.1@osu.edu> // entry added by Kaustubh D. Bhalerao <bhalerao.1@osu.edu>
// GPIO values obtained from regspy, courtesy Sean Covel // GPIO values obtained from regspy, courtesy Sean Covel
...@@ -1311,6 +1333,10 @@ struct cx88_subid cx88_subids[] = { ...@@ -1311,6 +1333,10 @@ struct cx88_subid cx88_subids[] = {
.subvendor = 0x18ac, .subvendor = 0x18ac,
.subdevice = 0xdb44, .subdevice = 0xdb44,
.card = CX88_BOARD_DVICO_FUSIONHDTV_DVB_T_HYBRID, .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); const unsigned int cx88_idcount = ARRAY_SIZE(cx88_subids);
......
...@@ -455,6 +455,14 @@ static struct lgdt330x_config fusionhdtv_5_gold = { ...@@ -455,6 +455,14 @@ static struct lgdt330x_config fusionhdtv_5_gold = {
.pll_set = lgdt330x_pll_set, .pll_set = lgdt330x_pll_set,
.set_ts_params = lgdt330x_set_ts_param, .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 #endif
#ifdef HAVE_NXT200X #ifdef HAVE_NXT200X
...@@ -661,6 +669,22 @@ static int dvb_register(struct cx8802_dev *dev) ...@@ -661,6 +669,22 @@ static int dvb_register(struct cx8802_dev *dev)
&dev->core->i2c_adap); &dev->core->i2c_adap);
} }
break; 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 #endif
#ifdef HAVE_NXT200X #ifdef HAVE_NXT200X
case CX88_BOARD_ATI_HDTVWONDER: case CX88_BOARD_ATI_HDTVWONDER:
......
...@@ -76,6 +76,7 @@ static int cx8802_start_dma(struct cx8802_dev *dev, ...@@ -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_Q:
case CX88_BOARD_DVICO_FUSIONHDTV_3_GOLD_T: case CX88_BOARD_DVICO_FUSIONHDTV_3_GOLD_T:
case CX88_BOARD_DVICO_FUSIONHDTV_5_GOLD: case CX88_BOARD_DVICO_FUSIONHDTV_5_GOLD:
case CX88_BOARD_PCHDTV_HD5500:
cx_write(TS_SOP_STAT, 1<<13); cx_write(TS_SOP_STAT, 1<<13);
break; break;
case CX88_BOARD_HAUPPAUGE_NOVASPLUS_S1: case CX88_BOARD_HAUPPAUGE_NOVASPLUS_S1:
......
...@@ -189,6 +189,7 @@ extern struct sram_channel cx88_sram_channels[]; ...@@ -189,6 +189,7 @@ extern struct sram_channel cx88_sram_channels[];
#define CX88_BOARD_DVICO_FUSIONHDTV_DVB_T_DUAL 44 #define CX88_BOARD_DVICO_FUSIONHDTV_DVB_T_DUAL 44
#define CX88_BOARD_KWORLD_HARDWARE_MPEG_TV_XPERT 45 #define CX88_BOARD_KWORLD_HARDWARE_MPEG_TV_XPERT 45
#define CX88_BOARD_DVICO_FUSIONHDTV_DVB_T_HYBRID 46 #define CX88_BOARD_DVICO_FUSIONHDTV_DVB_T_HYBRID 46
#define CX88_BOARD_PCHDTV_HD5500 47
enum cx88_itype { enum cx88_itype {
CX88_VMUX_COMPOSITE1 = 1, CX88_VMUX_COMPOSITE1 = 1,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment