goto err;
        }
 
-       chg->charger = power_supply_register(&pdev->dev,
-                                               &max77693_charger_desc,
-                                               &psy_cfg);
+       chg->charger = devm_power_supply_register(&pdev->dev,
+                                                 &max77693_charger_desc,
+                                                 &psy_cfg);
        if (IS_ERR(chg->charger)) {
                dev_err(&pdev->dev, "failed: power supply register\n");
                ret = PTR_ERR(chg->charger);
 
 static void max77693_charger_remove(struct platform_device *pdev)
 {
-       struct max77693_charger *chg = platform_get_drvdata(pdev);
-
        device_remove_file(&pdev->dev, &dev_attr_top_off_timer);
        device_remove_file(&pdev->dev, &dev_attr_top_off_threshold_current);
        device_remove_file(&pdev->dev, &dev_attr_fast_charge_timer);
-
-       power_supply_unregister(chg->charger);
 }
 
 static const struct platform_device_id max77693_charger_id[] = {