diff options
author | patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> | 2013-03-29 22:22:28 +0000 |
---|---|---|
committer | patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> | 2013-03-29 22:22:28 +0000 |
commit | 499461a9c0a8a4c4840511f9467d13f756d4bc7f (patch) | |
tree | 79bd3acda374d92d2b1d06f704ff8ddc2a3689ba /nuttx/arch/arm/src/lpc17xx/lpc17_sdcard.c | |
parent | ada03ef1d1fef07264c7b187648f3655f75365f0 (diff) | |
download | px4-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.c | 12 |
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 |