1 /*
2  * Copyright 2020-2023 NXP
3  *
4  * SPDX-License-Identifier: BSD-3-Clause
5  */
6 /**
7 *   @file       Power_Ip_AEC.c
8 *   @version    3.0.0
9 *
10 *   @brief
11 *   @brief   POWER driver implementations.
12 *   @details POWER driver implementations.
13 *
14 *   @addtogroup POWER_DRIVER Power Ip Driver
15 *   @{
16 */
17 
18 
19 #ifdef __cplusplus
20 extern "C"{
21 #endif
22 
23 
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 "Power_Ip_AEC.h"
31 #include "Power_Ip_Private.h"
32 
33 #if (defined(POWER_IP_AECRESETCONFIG_API) && (STD_ON == POWER_IP_AECRESETCONFIG_API))
34 #include "Aec_Ip.h"
35 #endif
36 
37 /*==================================================================================================
38                                SOURCE FILE VERSION INFORMATION
39 ==================================================================================================*/
40 #define POWER_IP_AEC_VENDOR_ID_C                      43
41 #define POWER_IP_AEC_AR_RELEASE_MAJOR_VERSION_C       4
42 #define POWER_IP_AEC_AR_RELEASE_MINOR_VERSION_C       7
43 #define POWER_IP_AEC_AR_RELEASE_REVISION_VERSION_C    0
44 #define POWER_IP_AEC_SW_MAJOR_VERSION_C               3
45 #define POWER_IP_AEC_SW_MINOR_VERSION_C               0
46 #define POWER_IP_AEC_SW_PATCH_VERSION_C               0
47 
48 /*==================================================================================================
49 *                                     FILE VERSION CHECKS
50 ==================================================================================================*/
51 #if (defined(POWER_IP_AECRESETCONFIG_API) && (STD_ON == POWER_IP_AECRESETCONFIG_API))
52 /* Check if Power_Ip_AEC.c file and Aec_Ip.h file are of the same vendor */
53 #if (POWER_IP_AEC_VENDOR_ID_C != AEC_IP_VENDOR_ID)
54     #error "Power_Ip_AEC.c and Aec_Ip.h have different vendor ids"
55 #endif
56 
57 /* Check if Power_Ip_AEC.c file and Aec_Ip.h file are of the same Autosar version */
58 #if ((POWER_IP_AEC_AR_RELEASE_MAJOR_VERSION_C != AEC_IP_AR_RELEASE_MAJOR_VERSION) || \
59      (POWER_IP_AEC_AR_RELEASE_MINOR_VERSION_C != AEC_IP_AR_RELEASE_MINOR_VERSION) || \
60      (POWER_IP_AEC_AR_RELEASE_REVISION_VERSION_C != AEC_IP_AR_RELEASE_REVISION_VERSION) \
61     )
62     #error "AutoSar Version Numbers of Power_Ip_AEC.c and Aec_Ip.h are different"
63 #endif
64 
65 /* Check if Power_Ip_AEC.c file and Aec_Ip.h file are of the same Software version */
66 #if ((POWER_IP_AEC_SW_MAJOR_VERSION_C != AEC_IP_SW_MAJOR_VERSION) || \
67      (POWER_IP_AEC_SW_MINOR_VERSION_C != AEC_IP_SW_MINOR_VERSION) || \
68      (POWER_IP_AEC_SW_PATCH_VERSION_C != AEC_IP_SW_PATCH_VERSION) \
69     )
70     #error "Software Version Numbers of Power_Ip_AEC.c and Aec_Ip.h are different"
71 #endif
72 #endif
73 
74 /* Check if Power_Ip_AEC.c file and Power_Ip_AEC.h file are of the same vendor */
75 #if (POWER_IP_AEC_VENDOR_ID_C != POWER_IP_AEC_VENDOR_ID)
76     #error "Power_Ip_AEC.c and Power_Ip_AEC.h have different vendor ids"
77 #endif
78 
79 /* Check if Power_Ip_AEC.c file and Power_Ip_AEC.h file are of the same Autosar version */
80 #if ((POWER_IP_AEC_AR_RELEASE_MAJOR_VERSION_C != POWER_IP_AEC_AR_RELEASE_MAJOR_VERSION) || \
81      (POWER_IP_AEC_AR_RELEASE_MINOR_VERSION_C != POWER_IP_AEC_AR_RELEASE_MINOR_VERSION) || \
82      (POWER_IP_AEC_AR_RELEASE_REVISION_VERSION_C != POWER_IP_AEC_AR_RELEASE_REVISION_VERSION) \
83     )
84     #error "AutoSar Version Numbers of Power_Ip_AEC.c and Power_Ip_AEC.h are different"
85 #endif
86 
87 /* Check if Power_Ip_AEC.c file and Power_Ip_AEC.h file are of the same Software version */
88 #if ((POWER_IP_AEC_SW_MAJOR_VERSION_C != POWER_IP_AEC_SW_MAJOR_VERSION) || \
89      (POWER_IP_AEC_SW_MINOR_VERSION_C != POWER_IP_AEC_SW_MINOR_VERSION) || \
90      (POWER_IP_AEC_SW_PATCH_VERSION_C != POWER_IP_AEC_SW_PATCH_VERSION) \
91     )
92     #error "Software Version Numbers of Power_Ip_AEC.c and Power_Ip_AEC.h are different"
93 #endif
94 
95 /* Check if Power_Ip_AEC.c file and Power_Ip_Private.h file are of the same vendor */
96 #if (POWER_IP_AEC_VENDOR_ID_C != POWER_IP_PRIVATE_VENDOR_ID)
97     #error "Power_Ip_AEC.c and Power_Ip_Private.h have different vendor ids"
98 #endif
99 
100 /* Check if Power_Ip_AEC.c file and Power_Ip_Private.h file are of the same Autosar version */
101 #if ((POWER_IP_AEC_AR_RELEASE_MAJOR_VERSION_C != POWER_IP_PRIVATE_AR_RELEASE_MAJOR_VERSION) || \
102      (POWER_IP_AEC_AR_RELEASE_MINOR_VERSION_C != POWER_IP_PRIVATE_AR_RELEASE_MINOR_VERSION) || \
103      (POWER_IP_AEC_AR_RELEASE_REVISION_VERSION_C != POWER_IP_PRIVATE_AR_RELEASE_REVISION_VERSION) \
104     )
105     #error "AutoSar Version Numbers of Power_Ip_AEC.c and Power_Ip_Private.h are different"
106 #endif
107 
108 /* Check if Power_Ip_AEC.c file and Power_Ip_Private.h file are of the same Software version */
109 #if ((POWER_IP_AEC_SW_MAJOR_VERSION_C != POWER_IP_PRIVATE_SW_MAJOR_VERSION) || \
110      (POWER_IP_AEC_SW_MINOR_VERSION_C != POWER_IP_PRIVATE_SW_MINOR_VERSION) || \
111      (POWER_IP_AEC_SW_PATCH_VERSION_C != POWER_IP_PRIVATE_SW_PATCH_VERSION) \
112     )
113     #error "Software Version Numbers of Power_Ip_AEC.c and Power_Ip_Private.h are different"
114 #endif
115 
116 
117 /*==================================================================================================
118                           LOCAL TYPEDEFS (STRUCTURES, UNIONS, ENUMS)
119 ==================================================================================================*/
120 
121 
122 /*==================================================================================================
123                                        LOCAL MACROS
124 ==================================================================================================*/
125 
126 
127 /*==================================================================================================
128                                        LOCAL CONSTANTS
129 ==================================================================================================*/
130 
131 
132 /*==================================================================================================
133                                        LOCAL VARIABLES
134 ==================================================================================================*/
135 
136 /*==================================================================================================
137                                        GLOBAL CONSTANTS
138 ==================================================================================================*/
139 
140 
141 /*==================================================================================================
142                                        GLOBAL VARIABLES
143 ==================================================================================================*/
144 
145 /*==================================================================================================
146                                    LOCAL FUNCTION PROTOTYPES
147 ==================================================================================================*/
148 
149 
150 /*==================================================================================================
151                                        LOCAL FUNCTIONS
152 ==================================================================================================*/
153 #define MCU_START_SEC_CODE
154 
155 #include "Mcu_MemMap.h"
156 
157 
158 /*==================================================================================================
159                                        GLOBAL FUNCTIONS
160 ==================================================================================================*/
161 #if (defined(POWER_IP_AECRESETCONFIG_API) && (STD_ON == POWER_IP_AECRESETCONFIG_API))
162 /**
163 * @brief            This function configure reset generator (AEC_AE).
164 * @details          This function configure reset generator (AEC_AE).
165 *
166 * @param[in]        ConfigPtr   Pointer to AEC configuration structure.
167 *
168 * @return           void
169 *
170 */
Power_Ip_AEC_Reset_Config(const Power_Ip_AEC_ConfigType * ConfigPtr)171 void Power_Ip_AEC_Reset_Config(const Power_Ip_AEC_ConfigType * ConfigPtr)
172 {
173     uint32 TmpAe;
174 
175     Aec_Ip_SpiRead((uint32)(&(IP_AEC_AE->RSTGEN_CFG)),POWER_IP_DATAWIDTH_16,&TmpAe);
176     TmpAe = (uint16)(TmpAe & (uint16)(~AEC_AE_RSTGEN_CFG_RSTGEN_CFG_MASK));
177     TmpAe = (uint16)(TmpAe | (uint16)(ConfigPtr->Rstgencfg));
178     Aec_Ip_SpiWrite((uint32)(&(IP_AEC_AE->RSTGEN_CFG)),POWER_IP_DATAWIDTH_16,TmpAe);
179 }
180 #endif
181 
182 #define MCU_STOP_SEC_CODE
183 #include "Mcu_MemMap.h"
184 
185 
186 #ifdef __cplusplus
187 }
188 #endif
189 
190 /** @} */
191