aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/spi
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/spi')
-rw-r--r--drivers/spi/spi-sh-msiof.c25
1 files changed, 1 insertions, 24 deletions
diff --git a/drivers/spi/spi-sh-msiof.c b/drivers/spi/spi-sh-msiof.c
index 3ffb8eed5ac5..b6b013a2f397 100644
--- a/drivers/spi/spi-sh-msiof.c
+++ b/drivers/spi/spi-sh-msiof.c
@@ -449,9 +449,6 @@ static int sh_msiof_prepare_message(struct spi_master *master,
449 struct sh_msiof_spi_priv *p = spi_master_get_devdata(master); 449 struct sh_msiof_spi_priv *p = spi_master_get_devdata(master);
450 const struct spi_device *spi = msg->spi; 450 const struct spi_device *spi = msg->spi;
451 451
452 pm_runtime_get_sync(&p->pdev->dev);
453 clk_enable(p->clk);
454
455 /* Configure pins before asserting CS */ 452 /* Configure pins before asserting CS */
456 sh_msiof_spi_set_pin_regs(p, !!(spi->mode & SPI_CPOL), 453 sh_msiof_spi_set_pin_regs(p, !!(spi->mode & SPI_CPOL),
457 !!(spi->mode & SPI_CPHA), 454 !!(spi->mode & SPI_CPHA),
@@ -461,16 +458,6 @@ static int sh_msiof_prepare_message(struct spi_master *master,
461 return 0; 458 return 0;
462} 459}
463 460
464static int sh_msiof_unprepare_message(struct spi_master *master,
465 struct spi_message *msg)
466{
467 struct sh_msiof_spi_priv *p = spi_master_get_devdata(master);
468
469 clk_disable(p->clk);
470 pm_runtime_put(&p->pdev->dev);
471 return 0;
472}
473
474static int sh_msiof_spi_txrx_once(struct sh_msiof_spi_priv *p, 461static int sh_msiof_spi_txrx_once(struct sh_msiof_spi_priv *p,
475 void (*tx_fifo)(struct sh_msiof_spi_priv *, 462 void (*tx_fifo)(struct sh_msiof_spi_priv *,
476 const void *, int, int), 463 const void *, int, int),
@@ -743,12 +730,6 @@ static int sh_msiof_spi_probe(struct platform_device *pdev)
743 goto err1; 730 goto err1;
744 } 731 }
745 732
746 ret = clk_prepare(p->clk);
747 if (ret < 0) {
748 dev_err(&pdev->dev, "unable to prepare clock\n");
749 goto err1;
750 }
751
752 p->pdev = pdev; 733 p->pdev = pdev;
753 pm_runtime_enable(&pdev->dev); 734 pm_runtime_enable(&pdev->dev);
754 735
@@ -769,8 +750,8 @@ static int sh_msiof_spi_probe(struct platform_device *pdev)
769 master->num_chipselect = p->info->num_chipselect; 750 master->num_chipselect = p->info->num_chipselect;
770 master->setup = sh_msiof_spi_setup; 751 master->setup = sh_msiof_spi_setup;
771 master->prepare_message = sh_msiof_prepare_message; 752 master->prepare_message = sh_msiof_prepare_message;
772 master->unprepare_message = sh_msiof_unprepare_message;
773 master->bits_per_word_mask = SPI_BPW_RANGE_MASK(8, 32); 753 master->bits_per_word_mask = SPI_BPW_RANGE_MASK(8, 32);
754 master->auto_runtime_pm = true;
774 master->transfer_one = sh_msiof_transfer_one; 755 master->transfer_one = sh_msiof_transfer_one;
775 756
776 ret = devm_spi_register_master(&pdev->dev, master); 757 ret = devm_spi_register_master(&pdev->dev, master);
@@ -783,7 +764,6 @@ static int sh_msiof_spi_probe(struct platform_device *pdev)
783 764
784 err2: 765 err2:
785 pm_runtime_disable(&pdev->dev); 766 pm_runtime_disable(&pdev->dev);
786 clk_unprepare(p->clk);
787 err1: 767 err1:
788 spi_master_put(master); 768 spi_master_put(master);
789 return ret; 769 return ret;
@@ -791,10 +771,7 @@ static int sh_msiof_spi_probe(struct platform_device *pdev)
791 771
792static int sh_msiof_spi_remove(struct platform_device *pdev) 772static int sh_msiof_spi_remove(struct platform_device *pdev)
793{ 773{
794 struct sh_msiof_spi_priv *p = platform_get_drvdata(pdev);
795
796 pm_runtime_disable(&pdev->dev); 774 pm_runtime_disable(&pdev->dev);
797 clk_unprepare(p->clk);
798 return 0; 775 return 0;
799} 776}
800 777