V4L/DVB (10926): saa7134: enable digital tv support for Hauppauge WinTV-HVR1120
Signed-off-by: Michael Krufky <mkrufky@linuxtv.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
This commit is contained in:
Родитель
cae78ed599
Коммит
3abdedd8a4
|
@ -153,5 +153,5 @@
|
|||
152 -> Asus Tiger Rev:1.00 [1043:4857]
|
||||
153 -> Kworld Plus TV Analog Lite PCI [17de:7128]
|
||||
154 -> Avermedia AVerTV GO 007 FM Plus [1461:f31d]
|
||||
155 -> Hauppauge WinTV-HVR1120 [0070:6706,0070:6708]
|
||||
155 -> Hauppauge WinTV-HVR1120 ATSC/QAM-Hybrid [0070:6706,0070:6708]
|
||||
156 -> Hauppauge WinTV-HVR1110r3 [0070:6707,0070:6709,0070:670a]
|
||||
|
|
|
@ -42,6 +42,9 @@ config VIDEO_SAA7134_DVB
|
|||
select DVB_MT312 if !DVB_FE_CUSTOMISE
|
||||
select DVB_LNBP21 if !DVB_FE_CUSTOMISE
|
||||
select DVB_ZL10353 if !DVB_FE_CUSTOMISE
|
||||
select DVB_LGDT3305 if !DVB_FE_CUSTOMISE
|
||||
select MEDIA_TUNER_TDA18271 if !MEDIA_TUNER_CUSTOMIZE
|
||||
select MEDIA_TUNER_TDA8290 if !MEDIA_TUNER_CUSTOMIZE
|
||||
---help---
|
||||
This adds support for DVB cards based on the
|
||||
Philips saa7134 chip.
|
||||
|
|
|
@ -3293,13 +3293,15 @@ struct saa7134_board saa7134_boards[] = {
|
|||
},
|
||||
},
|
||||
[SAA7134_BOARD_HAUPPAUGE_HVR1120] = {
|
||||
.name = "Hauppauge WinTV-HVR1120",
|
||||
.name = "Hauppauge WinTV-HVR1120 ATSC/QAM-Hybrid",
|
||||
.audio_clock = 0x00187de7,
|
||||
.tuner_type = TUNER_PHILIPS_TDA8290,
|
||||
.radio_type = UNSET,
|
||||
.tuner_addr = ADDR_UNSET,
|
||||
.radio_addr = ADDR_UNSET,
|
||||
.tuner_config = 3,
|
||||
.mpeg = SAA7134_MPEG_DVB,
|
||||
.ts_type = SAA7134_MPEG_TS_SERIAL,
|
||||
.gpiomask = 0x0800100, /* GPIO 21 is an INPUT */
|
||||
.inputs = {{
|
||||
.name = name_tv,
|
||||
|
|
|
@ -48,6 +48,9 @@
|
|||
#include "isl6405.h"
|
||||
#include "lnbp21.h"
|
||||
#include "tuner-simple.h"
|
||||
#include "tda18271.h"
|
||||
#include "lgdt3305.h"
|
||||
#include "tda8290.h"
|
||||
|
||||
#include "zl10353.h"
|
||||
|
||||
|
@ -964,6 +967,34 @@ static struct zl10036_config avertv_a700_tuner = {
|
|||
.tuner_address = 0x60,
|
||||
};
|
||||
|
||||
static struct lgdt3305_config hcw_lgdt3305_config = {
|
||||
.i2c_addr = 0x0e,
|
||||
.mpeg_mode = LGDT3305_MPEG_SERIAL,
|
||||
.tpclk_edge = LGDT3305_TPCLK_RISING_EDGE,
|
||||
.tpvalid_polarity = LGDT3305_TP_VALID_HIGH,
|
||||
.deny_i2c_rptr = 1,
|
||||
.spectral_inversion = 1,
|
||||
.qam_if_khz = 4000,
|
||||
.vsb_if_khz = 3250,
|
||||
};
|
||||
|
||||
static struct tda18271_std_map hauppauge_tda18271_std_map = {
|
||||
.atsc_6 = { .if_freq = 3250, .agc_mode = 3, .std = 4,
|
||||
.if_lvl = 1, .rfagc_top = 0x58, },
|
||||
.qam_6 = { .if_freq = 4000, .agc_mode = 3, .std = 5,
|
||||
.if_lvl = 1, .rfagc_top = 0x58, },
|
||||
};
|
||||
|
||||
static struct tda18271_config hcw_tda18271_config = {
|
||||
.std_map = &hauppauge_tda18271_std_map,
|
||||
.gate = TDA18271_GATE_ANALOG,
|
||||
.config = 3,
|
||||
};
|
||||
|
||||
static struct tda829x_config tda829x_no_probe = {
|
||||
.probe_tuner = TDA829X_DONT_PROBE,
|
||||
};
|
||||
|
||||
/* ==================================================================
|
||||
* Core code
|
||||
*/
|
||||
|
@ -1090,6 +1121,19 @@ static int dvb_init(struct saa7134_dev *dev)
|
|||
&tda827x_cfg_1) < 0)
|
||||
goto dettach_frontend;
|
||||
break;
|
||||
case SAA7134_BOARD_HAUPPAUGE_HVR1120:
|
||||
fe0->dvb.frontend = dvb_attach(lgdt3305_attach,
|
||||
&hcw_lgdt3305_config,
|
||||
&dev->i2c_adap);
|
||||
if (fe0->dvb.frontend) {
|
||||
dvb_attach(tda829x_attach, fe0->dvb.frontend,
|
||||
&dev->i2c_adap, 0x4b,
|
||||
&tda829x_no_probe);
|
||||
dvb_attach(tda18271_attach, fe0->dvb.frontend,
|
||||
0x60, &dev->i2c_adap,
|
||||
&hcw_tda18271_config);
|
||||
}
|
||||
break;
|
||||
case SAA7134_BOARD_ASUSTeK_P7131_DUAL:
|
||||
if (configure_tda827x_fe(dev, &asus_p7131_dual_config,
|
||||
&tda827x_cfg_0) < 0)
|
||||
|
|
Загрузка…
Ссылка в новой задаче