diff options
author | Steven Toth <stoth@hauppauge.com> | 2008-08-04 20:39:53 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2008-10-12 07:36:49 -0400 |
commit | aef2d186e381816733fa15d67ad63bd99254cb9e (patch) | |
tree | 31f02a3b03a4aeb17f6e896cb094887d1f613a99 /drivers/media/video/cx23885/cx23885-cards.c | |
parent | 90a71b1c1ab003dd4524afca44c2ad2519f4420c (diff) |
V4L/DVB (8644): Add support for DViCO FusionHDTV DVB-T Dual Express
Add support for the DViCO FusionHDTV DVB-T Dual Express card, based on
work by Chris Pascoe and Stephen Backway.
Signed-off-by: Steven Toth <stoth@hauppauge.com>
Signed-off-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/video/cx23885/cx23885-cards.c')
-rw-r--r-- | drivers/media/video/cx23885/cx23885-cards.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/drivers/media/video/cx23885/cx23885-cards.c b/drivers/media/video/cx23885/cx23885-cards.c index 93ad7f8ce203..7caa2465e7fb 100644 --- a/drivers/media/video/cx23885/cx23885-cards.c +++ b/drivers/media/video/cx23885/cx23885-cards.c | |||
@@ -149,6 +149,11 @@ struct cx23885_board cx23885_boards[] = { | |||
149 | .portb = CX23885_MPEG_DVB, | 149 | .portb = CX23885_MPEG_DVB, |
150 | .portc = CX23885_MPEG_DVB, | 150 | .portc = CX23885_MPEG_DVB, |
151 | }, | 151 | }, |
152 | [CX23885_BOARD_DVICO_FUSIONHDTV_DVB_T_DUAL_EXP] = { | ||
153 | .name = "DViCO FusionHDTV DVB-T Dual Express", | ||
154 | .portb = CX23885_MPEG_DVB, | ||
155 | .portc = CX23885_MPEG_DVB, | ||
156 | }, | ||
152 | }; | 157 | }; |
153 | const unsigned int cx23885_bcount = ARRAY_SIZE(cx23885_boards); | 158 | const unsigned int cx23885_bcount = ARRAY_SIZE(cx23885_boards); |
154 | 159 | ||
@@ -220,6 +225,10 @@ struct cx23885_subid cx23885_subids[] = { | |||
220 | .subvendor = 0x18ac, | 225 | .subvendor = 0x18ac, |
221 | .subdevice = 0xd618, | 226 | .subdevice = 0xd618, |
222 | .card = CX23885_BOARD_DVICO_FUSIONHDTV_7_DUAL_EXP, | 227 | .card = CX23885_BOARD_DVICO_FUSIONHDTV_7_DUAL_EXP, |
228 | },{ | ||
229 | .subvendor = 0x18ac, | ||
230 | .subdevice = 0xdb78, | ||
231 | .card = CX23885_BOARD_DVICO_FUSIONHDTV_DVB_T_DUAL_EXP, | ||
223 | }, | 232 | }, |
224 | }; | 233 | }; |
225 | const unsigned int cx23885_idcount = ARRAY_SIZE(cx23885_subids); | 234 | const unsigned int cx23885_idcount = ARRAY_SIZE(cx23885_subids); |
@@ -340,6 +349,7 @@ static int cx23885_tuner_callback(struct cx23885_dev *dev, int port, | |||
340 | bitmask = 0x04; | 349 | bitmask = 0x04; |
341 | break; | 350 | break; |
342 | case CX23885_BOARD_DVICO_FUSIONHDTV_7_DUAL_EXP: | 351 | case CX23885_BOARD_DVICO_FUSIONHDTV_7_DUAL_EXP: |
352 | case CX23885_BOARD_DVICO_FUSIONHDTV_DVB_T_DUAL_EXP: | ||
343 | if (command == 0) { | 353 | if (command == 0) { |
344 | 354 | ||
345 | /* Two identical tuners on two different i2c buses, | 355 | /* Two identical tuners on two different i2c buses, |
@@ -483,6 +493,19 @@ void cx23885_gpio_setup(struct cx23885_dev *dev) | |||
483 | mdelay(20); | 493 | mdelay(20); |
484 | cx_set(GP0_IO, 0x000f000f); | 494 | cx_set(GP0_IO, 0x000f000f); |
485 | break; | 495 | break; |
496 | case CX23885_BOARD_DVICO_FUSIONHDTV_DVB_T_DUAL_EXP: | ||
497 | /* GPIO-0 portb xc3028 reset */ | ||
498 | /* GPIO-1 portb zl10353 reset */ | ||
499 | /* GPIO-2 portc xc3028 reset */ | ||
500 | /* GPIO-3 portc zl10353 reset */ | ||
501 | |||
502 | /* Put the parts into reset and back */ | ||
503 | cx_set(GP0_IO, 0x000f0000); | ||
504 | mdelay(20); | ||
505 | cx_clear(GP0_IO, 0x0000000f); | ||
506 | mdelay(20); | ||
507 | cx_set(GP0_IO, 0x000f000f); | ||
508 | break; | ||
486 | } | 509 | } |
487 | } | 510 | } |
488 | 511 | ||
@@ -534,6 +557,7 @@ void cx23885_card_setup(struct cx23885_dev *dev) | |||
534 | 557 | ||
535 | switch (dev->board) { | 558 | switch (dev->board) { |
536 | case CX23885_BOARD_DVICO_FUSIONHDTV_7_DUAL_EXP: | 559 | case CX23885_BOARD_DVICO_FUSIONHDTV_7_DUAL_EXP: |
560 | case CX23885_BOARD_DVICO_FUSIONHDTV_DVB_T_DUAL_EXP: | ||
537 | ts2->gen_ctrl_val = 0xc; /* Serial bus + punctured clock */ | 561 | ts2->gen_ctrl_val = 0xc; /* Serial bus + punctured clock */ |
538 | ts2->ts_clk_en_val = 0x1; /* Enable TS_CLK */ | 562 | ts2->ts_clk_en_val = 0x1; /* Enable TS_CLK */ |
539 | ts2->src_sel_val = CX23885_SRC_SEL_PARALLEL_MPEG_VIDEO; | 563 | ts2->src_sel_val = CX23885_SRC_SEL_PARALLEL_MPEG_VIDEO; |