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)171void 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