1 /*
2  * Copyright 2020-2023 NXP
3  *
4  * SPDX-License-Identifier: BSD-3-Clause
5  */
6 
7 #ifndef CLOCK_IP_TRUSTEDFUNCTIONS_H
8 #define CLOCK_IP_TRUSTEDFUNCTIONS_H
9 
10 /**
11 *   @file    Clock_Ip_TrustedFunctions.h
12 *   @version    2.0.0
13 *
14 *   @brief   CLOCK IP type header file.
15 *   @details CLOCK IP type header file.
16 
17 *   @addtogroup CLOCK_DRIVER Clock Ip Driver
18 *   @{
19 */
20 
21 #if defined(__cplusplus)
22 extern "C"{
23 #endif
24 /*==================================================================================================
25 *                                          INCLUDE FILES
26 * 1) system and project includes
27 * 2) needed interfaces from external units
28 * 3) internal and external interfaces from this unit
29 ==================================================================================================*/
30 #include "StandardTypes.h"
31 #include "Clock_Ip_Types.h"
32 #include "Clock_Ip_Specific.h"
33 /*==================================================================================================
34                                SOURCE FILE VERSION INFORMATION
35 ==================================================================================================*/
36 #define CLOCK_IP_TRUSTEDFUNCTIONS_VENDOR_ID                       43
37 #define CLOCK_IP_TRUSTEDFUNCTIONS_AR_RELEASE_MAJOR_VERSION        4
38 #define CLOCK_IP_TRUSTEDFUNCTIONS_AR_RELEASE_MINOR_VERSION        7
39 #define CLOCK_IP_TRUSTEDFUNCTIONS_AR_RELEASE_REVISION_VERSION     0
40 #define CLOCK_IP_TRUSTEDFUNCTIONS_SW_MAJOR_VERSION                2
41 #define CLOCK_IP_TRUSTEDFUNCTIONS_SW_MINOR_VERSION                0
42 #define CLOCK_IP_TRUSTEDFUNCTIONS_SW_PATCH_VERSION                0
43 
44 /*==================================================================================================
45                                       FILE VERSION CHECKS
46 ==================================================================================================*/
47 #ifndef DISABLE_MCAL_INTERMODULE_ASR_CHECK
48 /* Check if Clock_Ip_TrustedFunctions.h file and StandardTypes.h file are of the same Autosar version */
49 #if ((CLOCK_IP_TRUSTEDFUNCTIONS_AR_RELEASE_MAJOR_VERSION    != STD_AR_RELEASE_MAJOR_VERSION) || \
50      (CLOCK_IP_TRUSTEDFUNCTIONS_AR_RELEASE_MINOR_VERSION    != STD_AR_RELEASE_MINOR_VERSION))
51     #error "AutoSar Version Numbers of Clock_Ip_TrustedFunctions.h and StandardTypes.h are different"
52 #endif
53 #endif
54 
55 /* Check if Clock_Ip_TrustedFunctions.h file and Clock_Ip_Types.h file have same versions */
56 #if (CLOCK_IP_TRUSTEDFUNCTIONS_VENDOR_ID  != CLOCK_IP_TYPES_VENDOR_ID)
57     #error "Clock_Ip_TrustedFunctions.h and Clock_Ip_Types.h have different vendor IDs"
58 #endif
59 
60 /* Check if Clock_Ip_TrustedFunctions.h file and Clock_Ip_Types.h file are of the same Autosar version */
61 #if ((CLOCK_IP_TRUSTEDFUNCTIONS_AR_RELEASE_MAJOR_VERSION    != CLOCK_IP_TYPES_AR_RELEASE_MAJOR_VERSION) || \
62      (CLOCK_IP_TRUSTEDFUNCTIONS_AR_RELEASE_MINOR_VERSION    != CLOCK_IP_TYPES_AR_RELEASE_MINOR_VERSION) || \
63      (CLOCK_IP_TRUSTEDFUNCTIONS_AR_RELEASE_REVISION_VERSION != CLOCK_IP_TYPES_AR_RELEASE_REVISION_VERSION))
64     #error "AutoSar Version Numbers of Clock_Ip_TrustedFunctions.h and Clock_Ip_Types.h are different"
65 #endif
66 
67 /* Check if Clock_Ip_TrustedFunctions.h file and Clock_Ip_Types.h file are of the same Software version */
68 #if ((CLOCK_IP_TRUSTEDFUNCTIONS_SW_MAJOR_VERSION != CLOCK_IP_TYPES_SW_MAJOR_VERSION) || \
69      (CLOCK_IP_TRUSTEDFUNCTIONS_SW_MINOR_VERSION != CLOCK_IP_TYPES_SW_MINOR_VERSION) || \
70      (CLOCK_IP_TRUSTEDFUNCTIONS_SW_PATCH_VERSION != CLOCK_IP_TYPES_SW_PATCH_VERSION))
71     #error "Software Version Numbers of Clock_Ip_TrustedFunctions.h and Clock_Ip_Types.h are different"
72 #endif
73 
74 
75 /* Check if Clock_Ip_TrustedFunctions.h file and Clock_Ip_Specific.h file have same versions */
76 #if (CLOCK_IP_TRUSTEDFUNCTIONS_VENDOR_ID  != CLOCK_IP_SPECIFIC_VENDOR_ID)
77     #error "Clock_Ip_TrustedFunctions.h and Clock_Ip_Specific.h have different vendor IDs"
78 #endif
79 
80 /* Check if Clock_Ip_TrustedFunctions.h file and Clock_Ip_Specific.h file are of the same Autosar version */
81 #if ((CLOCK_IP_TRUSTEDFUNCTIONS_AR_RELEASE_MAJOR_VERSION    != CLOCK_IP_SPECIFIC_AR_RELEASE_MAJOR_VERSION) || \
82      (CLOCK_IP_TRUSTEDFUNCTIONS_AR_RELEASE_MINOR_VERSION    != CLOCK_IP_SPECIFIC_AR_RELEASE_MINOR_VERSION) || \
83      (CLOCK_IP_TRUSTEDFUNCTIONS_AR_RELEASE_REVISION_VERSION != CLOCK_IP_SPECIFIC_AR_RELEASE_REVISION_VERSION))
84     #error "AutoSar Version Numbers of Clock_Ip_TrustedFunctions.h and Clock_Ip_Specific.h are different"
85 #endif
86 
87 /* Check if Clock_Ip_TrustedFunctions.h file and Clock_Ip_Specific.h file are of the same Software version */
88 #if ((CLOCK_IP_TRUSTEDFUNCTIONS_SW_MAJOR_VERSION != CLOCK_IP_SPECIFIC_SW_MAJOR_VERSION) || \
89      (CLOCK_IP_TRUSTEDFUNCTIONS_SW_MINOR_VERSION != CLOCK_IP_SPECIFIC_SW_MINOR_VERSION) || \
90      (CLOCK_IP_TRUSTEDFUNCTIONS_SW_PATCH_VERSION != CLOCK_IP_SPECIFIC_SW_PATCH_VERSION))
91     #error "Software Version Numbers of Clock_Ip_TrustedFunctions.h and Clock_Ip_Specific.h are different"
92 #endif
93 
94 
95 /*==================================================================================================
96 *                                            CONSTANTS
97 ==================================================================================================*/
98 
99 /*==================================================================================================
100 *                                       DEFINES AND MACROS
101 ==================================================================================================*/
102 
103 /*==================================================================================================
104 *                                              ENUMS
105 ==================================================================================================*/
106 
107 /*==================================================================================================
108 *                                  STRUCTURES AND OTHER TYPEDEFS
109 ==================================================================================================*/
110 
111 /*==================================================================================================
112 *                                  GLOBAL VARIABLE DECLARATIONS
113 ==================================================================================================*/
114 
115 
116 /*==================================================================================================
117 *                                       FUNCTION PROTOTYPES
118 ==================================================================================================*/
119 
120 
121 #if (defined(CLOCK_IP_ENABLE_USER_MODE_SUPPORT))
122   #if (STD_ON == CLOCK_IP_ENABLE_USER_MODE_SUPPORT)
123 
124 /* Clock start section code */
125 #define MCU_START_SEC_CODE
126 #include "Mcu_MemMap.h"
127 
128 #ifdef CLOCK_IP_SCG_ASYNC_DIV1
129 /**
130  * @brief        Write Config to SCG_SIRCDIV1 register
131  *
132  * @param        Config - pointer to configuration of SIRC divider 1
133  * @return       None
134  *
135  */
136 extern void Clock_Ip_SetScgAsyncDiv1_TrustedCall(Clock_Ip_DividerConfigType const* Config);
137 #endif
138 
139 #ifdef CLOCK_IP_SCG_ASYNC_DIV2
140 /**
141  * @brief        Write Config to SCG_SIRCDIV2 register
142  *
143  * @param        Config - pointer to configuration of SIRC divider 2
144  * @return       None
145  *
146  */
147 extern void Clock_Ip_SetScgAsyncDiv2_TrustedCall(Clock_Ip_DividerConfigType const* Config);
148 #endif
149 
150 #ifdef CLOCK_IP_SCG_DIVCORE_RUN
151 /**
152  * @brief        Write Config to SCG_RCCR register
153  *
154  * @param        Config - pointer to configuration of DIVCORE value in run mode
155  * @return       None
156  *
157  */
158 extern void Clock_Ip_SetScgRunDivcore_TrustedCall(Clock_Ip_DividerConfigType const* Config);
159 #endif
160 
161 #ifdef CLOCK_IP_SCG_DIVBUS_RUN
162 /**
163  * @brief        Write Config to SCG_RCCR register
164  *
165  * @param        Config - pointer to configuration of DIVBUS value in run mode
166  * @return       None
167  *
168  */
169 extern void Clock_Ip_SetScgRunDivbus_TrustedCall(Clock_Ip_DividerConfigType const* Config);
170 #endif
171 
172 #ifdef CLOCK_IP_SCG_DIVSLOW_RUN
173 /**
174  * @brief        Write Config to SCG_RCCR register
175  *
176  * @param        Config - pointer to configuration of DIVSLOW value in run mode
177  * @return       None
178  *
179  */
180 extern void Clock_Ip_SetScgRunDivslow_TrustedCall(Clock_Ip_DividerConfigType const* Config);
181 #endif
182 
183 #ifdef CLOCK_IP_SCG_DIVCORE_VLPR
184 /**
185  * @brief        Write Config to SCG_VCCR register
186  *
187  * @param        Config - pointer to configuration of DIVCORE value in VLPR mode
188  * @return       None
189  *
190  */
191 extern void Clock_Ip_SetScgVlprDivcore_TrustedCall(Clock_Ip_DividerConfigType const* Config);
192 #endif
193 
194 #ifdef CLOCK_IP_SCG_DIVBUS_VLPR
195 /**
196  * @brief        Write Config to SCG_VCCR register
197  *
198  * @param        Config - pointer to configuration of DIVBUS value in VLPR mode
199  * @return       None
200  *
201  */
202 extern void Clock_Ip_SetScgVlprDivbus_TrustedCall(Clock_Ip_DividerConfigType const* Config);
203 #endif
204 
205 #ifdef CLOCK_IP_SCG_DIVSLOW_VLPR
206 /**
207  * @brief        Write Config to SCG_VCCR register
208  *
209  * @param        Config - pointer to configuration of DIVSLOW value in VLPR mode
210  * @return       None
211  *
212  */
213 extern void Clock_Ip_SetScgVlprDivslow_TrustedCall(Clock_Ip_DividerConfigType const* Config);
214 #endif
215 
216 
217 #ifdef CLOCK_IP_SCG_DIVCORE_HSRUN
218 /**
219  * @brief        Write Config to SCG_HCCR register
220  *
221  * @param        Config - pointer to configuration of DIVCORE value in HSRUN mode
222  * @return       None
223  *
224  */
225 extern void Clock_Ip_SetScgHsrunDivcore_TrustedCall(Clock_Ip_DividerConfigType const* Config);
226 #endif
227 
228 #ifdef CLOCK_IP_SCG_DIVBUS_HSRUN
229 /**
230  * @brief        Write Config to SCG_HCCR register
231  *
232  * @param        Config - pointer to configuration of DIVBUS value in HSRUN mode
233  * @return       None
234  *
235  */
236 extern void Clock_Ip_SetScgHsrunDivbus_TrustedCall(Clock_Ip_DividerConfigType const* Config);
237 #endif
238 
239 #ifdef CLOCK_IP_SCG_DIVSLOW_HSRUN
240 /**
241  * @brief        Write Config to SCG_HCCR register
242  *
243  * @param        Config - pointer to configuration of DIVSLOW value in HSRUN mode
244  * @return       None
245  *
246  */
247 extern void Clock_Ip_SetScgHsrunDivslow_TrustedCall(Clock_Ip_DividerConfigType const* Config);
248 #endif
249 
250 #ifdef CLOCK_IP_SIM_CLKOUT_DIV
251 /**
252  * @brief        Write Config to IP_SIM::CHIPCTL register
253  *
254  * @param        Config - pointer to configuration of divider value of CLKOUT0_CLK
255  * @return       None
256  *
257  */
258 extern void Clock_Ip_SetSimClkoutDiv_TrustedCall(Clock_Ip_DividerConfigType const *Config);
259 #endif
260 
261 #ifdef CLOCK_IP_PCC_PCD_FRAC
262 /**
263  * @brief        Write Config to PCC register
264  *
265  * @param        Config - pointer to configuration of divider value PCC pheripheral clock
266  * @return       None
267  *
268  */
269 extern void Clock_Ip_SetPccPcdDivFrac_TrustedCall(Clock_Ip_DividerConfigType const* Config);
270 #endif
271 
272 #ifdef CLOCK_IP_SIM_TRACE_DIV_MUL
273 /**
274  * @brief        Write Config to IP_SIM::CLKDIV4 register
275  *
276  * @param        Config - pointer to configuration of divider value TRACE_CLK
277  * @return       None
278  *
279  */
280 extern void Clock_Ip_SetSimTraceDivMul_TrustedCall(Clock_Ip_DividerConfigType const* Config);
281 #endif
282 
283 #ifdef CLOCK_IP_SOSC_ENABLE
284 /**
285  * @brief        Reset IP_SCG::SOSCCSR register
286  *
287  * @param        Config  - can be NULL_PTR
288  * @return       None
289  *
290  */
291 extern void Clock_Ip_ResetSOSC_TrustedCall(Clock_Ip_XoscConfigType const* Config);
292 
293 /**
294  * @brief        Write Config of SOSC to register
295  *
296  * @param        Config - pointer to configuration of SOSC
297  * @return       None
298  *
299  */
300 extern void Clock_Ip_SetSOSC_TrustedCall(Clock_Ip_XoscConfigType const* Config);
301 
302 /**
303  * @brief        Disabele SOSC
304  *
305  * @param        Config
306  * @return       None
307  *
308  */
309 extern void Clock_Ip_DisableSOSC_TrustedCall(Clock_Ip_NameType XoscName);
310 
311 /**
312  * @brief        Enable SOSC
313  *
314  * @param        Config
315  * @return       None
316  *
317  */
318 extern void Clock_Ip_EnableSOSC_TrustedCall(Clock_Ip_XoscConfigType const* Config);
319 #endif
320 
321 #ifdef CLOCK_IP_SIM_LPO1K_ENABLE
322 /**
323  * @brief        Set gate of LPO1K_CLK
324  *
325  * @param        Config- pointer to confguration of LPO1K_CLK
326  * @return       None
327  *
328  */
329 extern void Clock_Ip_ClockSetSimLPO1KEnable_TrustedCall(Clock_Ip_GateConfigType const* Config);
330 #endif
331 
332 #ifdef CLOCK_IP_SIM_LPO32K_ENABLE
333 /**
334  * @brief        Set gate of LPO3K_CLK
335  *
336  * @param        Config- pointer to confguration of LPO3K_CLK
337  * @return       None
338  *
339  */
340 extern void Clock_Ip_ClockSetSimLPO32KEnable_TrustedCall(Clock_Ip_GateConfigType const* Config);
341 #endif
342 
343 
344 #ifdef CLOCK_IP_SIM_CLKOUT_ENABLE
345 /**
346  * @brief        Set gate of CLKOUT_CLK
347  *
348  * @param        Config- pointer to confguration of CLKOUT_CLK
349  * @return       None
350  *
351  */
352 extern void Clock_Ip_ClockSetSimClkoutEnable_TrustedCall(Clock_Ip_GateConfigType const* Config);
353 #endif
354 
355 
356 #ifdef CLOCK_IP_PCC_CGC_ENABLE
357 /**
358  * @brief        Set gate of PCC peripheral
359  *
360  * @param        Config- pointer to confguration of PCC pheripheral clock
361  * @return       None
362  *
363  */
364 extern void Clock_Ip_ClockSetPccCgcEnable_TrustedCall(Clock_Ip_GateConfigType const* Config);
365 #endif
366 
367 #ifdef CLOCK_IP_SIM_PLATCGC_CGC
368 /**
369  * @brief        Set gate of CLOCK_IP_SIM_PLATCGC_CGC clock
370  *
371  * @param        Config- pointer to confguration of CLOCK_IP_SIM_PLATCGC_CGC clock
372  * @return       None
373  *
374  */
375 extern void Clock_Ip_ClockSetSimGate_TrustedCall(Clock_Ip_GateConfigType const* Config);
376 #endif
377 
378 #ifdef CLOCK_IP_SIM_TRACE_ENABLE
379 /**
380  * @brief        Set gate of TRACE_CLK
381  *
382  * @param        Config- pointer to confguration of TRACE_CLK
383  * @return       None
384  *
385  */
386 extern void Clock_Ip_ClockSetSimTraceEnable_TrustedCall(Clock_Ip_GateConfigType const* Config);
387 #endif
388 
389 #ifdef CLOCK_IP_SIRC_ENABLE
390 /**
391  * @brief        Write Config to SIRC register
392  *
393  * @param        Config- pointer to confguration of SIRC
394  * @return       None
395  *
396  */
397 extern void Clock_Ip_SetSirc_TrustedCall(Clock_Ip_IrcoscConfigType const* Config);
398 
399 /**
400  * @brief        Enable SIRC
401  *
402  * @param        Config
403  * @return       None
404  *
405  */
406 extern void Clock_Ip_EnableSirc_TrustedCall(Clock_Ip_IrcoscConfigType const* Config);
407 
408 /**
409  * @brief        Disable SIRC
410  *
411  * @param        Config
412  * @return       None
413  *
414  */
415 extern void Clock_Ip_DisableSirc_TrustedCall(Clock_Ip_NameType Name);
416 #endif
417 
418 #ifdef CLOCK_IP_SIRC_VLP_ENABLE
419 /**
420  * @brief        Write Config for SIRC in Low power mode to register
421  *
422  * @param        Config - pointer to configuration of SIRC low power mode
423  * @return       None
424  *
425  */
426 extern void Clock_Ip_SetSircVlp_TrustedCall(Clock_Ip_IrcoscConfigType const* Config);
427 
428 /**
429  * @brief        Enable Sirc in Low power mode
430  *
431  * @param        Config
432  * @return       None
433  *
434  */
435 extern void Clock_Ip_EnableSircVlp_TrustedCall(Clock_Ip_IrcoscConfigType const* Config);
436 
437 /**
438  * @brief        Disable Sirc in Low power mode
439  *
440  * @param        Config
441  * @return       None
442  *
443  */
444 extern void Clock_Ip_DisableSircVlp_TrustedCall(Clock_Ip_NameType Name);
445 #endif
446 
447 #ifdef CLOCK_IP_SIRC_STOP_ENABLE
448 /**
449  * @brief        Write Config for SIRC in Stop mode to register
450  *
451  * @param        Config - pointer to configuration of SIRC in Stop mode
452  * @return       None
453  *
454  */
455 extern void Clock_Ip_SetSircStop_TrustedCall(Clock_Ip_IrcoscConfigType const* Config);
456 
457 /**
458  * @brief        Enable SIRC in Stop mode to register
459  *
460  * @param        Config
461  * @return       None
462  *
463  */
464 extern void Clock_Ip_EnableSircStop_TrustedCall(Clock_Ip_IrcoscConfigType const* Config);
465 
466 /**
467  * @brief        Disable SIRC in Stop mode to register
468  *
469  * @param        Config - pointer to configuration of SIRC in Stop mode
470  * @return       None
471  *
472  */
473 extern void Clock_Ip_DisableSircStop_TrustedCall(Clock_Ip_NameType Name);
474 #endif
475 
476 
477 #ifdef CLOCK_IP_FIRC_ENABLE
478 /**
479  * @brief        Write Config for Firc to register
480  *
481  * @param        Config - pointer to configuration of Firc
482  * @return       None
483  *
484  */
485 extern void Clock_Ip_SetFirc_TrustedCall(Clock_Ip_IrcoscConfigType const* Config);
486 
487 /**
488  * @brief        Enable Firc to register
489  *
490  * @param        Config
491  * @return       None
492  *
493  */
494 extern void Clock_Ip_EnableFirc_TrustedCall(Clock_Ip_IrcoscConfigType const* Config);
495 
496 /**
497  * @brief        Disable Firc to register
498  *
499  * @param        Config
500  * @return       None
501  *
502  */
503 extern void Clock_Ip_DisableFirc_TrustedCall(Clock_Ip_NameType Name);
504 #endif
505 
506 #ifdef CLOCK_IP_SPLL_ENABLE
507 /**
508  * @brief        Reset Spll register
509  *
510  * @param        Config
511  * @return       None
512  *
513  */
514 extern void Clock_Ip_ResetSpll_TrustedCall(Clock_Ip_PllConfigType const* Config);
515 
516 /**
517  * @brief        Write Config to Spll register
518  *
519  * @param        Config - pointer to confguration of SPLL
520  * @return       None
521  *
522  */
523 extern void Clock_Ip_SetSpll_TrustedCall(Clock_Ip_PllConfigType const* Config);
524 
525 /**
526  * @brief        Disable Spll
527  *
528  * @param        Config
529  * @return       None
530  *
531  */
532 extern void Clock_Ip_DisableSpll_TrustedCall(Clock_Ip_NameType PllName);
533 
534 /**
535  * @brief        Enable Spll
536  *
537  * @param        Config
538  * @return       None
539  *
540  */
541 extern void Clock_Ip_EnableSpll_TrustedCall(Clock_Ip_PllConfigType const* Config);
542 #endif
543 
544 #ifdef CLOCK_IP_SCG_SCS_RUN_SEL
545 /**
546  * @brief        Reset SCG_RCCR selector register
547  *
548  * @param        Config
549  * @return       None
550  *
551  */
552 extern void Clock_Ip_ResetScgRunSel_TrustedCall(Clock_Ip_SelectorConfigType const *Config);
553 
554 /**
555  * @brief        Write Config to SCG_RCCR selector register
556  *
557  * @param        Config - pointer to configuration of system selector in run mode
558  * @return       None
559  *
560  */
561 extern void Clock_Ip_SetScgRunSel_TrustedCall(Clock_Ip_SelectorConfigType const *Config);
562 #endif
563 
564 #ifdef CLOCK_IP_SCG_SCS_VLPR_SEL
565 /**
566  * @brief        Write Config to SCG_VCCR selector register
567  *
568  * @param        Config - pointer to configuration of system selector in low power mode
569  * @return       None
570  *
571  */
572 extern void Clock_Ip_SetScgVlprSel_TrustedCall(Clock_Ip_SelectorConfigType const *Config);
573 #endif
574 
575 #ifdef CLOCK_IP_SCG_SCS_HSRUN_SEL
576 /**
577  * @brief        Reset SCG_HCCR selector register
578  *
579  * @param        Config
580  * @return       None
581  *
582  */
583 extern void Clock_Ip_ResetScgHsrunSel_TrustedCall(Clock_Ip_SelectorConfigType const *Config);
584 
585 /**
586  * @brief        Write Config to SCG_HCCR selector register
587  *
588  * @param        Config - pointer to configuration of system selector in HSRUN mode
589  * @return       None
590  *
591  */
592 extern void Clock_Ip_SetScgHsrunSel_TrustedCall(Clock_Ip_SelectorConfigType const *Config);
593 #endif
594 
595 #ifdef CLOCK_IP_SIM_RTC_SEL
596 /**
597  * @brief        Reset SIM_LPOCLKS_RTCCLKSEL register
598  *
599  * @param        Config
600  * @return       None
601  *
602  */
603 extern void Clock_Ip_ResetSimRtcSel_TrustedCall(Clock_Ip_SelectorConfigType const *Config);
604 
605 /**
606  * @brief        Write Config to RTC_CLK register
607  *
608  * @param        Config - pointer to configuration of RTC_CLK selector
609  * @return       None
610  *
611  */
612 extern void Clock_Ip_SetSimRtcSel_TrustedCall(Clock_Ip_SelectorConfigType const *Config);
613 #endif
614 
615 #ifdef CLOCK_IP_SIM_LPO_SEL
616 /**
617  * @brief        Reset LPO_CLK selector
618  *
619  * @param        Config
620  * @return       None
621  *
622  */
623 extern void Clock_Ip_ResetSimLpoSel_TrustedCall(Clock_Ip_SelectorConfigType const *Config);
624 
625 /**
626  * @brief        Write Config to LPO_CLK selector
627  *
628  * @param        Config - pointer to configuration of LPO_CLK selector
629  * @return       None
630  *
631  */
632 extern void Clock_Ip_SetSimLpoSel_TrustedCall(Clock_Ip_SelectorConfigType const *Config);
633 #endif
634 
635 #ifdef CLOCK_IP_SCG_CLKOUT_SEL
636 /**
637  * @brief        Reset CLKOUT_CLK selector
638  *
639  * @param        Config - pointer to configuration of CLKOUT selector
640  * @return       None
641  *
642  */
643 extern void Clock_Ip_ResetScgClkoutSel_TrustedCall(Clock_Ip_SelectorConfigType const *Config);
644 
645 /**
646  * @brief        Write Config to LPO_CLK register
647  *
648  * @param        Config - pointer to configuration of LPO_CLK selector
649  * @return       None
650  *
651  */
652 extern void Clock_Ip_SetScgClkoutSel_TrustedCall(Clock_Ip_SelectorConfigType const *Config);
653 #endif
654 
655 
656 #ifdef CLOCK_IP_SIM_FTMOPT_SEL
657 /**
658  * @brief        Reset SIM->FTMOPT0 selector register
659  *
660  * @param        Config - pointer to configuration of FTMOPT clock need to be reset
661  * @return       None
662  *
663  */
664 extern void Clock_Ip_ResetSimFtmoptSel_TrustedCall(Clock_Ip_SelectorConfigType const *Config);
665 
666 /**
667  * @brief        Write Config to SIM->FTMOPT0 register
668  *
669  * @param        Config - pointer to configuration of FTMOPT clock need to be reset
670  * @return       None
671  *
672  */
673 extern void Clock_Ip_SetSimFtmoptSel_TrustedCall(Clock_Ip_SelectorConfigType const *Config);
674 #endif
675 
676 #ifdef CLOCK_IP_SIM_CLKOUT_SEL
677 /**
678  * @brief        Write Config to SIM_CHIPCTL_CLKOUTSEL register
679  *
680  * @param        Config
681  * @return       None
682  *
683  */
684 extern void Clock_Ip_ResetSimClkoutSel_TrustedCall(Clock_Ip_SelectorConfigType const *Config);
685 
686 /**
687  * @brief        Write Config to SIM_CHIPCTL_CLKOUTSEL register
688  *
689  * @param        Config - pointer to configuration of CLKOUT_CLK selector
690  * @return       None
691  *
692  */
693 extern void Clock_Ip_SetSimClkoutSel_TrustedCall(Clock_Ip_SelectorConfigType const *Config);
694 #endif
695 
696 #ifdef CLOCK_IP_PCC_PCS_SELECT
697 /**
698  * @brief        Reset register of PCC peripheral clock
699  *
700  * @param        Config - pointer to configuration clock need to be reset
701  * @return       None
702  *
703  */
704 extern void Clock_Ip_ResetPccPcsSelect_TrustedCall(Clock_Ip_SelectorConfigType const *Config);
705 
706 /**
707  * @brief        Write Config to PCC register
708  *
709  * @param        Config - pointer to configuration of PCC peripheral clock
710  * @return       None
711  *
712  */
713 extern void Clock_Ip_SetPccPcsSelect_TrustedCall(Clock_Ip_SelectorConfigType const *Config);
714 #endif
715 
716 
717 #ifdef CLOCK_IP_SIM_TRACE_SEL
718 /**
719  * @brief        Reset selector register of TRACE_CLK
720  *
721  * @param        Config
722  * @return       None
723  *
724  */
725 extern void Clock_Ip_ResetSimTraceSel_TrustedCall(Clock_Ip_SelectorConfigType const *Config);
726 
727 /**
728  * @brief        Write Config to TRACE_CLK selector register
729  *
730  * @param        Config - pointer to configuration of TRACE_CLK selector
731  * @return       None
732  *
733  */
734 extern void Clock_Ip_SetSimTraceSel_TrustedCall(Clock_Ip_SelectorConfigType const *Config);
735 #endif
736 
737 /**
738  * @brief        Reset FIRC
739  *
740  * @param        None
741  * @return       None
742  *
743  */
744 extern void SetFircToResetValue_TrustedCall(void);
745 
746 /**
747  * @brief        Write Confgig whole SIM_LPOCLKS register
748  *
749  * @param        Config - pointer to configuration of all SIM_LPOCLKS clock
750  * @return       None
751  *
752  */
753 extern void SetSimLpoclksRegister_TrustedCall(Clock_Ip_ClockConfigType const *Config);
754 
755 #if defined(CLOCK_IP_HAS_FIRC_MON1_CLK)
756 /**
757  * @brief        Enable Cmu clock gate
758  *
759  * @param        None
760  * @return       None
761  *
762  */
763 extern void Clock_Ip_EnableCmu0Gate_TrustedCall(void);
764 #endif
765 
766 #if defined(CLOCK_IP_HAS_FIRC_MON2_CLK)
767 /**
768  * @brief        Enable Cmu clock gate
769  *
770  * @param        None
771  * @return       None
772  *
773  */
774 extern void Clock_Ip_EnableCmu1Gate_TrustedCall(void);
775 #endif
776 
777 /* Clock stop section code */
778 #define MCU_STOP_SEC_CODE
779 #include "Mcu_MemMap.h"
780 
781 
782   #endif
783 #endif /* CLOCK_IP_ENABLE_USER_MODE_SUPPORT */
784 
785 
786 
787 
788 
789 #if defined(__cplusplus)
790 }
791 #endif /* __cplusplus*/
792 
793 /*! @}*/
794 
795 #endif /* CLOCK_IP_TRUSTEDFUNCTIONS_H */
796 
797 
798