info->edev->name = DEV_NAME;
        info->edev->dev.parent = &pdev->dev;
        info->edev->supported_cable = max77693_extcon_cable;
-       ret = extcon_dev_register(info->edev);
+       ret = devm_extcon_dev_register(&pdev->dev, info->edev);
        if (ret) {
                dev_err(&pdev->dev, "failed to register extcon device\n");
                goto err_irq;
                        MAX77693_MUIC_REG_ID, &id);
        if (ret < 0) {
                dev_err(&pdev->dev, "failed to read revision number\n");
-               goto err_extcon;
+               goto err_irq;
        }
        dev_info(info->dev, "device ID : 0x%x\n", id);
 
 
        return ret;
 
-err_extcon:
-       extcon_dev_unregister(info->edev);
 err_irq:
        while (--i >= 0)
                free_irq(muic_irqs[i].virq, info);
                free_irq(muic_irqs[i].virq, info);
        cancel_work_sync(&info->irq_work);
        input_unregister_device(info->dock);
-       extcon_dev_unregister(info->edev);
 
        return 0;
 }