aboutsummaryrefslogtreecommitdiff
path: root/lib/chibios-contrib/ext/mcux-sdk/devices/MK64F12/system_MK64F12.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib/chibios-contrib/ext/mcux-sdk/devices/MK64F12/system_MK64F12.h')
-rw-r--r--lib/chibios-contrib/ext/mcux-sdk/devices/MK64F12/system_MK64F12.h165
1 files changed, 165 insertions, 0 deletions
diff --git a/lib/chibios-contrib/ext/mcux-sdk/devices/MK64F12/system_MK64F12.h b/lib/chibios-contrib/ext/mcux-sdk/devices/MK64F12/system_MK64F12.h
new file mode 100644
index 000000000..59e3c485e
--- /dev/null
+++ b/lib/chibios-contrib/ext/mcux-sdk/devices/MK64F12/system_MK64F12.h
@@ -0,0 +1,165 @@
1/*
2** ###################################################################
3** Processors: MK64FN1M0CAJ12
4** MK64FN1M0VDC12
5** MK64FN1M0VLL12
6** MK64FN1M0VLQ12
7** MK64FN1M0VMD12
8** MK64FX512VDC12
9** MK64FX512VLL12
10** MK64FX512VLQ12
11** MK64FX512VMD12
12**
13** Compilers: Freescale C/C++ for Embedded ARM
14** GNU C Compiler
15** IAR ANSI C/C++ Compiler for ARM
16** Keil ARM C/C++ Compiler
17** MCUXpresso Compiler
18**
19** Reference manual: K64P144M120SF5RM, Rev.2, January 2014
20** Version: rev. 2.9, 2016-03-21
21** Build: b181105
22**
23** Abstract:
24** Provides a system configuration function and a global variable that
25** contains the system frequency. It configures the device and initializes
26** the oscillator (PLL) that is part of the microcontroller device.
27**
28** Copyright 2016 Freescale Semiconductor, Inc.
29** Copyright 2016-2018 NXP
30** All rights reserved.
31**
32** SPDX-License-Identifier: BSD-3-Clause
33**
34** http: www.nxp.com
35** mail: [email protected]
36**
37** Revisions:
38** - rev. 1.0 (2013-08-12)
39** Initial version.
40** - rev. 2.0 (2013-10-29)
41** Register accessor macros added to the memory map.
42** Symbols for Processor Expert memory map compatibility added to the memory map.
43** Startup file for gcc has been updated according to CMSIS 3.2.
44** System initialization updated.
45** MCG - registers updated.
46** PORTA, PORTB, PORTC, PORTE - registers for digital filter removed.
47** - rev. 2.1 (2013-10-30)
48** Definition of BITBAND macros updated to support peripherals with 32-bit acces disabled.
49** - rev. 2.2 (2013-12-09)
50** DMA - EARS register removed.
51** AIPS0, AIPS1 - MPRA register updated.
52** - rev. 2.3 (2014-01-24)
53** Update according to reference manual rev. 2
54** ENET, MCG, MCM, SIM, USB - registers updated
55** - rev. 2.4 (2014-02-10)
56** The declaration of clock configurations has been moved to separate header file system_MK64F12.h
57** Update of SystemInit() and SystemCoreClockUpdate() functions.
58** - rev. 2.5 (2014-02-10)
59** The declaration of clock configurations has been moved to separate header file system_MK64F12.h
60** Update of SystemInit() and SystemCoreClockUpdate() functions.
61** Module access macro module_BASES replaced by module_BASE_PTRS.
62** - rev. 2.6 (2014-08-28)
63** Update of system files - default clock configuration changed.
64** Update of startup files - possibility to override DefaultISR added.
65** - rev. 2.7 (2014-10-14)
66** Interrupt INT_LPTimer renamed to INT_LPTMR0, interrupt INT_Watchdog renamed to INT_WDOG_EWM.
67** - rev. 2.8 (2015-02-19)
68** Renamed interrupt vector LLW to LLWU.
69** - rev. 2.9 (2016-03-21)
70** Added MK64FN1M0CAJ12 part.
71** GPIO - renamed port instances: PTx -> GPIOx.
72**
73** ###################################################################
74*/
75
76/*!
77 * @file MK64F12
78 * @version 2.9
79 * @date 2016-03-21
80 * @brief Device specific configuration file for MK64F12 (header file)
81 *
82 * Provides a system configuration function and a global variable that contains
83 * the system frequency. It configures the device and initializes the oscillator
84 * (PLL) that is part of the microcontroller device.
85 */
86
87#ifndef _SYSTEM_MK64F12_H_
88#define _SYSTEM_MK64F12_H_ /**< Symbol preventing repeated inclusion */
89
90#ifdef __cplusplus
91extern "C" {
92#endif
93
94#include <stdint.h>
95
96
97#ifndef DISABLE_WDOG
98 #define DISABLE_WDOG 1
99#endif
100
101/* Define clock source values */
102
103#define CPU_XTAL_CLK_HZ 50000000u /* Value of the external crystal or oscillator clock frequency in Hz */
104#define CPU_XTAL32k_CLK_HZ 32768u /* Value of the external 32k crystal or oscillator clock frequency in Hz */
105#define CPU_INT_SLOW_CLK_HZ 32768u /* Value of the slow internal oscillator clock frequency in Hz */
106#define CPU_INT_FAST_CLK_HZ 4000000u /* Value of the fast internal oscillator clock frequency in Hz */
107#define CPU_INT_IRC_CLK_HZ 48000000u /* Value of the 48M internal oscillator clock frequency in Hz */
108
109/* RTC oscillator setting */
110/* RTC_CR: SC2P=0,SC4P=0,SC8P=0,SC16P=0,CLKO=1,OSCE=1,WPS=0,UM=0,SUP=0,WPE=0,SWR=0 */
111#define SYSTEM_RTC_CR_VALUE 0x0300U /* RTC_CR */
112
113/* Low power mode enable */
114/* SMC_PMPROT: AVLP=1,ALLS=1,AVLLS=1 */
115#define SYSTEM_SMC_PMPROT_VALUE 0x2AU /* SMC_PMPROT */
116
117#define DEFAULT_SYSTEM_CLOCK 20971520u /* Default System clock value */
118
119
120/**
121 * @brief System clock frequency (core clock)
122 *
123 * The system clock frequency supplied to the SysTick timer and the processor
124 * core clock. This variable can be used by the user application to setup the
125 * SysTick timer or configure other parameters. It may also be used by debugger to
126 * query the frequency of the debug timer or configure the trace clock speed
127 * SystemCoreClock is initialized with a correct predefined value.
128 */
129extern uint32_t SystemCoreClock;
130
131/**
132 * @brief Setup the microcontroller system.
133 *
134 * Typically this function configures the oscillator (PLL) that is part of the
135 * microcontroller device. For systems with variable clock speed it also updates
136 * the variable SystemCoreClock. SystemInit is called from startup_device file.
137 */
138void SystemInit (void);
139
140/**
141 * @brief Updates the SystemCoreClock variable.
142 *
143 * It must be called whenever the core clock is changed during program
144 * execution. SystemCoreClockUpdate() evaluates the clock register settings and calculates
145 * the current core clock.
146 */
147void SystemCoreClockUpdate (void);
148
149/**
150 * @brief SystemInit function hook.
151 *
152 * This weak function allows to call specific initialization code during the
153 * SystemInit() execution.This can be used when an application specific code needs
154 * to be called as close to the reset entry as possible (for example the Multicore
155 * Manager MCMGR_EarlyInit() function call).
156 * NOTE: No global r/w variables can be used in this hook function because the
157 * initialization of these variables happens after this function.
158 */
159void SystemInitHook (void);
160
161#ifdef __cplusplus
162}
163#endif
164
165#endif /* _SYSTEM_MK64F12_H_ */