aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/video/cx23885/cx23885-dvb.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/media/video/cx23885/cx23885-dvb.c')
-rw-r--r--drivers/media/video/cx23885/cx23885-dvb.c54
1 files changed, 49 insertions, 5 deletions
diff --git a/drivers/media/video/cx23885/cx23885-dvb.c b/drivers/media/video/cx23885/cx23885-dvb.c
index 86ac529e62be..022fad798fc2 100644
--- a/drivers/media/video/cx23885/cx23885-dvb.c
+++ b/drivers/media/video/cx23885/cx23885-dvb.c
@@ -396,7 +396,7 @@ static struct stv0900_reg stv0900_ts_regs[] = {
396 396
397static struct stv0900_config netup_stv0900_config = { 397static struct stv0900_config netup_stv0900_config = {
398 .demod_address = 0x68, 398 .demod_address = 0x68,
399 .xtal = 27000000, 399 .xtal = 8000000,
400 .clkmode = 3,/* 0-CLKI, 2-XTALI, else AUTO */ 400 .clkmode = 3,/* 0-CLKI, 2-XTALI, else AUTO */
401 .diseqc_mode = 2,/* 2/3 PWM */ 401 .diseqc_mode = 2,/* 2/3 PWM */
402 .ts_config_regs = stv0900_ts_regs, 402 .ts_config_regs = stv0900_ts_regs,
@@ -408,14 +408,14 @@ static struct stv0900_config netup_stv0900_config = {
408 408
409static struct stv6110_config netup_stv6110_tunerconfig_a = { 409static struct stv6110_config netup_stv6110_tunerconfig_a = {
410 .i2c_address = 0x60, 410 .i2c_address = 0x60,
411 .mclk = 27000000, 411 .mclk = 16000000,
412 .iq_wiring = 0, 412 .clk_div = 1,
413}; 413};
414 414
415static struct stv6110_config netup_stv6110_tunerconfig_b = { 415static struct stv6110_config netup_stv6110_tunerconfig_b = {
416 .i2c_address = 0x63, 416 .i2c_address = 0x63,
417 .mclk = 27000000, 417 .mclk = 16000000,
418 .iq_wiring = 1, 418 .clk_div = 1,
419}; 419};
420 420
421static int tbs_set_voltage(struct dvb_frontend *fe, fe_sec_voltage_t voltage) 421static int tbs_set_voltage(struct dvb_frontend *fe, fe_sec_voltage_t voltage)
@@ -487,6 +487,26 @@ static int cx23885_dvb_set_frontend(struct dvb_frontend *fe,
487 port->set_frontend_save(fe, param) : -ENODEV; 487 port->set_frontend_save(fe, param) : -ENODEV;
488} 488}
489 489
490static struct lgs8gxx_config magicpro_prohdtve2_lgs8g75_config = {
491 .prod = LGS8GXX_PROD_LGS8G75,
492 .demod_address = 0x19,
493 .serial_ts = 0,
494 .ts_clk_pol = 1,
495 .ts_clk_gated = 1,
496 .if_clk_freq = 30400, /* 30.4 MHz */
497 .if_freq = 6500, /* 6.50 MHz */
498 .if_neg_center = 1,
499 .ext_adc = 0,
500 .adc_signed = 1,
501 .adc_vpp = 2, /* 1.6 Vpp */
502 .if_neg_edge = 1,
503};
504
505static struct xc5000_config magicpro_prohdtve2_xc5000_config = {
506 .i2c_address = 0x61,
507 .if_khz = 6500,
508};
509
490static int dvb_register(struct cx23885_tsport *port) 510static int dvb_register(struct cx23885_tsport *port)
491{ 511{
492 struct cx23885_dev *dev = port->dev; 512 struct cx23885_dev *dev = port->dev;
@@ -833,6 +853,30 @@ static int dvb_register(struct cx23885_tsport *port)
833 &mygica_x8506_xc5000_config); 853 &mygica_x8506_xc5000_config);
834 } 854 }
835 break; 855 break;
856 case CX23885_BOARD_MAGICPRO_PROHDTVE2:
857 i2c_bus = &dev->i2c_bus[0];
858 i2c_bus2 = &dev->i2c_bus[1];
859 fe0->dvb.frontend = dvb_attach(lgs8gxx_attach,
860 &magicpro_prohdtve2_lgs8g75_config,
861 &i2c_bus->i2c_adap);
862 if (fe0->dvb.frontend != NULL) {
863 dvb_attach(xc5000_attach,
864 fe0->dvb.frontend,
865 &i2c_bus2->i2c_adap,
866 &magicpro_prohdtve2_xc5000_config);
867 }
868 break;
869 case CX23885_BOARD_HAUPPAUGE_HVR1850:
870 i2c_bus = &dev->i2c_bus[0];
871 fe0->dvb.frontend = dvb_attach(s5h1411_attach,
872 &hcw_s5h1411_config,
873 &i2c_bus->i2c_adap);
874 if (fe0->dvb.frontend != NULL)
875 dvb_attach(tda18271_attach, fe0->dvb.frontend,
876 0x60, &dev->i2c_bus[0].i2c_adap,
877 &hauppauge_tda18271_config);
878 break;
879
836 default: 880 default:
837 printk(KERN_INFO "%s: The frontend of your DVB/ATSC card " 881 printk(KERN_INFO "%s: The frontend of your DVB/ATSC card "
838 " isn't supported yet\n", 882 " isn't supported yet\n",