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 |
