source: rtems/c/src/lib/libbsp/arm/lpc24xx/include/dma.h @ 991fdb33

4.115
Last change on this file since 991fdb33 was c499856, checked in by Chris Johns <chrisj@…>, on Mar 20, 2014 at 9:10:47 PM

Change all references of rtems.com to rtems.org.

  • Property mode set to 100644
File size: 2.0 KB
Line 
1/**
2 * @file
3 *
4 * @ingroup lpc24xx_dma
5 *
6 * @brief Direct memory access (DMA) support.
7 */
8
9/*
10 * Copyright (c) 2008, 2009
11 * embedded brains GmbH
12 * Obere Lagerstr. 30
13 * D-82178 Puchheim
14 * Germany
15 * <rtems@embedded-brains.de>
16 *
17 * The license and distribution terms for this file may be
18 * found in the file LICENSE in this distribution or at
19 * http://www.rtems.org/license/LICENSE.
20 */
21
22#ifndef LIBBSP_ARM_LPC24XX_DMA_H
23#define LIBBSP_ARM_LPC24XX_DMA_H
24
25#include <rtems.h>
26
27#ifdef __cplusplus
28extern "C" {
29#endif /* __cplusplus */
30
31/**
32 * @defgroup lpc24xx_dma DMA Support
33 *
34 * @ingroup lpc24xx
35 *
36 * @brief Direct memory access (DMA) support.
37 *
38 * @{
39 */
40
41/**
42 * @brief Initializes the general purpose DMA.
43 */
44void lpc24xx_dma_initialize(void);
45
46/**
47 * @brief Tries to obtain the DMA channel @a channel.
48 *
49 * @retval RTEMS_SUCCESSFUL Successful operation.
50 * @retval RTEMS_INVALID_ID Invalid channel number.
51 * @retval RTEMS_RESOURCE_IN_USE Channel already occupied.
52 */
53rtems_status_code lpc24xx_dma_channel_obtain(unsigned channel);
54
55/**
56 * @brief Releases the DMA channel @a channel.
57 *
58 * You must have obtained this channel with lpc24xx_dma_channel_obtain()
59 * previously.
60 *
61 * If the channel number @a channel is out of range nothing will happen.
62 */
63void lpc24xx_dma_channel_release(unsigned channel);
64
65/**
66 * @brief Disables the DMA channel @a channel.
67 *
68 * If @a force is @c false the channel will be halted and disabled when the
69 * channel is inactive otherwise it will be disabled immediately.
70 *
71 * If the channel number @a channel is out of range nothing will happen.
72 */
73void lpc24xx_dma_channel_disable(unsigned channel, bool force);
74
75rtems_status_code lpc24xx_dma_copy_initialize(void);
76
77rtems_status_code lpc24xx_dma_copy_release(void);
78
79rtems_status_code lpc24xx_dma_copy(
80  unsigned channel,
81  void *dest,
82  const void *src,
83  size_t n,
84  size_t width
85);
86
87rtems_status_code lpc24xx_dma_copy_wait(unsigned channel);
88
89/** @} */
90
91#ifdef __cplusplus
92}
93#endif /* __cplusplus */
94
95#endif /* LIBBSP_ARM_LPC24XX_DMA_H */
Note: See TracBrowser for help on using the repository browser.