aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/spi/spi-dw.c13
-rw-r--r--drivers/spi/spi-dw.h6
2 files changed, 12 insertions, 7 deletions
diff --git a/drivers/spi/spi-dw.c b/drivers/spi/spi-dw.c
index c8e7715097e7..a730c353d3bf 100644
--- a/drivers/spi/spi-dw.c
+++ b/drivers/spi/spi-dw.c
@@ -546,22 +546,21 @@ void dw_spi_remove_host(struct dw_spi *dws)
546 546
547 if (dws->dma_ops && dws->dma_ops->dma_exit) 547 if (dws->dma_ops && dws->dma_ops->dma_exit)
548 dws->dma_ops->dma_exit(dws); 548 dws->dma_ops->dma_exit(dws);
549 spi_enable_chip(dws, 0); 549
550 /* Disable clk */ 550 spi_shutdown_chip(dws);
551 spi_set_clk(dws, 0);
552} 551}
553EXPORT_SYMBOL_GPL(dw_spi_remove_host); 552EXPORT_SYMBOL_GPL(dw_spi_remove_host);
554 553
555int dw_spi_suspend_host(struct dw_spi *dws) 554int dw_spi_suspend_host(struct dw_spi *dws)
556{ 555{
557 int ret = 0; 556 int ret;
558 557
559 ret = spi_master_suspend(dws->master); 558 ret = spi_master_suspend(dws->master);
560 if (ret) 559 if (ret)
561 return ret; 560 return ret;
562 spi_enable_chip(dws, 0); 561
563 spi_set_clk(dws, 0); 562 spi_shutdown_chip(dws);
564 return ret; 563 return 0;
565} 564}
566EXPORT_SYMBOL_GPL(dw_spi_suspend_host); 565EXPORT_SYMBOL_GPL(dw_spi_suspend_host);
567 566
diff --git a/drivers/spi/spi-dw.h b/drivers/spi/spi-dw.h
index b75ed327d5a2..35589a270468 100644
--- a/drivers/spi/spi-dw.h
+++ b/drivers/spi/spi-dw.h
@@ -225,6 +225,12 @@ static inline void spi_reset_chip(struct dw_spi *dws)
225 spi_enable_chip(dws, 1); 225 spi_enable_chip(dws, 1);
226} 226}
227 227
228static inline void spi_shutdown_chip(struct dw_spi *dws)
229{
230 spi_enable_chip(dws, 0);
231 spi_set_clk(dws, 0);
232}
233
228/* 234/*
229 * Each SPI slave device to work with dw_api controller should 235 * Each SPI slave device to work with dw_api controller should
230 * has such a structure claiming its working mode (poll or PIO/DMA), 236 * has such a structure claiming its working mode (poll or PIO/DMA),