Kinetis Bootloader  2.0.0
Common bootloader for Kinetis devices
system_MKL82Z7.h
1 /*
2 ** ###################################################################
3 ** Processors: MKL82Z128VLH7
4 ** MKL82Z128VLK7
5 ** MKL82Z128VLL7
6 ** MKL82Z128VMC7
7 ** MKL82Z128VMP7
8 **
9 ** Compilers: Keil ARM C/C++ Compiler
10 ** Freescale C/C++ for Embedded ARM
11 ** GNU C Compiler
12 ** IAR ANSI C/C++ Compiler for ARM
13 **
14 ** Reference manual: KL82P121M72SF0RM, Rev.1.2 September 2015
15 ** Version: rev. 1.5, 2015-09-24
16 ** Build: b151023
17 **
18 ** Abstract:
19 ** Provides a system configuration function and a global variable that
20 ** contains the system frequency. It configures the device and initializes
21 ** the oscillator (PLL) that is part of the microcontroller device.
22 **
23 ** Copyright (c) 2015 Freescale Semiconductor, Inc.
24 ** All rights reserved.
25 **
26 ** Redistribution and use in source and binary forms, with or without modification,
27 ** are permitted provided that the following conditions are met:
28 **
29 ** o Redistributions of source code must retain the above copyright notice, this list
30 ** of conditions and the following disclaimer.
31 **
32 ** o Redistributions in binary form must reproduce the above copyright notice, this
33 ** list of conditions and the following disclaimer in the documentation and/or
34 ** other materials provided with the distribution.
35 **
36 ** o Neither the name of Freescale Semiconductor, Inc. nor the names of its
37 ** contributors may be used to endorse or promote products derived from this
38 ** software without specific prior written permission.
39 **
40 ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
41 ** ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
42 ** WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
43 ** DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
44 ** ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
45 ** (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
46 ** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
47 ** ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
48 ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
49 ** SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
50 **
51 ** http: www.freescale.com
52 ** mail: support@freescale.com
53 **
54 ** Revisions:
55 ** - rev. 1.0 (2015-04-18)
56 ** Initial version.
57 ** - rev. 1.1 (2015-05-04)
58 ** Update SIM, EVMSIM, QuadSPI, and I2C based on Rev0 document.
59 ** - rev. 1.2 (2015-08-11)
60 ** Correct clock configuration.
61 ** - rev. 1.3 (2015-08-20)
62 ** Align with RM Rev.1.
63 ** - rev. 1.4 (2015-08-28)
64 ** Update LPUART to add FIFO.
65 ** - rev. 1.5 (2015-09-24)
66 ** Update to align with RM Rev.1.2.
67 **
68 ** ###################################################################
69 */
70 
82 #ifndef _SYSTEM_MKL82Z7_H_
83 #define _SYSTEM_MKL82Z7_H_
85 #ifdef __cplusplus
86 extern "C" {
87 #endif
88 
89 #include <stdint.h>
90 
91 #ifndef DISABLE_WDOG
92 #define DISABLE_WDOG 1
93 #endif
94 
95 /* MCG mode constants */
96 
97 #define MCG_MODE_FEI 0U
98 #define MCG_MODE_FBI 1U
99 #define MCG_MODE_BLPI 2U
100 #define MCG_MODE_FEE 3U
101 #define MCG_MODE_FBE 4U
102 #define MCG_MODE_BLPE 5U
103 #define MCG_MODE_PBE 6U
104 #define MCG_MODE_PEE 7U
105 
106 /* Predefined clock setups
107  0 ... Default part configuration
108  Multipurpose Clock Generator (MCG) in FEI mode.
109  Reference clock source for MCG module: Slow internal reference clock
110  Core clock = 20.97152MHz
111  Bus clock = 20.97152MHz
112  1 ... Maximal speed configuration
113  Multipurpose Clock Generator (MCG) in PEE mode.
114  Reference clock source for MCG module: System oscillator 0 reference clock
115  Core clock = 96MHz
116  Bus clock = 24MHz
117  2 ... Chip internally clocked, ready for Very Low Power Run mode.
118  Multipurpose Clock Generator (MCG) in BLPI mode.
119  Reference clock source for MCG module: Fast internal reference clock
120  Core clock = 4MHz
121  Bus clock = 4MHz
122  3 ... Chip externally clocked, ready for Very Low Power Run mode.
123  Multipurpose Clock Generator (MCG) in BLPE mode.
124  Reference clock source for MCG module: System oscillator 0 reference clock
125  Core clock = 4MHz
126  Bus clock = 4MHz
127  4 ... USB clock setup
128  Multipurpose Clock Generator (MCG) in PEE mode.
129  Reference clock source for MCG module: System oscillator 0 reference clock
130  Core clock = 96MHz
131  Bus clock = 24MHz
132  5 ... Maximum achievable clock frequency configuration in RUN mode
133  Multipurpose Clock Generator (MCG) in PEE mode.
134  Reference clock source for MCG module: System oscillator 0 reference clock
135  Core clock = 72MHz
136  Bus clock = 24MHz
137 */
138 
139 /* Define clock source values */
140 
141 #define CPU_XTAL_CLK_HZ \
142  12000000U /* Value of the external crystal or oscillator clock frequency of the system oscillator (OSC) in Hz */
143 #define CPU_XTAL32k_CLK_HZ \
144  32768U /* Value of the external 32k crystal or oscillator clock frequency of the RTC in Hz \ \
145  */
146 #define CPU_INT_SLOW_CLK_HZ 32768U /* Value of the slow internal oscillator clock frequency in Hz */
147 #define CPU_INT_FAST_CLK_HZ 4000000U /* Value of the fast internal oscillator clock frequency in Hz */
148 #define CPU_INT_IRC_CLK_HZ 48000000U /* Value of the 48M internal oscillator clock frequency in Hz */
149 
150 /* RTC oscillator setting */
151 /* RTC_CR: SC2P=0,SC4P=0,SC8P=0,SC16P=0,CLKO=1,OSCE=1,WPS=0,UM=0,SUP=0,WPE=0,SWR=0 */
152 #define SYSTEM_RTC_CR_VALUE 0x0300U /* RTC_CR */
153 
154 /* Low power mode enable */
155 /* SMC_PMPROT: AHSRUN=1,AVLP=1,ALLS=1,AVLLS=1 */
156 #define SYSTEM_SMC_PMPROT_VALUE 0xAAU /* SMC_PMPROT */
157 
158 /* Internal reference clock trim */
159 /* #undef SLOW_TRIM_ADDRESS */ /* Slow oscillator not trimmed. Commented out for MISRA compliance. */
160 /* #undef SLOW_FINE_TRIM_ADDRESS */ /* Slow oscillator not trimmed. Commented out for MISRA compliance. */
161 /* #undef FAST_TRIM_ADDRESS */ /* Fast oscillator not trimmed. Commented out for MISRA compliance. */
162 /* #undef FAST_FINE_TRIM_ADDRESS */ /* Fast oscillator not trimmed. Commented out for MISRA compliance. */
163 
164 #ifdef CLOCK_SETUP
165 #if (CLOCK_SETUP == 0)
166 #define DEFAULT_SYSTEM_CLOCK 20971520U /* Default System clock value */
167 #define MCG_MODE MCG_MODE_FEI /* Clock generator mode */
168 /* MCG_C1: CLKS=0,FRDIV=0,IREFS=1,IRCLKEN=1,IREFSTEN=0 */
169 #define SYSTEM_MCG_C1_VALUE 0x06U /* MCG_C1 */
170 /* MCG_C2: LOCRE0=0,FCFTRIM=0,RANGE=2,HGO=0,EREFS=1,LP=0,IRCS=0 */
171 #define SYSTEM_MCG_C2_VALUE 0x24U /* MCG_C2 */
172 /* MCG_C4: DMX32=0,DRST_DRS=0,FCTRIM=0,SCFTRIM=0 */
173 #define SYSTEM_MCG_C4_VALUE 0x00U /* MCG_C4 */
174 /* MCG_SC: ATME=0,ATMS=0,ATMF=0,FLTPRSRV=0,FCRDIV=0,LOCS0=0 */
175 #define SYSTEM_MCG_SC_VALUE 0x00U /* MCG_SC */
176 /* MCG_C5: PLLCLKEN=0,PLLSTEN=0,PRDIV=0 */
177 #define SYSTEM_MCG_C5_VALUE 0x00U /* MCG_C5 */
178 /* MCG_C6: LOLIE0=0,PLLS=0,CME0=0,VDIV=0 */
179 #define SYSTEM_MCG_C6_VALUE 0x00U /* MCG_C6 */
180 /* MCG_C7: OSCSEL=0 */
181 #define SYSTEM_MCG_C7_VALUE 0x00U /* MCG_C7 */
182 /* OSC_CR: ERCLKEN=1,EREFSTEN=0,SC2P=0,SC4P=0,SC8P=0,SC16P=0 */
183 #define SYSTEM_OSC_CR_VALUE 0x80U /* OSC_CR */
184 /* SMC_PMCTRL: RUNM=0,STOPA=0,STOPM=0 */
185 #define SYSTEM_SMC_PMCTRL_VALUE 0x00U /* SMC_PMCTRL */
186 /* SIM_CLKDIV1: OUTDIV1=0,OUTDIV2=0,OUTDIV4=1,OUTDIV5=1 */
187 #define SYSTEM_SIM_CLKDIV1_VALUE 0x00011000U /* SIM_CLKDIV1 */
188 /* SIM_CLKDIV3: PLLFLLDIV=0,PLLFLLFRAC=0 */
189 #define SYSTEM_SIM_CLKDIV3_VALUE 0x00U /* SIM_CLKDIV3 */
190 /* SIM_SOPT1: USBREGEN=0,USBSSTBY=0,USBVSTBY=0,OSC32KSEL=2,RAMSIZE=0 */
191 #define SYSTEM_SIM_SOPT1_VALUE 0x00080000U /* SIM_SOPT1 */
192  /* SIM_SOPT2:
193  * EMVSIMSRC=0,SDHCSRC=0,LPUARTSRC=0,TPMSRC=1,FLEXIOSRC=0,USBSRC=0,PLLFLLSEL=0,TRACECLKSEL=0,FBSL=0,CLKOUTSEL=0,RTCCLKOUTSEL=0
194  */
195 #define SYSTEM_SIM_SOPT2_VALUE 0x01000000U /* SIM_SOPT2 */
196 #elif(CLOCK_SETUP == 1)
197 #define DEFAULT_SYSTEM_CLOCK 96000000U /* Default System clock value */
198 #define MCG_MODE MCG_MODE_PEE /* Clock generator mode */
199 /* MCG_C1: CLKS=0,FRDIV=4,IREFS=0,IRCLKEN=1,IREFSTEN=0 */
200 #define SYSTEM_MCG_C1_VALUE 0x22U /* MCG_C1 */
201 /* MCG_C2: LOCRE0=0,FCFTRIM=0,RANGE=2,HGO=0,EREFS=1,LP=0,IRCS=0 */
202 #define SYSTEM_MCG_C2_VALUE 0x24U /* MCG_C2 */
203 /* MCG_C4: DMX32=0,DRST_DRS=0,FCTRIM=0,SCFTRIM=0 */
204 #define SYSTEM_MCG_C4_VALUE 0x00U /* MCG_C4 */
205 /* MCG_SC: ATME=0,ATMS=0,ATMF=0,FLTPRSRV=0,FCRDIV=0,LOCS0=0 */
206 #define SYSTEM_MCG_SC_VALUE 0x00U /* MCG_SC */
207 /* MCG_C5: PLLCLKEN=0,PLLSTEN=0,PRDIV=0 */
208 #define SYSTEM_MCG_C5_VALUE 0x00U /* MCG_C5 */
209 /* MCG_C6: LOLIE0=0,PLLS=1,CME0=0,VDIV=0 */
210 #define SYSTEM_MCG_C6_VALUE 0x40U /* MCG_C6 */
211 /* MCG_C7: OSCSEL=0 */
212 #define SYSTEM_MCG_C7_VALUE 0x00U /* MCG_C7 */
213 /* OSC_CR: ERCLKEN=1,EREFSTEN=0,SC2P=0,SC4P=0,SC8P=0,SC16P=0 */
214 #define SYSTEM_OSC_CR_VALUE 0x80U /* OSC_CR */
215 /* SMC_PMCTRL: RUNM=3,STOPA=0,STOPM=0 */
216 #define SYSTEM_SMC_PMCTRL_VALUE 0x60U /* SMC_PMCTRL */
217 /* SIM_CLKDIV1: OUTDIV1=0,OUTDIV2=3,OUTDIV4=3,OUTDIV5=0 */
218 #define SYSTEM_SIM_CLKDIV1_VALUE 0x03030000U /* SIM_CLKDIV1 */
219 /* SIM_CLKDIV3: PLLFLLDIV=0,PLLFLLFRAC=0 */
220 #define SYSTEM_SIM_CLKDIV3_VALUE 0x00U /* SIM_CLKDIV3 */
221 /* SIM_SOPT1: USBREGEN=0,USBSSTBY=0,USBVSTBY=0,OSC32KSEL=2,RAMSIZE=0 */
222 #define SYSTEM_SIM_SOPT1_VALUE 0x00080000U /* SIM_SOPT1 */
223 /* SIM_SOPT2:
224  * EMVSIMSRC=0,SDHCSRC=0,LPUARTSRC=0,TPMSRC=1,FLEXIOSRC=0,USBSRC=0,PLLFLLSEL=1,TRACECLKSEL=0,FBSL=0,CLKOUTSEL=0,RTCCLKOUTSEL=0
225  */
226 #define SYSTEM_SIM_SOPT2_VALUE 0x01010000U /* SIM_SOPT2 */
227 #elif(CLOCK_SETUP == 2)
228 #define DEFAULT_SYSTEM_CLOCK 4000000U /* Default System clock value */
229 #define MCG_MODE MCG_MODE_BLPI /* Clock generator mode */
230 /* MCG_C1: CLKS=1,FRDIV=0,IREFS=1,IRCLKEN=1,IREFSTEN=0 */
231 #define SYSTEM_MCG_C1_VALUE 0x46U /* MCG_C1 */
232 /* MCG_C2: LOCRE0=0,FCFTRIM=0,RANGE=2,HGO=0,EREFS=1,LP=1,IRCS=1 */
233 #define SYSTEM_MCG_C2_VALUE 0x27U /* MCG_C2 */
234 /* MCG_C4: DMX32=0,DRST_DRS=0,FCTRIM=0,SCFTRIM=0 */
235 #define SYSTEM_MCG_C4_VALUE 0x00U /* MCG_C4 */
236 /* MCG_SC: ATME=0,ATMS=0,ATMF=0,FLTPRSRV=0,FCRDIV=0,LOCS0=0 */
237 #define SYSTEM_MCG_SC_VALUE 0x00U /* MCG_SC */
238 /* MCG_C5: PLLCLKEN=0,PLLSTEN=0,PRDIV=0 */
239 #define SYSTEM_MCG_C5_VALUE 0x00U /* MCG_C5 */
240 /* MCG_C6: LOLIE0=0,PLLS=0,CME0=0,VDIV=0 */
241 #define SYSTEM_MCG_C6_VALUE 0x00U /* MCG_C6 */
242 /* MCG_C7: OSCSEL=0 */
243 #define SYSTEM_MCG_C7_VALUE 0x00U /* MCG_C7 */
244 /* OSC_CR: ERCLKEN=1,EREFSTEN=0,SC2P=0,SC4P=0,SC8P=0,SC16P=0 */
245 #define SYSTEM_OSC_CR_VALUE 0x80U /* OSC_CR */
246 /* SMC_PMCTRL: RUNM=0,STOPA=0,STOPM=0 */
247 #define SYSTEM_SMC_PMCTRL_VALUE 0x00U /* SMC_PMCTRL */
248 /* SIM_CLKDIV1: OUTDIV1=0,OUTDIV2=3,OUTDIV4=4,OUTDIV5=0 */
249 #define SYSTEM_SIM_CLKDIV1_VALUE 0x03040000U /* SIM_CLKDIV1 */
250 /* SIM_CLKDIV3: PLLFLLDIV=0,PLLFLLFRAC=0 */
251 #define SYSTEM_SIM_CLKDIV3_VALUE 0x00U /* SIM_CLKDIV3 */
252 /* SIM_SOPT1: USBREGEN=0,USBSSTBY=0,USBVSTBY=0,OSC32KSEL=2,RAMSIZE=0 */
253 #define SYSTEM_SIM_SOPT1_VALUE 0x00080000U /* SIM_SOPT1 */
254 /* SIM_SOPT2:
255  * EMVSIMSRC=0,SDHCSRC=0,LPUARTSRC=0,TPMSRC=1,FLEXIOSRC=0,USBSRC=0,PLLFLLSEL=3,TRACECLKSEL=0,FBSL=0,CLKOUTSEL=0,RTCCLKOUTSEL=0
256  */
257 #define SYSTEM_SIM_SOPT2_VALUE 0x01030000U /* SIM_SOPT2 */
258 #elif(CLOCK_SETUP == 3)
259 #define DEFAULT_SYSTEM_CLOCK 4000000U /* Default System clock value */
260 #define MCG_MODE MCG_MODE_BLPE /* Clock generator mode */
261 /* MCG_C1: CLKS=2,FRDIV=4,IREFS=0,IRCLKEN=1,IREFSTEN=0 */
262 #define SYSTEM_MCG_C1_VALUE 0xA2U /* MCG_C1 */
263 /* MCG_C2: LOCRE0=0,FCFTRIM=0,RANGE=2,HGO=0,EREFS=1,LP=1,IRCS=1 */
264 #define SYSTEM_MCG_C2_VALUE 0x27U /* MCG_C2 */
265 /* MCG_C4: DMX32=0,DRST_DRS=0,FCTRIM=0,SCFTRIM=0 */
266 #define SYSTEM_MCG_C4_VALUE 0x00U /* MCG_C4 */
267 /* MCG_SC: ATME=0,ATMS=0,ATMF=0,FLTPRSRV=0,FCRDIV=1,LOCS0=0 */
268 #define SYSTEM_MCG_SC_VALUE 0x02U /* MCG_SC */
269 /* MCG_C5: PLLCLKEN=0,PLLSTEN=0,PRDIV=0 */
270 #define SYSTEM_MCG_C5_VALUE 0x00U /* MCG_C5 */
271 /* MCG_C6: LOLIE0=0,PLLS=0,CME0=0,VDIV=0 */
272 #define SYSTEM_MCG_C6_VALUE 0x00U /* MCG_C6 */
273 /* MCG_C7: OSCSEL=0 */
274 #define SYSTEM_MCG_C7_VALUE 0x00U /* MCG_C7 */
275 /* OSC_CR: ERCLKEN=1,EREFSTEN=0,SC2P=0,SC4P=0,SC8P=0,SC16P=0 */
276 #define SYSTEM_OSC_CR_VALUE 0x80U /* OSC_CR */
277 /* SMC_PMCTRL: RUNM=0,STOPA=0,STOPM=0 */
278 #define SYSTEM_SMC_PMCTRL_VALUE 0x00U /* SMC_PMCTRL */
279 /* SIM_CLKDIV1: OUTDIV1=0,OUTDIV2=3,OUTDIV4=3,OUTDIV5=0x0B */
280 #define SYSTEM_SIM_CLKDIV1_VALUE 0x03030000U /* SIM_CLKDIV1 */
281 /* SIM_CLKDIV3: PLLFLLDIV=0,PLLFLLFRAC=0 */
282 #define SYSTEM_SIM_CLKDIV3_VALUE 0x00U /* SIM_CLKDIV3 */
283 /* SIM_SOPT1: USBREGEN=0,USBSSTBY=0,USBVSTBY=0,OSC32KSEL=2,RAMSIZE=0 */
284 #define SYSTEM_SIM_SOPT1_VALUE 0x00080000U /* SIM_SOPT1 */
285 /* SIM_SOPT2:
286  * EMVSIMSRC=0,SDHCSRC=0,LPUARTSRC=0,TPMSRC=1,FLEXIOSRC=0,USBSRC=0,PLLFLLSEL=3,TRACECLKSEL=0,FBSL=0,CLKOUTSEL=0,RTCCLKOUTSEL=0
287  */
288 #define SYSTEM_SIM_SOPT2_VALUE 0x01030000U /* SIM_SOPT2 */
289 #elif(CLOCK_SETUP == 4)
290 #define DEFAULT_SYSTEM_CLOCK 96000000U /* Default System clock value */
291 #define MCG_MODE MCG_MODE_PEE /* Clock generator mode */
292 /* MCG_C1: CLKS=0,FRDIV=4,IREFS=0,IRCLKEN=1,IREFSTEN=0 */
293 #define SYSTEM_MCG_C1_VALUE 0x22U /* MCG_C1 */
294 /* MCG_C2: LOCRE0=0,FCFTRIM=0,RANGE=2,HGO=0,EREFS=1,LP=0,IRCS=0 */
295 #define SYSTEM_MCG_C2_VALUE 0x24U /* MCG_C2 */
296 /* MCG_C4: DMX32=0,DRST_DRS=0,FCTRIM=0,SCFTRIM=0 */
297 #define SYSTEM_MCG_C4_VALUE 0x00U /* MCG_C4 */
298 /* MCG_SC: ATME=0,ATMS=0,ATMF=0,FLTPRSRV=0,FCRDIV=0,LOCS0=0 */
299 #define SYSTEM_MCG_SC_VALUE 0x00U /* MCG_SC */
300 /* MCG_C5: PLLCLKEN=0,PLLSTEN=0,PRDIV=0 */
301 #define SYSTEM_MCG_C5_VALUE 0x00U /* MCG_C5 */
302 /* MCG_C6: LOLIE0=0,PLLS=1,CME0=0,VDIV=0 */
303 #define SYSTEM_MCG_C6_VALUE 0x40U /* MCG_C6 */
304 /* MCG_C7: OSCSEL=0 */
305 #define SYSTEM_MCG_C7_VALUE 0x00U /* MCG_C7 */
306 /* OSC_CR: ERCLKEN=1,EREFSTEN=0,SC2P=0,SC4P=0,SC8P=0,SC16P=0 */
307 #define SYSTEM_OSC_CR_VALUE 0x80U /* OSC_CR */
308 /* SMC_PMCTRL: RUNM=3,STOPA=0,STOPM=0 */
309 #define SYSTEM_SMC_PMCTRL_VALUE 0x60U /* SMC_PMCTRL */
310 /* SIM_CLKDIV1: OUTDIV1=0,OUTDIV2=3,OUTDIV4=3,OUTDIV5=0 */
311 #define SYSTEM_SIM_CLKDIV1_VALUE 0x03030000U /* SIM_CLKDIV1 */
312 /* SIM_CLKDIV2: USBDIV=3,USBFRAC=0 */
313 #define SYSTEM_SIM_CLKDIV2_VALUE 0x03U /* SIM_CLKDIV2 */
314 /* SIM_CLKDIV3: PLLFLLDIV=0,PLLFLLFRAC=0 */
315 #define SYSTEM_SIM_CLKDIV3_VALUE 0x00U /* SIM_CLKDIV3 */
316 /* SIM_SOPT1: USBREGEN=0,USBSSTBY=0,USBVSTBY=0,OSC32KSEL=2,RAMSIZE=0 */
317 #define SYSTEM_SIM_SOPT1_VALUE 0x00080000U /* SIM_SOPT1 */
318 /* SIM_SOPT2:
319  * EMVSIMSRC=0,SDHCSRC=0,LPUARTSRC=0,TPMSRC=1,FLEXIOSRC=0,USBSRC=0,PLLFLLSEL=1,TRACECLKSEL=0,FBSL=0,CLKOUTSEL=0,RTCCLKOUTSEL=0
320  */
321 #define SYSTEM_SIM_SOPT2_VALUE 0x01010000U /* SIM_SOPT2 */
322 #elif(CLOCK_SETUP == 5)
323 #define DEFAULT_SYSTEM_CLOCK 72000000U /* Default System clock value */
324 #define MCG_MODE MCG_MODE_PEE /* Clock generator mode */
325 /* MCG_C1: CLKS=0,FRDIV=4,IREFS=0,IRCLKEN=1,IREFSTEN=0 */
326 #define SYSTEM_MCG_C1_VALUE 0x22U /* MCG_C1 */
327 /* MCG_C2: LOCRE0=0,FCFTRIM=0,RANGE=2,HGO=0,EREFS=1,LP=0,IRCS=0 */
328 #define SYSTEM_MCG_C2_VALUE 0x24U /* MCG_C2 */
329 /* MCG_C4: DMX32=0,DRST_DRS=0,FCTRIM=0,SCFTRIM=0 */
330 #define SYSTEM_MCG_C4_VALUE 0x00U /* MCG_C4 */
331 /* MCG_SC: ATME=0,ATMS=0,ATMF=0,FLTPRSRV=0,FCRDIV=0,LOCS0=0 */
332 #define SYSTEM_MCG_SC_VALUE 0x00U /* MCG_SC */
333 /* MCG_C5: PLLCLKEN=0,PLLSTEN=0,PRDIV=1 */
334 #define SYSTEM_MCG_C5_VALUE 0x01U /* MCG_C5 */
335 /* MCG_C6: LOLIE0=0,PLLS=1,CME0=0,VDIV=8 */
336 #define SYSTEM_MCG_C6_VALUE 0x48U /* MCG_C6 */
337 /* MCG_C7: OSCSEL=0 */
338 #define SYSTEM_MCG_C7_VALUE 0x00U /* MCG_C7 */
339 /* OSC_CR: ERCLKEN=1,EREFSTEN=0,SC2P=0,SC4P=0,SC8P=0,SC16P=0 */
340 #define SYSTEM_OSC_CR_VALUE 0x80U /* OSC_CR */
341 /* SMC_PMCTRL: RUNM=0,STOPA=0,STOPM=0 */
342 #define SYSTEM_SMC_PMCTRL_VALUE 0x00U /* SMC_PMCTRL */
343 /* SIM_CLKDIV1: OUTDIV1=0,OUTDIV2=2,OUTDIV4=2,OUTDIV5=0 */
344 #define SYSTEM_SIM_CLKDIV1_VALUE 0x02020000U /* SIM_CLKDIV1 */
345 /* SIM_CLKDIV3: PLLFLLDIV=0,PLLFLLFRAC=0 */
346 #define SYSTEM_SIM_CLKDIV3_VALUE 0x00U /* SIM_CLKDIV3 */
347 /* SIM_SOPT1: USBREGEN=0,USBSSTBY=0,USBVSTBY=0,OSC32KSEL=2,RAMSIZE=0 */
348 #define SYSTEM_SIM_SOPT1_VALUE 0x00080000U /* SIM_SOPT1 */
349 /* SIM_SOPT2:
350  * EMVSIMSRC=0,SDHCSRC=0,LPUARTSRC=0,TPMSRC=1,FLEXIOSRC=0,USBSRC=0,PLLFLLSEL=1,TRACECLKSEL=0,FBSL=0,CLKOUTSEL=0,RTCCLKOUTSEL=0
351  */
352 #define SYSTEM_SIM_SOPT2_VALUE 0x01010000U /* SIM_SOPT2 */
353 #endif
354 #else
355 #define DEFAULT_SYSTEM_CLOCK 20971520u
356 #endif
357 
367 extern uint32_t SystemCoreClock;
368 
376 void SystemInit(void);
377 
385 void SystemCoreClockUpdate(void);
386 
387 #ifdef __cplusplus
388 }
389 #endif
390 
391 #endif /* _SYSTEM_MKL82Z7_H_ */