aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVenkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>2023-10-11 08:45:15 +0530
committerMichal Simek <michal.simek@amd.com>2023-11-07 13:47:08 +0100
commit20d1836eeab7a2335892b970575bfb1e9bcac567 (patch)
tree6e05afa976cecfe7959904a4902a598ac3d36420
parentba9bdfd959f217a96772b83468c065b48f2581f0 (diff)
downloadu-boot-20d1836eeab7a2335892b970575bfb1e9bcac567.zip
u-boot-20d1836eeab7a2335892b970575bfb1e9bcac567.tar.gz
u-boot-20d1836eeab7a2335892b970575bfb1e9bcac567.tar.bz2
spi: cadence_ospi_versal: Add support for 64-bit address
When 64-bit address is passed only lower 32-bit address is getting updated. Program the upper 32-bit address in the DMA destination memory address MSBs register. Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com> Link: https://lore.kernel.org/r/20231011031515.4151-1-venkatesh.abbarapu@amd.com Signed-off-by: Michal Simek <michal.simek@amd.com>
-rw-r--r--drivers/spi/cadence_ospi_versal.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/spi/cadence_ospi_versal.c b/drivers/spi/cadence_ospi_versal.c
index a7685a2..e02a3b3 100644
--- a/drivers/spi/cadence_ospi_versal.c
+++ b/drivers/spi/cadence_ospi_versal.c
@@ -44,8 +44,10 @@ int cadence_qspi_apb_dma_read(struct cadence_spi_priv *priv,
priv->regbase + CQSPI_REG_INDIR_TRIG_ADDR_RANGE);
writel(CQSPI_DFLT_DMA_PERIPH_CFG,
priv->regbase + CQSPI_REG_DMA_PERIPH_CFG);
- writel((unsigned long)rxbuf, priv->regbase +
+ writel(lower_32_bits((unsigned long)rxbuf), priv->regbase +
CQSPI_DMA_DST_ADDR_REG);
+ writel(upper_32_bits((unsigned long)rxbuf), priv->regbase +
+ CQSPI_DMA_DST_ADDR_MSB_REG);
writel(priv->trigger_address, priv->regbase +
CQSPI_DMA_SRC_RD_ADDR_REG);
writel(bytes_to_dma, priv->regbase +