return mvebu_pinctrl_probe(pdev);
 }
 
-static int armada_370_pinctrl_remove(struct platform_device *pdev)
-{
-       return mvebu_pinctrl_remove(pdev);
-}
-
 static struct platform_driver armada_370_pinctrl_driver = {
        .driver = {
                .name = "armada-370-pinctrl",
                .of_match_table = armada_370_pinctrl_of_match,
        },
        .probe = armada_370_pinctrl_probe,
-       .remove = armada_370_pinctrl_remove,
 };
 
 module_platform_driver(armada_370_pinctrl_driver);
 
        return mvebu_pinctrl_probe(pdev);
 }
 
-static int armada_375_pinctrl_remove(struct platform_device *pdev)
-{
-       return mvebu_pinctrl_remove(pdev);
-}
-
 static struct platform_driver armada_375_pinctrl_driver = {
        .driver = {
                .name = "armada-375-pinctrl",
                .of_match_table = of_match_ptr(armada_375_pinctrl_of_match),
        },
        .probe = armada_375_pinctrl_probe,
-       .remove = armada_375_pinctrl_remove,
 };
 
 module_platform_driver(armada_375_pinctrl_driver);
 
        return mvebu_pinctrl_probe(pdev);
 }
 
-static int armada_38x_pinctrl_remove(struct platform_device *pdev)
-{
-       return mvebu_pinctrl_remove(pdev);
-}
-
 static struct platform_driver armada_38x_pinctrl_driver = {
        .driver = {
                .name = "armada-38x-pinctrl",
                .of_match_table = of_match_ptr(armada_38x_pinctrl_of_match),
        },
        .probe = armada_38x_pinctrl_probe,
-       .remove = armada_38x_pinctrl_remove,
 };
 
 module_platform_driver(armada_38x_pinctrl_driver);
 
        return mvebu_pinctrl_probe(pdev);
 }
 
-static int armada_39x_pinctrl_remove(struct platform_device *pdev)
-{
-       return mvebu_pinctrl_remove(pdev);
-}
-
 static struct platform_driver armada_39x_pinctrl_driver = {
        .driver = {
                .name = "armada-39x-pinctrl",
                .of_match_table = of_match_ptr(armada_39x_pinctrl_of_match),
        },
        .probe = armada_39x_pinctrl_probe,
-       .remove = armada_39x_pinctrl_remove,
 };
 
 module_platform_driver(armada_39x_pinctrl_driver);
 
        return mvebu_pinctrl_probe(pdev);
 }
 
-static int armada_xp_pinctrl_remove(struct platform_device *pdev)
-{
-       return mvebu_pinctrl_remove(pdev);
-}
-
 static struct platform_driver armada_xp_pinctrl_driver = {
        .driver = {
                .name = "armada-xp-pinctrl",
                .of_match_table = armada_xp_pinctrl_of_match,
        },
        .probe = armada_xp_pinctrl_probe,
-       .remove = armada_xp_pinctrl_remove,
        .suspend = armada_xp_pinctrl_suspend,
        .resume = armada_xp_pinctrl_resume,
 };
 
 
 static int dove_pinctrl_remove(struct platform_device *pdev)
 {
-       int ret;
-
-       ret = mvebu_pinctrl_remove(pdev);
        if (!IS_ERR(clk))
                clk_disable_unprepare(clk);
-       return ret;
+       return 0;
 }
 
 static struct platform_driver dove_pinctrl_driver = {
 
        return mvebu_pinctrl_probe(pdev);
 }
 
-static int kirkwood_pinctrl_remove(struct platform_device *pdev)
-{
-       return mvebu_pinctrl_remove(pdev);
-}
-
 static struct platform_driver kirkwood_pinctrl_driver = {
        .driver = {
                .name = "kirkwood-pinctrl",
                .of_match_table = kirkwood_pinctrl_of_match,
        },
        .probe = kirkwood_pinctrl_probe,
-       .remove = kirkwood_pinctrl_remove,
 };
 
 module_platform_driver(kirkwood_pinctrl_driver);
 
                return ret;
        }
 
-       pctl->pctldev = pinctrl_register(&pctl->desc, &pdev->dev, pctl);
+       pctl->pctldev = devm_pinctrl_register(&pdev->dev, &pctl->desc, pctl);
        if (IS_ERR(pctl->pctldev)) {
                dev_err(&pdev->dev, "unable to register pinctrl driver\n");
                return PTR_ERR(pctl->pctldev);
 
        return 0;
 }
-
-int mvebu_pinctrl_remove(struct platform_device *pdev)
-{
-       struct mvebu_pinctrl *pctl = platform_get_drvdata(pdev);
-       pinctrl_unregister(pctl->pctldev);
-       return 0;
-}
 
 }
 
 int mvebu_pinctrl_probe(struct platform_device *pdev);
-int mvebu_pinctrl_remove(struct platform_device *pdev);
 
 #endif
 
        return mvebu_pinctrl_probe(pdev);
 }
 
-static int orion_pinctrl_remove(struct platform_device *pdev)
-{
-       return mvebu_pinctrl_remove(pdev);
-}
-
 static struct platform_driver orion_pinctrl_driver = {
        .driver = {
                .name = "orion-pinctrl",
                .of_match_table = of_match_ptr(orion_pinctrl_of_match),
        },
        .probe = orion_pinctrl_probe,
-       .remove = orion_pinctrl_remove,
 };
 
 module_platform_driver(orion_pinctrl_driver);