1 /* 2 * Copyright 2023 NXP 3 * 4 * SPDX-License-Identifier: BSD-3-Clause 5 */ 6 7 #ifndef EMIOS_PWM_IP_INIT_PBCFG_H 8 #define EMIOS_PWM_IP_INIT_PBCFG_H 9 10 /** 11 * @file Emios_Pwm_Ip_Init_PBcfg.h 12 * 13 * @addtogroup emios_pwm_ip Emios Pwm IPL 14 * @{ 15 */ 16 17 #ifdef __cplusplus 18 extern "C"{ 19 #endif 20 21 22 /*================================================================================================== 23 * INCLUDE FILES 24 * 1) system and project includes 25 * 2) needed interfaces from external units 26 * 3) internal and external interfaces from this unit 27 ==================================================================================================*/ 28 #include <zephyr/devicetree.h> 29 30 #include "Emios_Pwm_Ip_Types.h" 31 32 /*================================================================================================== 33 * SOURCE FILE VERSION INFORMATION 34 ==================================================================================================*/ 35 #define EMIOS_PWM_IP_INIT_PB_CFG_VENDOR_ID 43 36 #define EMIOS_PWM_IP_INIT_PB_CFG_MODULE_ID 121 37 #define EMIOS_PWM_IP_INIT_PB_CFG_AR_RELEASE_MAJOR_VERSION 4 38 #define EMIOS_PWM_IP_INIT_PB_CFG_AR_RELEASE_MINOR_VERSION 7 39 #define EMIOS_PWM_IP_INIT_PB_CFG_AR_RELEASE_REVISION_VERSION 0 40 #define EMIOS_PWM_IP_INIT_PB_CFG_SW_MAJOR_VERSION 3 41 #define EMIOS_PWM_IP_INIT_PB_CFG_SW_MINOR_VERSION 0 42 #define EMIOS_PWM_IP_INIT_PB_CFG_SW_PATCH_VERSION 0 43 44 /*================================================================================================== 45 * FILE VERSION CHECKS 46 ==================================================================================================*/ 47 /* Check if header file and Emios_Pwm_Ip_Types header file are of the same vendor */ 48 #if (EMIOS_PWM_IP_INIT_PB_CFG_VENDOR_ID != EMIOS_PWM_IP_TYPES_VENDOR_ID) 49 #error "Vendor IDs of Emios_Pwm_Ip_Init_PBcfg.h and Emios_Pwm_Ip_Types.h are different." 50 #endif 51 52 /* Check if header file and Emios_Pwm_Ip_Types header file are of the same AUTOSAR version */ 53 #if ((EMIOS_PWM_IP_INIT_PB_CFG_AR_RELEASE_MAJOR_VERSION != EMIOS_PWM_IP_TYPES_AR_RELEASE_MAJOR_VERSION) || \ 54 (EMIOS_PWM_IP_INIT_PB_CFG_AR_RELEASE_MINOR_VERSION != EMIOS_PWM_IP_TYPES_AR_RELEASE_MINOR_VERSION) || \ 55 (EMIOS_PWM_IP_INIT_PB_CFG_AR_RELEASE_REVISION_VERSION != EMIOS_PWM_IP_TYPES_AR_RELEASE_REVISION_VERSION)) 56 #error "AUTOSAR version numbers of Emios_Pwm_Ip_Init_PBcfg.h and Emios_Pwm_Ip_Types.h are different." 57 #endif 58 59 /* Check if header file and Emios_Pwm_Ip_Types header file are of the same software version */ 60 #if ((EMIOS_PWM_IP_INIT_PB_CFG_SW_MAJOR_VERSION != EMIOS_PWM_IP_TYPES_SW_MAJOR_VERSION) || \ 61 (EMIOS_PWM_IP_INIT_PB_CFG_SW_MINOR_VERSION != EMIOS_PWM_IP_TYPES_SW_MINOR_VERSION) || \ 62 (EMIOS_PWM_IP_INIT_PB_CFG_SW_PATCH_VERSION != EMIOS_PWM_IP_TYPES_SW_PATCH_VERSION)) 63 #error "Software version numbers of Emios_Pwm_Ip_Init_PBcfg.h and Emios_Pwm_Ip_Types.h are different." 64 #endif 65 66 /*================================================================================================== 67 * CONSTANTS 68 ==================================================================================================*/ 69 70 /*================================================================================================== 71 * DEFINES AND MACROS 72 ==================================================================================================*/ 73 74 /*================================================================================================== 75 * ENUMS 76 ==================================================================================================*/ 77 78 /*================================================================================================== 79 * STRUCTURES AND OTHER TYPEDEFS 80 ==================================================================================================*/ 81 82 /*================================================================================================== 83 * GLOBAL VARIABLE DECLARATIONS 84 ==================================================================================================*/ 85 #ifndef EMIOS_PWM_IP_PRECOMPILE_SUPPORT 86 #define PWM_START_SEC_CONFIG_DATA_UNSPECIFIED 87 #include "Pwm_MemMap.h" 88 #define PWM_STOP_SEC_CONFIG_DATA_UNSPECIFIED 89 #include "Pwm_MemMap.h" 90 #endif /* EMIOS_PWM_IP_PRECOMPILE_SUPPORT */ 91 92 /*================================================================================================== 93 * FUNCTION PROTOTYPES 94 ==================================================================================================*/ 95 96 #define DT_DRV_COMPAT nxp_s32_emios_pwm 97 98 #define EMIOS_OPWFMB_MODE_USED(node_id) \ 99 COND_CODE_1(DT_NODE_HAS_PROP(node_id, pwm_mode), \ 100 (DT_ENUM_HAS_VALUE(node_id, pwm_mode, OPWFMB)), \ 101 (0)) || 102 103 #define IS_EMIOS_OPWFMB_MODE_USED(n) \ 104 DT_INST_FOREACH_CHILD_STATUS_OKAY(n, EMIOS_OPWFMB_MODE_USED) 105 106 #define EMIOS_OPWMB_MODE_USED(node_id) \ 107 COND_CODE_1(DT_NODE_HAS_PROP(node_id, pwm_mode), \ 108 (DT_ENUM_HAS_VALUE(node_id, pwm_mode, OPWMB)), \ 109 (0)) || 110 111 #define IS_EMIOS_OPWMB_MODE_USED(n) \ 112 DT_INST_FOREACH_CHILD_STATUS_OKAY(n, EMIOS_OPWMB_MODE_USED) 113 114 #define EMIOS_OPWMCB_MODE_USED(node_id) \ 115 COND_CODE_1(DT_NODE_HAS_PROP(node_id, pwm_mode), \ 116 (DT_ENUM_HAS_VALUE(node_id, pwm_mode, OPWMCB_TRAIL_EDGE) || \ 117 DT_ENUM_HAS_VALUE(node_id, pwm_mode, OPWMCB_LEAD_EDGE) \ 118 ),(0)) || 119 120 #define IS_EMIOS_OPWMCB_MODE_USED(n) \ 121 DT_INST_FOREACH_CHILD_STATUS_OKAY(n, EMIOS_OPWMCB_MODE_USED) 122 123 /* Macro to enable the mode operations. */ 124 #if DT_INST_FOREACH_STATUS_OKAY(IS_EMIOS_OPWFMB_MODE_USED) 0 125 #define EMIOS_PWM_IP_MODE_OPWFMB_USED 126 #endif 127 128 #if DT_INST_FOREACH_STATUS_OKAY(IS_EMIOS_OPWMB_MODE_USED) 0 129 #define EMIOS_PWM_IP_MODE_OPWMB_USED 130 #endif 131 132 #if DT_INST_FOREACH_STATUS_OKAY(IS_EMIOS_OPWMCB_MODE_USED) 0 133 #define EMIOS_PWM_IP_MODE_OPWMCB_USED 134 #endif 135 136 #ifdef __cplusplus 137 } 138 #endif 139 140 /** @} */ 141 142 #endif /* EMIOS_PWM_IP_INIT_PBCFG_H */ 143 144