iLLD_TC27xD  1.0
IfxScuCcu.h
Go to the documentation of this file.
1 /**
2  * \file IfxScuCcu.h
3  * \brief SCU basic functionality
4  * \ingroup IfxLld_Scu
5  *
6  * \version iLLD_1_0_0_11_0
7  * \copyright Copyright (c) 2013 Infineon Technologies AG. All rights reserved.
8  *
9  *
10  * IMPORTANT NOTICE
11  *
12  *
13  * Infineon Technologies AG (Infineon) is supplying this file for use
14  * exclusively with Infineon's microcontroller products. This file can be freely
15  * distributed within development tools that are supporting such microcontroller
16  * products.
17  *
18  * THIS SOFTWARE IS PROVIDED "AS IS". NO WARRANTIES, WHETHER EXPRESS, IMPLIED
19  * OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF
20  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE.
21  * INFINEON SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL,
22  * OR CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.
23  *
24  *
25  * \defgroup IfxLld_Scu SCU
26  * \addtogroup IfxLld_Scu
27  * \{
28  * \defgroup IfxLld_ScuCcu How to use the Scu Clock driver?
29  * \addtogroup IfxLld_ScuCcu
30  * \{
31  *
32  * The Scu Clock control unit driver provides a default configuration for pll and Clock initialisation and set of peripheral clock configuration functions.
33  *
34  * In the following sections it will be described, how to integrate the driver into the application framework.
35  *
36  * \section IfxLld_ScuCcu_Std_Preparation Preparation
37  * \subsection IfxLld_ScuCcu_Std_Include Include Files
38  *
39  * Include following header file into your C code:
40  * \code
41  * #include <Scu/Std/IfxScuCcu.h>
42  * \endcode
43  *
44  * \subsection IfxLld_ScuCcu_Std_Variables Variables
45  *
46  * Declare the Clock Configuration variables in your C code:
47  *
48  * \code
49  * // used globally
50  *
51  * // configuration for the PLL steps
52  * static IfxScuCcu_PllStepsConfig IfxScuCcu_testPllConfigSteps[] = {
53  * IFXSCU_CFG_PLL_STEPS
54  * };
55  *
56  *
57  * // Default configuration for the Clock Configuration
58  * IfxScuCcu_Config IfxScuCcu_testClockConfig = {
59  * {
60  * sizeof(IfxScuCcu_testPllConfigSteps) / sizeof(IfxScuCcu_PllStepsConfig),
61  * (IfxScuCcu_PllStepsConfig *)IfxScuCcu_testPllConfigSteps,
62  * IFXSCU_CFG_PLL_INITIAL_STEP,
63  * },
64  * IFXSCU_CFG_CLK_DISTRIBUTION,
65  * IFXSCU_CFG_FLASH_WAITSTATE,
66  * IFX_CFG_SCU_XTAL_FREQUENCY
67  * };
68  *
69  *
70  * \endcode
71  *
72  * \subsection IfxLld_ScuCcu_Std_Init Module Initialisation
73  *
74  * The module initialisation can be done in the same function. Here an example:
75  * \code
76  *
77  * // standard PLL & clock initialisation
78  * IfxScuCcu_init(&IfxScuCcu_testClockConfig);
79  *
80  * \endcode
81  *
82  * The PLL and clocks are now initialised based on the IFXSCU_CFG_XTAL_FREQ and IFXSCU_CFG_PLL_FREQ values configured in Ifx_Cfg.h.
83  *
84  * \}
85  * \}
86  *
87  * \defgroup IfxLld_Scu_Std_Ccu Ccu Basic Functionality
88  * \ingroup IfxLld_Scu_Std
89  * \defgroup IfxLld_Scu_Std_Ccu_Ccu Clock Control Functions
90  * \ingroup IfxLld_Scu_Std_Ccu
91  * \defgroup IfxLld_Scu_Std_Ccu_Ccu_Operative Clock Control Operative Functions
92  * \ingroup IfxLld_Scu_Std_Ccu
93  * \defgroup IfxLld_Scu_Std_Ccu_Ccu_Configuration Clock Control Configuration Functions
94  * \ingroup IfxLld_Scu_Std_Ccu
95  * \defgroup IfxLld_Scu_Std_Ccu_Enum Enumerations
96  * \ingroup IfxLld_Scu_Std_Ccu
97  */
98 
99 #ifndef IFXSCUCCU_H
100 #define IFXSCUCCU_H 1
101 
102 /******************************************************************************/
103 /*----------------------------------Includes----------------------------------*/
104 /******************************************************************************/
105 
106 #include "_Impl/IfxScu_cfg.h"
107 #include "Scu/Std/IfxScuWdt.h"
108 #include "Cpu/Std/IfxCpu.h"
109 #include "IfxStm_reg.h"
110 #include "IfxScu_reg.h"
111 #include "IfxFlash_reg.h"
112 #include "_PinMap/IfxScu_PinMap.h"
113 
114 /******************************************************************************/
115 /*-----------------------------------Macros-----------------------------------*/
116 /******************************************************************************/
117 
118 /** \brief Oscillator stability check timeout count
119  */
120 #define IFXSCUCCU_OSC_STABLECHK_TIME (640)
121 
122 /******************************************************************************/
123 /*------------------------------Type Definitions------------------------------*/
124 /******************************************************************************/
125 
126 /** \brief Function pointer type for the hooks
127  * \return None
128  */
129 typedef void (*IfxScuCcu_PllStepsFunctionHook)(void);
130 
131 /******************************************************************************/
132 /*--------------------------------Enumerations--------------------------------*/
133 /******************************************************************************/
134 
135 /** \addtogroup IfxLld_Scu_Std_Ccu_Ccu
136  * \{ */
137 /** \} */
138 
139 /** \addtogroup IfxLld_Scu_Std_Ccu_Enum
140  * \{ */
141 /** \brief MODULE_SCU.PLLCON1.B.K1DIV, specifies the K1-Divider
142  */
143 typedef enum
144 {
145  IfxScuCcu_K1divider_1 = 0, /**< \brief K1-Divider 1 */
146  IfxScuCcu_K1divider_2, /**< \brief K1-Divider 2 */
147  IfxScuCcu_K1divider_3, /**< \brief K1-Divider 3 */
148  IfxScuCcu_K1divider_4, /**< \brief K1-Divider 4 */
149  IfxScuCcu_K1divider_5, /**< \brief K1-Divider 5 */
150  IfxScuCcu_K1divider_6, /**< \brief K1-Divider 6 */
151  IfxScuCcu_K1divider_7, /**< \brief K1-Divider 7 */
152  IfxScuCcu_K1divider_8, /**< \brief K1-Divider 8 */
153  IfxScuCcu_K1divider_9, /**< \brief K1-Divider 9 */
154  IfxScuCcu_K1divider_10, /**< \brief K1-Divider 10 */
155  IfxScuCcu_K1divider_11, /**< \brief K1-Divider 11 */
156  IfxScuCcu_K1divider_12, /**< \brief K1-Divider 12 */
157  IfxScuCcu_K1divider_13, /**< \brief K1-Divider 13 */
158  IfxScuCcu_K1divider_14, /**< \brief K1-Divider 14 */
159  IfxScuCcu_K1divider_15, /**< \brief K1-Divider 15 */
160  IfxScuCcu_K1divider_16, /**< \brief K1-Divider 16 */
161  IfxScuCcu_K1divider_17, /**< \brief K1-Divider 17 */
162  IfxScuCcu_K1divider_18, /**< \brief K1-Divider 18 */
163  IfxScuCcu_K1divider_19, /**< \brief K1-Divider 19 */
164  IfxScuCcu_K1divider_20, /**< \brief K1-Divider 20 */
165  IfxScuCcu_K1divider_21, /**< \brief K1-Divider 21 */
166  IfxScuCcu_K1divider_22, /**< \brief K1-Divider 22 */
167  IfxScuCcu_K1divider_23, /**< \brief K1-Divider 23 */
168  IfxScuCcu_K1divider_24, /**< \brief K1-Divider 24 */
169  IfxScuCcu_K1divider_25, /**< \brief K1-Divider 25 */
170  IfxScuCcu_K1divider_26, /**< \brief K1-Divider 26 */
171  IfxScuCcu_K1divider_27, /**< \brief K1-Divider 27 */
172  IfxScuCcu_K1divider_28, /**< \brief K1-Divider 28 */
173  IfxScuCcu_K1divider_29, /**< \brief K1-Divider 29 */
174  IfxScuCcu_K1divider_30, /**< \brief K1-Divider 30 */
175  IfxScuCcu_K1divider_31, /**< \brief K1-Divider 31 */
176  IfxScuCcu_K1divider_32, /**< \brief K1-Divider 32 */
177  IfxScuCcu_K1divider_33, /**< \brief K1-Divider 33 */
178  IfxScuCcu_K1divider_34, /**< \brief K1-Divider 34 */
179  IfxScuCcu_K1divider_35, /**< \brief K1-Divider 35 */
180  IfxScuCcu_K1divider_36, /**< \brief K1-Divider 36 */
181  IfxScuCcu_K1divider_37, /**< \brief K1-Divider 37 */
182  IfxScuCcu_K1divider_38, /**< \brief K1-Divider 38 */
183  IfxScuCcu_K1divider_39, /**< \brief K1-Divider 39 */
184  IfxScuCcu_K1divider_40, /**< \brief K1-Divider 40 */
185  IfxScuCcu_K1divider_41, /**< \brief K1-Divider 41 */
186  IfxScuCcu_K1divider_42, /**< \brief K1-Divider 42 */
187  IfxScuCcu_K1divider_43, /**< \brief K1-Divider 43 */
188  IfxScuCcu_K1divider_44, /**< \brief K1-Divider 44 */
189  IfxScuCcu_K1divider_45, /**< \brief K1-Divider 45 */
190  IfxScuCcu_K1divider_46, /**< \brief K1-Divider 46 */
191  IfxScuCcu_K1divider_47, /**< \brief K1-Divider 47 */
192  IfxScuCcu_K1divider_48, /**< \brief K1-Divider 48 */
193  IfxScuCcu_K1divider_49, /**< \brief K1-Divider 49 */
194  IfxScuCcu_K1divider_50, /**< \brief K1-Divider 50 */
195  IfxScuCcu_K1divider_51, /**< \brief K1-Divider 51 */
196  IfxScuCcu_K1divider_52, /**< \brief K1-Divider 52 */
197  IfxScuCcu_K1divider_53, /**< \brief K1-Divider 53 */
198  IfxScuCcu_K1divider_54, /**< \brief K1-Divider 54 */
199  IfxScuCcu_K1divider_55, /**< \brief K1-Divider 55 */
200  IfxScuCcu_K1divider_56, /**< \brief K1-Divider 56 */
201  IfxScuCcu_K1divider_57, /**< \brief K1-Divider 57 */
202  IfxScuCcu_K1divider_58, /**< \brief K1-Divider 58 */
203  IfxScuCcu_K1divider_59, /**< \brief K1-Divider 59 */
204  IfxScuCcu_K1divider_60, /**< \brief K1-Divider 60 */
205  IfxScuCcu_K1divider_61, /**< \brief K1-Divider 61 */
206  IfxScuCcu_K1divider_62, /**< \brief K1-Divider 62 */
207  IfxScuCcu_K1divider_63, /**< \brief K1-Divider 63 */
208  IfxScuCcu_K1divider_64, /**< \brief K1-Divider 64 */
209  IfxScuCcu_K1divider_65, /**< \brief K1-Divider 65 */
210  IfxScuCcu_K1divider_66, /**< \brief K1-Divider 66 */
211  IfxScuCcu_K1divider_67, /**< \brief K1-Divider 67 */
212  IfxScuCcu_K1divider_68, /**< \brief K1-Divider 68 */
213  IfxScuCcu_K1divider_69, /**< \brief K1-Divider 69 */
214  IfxScuCcu_K1divider_70, /**< \brief K1-Divider 70 */
215  IfxScuCcu_K1divider_71, /**< \brief K1-Divider 71 */
216  IfxScuCcu_K1divider_72, /**< \brief K1-Divider 72 */
217  IfxScuCcu_K1divider_73, /**< \brief K1-Divider 73 */
218  IfxScuCcu_K1divider_74, /**< \brief K1-Divider 74 */
219  IfxScuCcu_K1divider_75, /**< \brief K1-Divider 75 */
220  IfxScuCcu_K1divider_76, /**< \brief K1-Divider 76 */
221  IfxScuCcu_K1divider_77, /**< \brief K1-Divider 77 */
222  IfxScuCcu_K1divider_78, /**< \brief K1-Divider 78 */
223  IfxScuCcu_K1divider_79, /**< \brief K1-Divider 79 */
224  IfxScuCcu_K1divider_80, /**< \brief K1-Divider 80 */
225  IfxScuCcu_K1divider_81, /**< \brief K1-Divider 81 */
226  IfxScuCcu_K1divider_82, /**< \brief K1-Divider 82 */
227  IfxScuCcu_K1divider_83, /**< \brief K1-Divider 83 */
228  IfxScuCcu_K1divider_84, /**< \brief K1-Divider 84 */
229  IfxScuCcu_K1divider_85, /**< \brief K1-Divider 85 */
230  IfxScuCcu_K1divider_86, /**< \brief K1-Divider 86 */
231  IfxScuCcu_K1divider_87, /**< \brief K1-Divider 87 */
232  IfxScuCcu_K1divider_88, /**< \brief K1-Divider 88 */
233  IfxScuCcu_K1divider_89, /**< \brief K1-Divider 89 */
234  IfxScuCcu_K1divider_90, /**< \brief K1-Divider 90 */
235  IfxScuCcu_K1divider_91, /**< \brief K1-Divider 91 */
236  IfxScuCcu_K1divider_92, /**< \brief K1-Divider 92 */
237  IfxScuCcu_K1divider_93, /**< \brief K1-Divider 93 */
238  IfxScuCcu_K1divider_94, /**< \brief K1-Divider 94 */
239  IfxScuCcu_K1divider_95, /**< \brief K1-Divider 95 */
240  IfxScuCcu_K1divider_96, /**< \brief K1-Divider 96 */
241  IfxScuCcu_K1divider_97, /**< \brief K1-Divider 97 */
242  IfxScuCcu_K1divider_98, /**< \brief K1-Divider 98 */
243  IfxScuCcu_K1divider_99, /**< \brief K1-Divider 99 */
244  IfxScuCcu_K1divider_100, /**< \brief K1-Divider 100 */
245  IfxScuCcu_K1divider_101, /**< \brief K1-Divider 101 */
246  IfxScuCcu_K1divider_102, /**< \brief K1-Divider 102 */
247  IfxScuCcu_K1divider_103, /**< \brief K1-Divider 103 */
248  IfxScuCcu_K1divider_104, /**< \brief K1-Divider 104 */
249  IfxScuCcu_K1divider_105, /**< \brief K1-Divider 105 */
250  IfxScuCcu_K1divider_106, /**< \brief K1-Divider 106 */
251  IfxScuCcu_K1divider_107, /**< \brief K1-Divider 107 */
252  IfxScuCcu_K1divider_108, /**< \brief K1-Divider 108 */
253  IfxScuCcu_K1divider_109, /**< \brief K1-Divider 109 */
254  IfxScuCcu_K1divider_110, /**< \brief K1-Divider 110 */
255  IfxScuCcu_K1divider_111, /**< \brief K1-Divider 111 */
256  IfxScuCcu_K1divider_112, /**< \brief K1-Divider 112 */
257  IfxScuCcu_K1divider_113, /**< \brief K1-Divider 113 */
258  IfxScuCcu_K1divider_114, /**< \brief K1-Divider 114 */
259  IfxScuCcu_K1divider_115, /**< \brief K1-Divider 115 */
260  IfxScuCcu_K1divider_116, /**< \brief K1-Divider 116 */
261  IfxScuCcu_K1divider_117, /**< \brief K1-Divider 117 */
262  IfxScuCcu_K1divider_118, /**< \brief K1-Divider 118 */
263  IfxScuCcu_K1divider_119, /**< \brief K1-Divider 119 */
264  IfxScuCcu_K1divider_120, /**< \brief K1-Divider 120 */
265  IfxScuCcu_K1divider_121, /**< \brief K1-Divider 121 */
266  IfxScuCcu_K1divider_122, /**< \brief K1-Divider 122 */
267  IfxScuCcu_K1divider_123, /**< \brief K1-Divider 123 */
268  IfxScuCcu_K1divider_124, /**< \brief K1-Divider 124 */
269  IfxScuCcu_K1divider_125, /**< \brief K1-Divider 125 */
270  IfxScuCcu_K1divider_126, /**< \brief K1-Divider 126 */
271  IfxScuCcu_K1divider_127, /**< \brief K1-Divider 127 */
272  IfxScuCcu_K1divider_128 /**< \brief K1-Divider 128 */
274 
275 /** \brief MODULE_SCU.PLLCON1.B.K2DIV, specifies the K2-Divider
276  */
277 typedef enum
278 {
279  IfxScuCcu_K2divider_1 = 0, /**< \brief K2-Divider 1 */
280  IfxScuCcu_K2divider_2, /**< \brief K2-Divider 2 */
281  IfxScuCcu_K2divider_3, /**< \brief K2-Divider 3 */
282  IfxScuCcu_K2divider_4, /**< \brief K2-Divider 4 */
283  IfxScuCcu_K2divider_5, /**< \brief K2-Divider 5 */
284  IfxScuCcu_K2divider_6, /**< \brief K2-Divider 6 */
285  IfxScuCcu_K2divider_7, /**< \brief K2-Divider 7 */
286  IfxScuCcu_K2divider_8, /**< \brief K2-Divider 8 */
287  IfxScuCcu_K2divider_9, /**< \brief K2-Divider 9 */
288  IfxScuCcu_K2divider_10, /**< \brief K2-Divider 10 */
289  IfxScuCcu_K2divider_11, /**< \brief K2-Divider 11 */
290  IfxScuCcu_K2divider_12, /**< \brief K2-Divider 12 */
291  IfxScuCcu_K2divider_13, /**< \brief K2-Divider 13 */
292  IfxScuCcu_K2divider_14, /**< \brief K2-Divider 14 */
293  IfxScuCcu_K2divider_15, /**< \brief K2-Divider 15 */
294  IfxScuCcu_K2divider_16, /**< \brief K2-Divider 16 */
295  IfxScuCcu_K2divider_17, /**< \brief K2-Divider 17 */
296  IfxScuCcu_K2divider_18, /**< \brief K2-Divider 18 */
297  IfxScuCcu_K2divider_19, /**< \brief K2-Divider 19 */
298  IfxScuCcu_K2divider_20, /**< \brief K2-Divider 20 */
299  IfxScuCcu_K2divider_21, /**< \brief K2-Divider 21 */
300  IfxScuCcu_K2divider_22, /**< \brief K2-Divider 22 */
301  IfxScuCcu_K2divider_23, /**< \brief K2-Divider 23 */
302  IfxScuCcu_K2divider_24, /**< \brief K2-Divider 24 */
303  IfxScuCcu_K2divider_25, /**< \brief K2-Divider 25 */
304  IfxScuCcu_K2divider_26, /**< \brief K2-Divider 26 */
305  IfxScuCcu_K2divider_27, /**< \brief K2-Divider 27 */
306  IfxScuCcu_K2divider_28, /**< \brief K2-Divider 28 */
307  IfxScuCcu_K2divider_29, /**< \brief K2-Divider 29 */
308  IfxScuCcu_K2divider_30, /**< \brief K2-Divider 30 */
309  IfxScuCcu_K2divider_31, /**< \brief K2-Divider 31 */
310  IfxScuCcu_K2divider_32, /**< \brief K2-Divider 32 */
311  IfxScuCcu_K2divider_33, /**< \brief K2-Divider 33 */
312  IfxScuCcu_K2divider_34, /**< \brief K2-Divider 34 */
313  IfxScuCcu_K2divider_35, /**< \brief K2-Divider 35 */
314  IfxScuCcu_K2divider_36, /**< \brief K2-Divider 36 */
315  IfxScuCcu_K2divider_37, /**< \brief K2-Divider 37 */
316  IfxScuCcu_K2divider_38, /**< \brief K2-Divider 38 */
317  IfxScuCcu_K2divider_39, /**< \brief K2-Divider 39 */
318  IfxScuCcu_K2divider_40, /**< \brief K2-Divider 40 */
319  IfxScuCcu_K2divider_41, /**< \brief K2-Divider 41 */
320  IfxScuCcu_K2divider_42, /**< \brief K2-Divider 42 */
321  IfxScuCcu_K2divider_43, /**< \brief K2-Divider 43 */
322  IfxScuCcu_K2divider_44, /**< \brief K2-Divider 44 */
323  IfxScuCcu_K2divider_45, /**< \brief K2-Divider 45 */
324  IfxScuCcu_K2divider_46, /**< \brief K2-Divider 46 */
325  IfxScuCcu_K2divider_47, /**< \brief K2-Divider 47 */
326  IfxScuCcu_K2divider_48, /**< \brief K2-Divider 48 */
327  IfxScuCcu_K2divider_49, /**< \brief K2-Divider 49 */
328  IfxScuCcu_K2divider_50, /**< \brief K2-Divider 50 */
329  IfxScuCcu_K2divider_51, /**< \brief K2-Divider 51 */
330  IfxScuCcu_K2divider_52, /**< \brief K2-Divider 52 */
331  IfxScuCcu_K2divider_53, /**< \brief K2-Divider 53 */
332  IfxScuCcu_K2divider_54, /**< \brief K2-Divider 54 */
333  IfxScuCcu_K2divider_55, /**< \brief K2-Divider 55 */
334  IfxScuCcu_K2divider_56, /**< \brief K2-Divider 56 */
335  IfxScuCcu_K2divider_57, /**< \brief K2-Divider 57 */
336  IfxScuCcu_K2divider_58, /**< \brief K2-Divider 58 */
337  IfxScuCcu_K2divider_59, /**< \brief K2-Divider 59 */
338  IfxScuCcu_K2divider_60, /**< \brief K2-Divider 60 */
339  IfxScuCcu_K2divider_61, /**< \brief K2-Divider 61 */
340  IfxScuCcu_K2divider_62, /**< \brief K2-Divider 62 */
341  IfxScuCcu_K2divider_63, /**< \brief K2-Divider 63 */
342  IfxScuCcu_K2divider_64, /**< \brief K2-Divider 64 */
343  IfxScuCcu_K2divider_65, /**< \brief K2-Divider 65 */
344  IfxScuCcu_K2divider_66, /**< \brief K2-Divider 66 */
345  IfxScuCcu_K2divider_67, /**< \brief K2-Divider 67 */
346  IfxScuCcu_K2divider_68, /**< \brief K2-Divider 68 */
347  IfxScuCcu_K2divider_69, /**< \brief K2-Divider 69 */
348  IfxScuCcu_K2divider_70, /**< \brief K2-Divider 70 */
349  IfxScuCcu_K2divider_71, /**< \brief K2-Divider 71 */
350  IfxScuCcu_K2divider_72, /**< \brief K2-Divider 72 */
351  IfxScuCcu_K2divider_73, /**< \brief K2-Divider 73 */
352  IfxScuCcu_K2divider_74, /**< \brief K2-Divider 74 */
353  IfxScuCcu_K2divider_75, /**< \brief K2-Divider 75 */
354  IfxScuCcu_K2divider_76, /**< \brief K2-Divider 76 */
355  IfxScuCcu_K2divider_77, /**< \brief K2-Divider 77 */
356  IfxScuCcu_K2divider_78, /**< \brief K2-Divider 78 */
357  IfxScuCcu_K2divider_79, /**< \brief K2-Divider 79 */
358  IfxScuCcu_K2divider_80, /**< \brief K2-Divider 80 */
359  IfxScuCcu_K2divider_81, /**< \brief K2-Divider 81 */
360  IfxScuCcu_K2divider_82, /**< \brief K2-Divider 82 */
361  IfxScuCcu_K2divider_83, /**< \brief K2-Divider 83 */
362  IfxScuCcu_K2divider_84, /**< \brief K2-Divider 84 */
363  IfxScuCcu_K2divider_85, /**< \brief K2-Divider 85 */
364  IfxScuCcu_K2divider_86, /**< \brief K2-Divider 86 */
365  IfxScuCcu_K2divider_87, /**< \brief K2-Divider 87 */
366  IfxScuCcu_K2divider_88, /**< \brief K2-Divider 88 */
367  IfxScuCcu_K2divider_89, /**< \brief K2-Divider 89 */
368  IfxScuCcu_K2divider_90, /**< \brief K2-Divider 90 */
369  IfxScuCcu_K2divider_91, /**< \brief K2-Divider 91 */
370  IfxScuCcu_K2divider_92, /**< \brief K2-Divider 92 */
371  IfxScuCcu_K2divider_93, /**< \brief K2-Divider 93 */
372  IfxScuCcu_K2divider_94, /**< \brief K2-Divider 94 */
373  IfxScuCcu_K2divider_95, /**< \brief K2-Divider 95 */
374  IfxScuCcu_K2divider_96, /**< \brief K2-Divider 96 */
375  IfxScuCcu_K2divider_97, /**< \brief K2-Divider 97 */
376  IfxScuCcu_K2divider_98, /**< \brief K2-Divider 98 */
377  IfxScuCcu_K2divider_99, /**< \brief K2-Divider 99 */
378  IfxScuCcu_K2divider_100, /**< \brief K2-Divider 100 */
379  IfxScuCcu_K2divider_101, /**< \brief K2-Divider 101 */
380  IfxScuCcu_K2divider_102, /**< \brief K2-Divider 102 */
381  IfxScuCcu_K2divider_103, /**< \brief K2-Divider 103 */
382  IfxScuCcu_K2divider_104, /**< \brief K2-Divider 104 */
383  IfxScuCcu_K2divider_105, /**< \brief K2-Divider 105 */
384  IfxScuCcu_K2divider_106, /**< \brief K2-Divider 106 */
385  IfxScuCcu_K2divider_107, /**< \brief K2-Divider 107 */
386  IfxScuCcu_K2divider_108, /**< \brief K2-Divider 108 */
387  IfxScuCcu_K2divider_109, /**< \brief K2-Divider 109 */
388  IfxScuCcu_K2divider_110, /**< \brief K2-Divider 110 */
389  IfxScuCcu_K2divider_111, /**< \brief K2-Divider 111 */
390  IfxScuCcu_K2divider_112, /**< \brief K2-Divider 112 */
391  IfxScuCcu_K2divider_113, /**< \brief K2-Divider 113 */
392  IfxScuCcu_K2divider_114, /**< \brief K2-Divider 114 */
393  IfxScuCcu_K2divider_115, /**< \brief K2-Divider 115 */
394  IfxScuCcu_K2divider_116, /**< \brief K2-Divider 116 */
395  IfxScuCcu_K2divider_117, /**< \brief K2-Divider 117 */
396  IfxScuCcu_K2divider_118, /**< \brief K2-Divider 118 */
397  IfxScuCcu_K2divider_119, /**< \brief K2-Divider 119 */
398  IfxScuCcu_K2divider_120, /**< \brief K2-Divider 120 */
399  IfxScuCcu_K2divider_121, /**< \brief K2-Divider 121 */
400  IfxScuCcu_K2divider_122, /**< \brief K2-Divider 122 */
401  IfxScuCcu_K2divider_123, /**< \brief K2-Divider 123 */
402  IfxScuCcu_K2divider_124, /**< \brief K2-Divider 124 */
403  IfxScuCcu_K2divider_125, /**< \brief K2-Divider 125 */
404  IfxScuCcu_K2divider_126, /**< \brief K2-Divider 126 */
405  IfxScuCcu_K2divider_127, /**< \brief K2-Divider 127 */
406  IfxScuCcu_K2divider_128 /**< \brief K2-Divider 128 */
408 
409 /** \brief MODULE_SCU.PLLCON1.B.K3DIV, specifies the K3-Divider
410  */
411 typedef enum
412 {
413  IfxScuCcu_K3divider_1 = 0, /**< \brief K3-Divider 1 */
414  IfxScuCcu_K3divider_2, /**< \brief K3-Divider 2 */
415  IfxScuCcu_K3divider_3, /**< \brief K3-Divider 3 */
416  IfxScuCcu_K3divider_4, /**< \brief K3-Divider 4 */
417  IfxScuCcu_K3divider_5, /**< \brief K3-Divider 5 */
418  IfxScuCcu_K3divider_6, /**< \brief K3-Divider 6 */
419  IfxScuCcu_K3divider_7, /**< \brief K3-Divider 7 */
420  IfxScuCcu_K3divider_8, /**< \brief K3-Divider 8 */
421  IfxScuCcu_K3divider_9, /**< \brief K3-Divider 9 */
422  IfxScuCcu_K3divider_10, /**< \brief K3-Divider 10 */
423  IfxScuCcu_K3divider_11, /**< \brief K3-Divider 11 */
424  IfxScuCcu_K3divider_12, /**< \brief K3-Divider 12 */
425  IfxScuCcu_K3divider_13, /**< \brief K3-Divider 13 */
426  IfxScuCcu_K3divider_14, /**< \brief K3-Divider 14 */
427  IfxScuCcu_K3divider_15, /**< \brief K3-Divider 15 */
428  IfxScuCcu_K3divider_16, /**< \brief K3-Divider 16 */
429  IfxScuCcu_K3divider_17, /**< \brief K3-Divider 17 */
430  IfxScuCcu_K3divider_18, /**< \brief K3-Divider 18 */
431  IfxScuCcu_K3divider_19, /**< \brief K3-Divider 19 */
432  IfxScuCcu_K3divider_20, /**< \brief K3-Divider 20 */
433  IfxScuCcu_K3divider_21, /**< \brief K3-Divider 21 */
434  IfxScuCcu_K3divider_22, /**< \brief K3-Divider 22 */
435  IfxScuCcu_K3divider_23, /**< \brief K3-Divider 23 */
436  IfxScuCcu_K3divider_24, /**< \brief K3-Divider 24 */
437  IfxScuCcu_K3divider_25, /**< \brief K3-Divider 25 */
438  IfxScuCcu_K3divider_26, /**< \brief K3-Divider 26 */
439  IfxScuCcu_K3divider_27, /**< \brief K3-Divider 27 */
440  IfxScuCcu_K3divider_28, /**< \brief K3-Divider 28 */
441  IfxScuCcu_K3divider_29, /**< \brief K3-Divider 29 */
442  IfxScuCcu_K3divider_30, /**< \brief K3-Divider 30 */
443  IfxScuCcu_K3divider_31, /**< \brief K3-Divider 31 */
444  IfxScuCcu_K3divider_32, /**< \brief K3-Divider 32 */
445  IfxScuCcu_K3divider_33, /**< \brief K3-Divider 33 */
446  IfxScuCcu_K3divider_34, /**< \brief K3-Divider 34 */
447  IfxScuCcu_K3divider_35, /**< \brief K3-Divider 35 */
448  IfxScuCcu_K3divider_36, /**< \brief K3-Divider 36 */
449  IfxScuCcu_K3divider_37, /**< \brief K3-Divider 37 */
450  IfxScuCcu_K3divider_38, /**< \brief K3-Divider 38 */
451  IfxScuCcu_K3divider_39, /**< \brief K3-Divider 39 */
452  IfxScuCcu_K3divider_40, /**< \brief K3-Divider 40 */
453  IfxScuCcu_K3divider_41, /**< \brief K3-Divider 41 */
454  IfxScuCcu_K3divider_42, /**< \brief K3-Divider 42 */
455  IfxScuCcu_K3divider_43, /**< \brief K3-Divider 43 */
456  IfxScuCcu_K3divider_44, /**< \brief K3-Divider 44 */
457  IfxScuCcu_K3divider_45, /**< \brief K3-Divider 45 */
458  IfxScuCcu_K3divider_46, /**< \brief K3-Divider 46 */
459  IfxScuCcu_K3divider_47, /**< \brief K3-Divider 47 */
460  IfxScuCcu_K3divider_48, /**< \brief K3-Divider 48 */
461  IfxScuCcu_K3divider_49, /**< \brief K3-Divider 49 */
462  IfxScuCcu_K3divider_50, /**< \brief K3-Divider 50 */
463  IfxScuCcu_K3divider_51, /**< \brief K3-Divider 51 */
464  IfxScuCcu_K3divider_52, /**< \brief K3-Divider 52 */
465  IfxScuCcu_K3divider_53, /**< \brief K3-Divider 53 */
466  IfxScuCcu_K3divider_54, /**< \brief K3-Divider 54 */
467  IfxScuCcu_K3divider_55, /**< \brief K3-Divider 55 */
468  IfxScuCcu_K3divider_56, /**< \brief K3-Divider 56 */
469  IfxScuCcu_K3divider_57, /**< \brief K3-Divider 57 */
470  IfxScuCcu_K3divider_58, /**< \brief K3-Divider 58 */
471  IfxScuCcu_K3divider_59, /**< \brief K3-Divider 59 */
472  IfxScuCcu_K3divider_60, /**< \brief K3-Divider 60 */
473  IfxScuCcu_K3divider_61, /**< \brief K3-Divider 61 */
474  IfxScuCcu_K3divider_62, /**< \brief K3-Divider 62 */
475  IfxScuCcu_K3divider_63, /**< \brief K3-Divider 63 */
476  IfxScuCcu_K3divider_64, /**< \brief K3-Divider 64 */
477  IfxScuCcu_K3divider_65, /**< \brief K3-Divider 65 */
478  IfxScuCcu_K3divider_66, /**< \brief K3-Divider 66 */
479  IfxScuCcu_K3divider_67, /**< \brief K3-Divider 67 */
480  IfxScuCcu_K3divider_68, /**< \brief K3-Divider 68 */
481  IfxScuCcu_K3divider_69, /**< \brief K3-Divider 69 */
482  IfxScuCcu_K3divider_70, /**< \brief K3-Divider 70 */
483  IfxScuCcu_K3divider_71, /**< \brief K3-Divider 71 */
484  IfxScuCcu_K3divider_72, /**< \brief K3-Divider 72 */
485  IfxScuCcu_K3divider_73, /**< \brief K3-Divider 73 */
486  IfxScuCcu_K3divider_74, /**< \brief K3-Divider 74 */
487  IfxScuCcu_K3divider_75, /**< \brief K3-Divider 75 */
488  IfxScuCcu_K3divider_76, /**< \brief K3-Divider 76 */
489  IfxScuCcu_K3divider_77, /**< \brief K3-Divider 77 */
490  IfxScuCcu_K3divider_78, /**< \brief K3-Divider 78 */
491  IfxScuCcu_K3divider_79, /**< \brief K3-Divider 79 */
492  IfxScuCcu_K3divider_80, /**< \brief K3-Divider 80 */
493  IfxScuCcu_K3divider_81, /**< \brief K3-Divider 81 */
494  IfxScuCcu_K3divider_82, /**< \brief K3-Divider 82 */
495  IfxScuCcu_K3divider_83, /**< \brief K3-Divider 83 */
496  IfxScuCcu_K3divider_84, /**< \brief K3-Divider 84 */
497  IfxScuCcu_K3divider_85, /**< \brief K3-Divider 85 */
498  IfxScuCcu_K3divider_86, /**< \brief K3-Divider 86 */
499  IfxScuCcu_K3divider_87, /**< \brief K3-Divider 87 */
500  IfxScuCcu_K3divider_88, /**< \brief K3-Divider 88 */
501  IfxScuCcu_K3divider_89, /**< \brief K3-Divider 89 */
502  IfxScuCcu_K3divider_90, /**< \brief K3-Divider 90 */
503  IfxScuCcu_K3divider_91, /**< \brief K3-Divider 91 */
504  IfxScuCcu_K3divider_92, /**< \brief K3-Divider 92 */
505  IfxScuCcu_K3divider_93, /**< \brief K3-Divider 93 */
506  IfxScuCcu_K3divider_94, /**< \brief K3-Divider 94 */
507  IfxScuCcu_K3divider_95, /**< \brief K3-Divider 95 */
508  IfxScuCcu_K3divider_96, /**< \brief K3-Divider 96 */
509  IfxScuCcu_K3divider_97, /**< \brief K3-Divider 97 */
510  IfxScuCcu_K3divider_98, /**< \brief K3-Divider 98 */
511  IfxScuCcu_K3divider_99, /**< \brief K3-Divider 99 */
512  IfxScuCcu_K3divider_100, /**< \brief K3-Divider 100 */
513  IfxScuCcu_K3divider_101, /**< \brief K3-Divider 101 */
514  IfxScuCcu_K3divider_102, /**< \brief K3-Divider 102 */
515  IfxScuCcu_K3divider_103, /**< \brief K3-Divider 103 */
516  IfxScuCcu_K3divider_104, /**< \brief K3-Divider 104 */
517  IfxScuCcu_K3divider_105, /**< \brief K3-Divider 105 */
518  IfxScuCcu_K3divider_106, /**< \brief K3-Divider 106 */
519  IfxScuCcu_K3divider_107, /**< \brief K3-Divider 107 */
520  IfxScuCcu_K3divider_108, /**< \brief K3-Divider 108 */
521  IfxScuCcu_K3divider_109, /**< \brief K3-Divider 109 */
522  IfxScuCcu_K3divider_110, /**< \brief K3-Divider 110 */
523  IfxScuCcu_K3divider_111, /**< \brief K3-Divider 111 */
524  IfxScuCcu_K3divider_112, /**< \brief K3-Divider 112 */
525  IfxScuCcu_K3divider_113, /**< \brief K3-Divider 113 */
526  IfxScuCcu_K3divider_114, /**< \brief K3-Divider 114 */
527  IfxScuCcu_K3divider_115, /**< \brief K3-Divider 115 */
528  IfxScuCcu_K3divider_116, /**< \brief K3-Divider 116 */
529  IfxScuCcu_K3divider_117, /**< \brief K3-Divider 117 */
530  IfxScuCcu_K3divider_118, /**< \brief K3-Divider 118 */
531  IfxScuCcu_K3divider_119, /**< \brief K3-Divider 119 */
532  IfxScuCcu_K3divider_120, /**< \brief K3-Divider 120 */
533  IfxScuCcu_K3divider_121, /**< \brief K3-Divider 121 */
534  IfxScuCcu_K3divider_122, /**< \brief K3-Divider 122 */
535  IfxScuCcu_K3divider_123, /**< \brief K3-Divider 123 */
536  IfxScuCcu_K3divider_124, /**< \brief K3-Divider 124 */
537  IfxScuCcu_K3divider_125, /**< \brief K3-Divider 125 */
538  IfxScuCcu_K3divider_126, /**< \brief K3-Divider 126 */
539  IfxScuCcu_K3divider_127, /**< \brief K3-Divider 127 */
540  IfxScuCcu_K3divider_128 /**< \brief K3-Divider 128 */
542 
543 /** \brief MODULE_SCU.PLLCON0.B.NDIV, specifies the N-Divider
544  */
545 typedef enum
546 {
547  IfxScuCcu_Ndivider_1 = 0, /**< \brief N-divider 1 */
548  IfxScuCcu_Ndivider_2, /**< \brief N-divider 2 */
549  IfxScuCcu_Ndivider_3, /**< \brief N-divider 3 */
550  IfxScuCcu_Ndivider_4, /**< \brief N-divider 4 */
551  IfxScuCcu_Ndivider_5, /**< \brief N-divider 5 */
552  IfxScuCcu_Ndivider_6, /**< \brief N-divider 6 */
553  IfxScuCcu_Ndivider_7, /**< \brief N-divider 7 */
554  IfxScuCcu_Ndivider_8, /**< \brief N-divider 8 */
555  IfxScuCcu_Ndivider_9, /**< \brief N-divider 9 */
556  IfxScuCcu_Ndivider_10, /**< \brief N-divider 10 */
557  IfxScuCcu_Ndivider_11, /**< \brief N-divider 11 */
558  IfxScuCcu_Ndivider_12, /**< \brief N-divider 12 */
559  IfxScuCcu_Ndivider_13, /**< \brief N-divider 13 */
560  IfxScuCcu_Ndivider_14, /**< \brief N-divider 14 */
561  IfxScuCcu_Ndivider_15, /**< \brief N-divider 15 */
562  IfxScuCcu_Ndivider_16, /**< \brief N-divider 16 */
563  IfxScuCcu_Ndivider_17, /**< \brief N-divider 17 */
564  IfxScuCcu_Ndivider_18, /**< \brief N-divider 18 */
565  IfxScuCcu_Ndivider_19, /**< \brief N-divider 19 */
566  IfxScuCcu_Ndivider_20, /**< \brief N-divider 20 */
567  IfxScuCcu_Ndivider_21, /**< \brief N-divider 21 */
568  IfxScuCcu_Ndivider_22, /**< \brief N-divider 22 */
569  IfxScuCcu_Ndivider_23, /**< \brief N-divider 23 */
570  IfxScuCcu_Ndivider_24, /**< \brief N-divider 24 */
571  IfxScuCcu_Ndivider_25, /**< \brief N-divider 25 */
572  IfxScuCcu_Ndivider_26, /**< \brief N-divider 26 */
573  IfxScuCcu_Ndivider_27, /**< \brief N-divider 27 */
574  IfxScuCcu_Ndivider_28, /**< \brief N-divider 28 */
575  IfxScuCcu_Ndivider_29, /**< \brief N-divider 29 */
576  IfxScuCcu_Ndivider_30, /**< \brief N-divider 30 */
577  IfxScuCcu_Ndivider_31, /**< \brief N-divider 31 */
578  IfxScuCcu_Ndivider_32, /**< \brief N-divider 32 */
579  IfxScuCcu_Ndivider_33, /**< \brief N-divider 33 */
580  IfxScuCcu_Ndivider_34, /**< \brief N-divider 34 */
581  IfxScuCcu_Ndivider_35, /**< \brief N-divider 35 */
582  IfxScuCcu_Ndivider_36, /**< \brief N-divider 36 */
583  IfxScuCcu_Ndivider_37, /**< \brief N-divider 37 */
584  IfxScuCcu_Ndivider_38, /**< \brief N-divider 38 */
585  IfxScuCcu_Ndivider_39, /**< \brief N-divider 39 */
586  IfxScuCcu_Ndivider_40, /**< \brief N-divider 40 */
587  IfxScuCcu_Ndivider_41, /**< \brief N-divider 41 */
588  IfxScuCcu_Ndivider_42, /**< \brief N-divider 42 */
589  IfxScuCcu_Ndivider_43, /**< \brief N-divider 43 */
590  IfxScuCcu_Ndivider_44, /**< \brief N-divider 44 */
591  IfxScuCcu_Ndivider_45, /**< \brief N-divider 45 */
592  IfxScuCcu_Ndivider_46, /**< \brief N-divider 46 */
593  IfxScuCcu_Ndivider_47, /**< \brief N-divider 47 */
594  IfxScuCcu_Ndivider_48, /**< \brief N-divider 48 */
595  IfxScuCcu_Ndivider_49, /**< \brief N-divider 49 */
596  IfxScuCcu_Ndivider_50, /**< \brief N-divider 50 */
597  IfxScuCcu_Ndivider_51, /**< \brief N-divider 51 */
598  IfxScuCcu_Ndivider_52, /**< \brief N-divider 52 */
599  IfxScuCcu_Ndivider_53, /**< \brief N-divider 53 */
600  IfxScuCcu_Ndivider_54, /**< \brief N-divider 54 */
601  IfxScuCcu_Ndivider_55, /**< \brief N-divider 55 */
602  IfxScuCcu_Ndivider_56, /**< \brief N-divider 56 */
603  IfxScuCcu_Ndivider_57, /**< \brief N-divider 57 */
604  IfxScuCcu_Ndivider_58, /**< \brief N-divider 58 */
605  IfxScuCcu_Ndivider_59, /**< \brief N-divider 59 */
606  IfxScuCcu_Ndivider_60, /**< \brief N-divider 60 */
607  IfxScuCcu_Ndivider_61, /**< \brief N-divider 61 */
608  IfxScuCcu_Ndivider_62, /**< \brief N-divider 62 */
609  IfxScuCcu_Ndivider_63, /**< \brief N-divider 63 */
610  IfxScuCcu_Ndivider_64, /**< \brief N-divider 64 */
611  IfxScuCcu_Ndivider_65, /**< \brief N-divider 65 */
612  IfxScuCcu_Ndivider_66, /**< \brief N-divider 66 */
613  IfxScuCcu_Ndivider_67, /**< \brief N-divider 67 */
614  IfxScuCcu_Ndivider_68, /**< \brief N-divider 68 */
615  IfxScuCcu_Ndivider_69, /**< \brief N-divider 69 */
616  IfxScuCcu_Ndivider_70, /**< \brief N-divider 70 */
617  IfxScuCcu_Ndivider_71, /**< \brief N-divider 71 */
618  IfxScuCcu_Ndivider_72, /**< \brief N-divider 72 */
619  IfxScuCcu_Ndivider_73, /**< \brief N-divider 73 */
620  IfxScuCcu_Ndivider_74, /**< \brief N-divider 74 */
621  IfxScuCcu_Ndivider_75, /**< \brief N-divider 75 */
622  IfxScuCcu_Ndivider_76, /**< \brief N-divider 76 */
623  IfxScuCcu_Ndivider_77, /**< \brief N-divider 77 */
624  IfxScuCcu_Ndivider_78, /**< \brief N-divider 78 */
625  IfxScuCcu_Ndivider_79, /**< \brief N-divider 79 */
626  IfxScuCcu_Ndivider_80, /**< \brief N-divider 80 */
627  IfxScuCcu_Ndivider_81, /**< \brief N-divider 81 */
628  IfxScuCcu_Ndivider_82, /**< \brief N-divider 82 */
629  IfxScuCcu_Ndivider_83, /**< \brief N-divider 83 */
630  IfxScuCcu_Ndivider_84, /**< \brief N-divider 84 */
631  IfxScuCcu_Ndivider_85, /**< \brief N-divider 85 */
632  IfxScuCcu_Ndivider_86, /**< \brief N-divider 86 */
633  IfxScuCcu_Ndivider_87, /**< \brief N-divider 87 */
634  IfxScuCcu_Ndivider_88, /**< \brief N-divider 88 */
635  IfxScuCcu_Ndivider_89, /**< \brief N-divider 89 */
636  IfxScuCcu_Ndivider_90, /**< \brief N-divider 90 */
637  IfxScuCcu_Ndivider_91, /**< \brief N-divider 91 */
638  IfxScuCcu_Ndivider_92, /**< \brief N-divider 92 */
639  IfxScuCcu_Ndivider_93, /**< \brief N-divider 93 */
640  IfxScuCcu_Ndivider_94, /**< \brief N-divider 94 */
641  IfxScuCcu_Ndivider_95, /**< \brief N-divider 95 */
642  IfxScuCcu_Ndivider_96, /**< \brief N-divider 96 */
643  IfxScuCcu_Ndivider_97, /**< \brief N-divider 97 */
644  IfxScuCcu_Ndivider_98, /**< \brief N-divider 98 */
645  IfxScuCcu_Ndivider_99, /**< \brief N-divider 99 */
646  IfxScuCcu_Ndivider_100, /**< \brief N-divider 100 */
647  IfxScuCcu_Ndivider_101, /**< \brief N-divider 101 */
648  IfxScuCcu_Ndivider_102, /**< \brief N-divider 102 */
649  IfxScuCcu_Ndivider_103, /**< \brief N-divider 103 */
650  IfxScuCcu_Ndivider_104, /**< \brief N-divider 104 */
651  IfxScuCcu_Ndivider_105, /**< \brief N-divider 105 */
652  IfxScuCcu_Ndivider_106, /**< \brief N-divider 106 */
653  IfxScuCcu_Ndivider_107, /**< \brief N-divider 107 */
654  IfxScuCcu_Ndivider_108, /**< \brief N-divider 108 */
655  IfxScuCcu_Ndivider_109, /**< \brief N-divider 109 */
656  IfxScuCcu_Ndivider_110, /**< \brief N-divider 110 */
657  IfxScuCcu_Ndivider_111, /**< \brief N-divider 111 */
658  IfxScuCcu_Ndivider_112, /**< \brief N-divider 112 */
659  IfxScuCcu_Ndivider_113, /**< \brief N-divider 113 */
660  IfxScuCcu_Ndivider_114, /**< \brief N-divider 114 */
661  IfxScuCcu_Ndivider_115, /**< \brief N-divider 115 */
662  IfxScuCcu_Ndivider_116, /**< \brief N-divider 116 */
663  IfxScuCcu_Ndivider_117, /**< \brief N-divider 117 */
664  IfxScuCcu_Ndivider_118, /**< \brief N-divider 118 */
665  IfxScuCcu_Ndivider_119, /**< \brief N-divider 119 */
666  IfxScuCcu_Ndivider_120, /**< \brief N-divider 120 */
667  IfxScuCcu_Ndivider_121, /**< \brief N-divider 121 */
668  IfxScuCcu_Ndivider_122, /**< \brief N-divider 122 */
669  IfxScuCcu_Ndivider_123, /**< \brief N-divider 123 */
670  IfxScuCcu_Ndivider_124, /**< \brief N-divider 124 */
671  IfxScuCcu_Ndivider_125, /**< \brief N-divider 125 */
672  IfxScuCcu_Ndivider_126, /**< \brief N-divider 126 */
673  IfxScuCcu_Ndivider_127, /**< \brief N-divider 127 */
674  IfxScuCcu_Ndivider_128 /**< \brief N-divider 128 */
676 
677 /** \brief MODULE_SCU.PLLCON0.B.PDIV, specifies the P-Divider
678  */
679 typedef enum
680 {
681  IfxScuCcu_Pdivider_1 = 0, /**< \brief P-divider 1 */
682  IfxScuCcu_Pdivider_2, /**< \brief P-divider 2 */
683  IfxScuCcu_Pdivider_3, /**< \brief P-divider 3 */
684  IfxScuCcu_Pdivider_4, /**< \brief P-divider 4 */
685  IfxScuCcu_Pdivider_5, /**< \brief P-divider 5 */
686  IfxScuCcu_Pdivider_6, /**< \brief P-divider 6 */
687  IfxScuCcu_Pdivider_7, /**< \brief P-divider 7 */
688  IfxScuCcu_Pdivider_8, /**< \brief P-divider 8 */
689  IfxScuCcu_Pdivider_9, /**< \brief P-divider 9 */
690  IfxScuCcu_Pdivider_10, /**< \brief P-divider 10 */
691  IfxScuCcu_Pdivider_11, /**< \brief P-divider 11 */
692  IfxScuCcu_Pdivider_12, /**< \brief P-divider 12 */
693  IfxScuCcu_Pdivider_13, /**< \brief P-divider 13 */
694  IfxScuCcu_Pdivider_14, /**< \brief P-divider 14 */
695  IfxScuCcu_Pdivider_15, /**< \brief P-divider 15 */
696  IfxScuCcu_Pdivider_16 /**< \brief P-divider 16 */
698 
699 /** \} */
700 
701 /******************************************************************************/
702 /*-----------------------------Data Structures--------------------------------*/
703 /******************************************************************************/
704 
705 /** \addtogroup IfxLld_Scu_Std_Ccu_Ccu
706  * \{ */
707 /** \brief Configuration structure type for CCUCON registers.
708  */
709 typedef struct
710 {
711  uint32 value; /**< \brief CCUCON Register value to be updated. */
712  uint32 mask; /**< \brief CCUCON Mask to select the bit fields to be updated. */
714 
715 /** \brief Configuration structure type for the Pll initial step.
716  * This structure must be used to configure the P, N and K2 dividers for initial step.
717  */
718 typedef struct
719 {
720  uint8 pDivider; /**< \brief P divider value for basic (initial) step */
721  uint8 nDivider; /**< \brief N divider value for basic (initial) step */
722  uint8 k2Initial; /**< \brief K2 divider value for basic (initial) step */
723  float32 waitTime; /**< \brief Wait time for for basic (initial) step */
725 
726 /** \brief Configuration structure type for the Pll Steps for current jump control.
727  */
728 typedef struct
729 {
730  uint8 k2Step; /**< \brief K2 divider value for this step. */
731  float32 waitTime; /**< \brief Wait time for for this step. */
732  IfxScuCcu_PllStepsFunctionHook hookFunction; /**< \brief Hook function called at the end of this step. */
734 
735 /** \} */
736 
737 /** \addtogroup IfxLld_Scu_Std_Ccu_Ccu
738  * \{ */
739 /** \brief Configuration structure type for all the CCUCON registers to configure clock distribution.
740  */
741 typedef struct
742 {
743  IfxScuCcu_CcuconRegConfig ccucon0; /**< \brief CCUCON0 Register configuration */
744  IfxScuCcu_CcuconRegConfig ccucon1; /**< \brief CCUCON1 Register configuration */
745  IfxScuCcu_CcuconRegConfig ccucon2; /**< \brief CCUCON2 Register configuration */
746  IfxScuCcu_CcuconRegConfig ccucon5; /**< \brief CCUCON5 Register configuration */
747  IfxScuCcu_CcuconRegConfig ccucon6; /**< \brief CCUCON6 Register configuration */
748  IfxScuCcu_CcuconRegConfig ccucon7; /**< \brief CCUCON7 Register configuration */
749  IfxScuCcu_CcuconRegConfig ccucon8; /**< \brief CCUCON8 Register configuration */
751 
752 /** \brief Configuration structure type for the Flash waitstate configuration.
753  */
754 typedef struct
755 {
756  uint32 value; /**< \brief FLASH.FCON Register value to be updated. */
757  uint32 mask; /**< \brief FLASH.FCON Mask to select the bit fields to be updated. */
759 
760 /** \brief Configuration structure type for the System Pll step.
761  * This structure must be used to configure the P, N and K1 dividers .
762  */
763 typedef struct
764 {
765  uint8 numOfPllDividerSteps; /**< \brief Number of PLL divider steps during clock throttling. */
766  IfxScuCcu_PllStepsConfig *pllDividerStep; /**< \brief Pointer to the array of Pll divider step configuration. */
767  IfxScuCcu_InitialStepConfig pllInitialStep; /**< \brief Configuration of first step which is same as internal osc frequency. */
769 
770 /** \} */
771 
772 /** \addtogroup IfxLld_Scu_Std_Ccu_Ccu
773  * \{ */
774 /** \brief Configuration structure SCU module
775  */
776 typedef struct
777 {
778  IfxScuCcu_SysPllConfig sysPll; /**< \brief System PLL configuration */
779  IfxScuCcu_ClockDistributionConfig clockDistribution; /**< \brief Configuration of of bus clocks and other module clock distribution. */
780  IfxScuCcu_FlashWaitstateConfig flashFconWaitStateConfig; /**< \brief Configuration of flash waitstate */
781  uint32 xtalFrequency; /**< \brief Xtal Frequency */
783 
784 /** \brief Configuration structure for E-ray PLL
785  */
786 typedef struct
787 {
788  IfxScuCcu_InitialStepConfig pllInitialStep; /**< \brief Configuration of first step which is same as internal osc frequency. */
790 
791 /** \} */
792 
793 /** \addtogroup IfxLld_Scu_Std_Ccu_Ccu_Operative
794  * \{ */
795 
796 /******************************************************************************/
797 /*-------------------------Inline Function Prototypes-------------------------*/
798 /******************************************************************************/
799 
800 /** \brief API to get EVR Oscillator frequency.
801  * This API returns the constant which is specific to the ScuCcu of the controller.
802  * \return EVR Oscillator frequency (fBACK or fEVR) in Hz.
803  */
805 
806 /** \brief API to get actual PLL2 (K3 Divider for ADC clock) frequency
807  * This API returns the PLL2ERAY frequency based on the K3 divider value in PLLERAYCON and the VCO frequency. This frequency is one of the configurable inputs to ADC clock.
808  * \return PLL2ERAY (K3 Divider for ADC clock) frequency in Hz
809  */
811 
812 /** \brief API to get actual PLL2 (K3 Divider for ADC clock) frequency
813  * This API returns the PLL2 frequency based on the K3 divider value in PLLCON and the VCO frequency. This frequency is one of the configurable inputs to ADC clock.
814  * \return PLL2 (K3 Divider for ADC clock) frequency in Hz
815  */
817 
818 /** \brief Returns the clock source selection
819  * \return Clock source selection
820  */
822 
823 /** \brief API to get STM divider frequency.
824  * This API returns the based on the divider value in CCUCON register and fSOURCE.
825  * \return STM frequency (fSTM) in Hz
826  */
828 
829 /******************************************************************************/
830 /*-------------------------Global Function Prototypes-------------------------*/
831 /******************************************************************************/
832 
833 /** \brief API to get BAUD1 divider frequency.
834  * This API returns the based on the divider value in CCUCON register and the input oscillator.
835  * \return Baud1 frequency in Hz
836  */
838 
839 /** \brief API to get BAUD2 divider frequency.
840  * This API returns the Baud2 frequency based on the divider value in CCUCON register and the fMAX.
841  * \return Baud2 frequency in Hz
842  */
844 
845 /** \brief API to get BBB divider frequency.
846  * This API returns the BBBDivider frequency based on the divider value in CCUCON register and the input oscillator.
847  * \return BBB frequency (fBBB) in Hz
848  */
850 
851 /** \brief This API returns the Cpu frequency based on the divider value in CCUCON register and fSource frequency
852  * \param cpu CPU number for which effective fCPU is sought
853  * \return Cpu[x] frequency in Hz, where x is cpu number passed as parameter
854  */
856 
857 /** \brief API to get FSI2 divider frequency in Hz.
858  * This API returns the fFSI2 frequency based on the divider value in CCUCON register and the input oscillator.
859  * \return FSI2 frequency (fFSI2) in Hz.
860  */
862 
863 /** \brief API to get FSI divider frequency in Hz.
864  * This API returns the fFSI based on the divider value in CCUCON register and the input oscillator.
865  * \return FSI frequency (fFSI) in Hz.
866  */
868 
869 /** \brief API to get FMAX divider frequency.
870  * This API returns the fMax frequency based on the divider value in CCUCON register and the input oscillator.
871  * \return Max frequency (fMAX) in Hz.
872  */
874 
875 /** \brief get source frequency fSOURCE.
876  * This API returns the source frequency based on the configurations with CCUCON register configuration.
877  * \return Module frequency in Hz
878  */
880 
881 /** \brief API to get Oscillator 0 frequency.
882  * This API returns the fOsc0 frequency based on the divider value in CCUCON register and the input oscillator.
883  * \return Osc0 frequency (fOSC0) in Hz.
884  */
886 
887 /** \brief API to get Oscillator 0 frequency.
888  * This API returns the fOsc0 frequency based on the divider value in CCUCON register and the input oscillator.
889  * \return Osc frequency (fOSC) in Hz.
890  */
892 
893 /** \brief API to get actual PLL (Eray) frequency.
894  * This API returns the based on the divider values in CCUCON, PLLCON registers and the input oscillator.
895  * \return frequency of Pll Eray (fPLLERAY) in Hz
896  */
898 
899 /** \brief API to get actual ERAY PLL Voltage Controlled Oscillator frequency.
900  * This API returns the based on the divider values in PLLERAYCON registers and the input oscillator.
901  * \return Pll (Eray) VCO frequency
902  */
904 
905 /** \brief API to get actual PLL output frequency.
906  * This API returns the based on the divider values in CCUCON, PLLCON registers and the input oscillator.
907  * \return Pll (fPLL) frequency in Hz
908  */
910 
911 /** \brief API to get actual PLL Voltage Controlled Oscillator frequency.
912  * This API returns the based on the divider values in PLLCON registers and the input oscillator.
913  * \return Pll VCO frequency
914  */
916 
917 /** \brief get source frequency fSOURCE.
918  * This API returns the source frequency based on the configurations with CCUCON register configuration.
919  * \return Effective fSOURCE in Hz
920  */
922 
923 /** \brief API to get SPB divider frequency.
924  * This API returns the based on fSOURCE and also on Low power divider mode and/or SPBDIV divider value in CCUCON registers.
925  * \return SPB frequency (fSPB) in Hz
926  */
928 
929 /** \brief API to get SRI divider frequency.
930  * This API returns the Sri frequency based on the divider values in CCUCON registers and fSOURCE.
931  * \return Sri frequency (fSRI) in Hz
932  */
934 
935 /** \brief API to set CPU frequency (with CPU divider)
936  * This API configure CPU divider values in CCUCON registers. The actual frequency is always depends on the feasibility with the divider value
937  * \param cpu CPU number for which fCPU to be configured
938  * \param cpuFreq Desired CPU frequency in Hz
939  * \return Actual CPU[x] frequency in Hz, where x is the cpu number passed as parameter
940  */
942 
943 /** \brief API to configure PLL2ERAY (K3 Divider for ADC clock) for desired frequency.
944  * This API configure K3 divider value in CCUCON. The actual frequency always depends on the feasibility with the divider value
945  * \param pll2ErayFreq PLL2ERAY (K3 Divider for ADC clock) frequency in Hz
946  * \return Actual PLL2 (K3 Divider for ADC clock) frequency in Hz
947  */
949 
950 /** \brief API to configure PLL2 (K3 Divider for ADC clock) for desired frequency.
951  * This API configure K3 divider value in CCUCON. The actual frequency always depends on the feasibility with the divider value
952  * \param pll2Freq PLL2 (K3 Divider for ADC clock) frequency in Hz
953  * \return Actual PLL2 (K3 Divider for ADC clock) frequency in Hz
954  */
956 
957 /** \brief API to set SPB frequency (with SPB divider)
958  * This API configure SPB divider values in CCUCON registers. The actual frequency always depends on the feasibility with the divider value
959  * \param spbFreq Desired SPB frequency in Hz
960  * \return Actual SPB frequency in Hz
961  */
963 
964 /** \brief API to set SRI frequency (with SRI divider)
965  * This API configure Sri divider values in CCUCON registers. The actual frequency always depends on the feasibility with the divider value
966  * \param sriFreq Sri frequency (fSRI) in Hz
967  * \return Actual Sri frequency (fSRI) in Hz
968  */
970 
971 /** \} */
972 
973 /** \addtogroup IfxLld_Scu_Std_Ccu_Ccu_Configuration
974  * \{ */
975 
976 /******************************************************************************/
977 /*-------------------------Global Function Prototypes-------------------------*/
978 /******************************************************************************/
979 
980 /** \brief The api calculates the system PLL divider values P, N, K based on given xtal frequency and PLL frequency.
981  * \param cfg Pointer to the configuration structure of the ScuCcu
982  * \param fPll Desired PLL frequency.
983  * \return 0- Success, 1 - Failure
984  */
986 
987 /** \brief API to initialize the SCU Clock Control Unit.
988  * This API initialize the PLL with ramp steps, BUS dividers for the configuration provided by the configuration structure.
989  * \param cfg Pointer to the configuration structure of the ScuCcu
990  * \return Error status of the ScuCcu initialization process.
991  * \retval TRUE: If an error occurred during initialization.
992  * \retval FALSE: If initialization was successful.
993  */
994 IFX_EXTERN boolean IfxScuCcu_init(const IfxScuCcu_Config *cfg);
995 
996 /** \brief Initializes the clock configuration with default values
997  * \param cfg Pointer to the configuration structure of the ScuCcu
998  * \return None
999  */
1001 
1002 /** \brief API to initialize the SCU Eray Pll
1003  * This API initialize the Eray PLL for the configuration provided by the configuration structure.
1004  * \param cfg Pointer to the configuration structure of the Eray Pll
1005  * \return Error status of the ScuCcu Eray Pll initialization process.
1006  * \retval TRUE: If an error occurred during initialization.
1007  * \retval FALSE: If initialization was successful.
1008  */
1010 
1011 /** \brief Initializes the clock configuration with default values
1012  * \param cfg Pointer to the configuration structure of the ScuCcuEray Pll
1013  * \return None
1014  */
1016 
1017 /** \brief API to switch to Backup clock from the current PLL frequency.
1018  * \param cfg Pointer to the configuration structure of the ScuCcu
1019  * \return None
1020  */
1022 
1023 /** \} */
1024 
1025 /******************************************************************************/
1026 /*-------------------------Inline Function Prototypes-------------------------*/
1027 /******************************************************************************/
1028 
1029 /** \brief API to get GTMdivider frequency
1030  * This API returns the based on the divider value in CCUCON register and fSOURCE.
1031  * return GTM frequency (fGTM) in Hz
1032  * \return Gtm Frequency
1033  */
1035 
1036 /******************************************************************************/
1037 /*-------------------------Global Function Prototypes-------------------------*/
1038 /******************************************************************************/
1039 
1040 /** \brief API to set GTM frequency (with GTM divider)
1041  * This API configure GTM divider values in CCUCON registers. The actual frequency always depends on the feasibility with the divider value
1042  * \param gtmFreq Desired GTM frequency in Hz
1043  * \return Actual GTM frequency in HZ
1044  */
1046 
1047 /******************************************************************************/
1048 /*-------------------Global Exported Variables/Constants----------------------*/
1049 /******************************************************************************/
1050 
1051 /** \brief Configuration structure for SCU CCU driver.
1052  * The values of this structure are defined as # defined macros in the implementation of Scu
1053  */
1055 
1056 /** \brief Configuration structure for SCU CCU driver.
1057  * The values of this structure are defined as # defined macros in the implementation of Scu
1058  */
1060 
1061 /******************************************************************************/
1062 /*---------------------Inline Function Implementations------------------------*/
1063 /******************************************************************************/
1064 
1066 {
1067  return IFXSCU_EVR_OSC_FREQUENCY;
1068 }
1069 
1070 
1072 {
1073  return IfxScuCcu_getSourceFrequency() / SCU_CCUCON1.B.GTMDIV;
1074 }
1075 
1076 
1078 {
1079  float32 pll2ErayFrequency;
1080 
1081  pll2ErayFrequency = IfxScuCcu_getPllErayVcoFrequency() / (SCU_PLLERAYCON1.B.K3DIV + 1);
1082 
1083  return pll2ErayFrequency;
1084 }
1085 
1086 
1088 {
1089  float32 pll2Frequency;
1090  pll2Frequency = IfxScuCcu_getPllVcoFrequency() / (SCU_PLLCON1.B.K3DIV + 1);
1091 
1092  return pll2Frequency;
1093 }
1094 
1095 
1097 {
1098  return (IfxScu_CCUCON0_CLKSEL)SCU_CCUCON0.B.CLKSEL;
1099 }
1100 
1101 
1103 {
1104  return IfxScuCcu_getSourceFrequency() / SCU_CCUCON1.B.STMDIV;
1105 }
1106 
1107 
1108 #endif /* IFXSCUCCU_H */