diff options
author | Mauro Carvalho Chehab <mchehab@redhat.com> | 2010-09-26 19:44:31 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2010-12-29 05:16:27 -0500 |
commit | 9417bc6dd9de85944501f8f4ce8dd0e64135ca82 (patch) | |
tree | 64cd420afe1d80dde8b9ce08ef2e801aff79ff8d /drivers/media/video/cx231xx | |
parent | b9ede79ada766eec535e1230970bd885489d5990 (diff) |
[media] Add analog support for Pixelvied Hybrid SBTVD
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/video/cx231xx')
-rw-r--r-- | drivers/media/video/cx231xx/cx231xx-avcore.c | 1 | ||||
-rw-r--r-- | drivers/media/video/cx231xx/cx231xx-cards.c | 41 | ||||
-rw-r--r-- | drivers/media/video/cx231xx/cx231xx-core.c | 3 | ||||
-rw-r--r-- | drivers/media/video/cx231xx/cx231xx.h | 1 |
4 files changed, 44 insertions, 2 deletions
diff --git a/drivers/media/video/cx231xx/cx231xx-avcore.c b/drivers/media/video/cx231xx/cx231xx-avcore.c index cf50fafa8abb..d52955c21007 100644 --- a/drivers/media/video/cx231xx/cx231xx-avcore.c +++ b/drivers/media/video/cx231xx/cx231xx-avcore.c | |||
@@ -354,6 +354,7 @@ int cx231xx_afe_update_power_control(struct cx231xx *dev, | |||
354 | case CX231XX_BOARD_CNXT_VIDEO_GRABBER: | 354 | case CX231XX_BOARD_CNXT_VIDEO_GRABBER: |
355 | case CX231XX_BOARD_HAUPPAUGE_EXETER: | 355 | case CX231XX_BOARD_HAUPPAUGE_EXETER: |
356 | case CX231XX_BOARD_HAUPPAUGE_USBLIVE2: | 356 | case CX231XX_BOARD_HAUPPAUGE_USBLIVE2: |
357 | case CX231XX_BOARD_PV_PLAYTV_USB_HYBRID: | ||
357 | if (avmode == POLARIS_AVMODE_ANALOGT_TV) { | 358 | if (avmode == POLARIS_AVMODE_ANALOGT_TV) { |
358 | while (afe_power_status != (FLD_PWRDN_TUNING_BIAS | | 359 | while (afe_power_status != (FLD_PWRDN_TUNING_BIAS | |
359 | FLD_PWRDN_ENABLE_PLL)) { | 360 | FLD_PWRDN_ENABLE_PLL)) { |
diff --git a/drivers/media/video/cx231xx/cx231xx-cards.c b/drivers/media/video/cx231xx/cx231xx-cards.c index 2c78d188bb06..7dc7a89d8961 100644 --- a/drivers/media/video/cx231xx/cx231xx-cards.c +++ b/drivers/media/video/cx231xx/cx231xx-cards.c | |||
@@ -395,6 +395,43 @@ struct cx231xx_board cx231xx_boards[] = { | |||
395 | .gpio = 0, | 395 | .gpio = 0, |
396 | } }, | 396 | } }, |
397 | }, | 397 | }, |
398 | [CX231XX_BOARD_PV_PLAYTV_USB_HYBRID] = { | ||
399 | .name = "Pixelview PlayTV USB Hybrid", | ||
400 | .tuner_type = TUNER_NXP_TDA18271, | ||
401 | .tuner_addr = 0x60, | ||
402 | .decoder = CX231XX_AVDECODER, | ||
403 | .output_mode = OUT_MODE_VIP11, | ||
404 | .demod_xfer_mode = 0, | ||
405 | .ctl_pin_status_mask = 0xFFFFFFC4, | ||
406 | .agc_analog_digital_select_gpio = 0x00, /* According with PV cxPolaris.inf file */ | ||
407 | .tuner_sif_gpio = -1, | ||
408 | .tuner_scl_gpio = -1, | ||
409 | .tuner_sda_gpio = -1, | ||
410 | .gpio_pin_status_mask = 0x4001000, | ||
411 | .tuner_i2c_master = 2, | ||
412 | .demod_i2c_master = 1, | ||
413 | .has_dvb = 0, /* FIXME: need driver for mb86a20s */ | ||
414 | .demod_addr = 0x10, | ||
415 | .norm = V4L2_STD_PAL_M, | ||
416 | .input = {{ | ||
417 | .type = CX231XX_VMUX_TELEVISION, | ||
418 | .vmux = CX231XX_VIN_3_1, | ||
419 | .amux = CX231XX_AMUX_VIDEO, | ||
420 | .gpio = 0, | ||
421 | }, { | ||
422 | .type = CX231XX_VMUX_COMPOSITE1, | ||
423 | .vmux = CX231XX_VIN_2_1, | ||
424 | .amux = CX231XX_AMUX_LINE_IN, | ||
425 | .gpio = 0, | ||
426 | }, { | ||
427 | .type = CX231XX_VMUX_SVIDEO, | ||
428 | .vmux = CX231XX_VIN_1_1 | | ||
429 | (CX231XX_VIN_1_2 << 8) | | ||
430 | CX25840_SVIDEO_ON, | ||
431 | .amux = CX231XX_AMUX_LINE_IN, | ||
432 | .gpio = 0, | ||
433 | } }, | ||
434 | }, | ||
398 | }; | 435 | }; |
399 | const unsigned int cx231xx_bcount = ARRAY_SIZE(cx231xx_boards); | 436 | const unsigned int cx231xx_bcount = ARRAY_SIZE(cx231xx_boards); |
400 | 437 | ||
@@ -402,8 +439,6 @@ const unsigned int cx231xx_bcount = ARRAY_SIZE(cx231xx_boards); | |||
402 | struct usb_device_id cx231xx_id_table[] = { | 439 | struct usb_device_id cx231xx_id_table[] = { |
403 | {USB_DEVICE(0x0572, 0x5A3C), | 440 | {USB_DEVICE(0x0572, 0x5A3C), |
404 | .driver_info = CX231XX_BOARD_UNKNOWN}, | 441 | .driver_info = CX231XX_BOARD_UNKNOWN}, |
405 | {USB_DEVICE_VER(USB_VID_PIXELVIEW, USB_PID_PIXELVIEW_SBTVD, 0x4000,0x4fff), | ||
406 | .driver_info = CX231XX_BOARD_UNKNOWN}, | ||
407 | {USB_DEVICE(0x0572, 0x58A2), | 442 | {USB_DEVICE(0x0572, 0x58A2), |
408 | .driver_info = CX231XX_BOARD_CNXT_CARRAERA}, | 443 | .driver_info = CX231XX_BOARD_CNXT_CARRAERA}, |
409 | {USB_DEVICE(0x0572, 0x58A1), | 444 | {USB_DEVICE(0x0572, 0x58A1), |
@@ -424,6 +459,8 @@ struct usb_device_id cx231xx_id_table[] = { | |||
424 | .driver_info = CX231XX_BOARD_HAUPPAUGE_EXETER}, | 459 | .driver_info = CX231XX_BOARD_HAUPPAUGE_EXETER}, |
425 | {USB_DEVICE(0x2040, 0xc200), | 460 | {USB_DEVICE(0x2040, 0xc200), |
426 | .driver_info = CX231XX_BOARD_HAUPPAUGE_USBLIVE2}, | 461 | .driver_info = CX231XX_BOARD_HAUPPAUGE_USBLIVE2}, |
462 | {USB_DEVICE_VER(USB_VID_PIXELVIEW, USB_PID_PIXELVIEW_SBTVD, 0x4000, 0x4001), | ||
463 | .driver_info = CX231XX_BOARD_PV_PLAYTV_USB_HYBRID}, | ||
427 | {}, | 464 | {}, |
428 | }; | 465 | }; |
429 | 466 | ||
diff --git a/drivers/media/video/cx231xx/cx231xx-core.c b/drivers/media/video/cx231xx/cx231xx-core.c index 4af46fca9b0a..5664bdf7785d 100644 --- a/drivers/media/video/cx231xx/cx231xx-core.c +++ b/drivers/media/video/cx231xx/cx231xx-core.c | |||
@@ -719,6 +719,7 @@ int cx231xx_set_mode(struct cx231xx *dev, enum cx231xx_mode set_mode) | |||
719 | break; | 719 | break; |
720 | case CX231XX_BOARD_CNXT_RDE_253S: | 720 | case CX231XX_BOARD_CNXT_RDE_253S: |
721 | case CX231XX_BOARD_CNXT_RDU_253S: | 721 | case CX231XX_BOARD_CNXT_RDU_253S: |
722 | case CX231XX_BOARD_PV_PLAYTV_USB_HYBRID: | ||
722 | errCode = cx231xx_set_agc_analog_digital_mux_select(dev, 1); | 723 | errCode = cx231xx_set_agc_analog_digital_mux_select(dev, 1); |
723 | break; | 724 | break; |
724 | case CX231XX_BOARD_HAUPPAUGE_EXETER: | 725 | case CX231XX_BOARD_HAUPPAUGE_EXETER: |
@@ -740,6 +741,7 @@ int cx231xx_set_mode(struct cx231xx *dev, enum cx231xx_mode set_mode) | |||
740 | case CX231XX_BOARD_CNXT_RDE_253S: | 741 | case CX231XX_BOARD_CNXT_RDE_253S: |
741 | case CX231XX_BOARD_CNXT_RDU_253S: | 742 | case CX231XX_BOARD_CNXT_RDU_253S: |
742 | case CX231XX_BOARD_HAUPPAUGE_EXETER: | 743 | case CX231XX_BOARD_HAUPPAUGE_EXETER: |
744 | case CX231XX_BOARD_PV_PLAYTV_USB_HYBRID: | ||
743 | errCode = cx231xx_set_agc_analog_digital_mux_select(dev, 0); | 745 | errCode = cx231xx_set_agc_analog_digital_mux_select(dev, 0); |
744 | break; | 746 | break; |
745 | default: | 747 | default: |
@@ -1381,6 +1383,7 @@ int cx231xx_dev_init(struct cx231xx *dev) | |||
1381 | case CX231XX_BOARD_CNXT_RDE_253S: | 1383 | case CX231XX_BOARD_CNXT_RDE_253S: |
1382 | case CX231XX_BOARD_CNXT_RDU_253S: | 1384 | case CX231XX_BOARD_CNXT_RDU_253S: |
1383 | case CX231XX_BOARD_HAUPPAUGE_EXETER: | 1385 | case CX231XX_BOARD_HAUPPAUGE_EXETER: |
1386 | case CX231XX_BOARD_PV_PLAYTV_USB_HYBRID: | ||
1384 | errCode = cx231xx_set_agc_analog_digital_mux_select(dev, 0); | 1387 | errCode = cx231xx_set_agc_analog_digital_mux_select(dev, 0); |
1385 | break; | 1388 | break; |
1386 | default: | 1389 | default: |
diff --git a/drivers/media/video/cx231xx/cx231xx.h b/drivers/media/video/cx231xx/cx231xx.h index d067df9b81e7..8a7d0a4aaab6 100644 --- a/drivers/media/video/cx231xx/cx231xx.h +++ b/drivers/media/video/cx231xx/cx231xx.h | |||
@@ -62,6 +62,7 @@ | |||
62 | #define CX231XX_BOARD_CNXT_RDU_250 7 | 62 | #define CX231XX_BOARD_CNXT_RDU_250 7 |
63 | #define CX231XX_BOARD_HAUPPAUGE_EXETER 8 | 63 | #define CX231XX_BOARD_HAUPPAUGE_EXETER 8 |
64 | #define CX231XX_BOARD_HAUPPAUGE_USBLIVE2 9 | 64 | #define CX231XX_BOARD_HAUPPAUGE_USBLIVE2 9 |
65 | #define CX231XX_BOARD_PV_PLAYTV_USB_HYBRID 10 | ||
65 | 66 | ||
66 | /* Limits minimum and default number of buffers */ | 67 | /* Limits minimum and default number of buffers */ |
67 | #define CX231XX_MIN_BUF 4 | 68 | #define CX231XX_MIN_BUF 4 |