.name           = "Pinnacle Hybrid PCTV",
                .tuner_type     = TUNER_XC2028,
                .tuner_addr     = 0x61,
+               .radio_type     = TUNER_XC2028,
+               .radio_addr     = 0x61,
                .input          = { {
                        .type   = CX88_VMUX_TELEVISION,
                        .vmux   = 0,
+                       .gpio0  = 0x004ff,
+                       .gpio1  = 0x010ff,
+                       .gpio2  = 0x00001,
                }, {
                        .type   = CX88_VMUX_COMPOSITE1,
                        .vmux   = 1,
+                       .gpio0  = 0x004fb,
+                       .gpio1  = 0x010ef,
+                       .audioroute = 1,
                }, {
                        .type   = CX88_VMUX_SVIDEO,
                        .vmux   = 2,
+                       .gpio0  = 0x004fb,
+                       .gpio1  = 0x010ef,
+                       .audioroute = 1,
                } },
                .radio = {
                        .type   = CX88_RADIO,
                        .gpio1  = 0x010ff,
                        .gpio2  = 0x0ff,
                },
+               .mpeg           = CX88_MPEG_DVB,
        },
        [CX88_BOARD_WINFAST_TV2000_XP_GLOBAL] = {
                .name           = "Winfast TV2000 XP Global",
                 * Those boards uses non-MTS firmware
                 */
                break;
+       case CX88_BOARD_PINNACLE_HYBRID_PCTV:
+               ctl->demod = XC3028_FE_ZARLINK456;
+               ctl->mts = 1;
+               break;
        default:
                ctl->demod = XC3028_FE_OREN538;
                ctl->mts = 1;
 
        .if_khz         = 5380,
 };
 
+static struct zl10353_config cx88_pinnacle_hybrid_pctv = {
+       .demod_address = (0x1e >> 1),
+       .no_tuner      = 1,
+       .if2           = 45600,
+};
+
 static struct zl10353_config cx88_geniatech_x8000_mt = {
        .demod_address = (0x1e >> 1),
        .no_tuner = 1,
                break;
         case CX88_BOARD_PINNACLE_HYBRID_PCTV:
                dev->dvb.frontend = dvb_attach(zl10353_attach,
-                                              &cx88_geniatech_x8000_mt,
+                                              &cx88_pinnacle_hybrid_pctv,
                                               &core->i2c_adap);
-               if (attach_xc3028(0x61, dev) < 0)
-                       goto frontend_detach;
+               if (dev->dvb.frontend) {
+                       dev->dvb.frontend->ops.i2c_gate_ctrl = NULL;
+                       if (attach_xc3028(0x61, dev) < 0)
+                               goto frontend_detach;
+               }
                break;
         case CX88_BOARD_GENIATECH_X8000_MT:
                dev->ts_gen_cntrl = 0x00;