1 /*
2  * Copyright 2021-2022 NXP
3  *
4  * SPDX-License-Identifier: BSD-3-Clause
5  */
6 
7 #ifndef CLOCK_IP_SPECIFIC_H
8 #define CLOCK_IP_SPECIFIC_H
9 
10 /**
11 *   @file    Clock_Ip_Specific.h
12 *   @version    0.9.0
13 *
14 *   @brief   CLOCK IP specific header file.
15 *   @details CLOCK IP specific header file.
16 *
17 *   @addtogroup CLOCK_DRIVER Clock Ip Driver
18 *   @{
19 */
20 
21 #ifdef __cplusplus
22 extern "C"{
23 #endif
24 
25 
26 /*==================================================================================================
27 *                                          INCLUDE FILES
28 * 1) system and project includes
29 * 2) needed interfaces from external units
30 * 3) internal and external interfaces from this unit
31 ==================================================================================================*/
32 #include "Clock_Ip_Cfg_Defines.h"
33 #include "Mcal.h"
34 
35 #if defined(CLOCK_IP_DERIVATIVE_001)
36     #include "Clock_Ip_Derivative_001.h"
37 #endif
38 #if defined(CLOCK_IP_DERIVATIVE_002)
39     #include "Clock_Ip_Derivative_002.h"
40 #endif
41 
42 
43 
44 /*==================================================================================================
45                                SOURCE FILE VERSION INFORMATION
46 ==================================================================================================*/
47 #define CLOCK_IP_SPECIFIC_VENDOR_ID                       43
48 #define CLOCK_IP_SPECIFIC_AR_RELEASE_MAJOR_VERSION        4
49 #define CLOCK_IP_SPECIFIC_AR_RELEASE_MINOR_VERSION        7
50 #define CLOCK_IP_SPECIFIC_AR_RELEASE_REVISION_VERSION     0
51 #define CLOCK_IP_SPECIFIC_SW_MAJOR_VERSION                0
52 #define CLOCK_IP_SPECIFIC_SW_MINOR_VERSION                9
53 #define CLOCK_IP_SPECIFIC_SW_PATCH_VERSION                0
54 
55 /*==================================================================================================
56                                       FILE VERSION CHECKS
57 ==================================================================================================*/
58 /* Check if Clock_Ip_Specific.h file and Clock_Ip_Cfg_Defines.h file have same versions */
59 #if (CLOCK_IP_SPECIFIC_VENDOR_ID  != CLOCK_IP_CFG_DEFINES_VENDOR_ID)
60     #error "Clock_Ip_Specific.h and Clock_Ip_Cfg_Defines.h have different vendor IDs"
61 #endif
62 
63 /* Check if Clock_Ip_Specific.h file and Clock_Ip_Cfg_Defines.h file are of the same Autosar version */
64 #if ((CLOCK_IP_SPECIFIC_AR_RELEASE_MAJOR_VERSION    != CLOCK_IP_CFG_DEFINES_AR_RELEASE_MAJOR_VERSION) || \
65      (CLOCK_IP_SPECIFIC_AR_RELEASE_MINOR_VERSION    != CLOCK_IP_CFG_DEFINES_AR_RELEASE_MINOR_VERSION) || \
66      (CLOCK_IP_SPECIFIC_AR_RELEASE_REVISION_VERSION != CLOCK_IP_CFG_DEFINES_AR_RELEASE_REVISION_VERSION))
67     #error "AutoSar Version Numbers of Clock_Ip_Specific.h and Clock_Ip_Cfg_Defines.h are different"
68 #endif
69 
70 /* Check if Clock_Ip_Specific.h file and Clock_Ip_Cfg_Defines.h file are of the same Software version */
71 #if ((CLOCK_IP_SPECIFIC_SW_MAJOR_VERSION != CLOCK_IP_CFG_DEFINES_SW_MAJOR_VERSION) || \
72      (CLOCK_IP_SPECIFIC_SW_MINOR_VERSION != CLOCK_IP_CFG_DEFINES_SW_MINOR_VERSION) || \
73      (CLOCK_IP_SPECIFIC_SW_PATCH_VERSION != CLOCK_IP_CFG_DEFINES_SW_PATCH_VERSION))
74     #error "Software Version Numbers of Clock_Ip_Specific.h and Clock_Ip_Cfg_Defines.h are different"
75 #endif
76 
77 #if defined(CLOCK_IP_DERIVATIVE_001)
78     /* Check if Clock_Ip_Specific.h file and Clock_Ip_Derivative_001.h file have same versions */
79     #if (CLOCK_IP_SPECIFIC_VENDOR_ID  != CLOCK_IP_DERIVATIVE_001_VENDOR_ID)
80         #error "Clock_Ip_Specific.h and Clock_Ip_Derivative_001.h have different vendor IDs"
81     #endif
82 
83     /* Check if Clock_Ip_Specific.h file and Clock_Ip_Derivative_001.h file are of the same Autosar version */
84     #if ((CLOCK_IP_SPECIFIC_AR_RELEASE_MAJOR_VERSION    != CLOCK_IP_DERIVATIVE_001_AR_RELEASE_MAJOR_VERSION) || \
85          (CLOCK_IP_SPECIFIC_AR_RELEASE_MINOR_VERSION    != CLOCK_IP_DERIVATIVE_001_AR_RELEASE_MINOR_VERSION) || \
86          (CLOCK_IP_SPECIFIC_AR_RELEASE_REVISION_VERSION != CLOCK_IP_DERIVATIVE_001_AR_RELEASE_REVISION_VERSION))
87         #error "AutoSar Version Numbers of Clock_Ip_Specific.h and Clock_Ip_Derivative_001.h are different"
88     #endif
89 
90     /* Check if Clock_Ip_Specific.h file and Clock_Ip_Derivative_001.h file are of the same Software version */
91     #if ((CLOCK_IP_SPECIFIC_SW_MAJOR_VERSION != CLOCK_IP_DERIVATIVE_001_SW_MAJOR_VERSION) || \
92          (CLOCK_IP_SPECIFIC_SW_MINOR_VERSION != CLOCK_IP_DERIVATIVE_001_SW_MINOR_VERSION) || \
93          (CLOCK_IP_SPECIFIC_SW_PATCH_VERSION != CLOCK_IP_DERIVATIVE_001_SW_PATCH_VERSION))
94         #error "Software Version Numbers of Clock_Ip_Specific.h and Clock_Ip_Derivative_001.h are different"
95     #endif
96 #endif
97 
98 #if defined(CLOCK_IP_DERIVATIVE_002)
99     /* Check if Clock_Ip_Specific.h file and Clock_Ip_Derivative_002.h file have same versions */
100     #if (CLOCK_IP_SPECIFIC_VENDOR_ID  != CLOCK_IP_DERIVATIVE_002_VENDOR_ID)
101         #error "Clock_Ip_Specific.h and Clock_Ip_Derivative_002.h have different vendor IDs"
102     #endif
103 
104     /* Check if Clock_Ip_Specific.h file and Clock_Ip_Derivative_002.h file are of the same Autosar version */
105     #if ((CLOCK_IP_SPECIFIC_AR_RELEASE_MAJOR_VERSION    != CLOCK_IP_DERIVATIVE_002_AR_RELEASE_MAJOR_VERSION) || \
106          (CLOCK_IP_SPECIFIC_AR_RELEASE_MINOR_VERSION    != CLOCK_IP_DERIVATIVE_002_AR_RELEASE_MINOR_VERSION) || \
107          (CLOCK_IP_SPECIFIC_AR_RELEASE_REVISION_VERSION != CLOCK_IP_DERIVATIVE_002_AR_RELEASE_REVISION_VERSION))
108         #error "AutoSar Version Numbers of Clock_Ip_Specific.h and Clock_Ip_Derivative_002.h are different"
109     #endif
110 
111     /* Check if Clock_Ip_Specific.h file and Clock_Ip_Derivative_002.h file are of the same Software version */
112     #if ((CLOCK_IP_SPECIFIC_SW_MAJOR_VERSION != CLOCK_IP_DERIVATIVE_002_SW_MAJOR_VERSION) || \
113          (CLOCK_IP_SPECIFIC_SW_MINOR_VERSION != CLOCK_IP_DERIVATIVE_002_SW_MINOR_VERSION) || \
114          (CLOCK_IP_SPECIFIC_SW_PATCH_VERSION != CLOCK_IP_DERIVATIVE_002_SW_PATCH_VERSION))
115         #error "Software Version Numbers of Clock_Ip_Specific.h and Clock_Ip_Derivative_002.h are different"
116     #endif
117 #endif
118 
119 #ifndef DISABLE_MCAL_INTERMODULE_ASR_CHECK
120 /* Check if Clock_Ip_Specific.h file and Mcal.h file are of the same Autosar version */
121 #if ((CLOCK_IP_SPECIFIC_AR_RELEASE_MAJOR_VERSION    != MCAL_AR_RELEASE_MAJOR_VERSION) || \
122      (CLOCK_IP_SPECIFIC_AR_RELEASE_MINOR_VERSION    != MCAL_AR_RELEASE_MINOR_VERSION))
123     #error "AutoSar Version Numbers of Clock_Ip_Specific.h and Mcal.h are different"
124 #endif
125 #endif
126 /*==================================================================================================
127 *                                            CONSTANTS
128 ==================================================================================================*/
129 
130 /*==================================================================================================
131 *                                       DEFINES AND MACROS
132 ==================================================================================================*/
133 
134 #define CLOCK_IP_ALL_CALLBACKS_COUNT                                                   10U
135 #define CLOCK_IP_TRIGGER_VALUE               0xFFFFFFFFU              /* Trigger value. */
136 
137 #define CLOCK_IP_NUMBER_OF_HARDWARE_DFS                                                12U
138 #define CLOCK_IP_NUMBER_OF_HARDWARE_PLL                                                5U
139 
140 #define DFS_PORTSR_PORTSTAT_MASK                  (DFS_PORTSR_PORTSTAT5_MASK | DFS_PORTSR_PORTSTAT4_MASK | DFS_PORTSR_PORTSTAT3_MASK | DFS_PORTSR_PORTSTAT2_MASK | DFS_PORTSR_PORTSTAT1_MASK | DFS_PORTSR_PORTSTAT0_MASK)
141 #define DFS_PORTSR_PORTSTAT_SHIFT                 (DFS_PORTSR_PORTSTAT0_SHIFT)
142 
143 #define MC_ME_AE_TRANSITION_IS_ON_GOING            MC_ME_AE_GS_S_MTRANS_MASK
144 
145 #define CLOCK_IP_MC_CGM_MUX_MUX_DIV_COUNT                  11u
146 #define CLOCK_IP_MC_CGM_PCFS_COUNT                         64u
147 #define CLOCK_IP_PERIPHERALS_NO                            64u
148 
149 #define CLOCK_IP_MC_CGM_INSTANCES_COUNT      10U
150 #define CLOCK_IP_MC_CGM_MUXS_COUNT           15U
151 #define CLOCK_IP_XOSC_INSTANCES_ARRAY_SIZE   1U
152 #define CLOCK_IP_PLL_INSTANCES_ARRAY_SIZE    3U
153 #define CLOCK_IP_LFASTPLL_INSTANCES_ARRAY_SIZE    2U
154 #define CLOCK_IP_DFS_INSTANCES_ARRAY_SIZE    2U
155 #define CLOCK_IP_CMU_INSTANCES_ARRAY_SIZE    27U
156 #define CLOCK_IP_PERIPHERAL_GROUPS_COUNT     7U
157 #define CLOCK_IP_CMU_INFO_SIZE               28U
158 #define CLOCK_IP_GATE_INFO_SIZE              101U
159 #define CLOCK_IP_EXTENSIONS_SIZE             133U
160 #define CLOCK_IP_GPR_INSTANCES_COUNT         6U
161 #define CLOCK_IP_CLKOUTS_COUNT               5U
162 
163 #define MC_CGM_MUX_DC_DE_MASK                MC_CGM_MUX_0_DC_0_DE_MASK
164 #define MC_CGM_MUX_DC_DE_SHIFT               MC_CGM_MUX_0_DC_0_DE_SHIFT
165 #define MC_CGM_MUX_CSC_SAFE_SW_MASK          MC_CGM_MUX_0_CSS_SAFE_SW_MASK
166 #define MC_CGM_MUX_CSC_CLK_SW_MASK           MC_CGM_MUX_0_CSC_CLK_SW_MASK
167 #define MC_CGM_MUX_CSC_RAMPUP_MASK           MC_CGM_MUX_0_CSC_RAMPUP_MASK
168 #define MC_CGM_MUX_CSC_RAMPDOWN_MASK         MC_CGM_MUX_0_CSC_RAMPDOWN_MASK
169 #define MC_CGM_MUX_CSS_SWIP_MASK             MC_CGM_MUX_0_CSS_SWIP_MASK
170 #define MC_CGM_MUX_CSS_SWIP_IN_PROGRESS      MC_CGM_MUX_CSS_SWIP_MASK
171 #define MC_CGM_MUX_CSS_SWTRG_MASK            MC_CGM_MUX_0_CSS_SWTRG_MASK
172 #define MC_CGM_MUX_CSS_SWTRG_SHIFT           MC_CGM_MUX_0_CSS_SWTRG_SHIFT
173 #define CLOCK_IP_MC_CGM_MUX_CSS_SWTRG_SUCCEEDED       1U
174 #define MC_CGM_MUX_CSS_CLK_SW_MASK           MC_CGM_MUX_0_CSS_CLK_SW_MASK
175 #define CLOCK_IP_MC_CGM_MUX_CSS_CLK_SW_NOT_REQUESTED  0U
176 
177 #define MC_CGM_MUX_CSC_CG_MASK               MC_CGM_MUX_4_CSC_CG_MASK
178 #define MC_CGM_MUX_CSC_FCG_MASK              MC_CGM_MUX_4_CSC_FCG_MASK
179 #define MC_CGM_MUX_CSS_CS_MASK               MC_CGM_MUX_4_CSS_CS_MASK
180 #define MC_CGM_MUX_CSS_CS_TRANSPARENT        MC_CGM_MUX_CSS_CS_MASK
181 
182 #define MC_CGM_MUX_DIV_UPD_STAT_DIV_STAT_MASK MC_CGM_MUX_0_DIV_UPD_STAT_DIV_STAT_MASK
183 #define MC_CGM_MUX_DIV_UPD_STAT_DIV_STAT_PENDING MC_CGM_MUX_DIV_UPD_STAT_DIV_STAT_MASK
184 #define MC_CGM_MUX_DIV_TRIG_CTRL_TCTL_MASK   MC_CGM_MUX_7_DIV_TRIG_CTRL_TCTL_MASK
185 #define MC_CGM_MUX_DIV_TRIG_TRIGGER(x)       MC_CGM_MUX_7_DIV_TRIG_CTRL_TCTL(x)
186 #define MC_CGM_MUX_DIV_TRIG_CTRL_COMMON_TRIGGER_DIVIDER_UPDATE   MC_CGM_MUX_DIV_TRIG_CTRL_TCTL_MASK
187 
188 
189 #define MC_CGM_PCFS_DIVC_INIT(x)             MC_CGM_PCFS_DIVC12_INIT(x)
190 #define MC_CGM_PCFS_DIVC_RATE(x)             MC_CGM_PCFS_DIVC12_RATE(x)
191 #define MC_CGM_PCFS_DIVE_DIVE(x)             MC_CGM_PCFS_DIVE12_DIVE(x)
192 #define MC_CGM_PCFS_DIVS_DIVS(x)             MC_CGM_PCFS_DIVS12_DIVS(x)
193 
194 #define CLOCK_IP_CMU_FREQUENCY_CHECK_ENABLED          CMU_FC_GCR_FCE_MASK
195 #define CLOCK_IP_CMU_FREQUENCY_CHECK_STOPPED          0U
196 #define CLOCK_IP_CMU_ISR_MASK                         3U
197 
198 #define GPR_PCTL_MASK                        GPR3_PCTL_EDMACEPCTL_PCTL_MASK
199 
200 #define CLOCK_IP_DIVIDER_HAVE_DIV_FMT STD_ON
201 /*==================================================================================================
202 *                                              ENUMS
203 ==================================================================================================*/
204 
205 /*==================================================================================================
206 *                                  STRUCTURES AND OTHER TYPEDEFS
207 ==================================================================================================*/
208 typedef struct {
209   uint32 CSC;                                      /**< Clock Mux Select Control Register */
210   const  uint32 CSS;                               /**< Clock Mux Select Status Register */
211   uint32 Divider[CLOCK_IP_MC_CGM_MUX_MUX_DIV_COUNT];        /**< Clock Divider Control Register */
212   uint32 MUX_DIV_TRIG_CTRL;                        /**< Clock Divider trigger Control Register */
213   uint32 MUX_DIV_TRIG;                             /**< Clock Divider trigger Register */
214   const  uint32 MUX_DIV_UPD_STAT;                  /**< Clock Divider Update Status Register */
215 
216 }volatile Clock_Ip_CgmMuxType;
217 
218 typedef struct {
219 
220     uint32 PCFS_SDUR;                           /**< PCFS Step Duration, offset: 0x0 */
221     struct {                                    /* offset: 0x4, array step: 0xC */
222       uint32 DIVC;                              /**< PCFS Divider Change 12 Register, array offset: 0x4, array step: 0xC */
223       uint32 DIVE;                              /**< PCFS Divider End 12 Register, array offset: 0x8, array step: 0xC */
224       uint32 DIVS;                              /**< PCFS Divider Start 12 Register, array offset: 0xC, array step: 0xC */
225     } PCFS[CLOCK_IP_MC_CGM_PCFS_COUNT];
226 
227 }Clock_Ip_CgmPcfsType;
228 
229 typedef struct {
230     volatile uint32 PCTL[CLOCK_IP_PERIPHERALS_NO];
231 }Clock_Ip_GprClockControlEnable_Type;
232 
233 #if defined(CLOCK_IP_HAS_SYSTEM_CLK)
234 /** MC_ME_AE - Register Layout Typedef */
235 typedef struct {
236     uint32_t POWER_MODE_CONFIG[3u];                           /**< Power Mode Configuration, offset: 0x28, 0x2C and 0x30 */
237 }volatile Clock_Ip_SystemClockType;
238 #endif
239 
240 /** XOSC - Register Layout Typedef */
241 typedef struct {
242     uint32 CTRL;                        /**< XOSC Control Register, offset: 0x0 */
243     const  uint32 STAT;                        /**< Oscillator Status Register, offset: 0x4 */
244 }volatile Clock_Ip_ExtOSCType;
245 
246 /** CMU - Register Layout Typedef */
247 typedef struct {
248     uint32 GCR;                               /**< Global Configuration Register, offset: 0x0 */
249     uint32 RCCR;                              /**< Reference Count Configuration Register, offset: 0x4 */
250     uint32 HTCR;                              /**< High Threshold Configuration Register, offset: 0x8 */
251     uint32 LTCR;                              /**< Low Threshold Configuration Register, offset: 0xC */
252     volatile uint32 SR;                       /**< Status Register, offset: 0x10 */
253     uint32 IER;                               /**< Interrupt Enable Register, offset: 0x14 */
254 
255 }Clock_Ip_ClockMonitorType;
256 
257 typedef struct{
258 
259     Clock_Ip_NameType Name;       /* Name of the clock that can be monitored/supports cmu (clock monitor) */
260     Clock_Ip_NameType Reference;  /* Name of the reference clock */
261     Clock_Ip_NameType Bus;        /* Name of the bus clock */
262 
263     Clock_Ip_ClockMonitorType* CmuInstance;
264 
265 }Clock_Ip_CmuInfoType;
266 
267 typedef struct
268 {
269     uint8 GroupIndex;
270     uint8 GateIndex;
271     uint8 GateBitField;
272 
273 }Clock_Ip_GateInfoType;
274 
275 typedef struct
276 {
277     uint32 SelectorValueMask;
278     uint32 SelectorValueShift;
279     uint32 DividerValueMask;
280     uint32 DividerValueShift;
281 
282 }Clock_Ip_ClockExtensionType;
283 
284 typedef struct
285 {
286     PLLDIG_Type* PllInstance;
287     uint8 DivsNo;
288 
289 }Clock_Ip_PllType;
290 
291 typedef struct
292 {
293     LFAST_Type* PllInstance;
294 
295 }Clock_Ip_LfastPllType;
296 /*==================================================================================================
297 *                                  GLOBAL VARIABLE DECLARATIONS
298 ==================================================================================================*/
299 
300 /* Clock start constant section data */
301 #define MCU_START_SEC_CONST_UNSPECIFIED
302 #include "Mcu_MemMap.h"
303 
304 extern Clock_Ip_CgmMuxType* const Clock_Ip_apxCgm[CLOCK_IP_MC_CGM_INSTANCES_COUNT][CLOCK_IP_MC_CGM_MUXS_COUNT];
305 extern volatile Clock_Ip_CgmPcfsType* const Clock_Ip_apxCgmPcfs[CLOCK_IP_MC_CGM_INSTANCES_COUNT];
306 extern Clock_Ip_ExtOSCType* const Clock_Ip_apxXosc[CLOCK_IP_XOSC_INSTANCES_ARRAY_SIZE];
307 extern Clock_Ip_PllType const Clock_Ip_apxPll[CLOCK_IP_PLL_INSTANCES_ARRAY_SIZE];
308 extern Clock_Ip_LfastPllType const Clock_Ip_apxLfastPll[CLOCK_IP_LFASTPLL_INSTANCES_ARRAY_SIZE];
309 extern DFS_Type* const Clock_Ip_apxDfs[CLOCK_IP_DFS_INSTANCES_ARRAY_SIZE];
310 extern Clock_Ip_ClockMonitorType * const Clock_Ip_apxCmu[CLOCK_IP_CMU_INSTANCES_ARRAY_SIZE];
311 extern Clock_Ip_NameType const Clock_Ip_aeCmuNames[CLOCK_IP_CMU_INSTANCES_ARRAY_SIZE];
312 
313 extern Clock_Ip_GprClockControlEnable_Type* const Clock_Ip_apxGprClockControlEnable[CLOCK_IP_PERIPHERAL_GROUPS_COUNT];
314 
315 extern const Clock_Ip_CmuInfoType Clock_Ip_axCmuInfo[CLOCK_IP_CMU_INFO_SIZE];
316 
317 extern const Clock_Ip_GateInfoType Clock_Ip_axGateInfo[CLOCK_IP_GATE_INFO_SIZE];
318 
319 extern const Clock_Ip_ClockExtensionType Clock_Ip_axFeatureExtensions[CLOCK_IP_EXTENSIONS_SIZE];
320 
321 #if defined(CLOCK_IP_HAS_SYSTEM_CLK)
322 extern Clock_Ip_SystemClockType* const Clock_Ip_apxSystemClock;
323 #endif
324 
325 extern volatile uint32* const Clock_Ip_apxGprClkout[CLOCK_IP_GPR_INSTANCES_COUNT][CLOCK_IP_CLKOUTS_COUNT];
326 
327 /* Clock stop constant section data */
328 #define MCU_STOP_SEC_CONST_UNSPECIFIED
329 #include "Mcu_MemMap.h"
330 
331 /* Clock start constant section data */
332 #define MCU_START_SEC_CONST_8
333 #include "Mcu_MemMap.h"
334 
335 extern const uint8 Clock_Ip_au8SoftwareMuxResetValue[CLOCK_IP_FEATURE_NAMES_NO];
336 
337 /* Clock stop constant section data */
338 #define MCU_STOP_SEC_CONST_8
339 #include "Mcu_MemMap.h"
340 
341 
342 /* Clock start constant section data */
343 #define MCU_START_SEC_CONST_16
344 #include "Mcu_MemMap.h"
345 
346 extern const uint16 Clock_Ip_au16SelectorEntryHardwareValue[CLOCK_IP_FEATURE_NAMES_NO];
347 extern const uint16 Clock_Ip_au16SelectorEntryClkoutHardwareValue[CLOCK_IP_FEATURE_NAMES_NO];
348 #ifdef CLOCK_IP_MC_ME_AE_GS_S_SYSCLK
349 extern const uint16 Clock_Ip_au16SelectorEntryAeHardwareValue[CLOCK_IP_FEATURE_NAMES_NO];
350 #endif
351 /* Clock stop constant section data */
352 #define MCU_STOP_SEC_CONST_16
353 #include "Mcu_MemMap.h"
354 
355 
356 
357 /*==================================================================================================
358 *                                    FUNCTION PROTOTYPES
359 ==================================================================================================*/
360 
361 /* Clock start section code */
362 #define MCU_START_SEC_CODE
363 
364 #include "Mcu_MemMap.h"
365 
366 #if (defined(CLOCK_IP_ENABLE_USER_MODE_SUPPORT))
367   #if (STD_ON == CLOCK_IP_ENABLE_USER_MODE_SUPPORT)
368     #if (defined(MCAL_CMU_AE_REG_PROT_AVAILABLE))
369       #if(STD_ON == MCAL_CMU_AE_REG_PROT_AVAILABLE)
370 void Clock_Ip_SpecificSetUserAccessAllowed(void);
371       #endif
372     #endif /* MCAL_CMU_AE_REG_PROT_AVAILABLE */
373   #endif
374 #endif /* CLOCK_IP_ENABLE_USER_MODE_SUPPORT */
375 void Clock_Ip_McMeEnterKey(void);
376 
377 /* Clock stop section code */
378 #define MCU_STOP_SEC_CODE
379 
380 #include "Mcu_MemMap.h"
381 
382 #ifdef __cplusplus
383 }
384 #endif
385 
386 /** @} */
387 
388 #endif /* CLOCK_IP_SPECIFIC_H */
389 
390