diff options
| -rw-r--r-- | drivers/spi/cadence_ospi_versal.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/spi/cadence_ospi_versal.c b/drivers/spi/cadence_ospi_versal.c index a00642d09d3..e6f4ba49e77 100644 --- a/drivers/spi/cadence_ospi_versal.c +++ b/drivers/spi/cadence_ospi_versal.c @@ -35,6 +35,10 @@ int cadence_qspi_apb_dma_read(struct cadence_spi_priv *priv, bytes_to_dma = n_rx - rx_rem; if (bytes_to_dma) { + if (priv->use_dac_mode) + clrbits_le32(priv->regbase + CQSPI_REG_CONFIG, + CQSPI_REG_CONFIG_DIRECT); + cadence_qspi_apb_enable_linear_mode(false); reg = readl(priv->regbase + CQSPI_REG_CONFIG); reg |= CQSPI_REG_CONFIG_ENBL_DMA; @@ -125,6 +129,9 @@ int cadence_qspi_apb_dma_read(struct cadence_spi_priv *priv, memcpy(rxbuf, rxbuf + 1, n_rx - 1); } + if (priv->use_dac_mode) + cadence_qspi_apb_dac_mode_enable(priv->regbase); + return 0; } |
