mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-22 06:57:57 +00:00
5403770105
Newer MediaTek's SoCs need SPI calibration routines for SPI to work reliably. Import patches for that from MediaTek's SDK. Signed-off-by: Daniel Golle <daniel@makrotopia.org>
30 lines
860 B
Diff
30 lines
860 B
Diff
--- a/drivers/spi/spi-mt65xx.c
|
|
+++ b/drivers/spi/spi-mt65xx.c
|
|
@@ -1231,10 +1231,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);
|
|
@@ -1285,6 +1291,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:
|