Commit 3abdedd8 authored by Michael Krufky's avatar Michael Krufky Committed by Mauro Carvalho Chehab

V4L/DVB (10926): saa7134: enable digital tv support for Hauppauge WinTV-HVR1120

Signed-off-by: default avatarMichael Krufky <mkrufky@linuxtv.org>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent cae78ed5
...@@ -153,5 +153,5 @@ ...@@ -153,5 +153,5 @@
152 -> Asus Tiger Rev:1.00 [1043:4857] 152 -> Asus Tiger Rev:1.00 [1043:4857]
153 -> Kworld Plus TV Analog Lite PCI [17de:7128] 153 -> Kworld Plus TV Analog Lite PCI [17de:7128]
154 -> Avermedia AVerTV GO 007 FM Plus [1461:f31d] 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] 156 -> Hauppauge WinTV-HVR1110r3 [0070:6707,0070:6709,0070:670a]
...@@ -42,6 +42,9 @@ config VIDEO_SAA7134_DVB ...@@ -42,6 +42,9 @@ config VIDEO_SAA7134_DVB
select DVB_MT312 if !DVB_FE_CUSTOMISE select DVB_MT312 if !DVB_FE_CUSTOMISE
select DVB_LNBP21 if !DVB_FE_CUSTOMISE select DVB_LNBP21 if !DVB_FE_CUSTOMISE
select DVB_ZL10353 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--- ---help---
This adds support for DVB cards based on the This adds support for DVB cards based on the
Philips saa7134 chip. Philips saa7134 chip.
......
...@@ -3293,13 +3293,15 @@ struct saa7134_board saa7134_boards[] = { ...@@ -3293,13 +3293,15 @@ struct saa7134_board saa7134_boards[] = {
}, },
}, },
[SAA7134_BOARD_HAUPPAUGE_HVR1120] = { [SAA7134_BOARD_HAUPPAUGE_HVR1120] = {
.name = "Hauppauge WinTV-HVR1120", .name = "Hauppauge WinTV-HVR1120 ATSC/QAM-Hybrid",
.audio_clock = 0x00187de7, .audio_clock = 0x00187de7,
.tuner_type = TUNER_PHILIPS_TDA8290, .tuner_type = TUNER_PHILIPS_TDA8290,
.radio_type = UNSET, .radio_type = UNSET,
.tuner_addr = ADDR_UNSET, .tuner_addr = ADDR_UNSET,
.radio_addr = ADDR_UNSET, .radio_addr = ADDR_UNSET,
.tuner_config = 3, .tuner_config = 3,
.mpeg = SAA7134_MPEG_DVB,
.ts_type = SAA7134_MPEG_TS_SERIAL,
.gpiomask = 0x0800100, /* GPIO 21 is an INPUT */ .gpiomask = 0x0800100, /* GPIO 21 is an INPUT */
.inputs = {{ .inputs = {{
.name = name_tv, .name = name_tv,
......
...@@ -48,6 +48,9 @@ ...@@ -48,6 +48,9 @@
#include "isl6405.h" #include "isl6405.h"
#include "lnbp21.h" #include "lnbp21.h"
#include "tuner-simple.h" #include "tuner-simple.h"
#include "tda18271.h"
#include "lgdt3305.h"
#include "tda8290.h"
#include "zl10353.h" #include "zl10353.h"
...@@ -964,6 +967,34 @@ static struct zl10036_config avertv_a700_tuner = { ...@@ -964,6 +967,34 @@ static struct zl10036_config avertv_a700_tuner = {
.tuner_address = 0x60, .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 * Core code
*/ */
...@@ -1090,6 +1121,19 @@ static int dvb_init(struct saa7134_dev *dev) ...@@ -1090,6 +1121,19 @@ static int dvb_init(struct saa7134_dev *dev)
&tda827x_cfg_1) < 0) &tda827x_cfg_1) < 0)
goto dettach_frontend; goto dettach_frontend;
break; 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: case SAA7134_BOARD_ASUSTeK_P7131_DUAL:
if (configure_tda827x_fe(dev, &asus_p7131_dual_config, if (configure_tda827x_fe(dev, &asus_p7131_dual_config,
&tda827x_cfg_0) < 0) &tda827x_cfg_0) < 0)
......
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