diff options
author | Michael Krufky <mkrufky@kernellabs.com> | 2010-07-06 17:23:53 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2010-10-20 23:17:11 -0400 |
commit | 1a50fddefd17ec1359d08cd23c77da42fabbb4a7 (patch) | |
tree | 2467c087a5ba145e004d5de30fa0e950bbdaf359 /drivers/media/video/cx231xx/cx231xx-cards.c | |
parent | 64fbf44455260684fa5bfdd3121af3d0ef0b48dd (diff) |
[media] cx231xx: add support for Hauppauge EXETER
Add support for various Hauppauge EXETER designs.
Note by DJH: fixed a few minor 'make checkpatch' warnings before commit.
Signed-off-by: Michael Krufky <mkrufky@kernellabs.com>
Signed-off-by: Devin Heitmueller <dheitmueller@hauppauge.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/video/cx231xx/cx231xx-cards.c')
-rw-r--r-- | drivers/media/video/cx231xx/cx231xx-cards.c | 47 |
1 files changed, 45 insertions, 2 deletions
diff --git a/drivers/media/video/cx231xx/cx231xx-cards.c b/drivers/media/video/cx231xx/cx231xx-cards.c index 59e273324f5a..a19248495c2a 100644 --- a/drivers/media/video/cx231xx/cx231xx-cards.c +++ b/drivers/media/video/cx231xx/cx231xx-cards.c | |||
@@ -340,6 +340,44 @@ struct cx231xx_board cx231xx_boards[] = { | |||
340 | } | 340 | } |
341 | }, | 341 | }, |
342 | }, | 342 | }, |
343 | [CX231XX_BOARD_HAUPPAUGE_EXETER] = { | ||
344 | .name = "Hauppauge EXETER", | ||
345 | .tuner_type = TUNER_NXP_TDA18271, | ||
346 | .tuner_addr = 0x60, | ||
347 | .tuner_gpio = RDE250_XCV_TUNER, | ||
348 | .tuner_sif_gpio = 0x05, | ||
349 | .tuner_scl_gpio = 0x1a, | ||
350 | .tuner_sda_gpio = 0x1b, | ||
351 | .decoder = CX231XX_AVDECODER, | ||
352 | .demod_xfer_mode = 0, | ||
353 | .ctl_pin_status_mask = 0xFFFFFFC4, | ||
354 | .agc_analog_digital_select_gpio = 0x0c, | ||
355 | .gpio_pin_status_mask = 0x4001000, | ||
356 | .tuner_i2c_master = 1, | ||
357 | .demod_i2c_master = 2, | ||
358 | .has_dvb = 1, | ||
359 | .demod_addr = 0x0e, | ||
360 | .norm = V4L2_STD_NTSC, | ||
361 | |||
362 | .input = {{ | ||
363 | .type = CX231XX_VMUX_TELEVISION, | ||
364 | .vmux = CX231XX_VIN_3_1, | ||
365 | .amux = CX231XX_AMUX_VIDEO, | ||
366 | .gpio = 0, | ||
367 | }, { | ||
368 | .type = CX231XX_VMUX_COMPOSITE1, | ||
369 | .vmux = CX231XX_VIN_2_1, | ||
370 | .amux = CX231XX_AMUX_LINE_IN, | ||
371 | .gpio = 0, | ||
372 | }, { | ||
373 | .type = CX231XX_VMUX_SVIDEO, | ||
374 | .vmux = CX231XX_VIN_1_1 | | ||
375 | (CX231XX_VIN_1_2 << 8) | | ||
376 | CX25840_SVIDEO_ON, | ||
377 | .amux = CX231XX_AMUX_LINE_IN, | ||
378 | .gpio = 0, | ||
379 | } }, | ||
380 | }, | ||
343 | 381 | ||
344 | 382 | ||
345 | 383 | ||
@@ -352,6 +390,8 @@ const unsigned int cx231xx_bcount = ARRAY_SIZE(cx231xx_boards); | |||
352 | struct usb_device_id cx231xx_id_table[] = { | 390 | struct usb_device_id cx231xx_id_table[] = { |
353 | {USB_DEVICE(0x0572, 0x5A3C), | 391 | {USB_DEVICE(0x0572, 0x5A3C), |
354 | .driver_info = CX231XX_BOARD_UNKNOWN}, | 392 | .driver_info = CX231XX_BOARD_UNKNOWN}, |
393 | {USB_DEVICE_VER(USB_VID_PIXELVIEW, USB_PID_PIXELVIEW_SBTVD, 0x4000,0x4fff), | ||
394 | .driver_info = CX231XX_BOARD_UNKNOWN}, | ||
355 | {USB_DEVICE(0x0572, 0x58A2), | 395 | {USB_DEVICE(0x0572, 0x58A2), |
356 | .driver_info = CX231XX_BOARD_CNXT_CARRAERA}, | 396 | .driver_info = CX231XX_BOARD_CNXT_CARRAERA}, |
357 | {USB_DEVICE(0x0572, 0x58A1), | 397 | {USB_DEVICE(0x0572, 0x58A1), |
@@ -366,8 +406,8 @@ struct usb_device_id cx231xx_id_table[] = { | |||
366 | .driver_info = CX231XX_BOARD_CNXT_RDE_250}, | 406 | .driver_info = CX231XX_BOARD_CNXT_RDE_250}, |
367 | {USB_DEVICE(0x0572, 0x58A0), | 407 | {USB_DEVICE(0x0572, 0x58A0), |
368 | .driver_info = CX231XX_BOARD_CNXT_RDU_250}, | 408 | .driver_info = CX231XX_BOARD_CNXT_RDU_250}, |
369 | {USB_DEVICE_VER(USB_VID_PIXELVIEW, USB_PID_PIXELVIEW_SBTVD, 0x4000,0x4fff), | 409 | {USB_DEVICE(0x2040, 0xb120), |
370 | .driver_info = CX231XX_BOARD_UNKNOWN}, | 410 | .driver_info = CX231XX_BOARD_HAUPPAUGE_EXETER}, |
371 | {}, | 411 | {}, |
372 | }; | 412 | }; |
373 | 413 | ||
@@ -515,6 +555,8 @@ void cx231xx_register_i2c_ir(struct cx231xx *dev) | |||
515 | break; | 555 | break; |
516 | case CX231XX_BOARD_CNXT_VIDEO_GRABBER: | 556 | case CX231XX_BOARD_CNXT_VIDEO_GRABBER: |
517 | break; | 557 | break; |
558 | case CX231XX_BOARD_HAUPPAUGE_EXETER: | ||
559 | break; | ||
518 | default: | 560 | default: |
519 | break; | 561 | break; |
520 | } | 562 | } |
@@ -559,6 +601,7 @@ void cx231xx_card_setup(struct cx231xx *dev) | |||
559 | case CX231XX_BOARD_CNXT_RDE_253S: | 601 | case CX231XX_BOARD_CNXT_RDE_253S: |
560 | case CX231XX_BOARD_CNXT_RDU_253S: | 602 | case CX231XX_BOARD_CNXT_RDU_253S: |
561 | case CX231XX_BOARD_CNXT_VIDEO_GRABBER: | 603 | case CX231XX_BOARD_CNXT_VIDEO_GRABBER: |
604 | case CX231XX_BOARD_HAUPPAUGE_EXETER: | ||
562 | if (dev->board.tuner_type != TUNER_ABSENT) { | 605 | if (dev->board.tuner_type != TUNER_ABSENT) { |
563 | dev->sd_tuner = v4l2_i2c_new_subdev(&dev->v4l2_dev, | 606 | dev->sd_tuner = v4l2_i2c_new_subdev(&dev->v4l2_dev, |
564 | &dev->i2c_bus[1].i2c_adap, | 607 | &dev->i2c_bus[1].i2c_adap, |