Commit 3ffa1a5d authored by Gao Pan's avatar Gao Pan Committed by Mark Brown

spi: imx: use prepare_transfer_hardware() for lpspi

The old driver enable clk in fsl_lpspi_prepare_message() and
disable clk in fsl_lpspi_unprepare_message().

Rather than doing this per message it's a bit better to do it
in prepare_transfer_hardware(), that way if there's a sequence
of messages queued one after another we don't turn the clock on
and off all the time.
Signed-off-by: default avatarGao Pan <pandy.gao@nxp.com>
Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent a17efbc5
...@@ -148,16 +148,14 @@ static void fsl_lpspi_intctrl(struct fsl_lpspi_data *fsl_lpspi, ...@@ -148,16 +148,14 @@ static void fsl_lpspi_intctrl(struct fsl_lpspi_data *fsl_lpspi,
writel(enable, fsl_lpspi->base + IMX7ULP_IER); writel(enable, fsl_lpspi->base + IMX7ULP_IER);
} }
static int fsl_lpspi_prepare_message(struct spi_master *master, static int lpspi_prepare_xfer_hardware(struct spi_master *master)
struct spi_message *msg)
{ {
struct fsl_lpspi_data *fsl_lpspi = spi_master_get_devdata(master); struct fsl_lpspi_data *fsl_lpspi = spi_master_get_devdata(master);
return clk_prepare_enable(fsl_lpspi->clk); return clk_prepare_enable(fsl_lpspi->clk);
} }
static int static int lpspi_unprepare_xfer_hardware(struct spi_master *master)
fsl_lpspi_unprepare_message(struct spi_master *master, struct spi_message *msg)
{ {
struct fsl_lpspi_data *fsl_lpspi = spi_master_get_devdata(master); struct fsl_lpspi_data *fsl_lpspi = spi_master_get_devdata(master);
...@@ -438,8 +436,8 @@ static int fsl_lpspi_probe(struct platform_device *pdev) ...@@ -438,8 +436,8 @@ static int fsl_lpspi_probe(struct platform_device *pdev)
fsl_lpspi->dev = &pdev->dev; fsl_lpspi->dev = &pdev->dev;
master->transfer_one_message = fsl_lpspi_transfer_one_msg; master->transfer_one_message = fsl_lpspi_transfer_one_msg;
master->prepare_message = fsl_lpspi_prepare_message; master->prepare_transfer_hardware = lpspi_prepare_xfer_hardware;
master->unprepare_message = fsl_lpspi_unprepare_message; master->unprepare_transfer_hardware = lpspi_unprepare_xfer_hardware;
master->mode_bits = SPI_CPOL | SPI_CPHA | SPI_CS_HIGH; master->mode_bits = SPI_CPOL | SPI_CPHA | SPI_CS_HIGH;
master->flags = SPI_MASTER_MUST_RX | SPI_MASTER_MUST_TX; master->flags = SPI_MASTER_MUST_RX | SPI_MASTER_MUST_TX;
master->dev.of_node = pdev->dev.of_node; master->dev.of_node = pdev->dev.of_node;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment