1 /*
2 * Copyright 2020-2023 NXP
3 *
4 * SPDX-License-Identifier: BSD-3-Clause
5 */
6 /**
7 * @file Power_Ip_Private.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 /*==================================================================================================
26 * INCLUDE FILES
27 * 1) system and project includes
28 * 2) needed interfaces from external units
29 * 3) internal and external interfaces from this unit
30 ==================================================================================================*/
31 #include "Power_Ip.h"
32 #include "Power_Ip_Private.h"
33 #include "OsIf.h"
34
35 /*==================================================================================================
36 SOURCE FILE VERSION INFORMATION
37 ==================================================================================================*/
38 #define POWER_IP_PRIVATE_VENDOR_ID_C 43
39 #define POWER_IP_PRIVATE_AR_RELEASE_MAJOR_VERSION_C 4
40 #define POWER_IP_PRIVATE_AR_RELEASE_MINOR_VERSION_C 7
41 #define POWER_IP_PRIVATE_AR_RELEASE_REVISION_VERSION_C 0
42 #define POWER_IP_PRIVATE_SW_MAJOR_VERSION_C 3
43 #define POWER_IP_PRIVATE_SW_MINOR_VERSION_C 0
44 #define POWER_IP_PRIVATE_SW_PATCH_VERSION_C 0
45
46 /*==================================================================================================
47 * FILE VERSION CHECKS
48 ==================================================================================================*/
49 /* Check if current file and OsIf header file are of the same version */
50 #ifndef DISABLE_MCAL_INTERMODULE_ASR_CHECK
51 #if ((POWER_IP_PRIVATE_AR_RELEASE_MAJOR_VERSION_C != OSIF_AR_RELEASE_MAJOR_VERSION) || \
52 (POWER_IP_PRIVATE_AR_RELEASE_MINOR_VERSION_C != OSIF_AR_RELEASE_MINOR_VERSION) \
53 )
54 #error "AutoSar Version Numbers of Power_Ip_Private.c and OsIf.h are different"
55 #endif
56 #endif
57
58 /* Check if current file and Power_Ip header file are of the same Autosar version */
59 #if (POWER_IP_PRIVATE_VENDOR_ID_C != POWER_IP_VENDOR_ID)
60 #error "Power_Ip_Private.c and Power_Ip.h have different vendor ids"
61 #endif
62 /* Check if current file and Power_Ip header file are of the same Autosar version */
63 #if ((POWER_IP_PRIVATE_AR_RELEASE_MAJOR_VERSION_C != POWER_IP_AR_RELEASE_MAJOR_VERSION) || \
64 (POWER_IP_PRIVATE_AR_RELEASE_MINOR_VERSION_C != POWER_IP_AR_RELEASE_MINOR_VERSION) || \
65 (POWER_IP_PRIVATE_AR_RELEASE_REVISION_VERSION_C != POWER_IP_AR_RELEASE_REVISION_VERSION) \
66 )
67 #error "AutoSar Version Numbers of Power_Ip_Private.c and Power_Ip.h are different"
68 #endif
69 /* Check if current file and Power_Ip header file are of the same Software version */
70 #if ((POWER_IP_PRIVATE_SW_MAJOR_VERSION_C != POWER_IP_SW_MAJOR_VERSION) || \
71 (POWER_IP_PRIVATE_SW_MINOR_VERSION_C != POWER_IP_SW_MINOR_VERSION) || \
72 (POWER_IP_PRIVATE_SW_PATCH_VERSION_C != POWER_IP_SW_PATCH_VERSION) \
73 )
74 #error "Software Version Numbers of Power_Ip_Private.c and Power_Ip.h are different"
75 #endif
76
77 /* Check if current file and Power_Ip_Private header file are of the same Autosar version */
78 #if (POWER_IP_PRIVATE_VENDOR_ID_C != POWER_IP_PRIVATE_VENDOR_ID)
79 #error "Power_Ip_Private.c and Power_Ip_Private.h have different vendor ids"
80 #endif
81 /* Check if current file and Power_Ip_Private header file are of the same Autosar version */
82 #if ((POWER_IP_PRIVATE_AR_RELEASE_MAJOR_VERSION_C != POWER_IP_PRIVATE_AR_RELEASE_MAJOR_VERSION) || \
83 (POWER_IP_PRIVATE_AR_RELEASE_MINOR_VERSION_C != POWER_IP_PRIVATE_AR_RELEASE_MINOR_VERSION) || \
84 (POWER_IP_PRIVATE_AR_RELEASE_REVISION_VERSION_C != POWER_IP_PRIVATE_AR_RELEASE_REVISION_VERSION) \
85 )
86 #error "AutoSar Version Numbers of Power_Ip_Private.c and Power_Ip_Private.h are different"
87 #endif
88 /* Check if current file and Power_Ip_Private header file are of the same Software version */
89 #if ((POWER_IP_PRIVATE_SW_MAJOR_VERSION_C != POWER_IP_PRIVATE_SW_MAJOR_VERSION) || \
90 (POWER_IP_PRIVATE_SW_MINOR_VERSION_C != POWER_IP_PRIVATE_SW_MINOR_VERSION) || \
91 (POWER_IP_PRIVATE_SW_PATCH_VERSION_C != POWER_IP_PRIVATE_SW_PATCH_VERSION) \
92 )
93 #error "Software Version Numbers of Power_Ip_Private.c and Power_Ip_Private.h are different"
94 #endif
95
96 /*==================================================================================================
97 LOCAL TYPEDEFS (STRUCTURES, UNIONS, ENUMS)
98 ==================================================================================================*/
99
100
101 /*==================================================================================================
102 LOCAL MACROS
103 ==================================================================================================*/
104
105
106 /*==================================================================================================
107 LOCAL CONSTANTS
108 ==================================================================================================*/
109
110
111 /*==================================================================================================
112 LOCAL VARIABLES
113 ==================================================================================================*/
114
115 /*==================================================================================================
116 GLOBAL CONSTANTS
117 ==================================================================================================*/
118
119
120 /*==================================================================================================
121 GLOBAL VARIABLES
122 ==================================================================================================*/
123
124 /*==================================================================================================
125 LOCAL FUNCTION PROTOTYPES
126 ==================================================================================================*/
127 #define MCU_START_SEC_CODE
128 #include "Mcu_MemMap.h"
129
130 /*==================================================================================================
131 LOCAL FUNCTIONS
132 ==================================================================================================*/
133
134 /*==================================================================================================
135 GLOBAL FUNCTIONS
136 ==================================================================================================*/
Power_Ip_ReportPowerErrors(Power_Ip_ReportErrorType Error,uint8 ErrorCode)137 void Power_Ip_ReportPowerErrors(Power_Ip_ReportErrorType Error, uint8 ErrorCode)
138 {
139 Power_Ip_pfReportErrorsCallback(Error, ErrorCode);
140 }
141
Power_Ip_ReportPowerErrorsEmptyCallback(Power_Ip_ReportErrorType Error,uint8 ErrorCode)142 void Power_Ip_ReportPowerErrorsEmptyCallback(Power_Ip_ReportErrorType Error, uint8 ErrorCode)
143 {
144 /* No implementation */
145 (void)Error;
146 (void)ErrorCode;
147 }
148
149 /*FUNCTION**********************************************************************
150 *
151 * Function Name : Power_Ip_StartTimeout
152 * Description : Checks for timeout condition
153 *
154 *END**************************************************************************/
Power_Ip_StartTimeout(uint32 * StartTimeOut,uint32 * ElapsedTimeOut,uint32 * TimeoutTicksOut,uint32 TimeoutUs)155 void Power_Ip_StartTimeout(uint32 *StartTimeOut,
156 uint32 *ElapsedTimeOut,
157 uint32 *TimeoutTicksOut,
158 uint32 TimeoutUs)
159 {
160 *StartTimeOut = OsIf_GetCounter(POWER_IP_TIMEOUT_TYPE);
161 *ElapsedTimeOut = 0U;
162 *TimeoutTicksOut = OsIf_MicrosToTicks(TimeoutUs, POWER_IP_TIMEOUT_TYPE);
163 }
164
165 /*FUNCTION**********************************************************************
166 *
167 * Function Name : Power_Ip_TimeoutExpired
168 * Description : Checks for timeout expiration condition
169 *
170 *END**************************************************************************/
Power_Ip_TimeoutExpired(uint32 * StartTimeInOut,uint32 * ElapsedTimeInOut,uint32 TimeoutTicks)171 boolean Power_Ip_TimeoutExpired(uint32 *StartTimeInOut,
172 uint32 *ElapsedTimeInOut,
173 uint32 TimeoutTicks)
174 {
175 boolean RetVal = FALSE;
176 *ElapsedTimeInOut += OsIf_GetElapsed(StartTimeInOut, POWER_IP_TIMEOUT_TYPE);
177
178 if (*ElapsedTimeInOut >= TimeoutTicks)
179 {
180 RetVal = TRUE;
181 }
182 return RetVal;
183 }
184
185 #define MCU_STOP_SEC_CODE
186 #include "Mcu_MemMap.h"
187
188
189 #ifdef __cplusplus
190 }
191 #endif
192
193 /** @} */
194
195