summaryrefslogtreecommitdiff
path: root/nuttx/arch/arm/src/lpc17xx/lpc17_sdcard.c
diff options
context:
space:
mode:
authorpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2013-03-29 22:22:28 +0000
committerpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2013-03-29 22:22:28 +0000
commit499461a9c0a8a4c4840511f9467d13f756d4bc7f (patch)
tree79bd3acda374d92d2b1d06f704ff8ddc2a3689ba /nuttx/arch/arm/src/lpc17xx/lpc17_sdcard.c
parentada03ef1d1fef07264c7b187648f3655f75365f0 (diff)
downloadpx4-nuttx-499461a9c0a8a4c4840511f9467d13f756d4bc7f.tar.gz
px4-nuttx-499461a9c0a8a4c4840511f9467d13f756d4bc7f.tar.bz2
px4-nuttx-499461a9c0a8a4c4840511f9467d13f756d4bc7f.zip
Start LPC17 DMA support for SDCARD driver
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5800 42af7a65-404d-4744-a932-0658087f49c3
Diffstat (limited to 'nuttx/arch/arm/src/lpc17xx/lpc17_sdcard.c')
-rw-r--r--nuttx/arch/arm/src/lpc17xx/lpc17_sdcard.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/nuttx/arch/arm/src/lpc17xx/lpc17_sdcard.c b/nuttx/arch/arm/src/lpc17xx/lpc17_sdcard.c
index 14ba07bf6..f449685de 100644
--- a/nuttx/arch/arm/src/lpc17xx/lpc17_sdcard.c
+++ b/nuttx/arch/arm/src/lpc17xx/lpc17_sdcard.c
@@ -2475,7 +2475,7 @@ static int lpc17_dmarecvsetup(FAR struct sdio_dev_s *dev, FAR uint8_t *buffer,
ret = lpc17_dmasetup(priv->dma, SDCARD_RXDMA32_CONTROL,
SDCARD_RXDMA32_CONFIG, LPC17_SDCARD_FIFO,
- (uint32_t)buffer, buflen);
+ (uint32_t)buffer, (buflen + 3) >> 2);
if (ret == OK)
{
/* Start the DMA */
@@ -2547,7 +2547,7 @@ static int lpc17_dmasendsetup(FAR struct sdio_dev_s *dev,
ret = lpc17_dmasetup(priv->dma, SDCARD_TXDMA32_CONTROL,
SDCARD_TXDMA32_CONFIG, (uint32_t)buffer,
- LPC17_SDCARD_FIFO, buflen);
+ LPC17_SDCARD_FIFO, (buflen + 3) >> 2);
if (ret == OK)
{
lpc17_sample(priv, SAMPLENDX_BEFORE_ENABLE);
@@ -2711,9 +2711,13 @@ FAR struct sdio_dev_s *sdio_initialize(int slotno)
priv->waitwdog = wd_create();
DEBUGASSERT(priv->waitwdog);
- /* Allocate a DMA channel */
-
#ifdef CONFIG_SDIO_DMA
+ /* Configure the SDCARD DMA request */
+
+ lpc17_dmaconfigure(DMA_REQ_SDCARD, DMA_DMASEL_SDCARD);
+
+ /* Allocate a DMA channel for SDCARD DMA */
+
priv->dma = lpc17_dmachannel();
DEBUGASSERT(priv->dma);
#endif