drv_can.h 68 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224
  1. #ifndef DRV_CAN_H__
  2. #define DRV_CAN_H__
  3. #include "rtthread.h"
  4. #include "rtdevice.h"
  5. #define FLEXCAN_RXIMR_COUNT (32U)
  6. #define FLEXCAN_HR_TIME_STAMP_COUNT (128U)
  7. #define FLEXCAN_ERFFEL_COUNT (128U)
  8. /*==================================================================================================
  9. * DEFINES AND MACROS
  10. ==================================================================================================*/
  11. /* @brief Frames available in Rx FIFO flag shift */
  12. #define FLEXCAN_IP_LEGACY_RXFIFO_FRAME_AVAILABLE (5U)
  13. /* @brief Rx FIFO warning flag shift */
  14. #define FLEXCAN_IP_LEGACY_RXFIFO_WARNING (6U)
  15. /* @brief Rx FIFO overflow flag shift */
  16. #define FLEXCAN_IP_LEGACY_RXFIFO_OVERFLOW (7U)
  17. /* @brief Frames available in Enhanced Rx FIFO flag shift */
  18. #define FLEXCAN_IP_ENHANCED_RXFIFO_FRAME_AVAILABLE (28U)
  19. /* @brief Enhanced Rx FIFO Watermark Indication flag shift */
  20. #define FLEXCAN_IP_ENHANCED_RXFIFO_WATERMARK (29U)
  21. /* @brief Enhanced Rx FIFO Overflow flag shift */
  22. #define FLEXCAN_IP_ENHANCED_RXFIFO_OVERFLOW (30U)
  23. /* @brief Enhanced Rx FIFO Underflow flag shift */
  24. #define FLEXCAN_IP_ENHANCED_RXFIFO_UNDERFLOW (31U)
  25. /* @brief FlexCAN Enhanced Fifo Embedded RAM address offset */
  26. #define FLEXCAN_IP_FEATURE_ENHANCED_FIFO_RAM_OFFSET (0x00002000u)
  27. /* @brief FlexCAN Enhanced Fifo Embedded RAM count */
  28. #define FLEXCAN_IP_FEATURE_ENHANCED_FIFO_RAM_COUNT (640u)
  29. /* @brief FlexCAN Embedded RAM address offset */
  30. #define FLEXCAN_IP_FEATURE_RAM_OFFSET (0x00000080u)
  31. /* @brief FlexCAN Expandable Embedded RAM address offset */
  32. #define FLEXCAN_IP_FEATURE_EXP_RAM_OFFSET (0x00001000u)
  33. /* @brief FlexCAN Enhanced Fifo filter Embedded RAM address offset */
  34. #define FLEXCAN_IP_FEATURE_ENHANCED_FIFO_FILTER_RAM_OFFSET (0x00003000U)
  35. /* @brief FlexCAN Rx SMB Timestamp Embedded RAM address offset */
  36. #define FLEXCAN_IP_FEATURE_RXSMB_TIMESTAMP_RAM_OFFSET (0xC20U)
  37. /* @brief FlexCAN Rx SMB Timestamp Embedded RAM count */
  38. #define FLEXCAN_IP_FEATURE_RXSMB_TIMESTAMP_RAM_COUNT (2U)
  39. /* @brief FlexCAN SMB 1 Embedded RAM count */
  40. #define FLEXCAN_IP_FEATURE_SMB_1_RAM_COUNT (120U)
  41. /* @brief FlexCAN SMB 2 Embedded RAM address offset */
  42. #define FLEXCAN_IP_FEATURE_SMB_2_RAM_OFFSET (0xF28U)
  43. /* @brief FlexCAN SMB 2 Embedded RAM count */
  44. #define FLEXCAN_IP_FEATURE_SMB_2_RAM_COUNT (54U)
  45. #define FLEXCAN_IP_ALL_INT (0x3B0006U)
  46. #define FLEXCAN_IP_RAM1n_COUNT (512U)
  47. typedef struct
  48. {
  49. volatile rt_uint32_t MCR;
  50. volatile rt_uint32_t CTRL1;
  51. volatile rt_uint32_t TIMER;
  52. rt_uint8_t RESERVED_0[4];
  53. volatile rt_uint32_t RXMGMASK;
  54. volatile rt_uint32_t RX14MASK;
  55. volatile rt_uint32_t RX15MASK;
  56. volatile rt_uint32_t ECR;
  57. volatile rt_uint32_t ESR1;
  58. volatile rt_uint32_t IMASK2;
  59. volatile rt_uint32_t IMASK1;
  60. volatile rt_uint32_t IFLAG2;
  61. volatile rt_uint32_t IFLAG1;
  62. volatile rt_uint32_t CTRL2;
  63. volatile const rt_uint32_t ESR2;
  64. rt_uint8_t RESERVED_1[8];
  65. volatile const rt_uint32_t CRCR;
  66. volatile rt_uint32_t RXFGMASK;
  67. volatile const rt_uint32_t RXFIR;
  68. volatile rt_uint32_t CBT;
  69. rt_uint8_t RESERVED_2[20];
  70. volatile rt_uint32_t IMASK4;
  71. volatile rt_uint32_t IMASK3;
  72. volatile rt_uint32_t IFLAG4;
  73. volatile rt_uint32_t IFLAG3;
  74. rt_uint8_t RESERVED_3[2056];
  75. volatile rt_uint32_t RXIMR[FLEXCAN_RXIMR_COUNT];
  76. rt_uint8_t RESERVED_4[480];
  77. volatile rt_uint32_t MECR;
  78. volatile rt_uint32_t ERRIAR;
  79. volatile rt_uint32_t ERRIDPR;
  80. volatile rt_uint32_t ERRIPPR;
  81. volatile const rt_uint32_t RERRAR;
  82. volatile const rt_uint32_t RERRDR;
  83. volatile const rt_uint32_t RERRSYNR;
  84. volatile rt_uint32_t ERRSR;
  85. rt_uint8_t RESERVED_5[240];
  86. volatile rt_uint32_t EPRS;
  87. volatile rt_uint32_t ENCBT;
  88. volatile rt_uint32_t EDCBT;
  89. volatile rt_uint32_t ETDC;
  90. volatile rt_uint32_t FDCTRL;
  91. volatile rt_uint32_t FDCBT;
  92. volatile const rt_uint32_t FDCRC;
  93. volatile rt_uint32_t ERFCR;
  94. volatile rt_uint32_t ERFIER;
  95. volatile rt_uint32_t ERFSR;
  96. rt_uint8_t RESERVED_6[24];
  97. volatile rt_uint32_t HR_TIME_STAMP[FLEXCAN_HR_TIME_STAMP_COUNT];
  98. rt_uint8_t RESERVED_7[8656];
  99. volatile rt_uint32_t ERFFEL[FLEXCAN_ERFFEL_COUNT];
  100. volatile rt_uint32_t TSV;
  101. volatile rt_uint32_t TSCTRL;
  102. volatile rt_uint32_t TSLCNT;
  103. volatile rt_uint32_t HREOI;
  104. volatile rt_uint32_t BITEOI;
  105. volatile rt_uint32_t TSIFLAG;
  106. } s100_can_regs_t;
  107. /* ----------------------------------------------------------------------------
  108. -- FLEXCAN Register Masks
  109. ---------------------------------------------------------------------------- */
  110. #define FLEXCAN_MCR_MAXMB_MASK (0x7FU)
  111. #define FLEXCAN_MCR_MAXMB_SHIFT (0U)
  112. #define FLEXCAN_MCR_MAXMB_WIDTH (7U)
  113. #define FLEXCAN_MCR_MAXMB(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_MCR_MAXMB_SHIFT)) & FLEXCAN_MCR_MAXMB_MASK)
  114. #define FLEXCAN_MCR_IDAM_MASK (0x300U)
  115. #define FLEXCAN_MCR_IDAM_SHIFT (8U)
  116. #define FLEXCAN_MCR_IDAM_WIDTH (2U)
  117. #define FLEXCAN_MCR_IDAM(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_MCR_IDAM_SHIFT)) & FLEXCAN_MCR_IDAM_MASK)
  118. #define FLEXCAN_MCR_FDEN_MASK (0x800U)
  119. #define FLEXCAN_MCR_FDEN_SHIFT (11U)
  120. #define FLEXCAN_MCR_FDEN_WIDTH (1U)
  121. #define FLEXCAN_MCR_FDEN(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_MCR_FDEN_SHIFT)) & FLEXCAN_MCR_FDEN_MASK)
  122. #define FLEXCAN_MCR_AEN_MASK (0x1000U)
  123. #define FLEXCAN_MCR_AEN_SHIFT (12U)
  124. #define FLEXCAN_MCR_AEN_WIDTH (1U)
  125. #define FLEXCAN_MCR_AEN(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_MCR_AEN_SHIFT)) & FLEXCAN_MCR_AEN_MASK)
  126. #define FLEXCAN_MCR_LPRIOEN_MASK (0x2000U)
  127. #define FLEXCAN_MCR_LPRIOEN_SHIFT (13U)
  128. #define FLEXCAN_MCR_LPRIOEN_WIDTH (1U)
  129. #define FLEXCAN_MCR_LPRIOEN(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_MCR_LPRIOEN_SHIFT)) & FLEXCAN_MCR_LPRIOEN_MASK)
  130. #define FLEXCAN_MCR_DMA_MASK (0x8000U)
  131. #define FLEXCAN_MCR_DMA_SHIFT (15U)
  132. #define FLEXCAN_MCR_DMA_WIDTH (1U)
  133. #define FLEXCAN_MCR_DMA(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_MCR_DMA_SHIFT)) & FLEXCAN_MCR_DMA_MASK)
  134. #define FLEXCAN_MCR_IRMQ_MASK (0x10000U)
  135. #define FLEXCAN_MCR_IRMQ_SHIFT (16U)
  136. #define FLEXCAN_MCR_IRMQ_WIDTH (1U)
  137. #define FLEXCAN_MCR_IRMQ(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_MCR_IRMQ_SHIFT)) & FLEXCAN_MCR_IRMQ_MASK)
  138. #define FLEXCAN_MCR_SRXDIS_MASK (0x20000U)
  139. #define FLEXCAN_MCR_SRXDIS_SHIFT (17U)
  140. #define FLEXCAN_MCR_SRXDIS_WIDTH (1U)
  141. #define FLEXCAN_MCR_SRXDIS(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_MCR_SRXDIS_SHIFT)) & FLEXCAN_MCR_SRXDIS_MASK)
  142. #define FLEXCAN_MCR_LPMACK_MASK (0x100000U)
  143. #define FLEXCAN_MCR_LPMACK_SHIFT (20U)
  144. #define FLEXCAN_MCR_LPMACK_WIDTH (1U)
  145. #define FLEXCAN_MCR_LPMACK(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_MCR_LPMACK_SHIFT)) & FLEXCAN_MCR_LPMACK_MASK)
  146. #define FLEXCAN_MCR_WRNEN_MASK (0x200000U)
  147. #define FLEXCAN_MCR_WRNEN_SHIFT (21U)
  148. #define FLEXCAN_MCR_WRNEN_WIDTH (1U)
  149. #define FLEXCAN_MCR_WRNEN(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_MCR_WRNEN_SHIFT)) & FLEXCAN_MCR_WRNEN_MASK)
  150. #define FLEXCAN_MCR_FRZACK_MASK (0x1000000U)
  151. #define FLEXCAN_MCR_FRZACK_SHIFT (24U)
  152. #define FLEXCAN_MCR_FRZACK_WIDTH (1U)
  153. #define FLEXCAN_MCR_FRZACK(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_MCR_FRZACK_SHIFT)) & FLEXCAN_MCR_FRZACK_MASK)
  154. #define FLEXCAN_MCR_SOFTRST_MASK (0x2000000U)
  155. #define FLEXCAN_MCR_SOFTRST_SHIFT (25U)
  156. #define FLEXCAN_MCR_SOFTRST_WIDTH (1U)
  157. #define FLEXCAN_MCR_SOFTRST(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_MCR_SOFTRST_SHIFT)) & FLEXCAN_MCR_SOFTRST_MASK)
  158. #define FLEXCAN_MCR_NOTRDY_MASK (0x8000000U)
  159. #define FLEXCAN_MCR_NOTRDY_SHIFT (27U)
  160. #define FLEXCAN_MCR_NOTRDY_WIDTH (1U)
  161. #define FLEXCAN_MCR_NOTRDY(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_MCR_NOTRDY_SHIFT)) & FLEXCAN_MCR_NOTRDY_MASK)
  162. #define FLEXCAN_MCR_HALT_MASK (0x10000000U)
  163. #define FLEXCAN_MCR_HALT_SHIFT (28U)
  164. #define FLEXCAN_MCR_HALT_WIDTH (1U)
  165. #define FLEXCAN_MCR_HALT(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_MCR_HALT_SHIFT)) & FLEXCAN_MCR_HALT_MASK)
  166. #define FLEXCAN_MCR_RFEN_MASK (0x20000000U)
  167. #define FLEXCAN_MCR_RFEN_SHIFT (29U)
  168. #define FLEXCAN_MCR_RFEN_WIDTH (1U)
  169. #define FLEXCAN_MCR_RFEN(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_MCR_RFEN_SHIFT)) & FLEXCAN_MCR_RFEN_MASK)
  170. #define FLEXCAN_MCR_FRZ_MASK (0x40000000U)
  171. #define FLEXCAN_MCR_FRZ_SHIFT (30U)
  172. #define FLEXCAN_MCR_FRZ_WIDTH (1U)
  173. #define FLEXCAN_MCR_FRZ(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_MCR_FRZ_SHIFT)) & FLEXCAN_MCR_FRZ_MASK)
  174. #define FLEXCAN_MCR_MDIS_MASK (0x80000000U)
  175. #define FLEXCAN_MCR_MDIS_SHIFT (31U)
  176. #define FLEXCAN_MCR_MDIS_WIDTH (1U)
  177. #define FLEXCAN_MCR_MDIS(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_MCR_MDIS_SHIFT)) & FLEXCAN_MCR_MDIS_MASK)
  178. #define FLEXCAN_CTRL1_PROPSEG_MASK (0x7U)
  179. #define FLEXCAN_CTRL1_PROPSEG_SHIFT (0U)
  180. #define FLEXCAN_CTRL1_PROPSEG_WIDTH (3U)
  181. #define FLEXCAN_CTRL1_PROPSEG(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_CTRL1_PROPSEG_SHIFT)) & FLEXCAN_CTRL1_PROPSEG_MASK)
  182. #define FLEXCAN_CTRL1_LOM_MASK (0x8U)
  183. #define FLEXCAN_CTRL1_LOM_SHIFT (3U)
  184. #define FLEXCAN_CTRL1_LOM_WIDTH (1U)
  185. #define FLEXCAN_CTRL1_LOM(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_CTRL1_LOM_SHIFT)) & FLEXCAN_CTRL1_LOM_MASK)
  186. #define FLEXCAN_CTRL1_LBUF_MASK (0x10U)
  187. #define FLEXCAN_CTRL1_LBUF_SHIFT (4U)
  188. #define FLEXCAN_CTRL1_LBUF_WIDTH (1U)
  189. #define FLEXCAN_CTRL1_LBUF(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_CTRL1_LBUF_SHIFT)) & FLEXCAN_CTRL1_LBUF_MASK)
  190. #define FLEXCAN_CTRL1_TSYN_MASK (0x20U)
  191. #define FLEXCAN_CTRL1_TSYN_SHIFT (5U)
  192. #define FLEXCAN_CTRL1_TSYN_WIDTH (1U)
  193. #define FLEXCAN_CTRL1_TSYN(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_CTRL1_TSYN_SHIFT)) & FLEXCAN_CTRL1_TSYN_MASK)
  194. #define FLEXCAN_CTRL1_BOFFREC_MASK (0x40U)
  195. #define FLEXCAN_CTRL1_BOFFREC_SHIFT (6U)
  196. #define FLEXCAN_CTRL1_BOFFREC_WIDTH (1U)
  197. #define FLEXCAN_CTRL1_BOFFREC(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_CTRL1_BOFFREC_SHIFT)) & FLEXCAN_CTRL1_BOFFREC_MASK)
  198. #define FLEXCAN_CTRL1_SMP_MASK (0x80U)
  199. #define FLEXCAN_CTRL1_SMP_SHIFT (7U)
  200. #define FLEXCAN_CTRL1_SMP_WIDTH (1U)
  201. #define FLEXCAN_CTRL1_SMP(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_CTRL1_SMP_SHIFT)) & FLEXCAN_CTRL1_SMP_MASK)
  202. #define FLEXCAN_CTRL1_CLKSRC_MASK (0x2000U)/* zjh add */
  203. #define FLEXCAN_CTRL1_CLKSRC_SHIFT (13U)
  204. #define FLEXCAN_CTRL1_CLKSRC(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_CTRL1_CLKSRC_SHIFT)) & FLEXCAN_CTRL1_CLKSRC_MASK)
  205. #define FLEXCAN_CTRL1_RWRNMSK_MASK (0x400U)
  206. #define FLEXCAN_CTRL1_RWRNMSK_SHIFT (10U)
  207. #define FLEXCAN_CTRL1_RWRNMSK_WIDTH (1U)
  208. #define FLEXCAN_CTRL1_RWRNMSK(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_CTRL1_RWRNMSK_SHIFT)) & FLEXCAN_CTRL1_RWRNMSK_MASK)
  209. #define FLEXCAN_CTRL1_TWRNMSK_MASK (0x800U)
  210. #define FLEXCAN_CTRL1_TWRNMSK_SHIFT (11U)
  211. #define FLEXCAN_CTRL1_TWRNMSK_WIDTH (1U)
  212. #define FLEXCAN_CTRL1_TWRNMSK(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_CTRL1_TWRNMSK_SHIFT)) & FLEXCAN_CTRL1_TWRNMSK_MASK)
  213. #define FLEXCAN_CTRL1_LPB_MASK (0x1000U)
  214. #define FLEXCAN_CTRL1_LPB_SHIFT (12U)
  215. #define FLEXCAN_CTRL1_LPB_WIDTH (1U)
  216. #define FLEXCAN_CTRL1_LPB(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_CTRL1_LPB_SHIFT)) & FLEXCAN_CTRL1_LPB_MASK)
  217. #define FLEXCAN_CTRL1_ERRMSK_MASK (0x4000U)
  218. #define FLEXCAN_CTRL1_ERRMSK_SHIFT (14U)
  219. #define FLEXCAN_CTRL1_ERRMSK_WIDTH (1U)
  220. #define FLEXCAN_CTRL1_ERRMSK(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_CTRL1_ERRMSK_SHIFT)) & FLEXCAN_CTRL1_ERRMSK_MASK)
  221. #define FLEXCAN_CTRL1_BOFFMSK_MASK (0x8000U)
  222. #define FLEXCAN_CTRL1_BOFFMSK_SHIFT (15U)
  223. #define FLEXCAN_CTRL1_BOFFMSK_WIDTH (1U)
  224. #define FLEXCAN_CTRL1_BOFFMSK(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_CTRL1_BOFFMSK_SHIFT)) & FLEXCAN_CTRL1_BOFFMSK_MASK)
  225. #define FLEXCAN_CTRL1_PSEG2_MASK (0x70000U)
  226. #define FLEXCAN_CTRL1_PSEG2_SHIFT (16U)
  227. #define FLEXCAN_CTRL1_PSEG2_WIDTH (3U)
  228. #define FLEXCAN_CTRL1_PSEG2(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_CTRL1_PSEG2_SHIFT)) & FLEXCAN_CTRL1_PSEG2_MASK)
  229. #define FLEXCAN_CTRL1_PSEG1_MASK (0x380000U)
  230. #define FLEXCAN_CTRL1_PSEG1_SHIFT (19U)
  231. #define FLEXCAN_CTRL1_PSEG1_WIDTH (3U)
  232. #define FLEXCAN_CTRL1_PSEG1(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_CTRL1_PSEG1_SHIFT)) & FLEXCAN_CTRL1_PSEG1_MASK)
  233. #define FLEXCAN_CTRL1_RJW_MASK (0xC00000U)
  234. #define FLEXCAN_CTRL1_RJW_SHIFT (22U)
  235. #define FLEXCAN_CTRL1_RJW_WIDTH (2U)
  236. #define FLEXCAN_CTRL1_RJW(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_CTRL1_RJW_SHIFT)) & FLEXCAN_CTRL1_RJW_MASK)
  237. #define FLEXCAN_CTRL1_PRESDIV_MASK (0xFF000000U)
  238. #define FLEXCAN_CTRL1_PRESDIV_SHIFT (24U)
  239. #define FLEXCAN_CTRL1_PRESDIV_WIDTH (8U)
  240. #define FLEXCAN_CTRL1_PRESDIV(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_CTRL1_PRESDIV_SHIFT)) & FLEXCAN_CTRL1_PRESDIV_MASK)
  241. #define FLEXCAN_TIMER_TIMER_MASK (0xFFFFU)
  242. #define FLEXCAN_TIMER_TIMER_SHIFT (0U)
  243. #define FLEXCAN_TIMER_TIMER_WIDTH (16U)
  244. #define FLEXCAN_TIMER_TIMER(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_TIMER_TIMER_SHIFT)) & FLEXCAN_TIMER_TIMER_MASK)
  245. #define FLEXCAN_RXMGMASK_MG_MASK (0xFFFFFFFFU)
  246. #define FLEXCAN_RXMGMASK_MG_SHIFT (0U)
  247. #define FLEXCAN_RXMGMASK_MG_WIDTH (32U)
  248. #define FLEXCAN_RXMGMASK_MG(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_RXMGMASK_MG_SHIFT)) & FLEXCAN_RXMGMASK_MG_MASK)
  249. #define FLEXCAN_RX14MASK_RX14M_MASK (0xFFFFFFFFU)
  250. #define FLEXCAN_RX14MASK_RX14M_SHIFT (0U)
  251. #define FLEXCAN_RX14MASK_RX14M_WIDTH (32U)
  252. #define FLEXCAN_RX14MASK_RX14M(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_RX14MASK_RX14M_SHIFT)) & FLEXCAN_RX14MASK_RX14M_MASK)
  253. #define FLEXCAN_RX15MASK_RX15M_MASK (0xFFFFFFFFU)
  254. #define FLEXCAN_RX15MASK_RX15M_SHIFT (0U)
  255. #define FLEXCAN_RX15MASK_RX15M_WIDTH (32U)
  256. #define FLEXCAN_RX15MASK_RX15M(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_RX15MASK_RX15M_SHIFT)) & FLEXCAN_RX15MASK_RX15M_MASK)
  257. #define FLEXCAN_ECR_TXERRCNT_MASK (0xFFU)
  258. #define FLEXCAN_ECR_TXERRCNT_SHIFT (0U)
  259. #define FLEXCAN_ECR_TXERRCNT_WIDTH (8U)
  260. #define FLEXCAN_ECR_TXERRCNT(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_ECR_TXERRCNT_SHIFT)) & FLEXCAN_ECR_TXERRCNT_MASK)
  261. #define FLEXCAN_ECR_RXERRCNT_MASK (0xFF00U)
  262. #define FLEXCAN_ECR_RXERRCNT_SHIFT (8U)
  263. #define FLEXCAN_ECR_RXERRCNT_WIDTH (8U)
  264. #define FLEXCAN_ECR_RXERRCNT(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_ECR_RXERRCNT_SHIFT)) & FLEXCAN_ECR_RXERRCNT_MASK)
  265. #define FLEXCAN_ECR_TXERRCNT_FAST_MASK (0xFF0000U)
  266. #define FLEXCAN_ECR_TXERRCNT_FAST_SHIFT (16U)
  267. #define FLEXCAN_ECR_TXERRCNT_FAST_WIDTH (8U)
  268. #define FLEXCAN_ECR_TXERRCNT_FAST(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_ECR_TXERRCNT_FAST_SHIFT)) & FLEXCAN_ECR_TXERRCNT_FAST_MASK)
  269. #define FLEXCAN_ECR_RXERRCNT_FAST_MASK (0xFF000000U)
  270. #define FLEXCAN_ECR_RXERRCNT_FAST_SHIFT (24U)
  271. #define FLEXCAN_ECR_RXERRCNT_FAST_WIDTH (8U)
  272. #define FLEXCAN_ECR_RXERRCNT_FAST(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_ECR_RXERRCNT_FAST_SHIFT)) & FLEXCAN_ECR_RXERRCNT_FAST_MASK)
  273. #define FLEXCAN_ESR1_ERRINT_MASK (0x2U)
  274. #define FLEXCAN_ESR1_ERRINT_SHIFT (1U)
  275. #define FLEXCAN_ESR1_ERRINT_WIDTH (1U)
  276. #define FLEXCAN_ESR1_ERRINT(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_ESR1_ERRINT_SHIFT)) & FLEXCAN_ESR1_ERRINT_MASK)
  277. #define FLEXCAN_ESR1_BOFFINT_MASK (0x4U)
  278. #define FLEXCAN_ESR1_BOFFINT_SHIFT (2U)
  279. #define FLEXCAN_ESR1_BOFFINT_WIDTH (1U)
  280. #define FLEXCAN_ESR1_BOFFINT(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_ESR1_BOFFINT_SHIFT)) & FLEXCAN_ESR1_BOFFINT_MASK)
  281. #define FLEXCAN_ESR1_RX_MASK (0x8U)
  282. #define FLEXCAN_ESR1_RX_SHIFT (3U)
  283. #define FLEXCAN_ESR1_RX_WIDTH (1U)
  284. #define FLEXCAN_ESR1_RX(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_ESR1_RX_SHIFT)) & FLEXCAN_ESR1_RX_MASK)
  285. #define FLEXCAN_ESR1_FLTCONF_MASK (0x30U)
  286. #define FLEXCAN_ESR1_FLTCONF_SHIFT (4U)
  287. #define FLEXCAN_ESR1_FLTCONF_WIDTH (2U)
  288. #define FLEXCAN_ESR1_FLTCONF(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_ESR1_FLTCONF_SHIFT)) & FLEXCAN_ESR1_FLTCONF_MASK)
  289. #define FLEXCAN_ESR1_TX_MASK (0x40U)
  290. #define FLEXCAN_ESR1_TX_SHIFT (6U)
  291. #define FLEXCAN_ESR1_TX_WIDTH (1U)
  292. #define FLEXCAN_ESR1_TX(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_ESR1_TX_SHIFT)) & FLEXCAN_ESR1_TX_MASK)
  293. #define FLEXCAN_ESR1_IDLE_MASK (0x80U)
  294. #define FLEXCAN_ESR1_IDLE_SHIFT (7U)
  295. #define FLEXCAN_ESR1_IDLE_WIDTH (1U)
  296. #define FLEXCAN_ESR1_IDLE(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_ESR1_IDLE_SHIFT)) & FLEXCAN_ESR1_IDLE_MASK)
  297. #define FLEXCAN_ESR1_RXWRN_MASK (0x100U)
  298. #define FLEXCAN_ESR1_RXWRN_SHIFT (8U)
  299. #define FLEXCAN_ESR1_RXWRN_WIDTH (1U)
  300. #define FLEXCAN_ESR1_RXWRN(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_ESR1_RXWRN_SHIFT)) & FLEXCAN_ESR1_RXWRN_MASK)
  301. #define FLEXCAN_ESR1_TXWRN_MASK (0x200U)
  302. #define FLEXCAN_ESR1_TXWRN_SHIFT (9U)
  303. #define FLEXCAN_ESR1_TXWRN_WIDTH (1U)
  304. #define FLEXCAN_ESR1_TXWRN(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_ESR1_TXWRN_SHIFT)) & FLEXCAN_ESR1_TXWRN_MASK)
  305. #define FLEXCAN_ESR1_STFERR_MASK (0x400U)
  306. #define FLEXCAN_ESR1_STFERR_SHIFT (10U)
  307. #define FLEXCAN_ESR1_STFERR_WIDTH (1U)
  308. #define FLEXCAN_ESR1_STFERR(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_ESR1_STFERR_SHIFT)) & FLEXCAN_ESR1_STFERR_MASK)
  309. #define FLEXCAN_ESR1_FRMERR_MASK (0x800U)
  310. #define FLEXCAN_ESR1_FRMERR_SHIFT (11U)
  311. #define FLEXCAN_ESR1_FRMERR_WIDTH (1U)
  312. #define FLEXCAN_ESR1_FRMERR(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_ESR1_FRMERR_SHIFT)) & FLEXCAN_ESR1_FRMERR_MASK)
  313. #define FLEXCAN_ESR1_CRCERR_MASK (0x1000U)
  314. #define FLEXCAN_ESR1_CRCERR_SHIFT (12U)
  315. #define FLEXCAN_ESR1_CRCERR_WIDTH (1U)
  316. #define FLEXCAN_ESR1_CRCERR(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_ESR1_CRCERR_SHIFT)) & FLEXCAN_ESR1_CRCERR_MASK)
  317. #define FLEXCAN_ESR1_ACKERR_MASK (0x2000U)
  318. #define FLEXCAN_ESR1_ACKERR_SHIFT (13U)
  319. #define FLEXCAN_ESR1_ACKERR_WIDTH (1U)
  320. #define FLEXCAN_ESR1_ACKERR(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_ESR1_ACKERR_SHIFT)) & FLEXCAN_ESR1_ACKERR_MASK)
  321. #define FLEXCAN_ESR1_BIT0ERR_MASK (0x4000U)
  322. #define FLEXCAN_ESR1_BIT0ERR_SHIFT (14U)
  323. #define FLEXCAN_ESR1_BIT0ERR_WIDTH (1U)
  324. #define FLEXCAN_ESR1_BIT0ERR(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_ESR1_BIT0ERR_SHIFT)) & FLEXCAN_ESR1_BIT0ERR_MASK)
  325. #define FLEXCAN_ESR1_BIT1ERR_MASK (0x8000U)
  326. #define FLEXCAN_ESR1_BIT1ERR_SHIFT (15U)
  327. #define FLEXCAN_ESR1_BIT1ERR_WIDTH (1U)
  328. #define FLEXCAN_ESR1_BIT1ERR(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_ESR1_BIT1ERR_SHIFT)) & FLEXCAN_ESR1_BIT1ERR_MASK)
  329. #define FLEXCAN_ESR1_RWRNINT_MASK (0x10000U)
  330. #define FLEXCAN_ESR1_RWRNINT_SHIFT (16U)
  331. #define FLEXCAN_ESR1_RWRNINT_WIDTH (1U)
  332. #define FLEXCAN_ESR1_RWRNINT(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_ESR1_RWRNINT_SHIFT)) & FLEXCAN_ESR1_RWRNINT_MASK)
  333. #define FLEXCAN_ESR1_TWRNINT_MASK (0x20000U)
  334. #define FLEXCAN_ESR1_TWRNINT_SHIFT (17U)
  335. #define FLEXCAN_ESR1_TWRNINT_WIDTH (1U)
  336. #define FLEXCAN_ESR1_TWRNINT(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_ESR1_TWRNINT_SHIFT)) & FLEXCAN_ESR1_TWRNINT_MASK)
  337. #define FLEXCAN_ESR1_SYNCH_MASK (0x40000U)
  338. #define FLEXCAN_ESR1_SYNCH_SHIFT (18U)
  339. #define FLEXCAN_ESR1_SYNCH_WIDTH (1U)
  340. #define FLEXCAN_ESR1_SYNCH(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_ESR1_SYNCH_SHIFT)) & FLEXCAN_ESR1_SYNCH_MASK)
  341. #define FLEXCAN_ESR1_BOFFDONEINT_MASK (0x80000U)
  342. #define FLEXCAN_ESR1_BOFFDONEINT_SHIFT (19U)
  343. #define FLEXCAN_ESR1_BOFFDONEINT_WIDTH (1U)
  344. #define FLEXCAN_ESR1_BOFFDONEINT(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_ESR1_BOFFDONEINT_SHIFT)) & FLEXCAN_ESR1_BOFFDONEINT_MASK)
  345. #define FLEXCAN_ESR1_ERRINT_FAST_MASK (0x100000U)
  346. #define FLEXCAN_ESR1_ERRINT_FAST_SHIFT (20U)
  347. #define FLEXCAN_ESR1_ERRINT_FAST_WIDTH (1U)
  348. #define FLEXCAN_ESR1_ERRINT_FAST(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_ESR1_ERRINT_FAST_SHIFT)) & FLEXCAN_ESR1_ERRINT_FAST_MASK)
  349. #define FLEXCAN_ESR1_ERROVR_MASK (0x200000U)
  350. #define FLEXCAN_ESR1_ERROVR_SHIFT (21U)
  351. #define FLEXCAN_ESR1_ERROVR_WIDTH (1U)
  352. #define FLEXCAN_ESR1_ERROVR(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_ESR1_ERROVR_SHIFT)) & FLEXCAN_ESR1_ERROVR_MASK)
  353. #define FLEXCAN_ESR1_STFERR_FAST_MASK (0x4000000U)
  354. #define FLEXCAN_ESR1_STFERR_FAST_SHIFT (26U)
  355. #define FLEXCAN_ESR1_STFERR_FAST_WIDTH (1U)
  356. #define FLEXCAN_ESR1_STFERR_FAST(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_ESR1_STFERR_FAST_SHIFT)) & FLEXCAN_ESR1_STFERR_FAST_MASK)
  357. #define FLEXCAN_ESR1_FRMERR_FAST_MASK (0x8000000U)
  358. #define FLEXCAN_ESR1_FRMERR_FAST_SHIFT (27U)
  359. #define FLEXCAN_ESR1_FRMERR_FAST_WIDTH (1U)
  360. #define FLEXCAN_ESR1_FRMERR_FAST(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_ESR1_FRMERR_FAST_SHIFT)) & FLEXCAN_ESR1_FRMERR_FAST_MASK)
  361. #define FLEXCAN_ESR1_CRCERR_FAST_MASK (0x10000000U)
  362. #define FLEXCAN_ESR1_CRCERR_FAST_SHIFT (28U)
  363. #define FLEXCAN_ESR1_CRCERR_FAST_WIDTH (1U)
  364. #define FLEXCAN_ESR1_CRCERR_FAST(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_ESR1_CRCERR_FAST_SHIFT)) & FLEXCAN_ESR1_CRCERR_FAST_MASK)
  365. #define FLEXCAN_ESR1_BIT0ERR_FAST_MASK (0x40000000U)
  366. #define FLEXCAN_ESR1_BIT0ERR_FAST_SHIFT (30U)
  367. #define FLEXCAN_ESR1_BIT0ERR_FAST_WIDTH (1U)
  368. #define FLEXCAN_ESR1_BIT0ERR_FAST(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_ESR1_BIT0ERR_FAST_SHIFT)) & FLEXCAN_ESR1_BIT0ERR_FAST_MASK)
  369. #define FLEXCAN_ESR1_BIT1ERR_FAST_MASK (0x80000000U)
  370. #define FLEXCAN_ESR1_BIT1ERR_FAST_SHIFT (31U)
  371. #define FLEXCAN_ESR1_BIT1ERR_FAST_WIDTH (1U)
  372. #define FLEXCAN_ESR1_BIT1ERR_FAST(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_ESR1_BIT1ERR_FAST_SHIFT)) & FLEXCAN_ESR1_BIT1ERR_FAST_MASK)
  373. #define FLEXCAN_IMASK2_BUF63TO32M_MASK (0xFFFFFFFFU)
  374. #define FLEXCAN_IMASK2_BUF63TO32M_SHIFT (0U)
  375. #define FLEXCAN_IMASK2_BUF63TO32M_WIDTH (32U)
  376. #define FLEXCAN_IMASK2_BUF63TO32M(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_IMASK2_BUF63TO32M_SHIFT)) & FLEXCAN_IMASK2_BUF63TO32M_MASK)
  377. #define FLEXCAN_IMASK1_BUF31TO0M_MASK (0xFFFFFFFFU)
  378. #define FLEXCAN_IMASK1_BUF31TO0M_SHIFT (0U)
  379. #define FLEXCAN_IMASK1_BUF31TO0M_WIDTH (32U)
  380. #define FLEXCAN_IMASK1_BUF31TO0M(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_IMASK1_BUF31TO0M_SHIFT)) & FLEXCAN_IMASK1_BUF31TO0M_MASK)
  381. #define FLEXCAN_IFLAG2_BUF63TO32I_MASK (0xFFFFFFFFU)
  382. #define FLEXCAN_IFLAG2_BUF63TO32I_SHIFT (0U)
  383. #define FLEXCAN_IFLAG2_BUF63TO32I_WIDTH (32U)
  384. #define FLEXCAN_IFLAG2_BUF63TO32I(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_IFLAG2_BUF63TO32I_SHIFT)) & FLEXCAN_IFLAG2_BUF63TO32I_MASK)
  385. #define FLEXCAN_IFLAG1_BUF0I_MASK (0x1U)
  386. #define FLEXCAN_IFLAG1_BUF0I_SHIFT (0U)
  387. #define FLEXCAN_IFLAG1_BUF0I_WIDTH (1U)
  388. #define FLEXCAN_IFLAG1_BUF0I(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_IFLAG1_BUF0I_SHIFT)) & FLEXCAN_IFLAG1_BUF0I_MASK)
  389. #define FLEXCAN_IFLAG1_BUF4TO1I_MASK (0x1EU)
  390. #define FLEXCAN_IFLAG1_BUF4TO1I_SHIFT (1U)
  391. #define FLEXCAN_IFLAG1_BUF4TO1I_WIDTH (4U)
  392. #define FLEXCAN_IFLAG1_BUF4TO1I(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_IFLAG1_BUF4TO1I_SHIFT)) & FLEXCAN_IFLAG1_BUF4TO1I_MASK)
  393. #define FLEXCAN_IFLAG1_BUF5I_MASK (0x20U)
  394. #define FLEXCAN_IFLAG1_BUF5I_SHIFT (5U)
  395. #define FLEXCAN_IFLAG1_BUF5I_WIDTH (1U)
  396. #define FLEXCAN_IFLAG1_BUF5I(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_IFLAG1_BUF5I_SHIFT)) & FLEXCAN_IFLAG1_BUF5I_MASK)
  397. #define FLEXCAN_IFLAG1_BUF6I_MASK (0x40U)
  398. #define FLEXCAN_IFLAG1_BUF6I_SHIFT (6U)
  399. #define FLEXCAN_IFLAG1_BUF6I_WIDTH (1U)
  400. #define FLEXCAN_IFLAG1_BUF6I(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_IFLAG1_BUF6I_SHIFT)) & FLEXCAN_IFLAG1_BUF6I_MASK)
  401. #define FLEXCAN_IFLAG1_BUF7I_MASK (0x80U)
  402. #define FLEXCAN_IFLAG1_BUF7I_SHIFT (7U)
  403. #define FLEXCAN_IFLAG1_BUF7I_WIDTH (1U)
  404. #define FLEXCAN_IFLAG1_BUF7I(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_IFLAG1_BUF7I_SHIFT)) & FLEXCAN_IFLAG1_BUF7I_MASK)
  405. #define FLEXCAN_IFLAG1_BUF31TO8I_MASK (0xFFFFFF00U)
  406. #define FLEXCAN_IFLAG1_BUF31TO8I_SHIFT (8U)
  407. #define FLEXCAN_IFLAG1_BUF31TO8I_WIDTH (24U)
  408. #define FLEXCAN_IFLAG1_BUF31TO8I(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_IFLAG1_BUF31TO8I_SHIFT)) & FLEXCAN_IFLAG1_BUF31TO8I_MASK)
  409. #define FLEXCAN_CTRL2_TSTAMPCAP_MASK (0xC0U)
  410. #define FLEXCAN_CTRL2_TSTAMPCAP_SHIFT (6U)
  411. #define FLEXCAN_CTRL2_TSTAMPCAP_WIDTH (2U)
  412. #define FLEXCAN_CTRL2_TSTAMPCAP(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_CTRL2_TSTAMPCAP_SHIFT)) & FLEXCAN_CTRL2_TSTAMPCAP_MASK)
  413. #define FLEXCAN_CTRL2_MBTSBASE_MASK (0x300U)
  414. #define FLEXCAN_CTRL2_MBTSBASE_SHIFT (8U)
  415. #define FLEXCAN_CTRL2_MBTSBASE_WIDTH (2U)
  416. #define FLEXCAN_CTRL2_MBTSBASE(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_CTRL2_MBTSBASE_SHIFT)) & FLEXCAN_CTRL2_MBTSBASE_MASK)
  417. #define FLEXCAN_CTRL2_EDFLTDIS_MASK (0x800U)
  418. #define FLEXCAN_CTRL2_EDFLTDIS_SHIFT (11U)
  419. #define FLEXCAN_CTRL2_EDFLTDIS_WIDTH (1U)
  420. #define FLEXCAN_CTRL2_EDFLTDIS(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_CTRL2_EDFLTDIS_SHIFT)) & FLEXCAN_CTRL2_EDFLTDIS_MASK)
  421. #define FLEXCAN_CTRL2_ISOCANFDEN_MASK (0x1000U)
  422. #define FLEXCAN_CTRL2_ISOCANFDEN_SHIFT (12U)
  423. #define FLEXCAN_CTRL2_ISOCANFDEN_WIDTH (1U)
  424. #define FLEXCAN_CTRL2_ISOCANFDEN(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_CTRL2_ISOCANFDEN_SHIFT)) & FLEXCAN_CTRL2_ISOCANFDEN_MASK)
  425. #define FLEXCAN_CTRL2_BTE_MASK (0x2000U)
  426. #define FLEXCAN_CTRL2_BTE_SHIFT (13U)
  427. #define FLEXCAN_CTRL2_BTE_WIDTH (1U)
  428. #define FLEXCAN_CTRL2_BTE(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_CTRL2_BTE_SHIFT)) & FLEXCAN_CTRL2_BTE_MASK)
  429. #define FLEXCAN_CTRL2_PREXCEN_MASK (0x4000U)
  430. #define FLEXCAN_CTRL2_PREXCEN_SHIFT (14U)
  431. #define FLEXCAN_CTRL2_PREXCEN_WIDTH (1U)
  432. #define FLEXCAN_CTRL2_PREXCEN(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_CTRL2_PREXCEN_SHIFT)) & FLEXCAN_CTRL2_PREXCEN_MASK)
  433. #define FLEXCAN_CTRL2_TIMER_SRC_MASK (0x8000U)
  434. #define FLEXCAN_CTRL2_TIMER_SRC_SHIFT (15U)
  435. #define FLEXCAN_CTRL2_TIMER_SRC_WIDTH (1U)
  436. #define FLEXCAN_CTRL2_TIMER_SRC(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_CTRL2_TIMER_SRC_SHIFT)) & FLEXCAN_CTRL2_TIMER_SRC_MASK)
  437. #define FLEXCAN_CTRL2_EACEN_MASK (0x10000U)
  438. #define FLEXCAN_CTRL2_EACEN_SHIFT (16U)
  439. #define FLEXCAN_CTRL2_EACEN_WIDTH (1U)
  440. #define FLEXCAN_CTRL2_EACEN(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_CTRL2_EACEN_SHIFT)) & FLEXCAN_CTRL2_EACEN_MASK)
  441. #define FLEXCAN_CTRL2_RRS_MASK (0x20000U)
  442. #define FLEXCAN_CTRL2_RRS_SHIFT (17U)
  443. #define FLEXCAN_CTRL2_RRS_WIDTH (1U)
  444. #define FLEXCAN_CTRL2_RRS(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_CTRL2_RRS_SHIFT)) & FLEXCAN_CTRL2_RRS_MASK)
  445. #define FLEXCAN_CTRL2_MRP_MASK (0x40000U)
  446. #define FLEXCAN_CTRL2_MRP_SHIFT (18U)
  447. #define FLEXCAN_CTRL2_MRP_WIDTH (1U)
  448. #define FLEXCAN_CTRL2_MRP(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_CTRL2_MRP_SHIFT)) & FLEXCAN_CTRL2_MRP_MASK)
  449. #define FLEXCAN_CTRL2_TASD_MASK (0xF80000U)
  450. #define FLEXCAN_CTRL2_TASD_SHIFT (19U)
  451. #define FLEXCAN_CTRL2_TASD_WIDTH (5U)
  452. #define FLEXCAN_CTRL2_TASD(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_CTRL2_TASD_SHIFT)) & FLEXCAN_CTRL2_TASD_MASK)
  453. #define FLEXCAN_CTRL2_RFFN_MASK (0xF000000U)
  454. #define FLEXCAN_CTRL2_RFFN_SHIFT (24U)
  455. #define FLEXCAN_CTRL2_RFFN_WIDTH (4U)
  456. #define FLEXCAN_CTRL2_RFFN(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_CTRL2_RFFN_SHIFT)) & FLEXCAN_CTRL2_RFFN_MASK)
  457. #define FLEXCAN_CTRL2_WRMFRZ_MASK (0x10000000U)
  458. #define FLEXCAN_CTRL2_WRMFRZ_SHIFT (28U)
  459. #define FLEXCAN_CTRL2_WRMFRZ_WIDTH (1U)
  460. #define FLEXCAN_CTRL2_WRMFRZ(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_CTRL2_WRMFRZ_SHIFT)) & FLEXCAN_CTRL2_WRMFRZ_MASK)
  461. #define FLEXCAN_CTRL2_ECRWRE_MASK (0x20000000U)
  462. #define FLEXCAN_CTRL2_ECRWRE_SHIFT (29U)
  463. #define FLEXCAN_CTRL2_ECRWRE_WIDTH (1U)
  464. #define FLEXCAN_CTRL2_ECRWRE(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_CTRL2_ECRWRE_SHIFT)) & FLEXCAN_CTRL2_ECRWRE_MASK)
  465. #define FLEXCAN_CTRL2_BOFFDONEMSK_MASK (0x40000000U)
  466. #define FLEXCAN_CTRL2_BOFFDONEMSK_SHIFT (30U)
  467. #define FLEXCAN_CTRL2_BOFFDONEMSK_WIDTH (1U)
  468. #define FLEXCAN_CTRL2_BOFFDONEMSK(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_CTRL2_BOFFDONEMSK_SHIFT)) & FLEXCAN_CTRL2_BOFFDONEMSK_MASK)
  469. #define FLEXCAN_CTRL2_ERRMSK_FAST_MASK (0x80000000U)
  470. #define FLEXCAN_CTRL2_ERRMSK_FAST_SHIFT (31U)
  471. #define FLEXCAN_CTRL2_ERRMSK_FAST_WIDTH (1U)
  472. #define FLEXCAN_CTRL2_ERRMSK_FAST(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_CTRL2_ERRMSK_FAST_SHIFT)) & FLEXCAN_CTRL2_ERRMSK_FAST_MASK)
  473. #define FLEXCAN_ESR2_IMB_MASK (0x2000U)
  474. #define FLEXCAN_ESR2_IMB_SHIFT (13U)
  475. #define FLEXCAN_ESR2_IMB_WIDTH (1U)
  476. #define FLEXCAN_ESR2_IMB(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_ESR2_IMB_SHIFT)) & FLEXCAN_ESR2_IMB_MASK)
  477. #define FLEXCAN_ESR2_VPS_MASK (0x4000U)
  478. #define FLEXCAN_ESR2_VPS_SHIFT (14U)
  479. #define FLEXCAN_ESR2_VPS_WIDTH (1U)
  480. #define FLEXCAN_ESR2_VPS(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_ESR2_VPS_SHIFT)) & FLEXCAN_ESR2_VPS_MASK)
  481. #define FLEXCAN_ESR2_LPTM_MASK (0x7F0000U)
  482. #define FLEXCAN_ESR2_LPTM_SHIFT (16U)
  483. #define FLEXCAN_ESR2_LPTM_WIDTH (7U)
  484. #define FLEXCAN_ESR2_LPTM(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_ESR2_LPTM_SHIFT)) & FLEXCAN_ESR2_LPTM_MASK)
  485. #define FLEXCAN_CRCR_TXCRC_MASK (0x7FFFU)
  486. #define FLEXCAN_CRCR_TXCRC_SHIFT (0U)
  487. #define FLEXCAN_CRCR_TXCRC_WIDTH (15U)
  488. #define FLEXCAN_CRCR_TXCRC(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_CRCR_TXCRC_SHIFT)) & FLEXCAN_CRCR_TXCRC_MASK)
  489. #define FLEXCAN_CRCR_MBCRC_MASK (0x7F0000U)
  490. #define FLEXCAN_CRCR_MBCRC_SHIFT (16U)
  491. #define FLEXCAN_CRCR_MBCRC_WIDTH (7U)
  492. #define FLEXCAN_CRCR_MBCRC(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_CRCR_MBCRC_SHIFT)) & FLEXCAN_CRCR_MBCRC_MASK)
  493. #define FLEXCAN_RXFGMASK_FGM_MASK (0xFFFFFFFFU)
  494. #define FLEXCAN_RXFGMASK_FGM_SHIFT (0U)
  495. #define FLEXCAN_RXFGMASK_FGM_WIDTH (32U)
  496. #define FLEXCAN_RXFGMASK_FGM(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_RXFGMASK_FGM_SHIFT)) & FLEXCAN_RXFGMASK_FGM_MASK)
  497. #define FLEXCAN_RXFIR_IDHIT_MASK (0x1FFU)
  498. #define FLEXCAN_RXFIR_IDHIT_SHIFT (0U)
  499. #define FLEXCAN_RXFIR_IDHIT_WIDTH (9U)
  500. #define FLEXCAN_RXFIR_IDHIT(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_RXFIR_IDHIT_SHIFT)) & FLEXCAN_RXFIR_IDHIT_MASK)
  501. #define FLEXCAN_CBT_EPSEG2_MASK (0x1FU)
  502. #define FLEXCAN_CBT_EPSEG2_SHIFT (0U)
  503. #define FLEXCAN_CBT_EPSEG2_WIDTH (5U)
  504. #define FLEXCAN_CBT_EPSEG2(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_CBT_EPSEG2_SHIFT)) & FLEXCAN_CBT_EPSEG2_MASK)
  505. #define FLEXCAN_CBT_EPSEG1_MASK (0x3E0U)
  506. #define FLEXCAN_CBT_EPSEG1_SHIFT (5U)
  507. #define FLEXCAN_CBT_EPSEG1_WIDTH (5U)
  508. #define FLEXCAN_CBT_EPSEG1(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_CBT_EPSEG1_SHIFT)) & FLEXCAN_CBT_EPSEG1_MASK)
  509. #define FLEXCAN_CBT_EPROPSEG_MASK (0xFC00U)
  510. #define FLEXCAN_CBT_EPROPSEG_SHIFT (10U)
  511. #define FLEXCAN_CBT_EPROPSEG_WIDTH (6U)
  512. #define FLEXCAN_CBT_EPROPSEG(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_CBT_EPROPSEG_SHIFT)) & FLEXCAN_CBT_EPROPSEG_MASK)
  513. #define FLEXCAN_CBT_ERJW_MASK (0x1F0000U)
  514. #define FLEXCAN_CBT_ERJW_SHIFT (16U)
  515. #define FLEXCAN_CBT_ERJW_WIDTH (5U)
  516. #define FLEXCAN_CBT_ERJW(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_CBT_ERJW_SHIFT)) & FLEXCAN_CBT_ERJW_MASK)
  517. #define FLEXCAN_CBT_EPRESDIV_MASK (0x7FE00000U)
  518. #define FLEXCAN_CBT_EPRESDIV_SHIFT (21U)
  519. #define FLEXCAN_CBT_EPRESDIV_WIDTH (10U)
  520. #define FLEXCAN_CBT_EPRESDIV(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_CBT_EPRESDIV_SHIFT)) & FLEXCAN_CBT_EPRESDIV_MASK)
  521. #define FLEXCAN_CBT_BTF_MASK (0x80000000U)
  522. #define FLEXCAN_CBT_BTF_SHIFT (31U)
  523. #define FLEXCAN_CBT_BTF_WIDTH (1U)
  524. #define FLEXCAN_CBT_BTF(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_CBT_BTF_SHIFT)) & FLEXCAN_CBT_BTF_MASK)
  525. #define FLEXCAN_IMASK4_BUF127TO96M_MASK (0xFFFFFFFFU)
  526. #define FLEXCAN_IMASK4_BUF127TO96M_SHIFT (0U)
  527. #define FLEXCAN_IMASK4_BUF127TO96M_WIDTH (32U)
  528. #define FLEXCAN_IMASK4_BUF127TO96M(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_IMASK4_BUF127TO96M_SHIFT)) & FLEXCAN_IMASK4_BUF127TO96M_MASK)
  529. #define FLEXCAN_IMASK3_BUF95TO64M_MASK (0xFFFFFFFFU)
  530. #define FLEXCAN_IMASK3_BUF95TO64M_SHIFT (0U)
  531. #define FLEXCAN_IMASK3_BUF95TO64M_WIDTH (32U)
  532. #define FLEXCAN_IMASK3_BUF95TO64M(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_IMASK3_BUF95TO64M_SHIFT)) & FLEXCAN_IMASK3_BUF95TO64M_MASK)
  533. #define FLEXCAN_IFLAG4_BUF127TO96_MASK (0xFFFFFFFFU)
  534. #define FLEXCAN_IFLAG4_BUF127TO96_SHIFT (0U)
  535. #define FLEXCAN_IFLAG4_BUF127TO96_WIDTH (32U)
  536. #define FLEXCAN_IFLAG4_BUF127TO96(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_IFLAG4_BUF127TO96_SHIFT)) & FLEXCAN_IFLAG4_BUF127TO96_MASK)
  537. #define FLEXCAN_IFLAG3_BUF95TO64_MASK (0xFFFFFFFFU)
  538. #define FLEXCAN_IFLAG3_BUF95TO64_SHIFT (0U)
  539. #define FLEXCAN_IFLAG3_BUF95TO64_WIDTH (32U)
  540. #define FLEXCAN_IFLAG3_BUF95TO64(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_IFLAG3_BUF95TO64_SHIFT)) & FLEXCAN_IFLAG3_BUF95TO64_MASK)
  541. #define FLEXCAN_RXIMR_MI_MASK (0xFFFFFFFFU)
  542. #define FLEXCAN_RXIMR_MI_SHIFT (0U)
  543. #define FLEXCAN_RXIMR_MI_WIDTH (32U)
  544. #define FLEXCAN_RXIMR_MI(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_RXIMR_MI_SHIFT)) & FLEXCAN_RXIMR_MI_MASK)
  545. #define FLEXCAN_MECR_NCEFAFRZ_MASK (0x80U)
  546. #define FLEXCAN_MECR_NCEFAFRZ_SHIFT (7U)
  547. #define FLEXCAN_MECR_NCEFAFRZ_WIDTH (1U)
  548. #define FLEXCAN_MECR_NCEFAFRZ(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_MECR_NCEFAFRZ_SHIFT)) & FLEXCAN_MECR_NCEFAFRZ_MASK)
  549. #define FLEXCAN_MECR_ECCDIS_MASK (0x100U)
  550. #define FLEXCAN_MECR_ECCDIS_SHIFT (8U)
  551. #define FLEXCAN_MECR_ECCDIS_WIDTH (1U)
  552. #define FLEXCAN_MECR_ECCDIS(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_MECR_ECCDIS_SHIFT)) & FLEXCAN_MECR_ECCDIS_MASK)
  553. #define FLEXCAN_MECR_RERRDIS_MASK (0x200U)
  554. #define FLEXCAN_MECR_RERRDIS_SHIFT (9U)
  555. #define FLEXCAN_MECR_RERRDIS_WIDTH (1U)
  556. #define FLEXCAN_MECR_RERRDIS(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_MECR_RERRDIS_SHIFT)) & FLEXCAN_MECR_RERRDIS_MASK)
  557. #define FLEXCAN_MECR_EXTERRIE_MASK (0x2000U)
  558. #define FLEXCAN_MECR_EXTERRIE_SHIFT (13U)
  559. #define FLEXCAN_MECR_EXTERRIE_WIDTH (1U)
  560. #define FLEXCAN_MECR_EXTERRIE(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_MECR_EXTERRIE_SHIFT)) & FLEXCAN_MECR_EXTERRIE_MASK)
  561. #define FLEXCAN_MECR_FAERRIE_MASK (0x4000U)
  562. #define FLEXCAN_MECR_FAERRIE_SHIFT (14U)
  563. #define FLEXCAN_MECR_FAERRIE_WIDTH (1U)
  564. #define FLEXCAN_MECR_FAERRIE(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_MECR_FAERRIE_SHIFT)) & FLEXCAN_MECR_FAERRIE_MASK)
  565. #define FLEXCAN_MECR_HAERRIE_MASK (0x8000U)
  566. #define FLEXCAN_MECR_HAERRIE_SHIFT (15U)
  567. #define FLEXCAN_MECR_HAERRIE_WIDTH (1U)
  568. #define FLEXCAN_MECR_HAERRIE(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_MECR_HAERRIE_SHIFT)) & FLEXCAN_MECR_HAERRIE_MASK)
  569. #define FLEXCAN_MECR_CEI_MASK (0x10000U)
  570. #define FLEXCAN_MECR_CEI_SHIFT (16U)
  571. #define FLEXCAN_MECR_CEI_WIDTH (1U)
  572. #define FLEXCAN_MECR_CEI(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_MECR_CEI_SHIFT)) & FLEXCAN_MECR_CEI_MASK)
  573. #define FLEXCAN_MECR_FANCEI_MASK (0x40000U)
  574. #define FLEXCAN_MECR_FANCEI_SHIFT (18U)
  575. #define FLEXCAN_MECR_FANCEI_WIDTH (1U)
  576. #define FLEXCAN_MECR_FANCEI(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_MECR_FANCEI_SHIFT)) & FLEXCAN_MECR_FANCEI_MASK)
  577. #define FLEXCAN_MECR_HANCEI_MASK (0x80000U)
  578. #define FLEXCAN_MECR_HANCEI_SHIFT (19U)
  579. #define FLEXCAN_MECR_HANCEI_WIDTH (1U)
  580. #define FLEXCAN_MECR_HANCEI(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_MECR_HANCEI_SHIFT)) & FLEXCAN_MECR_HANCEI_MASK)
  581. #define FLEXCAN_MECR_ECRWRDIS_MASK (0x80000000U)
  582. #define FLEXCAN_MECR_ECRWRDIS_SHIFT (31U)
  583. #define FLEXCAN_MECR_ECRWRDIS_WIDTH (1U)
  584. #define FLEXCAN_MECR_ECRWRDIS(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_MECR_ECRWRDIS_SHIFT)) & FLEXCAN_MECR_ECRWRDIS_MASK)
  585. #define FLEXCAN_ERRIAR_INJADDR_L_MASK (0x3U)
  586. #define FLEXCAN_ERRIAR_INJADDR_L_SHIFT (0U)
  587. #define FLEXCAN_ERRIAR_INJADDR_L_WIDTH (2U)
  588. #define FLEXCAN_ERRIAR_INJADDR_L(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_ERRIAR_INJADDR_L_SHIFT)) & FLEXCAN_ERRIAR_INJADDR_L_MASK)
  589. #define FLEXCAN_ERRIAR_INJADDR_H_MASK (0x3FFCU)
  590. #define FLEXCAN_ERRIAR_INJADDR_H_SHIFT (2U)
  591. #define FLEXCAN_ERRIAR_INJADDR_H_WIDTH (12U)
  592. #define FLEXCAN_ERRIAR_INJADDR_H(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_ERRIAR_INJADDR_H_SHIFT)) & FLEXCAN_ERRIAR_INJADDR_H_MASK)
  593. #define FLEXCAN_ERRIDPR_DFLIP_MASK (0xFFFFFFFFU)
  594. #define FLEXCAN_ERRIDPR_DFLIP_SHIFT (0U)
  595. #define FLEXCAN_ERRIDPR_DFLIP_WIDTH (32U)
  596. #define FLEXCAN_ERRIDPR_DFLIP(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_ERRIDPR_DFLIP_SHIFT)) & FLEXCAN_ERRIDPR_DFLIP_MASK)
  597. #define FLEXCAN_ERRIPPR_PFLIP0_MASK (0x1FU)
  598. #define FLEXCAN_ERRIPPR_PFLIP0_SHIFT (0U)
  599. #define FLEXCAN_ERRIPPR_PFLIP0_WIDTH (5U)
  600. #define FLEXCAN_ERRIPPR_PFLIP0(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_ERRIPPR_PFLIP0_SHIFT)) & FLEXCAN_ERRIPPR_PFLIP0_MASK)
  601. #define FLEXCAN_ERRIPPR_PFLIP1_MASK (0x1F00U)
  602. #define FLEXCAN_ERRIPPR_PFLIP1_SHIFT (8U)
  603. #define FLEXCAN_ERRIPPR_PFLIP1_WIDTH (5U)
  604. #define FLEXCAN_ERRIPPR_PFLIP1(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_ERRIPPR_PFLIP1_SHIFT)) & FLEXCAN_ERRIPPR_PFLIP1_MASK)
  605. #define FLEXCAN_ERRIPPR_PFLIP2_MASK (0x1F0000U)
  606. #define FLEXCAN_ERRIPPR_PFLIP2_SHIFT (16U)
  607. #define FLEXCAN_ERRIPPR_PFLIP2_WIDTH (5U)
  608. #define FLEXCAN_ERRIPPR_PFLIP2(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_ERRIPPR_PFLIP2_SHIFT)) & FLEXCAN_ERRIPPR_PFLIP2_MASK)
  609. #define FLEXCAN_ERRIPPR_PFLIP3_MASK (0x1F000000U)
  610. #define FLEXCAN_ERRIPPR_PFLIP3_SHIFT (24U)
  611. #define FLEXCAN_ERRIPPR_PFLIP3_WIDTH (5U)
  612. #define FLEXCAN_ERRIPPR_PFLIP3(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_ERRIPPR_PFLIP3_SHIFT)) & FLEXCAN_ERRIPPR_PFLIP3_MASK)
  613. #define FLEXCAN_RERRAR_ERRADDR_MASK (0x3FFFU)
  614. #define FLEXCAN_RERRAR_ERRADDR_SHIFT (0U)
  615. #define FLEXCAN_RERRAR_ERRADDR_WIDTH (14U)
  616. #define FLEXCAN_RERRAR_ERRADDR(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_RERRAR_ERRADDR_SHIFT)) & FLEXCAN_RERRAR_ERRADDR_MASK)
  617. #define FLEXCAN_RERRAR_SAID_MASK (0x70000U)
  618. #define FLEXCAN_RERRAR_SAID_SHIFT (16U)
  619. #define FLEXCAN_RERRAR_SAID_WIDTH (3U)
  620. #define FLEXCAN_RERRAR_SAID(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_RERRAR_SAID_SHIFT)) & FLEXCAN_RERRAR_SAID_MASK)
  621. #define FLEXCAN_RERRAR_NCE_MASK (0x1000000U)
  622. #define FLEXCAN_RERRAR_NCE_SHIFT (24U)
  623. #define FLEXCAN_RERRAR_NCE_WIDTH (1U)
  624. #define FLEXCAN_RERRAR_NCE(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_RERRAR_NCE_SHIFT)) & FLEXCAN_RERRAR_NCE_MASK)
  625. #define FLEXCAN_RERRDR_RDATA_MASK (0xFFFFFFFFU)
  626. #define FLEXCAN_RERRDR_RDATA_SHIFT (0U)
  627. #define FLEXCAN_RERRDR_RDATA_WIDTH (32U)
  628. #define FLEXCAN_RERRDR_RDATA(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_RERRDR_RDATA_SHIFT)) & FLEXCAN_RERRDR_RDATA_MASK)
  629. #define FLEXCAN_RERRSYNR_SYND0_MASK (0x1FU)
  630. #define FLEXCAN_RERRSYNR_SYND0_SHIFT (0U)
  631. #define FLEXCAN_RERRSYNR_SYND0_WIDTH (5U)
  632. #define FLEXCAN_RERRSYNR_SYND0(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_RERRSYNR_SYND0_SHIFT)) & FLEXCAN_RERRSYNR_SYND0_MASK)
  633. #define FLEXCAN_RERRSYNR_BE0_MASK (0x80U)
  634. #define FLEXCAN_RERRSYNR_BE0_SHIFT (7U)
  635. #define FLEXCAN_RERRSYNR_BE0_WIDTH (1U)
  636. #define FLEXCAN_RERRSYNR_BE0(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_RERRSYNR_BE0_SHIFT)) & FLEXCAN_RERRSYNR_BE0_MASK)
  637. #define FLEXCAN_RERRSYNR_SYND1_MASK (0x1F00U)
  638. #define FLEXCAN_RERRSYNR_SYND1_SHIFT (8U)
  639. #define FLEXCAN_RERRSYNR_SYND1_WIDTH (5U)
  640. #define FLEXCAN_RERRSYNR_SYND1(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_RERRSYNR_SYND1_SHIFT)) & FLEXCAN_RERRSYNR_SYND1_MASK)
  641. #define FLEXCAN_RERRSYNR_BE1_MASK (0x8000U)
  642. #define FLEXCAN_RERRSYNR_BE1_SHIFT (15U)
  643. #define FLEXCAN_RERRSYNR_BE1_WIDTH (1U)
  644. #define FLEXCAN_RERRSYNR_BE1(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_RERRSYNR_BE1_SHIFT)) & FLEXCAN_RERRSYNR_BE1_MASK)
  645. #define FLEXCAN_RERRSYNR_SYND2_MASK (0x1F0000U)
  646. #define FLEXCAN_RERRSYNR_SYND2_SHIFT (16U)
  647. #define FLEXCAN_RERRSYNR_SYND2_WIDTH (5U)
  648. #define FLEXCAN_RERRSYNR_SYND2(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_RERRSYNR_SYND2_SHIFT)) & FLEXCAN_RERRSYNR_SYND2_MASK)
  649. #define FLEXCAN_RERRSYNR_BE2_MASK (0x800000U)
  650. #define FLEXCAN_RERRSYNR_BE2_SHIFT (23U)
  651. #define FLEXCAN_RERRSYNR_BE2_WIDTH (1U)
  652. #define FLEXCAN_RERRSYNR_BE2(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_RERRSYNR_BE2_SHIFT)) & FLEXCAN_RERRSYNR_BE2_MASK)
  653. #define FLEXCAN_RERRSYNR_SYND3_MASK (0x1F000000U)
  654. #define FLEXCAN_RERRSYNR_SYND3_SHIFT (24U)
  655. #define FLEXCAN_RERRSYNR_SYND3_WIDTH (5U)
  656. #define FLEXCAN_RERRSYNR_SYND3(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_RERRSYNR_SYND3_SHIFT)) & FLEXCAN_RERRSYNR_SYND3_MASK)
  657. #define FLEXCAN_RERRSYNR_BE3_MASK (0x80000000U)
  658. #define FLEXCAN_RERRSYNR_BE3_SHIFT (31U)
  659. #define FLEXCAN_RERRSYNR_BE3_WIDTH (1U)
  660. #define FLEXCAN_RERRSYNR_BE3(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_RERRSYNR_BE3_SHIFT)) & FLEXCAN_RERRSYNR_BE3_MASK)
  661. #define FLEXCAN_ERRSR_CEIOF_MASK (0x1U)
  662. #define FLEXCAN_ERRSR_CEIOF_SHIFT (0U)
  663. #define FLEXCAN_ERRSR_CEIOF_WIDTH (1U)
  664. #define FLEXCAN_ERRSR_CEIOF(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_ERRSR_CEIOF_SHIFT)) & FLEXCAN_ERRSR_CEIOF_MASK)
  665. #define FLEXCAN_ERRSR_FANCEIOF_MASK (0x4U)
  666. #define FLEXCAN_ERRSR_FANCEIOF_SHIFT (2U)
  667. #define FLEXCAN_ERRSR_FANCEIOF_WIDTH (1U)
  668. #define FLEXCAN_ERRSR_FANCEIOF(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_ERRSR_FANCEIOF_SHIFT)) & FLEXCAN_ERRSR_FANCEIOF_MASK)
  669. #define FLEXCAN_ERRSR_HANCEIOF_MASK (0x8U)
  670. #define FLEXCAN_ERRSR_HANCEIOF_SHIFT (3U)
  671. #define FLEXCAN_ERRSR_HANCEIOF_WIDTH (1U)
  672. #define FLEXCAN_ERRSR_HANCEIOF(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_ERRSR_HANCEIOF_SHIFT)) & FLEXCAN_ERRSR_HANCEIOF_MASK)
  673. #define FLEXCAN_ERRSR_CEIF_MASK (0x10000U)
  674. #define FLEXCAN_ERRSR_CEIF_SHIFT (16U)
  675. #define FLEXCAN_ERRSR_CEIF_WIDTH (1U)
  676. #define FLEXCAN_ERRSR_CEIF(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_ERRSR_CEIF_SHIFT)) & FLEXCAN_ERRSR_CEIF_MASK)
  677. #define FLEXCAN_ERRSR_FANCEIF_MASK (0x40000U)
  678. #define FLEXCAN_ERRSR_FANCEIF_SHIFT (18U)
  679. #define FLEXCAN_ERRSR_FANCEIF_WIDTH (1U)
  680. #define FLEXCAN_ERRSR_FANCEIF(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_ERRSR_FANCEIF_SHIFT)) & FLEXCAN_ERRSR_FANCEIF_MASK)
  681. #define FLEXCAN_ERRSR_HANCEIF_MASK (0x80000U)
  682. #define FLEXCAN_ERRSR_HANCEIF_SHIFT (19U)
  683. #define FLEXCAN_ERRSR_HANCEIF_WIDTH (1U)
  684. #define FLEXCAN_ERRSR_HANCEIF(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_ERRSR_HANCEIF_SHIFT)) & FLEXCAN_ERRSR_HANCEIF_MASK)
  685. #define FLEXCAN_EPRS_ENPRESDIV_MASK (0x3FFU)
  686. #define FLEXCAN_EPRS_ENPRESDIV_SHIFT (0U)
  687. #define FLEXCAN_EPRS_ENPRESDIV_WIDTH (10U)
  688. #define FLEXCAN_EPRS_ENPRESDIV(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_EPRS_ENPRESDIV_SHIFT)) & FLEXCAN_EPRS_ENPRESDIV_MASK)
  689. #define FLEXCAN_EPRS_EDPRESDIV_MASK (0x3FF0000U)
  690. #define FLEXCAN_EPRS_EDPRESDIV_SHIFT (16U)
  691. #define FLEXCAN_EPRS_EDPRESDIV_WIDTH (10U)
  692. #define FLEXCAN_EPRS_EDPRESDIV(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_EPRS_EDPRESDIV_SHIFT)) & FLEXCAN_EPRS_EDPRESDIV_MASK)
  693. #define FLEXCAN_ENCBT_NTSEG1_MASK (0xFFU)
  694. #define FLEXCAN_ENCBT_NTSEG1_SHIFT (0U)
  695. #define FLEXCAN_ENCBT_NTSEG1_WIDTH (8U)
  696. #define FLEXCAN_ENCBT_NTSEG1(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_ENCBT_NTSEG1_SHIFT)) & FLEXCAN_ENCBT_NTSEG1_MASK)
  697. #define FLEXCAN_ENCBT_NTSEG2_MASK (0x7F000U)
  698. #define FLEXCAN_ENCBT_NTSEG2_SHIFT (12U)
  699. #define FLEXCAN_ENCBT_NTSEG2_WIDTH (7U)
  700. #define FLEXCAN_ENCBT_NTSEG2(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_ENCBT_NTSEG2_SHIFT)) & FLEXCAN_ENCBT_NTSEG2_MASK)
  701. #define FLEXCAN_ENCBT_NRJW_MASK (0x1FC00000U)
  702. #define FLEXCAN_ENCBT_NRJW_SHIFT (22U)
  703. #define FLEXCAN_ENCBT_NRJW_WIDTH (7U)
  704. #define FLEXCAN_ENCBT_NRJW(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_ENCBT_NRJW_SHIFT)) & FLEXCAN_ENCBT_NRJW_MASK)
  705. #define FLEXCAN_EDCBT_DTSEG1_MASK (0x1FU)
  706. #define FLEXCAN_EDCBT_DTSEG1_SHIFT (0U)
  707. #define FLEXCAN_EDCBT_DTSEG1_WIDTH (5U)
  708. #define FLEXCAN_EDCBT_DTSEG1(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_EDCBT_DTSEG1_SHIFT)) & FLEXCAN_EDCBT_DTSEG1_MASK)
  709. #define FLEXCAN_EDCBT_DTSEG2_MASK (0xF000U)
  710. #define FLEXCAN_EDCBT_DTSEG2_SHIFT (12U)
  711. #define FLEXCAN_EDCBT_DTSEG2_WIDTH (4U)
  712. #define FLEXCAN_EDCBT_DTSEG2(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_EDCBT_DTSEG2_SHIFT)) & FLEXCAN_EDCBT_DTSEG2_MASK)
  713. #define FLEXCAN_EDCBT_DRJW_MASK (0x3C00000U)
  714. #define FLEXCAN_EDCBT_DRJW_SHIFT (22U)
  715. #define FLEXCAN_EDCBT_DRJW_WIDTH (4U)
  716. #define FLEXCAN_EDCBT_DRJW(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_EDCBT_DRJW_SHIFT)) & FLEXCAN_EDCBT_DRJW_MASK)
  717. #define FLEXCAN_ETDC_ETDCVAL_MASK (0xFFU)
  718. #define FLEXCAN_ETDC_ETDCVAL_SHIFT (0U)
  719. #define FLEXCAN_ETDC_ETDCVAL_WIDTH (8U)
  720. #define FLEXCAN_ETDC_ETDCVAL(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_ETDC_ETDCVAL_SHIFT)) & FLEXCAN_ETDC_ETDCVAL_MASK)
  721. #define FLEXCAN_ETDC_ETDCFAIL_MASK (0x8000U)
  722. #define FLEXCAN_ETDC_ETDCFAIL_SHIFT (15U)
  723. #define FLEXCAN_ETDC_ETDCFAIL_WIDTH (1U)
  724. #define FLEXCAN_ETDC_ETDCFAIL(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_ETDC_ETDCFAIL_SHIFT)) & FLEXCAN_ETDC_ETDCFAIL_MASK)
  725. #define FLEXCAN_ETDC_ETDCOFF_MASK (0x7F0000U)
  726. #define FLEXCAN_ETDC_ETDCOFF_SHIFT (16U)
  727. #define FLEXCAN_ETDC_ETDCOFF_WIDTH (7U)
  728. #define FLEXCAN_ETDC_ETDCOFF(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_ETDC_ETDCOFF_SHIFT)) & FLEXCAN_ETDC_ETDCOFF_MASK)
  729. #define FLEXCAN_ETDC_TDMDIS_MASK (0x40000000U)
  730. #define FLEXCAN_ETDC_TDMDIS_SHIFT (30U)
  731. #define FLEXCAN_ETDC_TDMDIS_WIDTH (1U)
  732. #define FLEXCAN_ETDC_TDMDIS(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_ETDC_TDMDIS_SHIFT)) & FLEXCAN_ETDC_TDMDIS_MASK)
  733. #define FLEXCAN_ETDC_ETDCEN_MASK (0x80000000U)
  734. #define FLEXCAN_ETDC_ETDCEN_SHIFT (31U)
  735. #define FLEXCAN_ETDC_ETDCEN_WIDTH (1U)
  736. #define FLEXCAN_ETDC_ETDCEN(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_ETDC_ETDCEN_SHIFT)) & FLEXCAN_ETDC_ETDCEN_MASK)
  737. #define FLEXCAN_FDCTRL_TDCVAL_MASK (0x3FU)
  738. #define FLEXCAN_FDCTRL_TDCVAL_SHIFT (0U)
  739. #define FLEXCAN_FDCTRL_TDCVAL_WIDTH (6U)
  740. #define FLEXCAN_FDCTRL_TDCVAL(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_FDCTRL_TDCVAL_SHIFT)) & FLEXCAN_FDCTRL_TDCVAL_MASK)
  741. #define FLEXCAN_FDCTRL_TDCOFF_MASK (0x1F00U)
  742. #define FLEXCAN_FDCTRL_TDCOFF_SHIFT (8U)
  743. #define FLEXCAN_FDCTRL_TDCOFF_WIDTH (5U)
  744. #define FLEXCAN_FDCTRL_TDCOFF(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_FDCTRL_TDCOFF_SHIFT)) & FLEXCAN_FDCTRL_TDCOFF_MASK)
  745. #define FLEXCAN_FDCTRL_TDCFAIL_MASK (0x4000U)
  746. #define FLEXCAN_FDCTRL_TDCFAIL_SHIFT (14U)
  747. #define FLEXCAN_FDCTRL_TDCFAIL_WIDTH (1U)
  748. #define FLEXCAN_FDCTRL_TDCFAIL(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_FDCTRL_TDCFAIL_SHIFT)) & FLEXCAN_FDCTRL_TDCFAIL_MASK)
  749. #define FLEXCAN_FDCTRL_TDCEN_MASK (0x8000U)
  750. #define FLEXCAN_FDCTRL_TDCEN_SHIFT (15U)
  751. #define FLEXCAN_FDCTRL_TDCEN_WIDTH (1U)
  752. #define FLEXCAN_FDCTRL_TDCEN(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_FDCTRL_TDCEN_SHIFT)) & FLEXCAN_FDCTRL_TDCEN_MASK)
  753. #define FLEXCAN_FDCTRL_MBDSR0_MASK (0x30000U)
  754. #define FLEXCAN_FDCTRL_MBDSR0_SHIFT (16U)
  755. #define FLEXCAN_FDCTRL_MBDSR0_WIDTH (2U)
  756. #define FLEXCAN_FDCTRL_MBDSR0(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_FDCTRL_MBDSR0_SHIFT)) & FLEXCAN_FDCTRL_MBDSR0_MASK)
  757. #define FLEXCAN_FDCTRL_MBDSR1_MASK (0x180000U)
  758. #define FLEXCAN_FDCTRL_MBDSR1_SHIFT (19U)
  759. #define FLEXCAN_FDCTRL_MBDSR1_WIDTH (2U)
  760. #define FLEXCAN_FDCTRL_MBDSR1(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_FDCTRL_MBDSR1_SHIFT)) & FLEXCAN_FDCTRL_MBDSR1_MASK)
  761. #define FLEXCAN_FDCTRL_MBDSR2_MASK (0xC00000U)
  762. #define FLEXCAN_FDCTRL_MBDSR2_SHIFT (22U)
  763. #define FLEXCAN_FDCTRL_MBDSR2_WIDTH (2U)
  764. #define FLEXCAN_FDCTRL_MBDSR2(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_FDCTRL_MBDSR2_SHIFT)) & FLEXCAN_FDCTRL_MBDSR2_MASK)
  765. #define FLEXCAN_FDCTRL_MBDSR3_MASK (0x6000000U)
  766. #define FLEXCAN_FDCTRL_MBDSR3_SHIFT (25U)
  767. #define FLEXCAN_FDCTRL_MBDSR3_WIDTH (2U)
  768. #define FLEXCAN_FDCTRL_MBDSR3(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_FDCTRL_MBDSR3_SHIFT)) & FLEXCAN_FDCTRL_MBDSR3_MASK)
  769. #define FLEXCAN_FDCTRL_FDRATE_MASK (0x80000000U)
  770. #define FLEXCAN_FDCTRL_FDRATE_SHIFT (31U)
  771. #define FLEXCAN_FDCTRL_FDRATE_WIDTH (1U)
  772. #define FLEXCAN_FDCTRL_FDRATE(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_FDCTRL_FDRATE_SHIFT)) & FLEXCAN_FDCTRL_FDRATE_MASK)
  773. #define FLEXCAN_FDCBT_FPSEG2_MASK (0x7U)
  774. #define FLEXCAN_FDCBT_FPSEG2_SHIFT (0U)
  775. #define FLEXCAN_FDCBT_FPSEG2_WIDTH (3U)
  776. #define FLEXCAN_FDCBT_FPSEG2(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_FDCBT_FPSEG2_SHIFT)) & FLEXCAN_FDCBT_FPSEG2_MASK)
  777. #define FLEXCAN_FDCBT_FPSEG1_MASK (0xE0U)
  778. #define FLEXCAN_FDCBT_FPSEG1_SHIFT (5U)
  779. #define FLEXCAN_FDCBT_FPSEG1_WIDTH (3U)
  780. #define FLEXCAN_FDCBT_FPSEG1(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_FDCBT_FPSEG1_SHIFT)) & FLEXCAN_FDCBT_FPSEG1_MASK)
  781. #define FLEXCAN_FDCBT_FPROPSEG_MASK (0x7C00U)
  782. #define FLEXCAN_FDCBT_FPROPSEG_SHIFT (10U)
  783. #define FLEXCAN_FDCBT_FPROPSEG_WIDTH (5U)
  784. #define FLEXCAN_FDCBT_FPROPSEG(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_FDCBT_FPROPSEG_SHIFT)) & FLEXCAN_FDCBT_FPROPSEG_MASK)
  785. #define FLEXCAN_FDCBT_FRJW_MASK (0x70000U)
  786. #define FLEXCAN_FDCBT_FRJW_SHIFT (16U)
  787. #define FLEXCAN_FDCBT_FRJW_WIDTH (3U)
  788. #define FLEXCAN_FDCBT_FRJW(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_FDCBT_FRJW_SHIFT)) & FLEXCAN_FDCBT_FRJW_MASK)
  789. #define FLEXCAN_FDCBT_FPRESDIV_MASK (0x3FF00000U)
  790. #define FLEXCAN_FDCBT_FPRESDIV_SHIFT (20U)
  791. #define FLEXCAN_FDCBT_FPRESDIV_WIDTH (10U)
  792. #define FLEXCAN_FDCBT_FPRESDIV(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_FDCBT_FPRESDIV_SHIFT)) & FLEXCAN_FDCBT_FPRESDIV_MASK)
  793. #define FLEXCAN_FDCRC_FD_TXCRC_MASK (0x1FFFFFU)
  794. #define FLEXCAN_FDCRC_FD_TXCRC_SHIFT (0U)
  795. #define FLEXCAN_FDCRC_FD_TXCRC_WIDTH (21U)
  796. #define FLEXCAN_FDCRC_FD_TXCRC(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_FDCRC_FD_TXCRC_SHIFT)) & FLEXCAN_FDCRC_FD_TXCRC_MASK)
  797. #define FLEXCAN_FDCRC_FD_MBCRC_MASK (0x7F000000U)
  798. #define FLEXCAN_FDCRC_FD_MBCRC_SHIFT (24U)
  799. #define FLEXCAN_FDCRC_FD_MBCRC_WIDTH (7U)
  800. #define FLEXCAN_FDCRC_FD_MBCRC(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_FDCRC_FD_MBCRC_SHIFT)) & FLEXCAN_FDCRC_FD_MBCRC_MASK)
  801. #define FLEXCAN_ERFCR_ERFWM_MASK (0x1FU)
  802. #define FLEXCAN_ERFCR_ERFWM_SHIFT (0U)
  803. #define FLEXCAN_ERFCR_ERFWM_WIDTH (5U)
  804. #define FLEXCAN_ERFCR_ERFWM(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_ERFCR_ERFWM_SHIFT)) & FLEXCAN_ERFCR_ERFWM_MASK)
  805. #define FLEXCAN_ERFCR_NFE_MASK (0x3F00U)
  806. #define FLEXCAN_ERFCR_NFE_SHIFT (8U)
  807. #define FLEXCAN_ERFCR_NFE_WIDTH (6U)
  808. #define FLEXCAN_ERFCR_NFE(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_ERFCR_NFE_SHIFT)) & FLEXCAN_ERFCR_NFE_MASK)
  809. #define FLEXCAN_ERFCR_NEXIF_MASK (0x7F0000U)
  810. #define FLEXCAN_ERFCR_NEXIF_SHIFT (16U)
  811. #define FLEXCAN_ERFCR_NEXIF_WIDTH (7U)
  812. #define FLEXCAN_ERFCR_NEXIF(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_ERFCR_NEXIF_SHIFT)) & FLEXCAN_ERFCR_NEXIF_MASK)
  813. #define FLEXCAN_ERFCR_DMALW_MASK (0x7C000000U)
  814. #define FLEXCAN_ERFCR_DMALW_SHIFT (26U)
  815. #define FLEXCAN_ERFCR_DMALW_WIDTH (5U)
  816. #define FLEXCAN_ERFCR_DMALW(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_ERFCR_DMALW_SHIFT)) & FLEXCAN_ERFCR_DMALW_MASK)
  817. #define FLEXCAN_ERFCR_ERFEN_MASK (0x80000000U)
  818. #define FLEXCAN_ERFCR_ERFEN_SHIFT (31U)
  819. #define FLEXCAN_ERFCR_ERFEN_WIDTH (1U)
  820. #define FLEXCAN_ERFCR_ERFEN(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_ERFCR_ERFEN_SHIFT)) & FLEXCAN_ERFCR_ERFEN_MASK)
  821. #define FLEXCAN_ERFIER_ERFDAIE_MASK (0x10000000U)
  822. #define FLEXCAN_ERFIER_ERFDAIE_SHIFT (28U)
  823. #define FLEXCAN_ERFIER_ERFDAIE_WIDTH (1U)
  824. #define FLEXCAN_ERFIER_ERFDAIE(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_ERFIER_ERFDAIE_SHIFT)) & FLEXCAN_ERFIER_ERFDAIE_MASK)
  825. #define FLEXCAN_ERFIER_ERFWMIIE_MASK (0x20000000U)
  826. #define FLEXCAN_ERFIER_ERFWMIIE_SHIFT (29U)
  827. #define FLEXCAN_ERFIER_ERFWMIIE_WIDTH (1U)
  828. #define FLEXCAN_ERFIER_ERFWMIIE(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_ERFIER_ERFWMIIE_SHIFT)) & FLEXCAN_ERFIER_ERFWMIIE_MASK)
  829. #define FLEXCAN_ERFIER_ERFOVFIE_MASK (0x40000000U)
  830. #define FLEXCAN_ERFIER_ERFOVFIE_SHIFT (30U)
  831. #define FLEXCAN_ERFIER_ERFOVFIE_WIDTH (1U)
  832. #define FLEXCAN_ERFIER_ERFOVFIE(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_ERFIER_ERFOVFIE_SHIFT)) & FLEXCAN_ERFIER_ERFOVFIE_MASK)
  833. #define FLEXCAN_ERFIER_ERFUFWIE_MASK (0x80000000U)
  834. #define FLEXCAN_ERFIER_ERFUFWIE_SHIFT (31U)
  835. #define FLEXCAN_ERFIER_ERFUFWIE_WIDTH (1U)
  836. #define FLEXCAN_ERFIER_ERFUFWIE(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_ERFIER_ERFUFWIE_SHIFT)) & FLEXCAN_ERFIER_ERFUFWIE_MASK)
  837. #define FLEXCAN_ERFSR_ERFEL_MASK (0x3FU)
  838. #define FLEXCAN_ERFSR_ERFEL_SHIFT (0U)
  839. #define FLEXCAN_ERFSR_ERFEL_WIDTH (6U)
  840. #define FLEXCAN_ERFSR_ERFEL(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_ERFSR_ERFEL_SHIFT)) & FLEXCAN_ERFSR_ERFEL_MASK)
  841. #define FLEXCAN_ERFSR_ERFF_MASK (0x10000U)
  842. #define FLEXCAN_ERFSR_ERFF_SHIFT (16U)
  843. #define FLEXCAN_ERFSR_ERFF_WIDTH (1U)
  844. #define FLEXCAN_ERFSR_ERFF(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_ERFSR_ERFF_SHIFT)) & FLEXCAN_ERFSR_ERFF_MASK)
  845. #define FLEXCAN_ERFSR_ERFE_MASK (0x20000U)
  846. #define FLEXCAN_ERFSR_ERFE_SHIFT (17U)
  847. #define FLEXCAN_ERFSR_ERFE_WIDTH (1U)
  848. #define FLEXCAN_ERFSR_ERFE(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_ERFSR_ERFE_SHIFT)) & FLEXCAN_ERFSR_ERFE_MASK)
  849. #define FLEXCAN_ERFSR_ERFCLR_MASK (0x8000000U)
  850. #define FLEXCAN_ERFSR_ERFCLR_SHIFT (27U)
  851. #define FLEXCAN_ERFSR_ERFCLR_WIDTH (1U)
  852. #define FLEXCAN_ERFSR_ERFCLR(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_ERFSR_ERFCLR_SHIFT)) & FLEXCAN_ERFSR_ERFCLR_MASK)
  853. #define FLEXCAN_ERFSR_ERFDA_MASK (0x10000000U)
  854. #define FLEXCAN_ERFSR_ERFDA_SHIFT (28U)
  855. #define FLEXCAN_ERFSR_ERFDA_WIDTH (1U)
  856. #define FLEXCAN_ERFSR_ERFDA(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_ERFSR_ERFDA_SHIFT)) & FLEXCAN_ERFSR_ERFDA_MASK)
  857. #define FLEXCAN_ERFSR_ERFWMI_MASK (0x20000000U)
  858. #define FLEXCAN_ERFSR_ERFWMI_SHIFT (29U)
  859. #define FLEXCAN_ERFSR_ERFWMI_WIDTH (1U)
  860. #define FLEXCAN_ERFSR_ERFWMI(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_ERFSR_ERFWMI_SHIFT)) & FLEXCAN_ERFSR_ERFWMI_MASK)
  861. #define FLEXCAN_ERFSR_ERFOVF_MASK (0x40000000U)
  862. #define FLEXCAN_ERFSR_ERFOVF_SHIFT (30U)
  863. #define FLEXCAN_ERFSR_ERFOVF_WIDTH (1U)
  864. #define FLEXCAN_ERFSR_ERFOVF(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_ERFSR_ERFOVF_SHIFT)) & FLEXCAN_ERFSR_ERFOVF_MASK)
  865. #define FLEXCAN_ERFSR_ERFUFW_MASK (0x80000000U)
  866. #define FLEXCAN_ERFSR_ERFUFW_SHIFT (31U)
  867. #define FLEXCAN_ERFSR_ERFUFW_WIDTH (1U)
  868. #define FLEXCAN_ERFSR_ERFUFW(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_ERFSR_ERFUFW_SHIFT)) & FLEXCAN_ERFSR_ERFUFW_MASK)
  869. #define FLEXCAN_HR_TIME_STAMP_TS_MASK (0xFFFFFFFFU)
  870. #define FLEXCAN_HR_TIME_STAMP_TS_SHIFT (0U)
  871. #define FLEXCAN_HR_TIME_STAMP_TS_WIDTH (32U)
  872. #define FLEXCAN_HR_TIME_STAMP_TS(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_HR_TIME_STAMP_TS_SHIFT)) & FLEXCAN_HR_TIME_STAMP_TS_MASK)
  873. #define FLEXCAN_ERFFEL_FEL_MASK (0xFFFFFFFFU)
  874. #define FLEXCAN_ERFFEL_FEL_SHIFT (0U)
  875. #define FLEXCAN_ERFFEL_FEL_WIDTH (32U)
  876. #define FLEXCAN_ERFFEL_FEL(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_ERFFEL_FEL_SHIFT)) & FLEXCAN_ERFFEL_FEL_MASK)
  877. #define FLEXCAN_TSCTRL_REFRESH_MASK (0x8U)
  878. #define FLEXCAN_TSCTRL_REFRESH_SHIFT (3U)
  879. #define FLEXCAN_TSCTRL_REFRESH_WIDTH (1U)
  880. #define FLEXCAN_TSCTRL_REFRESH(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_TSCTRL_REFRESH_SHIFT)) & FLEXCAN_TSCTRL_REFRESH_MASK)
  881. #define FLEXCAN_TSCTRL_SRC_MASK (0x10U)
  882. #define FLEXCAN_TSCTRL_SRC_SHIFT (4U)
  883. #define FLEXCAN_TSCTRL_SRC_WIDTH (1U)
  884. #define FLEXCAN_TSCTRL_SRC(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_TSCTRL_SRC_SHIFT)) & FLEXCAN_TSCTRL_SRC_MASK)
  885. #define FLEXCAN_TSCTRL_PSLVE_MASK (0x20U)
  886. #define FLEXCAN_TSCTRL_PSLVE_SHIFT (5U)
  887. #define FLEXCAN_TSCTRL_PSLVE_WIDTH (1U)
  888. #define FLEXCAN_TSCTRL_PSLVE(x) (((rt_uint32_t)(((rt_uint32_t)(x)) << FLEXCAN_TSCTRL_PSLVE_SHIFT)) & FLEXCAN_TSCTRL_PSLVE_MASK)
  889. /* Default value for register */
  890. /**
  891. * @brief Default value for the MCR register
  892. */
  893. #define FLEXCAN_IP_MCR_DEFAULT_VALUE_U32 ((rt_uint32_t)0xD890000FU)
  894. /**
  895. * @brief Default value for the CTRL1 register
  896. */
  897. #define FLEXCAN_IP_CTRL1_DEFAULT_VALUE_U32 ((rt_uint32_t)0x00000000U)
  898. /**
  899. * @brief Default value for the TIMER register
  900. */
  901. #define FLEXCAN_IP_TIMER_DEFAULT_VALUE_U32 ((rt_uint32_t)0x00000000U)
  902. /**
  903. * @brief Default value for the ECR register
  904. */
  905. #define FLEXCAN_IP_ECR_DEFAULT_VALUE_U32 ((rt_uint32_t)0x00000000U)
  906. /**
  907. * @brief Default value for the ESR1 register
  908. */
  909. #define FLEXCAN_IP_ESR1_DEFAULT_VALUE_U32 ((rt_uint32_t)0x003B0006U)
  910. /**
  911. * @brief Default value for the IMASKx register
  912. */
  913. #define FLEXCAN_IP_IMASK_DEFAULT_VALUE_U32 ((rt_uint32_t)0x00000000U)
  914. /**
  915. * @brief Default value for the IFLAG4 register
  916. */
  917. #define FLEXCAN_IP_IFLAG_DEFAULT_VALUE_U32 ((rt_uint32_t)0xFFFFFFFFU)
  918. /**
  919. * @brief Default value for the CTRL2 register
  920. */
  921. #define FLEXCAN_IP_CTRL2_DEFAULT_VALUE_U32 ((rt_uint32_t)0x00100000U)
  922. /**
  923. * @brief Default value for the CTRL2 register
  924. */
  925. #define FLEXCAN_IP_CBT_DEFAULT_VALUE_U32 ((rt_uint32_t)0x00000000U)
  926. /**
  927. * @brief Default value for the MECR register
  928. */
  929. #define FLEXCAN_IP_MECR_DEFAULT_VALUE_U32 ((rt_uint32_t)0x000C0080U)
  930. /**
  931. * @brief Default value for the ERRIAR register
  932. */
  933. #define FLEXCAN_IP_ERRIAR_DEFAULT_VALUE_U32 ((rt_uint32_t)0x00000000U)
  934. /**
  935. * @brief Default value for the ERRIDPR register
  936. */
  937. #define FLEXCAN_IP_ERRIDPR_DEFAULT_VALUE_U32 ((rt_uint32_t)0x00000000U)
  938. /**
  939. * @brief Default value for the ERRIPPR register
  940. */
  941. #define FLEXCAN_IP_ERRIPPR_DEFAULT_VALUE_U32 ((rt_uint32_t)0x00000000U)
  942. /**
  943. * @brief Default value for the ERRSR register
  944. */
  945. #define FLEXCAN_IP_ERRSR_DEFAULT_VALUE_U32 ((rt_uint32_t)0x000D000DU)
  946. /**
  947. * @brief Default value for the FDCTRL register
  948. */
  949. #define FLEXCAN_IP_FDCTRL_DEFAULT_VALUE_U32 ((rt_uint32_t)0x80004100U)
  950. /**
  951. * @brief Default value for the FDCBT register
  952. */
  953. #define FLEXCAN_IP_FDCBT_DEFAULT_VALUE_U32 ((rt_uint32_t)0x00000000U)
  954. /**
  955. * @brief Default value for the ERFCR register
  956. */
  957. #define FLEXCAN_IP_ERFCR_DEFAULT_VALUE_U32 ((rt_uint32_t)0x00000000U)
  958. /**
  959. * @brief Default value for the ERFIER register
  960. */
  961. #define FLEXCAN_IP_ERFIER_DEFAULT_VALUE_U32 ((rt_uint32_t)0x00000000U)
  962. /**
  963. * @brief Default value for the ERFSR register
  964. */
  965. #define FLEXCAN_IP_ERFSR_DEFAULT_VALUE_U32 ((rt_uint32_t)0xF8000000U)
  966. /**
  967. * @brief Default value for the EPRS register
  968. */
  969. #define FLEXCAN_IP_EPRS_DEFAULT_VALUE_U32 ((rt_uint32_t)0x00000000U)
  970. /**
  971. * @brief Default value for the ENCBT register
  972. */
  973. #define FLEXCAN_IP_ENCBT_DEFAULT_VALUE_U32 ((rt_uint32_t)0x00000000U)
  974. /**
  975. * @brief Default value for the EDCBT register
  976. */
  977. #define FLEXCAN_IP_EDCBT_DEFAULT_VALUE_U32 ((rt_uint32_t)0x00000000U)
  978. /**
  979. * @brief Default value for the ETDC register
  980. */
  981. #define FLEXCAN_IP_ETDC_DEFAULT_VALUE_U32 ((rt_uint32_t)0x00000000U)
  982. /* @brief number of CAN peripheral has Enhanced Rx FIFO mode */
  983. #define FLEXCAN_IP_FEATURE_ENHANCED_RX_FIFO_NUM (10U)
  984. /* @brief number of CAN peripheral has expandable memory */
  985. #define FLEXCAN_IP_FEATURE_EXPANDABLE_MEMORY_NUM (6U)
  986. #endif