source: rtems/bsps/arm/lpc176x/include/bsp/dma.h @ c991eeec

5
Last change on this file since c991eeec was c991eeec, checked in by Sebastian Huber <sebastian.huber@…>, on 03/04/19 at 14:32:15

bsps: Adjust bsp.h Doxygen groups

Update #3706.

  • Property mode set to 100644
File size: 2.1 KB
Line 
1/**
2 * @file
3 *
4 * @ingroup RTEMSBSPsARMLPC176X_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_LPC176X_DMA_H
23#define LIBBSP_ARM_LPC176X_DMA_H
24
25#include <rtems.h>
26
27#ifdef __cplusplus
28extern "C" {
29#endif /* __cplusplus */
30
31/**
32 * @defgroup lpc176x_dma DMA Support
33 *
34 * @ingroup RTEMSBSPsARMLPC176X
35 *
36 * @brief Direct memory access (DMA) support.
37 *
38 * @{
39 */
40
41/**
42 * @brief Initializes the general purpose DMA.
43 */
44void lpc176x_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 lpc176x_dma_channel_obtain( unsigned channel );
54
55/**
56 * @brief Releases the DMA channel @a channel.
57 *
58 * You must have obtained this channel with lpc176x_dma_channel_obtain()
59 * previously.
60 *
61 * If the channel number @a channel is out of range nothing will happen.
62 */
63void lpc176x_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 lpc176x_dma_channel_disable(
74  unsigned channel,
75  bool     force
76);
77
78rtems_status_code lpc176x_dma_copy_initialize( void );
79
80rtems_status_code lpc176x_dma_copy_release( void );
81
82rtems_status_code lpc176x_dma_copy(
83  unsigned    channel,
84  const void *dest,
85  const void *src,
86  size_t      n,
87  size_t      width
88);
89
90rtems_status_code lpc176x_dma_copy_wait( unsigned channel );
91
92/** @} */
93
94#ifdef __cplusplus
95}
96#endif /* __cplusplus */
97
98#endif /* LIBBSP_ARM_LPC176X_DMA_H */
Note: See TracBrowser for help on using the repository browser.