/** * zynq_qspi_resume - Resume method for the QSPI driver * @dev: Address of the platform_device structure * * The function starts the QSPI driver queue and initializes the QSPI controller * * Return: 0 on success and error value on error */ static int __maybe_unused zynq_qspi_resume(struct device *dev) { struct platform_device *pdev = container_of(dev, struct platform_device, dev); struct spi_master *master = platform_get_drvdata(pdev); struct zynq_qspi *xqspi = spi_master_get_devdata(master); int ret = 0; ret = clk_enable(xqspi->pclk); if (ret) { dev_err(dev, "Cannot enable APB clock.\n"); return ret; } ret = clk_enable(xqspi->refclk); if (ret) { dev_err(dev, "Cannot enable device clock.\n"); clk_disable(xqspi->pclk); return ret; } spi_master_resume(master); return 0; }
static int s3c24xx_spi_resume(struct device *dev) { struct s3c24xx_spi *hw = dev_get_drvdata(dev); s3c24xx_spi_initialsetup(hw); return spi_master_resume(hw->master); }
static int rockchip_spi_resume(struct device *dev) { int ret = 0; struct spi_master *master = dev_get_drvdata(dev); struct rockchip_spi *rs = spi_master_get_devdata(master); if (!pm_runtime_suspended(dev)) { ret = clk_prepare_enable(rs->apb_pclk); if (ret < 0) return ret; ret = clk_prepare_enable(rs->spiclk); if (ret < 0) { clk_disable_unprepare(rs->apb_pclk); return ret; } } ret = spi_master_resume(rs->master); if (ret < 0) { clk_disable_unprepare(rs->spiclk); clk_disable_unprepare(rs->apb_pclk); } return ret; }
/** * cdns_spi_resume - Resume method for the SPI driver * @dev: Address of the platform_device structure * * This function changes the driver state to "ready" * * Return: 0 on success and error value on error */ static int __maybe_unused cdns_spi_resume(struct device *dev) { struct spi_master *master = dev_get_drvdata(dev); struct cdns_spi *xspi = spi_master_get_devdata(master); cdns_spi_init_hw(xspi); return spi_master_resume(master); }
static int dspi_resume(struct device *dev) { struct spi_master *master = dev_get_drvdata(dev); struct fsl_dspi *dspi = spi_master_get_devdata(master); clk_prepare_enable(dspi->clk); spi_master_resume(master); return 0; }
static int spi_st_resume(struct device *dev) { struct spi_master *master = dev_get_drvdata(dev); int ret; ret = spi_master_resume(master); if (ret) return ret; return pm_runtime_force_resume(dev); }
static int img_spfi_resume(struct device *dev) { struct spi_master *master = dev_get_drvdata(dev); struct img_spfi *spfi = spi_master_get_devdata(master); int ret; ret = pm_runtime_get_sync(dev); if (ret) return ret; spfi_reset(spfi); pm_runtime_put(dev); return spi_master_resume(master); }
static int __maybe_unused bcm_qspi_resume(struct device *dev) { struct bcm_qspi *qspi = dev_get_drvdata(dev); int ret = 0; bcm_qspi_hw_init(qspi); bcm_qspi_chip_select(qspi, qspi->curr_cs); if (qspi->soc_intc) /* enable MSPI interrupt */ qspi->soc_intc->bcm_qspi_int_set(qspi->soc_intc, MSPI_DONE, true); ret = clk_enable(qspi->clk); if (!ret) spi_master_resume(qspi->master); return ret; }
static int spi_qup_resume(struct device *device) { struct spi_master *master = dev_get_drvdata(device); struct spi_qup *controller = spi_master_get_devdata(master); int ret; ret = clk_prepare_enable(controller->iclk); if (ret) return ret; ret = clk_prepare_enable(controller->cclk); if (ret) return ret; ret = spi_qup_set_state(controller, QUP_STATE_RESET); if (ret) return ret; return spi_master_resume(master); }