V4L/DVB (9062): Add support for Prolink Pixelview Global Extreme

Thanks to Sidney Matias <sidney.matias@gmail.com> for getting GPIO
values and testing on this device.

Cc: Sidney Matias <sidney.matias@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
This commit is contained in:
Mauro Carvalho Chehab 2008-09-29 12:08:29 -03:00
parent 9b00019139
commit a31d2bb773
4 changed files with 41 additions and 1 deletions

View File

@ -72,3 +72,4 @@
71 -> Omicom SS4 DVB-S/S2 PCI [A044:2011] 71 -> Omicom SS4 DVB-S/S2 PCI [A044:2011]
72 -> TBS 8920 DVB-S/S2 [8920:8888] 72 -> TBS 8920 DVB-S/S2 [8920:8888]
73 -> TeVii S420 DVB-S [d420:9022] 73 -> TeVii S420 DVB-S [d420:9022]
74 -> Prolink Pixelview Global Extreme [1554:4976]

View File

@ -1628,6 +1628,36 @@ static const struct cx88_board cx88_boards[] = {
.gpio2 = 0x0cfb, .gpio2 = 0x0cfb,
}, },
}, },
[CX88_BOARD_PROLINK_PV_GLOBAL_XTREME] = {
.name = "Prolink Pixelview Global Extreme",
.tuner_type = TUNER_XC2028,
.tuner_addr = 0x61,
.input = { {
.type = CX88_VMUX_TELEVISION,
.vmux = 0,
.gpio0 = 0x04fb,
.gpio1 = 0x04080,
.gpio2 = 0x0cf7,
}, {
.type = CX88_VMUX_COMPOSITE1,
.vmux = 1,
.gpio0 = 0x04fb,
.gpio1 = 0x04080,
.gpio2 = 0x0cfb,
}, {
.type = CX88_VMUX_SVIDEO,
.vmux = 2,
.gpio0 = 0x04fb,
.gpio1 = 0x04080,
.gpio2 = 0x0cfb,
} },
.radio = {
.type = CX88_RADIO,
.gpio0 = 0x04ff,
.gpio1 = 0x04080,
.gpio2 = 0x0cf7,
},
},
/* Both radio, analog and ATSC work with this board. /* Both radio, analog and ATSC work with this board.
However, for analog to work, s5h1409 gate should be open, However, for analog to work, s5h1409 gate should be open,
otherwise, tuner-xc3028 won't be detected. otherwise, tuner-xc3028 won't be detected.
@ -2125,6 +2155,10 @@ static const struct cx88_subid cx88_subids[] = {
.subvendor = 0x1554, .subvendor = 0x1554,
.subdevice = 0x4935, .subdevice = 0x4935,
.card = CX88_BOARD_PROLINK_PV_8000GT, .card = CX88_BOARD_PROLINK_PV_8000GT,
}, {
.subvendor = 0x1554,
.subdevice = 0x4976,
.card = CX88_BOARD_PROLINK_PV_GLOBAL_XTREME,
}, { }, {
.subvendor = 0x17de, .subvendor = 0x17de,
.subdevice = 0x08c1, .subdevice = 0x08c1,
@ -2429,6 +2463,7 @@ static int cx88_xc2028_tuner_callback(struct cx88_core *core,
return cx88_xc3028_geniatech_tuner_callback(core, return cx88_xc3028_geniatech_tuner_callback(core,
command, arg); command, arg);
case CX88_BOARD_PROLINK_PV_8000GT: case CX88_BOARD_PROLINK_PV_8000GT:
case CX88_BOARD_PROLINK_PV_GLOBAL_XTREME:
return cx88_pv_8000gt_callback(core, command, arg); return cx88_pv_8000gt_callback(core, command, arg);
case CX88_BOARD_DVICO_FUSIONHDTV_DVB_T_PRO: case CX88_BOARD_DVICO_FUSIONHDTV_DVB_T_PRO:
case CX88_BOARD_DVICO_FUSIONHDTV_5_PCI_NANO: case CX88_BOARD_DVICO_FUSIONHDTV_5_PCI_NANO:
@ -2582,6 +2617,7 @@ static void cx88_card_setup_pre_i2c(struct cx88_core *core)
udelay(1000); udelay(1000);
break; break;
case CX88_BOARD_PROLINK_PV_GLOBAL_XTREME:
case CX88_BOARD_PROLINK_PV_8000GT: case CX88_BOARD_PROLINK_PV_8000GT:
cx_write(MO_GP2_IO, 0xcf7); cx_write(MO_GP2_IO, 0xcf7);
mdelay(50); mdelay(50);
@ -2629,9 +2665,10 @@ void cx88_setup_xc3028(struct cx88_core *core, struct xc2028_ctrl *ctl)
case CX88_BOARD_DVICO_FUSIONHDTV_5_PCI_NANO: case CX88_BOARD_DVICO_FUSIONHDTV_5_PCI_NANO:
ctl->demod = XC3028_FE_OREN538; ctl->demod = XC3028_FE_OREN538;
break; break;
case CX88_BOARD_PROLINK_PV_GLOBAL_XTREME:
case CX88_BOARD_PROLINK_PV_8000GT: case CX88_BOARD_PROLINK_PV_8000GT:
/* /*
* This board uses non-MTS firmware * Those boards uses non-MTS firmware
*/ */
break; break;
default: default:

View File

@ -261,6 +261,7 @@ int cx88_ir_init(struct cx88_core *core, struct pci_dev *pci)
ir->polling = 1; /* ms */ ir->polling = 1; /* ms */
break; break;
case CX88_BOARD_PROLINK_PV_8000GT: case CX88_BOARD_PROLINK_PV_8000GT:
case CX88_BOARD_PROLINK_PV_GLOBAL_XTREME:
ir_codes = ir_codes_pixelview_new; ir_codes = ir_codes_pixelview_new;
ir->gpio_addr = MO_GP1_IO; ir->gpio_addr = MO_GP1_IO;
ir->mask_keycode = 0x3f; ir->mask_keycode = 0x3f;

View File

@ -227,6 +227,7 @@ extern struct sram_channel cx88_sram_channels[];
#define CX88_BOARD_OMICOM_SS4_PCI 71 #define CX88_BOARD_OMICOM_SS4_PCI 71
#define CX88_BOARD_TBS_8920 72 #define CX88_BOARD_TBS_8920 72
#define CX88_BOARD_TEVII_S420 73 #define CX88_BOARD_TEVII_S420 73
#define CX88_BOARD_PROLINK_PV_GLOBAL_XTREME 74
enum cx88_itype { enum cx88_itype {
CX88_VMUX_COMPOSITE1 = 1, CX88_VMUX_COMPOSITE1 = 1,