1 /* 2 * Copyright 2023 NXP 3 * 4 * SPDX-License-Identifier: BSD-3-Clause 5 */ 6 7 #ifndef EMIOS_MCL_IP_CFG_DEFINES_H 8 #define EMIOS_MCL_IP_CFG_DEFINES_H 9 /** 10 * @file Emios_Mcl_Ip_Cfg_Defines.h 11 * 12 * @version 3.0.0 13 * 14 * @brief AUTOSAR Mcl - MCL driver header file. 15 * @details 16 * 17 * @addtogroup MCL_DRIVER MCL Driver 18 * @{ 19 */ 20 #ifdef __cplusplus 21 extern "C" 22 { 23 #endif 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 "Emios_Mcl_Ip_Cfg_DeviceRegisters.h" 32 #include "Emios_Icu_Ip_Cfg.h" 33 #include "Emios_Pwm_Ip_CfgDefines.h" 34 35 /*================================================================================================== 36 * HEADER FILE VERSION INFORMATION 37 ==================================================================================================*/ 38 #define EMIOS_MCL_IP_CFG_DEFINES_VENDOR_ID 43 39 #define EMIOS_MCL_IP_CFG_DEFINES_AR_RELEASE_MAJOR_VERSION 4 40 #define EMIOS_MCL_IP_CFG_DEFINES_AR_RELEASE_MINOR_VERSION 7 41 #define EMIOS_MCL_IP_CFG_DEFINES_AR_RELEASE_REVISION_VERSION 0 42 #define EMIOS_MCL_IP_CFG_DEFINES_SW_MAJOR_VERSION 3 43 #define EMIOS_MCL_IP_CFG_DEFINES_SW_MINOR_VERSION 0 44 #define EMIOS_MCL_IP_CFG_DEFINES_SW_PATCH_VERSION 0 45 /*================================================================================================== 46 * FILE VERSION CHECKS 47 ==================================================================================================*/ 48 #if (EMIOS_MCL_IP_CFG_DEFINES_VENDOR_ID != EMIOS_MCL_IP_CFG_DEVICEREGISTERS_VENDOR_ID) 49 #error "Emios_Mcl_Ip_Cfg_Defines.h and Emios_Mcl_Ip_Cfg_DeviceRegisters.h have different vendor ids" 50 #endif 51 52 /* Check if header file and Emios_Mcl_Ip_Cfg_DeviceRegisters.h file are of the same Autosar version */ 53 #if ((EMIOS_MCL_IP_CFG_DEFINES_AR_RELEASE_MAJOR_VERSION != EMIOS_MCL_IP_CFG_DEVICEREGISTERS_AR_RELEASE_MAJOR_VERSION) || \ 54 (EMIOS_MCL_IP_CFG_DEFINES_AR_RELEASE_MINOR_VERSION != EMIOS_MCL_IP_CFG_DEVICEREGISTERS_AR_RELEASE_MINOR_VERSION) || \ 55 (EMIOS_MCL_IP_CFG_DEFINES_AR_RELEASE_REVISION_VERSION != EMIOS_MCL_IP_CFG_DEVICEREGISTERS_AR_RELEASE_REVISION_VERSION)) 56 #error "AutoSar Version Numbers of Emios_Mcl_Ip_Cfg_Defines.h and Emios_Mcl_Ip_Cfg_DeviceRegisters.h are different" 57 #endif 58 59 /* Check if header file and Emios_Mcl_Ip_Cfg_DeviceRegisters.h file are of the same Software version */ 60 #if ((EMIOS_MCL_IP_CFG_DEFINES_SW_MAJOR_VERSION != EMIOS_MCL_IP_CFG_DEVICEREGISTERS_SW_MAJOR_VERSION) || \ 61 (EMIOS_MCL_IP_CFG_DEFINES_SW_MINOR_VERSION != EMIOS_MCL_IP_CFG_DEVICEREGISTERS_SW_MINOR_VERSION) || \ 62 (EMIOS_MCL_IP_CFG_DEFINES_SW_PATCH_VERSION != EMIOS_MCL_IP_CFG_DEVICEREGISTERS_SW_PATCH_VERSION)) 63 #error "Software Version Numbers of Emios_Mcl_Ip_Cfg_Defines.h and Emios_Mcl_Ip_Cfg_DeviceRegisters.h are different" 64 #endif 65 66 #ifndef DISABLE_MCAL_INTERMODULE_ASR_CHECK 67 /* Check if this header file and Emios_Icu_Ip_Cfg.h file are of the same Autosar version */ 68 #if ((EMIOS_MCL_IP_CFG_DEFINES_AR_RELEASE_MAJOR_VERSION != EMIOS_ICU_IP_CFG_AR_RELEASE_MAJOR_VERSION) || \ 69 (EMIOS_MCL_IP_CFG_DEFINES_AR_RELEASE_MINOR_VERSION != EMIOS_ICU_IP_CFG_AR_RELEASE_MINOR_VERSION)) 70 #error "AutoSar Version Numbers of Emios_Mcl_Ip_Cfg_Defines.h and Emios_Icu_Ip_Cfg.h are different" 71 #endif 72 /* Check if this header file and Emios_Pwm_Ip_CfgDefines.h file are of the same Autosar version */ 73 #if ((EMIOS_MCL_IP_CFG_DEFINES_AR_RELEASE_MAJOR_VERSION != EMIOS_PWM_IP_CFGDEFINES_AR_RELEASE_MAJOR_VERSION) || \ 74 (EMIOS_MCL_IP_CFG_DEFINES_AR_RELEASE_MINOR_VERSION != EMIOS_PWM_IP_CFGDEFINES_AR_RELEASE_MINOR_VERSION)) 75 #error "AutoSar Version Numbers of Emios_Mcl_Ip_Cfg_Defines.h and Emios_Pwm_Ip_CfgDefines.h are different" 76 #endif 77 #endif 78 /*================================================================================================== 79 * CONSTANTS 80 ==================================================================================================*/ 81 82 /*================================================================================================== 83 * DEFINES AND MACROS 84 ==================================================================================================*/ 85 /* Timer width */ 86 #define EMIOS_MCL_IP_24BITS_TIMER_WIDTH STD_OFF 87 88 89 90 91 /*-----------------------------------------------/ 92 / EMIOS HW MASTER BUSES / 93 /-----------------------------------------------*/ 94 #define EMIOS_CH_0 ((uint16)0U) 95 #define EMIOS_CH_8 ((uint16)8U) 96 #define EMIOS_CH_16 ((uint16)16U) 97 #define EMIOS_CH_22 ((uint16)22U) 98 #define EMIOS_CH_23 ((uint16)23U) 99 100 /* Macros that indicate EMIOS channels used by MCL. */ 101 #ifndef EMIOS_0_CH_23_USED 102 #define EMIOS_0_CH_23_USED 103 #else 104 #error "EMIOS_0_CH_23 channel cannot be used by MCL driver. Channel locked by other driver!" 105 #endif 106 #ifndef EMIOS_1_CH_23_USED 107 #define EMIOS_1_CH_23_USED 108 #else 109 #error "EMIOS_1_CH_23 channel cannot be used by MCL driver. Channel locked by other driver!" 110 #endif 111 #ifndef EMIOS_2_CH_23_USED 112 #define EMIOS_2_CH_23_USED 113 #else 114 #error "EMIOS_2_CH_23 channel cannot be used by MCL driver. Channel locked by other driver!" 115 #endif 116 117 /* Macros used to save logic MCL EMIOS channel encoding. */ 118 #define MCL_EMIOS_LOGIC_CH0 (uint16)((0U << 8U) + EMIOS_CH_23) 119 #define MCL_EMIOS_LOGIC_CH1 (uint16)((1U << 8U) + EMIOS_CH_23) 120 #define MCL_EMIOS_LOGIC_CH2 (uint16)((2U << 8U) + EMIOS_CH_23) 121 122 #define EMIOS_MCL_IP_DEV_ERROR_DETECT (STD_OFF) 123 124 /** @brief Disable EMIOS multicore support at IP layer */ 125 #define EMIOS_IP_MULTICORE_IS_AVAILABLE (STD_OFF) 126 127 128 129 /*================================================================================================== 130 * ENUMS 131 ==================================================================================================*/ 132 133 /*================================================================================================== 134 * STRUCTURES AND OTHER TYPEDEFS 135 ==================================================================================================*/ 136 137 /*================================================================================================== 138 * GLOBAL VARIABLE DECLARATIONS 139 ==================================================================================================*/ 140 141 /*================================================================================================== 142 * FUNCTION PROTOTYPES 143 ==================================================================================================*/ 144 145 #ifdef __cplusplus 146 } 147 #endif 148 149 #endif /* EMIOS_MCL_IP_CFG_DEFINES_H */ 150 151