RTEMS 5.2
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
mcdma_glue.h
1/*===============================================================*\
2| Project: RTEMS generic MFC548x BSP |
3+-----------------------------------------------------------------+
4| Copyright (c) 2004-2009 |
5| Embedded Brains GmbH |
6| Obere Lagerstr. 30 |
7| D-82178 Puchheim |
8| Germany |
9| rtems@embedded-brains.de |
10+-----------------------------------------------------------------+
11| The license and distribution terms for this file may be |
12| found in the file LICENSE in this distribution or at |
13| |
14| http://www.rtems.org/license/LICENSE. |
15| |
16+-----------------------------------------------------------------+
17| this file declares glue functions to the Freescale Mcdma API |
18\*===============================================================*/
19#ifndef _MCDMA_GLUE_H
20#define _MCDMA_GLUE_H
21
22#include <rtems.h>
23#include <rtems/irq.h>
24#include <mcf548x/mcf548x.h>
25
26#define MCDMA_CLR_PENDING(chan) (MCF548X_DMA_DIPR = (1 << (chan)))
27#define MCDMA_GET_PENDING(chan) (MCF548X_DMA_DIPR & (1 << (chan)))
28
29/*=========================================================================*\
30| Function: |
31\*-------------------------------------------------------------------------*/
32void mcdma_glue_irq_enable
33(
34/*-------------------------------------------------------------------------*\
35| Purpose: |
36| enable interrupt for given task number |
37+---------------------------------------------------------------------------+
38| Input Parameters: |
39\*-------------------------------------------------------------------------*/
40 int mcdma_taskno /* task number to enable */
41 );
42/*-------------------------------------------------------------------------*\
43| Return Value: |
44| none |
45\*=========================================================================*/
46
47/*=========================================================================*\
48| Function: |
49\*-------------------------------------------------------------------------*/
50void mcdma_glue_irq_disable
51(
52/*-------------------------------------------------------------------------*\
53| Purpose: |
54| disable interrupt for given task number |
55+---------------------------------------------------------------------------+
56| Input Parameters: |
57\*-------------------------------------------------------------------------*/
58 int mcdma_taskno /* task number to disable */
59 );
60/*-------------------------------------------------------------------------*\
61| Return Value: |
62| none |
63\*=========================================================================*/
64
65/*=========================================================================*\
66| Function: |
67\*-------------------------------------------------------------------------*/
68void mcdma_glue_irq_install
69(
70/*-------------------------------------------------------------------------*\
71| Purpose: |
72| install given function as mcdma interrupt handler |
73+---------------------------------------------------------------------------+
74| Input Parameters: |
75\*-------------------------------------------------------------------------*/
76 int mcdma_taskno, /* task number for handler */
77 void (*the_handler)(rtems_irq_hdl_param), /* function to call */
78 void *the_param
79 );
80/*-------------------------------------------------------------------------*\
81| Return Value: |
82| none |
83\*=========================================================================*/
84
85/*=========================================================================*\
86| Function: |
87\*-------------------------------------------------------------------------*/
88void mcdma_glue_init
89(
90/*-------------------------------------------------------------------------*\
91| Purpose: |
92| initialize the mcdma module (if not yet done): |
93| - load code |
94| - initialize registers |
95| - initialize bus arbiter |
96| - initialize interrupt control |
97+---------------------------------------------------------------------------+
98| Input Parameters: |
99\*-------------------------------------------------------------------------*/
100 void *sram_base /* base address for SRAM, to be used for DMA task */
101 );
102/*-------------------------------------------------------------------------*\
103| Return Value: |
104| none |
105\*=========================================================================*/
106
107#endif /* _MCDMA_GLUE_H */