power->axp20x_id = axp_data->axp20x_id;
        power->regmap = axp20x->regmap;
        power->num_irqs = axp_data->num_irq_names;
-       INIT_DELAYED_WORK(&power->vbus_detect, axp20x_usb_power_poll_vbus);
+
+       ret = devm_delayed_work_autocancel(&pdev->dev, &power->vbus_detect,
+                                          axp20x_usb_power_poll_vbus);
+       if (ret)
+               return ret;
 
        if (power->axp20x_id == AXP202_ID) {
                /* Enable vbus valid checking */
                }
        }
 
-       ret = devm_delayed_work_autocancel(&pdev->dev, &power->vbus_detect,
-                                          axp20x_usb_power_poll_vbus);
-       if (ret)
-               return ret;
        if (axp20x_usb_vbus_needs_polling(power))
                queue_delayed_work(system_power_efficient_wq, &power->vbus_detect, 0);