diff options
-rw-r--r-- | Documentation/video4linux/CARDLIST.cx23885 | 1 | ||||
-rw-r--r-- | drivers/media/video/cx23885/cx23885-cards.c | 21 | ||||
-rw-r--r-- | drivers/media/video/cx23885/cx23885.h | 1 |
3 files changed, 23 insertions, 0 deletions
diff --git a/Documentation/video4linux/CARDLIST.cx23885 b/Documentation/video4linux/CARDLIST.cx23885 index 91aa3c0f0dd2..9f07a6a34585 100644 --- a/Documentation/video4linux/CARDLIST.cx23885 +++ b/Documentation/video4linux/CARDLIST.cx23885 | |||
@@ -16,3 +16,4 @@ | |||
16 | 15 -> TeVii S470 [d470:9022] | 16 | 15 -> TeVii S470 [d470:9022] |
17 | 16 -> DVBWorld DVB-S2 2005 [0001:2005] | 17 | 16 -> DVBWorld DVB-S2 2005 [0001:2005] |
18 | 17 -> NetUP Dual DVB-S2 CI [1b55:2a2c] | 18 | 17 -> NetUP Dual DVB-S2 CI [1b55:2a2c] |
19 | 18 -> Hauppauge WinTV-HVR1270 [0070:2211] | ||
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 |