Early debug of SAM3U MCI

git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2587 42af7a65-404d-4744-a932-0658087f49c3
This commit is contained in:
patacongo 2010-04-11 18:08:52 +00:00
parent 6695815e85
commit ea7865a89e
2 changed files with 22 additions and 7 deletions

View File

@ -890,6 +890,10 @@ static void sam3u_endtransfer(struct sam3u_dev_s *priv, sdio_eventset_t wkupeven
sam3u_dmastop(priv->dma); sam3u_dmastop(priv->dma);
/* Disable the DMA handshaking */
putreg32(0, SAM3U_HSMCI_DMA);
/* Is a thread wait for these data transfer complete events? */ /* Is a thread wait for these data transfer complete events? */
if ((priv->waitevents & wkupevent) != 0) if ((priv->waitevents & wkupevent) != 0)
@ -1114,10 +1118,6 @@ static void sam3u_reset(FAR struct sdio_dev_s *dev)
sam3u_notransfer(priv); sam3u_notransfer(priv);
/* Disable the MCI peripheral clock */
putreg32((1 << SAM3U_PID_HSMCI), SAM3U_PMC_PCDR);
/* Reset data */ /* Reset data */
priv->waitevents = 0; /* Set of events to be waited for */ priv->waitevents = 0; /* Set of events to be waited for */
@ -1508,6 +1508,11 @@ static int sam3u_cancel(FAR struct sdio_dev_s *dev)
*/ */
sam3u_dmastop(priv->dma); sam3u_dmastop(priv->dma);
/* Disable the DMA handshaking */
putreg32(0, SAM3U_HSMCI_DMA);
return OK; return OK;
} }
@ -2052,10 +2057,14 @@ static int sam3u_dmarecvsetup(FAR struct sdio_dev_s *dev, FAR uint8_t *buffer,
sam3u_enablexfrints(priv, HSMCI_DMARECV_INTS); sam3u_enablexfrints(priv, HSMCI_DMARECV_INTS);
sam3u_dmarxsetup(priv->dma, SAM3U_HSMCI_FIFO, (uint32_t)buffer, buflen); sam3u_dmarxsetup(priv->dma, SAM3U_HSMCI_FIFO, (uint32_t)buffer, buflen);
/* Enable DMA handshaking */
putreg32(HSMCI_DMA_DMAEN, SAM3U_HSMCI_DMA);
sam3u_sample(priv, SAMPLENDX_BEFORE_ENABLE);
/* Start the DMA */ /* Start the DMA */
sam3u_sample(priv, SAMPLENDX_BEFORE_ENABLE);
sam3u_dmastart(priv->dma, sam3u_dmacallback, priv); sam3u_dmastart(priv->dma, sam3u_dmacallback, priv);
sam3u_sample(priv, SAMPLENDX_AFTER_SETUP); sam3u_sample(priv, SAMPLENDX_AFTER_SETUP);
return OK; return OK;
@ -2096,6 +2105,10 @@ static int sam3u_dmasendsetup(FAR struct sdio_dev_s *dev,
/* Configure the TX DMA */ /* Configure the TX DMA */
sam3u_dmatxsetup(priv->dma, SAM3U_HSMCI_FIFO, (uint32_t)buffer, buflen); sam3u_dmatxsetup(priv->dma, SAM3U_HSMCI_FIFO, (uint32_t)buffer, buflen);
/* Enable DMA handshaking */
putreg32(HSMCI_DMA_DMAEN, SAM3U_HSMCI_DMA);
sam3u_sample(priv, SAMPLENDX_BEFORE_ENABLE); sam3u_sample(priv, SAMPLENDX_BEFORE_ENABLE);
/* Start the DMA */ /* Start the DMA */
@ -2214,6 +2227,8 @@ FAR struct sdio_dev_s *sdio_initialize(int slotno)
struct sam3u_dev_s *priv = &g_sdiodev; struct sam3u_dev_s *priv = &g_sdiodev;
fdbg("slotno: %d\n", slotno);
/* Initialize the HSMCI slot structure */ /* Initialize the HSMCI slot structure */
sem_init(&priv->waitsem, 0, 0); sem_init(&priv->waitsem, 0, 0);

View File

@ -1,7 +1,7 @@
/************************************************************************************************ /************************************************************************************************
* arch/arm/src/sam3u/sam3u_memorymap.h * arch/arm/src/sam3u/sam3u_memorymap.h
* *
* Copyright (C) 2009 Gregory Nutt. All rights reserved. * Copyright (C) 2009-2010 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <spudmonkey@racsa.co.cr> * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
* *
* Redistribution and use in source and binary forms, with or without * Redistribution and use in source and binary forms, with or without