diff options
author | Steven Toth <stoth@kernellabs.com> | 2009-05-02 10:39:46 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2009-06-16 17:21:03 -0400 |
commit | 2074dffaedebbf5a8468fd37855d6d94ba34041c (patch) | |
tree | cd0d053e41167a050970784e660c75afc84a085e /drivers/media/video/cx23885 | |
parent | 6de72bd6453003ef14acc3bac4159f7fffff7064 (diff) |
V4L/DVB (11767): cx23885: Add preliminary support for the HVR1270
The patch means the board will be recognised, and the parts brought
out of reset correctly. This patches depends on the centralized GPIO
patch to be merged. What's missing before the HVR-1270 will function
for DTV? The model# needs to be added to avoid 'unknown model'
output and the LG3305/Tuner need to be attached in cx23885-dvb.c
Signed-off-by: Steven Toth <stoth@kernellabs.com>
Signed-off-by: Michael Krufky <mkrufky@kernellabs.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/video/cx23885')
-rw-r--r-- | drivers/media/video/cx23885/cx23885-cards.c | 21 | ||||
-rw-r--r-- | drivers/media/video/cx23885/cx23885.h | 1 |
2 files changed, 22 insertions, 0 deletions
diff --git a/drivers/media/video/cx23885/cx23885-cards.c b/drivers/media/video/cx23885/cx23885-cards.c index 6d6293f7d428..49c6634c6327 100644 --- a/drivers/media/video/cx23885/cx23885-cards.c +++ b/drivers/media/video/cx23885/cx23885-cards.c | |||
@@ -181,6 +181,9 @@ struct cx23885_board cx23885_boards[] = { | |||
181 | .portb = CX23885_MPEG_DVB, | 181 | .portb = CX23885_MPEG_DVB, |
182 | .portc = CX23885_MPEG_DVB, | 182 | .portc = CX23885_MPEG_DVB, |
183 | }, | 183 | }, |
184 | [CX23885_BOARD_HAUPPAUGE_HVR1270] = { | ||
185 | .name = "Hauppauge WinTV-HVR1270", | ||
186 | }, | ||
184 | }; | 187 | }; |
185 | const unsigned int cx23885_bcount = ARRAY_SIZE(cx23885_boards); | 188 | const unsigned int cx23885_bcount = ARRAY_SIZE(cx23885_boards); |
186 | 189 | ||
@@ -280,6 +283,10 @@ struct cx23885_subid cx23885_subids[] = { | |||
280 | .subvendor = 0x1b55, | 283 | .subvendor = 0x1b55, |
281 | .subdevice = 0x2a2c, | 284 | .subdevice = 0x2a2c, |
282 | .card = CX23885_BOARD_NETUP_DUAL_DVBS2_CI, | 285 | .card = CX23885_BOARD_NETUP_DUAL_DVBS2_CI, |
286 | }, { | ||
287 | .subvendor = 0x0070, | ||
288 | .subdevice = 0x2211, | ||
289 | .card = CX23885_BOARD_HAUPPAUGE_HVR1270, | ||
283 | }, | 290 | }, |
284 | }; | 291 | }; |
285 | const unsigned int cx23885_idcount = ARRAY_SIZE(cx23885_subids); | 292 | const unsigned int cx23885_idcount = ARRAY_SIZE(cx23885_subids); |
@@ -619,6 +626,17 @@ void cx23885_gpio_setup(struct cx23885_dev *dev) | |||
619 | /* enable irq */ | 626 | /* enable irq */ |
620 | cx_write(GPIO_ISM, 0x00000000);/* INTERRUPTS active low*/ | 627 | cx_write(GPIO_ISM, 0x00000000);/* INTERRUPTS active low*/ |
621 | break; | 628 | break; |
629 | case CX23885_BOARD_HAUPPAUGE_HVR1270: | ||
630 | /* GPIO-6 I2C Gate which can isolate the 3305 from the bus */ | ||
631 | /* GPIO-9 LG3305 reset */ | ||
632 | |||
633 | /* Put the parts into reset and back */ | ||
634 | cx23885_gpio_enable(dev, GPIO_9 | GPIO_6, 1); | ||
635 | cx23885_gpio_set(dev, GPIO_9 | GPIO_6); | ||
636 | cx23885_gpio_clear(dev, GPIO_9); | ||
637 | mdelay(20); | ||
638 | cx23885_gpio_set(dev, GPIO_9); | ||
639 | break; | ||
622 | } | 640 | } |
623 | } | 641 | } |
624 | 642 | ||
@@ -631,6 +649,7 @@ int cx23885_ir_init(struct cx23885_dev *dev) | |||
631 | case CX23885_BOARD_HAUPPAUGE_HVR1800: | 649 | case CX23885_BOARD_HAUPPAUGE_HVR1800: |
632 | case CX23885_BOARD_HAUPPAUGE_HVR1200: | 650 | case CX23885_BOARD_HAUPPAUGE_HVR1200: |
633 | case CX23885_BOARD_HAUPPAUGE_HVR1400: | 651 | case CX23885_BOARD_HAUPPAUGE_HVR1400: |
652 | case CX23885_BOARD_HAUPPAUGE_HVR1270: | ||
634 | /* FIXME: Implement me */ | 653 | /* FIXME: Implement me */ |
635 | break; | 654 | break; |
636 | case CX23885_BOARD_DVICO_FUSIONHDTV_DVB_T_DUAL_EXP: | 655 | case CX23885_BOARD_DVICO_FUSIONHDTV_DVB_T_DUAL_EXP: |
@@ -666,6 +685,7 @@ void cx23885_card_setup(struct cx23885_dev *dev) | |||
666 | case CX23885_BOARD_HAUPPAUGE_HVR1800lp: | 685 | case CX23885_BOARD_HAUPPAUGE_HVR1800lp: |
667 | case CX23885_BOARD_HAUPPAUGE_HVR1200: | 686 | case CX23885_BOARD_HAUPPAUGE_HVR1200: |
668 | case CX23885_BOARD_HAUPPAUGE_HVR1700: | 687 | case CX23885_BOARD_HAUPPAUGE_HVR1700: |
688 | case CX23885_BOARD_HAUPPAUGE_HVR1270: | ||
669 | if (dev->i2c_bus[0].i2c_rc == 0) | 689 | if (dev->i2c_bus[0].i2c_rc == 0) |
670 | hauppauge_eeprom(dev, eeprom+0xc0); | 690 | hauppauge_eeprom(dev, eeprom+0xc0); |
671 | break; | 691 | break; |
@@ -723,6 +743,7 @@ void cx23885_card_setup(struct cx23885_dev *dev) | |||
723 | case CX23885_BOARD_HAUPPAUGE_HVR1400: | 743 | case CX23885_BOARD_HAUPPAUGE_HVR1400: |
724 | case CX23885_BOARD_LEADTEK_WINFAST_PXDVR3200_H: | 744 | case CX23885_BOARD_LEADTEK_WINFAST_PXDVR3200_H: |
725 | case CX23885_BOARD_COMPRO_VIDEOMATE_E650F: | 745 | case CX23885_BOARD_COMPRO_VIDEOMATE_E650F: |
746 | case CX23885_BOARD_HAUPPAUGE_HVR1270: | ||
726 | default: | 747 | default: |
727 | ts2->gen_ctrl_val = 0xc; /* Serial bus + punctured clock */ | 748 | ts2->gen_ctrl_val = 0xc; /* Serial bus + punctured clock */ |
728 | ts2->ts_clk_en_val = 0x1; /* Enable TS_CLK */ | 749 | ts2->ts_clk_en_val = 0x1; /* Enable TS_CLK */ |
diff --git a/drivers/media/video/cx23885/cx23885.h b/drivers/media/video/cx23885/cx23885.h index d9b03f83fa31..13dccb8ce0df 100644 --- a/drivers/media/video/cx23885/cx23885.h +++ b/drivers/media/video/cx23885/cx23885.h | |||
@@ -71,6 +71,7 @@ | |||
71 | #define CX23885_BOARD_TEVII_S470 15 | 71 | #define CX23885_BOARD_TEVII_S470 15 |
72 | #define CX23885_BOARD_DVBWORLD_2005 16 | 72 | #define CX23885_BOARD_DVBWORLD_2005 16 |
73 | #define CX23885_BOARD_NETUP_DUAL_DVBS2_CI 17 | 73 | #define CX23885_BOARD_NETUP_DUAL_DVBS2_CI 17 |
74 | #define CX23885_BOARD_HAUPPAUGE_HVR1270 18 | ||
74 | 75 | ||
75 | #define GPIO_0 0x00000001 | 76 | #define GPIO_0 0x00000001 |
76 | #define GPIO_1 0x00000002 | 77 | #define GPIO_1 0x00000002 |