--- a/drivers/spi/spi-mt65xx.c
+++ b/drivers/spi/spi-mt65xx.c
@@ -1233,10 +1233,16 @@ static int mtk_spi_probe(struct platform
 		goto err_disable_spi_hclk;
 	}
 
+	ret = clk_prepare_enable(mdata->sel_clk);
+	if (ret < 0) {
+		dev_err(&pdev->dev, "failed to enable sel_clk (%d)\n", ret);
+		goto err_disable_spi_clk;
+	}
+
 	ret = clk_set_parent(mdata->sel_clk, mdata->parent_clk);
 	if (ret < 0) {
 		dev_err(&pdev->dev, "failed to clk_set_parent (%d)\n", ret);
-		goto err_disable_spi_clk;
+		goto err_disable_spi_sel_clk;
 	}
 
 	mdata->spi_clk_hz = clk_get_rate(mdata->spi_clk);
@@ -1287,6 +1293,8 @@ static int mtk_spi_probe(struct platform
 
 err_disable_runtime_pm:
 	pm_runtime_disable(&pdev->dev);
+err_disable_spi_sel_clk:
+	clk_disable_unprepare(mdata->sel_clk);
 err_disable_spi_clk:
 	clk_disable_unprepare(mdata->spi_clk);
 err_disable_spi_hclk:
