aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Wong <davidtlwong@gmail.com>2009-06-17 00:38:12 -0400
committerMauro Carvalho Chehab <mchehab@redhat.com>2009-09-12 11:17:39 -0400
commit2365b2d307ee0323062c674ea0495584085e8c24 (patch)
tree59c08dfe7a2ea444cde9f6e81f0e06746948e362
parentb80dc1c673f5ff79805215eb94ff008e634e4b2d (diff)
V4L/DVB (12272): cx23885: add card Magic-Pro ProHDTV Extreme 2
cx23885: add card Magic-Pro ProHDTV Extreme 2 PCI-E. Signed-off-by: David T.L. Wong <davidtlwong@gmail.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-rw-r--r--Documentation/video4linux/CARDLIST.cx238851
-rw-r--r--drivers/media/video/cx23885/cx23885-cards.c12
-rw-r--r--drivers/media/video/cx23885/cx23885-dvb.c33
-rw-r--r--drivers/media/video/cx23885/cx23885.h1
4 files changed, 46 insertions, 1 deletions
diff --git a/Documentation/video4linux/CARDLIST.cx23885 b/Documentation/video4linux/CARDLIST.cx23885
index 450b8f8c389b..19feb514f93d 100644
--- a/Documentation/video4linux/CARDLIST.cx23885
+++ b/Documentation/video4linux/CARDLIST.cx23885
@@ -21,3 +21,4 @@
21 20 -> Hauppauge WinTV-HVR1255 [0070:2251] 21 20 -> Hauppauge WinTV-HVR1255 [0070:2251]
22 21 -> Hauppauge WinTV-HVR1210 [0070:2291,0070:2295] 22 21 -> Hauppauge WinTV-HVR1210 [0070:2291,0070:2295]
23 22 -> Mygica X8506 DMB-TH [14f1:8651] 23 22 -> Mygica X8506 DMB-TH [14f1:8651]
24 23 -> Magic-Pro ProHDTV Extreme 2 [14f1:8657]
diff --git a/drivers/media/video/cx23885/cx23885-cards.c b/drivers/media/video/cx23885/cx23885-cards.c
index ce29b5e34a11..a9d362981473 100644
--- a/drivers/media/video/cx23885/cx23885-cards.c
+++ b/drivers/media/video/cx23885/cx23885-cards.c
@@ -201,6 +201,10 @@ struct cx23885_board cx23885_boards[] = {
201 .name = "Mygica X8506 DMB-TH", 201 .name = "Mygica X8506 DMB-TH",
202 .portb = CX23885_MPEG_DVB, 202 .portb = CX23885_MPEG_DVB,
203 }, 203 },
204 [CX23885_BOARD_MAGICPRO_PROHDTVE2] = {
205 .name = "Magic-Pro ProHDTV Extreme 2",
206 .portb = CX23885_MPEG_DVB,
207 },
204}; 208};
205const unsigned int cx23885_bcount = ARRAY_SIZE(cx23885_boards); 209const unsigned int cx23885_bcount = ARRAY_SIZE(cx23885_boards);
206 210
@@ -324,6 +328,10 @@ struct cx23885_subid cx23885_subids[] = {
324 .subvendor = 0x14f1, 328 .subvendor = 0x14f1,
325 .subdevice = 0x8651, 329 .subdevice = 0x8651,
326 .card = CX23885_BOARD_MYGICA_X8506, 330 .card = CX23885_BOARD_MYGICA_X8506,
331 }, {
332 .subvendor = 0x14f1,
333 .subdevice = 0x8657,
334 .card = CX23885_BOARD_MAGICPRO_PROHDTVE2,
327 }, 335 },
328}; 336};
329const unsigned int cx23885_idcount = ARRAY_SIZE(cx23885_subids); 337const unsigned int cx23885_idcount = ARRAY_SIZE(cx23885_subids);
@@ -715,8 +723,9 @@ void cx23885_gpio_setup(struct cx23885_dev *dev)
715 cx23885_gpio_set(dev, GPIO_9); 723 cx23885_gpio_set(dev, GPIO_9);
716 break; 724 break;
717 case CX23885_BOARD_MYGICA_X8506: 725 case CX23885_BOARD_MYGICA_X8506:
726 case CX23885_BOARD_MAGICPRO_PROHDTVE2:
718 /* GPIO-1 reset XC5000 */ 727 /* GPIO-1 reset XC5000 */
719 /* GPIO-2 reset LGS8GL5 */ 728 /* GPIO-2 reset LGS8GL5 / LGS8G75 */
720 cx_set(GP0_IO, 0x00060000); 729 cx_set(GP0_IO, 0x00060000);
721 cx_clear(GP0_IO, 0x00000006); 730 cx_clear(GP0_IO, 0x00000006);
722 mdelay(100); 731 mdelay(100);
@@ -827,6 +836,7 @@ void cx23885_card_setup(struct cx23885_dev *dev)
827 ts2->src_sel_val = CX23885_SRC_SEL_PARALLEL_MPEG_VIDEO; 836 ts2->src_sel_val = CX23885_SRC_SEL_PARALLEL_MPEG_VIDEO;
828 break; 837 break;
829 case CX23885_BOARD_MYGICA_X8506: 838 case CX23885_BOARD_MYGICA_X8506:
839 case CX23885_BOARD_MAGICPRO_PROHDTVE2:
830 ts1->gen_ctrl_val = 0x5; /* Parallel */ 840 ts1->gen_ctrl_val = 0x5; /* Parallel */
831 ts1->ts_clk_en_val = 0x1; /* Enable TS_CLK */ 841 ts1->ts_clk_en_val = 0x1; /* Enable TS_CLK */
832 ts1->src_sel_val = CX23885_SRC_SEL_PARALLEL_MPEG_VIDEO; 842 ts1->src_sel_val = CX23885_SRC_SEL_PARALLEL_MPEG_VIDEO;
diff --git a/drivers/media/video/cx23885/cx23885-dvb.c b/drivers/media/video/cx23885/cx23885-dvb.c
index 86ac529e62be..e4a22dcaf59b 100644
--- a/drivers/media/video/cx23885/cx23885-dvb.c
+++ b/drivers/media/video/cx23885/cx23885-dvb.c
@@ -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,19 @@ 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;
836 default: 869 default:
837 printk(KERN_INFO "%s: The frontend of your DVB/ATSC card " 870 printk(KERN_INFO "%s: The frontend of your DVB/ATSC card "
838 " isn't supported yet\n", 871 " isn't supported yet\n",
diff --git a/drivers/media/video/cx23885/cx23885.h b/drivers/media/video/cx23885/cx23885.h
index 76a51509d8fb..d68574d867ce 100644
--- a/drivers/media/video/cx23885/cx23885.h
+++ b/drivers/media/video/cx23885/cx23885.h
@@ -76,6 +76,7 @@
76#define CX23885_BOARD_HAUPPAUGE_HVR1255 20 76#define CX23885_BOARD_HAUPPAUGE_HVR1255 20
77#define CX23885_BOARD_HAUPPAUGE_HVR1210 21 77#define CX23885_BOARD_HAUPPAUGE_HVR1210 21
78#define CX23885_BOARD_MYGICA_X8506 22 78#define CX23885_BOARD_MYGICA_X8506 22
79#define CX23885_BOARD_MAGICPRO_PROHDTVE2 23
79 80
80#define GPIO_0 0x00000001 81#define GPIO_0 0x00000001
81#define GPIO_1 0x00000002 82#define GPIO_1 0x00000002