1 /*
2  * Copyright 1997-2016 Freescale Semiconductor, Inc.
3  * Copyright 2016-2022 NXP
4  *
5  * SPDX-License-Identifier: BSD-3-Clause
6  */
7 
8 /*!
9  * @file S32K116_FLEXCAN.h
10  * @version 1.1
11  * @date 2022-01-21
12  * @brief Peripheral Access Layer for S32K116_FLEXCAN
13  *
14  * This file contains register definitions and macros for easy access to their
15  * bit fields.
16  *
17  * This file assumes LITTLE endian system.
18  */
19 
20 /**
21 * @page misra_violations MISRA-C:2012 violations
22 *
23 * @section [global]
24 * Violates MISRA 2012 Advisory Rule 2.3, local typedef not referenced
25 * The SoC header defines typedef for all modules.
26 *
27 * @section [global]
28 * Violates MISRA 2012 Advisory Rule 2.5, local macro not referenced
29 * The SoC header defines macros for all modules and registers.
30 *
31 * @section [global]
32 * Violates MISRA 2012 Advisory Directive 4.9, Function-like macro
33 * These are generated macros used for accessing the bit-fields from registers.
34 *
35 * @section [global]
36 * Violates MISRA 2012 Required Rule 5.1, identifier clash
37 * The supported compilers use more than 31 significant characters for identifiers.
38 *
39 * @section [global]
40 * Violates MISRA 2012 Required Rule 5.2, identifier clash
41 * The supported compilers use more than 31 significant characters for identifiers.
42 *
43 * @section [global]
44 * Violates MISRA 2012 Required Rule 5.4, identifier clash
45 * The supported compilers use more than 31 significant characters for identifiers.
46 *
47 * @section [global]
48 * Violates MISRA 2012 Required Rule 5.5, identifier clash
49 * The supported compilers use more than 31 significant characters for identifiers.
50 *
51 * @section [global]
52 * Violates MISRA 2012 Required Rule 21.1, defined macro '__I' is reserved to the compiler
53 * This type qualifier is needed to ensure correct I/O access and addressing.
54 */
55 
56 /* Prevention from multiple including the same memory map */
57 #if !defined(S32K116_FLEXCAN_H_)  /* Check if memory map has not been already included */
58 #define S32K116_FLEXCAN_H_
59 
60 #include "S32K116_COMMON.h"
61 
62 /* ----------------------------------------------------------------------------
63    -- FLEXCAN Peripheral Access Layer
64    ---------------------------------------------------------------------------- */
65 
66 /*!
67  * @addtogroup CAN_Peripheral_Access_Layer FLEXCAN Peripheral Access Layer
68  * @{
69  */
70 
71 /** FLEXCAN - Size of Registers Arrays */
72 #define CAN_RAMn_COUNT                        128u
73 #define CAN_RXIMR_COUNT                       32u
74 #define CAN_WMB_COUNT                         4u
75 
76 /** FLEXCAN - Register Layout Typedef */
77 typedef struct {
78   __IO uint32_t MCR;                               /**< Module Configuration Register, offset: 0x0 */
79   __IO uint32_t CTRL1;                             /**< Control 1 Register, offset: 0x4 */
80   __IO uint32_t TIMER;                             /**< Free Running Timer, offset: 0x8 */
81   uint8_t RESERVED_0[4];
82   __IO uint32_t RXMGMASK;                          /**< Rx Mailboxes Global Mask Register, offset: 0x10 */
83   __IO uint32_t RX14MASK;                          /**< Rx 14 Mask Register, offset: 0x14 */
84   __IO uint32_t RX15MASK;                          /**< Rx 15 Mask Register, offset: 0x18 */
85   __IO uint32_t ECR;                               /**< Error Counter, offset: 0x1C */
86   __IO uint32_t ESR1;                              /**< Error and Status 1 Register, offset: 0x20 */
87   uint8_t RESERVED_1[4];
88   __IO uint32_t IMASK1;                            /**< Interrupt Masks 1 Register, offset: 0x28 */
89   uint8_t RESERVED_2[4];
90   __IO uint32_t IFLAG1;                            /**< Interrupt Flags 1 Register, offset: 0x30 */
91   __IO uint32_t CTRL2;                             /**< Control 2 Register, offset: 0x34 */
92   __I  uint32_t ESR2;                              /**< Error and Status 2 Register, offset: 0x38 */
93   uint8_t RESERVED_3[8];
94   __I  uint32_t CRCR;                              /**< CRC Register, offset: 0x44 */
95   __IO uint32_t RXFGMASK;                          /**< Rx FIFO Global Mask Register, offset: 0x48 */
96   __I  uint32_t RXFIR;                             /**< Rx FIFO Information Register, offset: 0x4C */
97   __IO uint32_t CBT;                               /**< CAN Bit Timing Register, offset: 0x50 */
98   uint8_t RESERVED_4[44];
99   struct {                                         /* offset: 0x80, array step: 0x10 */
100     __IO uint32_t CS;                              /**< Message Buffer 0 CS Register..Message Buffer 95 CS Register, array offset: 0x80, array step: 0x10 */
101     __IO uint32_t ID;                              /**< Message Buffer 0 ID Register..Message Buffer 95 ID Register, array offset: 0x84, array step: 0x10 */
102     __IO uint32_t WORD0;                           /**< Message Buffer 0 WORD0 Register..Message Buffer 95 WORD0 Register, array offset: 0x88, array step: 0x10 */
103     __IO uint32_t WORD1;                           /**< Message Buffer 0 WORD1 Register..Message Buffer 95 WORD1 Register, array offset: 0x8C, array step: 0x10 */
104   } MB[32];
105   uint8_t RESERVED_5[1536];
106   __IO uint32_t RXIMR[CAN_RXIMR_COUNT];            /**< Rx Individual Mask Registers, array offset: 0x880, array step: 0x4 */
107   uint8_t RESERVED_6[512];
108   __IO uint32_t CTRL1_PN;                          /**< Pretended Networking Control 1 Register, offset: 0xB00 */
109   __IO uint32_t CTRL2_PN;                          /**< Pretended Networking Control 2 Register, offset: 0xB04 */
110   __IO uint32_t WU_MTC;                            /**< Pretended Networking Wake Up Match Register, offset: 0xB08 */
111   __IO uint32_t FLT_ID1;                           /**< Pretended Networking ID Filter 1 Register, offset: 0xB0C */
112   __IO uint32_t FLT_DLC;                           /**< Pretended Networking DLC Filter Register, offset: 0xB10 */
113   __IO uint32_t PL1_LO;                            /**< Pretended Networking Payload Low Filter 1 Register, offset: 0xB14 */
114   __IO uint32_t PL1_HI;                            /**< Pretended Networking Payload High Filter 1 Register, offset: 0xB18 */
115   __IO uint32_t FLT_ID2_IDMASK;                    /**< Pretended Networking ID Filter 2 Register / ID Mask Register, offset: 0xB1C */
116   __IO uint32_t PL2_PLMASK_LO;                     /**< Pretended Networking Payload Low Filter 2 Register / Payload Low Mask register, offset: 0xB20 */
117   __IO uint32_t PL2_PLMASK_HI;                     /**< Pretended Networking Payload High Filter 2 low order bits / Payload High Mask register, offset: 0xB24 */
118   uint8_t RESERVED_7[24];
119   struct {                                         /* offset: 0xB40, array step: 0x10 */
120     __I  uint32_t WMBn_CS;                           /**< Wake Up Message Buffer register for C/S, array offset: 0xB40, array step: 0x10 */
121     __I  uint32_t WMBn_ID;                           /**< Wake Up Message Buffer Register for ID, array offset: 0xB44, array step: 0x10 */
122     __I  uint32_t WMBn_D03;                          /**< Wake Up Message Buffer Register for Data 0-3, array offset: 0xB48, array step: 0x10 */
123     __I  uint32_t WMBn_D47;                          /**< Wake Up Message Buffer Register Data 4-7, array offset: 0xB4C, array step: 0x10 */
124   } WMB[CAN_WMB_COUNT];
125   uint8_t RESERVED_8[128];
126   __IO uint32_t FDCTRL;                            /**< CAN FD Control Register, offset: 0xC00 */
127   __IO uint32_t FDCBT;                             /**< CAN FD Bit Timing Register, offset: 0xC04 */
128   __I  uint32_t FDCRC;                             /**< CAN FD CRC Register, offset: 0xC08 */
129 } CAN_Type, *CAN_MemMapPtr;
130 
131 /** Number of instances of the FLEXCAN module. */
132 #define CAN_INSTANCE_COUNT                       (1u)
133 
134 /* FLEXCAN - Peripheral instance base addresses */
135 /** Peripheral FLEXCAN0 base address */
136 #define IP_FLEXCAN0_BASE                         (0x40024000u)
137 /** Peripheral FLEXCAN0 base pointer */
138 #define IP_FLEXCAN0                              ((CAN_Type *)IP_FLEXCAN0_BASE)
139 /** Array initializer of FLEXCAN peripheral base addresses */
140 #define IP_FLEXCAN_BASE_ADDRS                    { IP_FLEXCAN0_BASE }
141 /** Array initializer of FLEXCAN peripheral base pointers */
142 #define IP_FLEXCAN_BASE_PTRS                     { IP_FLEXCAN0 }
143 
144 /* ----------------------------------------------------------------------------
145    -- FLEXCAN Register Masks
146    ---------------------------------------------------------------------------- */
147 
148 /*!
149  * @addtogroup CAN_Register_Masks FLEXCAN Register Masks
150  * @{
151  */
152 
153 /*! @name MCR - Module Configuration Register */
154 /*! @{ */
155 
156 #define CAN_MCR_MAXMB_MASK                   (0x7FU)
157 #define CAN_MCR_MAXMB_SHIFT                  (0U)
158 #define CAN_MCR_MAXMB_WIDTH                  (7U)
159 #define CAN_MCR_MAXMB(x)                     (((uint32_t)(((uint32_t)(x)) << CAN_MCR_MAXMB_SHIFT)) & CAN_MCR_MAXMB_MASK)
160 
161 #define CAN_MCR_IDAM_MASK                    (0x300U)
162 #define CAN_MCR_IDAM_SHIFT                   (8U)
163 #define CAN_MCR_IDAM_WIDTH                   (2U)
164 #define CAN_MCR_IDAM(x)                      (((uint32_t)(((uint32_t)(x)) << CAN_MCR_IDAM_SHIFT)) & CAN_MCR_IDAM_MASK)
165 
166 #define CAN_MCR_FDEN_MASK                    (0x800U)
167 #define CAN_MCR_FDEN_SHIFT                   (11U)
168 #define CAN_MCR_FDEN_WIDTH                   (1U)
169 #define CAN_MCR_FDEN(x)                      (((uint32_t)(((uint32_t)(x)) << CAN_MCR_FDEN_SHIFT)) & CAN_MCR_FDEN_MASK)
170 
171 #define CAN_MCR_AEN_MASK                     (0x1000U)
172 #define CAN_MCR_AEN_SHIFT                    (12U)
173 #define CAN_MCR_AEN_WIDTH                    (1U)
174 #define CAN_MCR_AEN(x)                       (((uint32_t)(((uint32_t)(x)) << CAN_MCR_AEN_SHIFT)) & CAN_MCR_AEN_MASK)
175 
176 #define CAN_MCR_LPRIOEN_MASK                 (0x2000U)
177 #define CAN_MCR_LPRIOEN_SHIFT                (13U)
178 #define CAN_MCR_LPRIOEN_WIDTH                (1U)
179 #define CAN_MCR_LPRIOEN(x)                   (((uint32_t)(((uint32_t)(x)) << CAN_MCR_LPRIOEN_SHIFT)) & CAN_MCR_LPRIOEN_MASK)
180 
181 #define CAN_MCR_PNET_EN_MASK                 (0x4000U)
182 #define CAN_MCR_PNET_EN_SHIFT                (14U)
183 #define CAN_MCR_PNET_EN_WIDTH                (1U)
184 #define CAN_MCR_PNET_EN(x)                   (((uint32_t)(((uint32_t)(x)) << CAN_MCR_PNET_EN_SHIFT)) & CAN_MCR_PNET_EN_MASK)
185 
186 #define CAN_MCR_DMA_MASK                     (0x8000U)
187 #define CAN_MCR_DMA_SHIFT                    (15U)
188 #define CAN_MCR_DMA_WIDTH                    (1U)
189 #define CAN_MCR_DMA(x)                       (((uint32_t)(((uint32_t)(x)) << CAN_MCR_DMA_SHIFT)) & CAN_MCR_DMA_MASK)
190 
191 #define CAN_MCR_IRMQ_MASK                    (0x10000U)
192 #define CAN_MCR_IRMQ_SHIFT                   (16U)
193 #define CAN_MCR_IRMQ_WIDTH                   (1U)
194 #define CAN_MCR_IRMQ(x)                      (((uint32_t)(((uint32_t)(x)) << CAN_MCR_IRMQ_SHIFT)) & CAN_MCR_IRMQ_MASK)
195 
196 #define CAN_MCR_SRXDIS_MASK                  (0x20000U)
197 #define CAN_MCR_SRXDIS_SHIFT                 (17U)
198 #define CAN_MCR_SRXDIS_WIDTH                 (1U)
199 #define CAN_MCR_SRXDIS(x)                    (((uint32_t)(((uint32_t)(x)) << CAN_MCR_SRXDIS_SHIFT)) & CAN_MCR_SRXDIS_MASK)
200 
201 #define CAN_MCR_DOZE_MASK                    (0x40000U)
202 #define CAN_MCR_DOZE_SHIFT                   (18U)
203 #define CAN_MCR_DOZE_WIDTH                   (1U)
204 #define CAN_MCR_DOZE(x)                      (((uint32_t)(((uint32_t)(x)) << CAN_MCR_DOZE_SHIFT)) & CAN_MCR_DOZE_MASK)
205 
206 #define CAN_MCR_WAKSRC_MASK                  (0x80000U) /* Reserved */
207 #define CAN_MCR_WAKSRC_SHIFT                 (19U)
208 #define CAN_MCR_WAKSRC_WIDTH                 (1U)
209 #define CAN_MCR_WAKSRC(x)                    (((uint32_t)(((uint32_t)(x)) << CAN_MCR_WAKSRC_SHIFT)) & CAN_MCR_WAKSRC_MASK)
210 
211 #define CAN_MCR_LPMACK_MASK                  (0x100000U)
212 #define CAN_MCR_LPMACK_SHIFT                 (20U)
213 #define CAN_MCR_LPMACK_WIDTH                 (1U)
214 #define CAN_MCR_LPMACK(x)                    (((uint32_t)(((uint32_t)(x)) << CAN_MCR_LPMACK_SHIFT)) & CAN_MCR_LPMACK_MASK)
215 
216 #define CAN_MCR_WRNEN_MASK                   (0x200000U)
217 #define CAN_MCR_WRNEN_SHIFT                  (21U)
218 #define CAN_MCR_WRNEN_WIDTH                  (1U)
219 #define CAN_MCR_WRNEN(x)                     (((uint32_t)(((uint32_t)(x)) << CAN_MCR_WRNEN_SHIFT)) & CAN_MCR_WRNEN_MASK)
220 
221 #define CAN_MCR_SLFWAK_MASK                  (0x400000U) /* Reserved */
222 #define CAN_MCR_SLFWAK_SHIFT                 (22U)
223 #define CAN_MCR_SLFWAK_WIDTH                 (1U)
224 #define CAN_MCR_SLFWAK(x)                    (((uint32_t)(((uint32_t)(x)) << CAN_MCR_SLFWAK_SHIFT)) & CAN_MCR_SLFWAK_MASK)
225 
226 #define CAN_MCR_SUPV_MASK                    (0x800000U)
227 #define CAN_MCR_SUPV_SHIFT                   (23U)
228 #define CAN_MCR_SUPV_WIDTH                   (1U)
229 #define CAN_MCR_SUPV(x)                      (((uint32_t)(((uint32_t)(x)) << CAN_MCR_SUPV_SHIFT)) & CAN_MCR_SUPV_MASK)
230 
231 #define CAN_MCR_FRZACK_MASK                  (0x1000000U)
232 #define CAN_MCR_FRZACK_SHIFT                 (24U)
233 #define CAN_MCR_FRZACK_WIDTH                 (1U)
234 #define CAN_MCR_FRZACK(x)                    (((uint32_t)(((uint32_t)(x)) << CAN_MCR_FRZACK_SHIFT)) & CAN_MCR_FRZACK_MASK)
235 
236 #define CAN_MCR_SOFTRST_MASK                 (0x2000000U)
237 #define CAN_MCR_SOFTRST_SHIFT                (25U)
238 #define CAN_MCR_SOFTRST_WIDTH                (1U)
239 #define CAN_MCR_SOFTRST(x)                   (((uint32_t)(((uint32_t)(x)) << CAN_MCR_SOFTRST_SHIFT)) & CAN_MCR_SOFTRST_MASK)
240 
241 #define CAN_MCR_WAKMSK_MASK                  (0x4000000U) /* Reserved */
242 #define CAN_MCR_WAKMSK_SHIFT                 (26U)
243 #define CAN_MCR_WAKMSK_WIDTH                 (1U)
244 #define CAN_MCR_WAKMSK(x)                    (((uint32_t)(((uint32_t)(x)) << CAN_MCR_WAKMSK_SHIFT)) & CAN_MCR_WAKMSK_MASK)
245 
246 #define CAN_MCR_NOTRDY_MASK                  (0x8000000U)
247 #define CAN_MCR_NOTRDY_SHIFT                 (27U)
248 #define CAN_MCR_NOTRDY_WIDTH                 (1U)
249 #define CAN_MCR_NOTRDY(x)                    (((uint32_t)(((uint32_t)(x)) << CAN_MCR_NOTRDY_SHIFT)) & CAN_MCR_NOTRDY_MASK)
250 
251 #define CAN_MCR_HALT_MASK                    (0x10000000U)
252 #define CAN_MCR_HALT_SHIFT                   (28U)
253 #define CAN_MCR_HALT_WIDTH                   (1U)
254 #define CAN_MCR_HALT(x)                      (((uint32_t)(((uint32_t)(x)) << CAN_MCR_HALT_SHIFT)) & CAN_MCR_HALT_MASK)
255 
256 #define CAN_MCR_RFEN_MASK                    (0x20000000U)
257 #define CAN_MCR_RFEN_SHIFT                   (29U)
258 #define CAN_MCR_RFEN_WIDTH                   (1U)
259 #define CAN_MCR_RFEN(x)                      (((uint32_t)(((uint32_t)(x)) << CAN_MCR_RFEN_SHIFT)) & CAN_MCR_RFEN_MASK)
260 
261 #define CAN_MCR_FRZ_MASK                     (0x40000000U)
262 #define CAN_MCR_FRZ_SHIFT                    (30U)
263 #define CAN_MCR_FRZ_WIDTH                    (1U)
264 #define CAN_MCR_FRZ(x)                       (((uint32_t)(((uint32_t)(x)) << CAN_MCR_FRZ_SHIFT)) & CAN_MCR_FRZ_MASK)
265 
266 #define CAN_MCR_MDIS_MASK                    (0x80000000U)
267 #define CAN_MCR_MDIS_SHIFT                   (31U)
268 #define CAN_MCR_MDIS_WIDTH                   (1U)
269 #define CAN_MCR_MDIS(x)                      (((uint32_t)(((uint32_t)(x)) << CAN_MCR_MDIS_SHIFT)) & CAN_MCR_MDIS_MASK)
270 /*! @} */
271 
272 /*! @name CTRL1 - Control 1 Register */
273 /*! @{ */
274 
275 #define CAN_CTRL1_PROPSEG_MASK               (0x7U)
276 #define CAN_CTRL1_PROPSEG_SHIFT              (0U)
277 #define CAN_CTRL1_PROPSEG_WIDTH              (3U)
278 #define CAN_CTRL1_PROPSEG(x)                 (((uint32_t)(((uint32_t)(x)) << CAN_CTRL1_PROPSEG_SHIFT)) & CAN_CTRL1_PROPSEG_MASK)
279 
280 #define CAN_CTRL1_LOM_MASK                   (0x8U)
281 #define CAN_CTRL1_LOM_SHIFT                  (3U)
282 #define CAN_CTRL1_LOM_WIDTH                  (1U)
283 #define CAN_CTRL1_LOM(x)                     (((uint32_t)(((uint32_t)(x)) << CAN_CTRL1_LOM_SHIFT)) & CAN_CTRL1_LOM_MASK)
284 
285 #define CAN_CTRL1_LBUF_MASK                  (0x10U)
286 #define CAN_CTRL1_LBUF_SHIFT                 (4U)
287 #define CAN_CTRL1_LBUF_WIDTH                 (1U)
288 #define CAN_CTRL1_LBUF(x)                    (((uint32_t)(((uint32_t)(x)) << CAN_CTRL1_LBUF_SHIFT)) & CAN_CTRL1_LBUF_MASK)
289 
290 #define CAN_CTRL1_TSYN_MASK                  (0x20U)
291 #define CAN_CTRL1_TSYN_SHIFT                 (5U)
292 #define CAN_CTRL1_TSYN_WIDTH                 (1U)
293 #define CAN_CTRL1_TSYN(x)                    (((uint32_t)(((uint32_t)(x)) << CAN_CTRL1_TSYN_SHIFT)) & CAN_CTRL1_TSYN_MASK)
294 
295 #define CAN_CTRL1_BOFFREC_MASK               (0x40U)
296 #define CAN_CTRL1_BOFFREC_SHIFT              (6U)
297 #define CAN_CTRL1_BOFFREC_WIDTH              (1U)
298 #define CAN_CTRL1_BOFFREC(x)                 (((uint32_t)(((uint32_t)(x)) << CAN_CTRL1_BOFFREC_SHIFT)) & CAN_CTRL1_BOFFREC_MASK)
299 
300 #define CAN_CTRL1_SMP_MASK                   (0x80U)
301 #define CAN_CTRL1_SMP_SHIFT                  (7U)
302 #define CAN_CTRL1_SMP_WIDTH                  (1U)
303 #define CAN_CTRL1_SMP(x)                     (((uint32_t)(((uint32_t)(x)) << CAN_CTRL1_SMP_SHIFT)) & CAN_CTRL1_SMP_MASK)
304 
305 #define CAN_CTRL1_RWRNMSK_MASK               (0x400U)
306 #define CAN_CTRL1_RWRNMSK_SHIFT              (10U)
307 #define CAN_CTRL1_RWRNMSK_WIDTH              (1U)
308 #define CAN_CTRL1_RWRNMSK(x)                 (((uint32_t)(((uint32_t)(x)) << CAN_CTRL1_RWRNMSK_SHIFT)) & CAN_CTRL1_RWRNMSK_MASK)
309 
310 #define CAN_CTRL1_TWRNMSK_MASK               (0x800U)
311 #define CAN_CTRL1_TWRNMSK_SHIFT              (11U)
312 #define CAN_CTRL1_TWRNMSK_WIDTH              (1U)
313 #define CAN_CTRL1_TWRNMSK(x)                 (((uint32_t)(((uint32_t)(x)) << CAN_CTRL1_TWRNMSK_SHIFT)) & CAN_CTRL1_TWRNMSK_MASK)
314 
315 #define CAN_CTRL1_LPB_MASK                   (0x1000U)
316 #define CAN_CTRL1_LPB_SHIFT                  (12U)
317 #define CAN_CTRL1_LPB_WIDTH                  (1U)
318 #define CAN_CTRL1_LPB(x)                     (((uint32_t)(((uint32_t)(x)) << CAN_CTRL1_LPB_SHIFT)) & CAN_CTRL1_LPB_MASK)
319 
320 #define CAN_CTRL1_CLKSRC_MASK                (0x2000U)
321 #define CAN_CTRL1_CLKSRC_SHIFT               (13U)
322 #define CAN_CTRL1_CLKSRC_WIDTH               (1U)
323 #define CAN_CTRL1_CLKSRC(x)                  (((uint32_t)(((uint32_t)(x)) << CAN_CTRL1_CLKSRC_SHIFT)) & CAN_CTRL1_CLKSRC_MASK)
324 
325 #define CAN_CTRL1_ERRMSK_MASK                (0x4000U)
326 #define CAN_CTRL1_ERRMSK_SHIFT               (14U)
327 #define CAN_CTRL1_ERRMSK_WIDTH               (1U)
328 #define CAN_CTRL1_ERRMSK(x)                  (((uint32_t)(((uint32_t)(x)) << CAN_CTRL1_ERRMSK_SHIFT)) & CAN_CTRL1_ERRMSK_MASK)
329 
330 #define CAN_CTRL1_BOFFMSK_MASK               (0x8000U)
331 #define CAN_CTRL1_BOFFMSK_SHIFT              (15U)
332 #define CAN_CTRL1_BOFFMSK_WIDTH              (1U)
333 #define CAN_CTRL1_BOFFMSK(x)                 (((uint32_t)(((uint32_t)(x)) << CAN_CTRL1_BOFFMSK_SHIFT)) & CAN_CTRL1_BOFFMSK_MASK)
334 
335 #define CAN_CTRL1_PSEG2_MASK                 (0x70000U)
336 #define CAN_CTRL1_PSEG2_SHIFT                (16U)
337 #define CAN_CTRL1_PSEG2_WIDTH                (3U)
338 #define CAN_CTRL1_PSEG2(x)                   (((uint32_t)(((uint32_t)(x)) << CAN_CTRL1_PSEG2_SHIFT)) & CAN_CTRL1_PSEG2_MASK)
339 
340 #define CAN_CTRL1_PSEG1_MASK                 (0x380000U)
341 #define CAN_CTRL1_PSEG1_SHIFT                (19U)
342 #define CAN_CTRL1_PSEG1_WIDTH                (3U)
343 #define CAN_CTRL1_PSEG1(x)                   (((uint32_t)(((uint32_t)(x)) << CAN_CTRL1_PSEG1_SHIFT)) & CAN_CTRL1_PSEG1_MASK)
344 
345 #define CAN_CTRL1_RJW_MASK                   (0xC00000U)
346 #define CAN_CTRL1_RJW_SHIFT                  (22U)
347 #define CAN_CTRL1_RJW_WIDTH                  (2U)
348 #define CAN_CTRL1_RJW(x)                     (((uint32_t)(((uint32_t)(x)) << CAN_CTRL1_RJW_SHIFT)) & CAN_CTRL1_RJW_MASK)
349 
350 #define CAN_CTRL1_PRESDIV_MASK               (0xFF000000U)
351 #define CAN_CTRL1_PRESDIV_SHIFT              (24U)
352 #define CAN_CTRL1_PRESDIV_WIDTH              (8U)
353 #define CAN_CTRL1_PRESDIV(x)                 (((uint32_t)(((uint32_t)(x)) << CAN_CTRL1_PRESDIV_SHIFT)) & CAN_CTRL1_PRESDIV_MASK)
354 /*! @} */
355 
356 /*! @name TIMER - Free Running Timer */
357 /*! @{ */
358 
359 #define CAN_TIMER_TIMER_MASK                 (0xFFFFU)
360 #define CAN_TIMER_TIMER_SHIFT                (0U)
361 #define CAN_TIMER_TIMER_WIDTH                (16U)
362 #define CAN_TIMER_TIMER(x)                   (((uint32_t)(((uint32_t)(x)) << CAN_TIMER_TIMER_SHIFT)) & CAN_TIMER_TIMER_MASK)
363 /*! @} */
364 
365 /*! @name RXMGMASK - Rx Mailboxes Global Mask Register */
366 /*! @{ */
367 
368 #define CAN_RXMGMASK_MG_MASK                 (0xFFFFFFFFU)
369 #define CAN_RXMGMASK_MG_SHIFT                (0U)
370 #define CAN_RXMGMASK_MG_WIDTH                (32U)
371 #define CAN_RXMGMASK_MG(x)                   (((uint32_t)(((uint32_t)(x)) << CAN_RXMGMASK_MG_SHIFT)) & CAN_RXMGMASK_MG_MASK)
372 /*! @} */
373 
374 /*! @name RX14MASK - Rx 14 Mask Register */
375 /*! @{ */
376 
377 #define CAN_RX14MASK_RX14M_MASK              (0xFFFFFFFFU)
378 #define CAN_RX14MASK_RX14M_SHIFT             (0U)
379 #define CAN_RX14MASK_RX14M_WIDTH             (32U)
380 #define CAN_RX14MASK_RX14M(x)                (((uint32_t)(((uint32_t)(x)) << CAN_RX14MASK_RX14M_SHIFT)) & CAN_RX14MASK_RX14M_MASK)
381 /*! @} */
382 
383 /*! @name RX15MASK - Rx 15 Mask Register */
384 /*! @{ */
385 
386 #define CAN_RX15MASK_RX15M_MASK              (0xFFFFFFFFU)
387 #define CAN_RX15MASK_RX15M_SHIFT             (0U)
388 #define CAN_RX15MASK_RX15M_WIDTH             (32U)
389 #define CAN_RX15MASK_RX15M(x)                (((uint32_t)(((uint32_t)(x)) << CAN_RX15MASK_RX15M_SHIFT)) & CAN_RX15MASK_RX15M_MASK)
390 /*! @} */
391 
392 /*! @name ECR - Error Counter */
393 /*! @{ */
394 
395 #define CAN_ECR_TXERRCNT_MASK                (0xFFU)
396 #define CAN_ECR_TXERRCNT_SHIFT               (0U)
397 #define CAN_ECR_TXERRCNT_WIDTH               (8U)
398 #define CAN_ECR_TXERRCNT(x)                  (((uint32_t)(((uint32_t)(x)) << CAN_ECR_TXERRCNT_SHIFT)) & CAN_ECR_TXERRCNT_MASK)
399 
400 #define CAN_ECR_RXERRCNT_MASK                (0xFF00U)
401 #define CAN_ECR_RXERRCNT_SHIFT               (8U)
402 #define CAN_ECR_RXERRCNT_WIDTH               (8U)
403 #define CAN_ECR_RXERRCNT(x)                  (((uint32_t)(((uint32_t)(x)) << CAN_ECR_RXERRCNT_SHIFT)) & CAN_ECR_RXERRCNT_MASK)
404 
405 #define CAN_ECR_TXERRCNT_FAST_MASK           (0xFF0000U)
406 #define CAN_ECR_TXERRCNT_FAST_SHIFT          (16U)
407 #define CAN_ECR_TXERRCNT_FAST_WIDTH          (8U)
408 #define CAN_ECR_TXERRCNT_FAST(x)             (((uint32_t)(((uint32_t)(x)) << CAN_ECR_TXERRCNT_FAST_SHIFT)) & CAN_ECR_TXERRCNT_FAST_MASK)
409 
410 #define CAN_ECR_RXERRCNT_FAST_MASK           (0xFF000000U)
411 #define CAN_ECR_RXERRCNT_FAST_SHIFT          (24U)
412 #define CAN_ECR_RXERRCNT_FAST_WIDTH          (8U)
413 #define CAN_ECR_RXERRCNT_FAST(x)             (((uint32_t)(((uint32_t)(x)) << CAN_ECR_RXERRCNT_FAST_SHIFT)) & CAN_ECR_RXERRCNT_FAST_MASK)
414 /*! @} */
415 
416 /*! @name ESR1 - Error and Status 1 Register */
417 /*! @{ */
418 
419 #define CAN_ESR1_WAKINT_MASK                 (0x1U) /* Reserved */
420 #define CAN_ESR1_WAKINT_SHIFT                (0U)
421 #define CAN_ESR1_WAKINT_WIDTH                (1U)
422 #define CAN_ESR1_WAKINT(x)                   (((uint32_t)(((uint32_t)(x)) << CAN_ESR1_WAKINT_SHIFT)) & CAN_ESR1_WAKINT_MASK)
423 
424 #define CAN_ESR1_ERRINT_MASK                 (0x2U)
425 #define CAN_ESR1_ERRINT_SHIFT                (1U)
426 #define CAN_ESR1_ERRINT_WIDTH                (1U)
427 #define CAN_ESR1_ERRINT(x)                   (((uint32_t)(((uint32_t)(x)) << CAN_ESR1_ERRINT_SHIFT)) & CAN_ESR1_ERRINT_MASK)
428 
429 #define CAN_ESR1_BOFFINT_MASK                (0x4U)
430 #define CAN_ESR1_BOFFINT_SHIFT               (2U)
431 #define CAN_ESR1_BOFFINT_WIDTH               (1U)
432 #define CAN_ESR1_BOFFINT(x)                  (((uint32_t)(((uint32_t)(x)) << CAN_ESR1_BOFFINT_SHIFT)) & CAN_ESR1_BOFFINT_MASK)
433 
434 #define CAN_ESR1_RX_MASK                     (0x8U)
435 #define CAN_ESR1_RX_SHIFT                    (3U)
436 #define CAN_ESR1_RX_WIDTH                    (1U)
437 #define CAN_ESR1_RX(x)                       (((uint32_t)(((uint32_t)(x)) << CAN_ESR1_RX_SHIFT)) & CAN_ESR1_RX_MASK)
438 
439 #define CAN_ESR1_FLTCONF_MASK                (0x30U)
440 #define CAN_ESR1_FLTCONF_SHIFT               (4U)
441 #define CAN_ESR1_FLTCONF_WIDTH               (2U)
442 #define CAN_ESR1_FLTCONF(x)                  (((uint32_t)(((uint32_t)(x)) << CAN_ESR1_FLTCONF_SHIFT)) & CAN_ESR1_FLTCONF_MASK)
443 
444 #define CAN_ESR1_TX_MASK                     (0x40U)
445 #define CAN_ESR1_TX_SHIFT                    (6U)
446 #define CAN_ESR1_TX_WIDTH                    (1U)
447 #define CAN_ESR1_TX(x)                       (((uint32_t)(((uint32_t)(x)) << CAN_ESR1_TX_SHIFT)) & CAN_ESR1_TX_MASK)
448 
449 #define CAN_ESR1_IDLE_MASK                   (0x80U)
450 #define CAN_ESR1_IDLE_SHIFT                  (7U)
451 #define CAN_ESR1_IDLE_WIDTH                  (1U)
452 #define CAN_ESR1_IDLE(x)                     (((uint32_t)(((uint32_t)(x)) << CAN_ESR1_IDLE_SHIFT)) & CAN_ESR1_IDLE_MASK)
453 
454 #define CAN_ESR1_RXWRN_MASK                  (0x100U)
455 #define CAN_ESR1_RXWRN_SHIFT                 (8U)
456 #define CAN_ESR1_RXWRN_WIDTH                 (1U)
457 #define CAN_ESR1_RXWRN(x)                    (((uint32_t)(((uint32_t)(x)) << CAN_ESR1_RXWRN_SHIFT)) & CAN_ESR1_RXWRN_MASK)
458 
459 #define CAN_ESR1_TXWRN_MASK                  (0x200U)
460 #define CAN_ESR1_TXWRN_SHIFT                 (9U)
461 #define CAN_ESR1_TXWRN_WIDTH                 (1U)
462 #define CAN_ESR1_TXWRN(x)                    (((uint32_t)(((uint32_t)(x)) << CAN_ESR1_TXWRN_SHIFT)) & CAN_ESR1_TXWRN_MASK)
463 
464 #define CAN_ESR1_STFERR_MASK                 (0x400U)
465 #define CAN_ESR1_STFERR_SHIFT                (10U)
466 #define CAN_ESR1_STFERR_WIDTH                (1U)
467 #define CAN_ESR1_STFERR(x)                   (((uint32_t)(((uint32_t)(x)) << CAN_ESR1_STFERR_SHIFT)) & CAN_ESR1_STFERR_MASK)
468 
469 #define CAN_ESR1_FRMERR_MASK                 (0x800U)
470 #define CAN_ESR1_FRMERR_SHIFT                (11U)
471 #define CAN_ESR1_FRMERR_WIDTH                (1U)
472 #define CAN_ESR1_FRMERR(x)                   (((uint32_t)(((uint32_t)(x)) << CAN_ESR1_FRMERR_SHIFT)) & CAN_ESR1_FRMERR_MASK)
473 
474 #define CAN_ESR1_CRCERR_MASK                 (0x1000U)
475 #define CAN_ESR1_CRCERR_SHIFT                (12U)
476 #define CAN_ESR1_CRCERR_WIDTH                (1U)
477 #define CAN_ESR1_CRCERR(x)                   (((uint32_t)(((uint32_t)(x)) << CAN_ESR1_CRCERR_SHIFT)) & CAN_ESR1_CRCERR_MASK)
478 
479 #define CAN_ESR1_ACKERR_MASK                 (0x2000U)
480 #define CAN_ESR1_ACKERR_SHIFT                (13U)
481 #define CAN_ESR1_ACKERR_WIDTH                (1U)
482 #define CAN_ESR1_ACKERR(x)                   (((uint32_t)(((uint32_t)(x)) << CAN_ESR1_ACKERR_SHIFT)) & CAN_ESR1_ACKERR_MASK)
483 
484 #define CAN_ESR1_BIT0ERR_MASK                (0x4000U)
485 #define CAN_ESR1_BIT0ERR_SHIFT               (14U)
486 #define CAN_ESR1_BIT0ERR_WIDTH               (1U)
487 #define CAN_ESR1_BIT0ERR(x)                  (((uint32_t)(((uint32_t)(x)) << CAN_ESR1_BIT0ERR_SHIFT)) & CAN_ESR1_BIT0ERR_MASK)
488 
489 #define CAN_ESR1_BIT1ERR_MASK                (0x8000U)
490 #define CAN_ESR1_BIT1ERR_SHIFT               (15U)
491 #define CAN_ESR1_BIT1ERR_WIDTH               (1U)
492 #define CAN_ESR1_BIT1ERR(x)                  (((uint32_t)(((uint32_t)(x)) << CAN_ESR1_BIT1ERR_SHIFT)) & CAN_ESR1_BIT1ERR_MASK)
493 
494 #define CAN_ESR1_RWRNINT_MASK                (0x10000U)
495 #define CAN_ESR1_RWRNINT_SHIFT               (16U)
496 #define CAN_ESR1_RWRNINT_WIDTH               (1U)
497 #define CAN_ESR1_RWRNINT(x)                  (((uint32_t)(((uint32_t)(x)) << CAN_ESR1_RWRNINT_SHIFT)) & CAN_ESR1_RWRNINT_MASK)
498 
499 #define CAN_ESR1_TWRNINT_MASK                (0x20000U)
500 #define CAN_ESR1_TWRNINT_SHIFT               (17U)
501 #define CAN_ESR1_TWRNINT_WIDTH               (1U)
502 #define CAN_ESR1_TWRNINT(x)                  (((uint32_t)(((uint32_t)(x)) << CAN_ESR1_TWRNINT_SHIFT)) & CAN_ESR1_TWRNINT_MASK)
503 
504 #define CAN_ESR1_SYNCH_MASK                  (0x40000U)
505 #define CAN_ESR1_SYNCH_SHIFT                 (18U)
506 #define CAN_ESR1_SYNCH_WIDTH                 (1U)
507 #define CAN_ESR1_SYNCH(x)                    (((uint32_t)(((uint32_t)(x)) << CAN_ESR1_SYNCH_SHIFT)) & CAN_ESR1_SYNCH_MASK)
508 
509 #define CAN_ESR1_BOFFDONEINT_MASK            (0x80000U)
510 #define CAN_ESR1_BOFFDONEINT_SHIFT           (19U)
511 #define CAN_ESR1_BOFFDONEINT_WIDTH           (1U)
512 #define CAN_ESR1_BOFFDONEINT(x)              (((uint32_t)(((uint32_t)(x)) << CAN_ESR1_BOFFDONEINT_SHIFT)) & CAN_ESR1_BOFFDONEINT_MASK)
513 
514 #define CAN_ESR1_ERRINT_FAST_MASK            (0x100000U)
515 #define CAN_ESR1_ERRINT_FAST_SHIFT           (20U)
516 #define CAN_ESR1_ERRINT_FAST_WIDTH           (1U)
517 #define CAN_ESR1_ERRINT_FAST(x)              (((uint32_t)(((uint32_t)(x)) << CAN_ESR1_ERRINT_FAST_SHIFT)) & CAN_ESR1_ERRINT_FAST_MASK)
518 
519 #define CAN_ESR1_ERROVR_MASK                 (0x200000U)
520 #define CAN_ESR1_ERROVR_SHIFT                (21U)
521 #define CAN_ESR1_ERROVR_WIDTH                (1U)
522 #define CAN_ESR1_ERROVR(x)                   (((uint32_t)(((uint32_t)(x)) << CAN_ESR1_ERROVR_SHIFT)) & CAN_ESR1_ERROVR_MASK)
523 
524 #define CAN_ESR1_STFERR_FAST_MASK            (0x4000000U)
525 #define CAN_ESR1_STFERR_FAST_SHIFT           (26U)
526 #define CAN_ESR1_STFERR_FAST_WIDTH           (1U)
527 #define CAN_ESR1_STFERR_FAST(x)              (((uint32_t)(((uint32_t)(x)) << CAN_ESR1_STFERR_FAST_SHIFT)) & CAN_ESR1_STFERR_FAST_MASK)
528 
529 #define CAN_ESR1_FRMERR_FAST_MASK            (0x8000000U)
530 #define CAN_ESR1_FRMERR_FAST_SHIFT           (27U)
531 #define CAN_ESR1_FRMERR_FAST_WIDTH           (1U)
532 #define CAN_ESR1_FRMERR_FAST(x)              (((uint32_t)(((uint32_t)(x)) << CAN_ESR1_FRMERR_FAST_SHIFT)) & CAN_ESR1_FRMERR_FAST_MASK)
533 
534 #define CAN_ESR1_CRCERR_FAST_MASK            (0x10000000U)
535 #define CAN_ESR1_CRCERR_FAST_SHIFT           (28U)
536 #define CAN_ESR1_CRCERR_FAST_WIDTH           (1U)
537 #define CAN_ESR1_CRCERR_FAST(x)              (((uint32_t)(((uint32_t)(x)) << CAN_ESR1_CRCERR_FAST_SHIFT)) & CAN_ESR1_CRCERR_FAST_MASK)
538 
539 #define CAN_ESR1_BIT0ERR_FAST_MASK           (0x40000000U)
540 #define CAN_ESR1_BIT0ERR_FAST_SHIFT          (30U)
541 #define CAN_ESR1_BIT0ERR_FAST_WIDTH          (1U)
542 #define CAN_ESR1_BIT0ERR_FAST(x)             (((uint32_t)(((uint32_t)(x)) << CAN_ESR1_BIT0ERR_FAST_SHIFT)) & CAN_ESR1_BIT0ERR_FAST_MASK)
543 
544 #define CAN_ESR1_BIT1ERR_FAST_MASK           (0x80000000U)
545 #define CAN_ESR1_BIT1ERR_FAST_SHIFT          (31U)
546 #define CAN_ESR1_BIT1ERR_FAST_WIDTH          (1U)
547 #define CAN_ESR1_BIT1ERR_FAST(x)             (((uint32_t)(((uint32_t)(x)) << CAN_ESR1_BIT1ERR_FAST_SHIFT)) & CAN_ESR1_BIT1ERR_FAST_MASK)
548 /*! @} */
549 
550 /*! @name IMASK1 - Interrupt Masks 1 Register */
551 /*! @{ */
552 
553 #define CAN_IMASK1_BUF31TO0M_MASK            (0xFFFFFFFFU)
554 #define CAN_IMASK1_BUF31TO0M_SHIFT           (0U)
555 #define CAN_IMASK1_BUF31TO0M_WIDTH           (32U)
556 #define CAN_IMASK1_BUF31TO0M(x)              (((uint32_t)(((uint32_t)(x)) << CAN_IMASK1_BUF31TO0M_SHIFT)) & CAN_IMASK1_BUF31TO0M_MASK)
557 /*! @} */
558 
559 /*! @name IFLAG1 - Interrupt Flags 1 Register */
560 /*! @{ */
561 
562 #define CAN_IFLAG1_BUF0I_MASK                (0x1U)
563 #define CAN_IFLAG1_BUF0I_SHIFT               (0U)
564 #define CAN_IFLAG1_BUF0I_WIDTH               (1U)
565 #define CAN_IFLAG1_BUF0I(x)                  (((uint32_t)(((uint32_t)(x)) << CAN_IFLAG1_BUF0I_SHIFT)) & CAN_IFLAG1_BUF0I_MASK)
566 
567 #define CAN_IFLAG1_BUF4TO1I_MASK             (0x1EU)
568 #define CAN_IFLAG1_BUF4TO1I_SHIFT            (1U)
569 #define CAN_IFLAG1_BUF4TO1I_WIDTH            (4U)
570 #define CAN_IFLAG1_BUF4TO1I(x)               (((uint32_t)(((uint32_t)(x)) << CAN_IFLAG1_BUF4TO1I_SHIFT)) & CAN_IFLAG1_BUF4TO1I_MASK)
571 
572 #define CAN_IFLAG1_BUF5I_MASK                (0x20U)
573 #define CAN_IFLAG1_BUF5I_SHIFT               (5U)
574 #define CAN_IFLAG1_BUF5I_WIDTH               (1U)
575 #define CAN_IFLAG1_BUF5I(x)                  (((uint32_t)(((uint32_t)(x)) << CAN_IFLAG1_BUF5I_SHIFT)) & CAN_IFLAG1_BUF5I_MASK)
576 
577 #define CAN_IFLAG1_BUF6I_MASK                (0x40U)
578 #define CAN_IFLAG1_BUF6I_SHIFT               (6U)
579 #define CAN_IFLAG1_BUF6I_WIDTH               (1U)
580 #define CAN_IFLAG1_BUF6I(x)                  (((uint32_t)(((uint32_t)(x)) << CAN_IFLAG1_BUF6I_SHIFT)) & CAN_IFLAG1_BUF6I_MASK)
581 
582 #define CAN_IFLAG1_BUF7I_MASK                (0x80U)
583 #define CAN_IFLAG1_BUF7I_SHIFT               (7U)
584 #define CAN_IFLAG1_BUF7I_WIDTH               (1U)
585 #define CAN_IFLAG1_BUF7I(x)                  (((uint32_t)(((uint32_t)(x)) << CAN_IFLAG1_BUF7I_SHIFT)) & CAN_IFLAG1_BUF7I_MASK)
586 
587 #define CAN_IFLAG1_BUF31TO8I_MASK            (0xFFFFFF00U)
588 #define CAN_IFLAG1_BUF31TO8I_SHIFT           (8U)
589 #define CAN_IFLAG1_BUF31TO8I_WIDTH           (24U)
590 #define CAN_IFLAG1_BUF31TO8I(x)              (((uint32_t)(((uint32_t)(x)) << CAN_IFLAG1_BUF31TO8I_SHIFT)) & CAN_IFLAG1_BUF31TO8I_MASK)
591 /*! @} */
592 
593 /*! @name CTRL2 - Control 2 Register */
594 /*! @{ */
595 
596 #define CAN_CTRL2_EDFLTDIS_MASK              (0x800U)
597 #define CAN_CTRL2_EDFLTDIS_SHIFT             (11U)
598 #define CAN_CTRL2_EDFLTDIS_WIDTH             (1U)
599 #define CAN_CTRL2_EDFLTDIS(x)                (((uint32_t)(((uint32_t)(x)) << CAN_CTRL2_EDFLTDIS_SHIFT)) & CAN_CTRL2_EDFLTDIS_MASK)
600 
601 #define CAN_CTRL2_ISOCANFDEN_MASK            (0x1000U)
602 #define CAN_CTRL2_ISOCANFDEN_SHIFT           (12U)
603 #define CAN_CTRL2_ISOCANFDEN_WIDTH           (1U)
604 #define CAN_CTRL2_ISOCANFDEN(x)              (((uint32_t)(((uint32_t)(x)) << CAN_CTRL2_ISOCANFDEN_SHIFT)) & CAN_CTRL2_ISOCANFDEN_MASK)
605 
606 #define CAN_CTRL2_PREXCEN_MASK               (0x4000U)
607 #define CAN_CTRL2_PREXCEN_SHIFT              (14U)
608 #define CAN_CTRL2_PREXCEN_WIDTH              (1U)
609 #define CAN_CTRL2_PREXCEN(x)                 (((uint32_t)(((uint32_t)(x)) << CAN_CTRL2_PREXCEN_SHIFT)) & CAN_CTRL2_PREXCEN_MASK)
610 
611 #define CAN_CTRL2_TIMER_SRC_MASK             (0x8000U)
612 #define CAN_CTRL2_TIMER_SRC_SHIFT            (15U)
613 #define CAN_CTRL2_TIMER_SRC_WIDTH            (1U)
614 #define CAN_CTRL2_TIMER_SRC(x)               (((uint32_t)(((uint32_t)(x)) << CAN_CTRL2_TIMER_SRC_SHIFT)) & CAN_CTRL2_TIMER_SRC_MASK)
615 
616 #define CAN_CTRL2_EACEN_MASK                 (0x10000U)
617 #define CAN_CTRL2_EACEN_SHIFT                (16U)
618 #define CAN_CTRL2_EACEN_WIDTH                (1U)
619 #define CAN_CTRL2_EACEN(x)                   (((uint32_t)(((uint32_t)(x)) << CAN_CTRL2_EACEN_SHIFT)) & CAN_CTRL2_EACEN_MASK)
620 
621 #define CAN_CTRL2_RRS_MASK                   (0x20000U)
622 #define CAN_CTRL2_RRS_SHIFT                  (17U)
623 #define CAN_CTRL2_RRS_WIDTH                  (1U)
624 #define CAN_CTRL2_RRS(x)                     (((uint32_t)(((uint32_t)(x)) << CAN_CTRL2_RRS_SHIFT)) & CAN_CTRL2_RRS_MASK)
625 
626 #define CAN_CTRL2_MRP_MASK                   (0x40000U)
627 #define CAN_CTRL2_MRP_SHIFT                  (18U)
628 #define CAN_CTRL2_MRP_WIDTH                  (1U)
629 #define CAN_CTRL2_MRP(x)                     (((uint32_t)(((uint32_t)(x)) << CAN_CTRL2_MRP_SHIFT)) & CAN_CTRL2_MRP_MASK)
630 
631 #define CAN_CTRL2_TASD_MASK                  (0xF80000U)
632 #define CAN_CTRL2_TASD_SHIFT                 (19U)
633 #define CAN_CTRL2_TASD_WIDTH                 (5U)
634 #define CAN_CTRL2_TASD(x)                    (((uint32_t)(((uint32_t)(x)) << CAN_CTRL2_TASD_SHIFT)) & CAN_CTRL2_TASD_MASK)
635 
636 #define CAN_CTRL2_RFFN_MASK                  (0xF000000U)
637 #define CAN_CTRL2_RFFN_SHIFT                 (24U)
638 #define CAN_CTRL2_RFFN_WIDTH                 (4U)
639 #define CAN_CTRL2_RFFN(x)                    (((uint32_t)(((uint32_t)(x)) << CAN_CTRL2_RFFN_SHIFT)) & CAN_CTRL2_RFFN_MASK)
640 
641 #define CAN_CTRL2_BOFFDONEMSK_MASK           (0x40000000U)
642 #define CAN_CTRL2_BOFFDONEMSK_SHIFT          (30U)
643 #define CAN_CTRL2_BOFFDONEMSK_WIDTH          (1U)
644 #define CAN_CTRL2_BOFFDONEMSK(x)             (((uint32_t)(((uint32_t)(x)) << CAN_CTRL2_BOFFDONEMSK_SHIFT)) & CAN_CTRL2_BOFFDONEMSK_MASK)
645 
646 #define CAN_CTRL2_ERRMSK_FAST_MASK           (0x80000000U)
647 #define CAN_CTRL2_ERRMSK_FAST_SHIFT          (31U)
648 #define CAN_CTRL2_ERRMSK_FAST_WIDTH          (1U)
649 #define CAN_CTRL2_ERRMSK_FAST(x)             (((uint32_t)(((uint32_t)(x)) << CAN_CTRL2_ERRMSK_FAST_SHIFT)) & CAN_CTRL2_ERRMSK_FAST_MASK)
650 /*! @} */
651 
652 /*! @name ESR2 - Error and Status 2 Register */
653 /*! @{ */
654 
655 #define CAN_ESR2_IMB_MASK                    (0x2000U)
656 #define CAN_ESR2_IMB_SHIFT                   (13U)
657 #define CAN_ESR2_IMB_WIDTH                   (1U)
658 #define CAN_ESR2_IMB(x)                      (((uint32_t)(((uint32_t)(x)) << CAN_ESR2_IMB_SHIFT)) & CAN_ESR2_IMB_MASK)
659 
660 #define CAN_ESR2_VPS_MASK                    (0x4000U)
661 #define CAN_ESR2_VPS_SHIFT                   (14U)
662 #define CAN_ESR2_VPS_WIDTH                   (1U)
663 #define CAN_ESR2_VPS(x)                      (((uint32_t)(((uint32_t)(x)) << CAN_ESR2_VPS_SHIFT)) & CAN_ESR2_VPS_MASK)
664 
665 #define CAN_ESR2_LPTM_MASK                   (0x7F0000U)
666 #define CAN_ESR2_LPTM_SHIFT                  (16U)
667 #define CAN_ESR2_LPTM_WIDTH                  (7U)
668 #define CAN_ESR2_LPTM(x)                     (((uint32_t)(((uint32_t)(x)) << CAN_ESR2_LPTM_SHIFT)) & CAN_ESR2_LPTM_MASK)
669 /*! @} */
670 
671 /*! @name CRCR - CRC Register */
672 /*! @{ */
673 
674 #define CAN_CRCR_TXCRC_MASK                  (0x7FFFU)
675 #define CAN_CRCR_TXCRC_SHIFT                 (0U)
676 #define CAN_CRCR_TXCRC_WIDTH                 (15U)
677 #define CAN_CRCR_TXCRC(x)                    (((uint32_t)(((uint32_t)(x)) << CAN_CRCR_TXCRC_SHIFT)) & CAN_CRCR_TXCRC_MASK)
678 
679 #define CAN_CRCR_MBCRC_MASK                  (0x7F0000U)
680 #define CAN_CRCR_MBCRC_SHIFT                 (16U)
681 #define CAN_CRCR_MBCRC_WIDTH                 (7U)
682 #define CAN_CRCR_MBCRC(x)                    (((uint32_t)(((uint32_t)(x)) << CAN_CRCR_MBCRC_SHIFT)) & CAN_CRCR_MBCRC_MASK)
683 /*! @} */
684 
685 /*! @name RXFGMASK - Rx FIFO Global Mask Register */
686 /*! @{ */
687 
688 #define CAN_RXFGMASK_FGM_MASK                (0xFFFFFFFFU)
689 #define CAN_RXFGMASK_FGM_SHIFT               (0U)
690 #define CAN_RXFGMASK_FGM_WIDTH               (32U)
691 #define CAN_RXFGMASK_FGM(x)                  (((uint32_t)(((uint32_t)(x)) << CAN_RXFGMASK_FGM_SHIFT)) & CAN_RXFGMASK_FGM_MASK)
692 /*! @} */
693 
694 /*! @name RXFIR - Rx FIFO Information Register */
695 /*! @{ */
696 
697 #define CAN_RXFIR_IDHIT_MASK                 (0x1FFU)
698 #define CAN_RXFIR_IDHIT_SHIFT                (0U)
699 #define CAN_RXFIR_IDHIT_WIDTH                (9U)
700 #define CAN_RXFIR_IDHIT(x)                   (((uint32_t)(((uint32_t)(x)) << CAN_RXFIR_IDHIT_SHIFT)) & CAN_RXFIR_IDHIT_MASK)
701 /*! @} */
702 
703 /*! @name CBT - CAN Bit Timing Register */
704 /*! @{ */
705 
706 #define CAN_CBT_EPSEG2_MASK                  (0x1FU)
707 #define CAN_CBT_EPSEG2_SHIFT                 (0U)
708 #define CAN_CBT_EPSEG2_WIDTH                 (5U)
709 #define CAN_CBT_EPSEG2(x)                    (((uint32_t)(((uint32_t)(x)) << CAN_CBT_EPSEG2_SHIFT)) & CAN_CBT_EPSEG2_MASK)
710 
711 #define CAN_CBT_EPSEG1_MASK                  (0x3E0U)
712 #define CAN_CBT_EPSEG1_SHIFT                 (5U)
713 #define CAN_CBT_EPSEG1_WIDTH                 (5U)
714 #define CAN_CBT_EPSEG1(x)                    (((uint32_t)(((uint32_t)(x)) << CAN_CBT_EPSEG1_SHIFT)) & CAN_CBT_EPSEG1_MASK)
715 
716 #define CAN_CBT_EPROPSEG_MASK                (0xFC00U)
717 #define CAN_CBT_EPROPSEG_SHIFT               (10U)
718 #define CAN_CBT_EPROPSEG_WIDTH               (6U)
719 #define CAN_CBT_EPROPSEG(x)                  (((uint32_t)(((uint32_t)(x)) << CAN_CBT_EPROPSEG_SHIFT)) & CAN_CBT_EPROPSEG_MASK)
720 
721 #define CAN_CBT_ERJW_MASK                    (0x1F0000U)
722 #define CAN_CBT_ERJW_SHIFT                   (16U)
723 #define CAN_CBT_ERJW_WIDTH                   (5U)
724 #define CAN_CBT_ERJW(x)                      (((uint32_t)(((uint32_t)(x)) << CAN_CBT_ERJW_SHIFT)) & CAN_CBT_ERJW_MASK)
725 
726 #define CAN_CBT_EPRESDIV_MASK                (0x7FE00000U)
727 #define CAN_CBT_EPRESDIV_SHIFT               (21U)
728 #define CAN_CBT_EPRESDIV_WIDTH               (10U)
729 #define CAN_CBT_EPRESDIV(x)                  (((uint32_t)(((uint32_t)(x)) << CAN_CBT_EPRESDIV_SHIFT)) & CAN_CBT_EPRESDIV_MASK)
730 
731 #define CAN_CBT_BTF_MASK                     (0x80000000U)
732 #define CAN_CBT_BTF_SHIFT                    (31U)
733 #define CAN_CBT_BTF_WIDTH                    (1U)
734 #define CAN_CBT_BTF(x)                       (((uint32_t)(((uint32_t)(x)) << CAN_CBT_BTF_SHIFT)) & CAN_CBT_BTF_MASK)
735 /*! @} */
736 
737 /*! @name CS - Message Buffer 0 CS Register..Message Buffer 31 CS Register */
738 /*! @{ */
739 
740 #define CAN_CS_TIME_STAMP_MASK               (0xFFFFU)
741 #define CAN_CS_TIME_STAMP_SHIFT              (0U)
742 #define CAN_CS_TIME_STAMP(x)                 (((uint32_t)(((uint32_t)(x)) << CAN_CS_TIME_STAMP_SHIFT)) & CAN_CS_TIME_STAMP_MASK)
743 
744 #define CAN_CS_DLC_MASK                      (0xF0000U)
745 #define CAN_CS_DLC_SHIFT                     (16U)
746 #define CAN_CS_DLC(x)                        (((uint32_t)(((uint32_t)(x)) << CAN_CS_DLC_SHIFT)) & CAN_CS_DLC_MASK)
747 
748 #define CAN_CS_RTR_MASK                      (0x100000U)
749 #define CAN_CS_RTR_SHIFT                     (20U)
750 #define CAN_CS_RTR(x)                        (((uint32_t)(((uint32_t)(x)) << CAN_CS_RTR_SHIFT)) & CAN_CS_RTR_MASK)
751 
752 #define CAN_CS_IDE_MASK                      (0x200000U)
753 #define CAN_CS_IDE_SHIFT                     (21U)
754 #define CAN_CS_IDE(x)                        (((uint32_t)(((uint32_t)(x)) << CAN_CS_IDE_SHIFT)) & CAN_CS_IDE_MASK)
755 
756 #define CAN_CS_SRR_MASK                      (0x400000U)
757 #define CAN_CS_SRR_SHIFT                     (22U)
758 #define CAN_CS_SRR(x)                        (((uint32_t)(((uint32_t)(x)) << CAN_CS_SRR_SHIFT)) & CAN_CS_SRR_MASK)
759 
760 #define CAN_CS_CODE_MASK                     (0xF000000U)
761 #define CAN_CS_CODE_SHIFT                    (24U)
762 #define CAN_CS_CODE(x)                       (((uint32_t)(((uint32_t)(x)) << CAN_CS_CODE_SHIFT)) & CAN_CS_CODE_MASK)
763 
764 #define CAN_CS_ESI_MASK                      (0x20000000U)
765 #define CAN_CS_ESI_SHIFT                     (29U)
766 #define CAN_CS_ESI(x)                        (((uint32_t)(((uint32_t)(x)) << CAN_CS_ESI_SHIFT)) & CAN_CS_ESI_MASK)
767 
768 #define CAN_CS_BRS_MASK                      (0x40000000U)
769 #define CAN_CS_BRS_SHIFT                     (30U)
770 #define CAN_CS_BRS(x)                        (((uint32_t)(((uint32_t)(x)) << CAN_CS_BRS_SHIFT)) & CAN_CS_BRS_MASK)
771 
772 #define CAN_CS_EDL_MASK                      (0x80000000U)
773 #define CAN_CS_EDL_SHIFT                     (31U)
774 #define CAN_CS_EDL(x)                        (((uint32_t)(((uint32_t)(x)) << CAN_CS_EDL_SHIFT)) & CAN_CS_EDL_MASK)
775 /*! @} */
776 
777 /* The count of CAN_CS */
778 #define CAN_CS_COUNT                         (32U)
779 
780 /*! @name ID - Message Buffer 0 ID Register..Message Buffer 31 ID Register */
781 /*! @{ */
782 
783 #define CAN_ID_EXT_MASK                      (0x3FFFFU)
784 #define CAN_ID_EXT_SHIFT                     (0U)
785 #define CAN_ID_EXT(x)                        (((uint32_t)(((uint32_t)(x)) << CAN_ID_EXT_SHIFT)) & CAN_ID_EXT_MASK)
786 
787 #define CAN_ID_STD_MASK                      (0x1FFC0000U)
788 #define CAN_ID_STD_SHIFT                     (18U)
789 #define CAN_ID_STD(x)                        (((uint32_t)(((uint32_t)(x)) << CAN_ID_STD_SHIFT)) & CAN_ID_STD_MASK)
790 
791 #define CAN_ID_PRIO_MASK                     (0xE0000000U)
792 #define CAN_ID_PRIO_SHIFT                    (29U)
793 #define CAN_ID_PRIO(x)                       (((uint32_t)(((uint32_t)(x)) << CAN_ID_PRIO_SHIFT)) & CAN_ID_PRIO_MASK)
794 /*! @} */
795 
796 /* The count of CAN_ID */
797 #define CAN_ID_COUNT                         (32U)
798 
799 /*! @name WORD0 - Message Buffer 0 WORD0 Register..Message Buffer 31 WORD0 Register */
800 /*! @{ */
801 
802 #define CAN_WORD0_DATA_BYTE_3_MASK           (0xFFU)
803 #define CAN_WORD0_DATA_BYTE_3_SHIFT          (0U)
804 #define CAN_WORD0_DATA_BYTE_3(x)             (((uint32_t)(((uint32_t)(x)) << CAN_WORD0_DATA_BYTE_3_SHIFT)) & CAN_WORD0_DATA_BYTE_3_MASK)
805 
806 #define CAN_WORD0_DATA_BYTE_2_MASK           (0xFF00U)
807 #define CAN_WORD0_DATA_BYTE_2_SHIFT          (8U)
808 #define CAN_WORD0_DATA_BYTE_2(x)             (((uint32_t)(((uint32_t)(x)) << CAN_WORD0_DATA_BYTE_2_SHIFT)) & CAN_WORD0_DATA_BYTE_2_MASK)
809 
810 #define CAN_WORD0_DATA_BYTE_1_MASK           (0xFF0000U)
811 #define CAN_WORD0_DATA_BYTE_1_SHIFT          (16U)
812 #define CAN_WORD0_DATA_BYTE_1(x)             (((uint32_t)(((uint32_t)(x)) << CAN_WORD0_DATA_BYTE_1_SHIFT)) & CAN_WORD0_DATA_BYTE_1_MASK)
813 
814 #define CAN_WORD0_DATA_BYTE_0_MASK           (0xFF000000U)
815 #define CAN_WORD0_DATA_BYTE_0_SHIFT          (24U)
816 #define CAN_WORD0_DATA_BYTE_0(x)             (((uint32_t)(((uint32_t)(x)) << CAN_WORD0_DATA_BYTE_0_SHIFT)) & CAN_WORD0_DATA_BYTE_0_MASK)
817 /*! @} */
818 
819 /* The count of CAN_WORD0 */
820 #define CAN_WORD0_COUNT                      (32U)
821 
822 /*! @name WORD1 - Message Buffer 0 WORD1 Register..Message Buffer 31 WORD1 Register */
823 /*! @{ */
824 
825 #define CAN_WORD1_DATA_BYTE_7_MASK           (0xFFU)
826 #define CAN_WORD1_DATA_BYTE_7_SHIFT          (0U)
827 #define CAN_WORD1_DATA_BYTE_7(x)             (((uint32_t)(((uint32_t)(x)) << CAN_WORD1_DATA_BYTE_7_SHIFT)) & CAN_WORD1_DATA_BYTE_7_MASK)
828 
829 #define CAN_WORD1_DATA_BYTE_6_MASK           (0xFF00U)
830 #define CAN_WORD1_DATA_BYTE_6_SHIFT          (8U)
831 #define CAN_WORD1_DATA_BYTE_6(x)             (((uint32_t)(((uint32_t)(x)) << CAN_WORD1_DATA_BYTE_6_SHIFT)) & CAN_WORD1_DATA_BYTE_6_MASK)
832 
833 #define CAN_WORD1_DATA_BYTE_5_MASK           (0xFF0000U)
834 #define CAN_WORD1_DATA_BYTE_5_SHIFT          (16U)
835 #define CAN_WORD1_DATA_BYTE_5(x)             (((uint32_t)(((uint32_t)(x)) << CAN_WORD1_DATA_BYTE_5_SHIFT)) & CAN_WORD1_DATA_BYTE_5_MASK)
836 
837 #define CAN_WORD1_DATA_BYTE_4_MASK           (0xFF000000U)
838 #define CAN_WORD1_DATA_BYTE_4_SHIFT          (24U)
839 #define CAN_WORD1_DATA_BYTE_4(x)             (((uint32_t)(((uint32_t)(x)) << CAN_WORD1_DATA_BYTE_4_SHIFT)) & CAN_WORD1_DATA_BYTE_4_MASK)
840 /*! @} */
841 
842 /* The count of CAN_WORD1 */
843 #define CAN_WORD1_COUNT                      (32U)
844 
845 /*! @name RXIMR - Rx Individual Mask Registers */
846 /*! @{ */
847 
848 #define CAN_RXIMR_MI_MASK                    (0xFFFFFFFFU)
849 #define CAN_RXIMR_MI_SHIFT                   (0U)
850 #define CAN_RXIMR_MI_WIDTH                   (32U)
851 #define CAN_RXIMR_MI(x)                      (((uint32_t)(((uint32_t)(x)) << CAN_RXIMR_MI_SHIFT)) & CAN_RXIMR_MI_MASK)
852 /*! @} */
853 
854 /*! @name CTRL1_PN - Pretended Networking Control 1 Register */
855 /*! @{ */
856 
857 #define CAN_CTRL1_PN_FCS_MASK                (0x3U)
858 #define CAN_CTRL1_PN_FCS_SHIFT               (0U)
859 #define CAN_CTRL1_PN_FCS_WIDTH               (2U)
860 #define CAN_CTRL1_PN_FCS(x)                  (((uint32_t)(((uint32_t)(x)) << CAN_CTRL1_PN_FCS_SHIFT)) & CAN_CTRL1_PN_FCS_MASK)
861 
862 #define CAN_CTRL1_PN_IDFS_MASK               (0xCU)
863 #define CAN_CTRL1_PN_IDFS_SHIFT              (2U)
864 #define CAN_CTRL1_PN_IDFS_WIDTH              (2U)
865 #define CAN_CTRL1_PN_IDFS(x)                 (((uint32_t)(((uint32_t)(x)) << CAN_CTRL1_PN_IDFS_SHIFT)) & CAN_CTRL1_PN_IDFS_MASK)
866 
867 #define CAN_CTRL1_PN_PLFS_MASK               (0x30U)
868 #define CAN_CTRL1_PN_PLFS_SHIFT              (4U)
869 #define CAN_CTRL1_PN_PLFS_WIDTH              (2U)
870 #define CAN_CTRL1_PN_PLFS(x)                 (((uint32_t)(((uint32_t)(x)) << CAN_CTRL1_PN_PLFS_SHIFT)) & CAN_CTRL1_PN_PLFS_MASK)
871 
872 #define CAN_CTRL1_PN_NMATCH_MASK             (0xFF00U)
873 #define CAN_CTRL1_PN_NMATCH_SHIFT            (8U)
874 #define CAN_CTRL1_PN_NMATCH_WIDTH            (8U)
875 #define CAN_CTRL1_PN_NMATCH(x)               (((uint32_t)(((uint32_t)(x)) << CAN_CTRL1_PN_NMATCH_SHIFT)) & CAN_CTRL1_PN_NMATCH_MASK)
876 
877 #define CAN_CTRL1_PN_WUMF_MSK_MASK           (0x10000U)
878 #define CAN_CTRL1_PN_WUMF_MSK_SHIFT          (16U)
879 #define CAN_CTRL1_PN_WUMF_MSK_WIDTH          (1U)
880 #define CAN_CTRL1_PN_WUMF_MSK(x)             (((uint32_t)(((uint32_t)(x)) << CAN_CTRL1_PN_WUMF_MSK_SHIFT)) & CAN_CTRL1_PN_WUMF_MSK_MASK)
881 
882 #define CAN_CTRL1_PN_WTOF_MSK_MASK           (0x20000U)
883 #define CAN_CTRL1_PN_WTOF_MSK_SHIFT          (17U)
884 #define CAN_CTRL1_PN_WTOF_MSK_WIDTH          (1U)
885 #define CAN_CTRL1_PN_WTOF_MSK(x)             (((uint32_t)(((uint32_t)(x)) << CAN_CTRL1_PN_WTOF_MSK_SHIFT)) & CAN_CTRL1_PN_WTOF_MSK_MASK)
886 /*! @} */
887 
888 /*! @name CTRL2_PN - Pretended Networking Control 2 Register */
889 /*! @{ */
890 
891 #define CAN_CTRL2_PN_MATCHTO_MASK            (0xFFFFU)
892 #define CAN_CTRL2_PN_MATCHTO_SHIFT           (0U)
893 #define CAN_CTRL2_PN_MATCHTO_WIDTH           (16U)
894 #define CAN_CTRL2_PN_MATCHTO(x)              (((uint32_t)(((uint32_t)(x)) << CAN_CTRL2_PN_MATCHTO_SHIFT)) & CAN_CTRL2_PN_MATCHTO_MASK)
895 /*! @} */
896 
897 /*! @name WU_MTC - Pretended Networking Wake Up Match Register */
898 /*! @{ */
899 
900 #define CAN_WU_MTC_MCOUNTER_MASK             (0xFF00U)
901 #define CAN_WU_MTC_MCOUNTER_SHIFT            (8U)
902 #define CAN_WU_MTC_MCOUNTER_WIDTH            (8U)
903 #define CAN_WU_MTC_MCOUNTER(x)               (((uint32_t)(((uint32_t)(x)) << CAN_WU_MTC_MCOUNTER_SHIFT)) & CAN_WU_MTC_MCOUNTER_MASK)
904 
905 #define CAN_WU_MTC_WUMF_MASK                 (0x10000U)
906 #define CAN_WU_MTC_WUMF_SHIFT                (16U)
907 #define CAN_WU_MTC_WUMF_WIDTH                (1U)
908 #define CAN_WU_MTC_WUMF(x)                   (((uint32_t)(((uint32_t)(x)) << CAN_WU_MTC_WUMF_SHIFT)) & CAN_WU_MTC_WUMF_MASK)
909 
910 #define CAN_WU_MTC_WTOF_MASK                 (0x20000U)
911 #define CAN_WU_MTC_WTOF_SHIFT                (17U)
912 #define CAN_WU_MTC_WTOF_WIDTH                (1U)
913 #define CAN_WU_MTC_WTOF(x)                   (((uint32_t)(((uint32_t)(x)) << CAN_WU_MTC_WTOF_SHIFT)) & CAN_WU_MTC_WTOF_MASK)
914 /*! @} */
915 
916 /*! @name FLT_ID1 - Pretended Networking ID Filter 1 Register */
917 /*! @{ */
918 
919 #define CAN_FLT_ID1_FLT_ID1_MASK             (0x1FFFFFFFU)
920 #define CAN_FLT_ID1_FLT_ID1_SHIFT            (0U)
921 #define CAN_FLT_ID1_FLT_ID1_WIDTH            (29U)
922 #define CAN_FLT_ID1_FLT_ID1(x)               (((uint32_t)(((uint32_t)(x)) << CAN_FLT_ID1_FLT_ID1_SHIFT)) & CAN_FLT_ID1_FLT_ID1_MASK)
923 
924 #define CAN_FLT_ID1_FLT_RTR_MASK             (0x20000000U)
925 #define CAN_FLT_ID1_FLT_RTR_SHIFT            (29U)
926 #define CAN_FLT_ID1_FLT_RTR_WIDTH            (1U)
927 #define CAN_FLT_ID1_FLT_RTR(x)               (((uint32_t)(((uint32_t)(x)) << CAN_FLT_ID1_FLT_RTR_SHIFT)) & CAN_FLT_ID1_FLT_RTR_MASK)
928 
929 #define CAN_FLT_ID1_FLT_IDE_MASK             (0x40000000U)
930 #define CAN_FLT_ID1_FLT_IDE_SHIFT            (30U)
931 #define CAN_FLT_ID1_FLT_IDE_WIDTH            (1U)
932 #define CAN_FLT_ID1_FLT_IDE(x)               (((uint32_t)(((uint32_t)(x)) << CAN_FLT_ID1_FLT_IDE_SHIFT)) & CAN_FLT_ID1_FLT_IDE_MASK)
933 /*! @} */
934 
935 /*! @name FLT_DLC - Pretended Networking DLC Filter Register */
936 /*! @{ */
937 
938 #define CAN_FLT_DLC_FLT_DLC_HI_MASK          (0xFU)
939 #define CAN_FLT_DLC_FLT_DLC_HI_SHIFT         (0U)
940 #define CAN_FLT_DLC_FLT_DLC_HI_WIDTH         (4U)
941 #define CAN_FLT_DLC_FLT_DLC_HI(x)            (((uint32_t)(((uint32_t)(x)) << CAN_FLT_DLC_FLT_DLC_HI_SHIFT)) & CAN_FLT_DLC_FLT_DLC_HI_MASK)
942 
943 #define CAN_FLT_DLC_FLT_DLC_LO_MASK          (0xF0000U)
944 #define CAN_FLT_DLC_FLT_DLC_LO_SHIFT         (16U)
945 #define CAN_FLT_DLC_FLT_DLC_LO_WIDTH         (4U)
946 #define CAN_FLT_DLC_FLT_DLC_LO(x)            (((uint32_t)(((uint32_t)(x)) << CAN_FLT_DLC_FLT_DLC_LO_SHIFT)) & CAN_FLT_DLC_FLT_DLC_LO_MASK)
947 /*! @} */
948 
949 /*! @name PL1_LO - Pretended Networking Payload Low Filter 1 Register */
950 /*! @{ */
951 
952 #define CAN_PL1_LO_Data_byte_3_MASK          (0xFFU)
953 #define CAN_PL1_LO_Data_byte_3_SHIFT         (0U)
954 #define CAN_PL1_LO_Data_byte_3_WIDTH         (8U)
955 #define CAN_PL1_LO_Data_byte_3(x)            (((uint32_t)(((uint32_t)(x)) << CAN_PL1_LO_Data_byte_3_SHIFT)) & CAN_PL1_LO_Data_byte_3_MASK)
956 
957 #define CAN_PL1_LO_Data_byte_2_MASK          (0xFF00U)
958 #define CAN_PL1_LO_Data_byte_2_SHIFT         (8U)
959 #define CAN_PL1_LO_Data_byte_2_WIDTH         (8U)
960 #define CAN_PL1_LO_Data_byte_2(x)            (((uint32_t)(((uint32_t)(x)) << CAN_PL1_LO_Data_byte_2_SHIFT)) & CAN_PL1_LO_Data_byte_2_MASK)
961 
962 #define CAN_PL1_LO_Data_byte_1_MASK          (0xFF0000U)
963 #define CAN_PL1_LO_Data_byte_1_SHIFT         (16U)
964 #define CAN_PL1_LO_Data_byte_1_WIDTH         (8U)
965 #define CAN_PL1_LO_Data_byte_1(x)            (((uint32_t)(((uint32_t)(x)) << CAN_PL1_LO_Data_byte_1_SHIFT)) & CAN_PL1_LO_Data_byte_1_MASK)
966 
967 #define CAN_PL1_LO_Data_byte_0_MASK          (0xFF000000U)
968 #define CAN_PL1_LO_Data_byte_0_SHIFT         (24U)
969 #define CAN_PL1_LO_Data_byte_0_WIDTH         (8U)
970 #define CAN_PL1_LO_Data_byte_0(x)            (((uint32_t)(((uint32_t)(x)) << CAN_PL1_LO_Data_byte_0_SHIFT)) & CAN_PL1_LO_Data_byte_0_MASK)
971 /*! @} */
972 
973 /*! @name PL1_HI - Pretended Networking Payload High Filter 1 Register */
974 /*! @{ */
975 
976 #define CAN_PL1_HI_Data_byte_7_MASK          (0xFFU)
977 #define CAN_PL1_HI_Data_byte_7_SHIFT         (0U)
978 #define CAN_PL1_HI_Data_byte_7_WIDTH         (8U)
979 #define CAN_PL1_HI_Data_byte_7(x)            (((uint32_t)(((uint32_t)(x)) << CAN_PL1_HI_Data_byte_7_SHIFT)) & CAN_PL1_HI_Data_byte_7_MASK)
980 
981 #define CAN_PL1_HI_Data_byte_6_MASK          (0xFF00U)
982 #define CAN_PL1_HI_Data_byte_6_SHIFT         (8U)
983 #define CAN_PL1_HI_Data_byte_6_WIDTH         (8U)
984 #define CAN_PL1_HI_Data_byte_6(x)            (((uint32_t)(((uint32_t)(x)) << CAN_PL1_HI_Data_byte_6_SHIFT)) & CAN_PL1_HI_Data_byte_6_MASK)
985 
986 #define CAN_PL1_HI_Data_byte_5_MASK          (0xFF0000U)
987 #define CAN_PL1_HI_Data_byte_5_SHIFT         (16U)
988 #define CAN_PL1_HI_Data_byte_5_WIDTH         (8U)
989 #define CAN_PL1_HI_Data_byte_5(x)            (((uint32_t)(((uint32_t)(x)) << CAN_PL1_HI_Data_byte_5_SHIFT)) & CAN_PL1_HI_Data_byte_5_MASK)
990 
991 #define CAN_PL1_HI_Data_byte_4_MASK          (0xFF000000U)
992 #define CAN_PL1_HI_Data_byte_4_SHIFT         (24U)
993 #define CAN_PL1_HI_Data_byte_4_WIDTH         (8U)
994 #define CAN_PL1_HI_Data_byte_4(x)            (((uint32_t)(((uint32_t)(x)) << CAN_PL1_HI_Data_byte_4_SHIFT)) & CAN_PL1_HI_Data_byte_4_MASK)
995 /*! @} */
996 
997 /*! @name FLT_ID2_IDMASK - Pretended Networking ID Filter 2 Register / ID Mask Register */
998 /*! @{ */
999 
1000 #define CAN_FLT_ID2_IDMASK_FLT_ID2_IDMASK_MASK (0x1FFFFFFFU)
1001 #define CAN_FLT_ID2_IDMASK_FLT_ID2_IDMASK_SHIFT (0U)
1002 #define CAN_FLT_ID2_IDMASK_FLT_ID2_IDMASK_WIDTH (29U)
1003 #define CAN_FLT_ID2_IDMASK_FLT_ID2_IDMASK(x) (((uint32_t)(((uint32_t)(x)) << CAN_FLT_ID2_IDMASK_FLT_ID2_IDMASK_SHIFT)) & CAN_FLT_ID2_IDMASK_FLT_ID2_IDMASK_MASK)
1004 
1005 #define CAN_FLT_ID2_IDMASK_RTR_MSK_MASK      (0x20000000U)
1006 #define CAN_FLT_ID2_IDMASK_RTR_MSK_SHIFT     (29U)
1007 #define CAN_FLT_ID2_IDMASK_RTR_MSK_WIDTH     (1U)
1008 #define CAN_FLT_ID2_IDMASK_RTR_MSK(x)        (((uint32_t)(((uint32_t)(x)) << CAN_FLT_ID2_IDMASK_RTR_MSK_SHIFT)) & CAN_FLT_ID2_IDMASK_RTR_MSK_MASK)
1009 
1010 #define CAN_FLT_ID2_IDMASK_IDE_MSK_MASK      (0x40000000U)
1011 #define CAN_FLT_ID2_IDMASK_IDE_MSK_SHIFT     (30U)
1012 #define CAN_FLT_ID2_IDMASK_IDE_MSK_WIDTH     (1U)
1013 #define CAN_FLT_ID2_IDMASK_IDE_MSK(x)        (((uint32_t)(((uint32_t)(x)) << CAN_FLT_ID2_IDMASK_IDE_MSK_SHIFT)) & CAN_FLT_ID2_IDMASK_IDE_MSK_MASK)
1014 /*! @} */
1015 
1016 /*! @name PL2_PLMASK_LO - Pretended Networking Payload Low Filter 2 Register / Payload Low Mask register */
1017 /*! @{ */
1018 
1019 #define CAN_PL2_PLMASK_LO_Data_byte_3_MASK   (0xFFU)
1020 #define CAN_PL2_PLMASK_LO_Data_byte_3_SHIFT  (0U)
1021 #define CAN_PL2_PLMASK_LO_Data_byte_3_WIDTH  (8U)
1022 #define CAN_PL2_PLMASK_LO_Data_byte_3(x)     (((uint32_t)(((uint32_t)(x)) << CAN_PL2_PLMASK_LO_Data_byte_3_SHIFT)) & CAN_PL2_PLMASK_LO_Data_byte_3_MASK)
1023 
1024 #define CAN_PL2_PLMASK_LO_Data_byte_2_MASK   (0xFF00U)
1025 #define CAN_PL2_PLMASK_LO_Data_byte_2_SHIFT  (8U)
1026 #define CAN_PL2_PLMASK_LO_Data_byte_2_WIDTH  (8U)
1027 #define CAN_PL2_PLMASK_LO_Data_byte_2(x)     (((uint32_t)(((uint32_t)(x)) << CAN_PL2_PLMASK_LO_Data_byte_2_SHIFT)) & CAN_PL2_PLMASK_LO_Data_byte_2_MASK)
1028 
1029 #define CAN_PL2_PLMASK_LO_Data_byte_1_MASK   (0xFF0000U)
1030 #define CAN_PL2_PLMASK_LO_Data_byte_1_SHIFT  (16U)
1031 #define CAN_PL2_PLMASK_LO_Data_byte_1_WIDTH  (8U)
1032 #define CAN_PL2_PLMASK_LO_Data_byte_1(x)     (((uint32_t)(((uint32_t)(x)) << CAN_PL2_PLMASK_LO_Data_byte_1_SHIFT)) & CAN_PL2_PLMASK_LO_Data_byte_1_MASK)
1033 
1034 #define CAN_PL2_PLMASK_LO_Data_byte_0_MASK   (0xFF000000U)
1035 #define CAN_PL2_PLMASK_LO_Data_byte_0_SHIFT  (24U)
1036 #define CAN_PL2_PLMASK_LO_Data_byte_0_WIDTH  (8U)
1037 #define CAN_PL2_PLMASK_LO_Data_byte_0(x)     (((uint32_t)(((uint32_t)(x)) << CAN_PL2_PLMASK_LO_Data_byte_0_SHIFT)) & CAN_PL2_PLMASK_LO_Data_byte_0_MASK)
1038 /*! @} */
1039 
1040 /*! @name PL2_PLMASK_HI - Pretended Networking Payload High Filter 2 low order bits / Payload High Mask register */
1041 /*! @{ */
1042 
1043 #define CAN_PL2_PLMASK_HI_Data_byte_7_MASK   (0xFFU)
1044 #define CAN_PL2_PLMASK_HI_Data_byte_7_SHIFT  (0U)
1045 #define CAN_PL2_PLMASK_HI_Data_byte_7_WIDTH  (8U)
1046 #define CAN_PL2_PLMASK_HI_Data_byte_7(x)     (((uint32_t)(((uint32_t)(x)) << CAN_PL2_PLMASK_HI_Data_byte_7_SHIFT)) & CAN_PL2_PLMASK_HI_Data_byte_7_MASK)
1047 
1048 #define CAN_PL2_PLMASK_HI_Data_byte_6_MASK   (0xFF00U)
1049 #define CAN_PL2_PLMASK_HI_Data_byte_6_SHIFT  (8U)
1050 #define CAN_PL2_PLMASK_HI_Data_byte_6_WIDTH  (8U)
1051 #define CAN_PL2_PLMASK_HI_Data_byte_6(x)     (((uint32_t)(((uint32_t)(x)) << CAN_PL2_PLMASK_HI_Data_byte_6_SHIFT)) & CAN_PL2_PLMASK_HI_Data_byte_6_MASK)
1052 
1053 #define CAN_PL2_PLMASK_HI_Data_byte_5_MASK   (0xFF0000U)
1054 #define CAN_PL2_PLMASK_HI_Data_byte_5_SHIFT  (16U)
1055 #define CAN_PL2_PLMASK_HI_Data_byte_5_WIDTH  (8U)
1056 #define CAN_PL2_PLMASK_HI_Data_byte_5(x)     (((uint32_t)(((uint32_t)(x)) << CAN_PL2_PLMASK_HI_Data_byte_5_SHIFT)) & CAN_PL2_PLMASK_HI_Data_byte_5_MASK)
1057 
1058 #define CAN_PL2_PLMASK_HI_Data_byte_4_MASK   (0xFF000000U)
1059 #define CAN_PL2_PLMASK_HI_Data_byte_4_SHIFT  (24U)
1060 #define CAN_PL2_PLMASK_HI_Data_byte_4_WIDTH  (8U)
1061 #define CAN_PL2_PLMASK_HI_Data_byte_4(x)     (((uint32_t)(((uint32_t)(x)) << CAN_PL2_PLMASK_HI_Data_byte_4_SHIFT)) & CAN_PL2_PLMASK_HI_Data_byte_4_MASK)
1062 /*! @} */
1063 
1064 /*! @name WMBn_CS - Wake Up Message Buffer register for C/S */
1065 /*! @{ */
1066 
1067 #define CAN_WMBn_CS_DLC_MASK                 (0xF0000U)
1068 #define CAN_WMBn_CS_DLC_SHIFT                (16U)
1069 #define CAN_WMBn_CS_DLC_WIDTH                (4U)
1070 #define CAN_WMBn_CS_DLC(x)                   (((uint32_t)(((uint32_t)(x)) << CAN_WMBn_CS_DLC_SHIFT)) & CAN_WMBn_CS_DLC_MASK)
1071 
1072 #define CAN_WMBn_CS_RTR_MASK                 (0x100000U)
1073 #define CAN_WMBn_CS_RTR_SHIFT                (20U)
1074 #define CAN_WMBn_CS_RTR_WIDTH                (1U)
1075 #define CAN_WMBn_CS_RTR(x)                   (((uint32_t)(((uint32_t)(x)) << CAN_WMBn_CS_RTR_SHIFT)) & CAN_WMBn_CS_RTR_MASK)
1076 
1077 #define CAN_WMBn_CS_IDE_MASK                 (0x200000U)
1078 #define CAN_WMBn_CS_IDE_SHIFT                (21U)
1079 #define CAN_WMBn_CS_IDE_WIDTH                (1U)
1080 #define CAN_WMBn_CS_IDE(x)                   (((uint32_t)(((uint32_t)(x)) << CAN_WMBn_CS_IDE_SHIFT)) & CAN_WMBn_CS_IDE_MASK)
1081 
1082 #define CAN_WMBn_CS_SRR_MASK                 (0x400000U)
1083 #define CAN_WMBn_CS_SRR_SHIFT                (22U)
1084 #define CAN_WMBn_CS_SRR_WIDTH                (1U)
1085 #define CAN_WMBn_CS_SRR(x)                   (((uint32_t)(((uint32_t)(x)) << CAN_WMBn_CS_SRR_SHIFT)) & CAN_WMBn_CS_SRR_MASK)
1086 /*! @} */
1087 
1088 /*! @name WMBn_ID - Wake Up Message Buffer Register for ID */
1089 /*! @{ */
1090 
1091 #define CAN_WMBn_ID_ID_MASK                  (0x1FFFFFFFU)
1092 #define CAN_WMBn_ID_ID_SHIFT                 (0U)
1093 #define CAN_WMBn_ID_ID_WIDTH                 (29U)
1094 #define CAN_WMBn_ID_ID(x)                    (((uint32_t)(((uint32_t)(x)) << CAN_WMBn_ID_ID_SHIFT)) & CAN_WMBn_ID_ID_MASK)
1095 /*! @} */
1096 
1097 /*! @name WMBn_D03 - Wake Up Message Buffer Register for Data 0-3 */
1098 /*! @{ */
1099 
1100 #define CAN_WMBn_D03_Data_byte_3_MASK        (0xFFU)
1101 #define CAN_WMBn_D03_Data_byte_3_SHIFT       (0U)
1102 #define CAN_WMBn_D03_Data_byte_3_WIDTH       (8U)
1103 #define CAN_WMBn_D03_Data_byte_3(x)          (((uint32_t)(((uint32_t)(x)) << CAN_WMBn_D03_Data_byte_3_SHIFT)) & CAN_WMBn_D03_Data_byte_3_MASK)
1104 
1105 #define CAN_WMBn_D03_Data_byte_2_MASK        (0xFF00U)
1106 #define CAN_WMBn_D03_Data_byte_2_SHIFT       (8U)
1107 #define CAN_WMBn_D03_Data_byte_2_WIDTH       (8U)
1108 #define CAN_WMBn_D03_Data_byte_2(x)          (((uint32_t)(((uint32_t)(x)) << CAN_WMBn_D03_Data_byte_2_SHIFT)) & CAN_WMBn_D03_Data_byte_2_MASK)
1109 
1110 #define CAN_WMBn_D03_Data_byte_1_MASK        (0xFF0000U)
1111 #define CAN_WMBn_D03_Data_byte_1_SHIFT       (16U)
1112 #define CAN_WMBn_D03_Data_byte_1_WIDTH       (8U)
1113 #define CAN_WMBn_D03_Data_byte_1(x)          (((uint32_t)(((uint32_t)(x)) << CAN_WMBn_D03_Data_byte_1_SHIFT)) & CAN_WMBn_D03_Data_byte_1_MASK)
1114 
1115 #define CAN_WMBn_D03_Data_byte_0_MASK        (0xFF000000U)
1116 #define CAN_WMBn_D03_Data_byte_0_SHIFT       (24U)
1117 #define CAN_WMBn_D03_Data_byte_0_WIDTH       (8U)
1118 #define CAN_WMBn_D03_Data_byte_0(x)          (((uint32_t)(((uint32_t)(x)) << CAN_WMBn_D03_Data_byte_0_SHIFT)) & CAN_WMBn_D03_Data_byte_0_MASK)
1119 /*! @} */
1120 
1121 /*! @name WMBn_D47 - Wake Up Message Buffer Register Data 4-7 */
1122 /*! @{ */
1123 
1124 #define CAN_WMBn_D47_Data_byte_7_MASK        (0xFFU)
1125 #define CAN_WMBn_D47_Data_byte_7_SHIFT       (0U)
1126 #define CAN_WMBn_D47_Data_byte_7_WIDTH       (8U)
1127 #define CAN_WMBn_D47_Data_byte_7(x)          (((uint32_t)(((uint32_t)(x)) << CAN_WMBn_D47_Data_byte_7_SHIFT)) & CAN_WMBn_D47_Data_byte_7_MASK)
1128 
1129 #define CAN_WMBn_D47_Data_byte_6_MASK        (0xFF00U)
1130 #define CAN_WMBn_D47_Data_byte_6_SHIFT       (8U)
1131 #define CAN_WMBn_D47_Data_byte_6_WIDTH       (8U)
1132 #define CAN_WMBn_D47_Data_byte_6(x)          (((uint32_t)(((uint32_t)(x)) << CAN_WMBn_D47_Data_byte_6_SHIFT)) & CAN_WMBn_D47_Data_byte_6_MASK)
1133 
1134 #define CAN_WMBn_D47_Data_byte_5_MASK        (0xFF0000U)
1135 #define CAN_WMBn_D47_Data_byte_5_SHIFT       (16U)
1136 #define CAN_WMBn_D47_Data_byte_5_WIDTH       (8U)
1137 #define CAN_WMBn_D47_Data_byte_5(x)          (((uint32_t)(((uint32_t)(x)) << CAN_WMBn_D47_Data_byte_5_SHIFT)) & CAN_WMBn_D47_Data_byte_5_MASK)
1138 
1139 #define CAN_WMBn_D47_Data_byte_4_MASK        (0xFF000000U)
1140 #define CAN_WMBn_D47_Data_byte_4_SHIFT       (24U)
1141 #define CAN_WMBn_D47_Data_byte_4_WIDTH       (8U)
1142 #define CAN_WMBn_D47_Data_byte_4(x)          (((uint32_t)(((uint32_t)(x)) << CAN_WMBn_D47_Data_byte_4_SHIFT)) & CAN_WMBn_D47_Data_byte_4_MASK)
1143 /*! @} */
1144 
1145 /*! @name FDCTRL - CAN FD Control Register */
1146 /*! @{ */
1147 
1148 #define CAN_FDCTRL_TDCVAL_MASK               (0x3FU)
1149 #define CAN_FDCTRL_TDCVAL_SHIFT              (0U)
1150 #define CAN_FDCTRL_TDCVAL_WIDTH              (6U)
1151 #define CAN_FDCTRL_TDCVAL(x)                 (((uint32_t)(((uint32_t)(x)) << CAN_FDCTRL_TDCVAL_SHIFT)) & CAN_FDCTRL_TDCVAL_MASK)
1152 
1153 #define CAN_FDCTRL_TDCOFF_MASK               (0x1F00U)
1154 #define CAN_FDCTRL_TDCOFF_SHIFT              (8U)
1155 #define CAN_FDCTRL_TDCOFF_WIDTH              (5U)
1156 #define CAN_FDCTRL_TDCOFF(x)                 (((uint32_t)(((uint32_t)(x)) << CAN_FDCTRL_TDCOFF_SHIFT)) & CAN_FDCTRL_TDCOFF_MASK)
1157 
1158 #define CAN_FDCTRL_TDCFAIL_MASK              (0x4000U)
1159 #define CAN_FDCTRL_TDCFAIL_SHIFT             (14U)
1160 #define CAN_FDCTRL_TDCFAIL_WIDTH             (1U)
1161 #define CAN_FDCTRL_TDCFAIL(x)                (((uint32_t)(((uint32_t)(x)) << CAN_FDCTRL_TDCFAIL_SHIFT)) & CAN_FDCTRL_TDCFAIL_MASK)
1162 
1163 #define CAN_FDCTRL_TDCEN_MASK                (0x8000U)
1164 #define CAN_FDCTRL_TDCEN_SHIFT               (15U)
1165 #define CAN_FDCTRL_TDCEN_WIDTH               (1U)
1166 #define CAN_FDCTRL_TDCEN(x)                  (((uint32_t)(((uint32_t)(x)) << CAN_FDCTRL_TDCEN_SHIFT)) & CAN_FDCTRL_TDCEN_MASK)
1167 
1168 #define CAN_FDCTRL_MBDSR0_MASK               (0x30000U)
1169 #define CAN_FDCTRL_MBDSR0_SHIFT              (16U)
1170 #define CAN_FDCTRL_MBDSR0_WIDTH              (2U)
1171 #define CAN_FDCTRL_MBDSR0(x)                 (((uint32_t)(((uint32_t)(x)) << CAN_FDCTRL_MBDSR0_SHIFT)) & CAN_FDCTRL_MBDSR0_MASK)
1172 
1173 #define CAN_FDCTRL_FDRATE_MASK               (0x80000000U)
1174 #define CAN_FDCTRL_FDRATE_SHIFT              (31U)
1175 #define CAN_FDCTRL_FDRATE_WIDTH              (1U)
1176 #define CAN_FDCTRL_FDRATE(x)                 (((uint32_t)(((uint32_t)(x)) << CAN_FDCTRL_FDRATE_SHIFT)) & CAN_FDCTRL_FDRATE_MASK)
1177 /*! @} */
1178 
1179 /*! @name FDCBT - CAN FD Bit Timing Register */
1180 /*! @{ */
1181 
1182 #define CAN_FDCBT_FPSEG2_MASK                (0x7U)
1183 #define CAN_FDCBT_FPSEG2_SHIFT               (0U)
1184 #define CAN_FDCBT_FPSEG2_WIDTH               (3U)
1185 #define CAN_FDCBT_FPSEG2(x)                  (((uint32_t)(((uint32_t)(x)) << CAN_FDCBT_FPSEG2_SHIFT)) & CAN_FDCBT_FPSEG2_MASK)
1186 
1187 #define CAN_FDCBT_FPSEG1_MASK                (0xE0U)
1188 #define CAN_FDCBT_FPSEG1_SHIFT               (5U)
1189 #define CAN_FDCBT_FPSEG1_WIDTH               (3U)
1190 #define CAN_FDCBT_FPSEG1(x)                  (((uint32_t)(((uint32_t)(x)) << CAN_FDCBT_FPSEG1_SHIFT)) & CAN_FDCBT_FPSEG1_MASK)
1191 
1192 #define CAN_FDCBT_FPROPSEG_MASK              (0x7C00U)
1193 #define CAN_FDCBT_FPROPSEG_SHIFT             (10U)
1194 #define CAN_FDCBT_FPROPSEG_WIDTH             (5U)
1195 #define CAN_FDCBT_FPROPSEG(x)                (((uint32_t)(((uint32_t)(x)) << CAN_FDCBT_FPROPSEG_SHIFT)) & CAN_FDCBT_FPROPSEG_MASK)
1196 
1197 #define CAN_FDCBT_FRJW_MASK                  (0x70000U)
1198 #define CAN_FDCBT_FRJW_SHIFT                 (16U)
1199 #define CAN_FDCBT_FRJW_WIDTH                 (3U)
1200 #define CAN_FDCBT_FRJW(x)                    (((uint32_t)(((uint32_t)(x)) << CAN_FDCBT_FRJW_SHIFT)) & CAN_FDCBT_FRJW_MASK)
1201 
1202 #define CAN_FDCBT_FPRESDIV_MASK              (0x3FF00000U)
1203 #define CAN_FDCBT_FPRESDIV_SHIFT             (20U)
1204 #define CAN_FDCBT_FPRESDIV_WIDTH             (10U)
1205 #define CAN_FDCBT_FPRESDIV(x)                (((uint32_t)(((uint32_t)(x)) << CAN_FDCBT_FPRESDIV_SHIFT)) & CAN_FDCBT_FPRESDIV_MASK)
1206 /*! @} */
1207 
1208 /*! @name FDCRC - CAN FD CRC Register */
1209 /*! @{ */
1210 
1211 #define CAN_FDCRC_FD_TXCRC_MASK              (0x1FFFFFU)
1212 #define CAN_FDCRC_FD_TXCRC_SHIFT             (0U)
1213 #define CAN_FDCRC_FD_TXCRC_WIDTH             (21U)
1214 #define CAN_FDCRC_FD_TXCRC(x)                (((uint32_t)(((uint32_t)(x)) << CAN_FDCRC_FD_TXCRC_SHIFT)) & CAN_FDCRC_FD_TXCRC_MASK)
1215 
1216 #define CAN_FDCRC_FD_MBCRC_MASK              (0x7F000000U)
1217 #define CAN_FDCRC_FD_MBCRC_SHIFT             (24U)
1218 #define CAN_FDCRC_FD_MBCRC_WIDTH             (7U)
1219 #define CAN_FDCRC_FD_MBCRC(x)                (((uint32_t)(((uint32_t)(x)) << CAN_FDCRC_FD_MBCRC_SHIFT)) & CAN_FDCRC_FD_MBCRC_MASK)
1220 /*! @} */
1221 
1222 /*!
1223  * @}
1224  */ /* end of group CAN_Register_Masks */
1225 
1226 /*!
1227  * @}
1228  */ /* end of group CAN_Peripheral_Access_Layer */
1229 
1230 #endif  /* #if !defined(S32K116_FLEXCAN_H_) */
1231