dev_info(&adev->dev, "mapped registers from %pa to %p\n",
                &adev->res.start, pl022->virtbase);
 
-       pl022->clk = devm_clk_get(&adev->dev, NULL);
+       pl022->clk = devm_clk_get_enabled(&adev->dev, NULL);
        if (IS_ERR(pl022->clk)) {
                status = PTR_ERR(pl022->clk);
                dev_err(&adev->dev, "could not retrieve SSP/SPI bus clock\n");
                goto err_no_clk;
        }
 
-       status = clk_prepare_enable(pl022->clk);
-       if (status) {
-               dev_err(&adev->dev, "could not enable SSP/SPI bus clock\n");
-               goto err_no_clk_en;
-       }
-
        /* Initialize transfer pump */
        tasklet_init(&pl022->pump_transfers, pump_transfers,
                     (unsigned long)pl022);
        if (platform_info->enable_dma)
                pl022_dma_remove(pl022);
  err_no_irq:
-       clk_disable_unprepare(pl022->clk);
- err_no_clk_en:
  err_no_clk:
  err_no_ioremap:
        amba_release_regions(adev);
        if (pl022->host_info->enable_dma)
                pl022_dma_remove(pl022);
 
-       clk_disable_unprepare(pl022->clk);
        amba_release_regions(adev);
        tasklet_disable(&pl022->pump_transfers);
 }