aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/video/cx23885
diff options
context:
space:
mode:
authorMichael Krufky <mkrufky@kernellabs.com>2009-11-10 23:52:45 -0500
committerMauro Carvalho Chehab <mchehab@redhat.com>2009-12-05 15:41:27 -0500
commitaee0b24c05f6e9615115748a8ea5042d8ee0e6a0 (patch)
treea3fb9b56d12c285771c279a44d308f4a66e660b3 /drivers/media/video/cx23885
parenta3a4f7e167e77066b0b98b8f056efcda2d302f97 (diff)
V4L/DVB (13347): cx23885: add digital television support for Hauppauge WinTV-HVR1290
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.c12
-rw-r--r--drivers/media/video/cx23885/cx23885-dvb.c1
-rw-r--r--drivers/media/video/cx23885/cx23885.h1
3 files changed, 14 insertions, 0 deletions
diff --git a/drivers/media/video/cx23885/cx23885-cards.c b/drivers/media/video/cx23885/cx23885-cards.c
index 2cbac93866be..2f4db970152e 100644
--- a/drivers/media/video/cx23885/cx23885-cards.c
+++ b/drivers/media/video/cx23885/cx23885-cards.c
@@ -265,6 +265,10 @@ struct cx23885_board cx23885_boards[] = {
265 .name = "Compro VideoMate E800", 265 .name = "Compro VideoMate E800",
266 .portc = CX23885_MPEG_DVB, 266 .portc = CX23885_MPEG_DVB,
267 }, 267 },
268 [CX23885_BOARD_HAUPPAUGE_HVR1290] = {
269 .name = "Hauppauge WinTV-HVR1290",
270 .portc = CX23885_MPEG_DVB,
271 },
268}; 272};
269const unsigned int cx23885_bcount = ARRAY_SIZE(cx23885_boards); 273const unsigned int cx23885_bcount = ARRAY_SIZE(cx23885_boards);
270 274
@@ -400,6 +404,10 @@ struct cx23885_subid cx23885_subids[] = {
400 .subvendor = 0x1858, 404 .subvendor = 0x1858,
401 .subdevice = 0xe800, 405 .subdevice = 0xe800,
402 .card = CX23885_BOARD_COMPRO_VIDEOMATE_E800, 406 .card = CX23885_BOARD_COMPRO_VIDEOMATE_E800,
407 }, {
408 .subvendor = 0x0070,
409 .subdevice = 0x8551,
410 .card = CX23885_BOARD_HAUPPAUGE_HVR1290,
403 }, 411 },
404}; 412};
405const unsigned int cx23885_idcount = ARRAY_SIZE(cx23885_subids); 413const unsigned int cx23885_idcount = ARRAY_SIZE(cx23885_subids);
@@ -819,6 +827,7 @@ void cx23885_gpio_setup(struct cx23885_dev *dev)
819 mdelay(100); 827 mdelay(100);
820 break; 828 break;
821 case CX23885_BOARD_HAUPPAUGE_HVR1850: 829 case CX23885_BOARD_HAUPPAUGE_HVR1850:
830 case CX23885_BOARD_HAUPPAUGE_HVR1290:
822 /* GPIO-0 656_CLK */ 831 /* GPIO-0 656_CLK */
823 /* GPIO-1 656_D0 */ 832 /* GPIO-1 656_D0 */
824 /* GPIO-2 Wake# */ 833 /* GPIO-2 Wake# */
@@ -934,6 +943,7 @@ void cx23885_card_setup(struct cx23885_dev *dev)
934 case CX23885_BOARD_HAUPPAUGE_HVR1255: 943 case CX23885_BOARD_HAUPPAUGE_HVR1255:
935 case CX23885_BOARD_HAUPPAUGE_HVR1210: 944 case CX23885_BOARD_HAUPPAUGE_HVR1210:
936 case CX23885_BOARD_HAUPPAUGE_HVR1850: 945 case CX23885_BOARD_HAUPPAUGE_HVR1850:
946 case CX23885_BOARD_HAUPPAUGE_HVR1290:
937 if (dev->i2c_bus[0].i2c_rc == 0) 947 if (dev->i2c_bus[0].i2c_rc == 0)
938 hauppauge_eeprom(dev, eeprom+0xc0); 948 hauppauge_eeprom(dev, eeprom+0xc0);
939 break; 949 break;
@@ -1003,6 +1013,7 @@ void cx23885_card_setup(struct cx23885_dev *dev)
1003 case CX23885_BOARD_HAUPPAUGE_HVR1210: 1013 case CX23885_BOARD_HAUPPAUGE_HVR1210:
1004 case CX23885_BOARD_HAUPPAUGE_HVR1850: 1014 case CX23885_BOARD_HAUPPAUGE_HVR1850:
1005 case CX23885_BOARD_COMPRO_VIDEOMATE_E800: 1015 case CX23885_BOARD_COMPRO_VIDEOMATE_E800:
1016 case CX23885_BOARD_HAUPPAUGE_HVR1290:
1006 default: 1017 default:
1007 ts2->gen_ctrl_val = 0xc; /* Serial bus + punctured clock */ 1018 ts2->gen_ctrl_val = 0xc; /* Serial bus + punctured clock */
1008 ts2->ts_clk_en_val = 0x1; /* Enable TS_CLK */ 1019 ts2->ts_clk_en_val = 0x1; /* Enable TS_CLK */
@@ -1023,6 +1034,7 @@ void cx23885_card_setup(struct cx23885_dev *dev)
1023 case CX23885_BOARD_HAUPPAUGE_HVR1850: 1034 case CX23885_BOARD_HAUPPAUGE_HVR1850:
1024 case CX23885_BOARD_MYGICA_X8506: 1035 case CX23885_BOARD_MYGICA_X8506:
1025 case CX23885_BOARD_MAGICPRO_PROHDTVE2: 1036 case CX23885_BOARD_MAGICPRO_PROHDTVE2:
1037 case CX23885_BOARD_HAUPPAUGE_HVR1290:
1026 dev->sd_cx25840 = v4l2_i2c_new_subdev(&dev->v4l2_dev, 1038 dev->sd_cx25840 = v4l2_i2c_new_subdev(&dev->v4l2_dev,
1027 &dev->i2c_bus[2].i2c_adap, 1039 &dev->i2c_bus[2].i2c_adap,
1028 "cx25840", "cx25840", 0x88 >> 1, NULL); 1040 "cx25840", "cx25840", 0x88 >> 1, NULL);
diff --git a/drivers/media/video/cx23885/cx23885-dvb.c b/drivers/media/video/cx23885/cx23885-dvb.c
index 44e5fade0488..133e80290711 100644
--- a/drivers/media/video/cx23885/cx23885-dvb.c
+++ b/drivers/media/video/cx23885/cx23885-dvb.c
@@ -898,6 +898,7 @@ static int dvb_register(struct cx23885_tsport *port)
898 } 898 }
899 break; 899 break;
900 case CX23885_BOARD_HAUPPAUGE_HVR1850: 900 case CX23885_BOARD_HAUPPAUGE_HVR1850:
901 case CX23885_BOARD_HAUPPAUGE_HVR1290:
901 i2c_bus = &dev->i2c_bus[0]; 902 i2c_bus = &dev->i2c_bus[0];
902 fe0->dvb.frontend = dvb_attach(s5h1411_attach, 903 fe0->dvb.frontend = dvb_attach(s5h1411_attach,
903 &hcw_s5h1411_config, 904 &hcw_s5h1411_config,
diff --git a/drivers/media/video/cx23885/cx23885.h b/drivers/media/video/cx23885/cx23885.h
index 813eaf7c5e94..12d1a344a8ab 100644
--- a/drivers/media/video/cx23885/cx23885.h
+++ b/drivers/media/video/cx23885/cx23885.h
@@ -79,6 +79,7 @@
79#define CX23885_BOARD_MAGICPRO_PROHDTVE2 23 79#define CX23885_BOARD_MAGICPRO_PROHDTVE2 23
80#define CX23885_BOARD_HAUPPAUGE_HVR1850 24 80#define CX23885_BOARD_HAUPPAUGE_HVR1850 24
81#define CX23885_BOARD_COMPRO_VIDEOMATE_E800 25 81#define CX23885_BOARD_COMPRO_VIDEOMATE_E800 25
82#define CX23885_BOARD_HAUPPAUGE_HVR1290 26
82 83
83#define GPIO_0 0x00000001 84#define GPIO_0 0x00000001
84#define GPIO_1 0x00000002 85#define GPIO_1 0x00000002