mfd: arizona: Disable DCVDD before we destroy the MFD
[firefly-linux-kernel-4.4.55.git] / drivers / mfd / arizona-core.c
index 9d71ebccc8b02b97623d07a5870aa71059607aae..9df02502326a468d868b9781c33389e019021d44 100644 (file)
@@ -1025,6 +1025,8 @@ int arizona_dev_exit(struct arizona *arizona)
 {
        pm_runtime_disable(arizona->dev);
 
+       regulator_disable(arizona->dcvdd);
+
        mfd_remove_devices(arizona->dev);
        arizona_free_irq(arizona, ARIZONA_IRQ_UNDERCLOCKED, arizona);
        arizona_free_irq(arizona, ARIZONA_IRQ_OVERCLOCKED, arizona);
@@ -1032,7 +1034,7 @@ int arizona_dev_exit(struct arizona *arizona)
        arizona_irq_exit(arizona);
        if (arizona->pdata.reset)
                gpio_set_value_cansleep(arizona->pdata.reset, 0);
-       regulator_disable(arizona->dcvdd);
+
        regulator_bulk_disable(ARRAY_SIZE(arizona->core_supplies),
                               arizona->core_supplies);
        return 0;