Moved SoC specific config files in rm/src/configs
[keystone-rtos/edma3_lld.git] / packages / ti / sdo / edma3 / rm / src / configs / edma3_da830_cfg.c
1 /*
2  * edma3_da830_cfg.c
3  *
4  * EDMA3 Driver Adaptation Configuration File (Soc Specific) for DA830.
5  *
6  * Copyright (C) 2009 Texas Instruments Incorporated - http://www.ti.com/
7  *
8  *
9  *  Redistribution and use in source and binary forms, with or without
10  *  modification, are permitted provided that the following conditions
11  *  are met:
12  *
13  *    Redistributions of source code must retain the above copyright
14  *    notice, this list of conditions and the following disclaimer.
15  *
16  *    Redistributions in binary form must reproduce the above copyright
17  *    notice, this list of conditions and the following disclaimer in the
18  *    documentation and/or other materials provided with the
19  *    distribution.
20  *
21  *    Neither the name of Texas Instruments Incorporated nor the names of
22  *    its contributors may be used to endorse or promote products derived
23  *    from this software without specific prior written permission.
24  *
25  *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
26  *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
27  *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
28  *  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
29  *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
30  *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
31  *  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
32  *  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
33  *  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
34  *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
35  *  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
36  *
37 */
39 #include <ti/sdo/edma3/rm/edma3_rm.h>
41 /** Total number of DMA Channels supported by the EDMA3 Controller */
42 #define NUM_DMA_CHANNELS                        (32u)
43 /** Total number of QDMA Channels supported by the EDMA3 Controller */
44 #define NUM_QDMA_CHANNELS                       (8u)
45 /** Total number of TCCs supported by the EDMA3 Controller */
46 #define NUM_TCC                                 (32u)
47 /** Total number of PaRAM Sets supported by the EDMA3 Controller */
48 #define NUM_PARAM_SETS                          (128u)
49 /** Total number of Event Queues in the EDMA3 Controller */
50 #define NUM_EVENT_QUEUE                         (2u)
51 /** Total number of Transfer Controllers (TCs) in the EDMA3 Controller */
52 #define NUM_TC                                  (2u)
53 /** Number of Regions on this EDMA3 controller */
54 #define NUM_REGION                              (4u)
56 /**
57  * \brief Channel mapping existence
58  * A value of 0 (No channel mapping) implies that there is fixed association
59  * for a channel number to a parameter entry number or, in other words,
60  * PaRAM entry n corresponds to channel n.
61  */
62 #define CHANNEL_MAPPING_EXISTENCE               (0u)
63 /** Existence of memory protection feature */
64 #define MEM_PROTECTION_EXISTENCE                (0u)
66 /** Global Register Region of CC Registers */
67 #define CC_BASE_ADDRESS                         (0x01C00000u)
68 /** Transfer Controller 0 Registers */
69 #define TC0_BASE_ADDRESS                        (0x01C08000u)
70 /** Transfer Controller 1 Registers */
71 #define TC1_BASE_ADDRESS                        (0x01C08400u)
72 /** Transfer Controller 2 Registers */
73 #define TC2_BASE_ADDRESS                        NULL
74 /** Transfer Controller 3 Registers */
75 #define TC3_BASE_ADDRESS                        NULL
76 /** Transfer Controller 4 Registers */
77 #define TC4_BASE_ADDRESS                        NULL
78 /** Transfer Controller 5 Registers */
79 #define TC5_BASE_ADDRESS                        NULL
80 /** Transfer Controller 6 Registers */
81 #define TC6_BASE_ADDRESS                        NULL
82 /** Transfer Controller 7 Registers */
83 #define TC7_BASE_ADDRESS                        NULL
85 /** Interrupt no. for Transfer Completion */
86 #define XFER_COMPLETION_INT                     (8u)
87 /** Interrupt no. for CC Error */
88 #define CC_ERROR_INT                            (56u)
89 /** Interrupt no. for TC 0 Error */
90 #define TC0_ERROR_INT                           (57u)
91 /** Interrupt no. for TC 1 Error */
92 #define TC1_ERROR_INT                           (58u)
93 /** Interrupt no. for TC 2 Error */
94 #define TC2_ERROR_INT                           (0u)
95 /** Interrupt no. for TC 3 Error */
96 #define TC3_ERROR_INT                           (0u)
97 /** Interrupt no. for TC 4 Error */
98 #define TC4_ERROR_INT                           (0u)
99 /** Interrupt no. for TC 5 Error */
100 #define TC5_ERROR_INT                           (0u)
101 /** Interrupt no. for TC 6 Error */
102 #define TC6_ERROR_INT                           (0u)
103 /** Interrupt no. for TC 7 Error */
104 #define TC7_ERROR_INT                           (0u)
106 /**
107  * \brief Mapping of DMA channels 0-31 to Hardware Events from
108  * various peripherals, which use EDMA for data transfer.
109  * All channels need not be mapped, some can be free also.
110  * 1: Mapped
111  * 0: Not mapped
112  *
113  * This mapping will be used to allocate DMA channels when user passes
114  * EDMA3_RM_DMA_CHANNEL_ANY as dma channel id (for eg to do memory-to-memory
115  * copy). The same mapping is used to allocate the TCC when user passes
116  * EDMA3_RM_TCC_ANY as tcc id (for eg to do memory-to-memory copy).
117  *
118  * To allocate more DMA channels or TCCs, one has to modify the event mapping.
119  */
120                                                                                                 /* 31     0 */
121 #define DMA_CHANNEL_TO_EVENT_MAPPING_0          (0xCF3FFFFFu)
122 /**
123  * EDMA channels 22, 23, 28 & 29 which correspond to GPIO bank interrupts will
124  * be used for memory-to-memory data transfers, since there are no free dma
125  * channels.
126  */
129 /**
130  * \brief Mapping of DMA channels 32-63 to Hardware Events from
131  * various peripherals, which use EDMA for data transfer.
132  * All channels need not be mapped, some can be free also.
133  * 1: Mapped
134  * 0: Not mapped
135  *
136  * This mapping will be used to allocate DMA channels when user passes
137  * EDMA3_RM_DMA_CHANNEL_ANY as dma channel id (for eg to do memory-to-memory
138  * copy). The same mapping is used to allocate the TCC when user passes
139  * EDMA3_RM_TCC_ANY as tcc id (for eg to do memory-to-memory copy).
140  *
141  * To allocate more DMA channels or TCCs, one has to modify the event mapping.
142  */
143 /* DMA channels 32-63 DOES NOT exist in DA830. */
144 #define DMA_CHANNEL_TO_EVENT_MAPPING_1          (0x0u)
147 EDMA3_RM_GblConfigParams edma3GblCfgParams [EDMA3_MAX_EDMA3_INSTANCES] =
149     {
150     /** Total number of DMA Channels supported by the EDMA3 Controller */
151     NUM_DMA_CHANNELS,
152     /** Total number of QDMA Channels supported by the EDMA3 Controller */
153     NUM_QDMA_CHANNELS,
154     /** Total number of TCCs supported by the EDMA3 Controller */
155     NUM_TCC,
156     /** Total number of PaRAM Sets supported by the EDMA3 Controller */
157     NUM_PARAM_SETS,
158     /** Total number of Event Queues in the EDMA3 Controller */
159     NUM_EVENT_QUEUE,
160     /** Total number of Transfer Controllers (TCs) in the EDMA3 Controller */
161     NUM_TC,
162     /** Number of Regions on this EDMA3 controller */
163     NUM_REGION,
165     /**
166      * \brief Channel mapping existence
167      * A value of 0 (No channel mapping) implies that there is fixed association
168      * for a channel number to a parameter entry number or, in other words,
169      * PaRAM entry n corresponds to channel n.
170      */
171     CHANNEL_MAPPING_EXISTENCE,
173     /** Existence of memory protection feature */
174     MEM_PROTECTION_EXISTENCE,
176     /** Global Register Region of CC Registers */
177     (void *)(CC_BASE_ADDRESS),
178     /** Transfer Controller (TC) Registers */
179         {
180         (void *)(TC0_BASE_ADDRESS),
181         (void *)(TC1_BASE_ADDRESS),
182         (void *)(TC2_BASE_ADDRESS),
183         (void *)(TC3_BASE_ADDRESS),
184         (void *)(TC4_BASE_ADDRESS),
185         (void *)(TC5_BASE_ADDRESS),
186         (void *)(TC6_BASE_ADDRESS),
187         (void *)(TC7_BASE_ADDRESS)
188         },
189     /** Interrupt no. for Transfer Completion */
190     XFER_COMPLETION_INT,
191     /** Interrupt no. for CC Error */
192     CC_ERROR_INT,
193     /** Interrupt no. for TCs Error */
194         {
195         TC0_ERROR_INT,
196         TC1_ERROR_INT,
197         TC2_ERROR_INT,
198         TC3_ERROR_INT,
199         TC4_ERROR_INT,
200         TC5_ERROR_INT,
201         TC6_ERROR_INT,
202         TC7_ERROR_INT
203         },
205    /**
206      * \brief EDMA3 TC priority setting
207      *
208      * User can program the priority of the Event Queues
209      * at a system-wide level.  This means that the user can set the
210      * priority of an IO initiated by either of the TCs (Transfer Controllers)
211      * relative to IO initiated by the other bus masters on the
212      * device (ARM, DSP, USB, etc)
213      */
214         {
215         0u,
216         1u,
217         0u,
218         0u,
219         0u,
220         0u,
221         0u,
222         0u
223         },
224     /**
225      * \brief To Configure the Threshold level of number of events
226      * that can be queued up in the Event queues. EDMA3CC error register
227      * (CCERR) will indicate whether or not at any instant of time the
228      * number of events queued up in any of the event queues exceeds
229      * or equals the threshold/watermark value that is set
230      * in the queue watermark threshold register (QWMTHRA).
231      */
232         {
233         16u,
234         16u,
235         0u,
236         0u,
237         0u,
238         0u,
239         0u,
240         0u
241         },
243     /**
244      * \brief To Configure the Default Burst Size (DBS) of TCs.
245      * An optimally-sized command is defined by the transfer controller
246      * default burst size (DBS). Different TCs can have different
247      * DBS values. It is defined in Bytes.
248      */
249         {
250         16u,
251         16u,
252         0u,
253         0u,
254         0u,
255         0u,
256         0u,
257         0u
258         },
260     /**
261      * \brief Mapping from each DMA channel to a Parameter RAM set,
262      * if it exists, otherwise of no use.
263      */
264         {
265         0u, 1u, 2u, 3u, 4u, 5u, 6u, 7u,
266         8u, 9u, 10u, 11u, 12u, 13u, 14u, 15u,
267         16u, 17u, 18u, 19u, 20u, 21u, 22u, 23u,
268         24u, 25u, 26u, 27u, 28u, 29u, 30u, 31u,
269         /* DMA channels 32-63 DOES NOT exist in DA830. */
270         EDMA3_MAX_PARAM_SETS, EDMA3_MAX_PARAM_SETS,
271         EDMA3_MAX_PARAM_SETS, EDMA3_MAX_PARAM_SETS,
272         EDMA3_MAX_PARAM_SETS, EDMA3_MAX_PARAM_SETS,
273         EDMA3_MAX_PARAM_SETS, EDMA3_MAX_PARAM_SETS,
274         EDMA3_MAX_PARAM_SETS, EDMA3_MAX_PARAM_SETS,
275         EDMA3_MAX_PARAM_SETS, EDMA3_MAX_PARAM_SETS,
276         EDMA3_MAX_PARAM_SETS, EDMA3_MAX_PARAM_SETS,
277         EDMA3_MAX_PARAM_SETS, EDMA3_MAX_PARAM_SETS,
278         EDMA3_MAX_PARAM_SETS, EDMA3_MAX_PARAM_SETS,
279         EDMA3_MAX_PARAM_SETS, EDMA3_MAX_PARAM_SETS,
280         EDMA3_MAX_PARAM_SETS, EDMA3_MAX_PARAM_SETS,
281         EDMA3_MAX_PARAM_SETS, EDMA3_MAX_PARAM_SETS,
282         EDMA3_MAX_PARAM_SETS, EDMA3_MAX_PARAM_SETS,
283         EDMA3_MAX_PARAM_SETS, EDMA3_MAX_PARAM_SETS,
284         EDMA3_MAX_PARAM_SETS, EDMA3_MAX_PARAM_SETS,
285         EDMA3_MAX_PARAM_SETS, EDMA3_MAX_PARAM_SETS
286         },
288      /**
289       * \brief Mapping from each DMA channel to a TCC. This specific
290       * TCC code will be returned when the transfer is completed
291       * on the mapped channel.
292       */
293         {
294         0u, 1u, 2u, 3u,
295         4u, 5u, 6u, 7u,
296         8u, 9u, 10u, 11u,
297         12u, 13u, 14u, 15u,
298         16u, 17u, 18u, 19u,
299         20u, 21u, EDMA3_RM_CH_NO_TCC_MAP, EDMA3_RM_CH_NO_TCC_MAP,
300         24u, 25u, 26u, 27u,
301         EDMA3_RM_CH_NO_TCC_MAP, EDMA3_RM_CH_NO_TCC_MAP, 30, 31,
302         /* DMA channels 32-63 DOES NOT exist in DA830. */
303         EDMA3_MAX_TCC, EDMA3_MAX_TCC, EDMA3_MAX_TCC, EDMA3_MAX_TCC,
304         EDMA3_MAX_TCC, EDMA3_MAX_TCC, EDMA3_MAX_TCC, EDMA3_MAX_TCC,
305         EDMA3_MAX_TCC, EDMA3_MAX_TCC, EDMA3_MAX_TCC, EDMA3_MAX_TCC,
306         EDMA3_MAX_TCC, EDMA3_MAX_TCC, EDMA3_MAX_TCC, EDMA3_MAX_TCC,
307         EDMA3_MAX_TCC, EDMA3_MAX_TCC, EDMA3_MAX_TCC, EDMA3_MAX_TCC,
308         EDMA3_MAX_TCC, EDMA3_MAX_TCC, EDMA3_MAX_TCC, EDMA3_MAX_TCC,
309         EDMA3_MAX_TCC, EDMA3_MAX_TCC, EDMA3_MAX_TCC, EDMA3_MAX_TCC,
310         EDMA3_MAX_TCC, EDMA3_MAX_TCC, EDMA3_MAX_TCC, EDMA3_MAX_TCC
311         },
313     /**
314      * \brief Mapping of DMA channels to Hardware Events from
315      * various peripherals, which use EDMA for data transfer.
316      * All channels need not be mapped, some can be free also.
317      */
318         {
319         DMA_CHANNEL_TO_EVENT_MAPPING_0,
320         DMA_CHANNEL_TO_EVENT_MAPPING_1
321         }
322     }
323 };
326 /* Default RM Instance Initialization Configuration */
327 EDMA3_RM_InstanceInitConfig defInstInitConfig [EDMA3_MAX_EDMA3_INSTANCES][NUM_REGION] =
329         {
330           {
331             /* Resources owned by Region 0 */
332              /* ownPaRAMSets */
333             /* 31     0     63    32     95    64     127   96 */
334             {0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u,
335             /* 159  128     191  160     223  192     255  224 */
336              0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u,
337             /* 287  256     319  288     351  320     383  352 */
338              0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u,
339             /* 415  384     447  416     479  448     511  480 */
340              0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u,},
342             /* ownDmaChannels */
343             /* 31     0     63    32 */
344             {0x00000000u, 0x00000000u},
346             /* ownQdmaChannels */
347             /* 31     0 */
348             {0x00000000u},
350             /* ownTccs */
351             /* 31     0     63    32 */
352             {0x00000000u, 0x00000000u},
354             /* Resources reserved by Region 0 */
355             /* resvdPaRAMSets */
356             /* 31     0     63    32     95    64     127   96 */
357             {0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u,
358             /* 159  128     191  160     223  192     255  224 */
359              0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u,
360             /* 287  256     319  288     351  320     383  352 */
361              0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u,
362             /* 415  384     447  416     479  448     511  480 */
363              0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u,},
365             /* resvdDmaChannels */
366             /* 31     0     63    32 */
367             {0x00000000u, 0x00000000u},
369             /* resvdQdmaChannels */
370             /* 31     0 */
371             {0x00000000u},
373             /* resvdTccs */
374             /* 31     0     63    32 */
375             {0x00000000u, 0x00000000u},
376           },
378           {
379             /* Resources owned by Region 1 */
380             /* ownPaRAMSets */
381             /* 31     0     63    32     95    64     127   96 */
382             {0xFFFFFFFFu, 0xFFFFFFFFu, 0xFFFFFFFFu, 0xFFFFFFFFu,
383             /* 159  128     191  160     223  192     255  224 */
384              0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u,
385             /* 287  256     319  288     351  320     383  352 */
386              0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u,
387             /* 415  384     447  416     479  448     511  480 */
388              0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u,},
390             /* ownDmaChannels */
391             /* 31     0     63    32 */
392                 {0xFFFFFFFFu, 0x00000000u},
394             /* ownQdmaChannels */
395             /* 31     0 */
396             {0x000000FFu},
398             /* ownTccs */
399             /* 31     0     63    32 */
400             {0xFFFFFFFFu, 0x00000000u},
402             /* Resources reserved by Region 1 */
403             /* resvdPaRAMSets */
404             /* 31     0     63    32     95    64     127   96 */
405             {0xFFFFFFFFu, 0x00000000u, 0x00000000u, 0x00000000u,
406             /* 159  128     191  160     223  192     255  224 */
407              0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u,
408             /* 287  256     319  288     351  320     383  352 */
409              0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u,
410             /* 415  384     447  416     479  448     511  480 */
411              0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u,},
413             /* resvdDmaChannels */
414             /* 31                                         0  63                                                  32 */
415             {DMA_CHANNEL_TO_EVENT_MAPPING_0, DMA_CHANNEL_TO_EVENT_MAPPING_1},
417             /* resvdQdmaChannels */
418             /* 31     0 */
419             {0x00000000u},
421             /* resvdTccs */
422             /* 31                                         0  63                                                  32 */
423             {DMA_CHANNEL_TO_EVENT_MAPPING_0, DMA_CHANNEL_TO_EVENT_MAPPING_1},
424           },
426           {
427             /* Resources owned by Region 2 */
428              /* ownPaRAMSets */
429             /* 31     0     63    32     95    64     127   96 */
430             {0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u,
431             /* 159  128     191  160     223  192     255  224 */
432              0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u,
433             /* 287  256     319  288     351  320     383  352 */
434              0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u,
435             /* 415  384     447  416     479  448     511  480 */
436              0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u,},
438             /* ownDmaChannels */
439             /* 31     0     63    32 */
440             {0x00000000u, 0x00000000u},
442             /* ownQdmaChannels */
443             /* 31     0 */
444             {0x00000000u},
446             /* ownTccs */
447             /* 31     0     63    32 */
448             {0x00000000u, 0x00000000u},
450             /* Resources reserved by Region 2 */
451             /* resvdPaRAMSets */
452             /* 31     0     63    32     95    64     127   96 */
453             {0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u,
454             /* 159  128     191  160     223  192     255  224 */
455              0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u,
456             /* 287  256     319  288     351  320     383  352 */
457              0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u,
458             /* 415  384     447  416     479  448     511  480 */
459              0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u,},
461             /* resvdDmaChannels */
462             /* 31     0     63    32 */
463             {0x00000000u, 0x00000000u},
465             /* resvdQdmaChannels */
466             /* 31     0 */
467             {0x00000000u},
469             /* resvdTccs */
470             /* 31     0     63    32 */
471             {0x00000000u, 0x00000000u},
472           },
474           {
475             /* Resources owned by Region 3 */
476              /* ownPaRAMSets */
477             /* 31     0     63    32     95    64     127   96 */
478             {0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u,
479             /* 159  128     191  160     223  192     255  224 */
480              0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u,
481             /* 287  256     319  288     351  320     383  352 */
482              0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u,
483             /* 415  384     447  416     479  448     511  480 */
484              0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u,},
486             /* ownDmaChannels */
487             /* 31     0     63    32 */
488             {0x00000000u, 0x00000000u},
490             /* ownQdmaChannels */
491             /* 31     0 */
492             {0x00000000u},
494             /* ownTccs */
495             /* 31     0     63    32 */
496             {0x00000000u, 0x00000000u},
498             /* Resources reserved by Region 3 */
499             /* resvdPaRAMSets */
500             /* 31     0     63    32     95    64     127   96 */
501             {0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u,
502             /* 159  128     191  160     223  192     255  224 */
503              0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u,
504             /* 287  256     319  288     351  320     383  352 */
505              0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u,
506             /* 415  384     447  416     479  448     511  480 */
507              0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u,},
509             /* resvdDmaChannels */
510             /* 31     0     63    32 */
511             {0x00000000u, 0x00000000u},
513             /* resvdQdmaChannels */
514             /* 31     0 */
515             {0x00000000u},
517             /* resvdTccs */
518             /* 31     0     63    32 */
519             {0x00000000u, 0x00000000u},
520           }
521         }
522 };
524 /* End of File */