aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Krufky <mkrufky@kernellabs.com>2009-05-08 21:39:24 -0400
committerMauro Carvalho Chehab <mchehab@redhat.com>2009-06-16 17:21:03 -0400
commitd099becb0bd7ee01a13d58371b4ea5a2f7052c04 (patch)
tree95119790bf8a5c211e0103be3ab7806aaa5e9838
parenta5dbf45766a378cc00f341f7179befab1edae573 (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.cx238851
-rw-r--r--drivers/media/video/cx23885/cx23885-cards.c17
-rw-r--r--drivers/media/video/cx23885/cx23885-dvb.c1
-rw-r--r--drivers/media/video/cx23885/cx23885.h1
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};
189const unsigned int cx23885_bcount = ARRAY_SIZE(cx23885_boards); 193const 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};
293const unsigned int cx23885_idcount = ARRAY_SIZE(cx23885_subids); 301const 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