aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/video/cx23885/cx23885-cards.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/media/video/cx23885/cx23885-cards.c')
-rw-r--r--drivers/media/video/cx23885/cx23885-cards.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/drivers/media/video/cx23885/cx23885-cards.c b/drivers/media/video/cx23885/cx23885-cards.c
index 859510f7469..0f4b325f2d8 100644
--- a/drivers/media/video/cx23885/cx23885-cards.c
+++ b/drivers/media/video/cx23885/cx23885-cards.c
@@ -138,6 +138,10 @@ struct cx23885_board cx23885_boards[] = {
138 .name = "Hauppauge WinTV-HVR1700", 138 .name = "Hauppauge WinTV-HVR1700",
139 .portc = CX23885_MPEG_DVB, 139 .portc = CX23885_MPEG_DVB,
140 }, 140 },
141 [CX23885_BOARD_HAUPPAUGE_HVR1400] = {
142 .name = "Hauppauge WinTV-HVR1400",
143 .portc = CX23885_MPEG_DVB,
144 },
141}; 145};
142const unsigned int cx23885_bcount = ARRAY_SIZE(cx23885_boards); 146const unsigned int cx23885_bcount = ARRAY_SIZE(cx23885_boards);
143 147
@@ -197,6 +201,10 @@ struct cx23885_subid cx23885_subids[] = {
197 .subvendor = 0x0070, 201 .subvendor = 0x0070,
198 .subdevice = 0x8101, 202 .subdevice = 0x8101,
199 .card = CX23885_BOARD_HAUPPAUGE_HVR1700, 203 .card = CX23885_BOARD_HAUPPAUGE_HVR1700,
204 }, {
205 .subvendor = 0x0070,
206 .subdevice = 0x8010,
207 .card = CX23885_BOARD_HAUPPAUGE_HVR1400,
200 }, 208 },
201}; 209};
202const unsigned int cx23885_idcount = ARRAY_SIZE(cx23885_subids); 210const unsigned int cx23885_idcount = ARRAY_SIZE(cx23885_subids);
@@ -251,6 +259,9 @@ static void hauppauge_eeprom(struct cx23885_dev *dev, u8 *eeprom_data)
251 case 79561: /* WinTV-HVR1250 (PCIe, OEM, No IR, half height, ATSC and Basic analog */ 259 case 79561: /* WinTV-HVR1250 (PCIe, OEM, No IR, half height, ATSC and Basic analog */
252 case 79571: /* WinTV-HVR1250 (PCIe, OEM, No IR, full height, ATSC and Basic analog */ 260 case 79571: /* WinTV-HVR1250 (PCIe, OEM, No IR, full height, ATSC and Basic analog */
253 case 79671: /* WinTV-HVR1250 (PCIe, OEM, No IR, half height, ATSC and Basic analog */ 261 case 79671: /* WinTV-HVR1250 (PCIe, OEM, No IR, half height, ATSC and Basic analog */
262 case 80019:
263 /* WinTV-HVR1400 (Express Card, Retail, IR,
264 * DVB-T and Basic analog */
254 case 81519: 265 case 81519:
255 /* WinTV-HVR1700 (PCIe, Retail, No IR, half height, 266 /* WinTV-HVR1700 (PCIe, Retail, No IR, half height,
256 * DVB-T and MPEG2 HW Encoder */ 267 * DVB-T and MPEG2 HW Encoder */
@@ -365,6 +376,18 @@ void cx23885_gpio_setup(struct cx23885_dev *dev)
365 mdelay(20); 376 mdelay(20);
366 cx_set(GP0_IO, 0x00050005); 377 cx_set(GP0_IO, 0x00050005);
367 break; 378 break;
379 case CX23885_BOARD_HAUPPAUGE_HVR1400:
380 /* GPIO-0 Dibcom7000p demodulator reset */
381 /* GPIO-2 xc3028L tuner reset */
382 /* GPIO-13 LED */
383
384 /* Put the parts into reset and back */
385 cx_set(GP0_IO, 0x00050000);
386 mdelay(20);
387 cx_clear(GP0_IO, 0x00000005);
388 mdelay(20);
389 cx_set(GP0_IO, 0x00050005);
390 break;
368 } 391 }
369} 392}
370 393
@@ -376,6 +399,7 @@ int cx23885_ir_init(struct cx23885_dev *dev)
376 case CX23885_BOARD_HAUPPAUGE_HVR1500Q: 399 case CX23885_BOARD_HAUPPAUGE_HVR1500Q:
377 case CX23885_BOARD_HAUPPAUGE_HVR1800: 400 case CX23885_BOARD_HAUPPAUGE_HVR1800:
378 case CX23885_BOARD_HAUPPAUGE_HVR1200: 401 case CX23885_BOARD_HAUPPAUGE_HVR1200:
402 case CX23885_BOARD_HAUPPAUGE_HVR1400:
379 /* FIXME: Implement me */ 403 /* FIXME: Implement me */
380 break; 404 break;
381 } 405 }
@@ -400,6 +424,7 @@ void cx23885_card_setup(struct cx23885_dev *dev)
400 case CX23885_BOARD_HAUPPAUGE_HVR1250: 424 case CX23885_BOARD_HAUPPAUGE_HVR1250:
401 case CX23885_BOARD_HAUPPAUGE_HVR1500: 425 case CX23885_BOARD_HAUPPAUGE_HVR1500:
402 case CX23885_BOARD_HAUPPAUGE_HVR1500Q: 426 case CX23885_BOARD_HAUPPAUGE_HVR1500Q:
427 case CX23885_BOARD_HAUPPAUGE_HVR1400:
403 if (dev->i2c_bus[0].i2c_rc == 0) 428 if (dev->i2c_bus[0].i2c_rc == 0)
404 hauppauge_eeprom(dev, eeprom+0x80); 429 hauppauge_eeprom(dev, eeprom+0x80);
405 break; 430 break;
@@ -425,6 +450,7 @@ void cx23885_card_setup(struct cx23885_dev *dev)
425 case CX23885_BOARD_HAUPPAUGE_HVR1800lp: 450 case CX23885_BOARD_HAUPPAUGE_HVR1800lp:
426 case CX23885_BOARD_HAUPPAUGE_HVR1200: 451 case CX23885_BOARD_HAUPPAUGE_HVR1200:
427 case CX23885_BOARD_HAUPPAUGE_HVR1700: 452 case CX23885_BOARD_HAUPPAUGE_HVR1700:
453 case CX23885_BOARD_HAUPPAUGE_HVR1400:
428 default: 454 default:
429 ts2->gen_ctrl_val = 0xc; /* Serial bus + punctured clock */ 455 ts2->gen_ctrl_val = 0xc; /* Serial bus + punctured clock */
430 ts2->ts_clk_en_val = 0x1; /* Enable TS_CLK */ 456 ts2->ts_clk_en_val = 0x1; /* Enable TS_CLK */