if (!wg)
                return -ENOMEM;
 
-       wg->regmap_irq_chip = pmic->irq_chip_data_level2;
+       wg->regmap_irq_chip = pmic->irq_chip_data;
 
        platform_set_drvdata(pdev, wg);
 
 
        gpiochip_set_nested_irqchip(&wg->chip, &wcove_irqchip, virq);
 
+       /* Enable GPIO0 interrupts */
+       ret = regmap_update_bits(wg->regmap, IRQ_MASK_BASE, GPIO_IRQ0_MASK,
+                                0x00);
+       if (ret)
+               return ret;
+
+       /* Enable GPIO1 interrupts */
+       ret = regmap_update_bits(wg->regmap, IRQ_MASK_BASE + 1, GPIO_IRQ1_MASK,
+                                0x00);
+       if (ret)
+               return ret;
+
        return 0;
 }
 
 
        BXTWC_USBC_IRQ,
        BXTWC_CHGR0_IRQ,
        BXTWC_CHGR1_IRQ,
-       BXTWC_GPIO0_IRQ,
-       BXTWC_GPIO1_IRQ,
        BXTWC_CRIT_IRQ,
 };
 
        REGMAP_IRQ_REG(BXTWC_USBC_IRQ, 2, BIT(5)),
        REGMAP_IRQ_REG(BXTWC_CHGR0_IRQ, 2, 0x1f),
        REGMAP_IRQ_REG(BXTWC_CHGR1_IRQ, 3, 0x1f),
-       REGMAP_IRQ_REG(BXTWC_GPIO0_IRQ, 4, 0xff),
-       REGMAP_IRQ_REG(BXTWC_GPIO1_IRQ, 5, 0x3f),
        REGMAP_IRQ_REG(BXTWC_CRIT_IRQ, 6, 0x03),
 };
 
 };
 
 static struct resource gpio_resources[] = {
-       DEFINE_RES_IRQ_NAMED(BXTWC_GPIO0_IRQ, "GPIO0"),
-       DEFINE_RES_IRQ_NAMED(BXTWC_GPIO1_IRQ, "GPIO1"),
+       DEFINE_RES_IRQ_NAMED(BXTWC_GPIO_LVL1_IRQ, "GPIO"),
 };
 
 static struct resource adc_resources[] = {