1 /*
2 ** ###################################################################
3 **     Processors:          MCXN236VDF
4 **                          MCXN236VNL
5 **
6 **     Compilers:           GNU C Compiler
7 **                          IAR ANSI C/C++ Compiler for ARM
8 **                          Keil ARM C/C++ Compiler
9 **                          MCUXpresso Compiler
10 **
11 **     Reference manual:    MCXN23XRM
12 **     Version:             rev. 1.0, 2023-10-01
13 **     Build:               b240307
14 **
15 **     Abstract:
16 **         Provides a system configuration function and a global variable that
17 **         contains the system frequency. It configures the device and initializes
18 **         the oscillator (PLL) that is part of the microcontroller device.
19 **
20 **     Copyright 2016 Freescale Semiconductor, Inc.
21 **     Copyright 2016-2024 NXP
22 **     SPDX-License-Identifier: BSD-3-Clause
23 **
24 **     http:                 www.nxp.com
25 **     mail:                 support@nxp.com
26 **
27 **     Revisions:
28 **     - rev. 1.0 (2023-10-01)
29 **         Initial version based on RM 1.2
30 **
31 ** ###################################################################
32 */
33 
34 /*!
35  * @file MCXN236
36  * @version 1.0
37  * @date 2023-10-01
38  * @brief Device specific configuration file for MCXN236 (header file)
39  *
40  * Provides a system configuration function and a global variable that contains
41  * the system frequency. It configures the device and initializes the oscillator
42  * (PLL) that is part of the microcontroller device.
43  */
44 
45 #ifndef _SYSTEM_MCXN236_H_
46 #define _SYSTEM_MCXN236_H_                       /**< Symbol preventing repeated inclusion */
47 
48 #ifdef __cplusplus
49 extern "C" {
50 #endif
51 
52 #include <stdint.h>
53 
54 
55                 #define DEFAULT_SYSTEM_CLOCK           48000000u           /* Default System clock value */
56 #define CLK_FRO_12MHZ                  12000000u           /* FRO 12  MHz (fro_12m)  */
57 #define CLK_FRO_144MHZ                144000000u           /* FRO 144 MHz (fro_144m) */
58 
59 
60 
61 /**
62  * @brief System clock frequency (core clock)
63  *
64  * The system clock frequency supplied to the SysTick timer and the processor
65  * core clock. This variable can be used by the user application to setup the
66  * SysTick timer or configure other parameters. It may also be used by debugger to
67  * query the frequency of the debug timer or configure the trace clock speed
68  * SystemCoreClock is initialized with a correct predefined value.
69  */
70 extern uint32_t SystemCoreClock;
71 
72 /**
73  * @brief Setup the microcontroller system.
74  *
75  * Typically this function configures the oscillator (PLL) that is part of the
76  * microcontroller device. For systems with variable clock speed it also updates
77  * the variable SystemCoreClock. SystemInit is called from startup_device file.
78  */
79 void SystemInit (void);
80 
81 /**
82  * @brief Updates the SystemCoreClock variable.
83  *
84  * It must be called whenever the core clock is changed during program
85  * execution. SystemCoreClockUpdate() evaluates the clock register settings and calculates
86  * the current core clock.
87  */
88 void SystemCoreClockUpdate (void);
89 
90 /**
91  * @brief SystemInit function hook.
92  *
93  * This weak function allows to call specific initialization code during the
94  * SystemInit() execution.This can be used when an application specific code needs
95  * to be called as close to the reset entry as possible (for example the Multicore
96  * Manager MCMGR_EarlyInit() function call).
97  * NOTE: No global r/w variables can be used in this hook function because the
98  * initialization of these variables happens after this function.
99  */
100 void SystemInitHook (void);
101 
102 #ifdef __cplusplus
103 }
104 #endif
105 
106 #endif  /* _SYSTEM_MCXN236_H_ */
107