1 /* -------------------------------- Arctic Core ------------------------------
\r
2 * Arctic Core - the open source AUTOSAR platform http://arccore.com
\r
4 * Copyright (C) 2009 ArcCore AB <contact@arccore.com>
\r
6 * This source code is free software; you can redistribute it and/or modify it
\r
7 * under the terms of the GNU General Public License version 2 as published by the
\r
8 * Free Software Foundation; See <http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt>.
\r
10 * This program is distributed in the hope that it will be useful, but
\r
11 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
\r
12 * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
\r
14 * -------------------------------- Arctic Core ------------------------------*/
\r
27 #include "Std_Types.h"
\r
28 #include "Dma_Cfg.h"
\r
29 #include "mpc55xx.h"
\r
33 DMA_CHANNEL_DISABLED,
\r
60 DMA_EMIOS200_FLAG_F0,
\r
61 DMA_EMIOS200_FLAG_F1,
\r
62 DMA_EMIOS200_FLAG_F2,
\r
63 DMA_EMIOS200_FLAG_F3,
\r
64 DMA_EMIOS200_FLAG_F4,
\r
65 DMA_EMIOS200_FLAG_F5,
\r
66 DMA_EMIOS200_FLAG_F6,
\r
67 DMA_EMIOS200_FLAG_F7,
\r
68 DMA_EMIOS200_FLAG_F8,
\r
69 DMA_EMIOS200_FLAG_F9,
\r
70 DMA_EMIOS200_FLAG_F10,
\r
71 DMA_EMIOS200_FLAG_F11,
\r
72 DMA_EMIOS200_FLAG_F12,
\r
73 DMA_EMIOS200_FLAG_F13,
\r
74 DMA_EMIOS200_FLAG_F14,
\r
75 DMA_EMIOS200_FLAG_F15,
\r
88 DMA_EQADC_FISR0_RFDF0,
\r
89 DMA_EQADC_FISR0_CFFF0,
\r
90 DMA_EQADC_FISR1_RFDF0,
\r
91 DMA_EQADC_FISR1_CFFF0,
\r
98 DMA_ALWAYS_ENABLED1,
\r
99 DMA_ALWAYS_ENABLED2,
\r
100 DMA_ALWAYS_ENABLED3,
\r
101 DMA_ALWAYS_ENABLED4,
\r
102 DMA_ALWAYS_ENABLED5,
\r
103 DMA_ALWAYS_ENABLED6,
\r
104 DMA_ALWAYS_ENABLED7,
\r
105 DMA_ALWAYS_ENABLED8
\r
110 vuint8_t DMA_CHANNEL_ENABLE;
\r
111 vuint8_t DMA_CHANNEL_TRIG_ENABLE;
\r
112 Dma_MuxChannels DMA_CHANNEL_SOURCE;
\r
113 } Dma_MuxConfigType;
\r
117 vuint8_t DMA_CHANNEL_PRIORITY;
\r
118 vuint8_t DMA_CHANNEL_PREEMTION_ENABLE;
\r
119 }Dma_ChannelConfigType;
\r
123 DMA_TRANSFER_SIZE_8BITS,
\r
124 DMA_TRANSFER_SIZE_16BITS,
\r
125 DMA_TRANSFER_SIZE_32BITS,
\r
126 DMA_TRANSFER_SIZE_64BITS,
\r
127 DMA_TRANSFER_SIZE_16BYTES_BURST,
\r
128 DMA_TRANSFER_SIZE_32BYTES_BURST
\r
129 }Dma_DataTranferSizeType;
\r
133 DMA_FIXED_PRIORITY_ARBITRATION,
\r
134 DMA_ROUND_ROBIN_ARBITRATION
\r
135 }Dma_ChannelArbitrationType;
\r
139 // 5567 has no Dma Mux, but maybe this should be left in anyway?
\r
140 #if defined(CFG_MPC5516) || defined(CFG_MPC5517)
\r
141 const Dma_MuxConfigType *dmaMuxConfigPtr;
\r
143 const Dma_ChannelConfigType *dmaChannelConfigPtr;
\r
144 const Dma_ChannelArbitrationType dmaChannelArbitration;
\r
147 extern const Dma_ConfigType DmaConfig [];
\r
150 void Dma_Init (const Dma_ConfigType *ConfigPtr);
\r
151 void Dma_ConfigureChannel (struct tcd_t *tcd, Dma_ChannelType channel);
\r
152 void Dma_ConfigureChannelTranferSize (uint32_t nbrOfIterations, Dma_ChannelType channel);
\r
153 void Dma_ConfigureChannelSourceCorr (uint32_t sourceCorrection, Dma_ChannelType channel);
\r
154 void Dma_ConfigureChannelDestinationCorr (uint32_t destinationCorrection, Dma_ChannelType channel);
\r
155 void Dma_ConfigureDestinationAddress (uint32_t destAddr, Dma_ChannelType channel);
\r
156 void Dma_ConfigureSourceAddress (uint32_t sourceAddr, Dma_ChannelType channel);
\r
157 void Dma_StartChannel (Dma_ChannelType channel);
\r
158 void Dma_StopChannel (Dma_ChannelType channel);
\r
159 Std_ReturnType Dma_ChannelDone (Dma_ChannelType channel);
\r
160 volatile struct tcd_t * Dma_GetTcd( Dma_ChannelType channel );
\r
161 boolean Dma_CheckConfig( void );
\r
163 #endif /* DMA_H_ */
\r