source: rtems/bsps/m68k/include/mcf548x/mcdma_glue.h @ 53826158

Last change on this file since 53826158 was 62f31d05, checked in by Joel Sherrill <joel@…>, on 07/08/22 at 13:54:31

bsps/m68k/include: Change license to BSD-2

Updates #3053.

  • Property mode set to 100644
File size: 6.5 KB
Line 
1/* SPDX-License-Identifier: BSD-2-Clause */
2
3/*
4 * RTEMS generic mcf548x BSP
5 *
6 * This file declares glue functions to the Freescale Mcdma API.
7 */
8
9/*
10 * Copyright (c) 2004, 2009 embedded brains GmbH. All rights reserved.
11 *
12 * Redistribution and use in source and binary forms, with or without
13 * modification, are permitted provided that the following conditions
14 * are met:
15 * 1. Redistributions of source code must retain the above copyright
16 *    notice, this list of conditions and the following disclaimer.
17 * 2. Redistributions in binary form must reproduce the above copyright
18 *    notice, this list of conditions and the following disclaimer in the
19 *    documentation and/or other materials provided with the distribution.
20 *
21 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
22 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
24 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
25 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
26 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
27 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
28 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
29 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
30 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
31 * POSSIBILITY OF SUCH DAMAGE.
32 */
33
34#ifndef _MCDMA_GLUE_H
35#define _MCDMA_GLUE_H
36
37#include <rtems.h>
38#include <rtems/irq.h>
39#include <mcf548x/mcf548x.h>
40
41#define MCDMA_CLR_PENDING(chan) (MCF548X_DMA_DIPR = (1 << (chan)))
42#define MCDMA_GET_PENDING(chan) (MCF548X_DMA_DIPR & (1 << (chan)))
43
44/*=========================================================================*\
45| Function:                                                                 |
46\*-------------------------------------------------------------------------*/
47void mcdma_glue_irq_enable
48(
49/*-------------------------------------------------------------------------*\
50| Purpose:                                                                  |
51|   enable interrupt for given task number                                  |
52+---------------------------------------------------------------------------+
53| Input Parameters:                                                         |
54\*-------------------------------------------------------------------------*/
55 int mcdma_taskno                           /* task number to enable    */
56 );
57/*-------------------------------------------------------------------------*\
58| Return Value:                                                             |
59|    none                                                                   |
60\*=========================================================================*/
61
62/*=========================================================================*\
63| Function:                                                                 |
64\*-------------------------------------------------------------------------*/
65void mcdma_glue_irq_disable
66(
67/*-------------------------------------------------------------------------*\
68| Purpose:                                                                  |
69|   disable interrupt for given task number                                 |
70+---------------------------------------------------------------------------+
71| Input Parameters:                                                         |
72\*-------------------------------------------------------------------------*/
73 int mcdma_taskno                           /* task number to disable   */
74 );
75/*-------------------------------------------------------------------------*\
76| Return Value:                                                             |
77|    none                                                                   |
78\*=========================================================================*/
79
80/*=========================================================================*\
81| Function:                                                                 |
82\*-------------------------------------------------------------------------*/
83void mcdma_glue_irq_install
84(
85/*-------------------------------------------------------------------------*\
86| Purpose:                                                                  |
87|   install given function as mcdma interrupt handler                    |
88+---------------------------------------------------------------------------+
89| Input Parameters:                                                         |
90\*-------------------------------------------------------------------------*/
91 int mcdma_taskno,                          /* task number for handler  */
92 void (*the_handler)(rtems_irq_hdl_param),     /* function to call         */
93 void *the_param
94 );
95/*-------------------------------------------------------------------------*\
96| Return Value:                                                             |
97|    none                                                                   |
98\*=========================================================================*/
99
100/*=========================================================================*\
101| Function:                                                                 |
102\*-------------------------------------------------------------------------*/
103void mcdma_glue_init
104(
105/*-------------------------------------------------------------------------*\
106| Purpose:                                                                  |
107|   initialize the mcdma module (if not yet done):                          |
108|   - load code                                                             |
109|   - initialize registers                                                  |
110|   - initialize bus arbiter                                                |
111|   - initialize interrupt control                                          |
112+---------------------------------------------------------------------------+
113| Input Parameters:                                                         |
114\*-------------------------------------------------------------------------*/
115 void *sram_base         /* base address for SRAM, to be used for DMA task */
116 );
117/*-------------------------------------------------------------------------*\
118| Return Value:                                                             |
119|    none                                                                   |
120\*=========================================================================*/
121
122#endif /* _MCDMA_GLUE_H */
Note: See TracBrowser for help on using the repository browser.