MAX32665 Peripheral Driver API
Peripheral Driver API for the MAX32665
system_max32665.h
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_MAX32665_INCLUDE_SYSTEM_MAX32665_H_
22#define LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32665_INCLUDE_SYSTEM_MAX32665_H_
23
24#ifdef __cplusplus
25extern "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 MAX32665, replace with HIRC_FREQ!
37#define HIRC_FREQ CRYPTO_FREQ
38#endif
39
40/* NOTE: HIRC was previously named CRYPTO */
41#ifndef HIRC_FREQ
42#define HIRC_FREQ 60000000
43#endif
44
45/* NOTE: This is the nominal value for LIRC8. The actual value may vary from chip to chip.
46 Update if use of this oscillator requires precise timing.*/
47/* NOTE: LIRC8 was previously named NANORING */
48#ifndef LIRC8_FREQ
49#define LIRC8_FREQ 8000
50#endif
51
52#ifndef HIRC96_FREQ
53#define HIRC96_FREQ 96000000
54#endif
55
56#ifndef HIRC8_FREQ
57#define HIRC8_FREQ 7372800
58#endif
59
60/* NOTE: ERFO_FREQ (32MHz) needs to be defined by user based on the clock they supply */
61#ifndef ERFO_FREQ
62#define ERFO_FREQ 32000000
63#endif
64
65#ifndef XTAL32M_FREQ
66#define XTAL32M_FREQ 32000000
67#endif
68
69#ifndef XTAL32K_FREQ
70#define XTAL32K_FREQ 32768
71#endif
72
73extern uint32_t SystemCoreClock;
74#ifndef PeripheralClock
75#define PeripheralClock (SystemCoreClock / 2)
76#endif
77
78/*
79 * Initialize the system
80 *
81 * @brief Setup the microcontroller system.
82 * Initialize the System and update the SystemCoreClock variable.
83 */
84void SystemInit(void);
85
86/*
87 * Update SystemCoreClock variable
88 *
89 * @brief Updates the SystemCoreClock with current core Clock
90 * retrieved from cpu registers.
91 */
92void SystemCoreClockUpdate(void);
93
94#ifdef __cplusplus
95}
96#endif
97
98#endif // LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32665_INCLUDE_SYSTEM_MAX32665_H_