host->transfer_one_message = spi_engine_transfer_one_message;
        host->num_chipselect = 8;
 
-       ret = spi_register_controller(host);
+       ret = devm_spi_register_controller(&pdev->dev, host);
        if (ret)
                return ret;
 
        return 0;
 }
 
-static void spi_engine_remove(struct platform_device *pdev)
-{
-       struct spi_controller *host = platform_get_drvdata(pdev);
-
-       spi_unregister_controller(host);
-}
-
 static const struct of_device_id spi_engine_match_table[] = {
        { .compatible = "adi,axi-spi-engine-1.00.a" },
        { },
 
 static struct platform_driver spi_engine_driver = {
        .probe = spi_engine_probe,
-       .remove_new = spi_engine_remove,
        .driver = {
                .name = "spi-engine",
                .of_match_table = spi_engine_match_table,