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