1 /****************************************************************************** 2 * 3 * Copyright (C) 2022-2023 Maxim Integrated Products, Inc. (now owned by 4 * Analog Devices, Inc.), 5 * Copyright (C) 2023-2024 Analog Devices, Inc. 6 * 7 * Licensed under the Apache License, Version 2.0 (the "License"); 8 * you may not use this file except in compliance with the License. 9 * You may obtain a copy of the License at 10 * 11 * http://www.apache.org/licenses/LICENSE-2.0 12 * 13 * Unless required by applicable law or agreed to in writing, software 14 * distributed under the License is distributed on an "AS IS" BASIS, 15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 * See the License for the specific language governing permissions and 17 * limitations under the License. 18 * 19 ******************************************************************************/ 20 21 #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX78002_INCLUDE_SYSTEM_MAX78002_H_ 22 #define LIBRARIES_CMSIS_DEVICE_MAXIM_MAX78002_INCLUDE_SYSTEM_MAX78002_H_ 23 24 #ifdef __cplusplus 25 extern "C" { 26 #endif 27 28 #include <stdint.h> 29 30 /*---------------------------------------------------------------------------- 31 Define clocks 32 *----------------------------------------------------------------------------*/ 33 34 /* NOTE: HIRC was previously named CRYPTO */ 35 #ifdef CRYPTO_FREQ 36 #warning WARNING: CRYPTO_FREQ does not exist in MAX78002, replace with HIRC_FREQ! 37 #define HIRC_FREQ CRYPTO_FREQ 38 #endif 39 40 /* NOTE: EXTCLK needs to be defined by user based on the clock they supply */ 41 #ifndef EXTCLK_FREQ 42 #define EXTCLK_FREQ 75000000 43 #endif 44 45 /* NOTE: This is the nominal value for INRO. The actual value may vary from chip to chip. 46 Update if use of this oscillator requires precise timing. 47 This is default device setting. Update this if user changes to other 48 available value.*/ 49 /* NOTE: INRO was previously named NANORING */ 50 #ifndef INRO_FREQ 51 #define INRO_FREQ 30000 52 #endif 53 54 #ifndef IPO_FREQ 55 #define IPO_FREQ 120000000 56 #endif 57 58 #ifndef ISO_FREQ 59 #define ISO_FREQ 60000000 60 #endif 61 62 #ifndef IBRO_FREQ 63 #define IBRO_FREQ 7372800 64 #endif 65 66 #ifndef EBO_FREQ 67 #define EBO_FREQ 25000000 68 #endif 69 70 #ifndef ERTCO_FREQ 71 #define ERTCO_FREQ 32768 72 #endif 73 74 #ifndef IPLL_FREQ 75 #define IPLL_FREQ 100000000 76 #endif 77 78 #ifndef HIRC_FREQ 79 #define HIRC_FREQ IPO_FREQ 80 #endif 81 82 extern uint32_t SystemCoreClock; /*!< System Clock Frequency (Core Clock) */ 83 #ifdef PeripheralClock 84 #warning PeripheralClock define is being overidden. 85 #else 86 #define PeripheralClock (SystemCoreClock / 2) /*!< Peripheral Clock Frequency */ 87 #endif 88 89 /* 90 * Initialize the system 91 * 92 * @brief Setup the microcontroller system. 93 * Initialize the System and update the SystemCoreClock variable. 94 */ 95 void SystemInit(void); 96 97 /* 98 * Update SystemCoreClock variable 99 * 100 * @brief Updates the SystemCoreClock with current core Clock 101 * retrieved from CPU registers. 102 */ 103 void SystemCoreClockUpdate(void); 104 105 #ifdef __cplusplus 106 } 107 #endif 108 109 #endif // LIBRARIES_CMSIS_DEVICE_MAXIM_MAX78002_INCLUDE_SYSTEM_MAX78002_H_ 110