1 /*
2  * Copyright (c) 2024 Nordic Semiconductor ASA
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  */
6 #include <stdint.h>
7 
8 #if defined(NRF5340_XXAA_NETWORK) || defined(NRF52833) \
9 	|| defined(NRF54L15_XXAA)
10 
11 #define __SYSTEM_CLOCK_DEFAULT      (64000000UL)
12 
13 __attribute__((weak)) uint32_t SystemCoreClock = __SYSTEM_CLOCK_DEFAULT;
14 
SystemCoreClockUpdate(void)15 __attribute__((weak)) void SystemCoreClockUpdate(void)
16 {
17 	SystemCoreClock = __SYSTEM_CLOCK_DEFAULT;
18 }
19 
20 #elif defined(NRF5340_XXAA_APPLICATION)
21 
22 #include "nrfx.h"
23 
24 /* NRF5340 application core uses a variable System Clock Frequency that starts at 64MHz */
25 #define __SYSTEM_CLOCK_MAX      (128000000UL)
26 #define __SYSTEM_CLOCK_DEFAULT  ( 64000000UL)
27 
28 __attribute__((weak)) uint32_t SystemCoreClock = __SYSTEM_CLOCK_DEFAULT;
29 
SystemCoreClockUpdate(void)30 __attribute__((weak)) void SystemCoreClockUpdate(void)
31 {
32 	SystemCoreClock = __SYSTEM_CLOCK_MAX >> (NRF_CLOCK_S->HFCLKCTRL & (CLOCK_HFCLKCTRL_HCLK_Msk));
33 }
34 
35 #endif
36