diff options
author | David Wong <davidtlwong@gmail.com> | 2009-06-17 00:38:12 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2009-09-12 11:17:39 -0400 |
commit | 2365b2d307ee0323062c674ea0495584085e8c24 (patch) | |
tree | 59c08dfe7a2ea444cde9f6e81f0e06746948e362 | |
parent | b80dc1c673f5ff79805215eb94ff008e634e4b2d (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.cx23885 | 1 | ||||
-rw-r--r-- | drivers/media/video/cx23885/cx23885-cards.c | 12 | ||||
-rw-r--r-- | drivers/media/video/cx23885/cx23885-dvb.c | 33 | ||||
-rw-r--r-- | drivers/media/video/cx23885/cx23885.h | 1 |
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 | }; |
205 | const unsigned int cx23885_bcount = ARRAY_SIZE(cx23885_boards); | 209 | const 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 | }; |
329 | const unsigned int cx23885_idcount = ARRAY_SIZE(cx23885_subids); | 337 | const 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 | ||
490 | static 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 | |||
505 | static struct xc5000_config magicpro_prohdtve2_xc5000_config = { | ||
506 | .i2c_address = 0x61, | ||
507 | .if_khz = 6500, | ||
508 | }; | ||
509 | |||
490 | static int dvb_register(struct cx23885_tsport *port) | 510 | static 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 |