mirror of
https://github.com/adulau/aha.git
synced 2024-12-27 03:06:10 +00:00
V4L/DVB (13204): saa7134: add support for the Leadtek DTV1000S
Thanks to Terry Wu for finding the GPIOs required for svideo / composite input Cc: Terry Wu <terrywu2009@gmail.com> Signed-off-by: Michael Krufky <mkrufky@kernellabs.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
This commit is contained in:
parent
bc809ab37e
commit
184e769f93
4 changed files with 47 additions and 0 deletions
|
@ -173,3 +173,4 @@
|
|||
172 -> RoverMedia TV Link Pro FM [19d1:0138]
|
||||
173 -> Zolid Hybrid TV Tuner PCI [1131:2004]
|
||||
174 -> Asus Europa Hybrid OEM [1043:4847]
|
||||
175 -> Leadtek Winfast DTV1000S [107d:6655]
|
||||
|
|
|
@ -6448,6 +6448,12 @@ struct pci_device_id saa7134_pci_tbl[] = {
|
|||
.subvendor = 0x1043,
|
||||
.subdevice = 0x4847,
|
||||
.driver_data = SAA7134_BOARD_ASUS_EUROPA_HYBRID,
|
||||
}, {
|
||||
.vendor = PCI_VENDOR_ID_PHILIPS,
|
||||
.device = PCI_DEVICE_ID_PHILIPS_SAA7130,
|
||||
.subvendor = 0x107d,
|
||||
.subdevice = 0x6655,
|
||||
.driver_data = SAA7134_BOARD_LEADTEK_WINFAST_DTV1000S,
|
||||
}, {
|
||||
/* --- boards without eeprom + subsystem ID --- */
|
||||
.vendor = PCI_VENDOR_ID_PHILIPS,
|
||||
|
|
|
@ -1045,6 +1045,32 @@ static struct tda18271_config zolid_tda18271_config = {
|
|||
.gate = TDA18271_GATE_ANALOG,
|
||||
};
|
||||
|
||||
static struct tda10048_config dtv1000s_tda10048_config = {
|
||||
.demod_address = 0x10 >> 1,
|
||||
.output_mode = TDA10048_PARALLEL_OUTPUT,
|
||||
.fwbulkwritelen = TDA10048_BULKWRITE_200,
|
||||
.inversion = TDA10048_INVERSION_ON,
|
||||
.dtv6_if_freq_khz = TDA10048_IF_3300,
|
||||
.dtv7_if_freq_khz = TDA10048_IF_3800,
|
||||
.dtv8_if_freq_khz = TDA10048_IF_4300,
|
||||
.clk_freq_khz = TDA10048_CLK_16000,
|
||||
.disable_gate_access = 1,
|
||||
};
|
||||
|
||||
static struct tda18271_std_map dtv1000s_tda18271_std_map = {
|
||||
.dvbt_6 = { .if_freq = 3300, .agc_mode = 3, .std = 4,
|
||||
.if_lvl = 1, .rfagc_top = 0x37, },
|
||||
.dvbt_7 = { .if_freq = 3800, .agc_mode = 3, .std = 5,
|
||||
.if_lvl = 1, .rfagc_top = 0x37, },
|
||||
.dvbt_8 = { .if_freq = 4300, .agc_mode = 3, .std = 6,
|
||||
.if_lvl = 1, .rfagc_top = 0x37, },
|
||||
};
|
||||
|
||||
static struct tda18271_config dtv1000s_tda18271_config = {
|
||||
.std_map = &dtv1000s_tda18271_std_map,
|
||||
.gate = TDA18271_GATE_ANALOG,
|
||||
};
|
||||
|
||||
/* ==================================================================
|
||||
* Core code
|
||||
*/
|
||||
|
@ -1543,6 +1569,19 @@ static int dvb_init(struct saa7134_dev *dev)
|
|||
&zolid_tda18271_config);
|
||||
}
|
||||
break;
|
||||
case SAA7134_BOARD_LEADTEK_WINFAST_DTV1000S:
|
||||
fe0->dvb.frontend = dvb_attach(tda10048_attach,
|
||||
&dtv1000s_tda10048_config,
|
||||
&dev->i2c_adap);
|
||||
if (fe0->dvb.frontend != NULL) {
|
||||
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,
|
||||
&dtv1000s_tda18271_config);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
wprintk("Huh? unknown DVB card?\n");
|
||||
break;
|
||||
|
|
|
@ -298,6 +298,7 @@ struct saa7134_format {
|
|||
#define SAA7134_BOARD_ROVERMEDIA_LINK_PRO_FM 172
|
||||
#define SAA7134_BOARD_ZOLID_HYBRID_PCI 173
|
||||
#define SAA7134_BOARD_ASUS_EUROPA_HYBRID 174
|
||||
#define SAA7134_BOARD_LEADTEK_WINFAST_DTV1000S 175
|
||||
|
||||
#define SAA7134_MAXBOARDS 32
|
||||
#define SAA7134_INPUT_MAX 8
|
||||
|
|
Loading…
Reference in a new issue