summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/arm/lpc24xx/include/dma.h
diff options
context:
space:
mode:
authorThomas Doerfler <Thomas.Doerfler@embedded-brains.de>2009-09-18 08:05:40 +0000
committerThomas Doerfler <Thomas.Doerfler@embedded-brains.de>2009-09-18 08:05:40 +0000
commitba938b8d7d7d8dde2899e9428b752339d32190c2 (patch)
tree8a3ee64e121e1025dafd32ef72e8807f663d2778 /c/src/lib/libbsp/arm/lpc24xx/include/dma.h
parentpreinstall.am: Regenerate. (diff)
downloadrtems-ba938b8d7d7d8dde2899e9428b752339d32190c2.tar.bz2
Changes throughout.
Diffstat (limited to 'c/src/lib/libbsp/arm/lpc24xx/include/dma.h')
-rw-r--r--c/src/lib/libbsp/arm/lpc24xx/include/dma.h63
1 files changed, 58 insertions, 5 deletions
diff --git a/c/src/lib/libbsp/arm/lpc24xx/include/dma.h b/c/src/lib/libbsp/arm/lpc24xx/include/dma.h
index 0871372a2c..2f49b1d249 100644
--- a/c/src/lib/libbsp/arm/lpc24xx/include/dma.h
+++ b/c/src/lib/libbsp/arm/lpc24xx/include/dma.h
@@ -1,9 +1,9 @@
/**
* @file
*
- * @ingroup lpc24xx
+ * @ingroup lpc24xx_dma
*
- * @brief DMA support.
+ * @brief Direct memory access (DMA) support.
*/
/*
@@ -12,10 +12,11 @@
* Obere Lagerstr. 30
* D-82178 Puchheim
* Germany
- * rtems@embedded-brains.de
+ * <rtems@embedded-brains.de>
*
- * The license and distribution terms for this file may be found in the file
- * LICENSE in this distribution or at http://www.rtems.com/license/LICENSE.
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
*/
#ifndef LIBBSP_ARM_LPC24XX_DMA_H
@@ -27,14 +28,66 @@
extern "C" {
#endif /* __cplusplus */
+/**
+ * @defgroup lpc24xx_dma DMA Support
+ *
+ * @ingroup lpc24xx
+ *
+ * @brief Direct memory access (DMA) support.
+ *
+ * @{
+ */
+
+/**
+ * @brief Initializes the general purpose DMA.
+ */
void lpc24xx_dma_initialize(void);
+/**
+ * @brief Tries to obtain the DMA channel @a channel.
+ *
+ * @retval RTEMS_SUCCESSFUL Successful operation.
+ * @retval RTEMS_INVALID_ID Invalid channel number.
+ * @retval RTEMS_RESOURCE_IN_USE Channel already occupied.
+ */
rtems_status_code lpc24xx_dma_channel_obtain(unsigned channel);
+/**
+ * @brief Releases the DMA channel @a channel.
+ *
+ * You must have obtained this channel with lpc24xx_dma_channel_obtain()
+ * previously.
+ *
+ * If the channel number @a channel is out of range nothing will happen.
+ */
void lpc24xx_dma_channel_release(unsigned channel);
+/**
+ * @brief Disables the DMA channel @a channel.
+ *
+ * If @a force is @c false the channel will be halted and disabled when the
+ * channel is inactive otherwise it will be disabled immediately.
+ *
+ * If the channel number @a channel is out of range nothing will happen.
+ */
void lpc24xx_dma_channel_disable(unsigned channel, bool force);
+rtems_status_code lpc24xx_dma_copy_initialize(void);
+
+rtems_status_code lpc24xx_dma_copy_release(void);
+
+rtems_status_code lpc24xx_dma_copy(
+ unsigned channel,
+ void *dest,
+ const void *src,
+ size_t n,
+ size_t width
+);
+
+rtems_status_code lpc24xx_dma_copy_wait(unsigned channel);
+
+/** @} */
+
#ifdef __cplusplus
}
#endif /* __cplusplus */