pmic->int_con[1] = MT6323_INT_CON1;
                pmic->int_status[0] = MT6323_INT_STATUS0;
                pmic->int_status[1] = MT6323_INT_STATUS1;
-               ret = mfd_add_devices(&pdev->dev, -1, mt6323_devs,
-                               ARRAY_SIZE(mt6323_devs), NULL, 0, NULL);
+               ret = devm_mfd_add_devices(&pdev->dev, -1, mt6323_devs,
+                                          ARRAY_SIZE(mt6323_devs), NULL,
+                                          0, NULL);
                break;
 
        case MT6397_CID_CODE:
                pmic->int_con[1] = MT6397_INT_CON1;
                pmic->int_status[0] = MT6397_INT_STATUS0;
                pmic->int_status[1] = MT6397_INT_STATUS1;
-               ret = mfd_add_devices(&pdev->dev, -1, mt6397_devs,
-                               ARRAY_SIZE(mt6397_devs), NULL, 0, NULL);
+               ret = devm_mfd_add_devices(&pdev->dev, -1, mt6397_devs,
+                                          ARRAY_SIZE(mt6397_devs), NULL,
+                                          0, NULL);
                break;
 
        default:
        return ret;
 }
 
-static int mt6397_remove(struct platform_device *pdev)
-{
-       mfd_remove_devices(&pdev->dev);
-
-       return 0;
-}
-
 static const struct of_device_id mt6397_of_match[] = {
        { .compatible = "mediatek,mt6397" },
        { .compatible = "mediatek,mt6323" },
 
 static struct platform_driver mt6397_driver = {
        .probe = mt6397_probe,
-       .remove = mt6397_remove,
        .driver = {
                .name = "mt6397",
                .of_match_table = of_match_ptr(mt6397_of_match),