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