1 /* 2 * Copyright 2022-2024 NXP 3 * 4 * SPDX-License-Identifier: BSD-3-Clause 5 */ 6 7 #ifndef LINFLEXD_UART_IP_DEFINES_H 8 #define LINFLEXD_UART_IP_DEFINES_H 9 10 /** 11 * @file 12 * @defgroup linflexd_uart_ip Linflexd UART IPL 13 * @addtogroup linflexd_uart_ip Linflexd UART IPL 14 * @{ 15 */ 16 17 #ifdef __cplusplus 18 extern "C"{ 19 #endif 20 21 /*================================================================================================== 22 * INCLUDE FILES 23 * 1) system and project includes 24 * 2) needed interfaces from external units 25 * 3) internal and external interfaces from this unit 26 * 4) user callback header files 27 ==================================================================================================*/ 28 #include <zephyr/devicetree.h> 29 #include "S32Z2_LINFLEXD.h" 30 #include "Mcal.h" 31 /*================================================================================================== 32 * SOURCE FILE VERSION INFORMATION 33 ==================================================================================================*/ 34 #define LINFLEXD_UART_IP_DEFINES_VENDOR_ID 43 35 #define LINFLEXD_UART_IP_DEFINES_AR_RELEASE_MAJOR_VERSION 4 36 #define LINFLEXD_UART_IP_DEFINES_AR_RELEASE_MINOR_VERSION 7 37 #define LINFLEXD_UART_IP_DEFINES_AR_RELEASE_REVISION_VERSION 0 38 #define LINFLEXD_UART_IP_DEFINES_SW_MAJOR_VERSION 2 39 #define LINFLEXD_UART_IP_DEFINES_SW_MINOR_VERSION 0 40 #define LINFLEXD_UART_IP_DEFINES_SW_PATCH_VERSION 0 41 42 /*================================================================================================== 43 * FILE VERSION CHECKS 44 ==================================================================================================*/ 45 #ifndef DISABLE_MCAL_INTERMODULE_ASR_CHECK 46 /* Checks against Mcal.h */ 47 #if ((LINFLEXD_UART_IP_DEFINES_AR_RELEASE_MAJOR_VERSION != MCAL_AR_RELEASE_MAJOR_VERSION) || \ 48 (LINFLEXD_UART_IP_DEFINES_AR_RELEASE_MINOR_VERSION != MCAL_AR_RELEASE_MINOR_VERSION) \ 49 ) 50 #error "AUTOSAR Version Numbers of Linflexd_Uart_Ip_Defines.h and Mcal.h are different" 51 #endif 52 #endif 53 /*================================================================================================== 54 * CONSTANTS 55 ==================================================================================================*/ 56 57 /*================================================================================================== 58 * DEFINES AND MACROS 59 ==================================================================================================*/ 60 /** Number of instances of the LIN module. */ 61 #define LINFLEXD_IP_INSTANCE_COUNT LINFLEXD_INSTANCE_COUNT 62 63 /** Array initializer of LINFLEXD peripheral base pointers */ 64 #define LINFLEXD_IP_BASE_PTRS IP_LINFLEXD_BASE_PTRS 65 /* @brief Development error detection */ 66 #define LINFLEXD_UART_IP_DEV_ERROR_DETECT (STD_OFF) 67 68 /* @brief Total number of channels configured */ 69 #define LINFLEXD_UART_IP_NUMBER_OF_INSTANCES (DT_NUM_INST_STATUS_OKAY(nxp_s32_linflexd)) 70 71 /* @brief Uart Osif source counter. This parameter is used to select between different OsIf counter implementation */ 72 #define LINFLEXD_UART_IP_TIMEOUT_TYPE (OSIF_COUNTER_DUMMY) 73 74 /* @brief Number of loops before returning LINFLEXD_STATUS_TIMEOUT.*/ 75 #define LINFLEXD_UART_IP_TIMEOUT_VALUE_US (0U) 76 77 /* @brief LINFLEXD rx/tx/error interrupt lines ORED together. */ 78 #define LINFLEXD_UART_IP_ORED_INT_LINES (1U) 79 80 /* @brief LINFLEXD DMA support */ 81 #define LINFLEXD_UART_IP_HAS_DMA_ENABLED (STD_OFF) 82 83 /* @brief LINFLEXD DMA enabled instances */ 84 #define LINFLEXD_UART_IP_INST_HAS_DMA \ 85 {(boolean)TRUE, (boolean)TRUE, (boolean)TRUE, (boolean)TRUE, (boolean)TRUE, (boolean)TRUE, (boolean)TRUE, (boolean)TRUE, (boolean)TRUE, (boolean)TRUE, (boolean)TRUE, (boolean)TRUE, (boolean)TRUE} 86 87 /* @brief Support for User mode. If this parameter has been configured to TRUE, the Uart driver can be executed from both supervisor and user mode. */ 88 #define LINFLEXD_UART_IP_ENABLE_USER_MODE_SUPPORT (STD_OFF) 89 90 /* @brief Support for Uart Timeout Interrupt. If this parameter has been configured to TRUE, the Uart driver will enable Timeout Interrupt. */ 91 #define LINFLEXD_UART_IP_ENABLE_TIMEOUT_INTERRUPT (STD_OFF) 92 93 #if (STD_ON == LINFLEXD_UART_IP_ENABLE_TIMEOUT_INTERRUPT) 94 /* @brief Array of instances that have timeout interrupt enabled. */ 95 #define LINFLEXD_UART_IP_ENABLE_TIMEOUT_INTERRUPT_PER_INSTANCE {(boolean) FALSE,(boolean) FALSE,(boolean) FALSE,(boolean) FALSE,(boolean) FALSE,(boolean) FALSE,(boolean) FALSE,(boolean) FALSE,(boolean) FALSE,(boolean) FALSE,(boolean) FALSE,(boolean) FALSE,(boolean) FALSE } 96 #endif 97 98 /* @brief Support for Internal Loopback. If this parameter has been configured to TRUE, the Uart driver will be executed in Loopback mode. */ 99 #define LINFLEXD_UART_IP_ENABLE_INTERNAL_LOOPBACK (STD_OFF) 100 101 #if (STD_ON == LINFLEXD_UART_IP_ENABLE_INTERNAL_LOOPBACK) 102 /* @brief Array of instances that have loopback mode enabled. */ 103 #define LINFLEXD_UART_IP_ENABLE_INTERNAL_LOOPBACK_PER_INSTANCE {(boolean) FALSE,(boolean) FALSE,(boolean) FALSE,(boolean) FALSE,(boolean) FALSE,(boolean) FALSE,(boolean) FALSE,(boolean) FALSE,(boolean) FALSE,(boolean) FALSE,(boolean) FALSE,(boolean) FALSE,(boolean) FALSE } 104 #endif 105 106 /* Check the driver user mode is enabled only when the MCAL_ENABLE_USER_MODE_SUPPORT is enabled */ 107 #ifndef MCAL_ENABLE_USER_MODE_SUPPORT 108 #if (STD_ON == LINFLEXD_UART_IP_ENABLE_USER_MODE_SUPPORT) 109 #error MCAL_ENABLE_USER_MODE_SUPPORT is not enabled. For running Uart in user mode the MCAL_ENABLE_USER_MODE_SUPPORT needs to be defined. 110 #endif /* (STD_ON == LINFLEXD_UART_IP_ENABLE_USER_MODE_SUPPORT) */ 111 #endif /* ifndef MCAL_ENABLE_USER_MODE_SUPPORT */ 112 113 #ifdef MCAL_LINFLEX_REG_PROT_AVAILABLE 114 #if ((STD_ON == LINFLEXD_UART_IP_ENABLE_USER_MODE_SUPPORT) && (STD_ON == MCAL_LINFLEX_REG_PROT_AVAILABLE)) 115 /* @brief User mode enabled. */ 116 #define LINFLEXD_UART_IP_SET_USER_ACCESS_ALLOWED_AVAILABLE (STD_ON) 117 #else 118 /* @brief User mode disabled. */ 119 #define LINFLEXD_UART_IP_SET_USER_ACCESS_ALLOWED_AVAILABLE (STD_OFF) 120 #endif 121 #else 122 /* @brief User mode disabled. */ 123 #define LINFLEXD_UART_IP_SET_USER_ACCESS_ALLOWED_AVAILABLE (STD_OFF) 124 #endif /* MCAL_LINFLEX_REG_PROT_AVAILABLE */ 125 /*================================================================================================== 126 * ENUMS 127 ==================================================================================================*/ 128 129 /*================================================================================================== 130 * STRUCTURES AND OTHER TYPEDEFS 131 ==================================================================================================*/ 132 133 /*================================================================================================== 134 * GLOBAL VARIABLE DECLARATIONS 135 ==================================================================================================*/ 136 137 /*================================================================================================== 138 * FUNCTION PROTOTYPES 139 ==================================================================================================*/ 140 141 142 #ifdef __cplusplus 143 } 144 #endif 145 146 /** @} */ 147 148 #endif /* LINFLEXD_UART_IP_DEFINES_H */ 149