1 /*
2 ** ###################################################################
3 **     Processors:          MIMX8ML8CVNKZ_dsp
4 **                          MIMX8ML8DVNLZ_dsp
5 **
6 **     Compiler:            XCC Compiler
7 **     Reference manual:    IMX8MPRM, Rev.D, 12/2020
8 **     Version:             rev. 5.0, 2021-03-01
9 **     Build:               b230302
10 **
11 **     Abstract:
12 **         Provides a system configuration function and a global variable that
13 **         contains the system frequency. It configures the device and initializes
14 **         the oscillator (PLL) that is part of the microcontroller device.
15 **
16 **     Copyright 2016 Freescale Semiconductor, Inc.
17 **     Copyright 2016-2023 NXP
18 **     All rights reserved.
19 **
20 **     SPDX-License-Identifier: BSD-3-Clause
21 **
22 **     http:                 www.nxp.com
23 **     mail:                 support@nxp.com
24 **
25 **     Revisions:
26 **     - rev. 1.0 (2019-10-11)
27 **         Initial version.
28 **     - rev. 2.0 (2020-02-21)
29 **         Rev.B Header.
30 **     - rev. 3.0 (2020-06-22)
31 **         Rev.C Header.
32 **     - rev. 4.0 (2020-11-16)
33 **         Rev.D Header.
34 **     - rev. 5.0 (2021-03-01)
35 **         Rev.D Header Final.
36 **
37 ** ###################################################################
38 */
39 
40 /*!
41  * @file MIMX8ML8_dsp
42  * @version 5.0
43  * @date 2021-03-01
44  * @brief Device specific configuration file for MIMX8ML8_dsp (header file)
45  *
46  * Provides a system configuration function and a global variable that contains
47  * the system frequency. It configures the device and initializes the oscillator
48  * (PLL) that is part of the microcontroller device.
49  */
50 
51 #ifndef _SYSTEM_MIMX8ML8_dsp_H_
52 #define _SYSTEM_MIMX8ML8_dsp_H_                  /**< Symbol preventing repeated inclusion */
53 
54 #ifdef __cplusplus
55 extern "C" {
56 #endif
57 
58 #include <stdint.h>
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_MIMX8ML8_dsp_H_ */
107