aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/video/cx231xx
diff options
context:
space:
mode:
authorMauro Carvalho Chehab <mchehab@redhat.com>2010-09-26 19:44:31 -0400
committerMauro Carvalho Chehab <mchehab@redhat.com>2010-12-29 05:16:27 -0500
commit9417bc6dd9de85944501f8f4ce8dd0e64135ca82 (patch)
tree64cd420afe1d80dde8b9ce08ef2e801aff79ff8d /drivers/media/video/cx231xx
parentb9ede79ada766eec535e1230970bd885489d5990 (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.c1
-rw-r--r--drivers/media/video/cx231xx/cx231xx-cards.c41
-rw-r--r--drivers/media/video/cx231xx/cx231xx-core.c3
-rw-r--r--drivers/media/video/cx231xx/cx231xx.h1
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};
399const unsigned int cx231xx_bcount = ARRAY_SIZE(cx231xx_boards); 436const unsigned int cx231xx_bcount = ARRAY_SIZE(cx231xx_boards);
400 437
@@ -402,8 +439,6 @@ const unsigned int cx231xx_bcount = ARRAY_SIZE(cx231xx_boards);
402struct usb_device_id cx231xx_id_table[] = { 439struct 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