This is an automated email from the ASF dual-hosted git repository.

michallenc pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx.git


The following commit(s) were added to refs/heads/master by this push:
     new a1ac765a7b1 arch/arm64/src/imx9/imx9_usdhc.c: Fix imx9 usdhc DMA 
initialization
a1ac765a7b1 is described below

commit a1ac765a7b1612b9db31cc5416a21c21d0d2d545
Author: Jukka Laitinen <[email protected]>
AuthorDate: Mon Aug 3 14:40:55 2026 +0300

    arch/arm64/src/imx9/imx9_usdhc.c: Fix imx9 usdhc DMA initialization
    
    USDHC_PROCTL selects whether the usdhc uses SDMA or ADMA. This driver
    only uses the SDMA or no DMA at all, so select that option. There might be a
    wrong register value left by ROM code or an earlier bootloader which uses
    ADMA.
    
    Signed-off-by: Jukka Laitinen <[email protected]>
---
 arch/arm64/src/imx9/imx9_usdhc.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/arch/arm64/src/imx9/imx9_usdhc.c b/arch/arm64/src/imx9/imx9_usdhc.c
index 3e2eaaee7e3..67b59fa4276 100644
--- a/arch/arm64/src/imx9/imx9_usdhc.c
+++ b/arch/arm64/src/imx9/imx9_usdhc.c
@@ -1477,6 +1477,11 @@ static void imx9_reset(struct sdio_dev_s *dev)
 
   mcinfo("Reset complete\n");
 
+  /* Set PROCTL to select SDMA or no DMA. */
+
+  modifyreg32(priv->addr + IMX9_USDHC_PROCTL_OFFSET,
+              USDHC_PROCTL_DMAS_MASK, USDHC_PROCTL_DMAS_NODMA);
+
   /* Make sure that all clocking is disabled */
 
   imx9_clock(dev, CLOCK_SDIO_DISABLED);

Reply via email to