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