diff options
author | Michael Krufky <mkrufky@kernellabs.com> | 2009-05-08 21:39:24 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2009-06-16 17:21:03 -0400 |
commit | d099becb0bd7ee01a13d58371b4ea5a2f7052c04 (patch) | |
tree | 95119790bf8a5c211e0103be3ab7806aaa5e9838 | |
parent | a5dbf45766a378cc00f341f7179befab1edae573 (diff) |
V4L/DVB (11769): cx23885: add ATSC/QAM tuning support for Hauppauge WinTV-HVR1275
Signed-off-by: Michael Krufky <mkrufky@kernellabs.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 | 17 | ||||
-rw-r--r-- | drivers/media/video/cx23885/cx23885-dvb.c | 1 | ||||
-rw-r--r-- | drivers/media/video/cx23885/cx23885.h | 1 |
4 files changed, 18 insertions, 2 deletions
diff --git a/Documentation/video4linux/CARDLIST.cx23885 b/Documentation/video4linux/CARDLIST.cx23885 index 9f07a6a34585..ce62f5a28312 100644 --- a/Documentation/video4linux/CARDLIST.cx23885 +++ b/Documentation/video4linux/CARDLIST.cx23885 | |||
@@ -17,3 +17,4 @@ | |||
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] | 19 | 18 -> Hauppauge WinTV-HVR1270 [0070:2211] |
20 | 19 -> Hauppauge WinTV-HVR1275 [0070:2215] | ||
diff --git a/drivers/media/video/cx23885/cx23885-cards.c b/drivers/media/video/cx23885/cx23885-cards.c index 90d0ad63d992..68ac04b7f1ed 100644 --- a/drivers/media/video/cx23885/cx23885-cards.c +++ b/drivers/media/video/cx23885/cx23885-cards.c | |||
@@ -185,6 +185,10 @@ struct cx23885_board cx23885_boards[] = { | |||
185 | .name = "Hauppauge WinTV-HVR1270", | 185 | .name = "Hauppauge WinTV-HVR1270", |
186 | .portc = CX23885_MPEG_DVB, | 186 | .portc = CX23885_MPEG_DVB, |
187 | }, | 187 | }, |
188 | [CX23885_BOARD_HAUPPAUGE_HVR1275] = { | ||
189 | .name = "Hauppauge WinTV-HVR1275", | ||
190 | .portc = CX23885_MPEG_DVB, | ||
191 | }, | ||
188 | }; | 192 | }; |
189 | const unsigned int cx23885_bcount = ARRAY_SIZE(cx23885_boards); | 193 | const unsigned int cx23885_bcount = ARRAY_SIZE(cx23885_boards); |
190 | 194 | ||
@@ -288,6 +292,10 @@ struct cx23885_subid cx23885_subids[] = { | |||
288 | .subvendor = 0x0070, | 292 | .subvendor = 0x0070, |
289 | .subdevice = 0x2211, | 293 | .subdevice = 0x2211, |
290 | .card = CX23885_BOARD_HAUPPAUGE_HVR1270, | 294 | .card = CX23885_BOARD_HAUPPAUGE_HVR1270, |
295 | }, { | ||
296 | .subvendor = 0x0070, | ||
297 | .subdevice = 0x2215, | ||
298 | .card = CX23885_BOARD_HAUPPAUGE_HVR1275, | ||
291 | }, | 299 | }, |
292 | }; | 300 | }; |
293 | const unsigned int cx23885_idcount = ARRAY_SIZE(cx23885_subids); | 301 | const unsigned int cx23885_idcount = ARRAY_SIZE(cx23885_subids); |
@@ -628,12 +636,14 @@ void cx23885_gpio_setup(struct cx23885_dev *dev) | |||
628 | cx_write(GPIO_ISM, 0x00000000);/* INTERRUPTS active low*/ | 636 | cx_write(GPIO_ISM, 0x00000000);/* INTERRUPTS active low*/ |
629 | break; | 637 | break; |
630 | case CX23885_BOARD_HAUPPAUGE_HVR1270: | 638 | case CX23885_BOARD_HAUPPAUGE_HVR1270: |
639 | case CX23885_BOARD_HAUPPAUGE_HVR1275: | ||
640 | /* GPIO-5 RF Control: 0 = RF1 Terrestrial, 1 = RF2 Cable */ | ||
631 | /* GPIO-6 I2C Gate which can isolate the 3305 from the bus */ | 641 | /* GPIO-6 I2C Gate which can isolate the 3305 from the bus */ |
632 | /* GPIO-9 LG3305 reset */ | 642 | /* GPIO-9 LG3305 reset */ |
633 | 643 | ||
634 | /* Put the parts into reset and back */ | 644 | /* Put the parts into reset and back */ |
635 | cx23885_gpio_enable(dev, GPIO_9 | GPIO_6, 1); | 645 | cx23885_gpio_enable(dev, GPIO_9 | GPIO_6 | GPIO_5, 1); |
636 | cx23885_gpio_set(dev, GPIO_9 | GPIO_6); | 646 | cx23885_gpio_set(dev, GPIO_9 | GPIO_6 | GPIO_5); |
637 | cx23885_gpio_clear(dev, GPIO_9); | 647 | cx23885_gpio_clear(dev, GPIO_9); |
638 | mdelay(20); | 648 | mdelay(20); |
639 | cx23885_gpio_set(dev, GPIO_9); | 649 | cx23885_gpio_set(dev, GPIO_9); |
@@ -651,6 +661,7 @@ int cx23885_ir_init(struct cx23885_dev *dev) | |||
651 | case CX23885_BOARD_HAUPPAUGE_HVR1200: | 661 | case CX23885_BOARD_HAUPPAUGE_HVR1200: |
652 | case CX23885_BOARD_HAUPPAUGE_HVR1400: | 662 | case CX23885_BOARD_HAUPPAUGE_HVR1400: |
653 | case CX23885_BOARD_HAUPPAUGE_HVR1270: | 663 | case CX23885_BOARD_HAUPPAUGE_HVR1270: |
664 | case CX23885_BOARD_HAUPPAUGE_HVR1275: | ||
654 | /* FIXME: Implement me */ | 665 | /* FIXME: Implement me */ |
655 | break; | 666 | break; |
656 | case CX23885_BOARD_DVICO_FUSIONHDTV_DVB_T_DUAL_EXP: | 667 | case CX23885_BOARD_DVICO_FUSIONHDTV_DVB_T_DUAL_EXP: |
@@ -687,6 +698,7 @@ void cx23885_card_setup(struct cx23885_dev *dev) | |||
687 | case CX23885_BOARD_HAUPPAUGE_HVR1200: | 698 | case CX23885_BOARD_HAUPPAUGE_HVR1200: |
688 | case CX23885_BOARD_HAUPPAUGE_HVR1700: | 699 | case CX23885_BOARD_HAUPPAUGE_HVR1700: |
689 | case CX23885_BOARD_HAUPPAUGE_HVR1270: | 700 | case CX23885_BOARD_HAUPPAUGE_HVR1270: |
701 | case CX23885_BOARD_HAUPPAUGE_HVR1275: | ||
690 | if (dev->i2c_bus[0].i2c_rc == 0) | 702 | if (dev->i2c_bus[0].i2c_rc == 0) |
691 | hauppauge_eeprom(dev, eeprom+0xc0); | 703 | hauppauge_eeprom(dev, eeprom+0xc0); |
692 | break; | 704 | break; |
@@ -745,6 +757,7 @@ void cx23885_card_setup(struct cx23885_dev *dev) | |||
745 | case CX23885_BOARD_LEADTEK_WINFAST_PXDVR3200_H: | 757 | case CX23885_BOARD_LEADTEK_WINFAST_PXDVR3200_H: |
746 | case CX23885_BOARD_COMPRO_VIDEOMATE_E650F: | 758 | case CX23885_BOARD_COMPRO_VIDEOMATE_E650F: |
747 | case CX23885_BOARD_HAUPPAUGE_HVR1270: | 759 | case CX23885_BOARD_HAUPPAUGE_HVR1270: |
760 | case CX23885_BOARD_HAUPPAUGE_HVR1275: | ||
748 | default: | 761 | default: |
749 | ts2->gen_ctrl_val = 0xc; /* Serial bus + punctured clock */ | 762 | ts2->gen_ctrl_val = 0xc; /* Serial bus + punctured clock */ |
750 | ts2->ts_clk_en_val = 0x1; /* Enable TS_CLK */ | 763 | ts2->ts_clk_en_val = 0x1; /* Enable TS_CLK */ |
diff --git a/drivers/media/video/cx23885/cx23885-dvb.c b/drivers/media/video/cx23885/cx23885-dvb.c index 48cdf2795985..7e354a93e89a 100644 --- a/drivers/media/video/cx23885/cx23885-dvb.c +++ b/drivers/media/video/cx23885/cx23885-dvb.c | |||
@@ -422,6 +422,7 @@ static int dvb_register(struct cx23885_tsport *port) | |||
422 | } | 422 | } |
423 | break; | 423 | break; |
424 | case CX23885_BOARD_HAUPPAUGE_HVR1270: | 424 | case CX23885_BOARD_HAUPPAUGE_HVR1270: |
425 | case CX23885_BOARD_HAUPPAUGE_HVR1275: | ||
425 | i2c_bus = &dev->i2c_bus[0]; | 426 | i2c_bus = &dev->i2c_bus[0]; |
426 | fe0->dvb.frontend = dvb_attach(lgdt3305_attach, | 427 | fe0->dvb.frontend = dvb_attach(lgdt3305_attach, |
427 | &hcw_lgdt3305_config, | 428 | &hcw_lgdt3305_config, |
diff --git a/drivers/media/video/cx23885/cx23885.h b/drivers/media/video/cx23885/cx23885.h index 13dccb8ce0df..3c941ccc3089 100644 --- a/drivers/media/video/cx23885/cx23885.h +++ b/drivers/media/video/cx23885/cx23885.h | |||
@@ -72,6 +72,7 @@ | |||
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 | #define CX23885_BOARD_HAUPPAUGE_HVR1270 18 |
75 | #define CX23885_BOARD_HAUPPAUGE_HVR1275 19 | ||
75 | 76 | ||
76 | #define GPIO_0 0x00000001 | 77 | #define GPIO_0 0x00000001 |
77 | #define GPIO_1 0x00000002 | 78 | #define GPIO_1 0x00000002 |