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
32 #if defined(CFG_MPC5606S)
\r
35 DMA_CHANNEL_DISABLED,
\r
54 DMA_EMIOS200_0_FLAG_F0,
\r
55 DMA_EMIOS200_0_FLAG_F1,
\r
56 DMA_EMIOS200_0_FLAG_F2,
\r
57 DMA_EMIOS200_0_FLAG_F3,
\r
58 DMA_EMIOS200_0_FLAG_F4,
\r
59 DMA_EMIOS200_0_FLAG_F5,
\r
60 DMA_EMIOS200_0_FLAG_F6,
\r
61 DMA_EMIOS200_0_FLAG_F7,
\r
62 DMA_EMIOS200_0_FLAG_F8,
\r
63 DMA_EMIOS200_0_FLAG_F9,
\r
64 DMA_EMIOS200_0_FLAG_F10,
\r
65 DMA_EMIOS200_0_FLAG_F11,
\r
66 DMA_EMIOS200_0_FLAG_F12,
\r
67 DMA_EMIOS200_0_FLAG_F13,
\r
68 DMA_EMIOS200_0_FLAG_F14,
\r
69 DMA_EMIOS200_0_FLAG_F15,
\r
70 DMA_EMIOS200_1_FLAG_F0,
\r
71 DMA_EMIOS200_1_FLAG_F1,
\r
72 DMA_EMIOS200_1_FLAG_F2,
\r
73 DMA_EMIOS200_1_FLAG_F3,
\r
74 DMA_EMIOS200_1_FLAG_F4,
\r
75 DMA_EMIOS200_1_FLAG_F5,
\r
76 DMA_EMIOS200_1_FLAG_F6,
\r
77 DMA_EMIOS200_1_FLAG_F7,
\r
102 DMA_ALWAYS_REQUESTORS1,
\r
103 DMA_ALWAYS_REQUESTORS2,
\r
104 DMA_ALWAYS_REQUESTORS3,
\r
105 DMA_ALWAYS_REQUESTORS4,
\r
106 DMA_ALWAYS_REQUESTORS5,
\r
107 DMA_ALWAYS_REQUESTORS6,
\r
108 DMA_ALWAYS_REQUESTORS7,
\r
109 DMA_ALWAYS_REQUESTORS8
\r
115 DMA_CHANNEL_DISABLED,
\r
133 DMA_DSPI_A_SR_TFFF,
\r
134 DMA_DSPI_A_SR_RFRD,
\r
135 DMA_DSPI_B_SR_TFFF,
\r
136 DMA_DSPI_B_SR_RFRD,
\r
137 DMA_DSPI_C_SR_TFFF,
\r
138 DMA_DSPI_C_SR_RFRD,
\r
139 DMA_DSPI_D_SR_TFFF,
\r
140 DMA_DSPI_D_SR_RFRD,
\r
142 DMA_EMIOS200_FLAG_F0,
\r
143 DMA_EMIOS200_FLAG_F1,
\r
144 DMA_EMIOS200_FLAG_F2,
\r
145 DMA_EMIOS200_FLAG_F3,
\r
146 DMA_EMIOS200_FLAG_F4,
\r
147 DMA_EMIOS200_FLAG_F5,
\r
148 DMA_EMIOS200_FLAG_F6,
\r
149 DMA_EMIOS200_FLAG_F7,
\r
150 DMA_EMIOS200_FLAG_F8,
\r
151 DMA_EMIOS200_FLAG_F9,
\r
152 DMA_EMIOS200_FLAG_F10,
\r
153 DMA_EMIOS200_FLAG_F11,
\r
154 DMA_EMIOS200_FLAG_F12,
\r
155 DMA_EMIOS200_FLAG_F13,
\r
156 DMA_EMIOS200_FLAG_F14,
\r
157 DMA_EMIOS200_FLAG_F15,
\r
170 DMA_EQADC_FISR0_RFDF0,
\r
171 DMA_EQADC_FISR0_CFFF0,
\r
172 DMA_EQADC_FISR1_RFDF0,
\r
173 DMA_EQADC_FISR1_CFFF0,
\r
180 DMA_ALWAYS_ENABLED1,
\r
181 DMA_ALWAYS_ENABLED2,
\r
182 DMA_ALWAYS_ENABLED3,
\r
183 DMA_ALWAYS_ENABLED4,
\r
184 DMA_ALWAYS_ENABLED5,
\r
185 DMA_ALWAYS_ENABLED6,
\r
186 DMA_ALWAYS_ENABLED7,
\r
187 DMA_ALWAYS_ENABLED8
\r
194 vuint8_t DMA_CHANNEL_ENABLE;
\r
195 vuint8_t DMA_CHANNEL_TRIG_ENABLE;
\r
196 Dma_MuxChannels DMA_CHANNEL_SOURCE;
\r
197 } Dma_MuxConfigType;
\r
201 vuint8_t DMA_CHANNEL_PRIORITY;
\r
202 vuint8_t DMA_CHANNEL_PREEMTION_ENABLE;
\r
203 }Dma_ChannelConfigType;
\r
207 DMA_TRANSFER_SIZE_8BITS,
\r
208 DMA_TRANSFER_SIZE_16BITS,
\r
209 DMA_TRANSFER_SIZE_32BITS,
\r
210 DMA_TRANSFER_SIZE_64BITS,
\r
211 DMA_TRANSFER_SIZE_16BYTES_BURST,
\r
212 DMA_TRANSFER_SIZE_32BYTES_BURST
\r
213 }Dma_DataTranferSizeType;
\r
217 DMA_FIXED_PRIORITY_ARBITRATION,
\r
218 DMA_ROUND_ROBIN_ARBITRATION
\r
219 }Dma_ChannelArbitrationType;
\r
223 // 5567 has no Dma Mux, but maybe this should be left in anyway?
\r
224 #if defined(CFG_MPC5516) || defined(CFG_MPC5517) || (CFG_MPC5606S)
\r
225 const Dma_MuxConfigType *dmaMuxConfigPtr;
\r
227 const Dma_ChannelConfigType *dmaChannelConfigPtr;
\r
228 const Dma_ChannelArbitrationType dmaChannelArbitration;
\r
231 extern const Dma_ConfigType DmaConfig [];
\r
234 void Dma_Init (const Dma_ConfigType *ConfigPtr);
\r
235 void Dma_ConfigureChannel (Dma_TcdType *tcd, Dma_ChannelType channel);
\r
236 void Dma_ConfigureChannelTranferSize (uint32_t nbrOfIterations, Dma_ChannelType channel);
\r
237 void Dma_ConfigureChannelSourceCorr (uint32_t sourceCorrection, Dma_ChannelType channel);
\r
238 void Dma_ConfigureChannelDestinationCorr (uint32_t destinationCorrection, Dma_ChannelType channel);
\r
239 void Dma_ConfigureDestinationAddress (uint32_t destAddr, Dma_ChannelType channel);
\r
240 void Dma_ConfigureSourceAddress (uint32_t sourceAddr, Dma_ChannelType channel);
\r
241 void Dma_StartChannel (Dma_ChannelType channel);
\r
242 void Dma_StopChannel (Dma_ChannelType channel);
\r
243 Std_ReturnType Dma_ChannelDone (Dma_ChannelType channel);
\r
244 volatile Dma_TcdType * Dma_GetTcd( Dma_ChannelType channel );
\r
245 boolean Dma_CheckConfig( void );
\r
247 #endif /* DMA_H_ */
\r