static int pmic_spmi_probe(struct spmi_device *sdev)
 {
-       struct device_node *root = sdev->dev.of_node;
        struct regmap *regmap;
 
        regmap = devm_regmap_init_spmi_ext(sdev, &spmi_regmap_config);
        if (sdev->usid % 2 == 0)
                pmic_spmi_show_revid(regmap, &sdev->dev);
 
-       return of_platform_populate(root, NULL, NULL, &sdev->dev);
-}
-
-static void pmic_spmi_remove(struct spmi_device *sdev)
-{
-       of_platform_depopulate(&sdev->dev);
+       return devm_of_platform_populate(&sdev->dev);
 }
 
 MODULE_DEVICE_TABLE(of, pmic_spmi_id_table);
 
 static struct spmi_driver pmic_spmi_driver = {
        .probe = pmic_spmi_probe,
-       .remove = pmic_spmi_remove,
        .driver = {
                .name = "pmic-spmi",
                .of_match_table = pmic_spmi_id_table,