summaryrefslogtreecommitdiff
path: root/drivers/spi/designware_spi.c
diff options
context:
space:
mode:
authorTom Rini <trini@konsulko.com>2019-10-30 09:04:52 -0400
committerTom Rini <trini@konsulko.com>2019-10-30 09:04:52 -0400
commitcc64810dc6234a3537502a05988fa7a1a6fa5d55 (patch)
treec4fa2eb538e6805a6c6080dea5b8fc03a7a8dc15 /drivers/spi/designware_spi.c
parentffc379b42c85466e1dd4c8fee8268801f26d2ab8 (diff)
parent5f19c9302133cda54d5d1a6b1caa400260de9192 (diff)
Merge https://gitlab.denx.de/u-boot/custodians/u-boot-sunxi
- H6 dts(i) sync (Clément) - H6 PIO (Icenowy) - Fix pll1 clock calculation (Stefan) - H6 dram, half DQ (Jernej) - A64 OLinuXino eMMC (Sunil)
Diffstat (limited to 'drivers/spi/designware_spi.c')
-rw-r--r--drivers/spi/designware_spi.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/drivers/spi/designware_spi.c b/drivers/spi/designware_spi.c
index 7d58cfae55e..91e613e9cd6 100644
--- a/drivers/spi/designware_spi.c
+++ b/drivers/spi/designware_spi.c
@@ -518,8 +518,22 @@ static int dw_spi_set_mode(struct udevice *bus, uint mode)
static int dw_spi_remove(struct udevice *bus)
{
struct dw_spi_priv *priv = dev_get_priv(bus);
+ int ret;
+
+ ret = reset_release_bulk(&priv->resets);
+ if (ret)
+ return ret;
- return reset_release_bulk(&priv->resets);
+#if CONFIG_IS_ENABLED(CLK)
+ ret = clk_disable(&priv->clk);
+ if (ret)
+ return ret;
+
+ ret = clk_free(&priv->clk);
+ if (ret)
+ return ret;
+#endif
+ return 0;
}
static const struct dm_spi_ops dw_spi_ops = {