Analog - No input analog */
 
 /* Callback for the most boards */
-static struct em28xx_reg_seq default_callback[] = {
+static struct em28xx_reg_seq default_tuner_gpio[] = {
        {EM28XX_R08_GPIO,       EM_GPIO_4,      EM_GPIO_4,      10},
        {EM28XX_R08_GPIO,       0,              EM_GPIO_4,      10},
        {EM28XX_R08_GPIO,       EM_GPIO_4,      EM_GPIO_4,      10},
                .name         = "Terratec Cinergy A Hybrid XS",
                .valid        = EM28XX_BOARD_NOT_VALIDATED,
                .tuner_type   = TUNER_XC2028,
+               .tuner_gpio   = default_tuner_gpio,
                .decoder      = EM28XX_TVP5150,
+
                .input        = { {
                        .type     = EM28XX_VMUX_TELEVISION,
                        .vmux     = TVP5150_COMPOSITE0,
                .name         = "KWorld PVRTV 300U",
                .valid        = EM28XX_BOARD_NOT_VALIDATED,
                .tuner_type   = TUNER_XC2028,
+               .tuner_gpio   = default_tuner_gpio,
                .decoder      = EM28XX_TVP5150,
                .input        = { {
                        .type     = EM28XX_VMUX_TELEVISION,
                .name         = "Terratec Cinergy T XS",
                .valid        = EM28XX_BOARD_NOT_VALIDATED,
                .tuner_type   = TUNER_XC2028,
+               .tuner_gpio   = default_tuner_gpio,
        },
        [EM2870_BOARD_TERRATEC_XS_MT2060] = {
                .name         = "Terratec Cinergy T XS (MT2060)",
                .name         = "Kworld 350 U DVB-T",
                .valid        = EM28XX_BOARD_NOT_VALIDATED,
                .tuner_type   = TUNER_XC2028,
+               .tuner_gpio   = default_tuner_gpio,
        },
        [EM2870_BOARD_KWORLD_355U] = {
                .name         = "Kworld 355 U DVB-T",
                .valid        = EM28XX_BOARD_NOT_VALIDATED,
                .has_msp34xx  = 1,
                .tuner_type   = TUNER_XC2028,
+               .tuner_gpio   = default_tuner_gpio,
                .decoder      = EM28XX_TVP5150,
                .input        = { {
                        .type     = EM28XX_VMUX_TELEVISION,
                .name         = "Hauppauge WinTV HVR 900",
                .tda9887_conf = TDA9887_PRESENT,
                .tuner_type   = TUNER_XC2028,
+               .tuner_gpio   = default_tuner_gpio,
                .mts_firmware = 1,
                .has_dvb      = 1,
                .dvb_gpio     = hauppauge_wintv_hvr_900_digital,
                .name         = "Hauppauge WinTV HVR 900 (R2)",
                .tda9887_conf = TDA9887_PRESENT,
                .tuner_type   = TUNER_XC2028,
+               .tuner_gpio   = default_tuner_gpio,
                .mts_firmware = 1,
                .decoder      = EM28XX_TVP5150,
                .input        = { {
        [EM2883_BOARD_HAUPPAUGE_WINTV_HVR_950] = {
                .name           = "Hauppauge WinTV HVR 950",
                .tuner_type     = TUNER_XC2028,
+               .tuner_gpio     = default_tuner_gpio,
                .mts_firmware   = 1,
                .has_dvb        = 1,
                .dvb_gpio       = hauppauge_wintv_hvr_900_digital,
        [EM2880_BOARD_PINNACLE_PCTV_HD_PRO] = {
                .name           = "Pinnacle PCTV HD Pro Stick",
                .tuner_type     = TUNER_XC2028,
+               .tuner_gpio   = default_tuner_gpio,
                .mts_firmware   = 1,
                .has_dvb        = 1,
                .dvb_gpio       = hauppauge_wintv_hvr_900_digital,
        [EM2880_BOARD_AMD_ATI_TV_WONDER_HD_600] = {
                .name           = "AMD ATI TV Wonder HD 600",
                .tuner_type     = TUNER_XC2028,
+               .tuner_gpio     = default_tuner_gpio,
                .mts_firmware   = 1,
                .has_dvb        = 1,
                .dvb_gpio       = hauppauge_wintv_hvr_900_digital,
        [EM2880_BOARD_TERRATEC_HYBRID_XS] = {
                .name           = "Terratec Hybrid XS",
                .tuner_type     = TUNER_XC2028,
+               .tuner_gpio     = default_tuner_gpio,
                .decoder        = EM28XX_TVP5150,
                .has_dvb        = 1,
                .dvb_gpio       = default_analog,
        [EM2880_BOARD_TERRATEC_PRODIGY_XS] = {
                .name         = "Terratec Prodigy XS",
                .tuner_type   = TUNER_XC2028,
+               .tuner_gpio   = default_tuner_gpio,
                .decoder      = EM28XX_TVP5150,
                .input        = { {
                        .type     = EM28XX_VMUX_TELEVISION,
                .name         = "MSI DigiVox A/D",
                .valid        = EM28XX_BOARD_NOT_VALIDATED,
                .tuner_type   = TUNER_XC2028,
+               .tuner_gpio   = default_tuner_gpio,
                .decoder      = EM28XX_TVP5150,
                .input        = { {
                        .type     = EM28XX_VMUX_TELEVISION,
                .name         = "MSI DigiVox A/D II",
                .valid        = EM28XX_BOARD_NOT_VALIDATED,
                .tuner_type   = TUNER_XC2028,
+               .tuner_gpio   = default_tuner_gpio,
                .decoder      = EM28XX_TVP5150,
                .input        = { {
                        .type     = EM28XX_VMUX_TELEVISION,
                .name         = "KWorld DVB-T 305U",
                .valid        = EM28XX_BOARD_NOT_VALIDATED,
                .tuner_type   = TUNER_XC2028,
+               .tuner_gpio   = default_tuner_gpio,
                .decoder      = EM28XX_TVP5150,
                .input        = { {
                        .type     = EM28XX_VMUX_TELEVISION,
        [EM2880_BOARD_KWORLD_DVB_310U] = {
                .name         = "KWorld DVB-T 310U",
                .tuner_type   = TUNER_XC2028,
+               .tuner_gpio   = default_tuner_gpio,
                .has_dvb      = 1,
                .dvb_gpio     = default_digital,
                .mts_firmware = 1,
                .name         = "DNT DA2 Hybrid",
                .valid        = EM28XX_BOARD_NOT_VALIDATED,
                .tuner_type   = TUNER_XC2028,
+               .tuner_gpio   = default_tuner_gpio,
                .decoder      = EM28XX_TVP5150,
                .input        = { {
                        .type     = EM28XX_VMUX_TELEVISION,
                .name         = "Pinnacle Hybrid Pro",
                .valid        = EM28XX_BOARD_NOT_VALIDATED,
                .tuner_type   = TUNER_XC2028,
+               .tuner_gpio   = default_tuner_gpio,
                .decoder      = EM28XX_TVP5150,
                .input        = { {
                        .type     = EM28XX_VMUX_TELEVISION,
                .name         = "Pinnacle Hybrid Pro (2)",
                .valid        = EM28XX_BOARD_NOT_VALIDATED,
                .tuner_type   = TUNER_XC2028,
+               .tuner_gpio   = default_tuner_gpio,
                .mts_firmware = 1,
                .decoder      = EM28XX_TVP5150,
                .input        = { {
                .name         = "Kworld VS-DVB-T 323UR",
                .valid        = EM28XX_BOARD_NOT_VALIDATED,
                .tuner_type   = TUNER_XC2028,
+               .tuner_gpio   = default_tuner_gpio,
                .decoder      = EM28XX_TVP5150,
                .input        = { {
                        .type     = EM28XX_VMUX_TELEVISION,
                .name         = "Terratec Hybrid XS (em2882)",
                .valid        = EM28XX_BOARD_NOT_VALIDATED,
                .tuner_type   = TUNER_XC2028,
+               .tuner_gpio   = default_tuner_gpio,
                .decoder      = EM28XX_TVP5150,
                .input        = { {
                        .type     = EM28XX_VMUX_TELEVISION,
                .name         = "Kworld PlusTV HD Hybrid 330",
                .valid        = EM28XX_BOARD_NOT_VALIDATED,
                .tuner_type   = TUNER_XC2028,
+               .tuner_gpio   = default_tuner_gpio,
                .decoder      = EM28XX_TVP5150,
                .input        = { {
                        .type     = EM28XX_VMUX_TELEVISION,
        if (command != XC2028_TUNER_RESET)
                return 0;
 
-       rc = em28xx_gpio_set(dev, dev->tuner_gpio);
+       rc = em28xx_gpio_set(dev, dev->board.tuner_gpio);
 
        return rc;
 }
                break;
        }
 
-       /* Sets the default callback. Used only for certain tuners */
-       if (!dev->tuner_gpio)
-               dev->tuner_gpio       = default_callback;
-
-       em28xx_gpio_set(dev, dev->tuner_gpio);
+       em28xx_gpio_set(dev, dev->board.tuner_gpio);
        em28xx_set_mode(dev, EM28XX_ANALOG_MODE);
 
        /* Unlock device */