fpc->chip.ops = &fsl_pwm_ops;
        fpc->chip.npwm = 8;
 
-       ret = pwmchip_add(&fpc->chip);
+       ret = devm_pwmchip_add(&pdev->dev, &fpc->chip);
        if (ret < 0) {
                dev_err(&pdev->dev, "failed to add PWM chip: %d\n", ret);
                return ret;
        return fsl_pwm_init(fpc);
 }
 
-static int fsl_pwm_remove(struct platform_device *pdev)
-{
-       struct fsl_pwm_chip *fpc = platform_get_drvdata(pdev);
-
-       return pwmchip_remove(&fpc->chip);
-}
-
 #ifdef CONFIG_PM_SLEEP
 static int fsl_pwm_suspend(struct device *dev)
 {
                .pm = &fsl_pwm_pm_ops,
        },
        .probe = fsl_pwm_probe,
-       .remove = fsl_pwm_remove,
 };
 module_platform_driver(fsl_pwm_driver);