No puede seleccionar más de 25 temas Los temas deben comenzar con una letra o número, pueden incluir guiones ('-') y pueden tener hasta 35 caracteres de largo.

7480 líneas
368KB

  1. #pragma once
  2. #include <stdint.h>
  3. // Definitions based these documents:
  4. // i.MX RT1050 Reference Manual, Rev. 1, 03/2018
  5. // ARM v7-M Architecture Reference Manual (DDI 0403E.b)
  6. enum IRQ_NUMBER_t {
  7. IRQ_DMA_CH0 = 0,
  8. IRQ_DMA_CH1 = 1,
  9. IRQ_DMA_CH2 = 2,
  10. IRQ_DMA_CH3 = 3,
  11. IRQ_DMA_CH4 = 4,
  12. IRQ_DMA_CH5 = 5,
  13. IRQ_DMA_CH6 = 6,
  14. IRQ_DMA_CH7 = 7,
  15. IRQ_DMA_CH8 = 8,
  16. IRQ_DMA_CH9 = 9,
  17. IRQ_DMA_CH10 = 10,
  18. IRQ_DMA_CH11 = 11,
  19. IRQ_DMA_CH12 = 12,
  20. IRQ_DMA_CH13 = 13,
  21. IRQ_DMA_CH14 = 14,
  22. IRQ_DMA_CH15 = 15,
  23. IRQ_DMA_ERROR = 16,
  24. IRQ_CTI0 = 17,
  25. IRQ_CTI1 = 18,
  26. IRQ_CORE_ERROR = 19, // TODO - name?
  27. IRQ_LPUART1 = 20,
  28. IRQ_LPUART2 = 21,
  29. IRQ_LPUART3 = 22,
  30. IRQ_LPUART4 = 23,
  31. IRQ_LPUART5 = 24,
  32. IRQ_LPUART6 = 25,
  33. IRQ_LPUART7 = 26,
  34. IRQ_LPUART8 = 27,
  35. IRQ_LPI2C1 = 28,
  36. IRQ_LPI2C2 = 29,
  37. IRQ_LPI2C3 = 30,
  38. IRQ_LPI2C4 = 31,
  39. IRQ_LPSPI1 = 32,
  40. IRQ_LPSPI2 = 33,
  41. IRQ_LPSPI3 = 34,
  42. IRQ_LPSPI4 = 35,
  43. IRQ_CAN1 = 36,
  44. IRQ_CAN2 = 37,
  45. IRQ_ADDR_ERR = 38, // TODO: name?
  46. IRQ_KPP = 39,
  47. IRQ_TSC_DIG = 40,
  48. IRQ_GPR_IRQ = 41,
  49. IRQ_LCDIF = 42,
  50. IRQ_CSI = 43,
  51. IRQ_PXP = 44,
  52. IRQ_WDOG2 = 45,
  53. IRQ_SNVS_IRQ = 46,
  54. IRQ_SNVS_SECURITY = 47,
  55. IRQ_SNVS_ONOFF = 48,
  56. IRQ_CSU = 49,
  57. IRQ_DCP0 = 50, // TODO: ???
  58. IRQ_DCP1 = 51, // TODO: ???
  59. IRQ_DCP2 = 52, // TODO: ???
  60. IRQ_TRNG = 53,
  61. IRQ_SJC_IRQ = 54,
  62. IRQ_BEE = 55,
  63. IRQ_SAI1 = 56,
  64. IRQ_SAI2 = 57,
  65. IRQ_SAI3_RX = 58,
  66. IRQ_SAI3_TX = 59,
  67. IRQ_SPDIF = 60,
  68. IRQ_BROWNOUT0 = 61,
  69. IRQ_Reserved1 = 62,
  70. IRQ_TEMPERATURE = 63,
  71. IRQ_TEMPERATURE_PANIC = 64,
  72. IRQ_USBPHY0 = 65,
  73. IRQ_USBPHY1 = 66,
  74. IRQ_ADC1 = 67,
  75. IRQ_ADC2 = 68,
  76. IRQ_DCDC = 69,
  77. IRQ_SOFTWARE = 70,
  78. IRQ_Reserved2 = 71,
  79. IRQ_GPIO1_INT0 = 72,
  80. IRQ_GPIO1_INT1 = 73,
  81. IRQ_GPIO1_INT2 = 74,
  82. IRQ_GPIO1_INT3 = 75,
  83. IRQ_GPIO1_INT4 = 76,
  84. IRQ_GPIO1_INT5 = 77,
  85. IRQ_GPIO1_INT6 = 78,
  86. IRQ_GPIO1_INT7 = 79,
  87. IRQ_GPIO1_0_15 = 80,
  88. IRQ_GPIO1_16_31 = 81,
  89. IRQ_GPIO2_0_15 = 82,
  90. IRQ_GPIO2_16_31 = 83,
  91. IRQ_GPIO3_0_15 = 84,
  92. IRQ_GPIO3_16_31 = 85,
  93. IRQ_GPIO4_0_15 = 86,
  94. IRQ_GPIO4_16_31 = 87,
  95. IRQ_GPIO5_0_15 = 88,
  96. IRQ_GPIO5_16_31 = 89,
  97. IRQ_FLEXIO1 = 90,
  98. IRQ_FLEXIO2 = 91,
  99. IRQ_WDOG1 = 92,
  100. IRQ_RTWDOG = 93,
  101. IRQ_EWM = 94,
  102. IRQ_CCM1 = 95,
  103. IRQ_CCM2 = 96,
  104. IRQ_GPC = 97,
  105. IRQ_SRC = 98,
  106. IRQ_Reserved3 = 99,
  107. IRQ_GPT1 = 100,
  108. IRQ_GPT2 = 101,
  109. IRQ_FLEXPWM1_0 = 102,
  110. IRQ_FLEXPWM1_1 = 103,
  111. IRQ_FLEXPWM1_2 = 104,
  112. IRQ_FLEXPWM1_3 = 105,
  113. IRQ_FLEXPWM1_FAULT = 106,
  114. IRQ_FLEXSPI2 = 107, // RT1060 only
  115. IRQ_FLEXSPI = 108,
  116. IRQ_SEMC = 109,
  117. IRQ_SDHC1 = 110,
  118. IRQ_SDHC2 = 111,
  119. IRQ_USB2 = 112,
  120. IRQ_USB1 = 113,
  121. IRQ_ENET = 114,
  122. IRQ_ENET_TIMER = 115,
  123. IRQ_XBAR1_01 = 116,
  124. IRQ_XBAR1_23 = 117,
  125. IRQ_ADC_ETC0 = 118,
  126. IRQ_ADC_ETC1 = 119,
  127. IRQ_ADC_ETC2 = 120,
  128. IRQ_ADC_ETC_ERR = 121,
  129. IRQ_PIT = 122,
  130. IRQ_ACMP0 = 123,
  131. IRQ_ACMP1 = 124,
  132. IRQ_ACMP2 = 125,
  133. IRQ_ACMP3 = 126,
  134. IRQ_Reserved4 = 127,
  135. IRQ_Reserved5 = 128,
  136. IRQ_ENC1 = 129,
  137. IRQ_ENC2 = 130,
  138. IRQ_ENC3 = 131,
  139. IRQ_ENC4 = 132,
  140. IRQ_QTIMER1 = 133,
  141. IRQ_QTIMER2 = 134,
  142. IRQ_QTIMER3 = 135,
  143. IRQ_QTIMER4 = 136,
  144. IRQ_FLEXPWM2_0 = 137,
  145. IRQ_FLEXPWM2_1 = 138,
  146. IRQ_FLEXPWM2_2 = 139,
  147. IRQ_FLEXPWM2_3 = 140,
  148. IRQ_FLEXPWM2_FAULT = 141,
  149. IRQ_FLEXPWM3_0 = 142,
  150. IRQ_FLEXPWM3_1 = 143,
  151. IRQ_FLEXPWM3_2 = 144,
  152. IRQ_FLEXPWM3_3 = 145,
  153. IRQ_FLEXPWM3_FAULT = 146,
  154. IRQ_FLEXPWM4_0 = 147,
  155. IRQ_FLEXPWM4_1 = 148,
  156. IRQ_FLEXPWM4_2 = 149,
  157. IRQ_FLEXPWM4_3 = 150,
  158. IRQ_FLEXPWM4_FAULT = 151,
  159. IRQ_ENET2 = 152, // RT1060 only
  160. IRQ_ENET2_TIMER = 153, // RT1060 only
  161. IRQ_Reserved6 = 154,
  162. IRQ_Reserved7 = 155,
  163. IRQ_CAN3 = 156, // RT1060 only
  164. IRQ_GPIO6789 = 157, // RT1060 only
  165. IRQ_SJC_DEBUG = 158,
  166. IRQ_NMI_WAKEUP = 159
  167. };
  168. #define NVIC_NUM_INTERRUPTS 160
  169. #define DMA_NUM_CHANNELS 32
  170. #ifdef __cplusplus
  171. extern "C" void (* _VectorsRam[NVIC_NUM_INTERRUPTS+16])(void);
  172. static inline void attachInterruptVector(IRQ_NUMBER_t irq, void (*function)(void)) __attribute__((always_inline, unused));
  173. static inline void attachInterruptVector(IRQ_NUMBER_t irq, void (*function)(void)) { _VectorsRam[irq + 16] = function; }
  174. #else
  175. extern void (* _VectorsRam[NVIC_NUM_INTERRUPTS+16])(void);
  176. static inline void attachInterruptVector(enum IRQ_NUMBER_t irq, void (*function)(void)) __attribute__((always_inline, unused));
  177. static inline void attachInterruptVector(enum IRQ_NUMBER_t irq, void (*function)(void)) { _VectorsRam[irq + 16] = function; }
  178. #endif
  179. #define DMAMUX_SOURCE_FLEXIO1_REQUEST0 0
  180. #define DMAMUX_SOURCE_FLEXIO1_REQUEST1 0
  181. #define DMAMUX_SOURCE_FLEXIO2_REQUEST0 1
  182. #define DMAMUX_SOURCE_FLEXIO2_REQUEST1 1
  183. #define DMAMUX_SOURCE_LPUART1_RX 2
  184. #define DMAMUX_SOURCE_LPUART1_TX 3
  185. #define DMAMUX_SOURCE_LPUART3_RX 4
  186. #define DMAMUX_SOURCE_LPUART3_TX 5
  187. #define DMAMUX_SOURCE_LPUART5_RX 6
  188. #define DMAMUX_SOURCE_LPUART5_TX 7
  189. #define DMAMUX_SOURCE_LPUART7_RX 8
  190. #define DMAMUX_SOURCE_LPUART7_TX 9
  191. #define DMAMUX_SOURCE_FLEXCAN3 11
  192. #define DMAMUX_SOURCE_CSI 12
  193. #define DMAMUX_SOURCE_LPSPI1_RX 13
  194. #define DMAMUX_SOURCE_LPSPI1_TX 14
  195. #define DMAMUX_SOURCE_LPSPI3_RX 15
  196. #define DMAMUX_SOURCE_LPSPI3_TX 16
  197. #define DMAMUX_SOURCE_LPI2C1 17
  198. #define DMAMUX_SOURCE_LPI2C3 18
  199. #define DMAMUX_SOURCE_SAI1_RX 19
  200. #define DMAMUX_SOURCE_SAI1_TX 20
  201. #define DMAMUX_SOURCE_SAI2_RX 21
  202. #define DMAMUX_SOURCE_SAI2_TX 22
  203. #define DMAMUX_SOURCE_ADC_ETC 23
  204. #define DMAMUX_SOURCE_ADC1 24
  205. #define DMAMUX_SOURCE_ACMP1 25
  206. #define DMAMUX_SOURCE_ACMP3 26
  207. #define DMAMUX_SOURCE_FLEXSPI_RX 28
  208. #define DMAMUX_SOURCE_FLEXSPI_TX 29
  209. #define DMAMUX_SOURCE_XBAR1_0 30
  210. #define DMAMUX_SOURCE_XBAR1_1 31
  211. #define DMAMUX_SOURCE_FLEXPWM1_READ0 32
  212. #define DMAMUX_SOURCE_FLEXPWM1_READ1 33
  213. #define DMAMUX_SOURCE_FLEXPWM1_READ2 34
  214. #define DMAMUX_SOURCE_FLEXPWM1_READ3 35
  215. #define DMAMUX_SOURCE_FLEXPWM1_WRITE0 36
  216. #define DMAMUX_SOURCE_FLEXPWM1_WRITE1 37
  217. #define DMAMUX_SOURCE_FLEXPWM1_WRITE2 38
  218. #define DMAMUX_SOURCE_FLEXPWM1_WRITE3 39
  219. #define DMAMUX_SOURCE_FLEXPWM3_READ0 40
  220. #define DMAMUX_SOURCE_FLEXPWM3_READ1 41
  221. #define DMAMUX_SOURCE_FLEXPWM3_READ2 42
  222. #define DMAMUX_SOURCE_FLEXPWM3_READ3 43
  223. #define DMAMUX_SOURCE_FLEXPWM3_WRITE0 44
  224. #define DMAMUX_SOURCE_FLEXPWM3_WRITE1 45
  225. #define DMAMUX_SOURCE_FLEXPWM3_WRITE2 46
  226. #define DMAMUX_SOURCE_FLEXPWM3_WRITE3 47
  227. #define DMAMUX_SOURCE_QTIMER1_READ0 48
  228. #define DMAMUX_SOURCE_QTIMER1_READ1 49
  229. #define DMAMUX_SOURCE_QTIMER1_READ2 50
  230. #define DMAMUX_SOURCE_QTIMER1_READ3 51
  231. #define DMAMUX_SOURCE_QTIMER1_WRITE0_CMPLD1 52
  232. #define DMAMUX_SOURCE_QTIMER1_WRITE1_CMPLD1 53
  233. #define DMAMUX_SOURCE_QTIMER1_WRITE2_CMPLD1 54
  234. #define DMAMUX_SOURCE_QTIMER1_WRITE3_CMPLD1 55
  235. #define DMAMUX_SOURCE_QTIMER1_WRITE1_CMPLD2 52
  236. #define DMAMUX_SOURCE_QTIMER1_WRITE0_CMPLD2 53
  237. #define DMAMUX_SOURCE_QTIMER1_WRITE3_CMPLD2 54
  238. #define DMAMUX_SOURCE_QTIMER1_WRITE2_CMPLD2 55
  239. #define DMAMUX_SOURCE_QTIMER3_READ0 56
  240. #define DMAMUX_SOURCE_QTIMER3_READ1 57
  241. #define DMAMUX_SOURCE_QTIMER3_READ2 58
  242. #define DMAMUX_SOURCE_QTIMER3_READ3 59
  243. #define DMAMUX_SOURCE_QTIMER3_WRITE0_CMPLD1 56
  244. #define DMAMUX_SOURCE_QTIMER3_WRITE1_CMPLD1 57
  245. #define DMAMUX_SOURCE_QTIMER3_WRITE2_CMPLD1 58
  246. #define DMAMUX_SOURCE_QTIMER3_WRITE3_CMPLD1 59
  247. #define DMAMUX_SOURCE_QTIMER3_WRITE1_CMPLD2 56
  248. #define DMAMUX_SOURCE_QTIMER3_WRITE0_CMPLD2 57
  249. #define DMAMUX_SOURCE_QTIMER3_WRITE3_CMPLD2 58
  250. #define DMAMUX_SOURCE_QTIMER3_WRITE2_CMPLD2 59
  251. #define DMAMUX_SOURCE_FLEXSPI2_RX 60
  252. #define DMAMUX_SOURCE_FLEXSPI2_TX 61
  253. #define DMAMUX_SOURCE_FLEXIO1_REQUEST2 64
  254. #define DMAMUX_SOURCE_FLEXIO1_REQUEST3 64
  255. #define DMAMUX_SOURCE_FLEXIO2_REQUEST2 65
  256. #define DMAMUX_SOURCE_FLEXIO2_REQUEST3 65
  257. #define DMAMUX_SOURCE_LPUART2_RX 66
  258. #define DMAMUX_SOURCE_LPUART2_TX 67
  259. #define DMAMUX_SOURCE_LPUART4_RX 68
  260. #define DMAMUX_SOURCE_LPUART4_TX 69
  261. #define DMAMUX_SOURCE_LPUART6_RX 70
  262. #define DMAMUX_SOURCE_LPUART6_TX 71
  263. #define DMAMUX_SOURCE_LPUART8_RX 72
  264. #define DMAMUX_SOURCE_LPUART8_TX 73
  265. #define DMAMUX_SOURCE_PXP 75
  266. #define DMAMUX_SOURCE_LCDIF 76
  267. #define DMAMUX_SOURCE_LPSPI2_RX 77
  268. #define DMAMUX_SOURCE_LPSPI2_TX 78
  269. #define DMAMUX_SOURCE_LPSPI4_RX 79
  270. #define DMAMUX_SOURCE_LPSPI4_TX 80
  271. #define DMAMUX_SOURCE_LPI2C2 81
  272. #define DMAMUX_SOURCE_LPI2C4 82
  273. #define DMAMUX_SOURCE_SAI3_RX 83
  274. #define DMAMUX_SOURCE_SAI3_TX 84
  275. #define DMAMUX_SOURCE_SPDIF_RX 85
  276. #define DMAMUX_SOURCE_SPDIF_TX 86
  277. #define DMAMUX_SOURCE_ADC2 88
  278. #define DMAMUX_SOURCE_ACMP2 89
  279. #define DMAMUX_SOURCE_ACMP4 90
  280. #define DMAMUX_SOURCE_ENET1_TIMER0 92
  281. #define DMAMUX_SOURCE_ENET1_TIMER1 93
  282. #define DMAMUX_SOURCE_XBAR1_2 94
  283. #define DMAMUX_SOURCE_XBAR1_3 95
  284. #define DMAMUX_SOURCE_FLEXPWM2_READ0 96
  285. #define DMAMUX_SOURCE_FLEXPWM2_READ1 97
  286. #define DMAMUX_SOURCE_FLEXPWM2_READ2 98
  287. #define DMAMUX_SOURCE_FLEXPWM2_READ3 99
  288. #define DMAMUX_SOURCE_FLEXPWM2_WRITE0 100
  289. #define DMAMUX_SOURCE_FLEXPWM2_WRITE1 101
  290. #define DMAMUX_SOURCE_FLEXPWM2_WRITE2 102
  291. #define DMAMUX_SOURCE_FLEXPWM2_WRITE3 103
  292. #define DMAMUX_SOURCE_FLEXPWM4_READ0 104
  293. #define DMAMUX_SOURCE_FLEXPWM4_READ1 105
  294. #define DMAMUX_SOURCE_FLEXPWM4_READ2 106
  295. #define DMAMUX_SOURCE_FLEXPWM4_READ3 107
  296. #define DMAMUX_SOURCE_FLEXPWM4_WRITE0 108
  297. #define DMAMUX_SOURCE_FLEXPWM4_WRITE1 109
  298. #define DMAMUX_SOURCE_FLEXPWM4_WRITE2 110
  299. #define DMAMUX_SOURCE_FLEXPWM4_WRITE3 111
  300. #define DMAMUX_SOURCE_QTIMER2_READ0 112
  301. #define DMAMUX_SOURCE_QTIMER2_READ1 113
  302. #define DMAMUX_SOURCE_QTIMER2_READ2 114
  303. #define DMAMUX_SOURCE_QTIMER2_READ3 115
  304. #define DMAMUX_SOURCE_QTIMER2_WRITE0_CMPLD1 116
  305. #define DMAMUX_SOURCE_QTIMER2_WRITE1_CMPLD1 117
  306. #define DMAMUX_SOURCE_QTIMER2_WRITE2_CMPLD1 118
  307. #define DMAMUX_SOURCE_QTIMER2_WRITE3_CMPLD1 119
  308. #define DMAMUX_SOURCE_QTIMER2_WRITE1_CMPLD2 116
  309. #define DMAMUX_SOURCE_QTIMER2_WRITE0_CMPLD2 117
  310. #define DMAMUX_SOURCE_QTIMER2_WRITE3_CMPLD2 118
  311. #define DMAMUX_SOURCE_QTIMER2_WRITE2_CMPLD2 119
  312. #define DMAMUX_SOURCE_QTIMER4_READ0 120
  313. #define DMAMUX_SOURCE_QTIMER4_READ1 121
  314. #define DMAMUX_SOURCE_QTIMER4_READ2 122
  315. #define DMAMUX_SOURCE_QTIMER4_READ3 123
  316. #define DMAMUX_SOURCE_QTIMER4_WRITE0_CMPLD1 120
  317. #define DMAMUX_SOURCE_QTIMER4_WRITE1_CMPLD1 121
  318. #define DMAMUX_SOURCE_QTIMER4_WRITE2_CMPLD1 122
  319. #define DMAMUX_SOURCE_QTIMER4_WRITE3_CMPLD1 123
  320. #define DMAMUX_SOURCE_QTIMER4_WRITE1_CMPLD2 120
  321. #define DMAMUX_SOURCE_QTIMER4_WRITE0_CMPLD2 121
  322. #define DMAMUX_SOURCE_QTIMER4_WRITE3_CMPLD2 122
  323. #define DMAMUX_SOURCE_QTIMER4_WRITE2_CMPLD2 123
  324. #define DMAMUX_SOURCE_ENET2_TIMER0 124
  325. #define DMAMUX_SOURCE_ENET2_TIMER1 125
  326. typedef struct {
  327. volatile uint32_t offset000;
  328. volatile uint32_t offset004;
  329. volatile uint32_t offset008;
  330. volatile uint32_t offset00C;
  331. volatile uint32_t offset010;
  332. volatile uint32_t offset014;
  333. volatile uint32_t offset018;
  334. volatile uint32_t offset01C;
  335. volatile uint32_t offset020;
  336. volatile uint32_t offset024;
  337. volatile uint32_t offset028;
  338. volatile uint32_t offset02C;
  339. volatile uint32_t offset030;
  340. volatile uint32_t offset034;
  341. volatile uint32_t offset038;
  342. volatile uint32_t offset03C;
  343. volatile uint32_t offset040;
  344. volatile uint32_t offset044;
  345. volatile uint32_t offset048;
  346. volatile uint32_t offset04C;
  347. volatile uint32_t offset050;
  348. volatile uint32_t offset054;
  349. volatile uint32_t offset058;
  350. volatile uint32_t offset05C;
  351. volatile uint32_t offset060;
  352. volatile uint32_t offset064;
  353. volatile uint32_t offset068;
  354. volatile uint32_t offset06C;
  355. volatile uint32_t offset070;
  356. volatile uint32_t offset074;
  357. volatile uint32_t offset078;
  358. volatile uint32_t offset07C;
  359. volatile uint32_t offset080;
  360. volatile uint32_t offset084;
  361. volatile uint32_t offset088;
  362. volatile uint32_t offset08C;
  363. volatile uint32_t offset090;
  364. volatile uint32_t offset094;
  365. volatile uint32_t offset098;
  366. volatile uint32_t offset09C;
  367. volatile uint32_t offset0A0;
  368. volatile uint32_t offset0A4;
  369. volatile uint32_t offset0A8;
  370. volatile uint32_t offset0AC;
  371. volatile uint32_t offset0B0;
  372. volatile uint32_t offset0B4;
  373. volatile uint32_t offset0B8;
  374. volatile uint32_t offset0BC;
  375. volatile uint32_t offset0C0;
  376. volatile uint32_t offset0C4;
  377. volatile uint32_t offset0C8;
  378. volatile uint32_t offset0CC;
  379. volatile uint32_t offset0D0;
  380. volatile uint32_t offset0D4;
  381. volatile uint32_t offset0D8;
  382. volatile uint32_t offset0DC;
  383. volatile uint32_t offset0E0;
  384. volatile uint32_t offset0E4;
  385. volatile uint32_t offset0E8;
  386. volatile uint32_t offset0EC;
  387. volatile uint32_t offset0F0;
  388. volatile uint32_t offset0F4;
  389. volatile uint32_t offset0F8;
  390. volatile uint32_t offset0FC;
  391. volatile uint32_t offset100;
  392. volatile uint32_t offset104;
  393. volatile uint32_t offset108;
  394. volatile uint32_t offset10C;
  395. volatile uint32_t offset110;
  396. volatile uint32_t offset114;
  397. volatile uint32_t offset118;
  398. volatile uint32_t offset11C;
  399. volatile uint32_t offset120;
  400. volatile uint32_t offset124;
  401. volatile uint32_t offset128;
  402. volatile uint32_t offset12C;
  403. volatile uint32_t offset130;
  404. volatile uint32_t offset134;
  405. volatile uint32_t offset138;
  406. volatile uint32_t offset13C;
  407. volatile uint32_t offset140;
  408. volatile uint32_t offset144;
  409. volatile uint32_t offset148;
  410. volatile uint32_t offset14C;
  411. volatile uint32_t offset150;
  412. volatile uint32_t offset154;
  413. volatile uint32_t offset158;
  414. volatile uint32_t offset15C;
  415. volatile uint32_t offset160;
  416. volatile uint32_t offset164;
  417. volatile uint32_t offset168;
  418. volatile uint32_t offset16C;
  419. volatile uint32_t offset170;
  420. volatile uint32_t offset174;
  421. volatile uint32_t offset178;
  422. volatile uint32_t offset17C;
  423. volatile uint32_t offset180;
  424. volatile uint32_t offset184;
  425. volatile uint32_t offset188;
  426. volatile uint32_t offset18C;
  427. volatile uint32_t offset190;
  428. volatile uint32_t offset194;
  429. volatile uint32_t offset198;
  430. volatile uint32_t offset19C;
  431. volatile uint32_t offset1A0;
  432. volatile uint32_t offset1A4;
  433. volatile uint32_t offset1A8;
  434. volatile uint32_t offset1AC;
  435. volatile uint32_t offset1B0;
  436. volatile uint32_t offset1B4;
  437. volatile uint32_t offset1B8;
  438. volatile uint32_t offset1BC;
  439. volatile uint32_t offset1C0;
  440. volatile uint32_t offset1C4;
  441. volatile uint32_t offset1C8;
  442. volatile uint32_t offset1CC;
  443. volatile uint32_t offset1D0;
  444. volatile uint32_t offset1D4;
  445. volatile uint32_t offset1D8;
  446. volatile uint32_t offset1DC;
  447. volatile uint32_t offset1E0;
  448. volatile uint32_t offset1E4;
  449. volatile uint32_t offset1E8;
  450. volatile uint32_t offset1EC;
  451. volatile uint32_t offset1F0;
  452. volatile uint32_t offset1F4;
  453. volatile uint32_t offset1F8;
  454. volatile uint32_t offset1FC;
  455. volatile uint32_t offset200;
  456. volatile uint32_t offset204;
  457. volatile uint32_t offset208;
  458. volatile uint32_t offset20C;
  459. volatile uint32_t offset210;
  460. volatile uint32_t offset214;
  461. volatile uint32_t offset218;
  462. volatile uint32_t offset21C;
  463. volatile uint32_t offset220;
  464. volatile uint32_t offset224;
  465. volatile uint32_t offset228;
  466. volatile uint32_t offset22C;
  467. volatile uint32_t offset230;
  468. volatile uint32_t offset234;
  469. volatile uint32_t offset238;
  470. volatile uint32_t offset23C;
  471. volatile uint32_t offset240;
  472. volatile uint32_t offset244;
  473. volatile uint32_t offset248;
  474. volatile uint32_t offset24C;
  475. volatile uint32_t offset250;
  476. volatile uint32_t offset254;
  477. volatile uint32_t offset258;
  478. volatile uint32_t offset25C;
  479. volatile uint32_t offset260;
  480. volatile uint32_t offset264;
  481. volatile uint32_t offset268;
  482. volatile uint32_t offset26C;
  483. volatile uint32_t offset270;
  484. volatile uint32_t offset274;
  485. volatile uint32_t offset278;
  486. volatile uint32_t offset27C;
  487. volatile uint32_t offset280;
  488. volatile uint32_t offset284;
  489. volatile uint32_t offset288;
  490. volatile uint32_t offset28C;
  491. volatile uint32_t offset290;
  492. volatile uint32_t offset294;
  493. volatile uint32_t offset298;
  494. volatile uint32_t offset29C;
  495. volatile uint32_t offset2A0;
  496. volatile uint32_t offset2A4;
  497. volatile uint32_t offset2A8;
  498. volatile uint32_t offset2AC;
  499. volatile uint32_t offset2B0;
  500. volatile uint32_t offset2B4;
  501. volatile uint32_t offset2B8;
  502. volatile uint32_t offset2BC;
  503. volatile uint32_t offset2C0;
  504. volatile uint32_t offset2C4;
  505. volatile uint32_t offset2C8;
  506. volatile uint32_t offset2CC;
  507. volatile uint32_t offset2D0;
  508. volatile uint32_t offset2D4;
  509. volatile uint32_t offset2D8;
  510. volatile uint32_t offset2DC;
  511. volatile uint32_t offset2E0;
  512. volatile uint32_t offset2E4;
  513. volatile uint32_t offset2E8;
  514. volatile uint32_t offset2EC;
  515. volatile uint32_t offset2F0;
  516. volatile uint32_t offset2F4;
  517. volatile uint32_t offset2F8;
  518. volatile uint32_t offset2FC;
  519. volatile uint32_t offset300;
  520. volatile uint32_t offset304;
  521. volatile uint32_t offset308;
  522. volatile uint32_t offset30C;
  523. volatile uint32_t offset310;
  524. volatile uint32_t offset314;
  525. volatile uint32_t offset318;
  526. volatile uint32_t offset31C;
  527. volatile uint32_t offset320;
  528. volatile uint32_t offset324;
  529. volatile uint32_t offset328;
  530. volatile uint32_t offset32C;
  531. volatile uint32_t offset330;
  532. volatile uint32_t offset334;
  533. volatile uint32_t offset338;
  534. volatile uint32_t offset33C;
  535. volatile uint32_t offset340;
  536. volatile uint32_t offset344;
  537. volatile uint32_t offset348;
  538. volatile uint32_t offset34C;
  539. volatile uint32_t offset350;
  540. volatile uint32_t offset354;
  541. volatile uint32_t offset358;
  542. volatile uint32_t offset35C;
  543. volatile uint32_t offset360;
  544. volatile uint32_t offset364;
  545. volatile uint32_t offset368;
  546. volatile uint32_t offset36C;
  547. volatile uint32_t offset370;
  548. volatile uint32_t offset374;
  549. volatile uint32_t offset378;
  550. volatile uint32_t offset37C;
  551. volatile uint32_t offset380;
  552. volatile uint32_t offset384;
  553. volatile uint32_t offset388;
  554. volatile uint32_t offset38C;
  555. volatile uint32_t offset390;
  556. volatile uint32_t offset394;
  557. volatile uint32_t offset398;
  558. volatile uint32_t offset39C;
  559. volatile uint32_t offset3A0;
  560. volatile uint32_t offset3A4;
  561. volatile uint32_t offset3A8;
  562. volatile uint32_t offset3AC;
  563. volatile uint32_t offset3B0;
  564. volatile uint32_t offset3B4;
  565. volatile uint32_t offset3B8;
  566. volatile uint32_t offset3BC;
  567. volatile uint32_t offset3C0;
  568. volatile uint32_t offset3C4;
  569. volatile uint32_t offset3C8;
  570. volatile uint32_t offset3CC;
  571. volatile uint32_t offset3D0;
  572. volatile uint32_t offset3D4;
  573. volatile uint32_t offset3D8;
  574. volatile uint32_t offset3DC;
  575. volatile uint32_t offset3E0;
  576. volatile uint32_t offset3E4;
  577. volatile uint32_t offset3E8;
  578. volatile uint32_t offset3EC;
  579. volatile uint32_t offset3F0;
  580. volatile uint32_t offset3F4;
  581. volatile uint32_t offset3F8;
  582. volatile uint32_t offset3FC;
  583. } IMXRT_REGISTER32_t;
  584. typedef struct {
  585. volatile uint16_t offset000;
  586. volatile uint16_t offset002;
  587. volatile uint16_t offset004;
  588. volatile uint16_t offset006;
  589. volatile uint16_t offset008;
  590. volatile uint16_t offset00A;
  591. volatile uint16_t offset00C;
  592. volatile uint16_t offset00E;
  593. volatile uint16_t offset010;
  594. volatile uint16_t offset012;
  595. volatile uint16_t offset014;
  596. volatile uint16_t offset016;
  597. volatile uint16_t offset018;
  598. volatile uint16_t offset01A;
  599. volatile uint16_t offset01C;
  600. volatile uint16_t offset01E;
  601. volatile uint16_t offset020;
  602. volatile uint16_t offset022;
  603. volatile uint16_t offset024;
  604. volatile uint16_t offset026;
  605. volatile uint16_t offset028;
  606. volatile uint16_t offset02A;
  607. volatile uint16_t offset02C;
  608. volatile uint16_t offset02E;
  609. volatile uint16_t offset030;
  610. volatile uint16_t offset032;
  611. volatile uint16_t offset034;
  612. volatile uint16_t offset036;
  613. volatile uint16_t offset038;
  614. volatile uint16_t offset03A;
  615. volatile uint16_t offset03C;
  616. volatile uint16_t offset03E;
  617. volatile uint16_t offset040;
  618. volatile uint16_t offset042;
  619. volatile uint16_t offset044;
  620. volatile uint16_t offset046;
  621. volatile uint16_t offset048;
  622. volatile uint16_t offset04A;
  623. volatile uint16_t offset04C;
  624. volatile uint16_t offset04E;
  625. volatile uint16_t offset050;
  626. volatile uint16_t offset052;
  627. volatile uint16_t offset054;
  628. volatile uint16_t offset056;
  629. volatile uint16_t offset058;
  630. volatile uint16_t offset05A;
  631. volatile uint16_t offset05C;
  632. volatile uint16_t offset05E;
  633. volatile uint16_t offset060;
  634. volatile uint16_t offset062;
  635. volatile uint16_t offset064;
  636. volatile uint16_t offset066;
  637. volatile uint16_t offset068;
  638. volatile uint16_t offset06A;
  639. volatile uint16_t offset06C;
  640. volatile uint16_t offset06E;
  641. volatile uint16_t offset070;
  642. volatile uint16_t offset072;
  643. volatile uint16_t offset074;
  644. volatile uint16_t offset076;
  645. volatile uint16_t offset078;
  646. volatile uint16_t offset07A;
  647. volatile uint16_t offset07C;
  648. volatile uint16_t offset07E;
  649. volatile uint16_t offset080;
  650. volatile uint16_t offset082;
  651. volatile uint16_t offset084;
  652. volatile uint16_t offset086;
  653. volatile uint16_t offset088;
  654. volatile uint16_t offset08A;
  655. volatile uint16_t offset08C;
  656. volatile uint16_t offset08E;
  657. volatile uint16_t offset090;
  658. volatile uint16_t offset092;
  659. volatile uint16_t offset094;
  660. volatile uint16_t offset096;
  661. volatile uint16_t offset098;
  662. volatile uint16_t offset09A;
  663. volatile uint16_t offset09C;
  664. volatile uint16_t offset09E;
  665. volatile uint16_t offset0A0;
  666. volatile uint16_t offset0A2;
  667. volatile uint16_t offset0A4;
  668. volatile uint16_t offset0A6;
  669. volatile uint16_t offset0A8;
  670. volatile uint16_t offset0AA;
  671. volatile uint16_t offset0AC;
  672. volatile uint16_t offset0AE;
  673. volatile uint16_t offset0B0;
  674. volatile uint16_t offset0B2;
  675. volatile uint16_t offset0B4;
  676. volatile uint16_t offset0B6;
  677. volatile uint16_t offset0B8;
  678. volatile uint16_t offset0BA;
  679. volatile uint16_t offset0BC;
  680. volatile uint16_t offset0BE;
  681. volatile uint16_t offset0C0;
  682. volatile uint16_t offset0C2;
  683. volatile uint16_t offset0C4;
  684. volatile uint16_t offset0C6;
  685. volatile uint16_t offset0C8;
  686. volatile uint16_t offset0CA;
  687. volatile uint16_t offset0CC;
  688. volatile uint16_t offset0CE;
  689. volatile uint16_t offset0D0;
  690. volatile uint16_t offset0D2;
  691. volatile uint16_t offset0D4;
  692. volatile uint16_t offset0D6;
  693. volatile uint16_t offset0D8;
  694. volatile uint16_t offset0DA;
  695. volatile uint16_t offset0DC;
  696. volatile uint16_t offset0DE;
  697. volatile uint16_t offset0E0;
  698. volatile uint16_t offset0E2;
  699. volatile uint16_t offset0E4;
  700. volatile uint16_t offset0E6;
  701. volatile uint16_t offset0E8;
  702. volatile uint16_t offset0EA;
  703. volatile uint16_t offset0EC;
  704. volatile uint16_t offset0EE;
  705. volatile uint16_t offset0F0;
  706. volatile uint16_t offset0F2;
  707. volatile uint16_t offset0F4;
  708. volatile uint16_t offset0F6;
  709. volatile uint16_t offset0F8;
  710. volatile uint16_t offset0FA;
  711. volatile uint16_t offset0FC;
  712. volatile uint16_t offset0FE;
  713. volatile uint16_t offset100;
  714. volatile uint16_t offset102;
  715. volatile uint16_t offset104;
  716. volatile uint16_t offset106;
  717. volatile uint16_t offset108;
  718. volatile uint16_t offset10A;
  719. volatile uint16_t offset10C;
  720. volatile uint16_t offset10E;
  721. volatile uint16_t offset110;
  722. volatile uint16_t offset112;
  723. volatile uint16_t offset114;
  724. volatile uint16_t offset116;
  725. volatile uint16_t offset118;
  726. volatile uint16_t offset11A;
  727. volatile uint16_t offset11C;
  728. volatile uint16_t offset11E;
  729. volatile uint16_t offset120;
  730. volatile uint16_t offset122;
  731. volatile uint16_t offset124;
  732. volatile uint16_t offset126;
  733. volatile uint16_t offset128;
  734. volatile uint16_t offset12A;
  735. volatile uint16_t offset12C;
  736. volatile uint16_t offset12E;
  737. volatile uint16_t offset130;
  738. volatile uint16_t offset132;
  739. volatile uint16_t offset134;
  740. volatile uint16_t offset136;
  741. volatile uint16_t offset138;
  742. volatile uint16_t offset13A;
  743. volatile uint16_t offset13C;
  744. volatile uint16_t offset13E;
  745. volatile uint16_t offset140;
  746. volatile uint16_t offset142;
  747. volatile uint16_t offset144;
  748. volatile uint16_t offset146;
  749. volatile uint16_t offset148;
  750. volatile uint16_t offset14A;
  751. volatile uint16_t offset14C;
  752. volatile uint16_t offset14E;
  753. volatile uint16_t offset150;
  754. volatile uint16_t offset152;
  755. volatile uint16_t offset154;
  756. volatile uint16_t offset156;
  757. volatile uint16_t offset158;
  758. volatile uint16_t offset15A;
  759. volatile uint16_t offset15C;
  760. volatile uint16_t offset15E;
  761. volatile uint16_t offset160;
  762. volatile uint16_t offset162;
  763. volatile uint16_t offset164;
  764. volatile uint16_t offset166;
  765. volatile uint16_t offset168;
  766. volatile uint16_t offset16A;
  767. volatile uint16_t offset16C;
  768. volatile uint16_t offset16E;
  769. volatile uint16_t offset170;
  770. volatile uint16_t offset172;
  771. volatile uint16_t offset174;
  772. volatile uint16_t offset176;
  773. volatile uint16_t offset178;
  774. volatile uint16_t offset17A;
  775. volatile uint16_t offset17C;
  776. volatile uint16_t offset17E;
  777. volatile uint16_t offset180;
  778. volatile uint16_t offset182;
  779. volatile uint16_t offset184;
  780. volatile uint16_t offset186;
  781. volatile uint16_t offset188;
  782. volatile uint16_t offset18A;
  783. volatile uint16_t offset18C;
  784. volatile uint16_t offset18E;
  785. volatile uint16_t offset190;
  786. volatile uint16_t offset192;
  787. volatile uint16_t offset194;
  788. volatile uint16_t offset196;
  789. volatile uint16_t offset198;
  790. volatile uint16_t offset19A;
  791. volatile uint16_t offset19C;
  792. volatile uint16_t offset19E;
  793. volatile uint16_t offset1A0;
  794. volatile uint16_t offset1A2;
  795. volatile uint16_t offset1A4;
  796. volatile uint16_t offset1A6;
  797. volatile uint16_t offset1A8;
  798. volatile uint16_t offset1AA;
  799. volatile uint16_t offset1AC;
  800. volatile uint16_t offset1AE;
  801. volatile uint16_t offset1B0;
  802. volatile uint16_t offset1B2;
  803. volatile uint16_t offset1B4;
  804. volatile uint16_t offset1B6;
  805. volatile uint16_t offset1B8;
  806. volatile uint16_t offset1BA;
  807. volatile uint16_t offset1BC;
  808. volatile uint16_t offset1BE;
  809. volatile uint16_t offset1C0;
  810. volatile uint16_t offset1C2;
  811. volatile uint16_t offset1C4;
  812. volatile uint16_t offset1C6;
  813. volatile uint16_t offset1C8;
  814. volatile uint16_t offset1CA;
  815. volatile uint16_t offset1CC;
  816. volatile uint16_t offset1CE;
  817. volatile uint16_t offset1D0;
  818. volatile uint16_t offset1D2;
  819. volatile uint16_t offset1D4;
  820. volatile uint16_t offset1D6;
  821. volatile uint16_t offset1D8;
  822. volatile uint16_t offset1DA;
  823. volatile uint16_t offset1DC;
  824. volatile uint16_t offset1DE;
  825. volatile uint16_t offset1E0;
  826. volatile uint16_t offset1E2;
  827. volatile uint16_t offset1E4;
  828. volatile uint16_t offset1E6;
  829. volatile uint16_t offset1E8;
  830. volatile uint16_t offset1EA;
  831. volatile uint16_t offset1EC;
  832. volatile uint16_t offset1EE;
  833. volatile uint16_t offset1F0;
  834. volatile uint16_t offset1F2;
  835. volatile uint16_t offset1F4;
  836. volatile uint16_t offset1F6;
  837. volatile uint16_t offset1F8;
  838. volatile uint16_t offset1FA;
  839. volatile uint16_t offset1FC;
  840. volatile uint16_t offset1FE;
  841. } IMXRT_REGISTER16_t;
  842. typedef struct {
  843. volatile uint8_t offset00;
  844. volatile uint8_t offset01;
  845. volatile uint8_t offset02;
  846. volatile uint8_t offset03;
  847. volatile uint8_t offset04;
  848. volatile uint8_t offset05;
  849. volatile uint8_t offset06;
  850. volatile uint8_t offset07;
  851. volatile uint8_t offset08;
  852. volatile uint8_t offset09;
  853. volatile uint8_t offset0A;
  854. volatile uint8_t offset0B;
  855. volatile uint8_t offset0C;
  856. volatile uint8_t offset0D;
  857. volatile uint8_t offset0E;
  858. volatile uint8_t offset0F;
  859. } IMXRT_REGISTER8_t;
  860. // 13.3: page 456
  861. #define IMXRT_CMP1 (*(IMXRT_REGISTER8_t *)0x40094000)
  862. #define CMP1_CR0 (IMXRT_CMP1.offset00)
  863. #define CMP1_CR1 (IMXRT_CMP1.offset01)
  864. #define CMP1_FPR (IMXRT_CMP1.offset02)
  865. #define CMP1_SCR (IMXRT_CMP1.offset03)
  866. #define CMP1_DACCR (IMXRT_CMP1.offset04)
  867. #define CMP1_MUXCR (IMXRT_CMP1.offset05)
  868. #define IMXRT_CMP2 (*(IMXRT_REGISTER8_t *)0x40094008)
  869. #define CMP2_CR0 (IMXRT_CMP2.offset00)
  870. #define CMP2_CR1 (IMXRT_CMP2.offset01)
  871. #define CMP2_FPR (IMXRT_CMP2.offset02)
  872. #define CMP2_SCR (IMXRT_CMP2.offset03)
  873. #define CMP2_DACCR (IMXRT_CMP2.offset04)
  874. #define CMP2_MUXCR (IMXRT_CMP2.offset05)
  875. #define IMXRT_CMP3 (*(IMXRT_REGISTER8_t *)0x40094010)
  876. #define CMP3_CR0 (IMXRT_CMP3.offset00)
  877. #define CMP3_CR1 (IMXRT_CMP3.offset01)
  878. #define CMP3_FPR (IMXRT_CMP3.offset02)
  879. #define CMP3_SCR (IMXRT_CMP3.offset03)
  880. #define CMP3_DACCR (IMXRT_CMP3.offset04)
  881. #define CMP3_MUXCR (IMXRT_CMP3.offset05)
  882. #define IMXRT_CMP4 (*(IMXRT_REGISTER8_t *)0x40094018)
  883. #define CMP4_CR0 (IMXRT_CMP4.offset00)
  884. #define CMP4_CR1 (IMXRT_CMP4.offset01)
  885. #define CMP4_FPR (IMXRT_CMP4.offset02)
  886. #define CMP4_SCR (IMXRT_CMP4.offset03)
  887. #define CMP4_DACCR (IMXRT_CMP4.offset04)
  888. #define CMP4_MUXCR (IMXRT_CMP4.offset05)
  889. // 14.6: page 505
  890. #define IMXRT_ADC1 (*(IMXRT_REGISTER32_t *)0x400C4000)
  891. #define ADC1_HC0 (IMXRT_ADC1.offset000)
  892. #define ADC1_HC1 (IMXRT_ADC1.offset004)
  893. #define ADC1_HC2 (IMXRT_ADC1.offset008)
  894. #define ADC1_HC3 (IMXRT_ADC1.offset00C)
  895. #define ADC1_HC4 (IMXRT_ADC1.offset010)
  896. #define ADC1_HC5 (IMXRT_ADC1.offset014)
  897. #define ADC1_HC6 (IMXRT_ADC1.offset018)
  898. #define ADC1_HC7 (IMXRT_ADC1.offset01C)
  899. #define ADC1_HS (IMXRT_ADC1.offset020)
  900. #define ADC1_R0 (IMXRT_ADC1.offset024)
  901. #define ADC1_R1 (IMXRT_ADC1.offset028)
  902. #define ADC1_R2 (IMXRT_ADC1.offset02C)
  903. #define ADC1_R3 (IMXRT_ADC1.offset030)
  904. #define ADC1_R4 (IMXRT_ADC1.offset034)
  905. #define ADC1_R5 (IMXRT_ADC1.offset038)
  906. #define ADC1_R6 (IMXRT_ADC1.offset03C)
  907. #define ADC1_R7 (IMXRT_ADC1.offset040)
  908. #define ADC1_CFG (IMXRT_ADC1.offset044)
  909. #define ADC1_GC (IMXRT_ADC1.offset048)
  910. #define ADC1_GS (IMXRT_ADC1.offset04C)
  911. #define ADC1_CV (IMXRT_ADC1.offset050)
  912. #define ADC1_OFS (IMXRT_ADC1.offset054)
  913. #define ADC1_CAL (IMXRT_ADC1.offset058)
  914. #define IMXRT_ADC2 (*(IMXRT_REGISTER32_t *)0x400C8000)
  915. #define ADC2_HC0 (IMXRT_ADC2.offset000)
  916. #define ADC2_HC1 (IMXRT_ADC2.offset004)
  917. #define ADC2_HC2 (IMXRT_ADC2.offset008)
  918. #define ADC2_HC3 (IMXRT_ADC2.offset00C)
  919. #define ADC2_HC4 (IMXRT_ADC2.offset010)
  920. #define ADC2_HC5 (IMXRT_ADC2.offset014)
  921. #define ADC2_HC6 (IMXRT_ADC2.offset018)
  922. #define ADC2_HC7 (IMXRT_ADC2.offset01C)
  923. #define ADC2_HS (IMXRT_ADC2.offset020)
  924. #define ADC2_R0 (IMXRT_ADC2.offset024)
  925. #define ADC2_R1 (IMXRT_ADC2.offset028)
  926. #define ADC2_R2 (IMXRT_ADC2.offset02C)
  927. #define ADC2_R3 (IMXRT_ADC2.offset030)
  928. #define ADC2_R4 (IMXRT_ADC2.offset034)
  929. #define ADC2_R5 (IMXRT_ADC2.offset038)
  930. #define ADC2_R6 (IMXRT_ADC2.offset03C)
  931. #define ADC2_R7 (IMXRT_ADC2.offset040)
  932. #define ADC2_CFG (IMXRT_ADC2.offset044)
  933. #define ADC2_GC (IMXRT_ADC2.offset048)
  934. #define ADC2_GS (IMXRT_ADC2.offset04C)
  935. #define ADC2_CV (IMXRT_ADC2.offset050)
  936. #define ADC2_OFS (IMXRT_ADC2.offset054)
  937. #define ADC2_CAL (IMXRT_ADC2.offset058)
  938. #define ADC_HC_AIEN ((uint32_t)(1<<7))
  939. #define ADC_HC_ADCH(n) ((uint32_t)(((n) & 0x1F) << 0))
  940. #define ADC_HS_COCO0 ((uint32_t)(1<<0))
  941. #define ADC_CFG_OVWREN ((uint32_t)(1<<16))
  942. #define ADC_CFG_AVGS(n) ((uint32_t)(((n) & 0x03) << 14))
  943. #define ADC_CFG_ADTRG ((uint32_t)(1<<13))
  944. #define ADC_CFG_REFSEL(n) ((uint32_t)(((n) & 0x03) << 11))
  945. #define ADC_CFG_ADHSC ((uint32_t)(1<<10))
  946. #define ADC_CFG_ADSTS(n) ((uint32_t)(((n) & 0x03) << 8))
  947. #define ADC_CFG_ADLPC ((uint32_t)(1<<7))
  948. #define ADC_CFG_ADIV(n) ((uint32_t)(((n) & 0x03) << 5))
  949. #define ADC_CFG_ADLSMP ((uint32_t)(1<<4))
  950. #define ADC_CFG_MODE(n) ((uint32_t)(((n) & 0x03) << 2))
  951. #define ADC_CFG_ADICLK(n) ((uint32_t)(((n) & 0x03) << 0))
  952. #define ADC_GC_CAL ((uint32_t)(1<<7))
  953. #define ADC_GC_ADCO ((uint32_t)(1<<6))
  954. #define ADC_GC_AVGE ((uint32_t)(1<<5))
  955. #define ADC_GC_ACFE ((uint32_t)(1<<4))
  956. #define ADC_GC_ACFGT ((uint32_t)(1<<3))
  957. #define ADC_GC_ACREN ((uint32_t)(1<<2))
  958. #define ADC_GC_DMAEN ((uint32_t)(1<<1))
  959. #define ADC_GC_ADACKEN ((uint32_t)(1<<0))
  960. #define ADC_GS_AWKST ((uint32_t)(1<<2))
  961. #define ADC_GS_CALF ((uint32_t)(1<<1))
  962. #define ADC_GS_ADACT ((uint32_t)(1<<0))
  963. #define ADC_CV_CV2(n) ((uint32_t)(((n) & 0xFFF) << 16))
  964. #define ADC_CV_CV1(n) ((uint32_t)(((n) & 0xFFF) << 0))
  965. #define ADC_OFS_SIGN ((uint32_t)(1<<12))
  966. #define ADC_OFS_OFS(n) ((uint32_t)(((n) & 0xFFF) << 0))
  967. #define ADC_CAL_CAL_CODE(n) ((uint32_t)(((n) & 0x0F) << 0))
  968. // 15.4.1.1: page 527
  969. #define IMXRT_ADC_ETC (*(IMXRT_REGISTER32_t *)0x403B0000)
  970. #define ADC_ETC_CTRL (IMXRT_ADC_ETC.offset000)
  971. #define ADC_ETC_DONE0_1_IRQ (IMXRT_ADC_ETC.offset004)
  972. #define ADC_ETC_DONE2_ERR_IRQ (IMXRT_ADC_ETC.offset008)
  973. #define ADC_ETC_DMA_CTRL (IMXRT_ADC_ETC.offset00C)
  974. #define ADC_ETC_TRIG0_CTRL (IMXRT_ADC_ETC.offset010)
  975. #define ADC_ETC_TRIG0_COUNTER (IMXRT_ADC_ETC.offset014)
  976. #define ADC_ETC_TRIG0_CHAIN_1_0 (IMXRT_ADC_ETC.offset018)
  977. #define ADC_ETC_TRIG0_CHAIN_3_2 (IMXRT_ADC_ETC.offset01C)
  978. #define ADC_ETC_TRIG0_CHAIN_5_4 (IMXRT_ADC_ETC.offset020)
  979. #define ADC_ETC_TRIG0_CHAIN_7_6 (IMXRT_ADC_ETC.offset024)
  980. #define ADC_ETC_TRIG0_RESULT_1_0 (IMXRT_ADC_ETC.offset028)
  981. #define ADC_ETC_TRIG0_RESULT_3_2 (IMXRT_ADC_ETC.offset02C)
  982. #define ADC_ETC_TRIG0_RESULT_5_4 (IMXRT_ADC_ETC.offset030)
  983. #define ADC_ETC_TRIG0_RESULT_7_6 (IMXRT_ADC_ETC.offset034)
  984. #define ADC_ETC_TRIG1_CTRL (IMXRT_ADC_ETC.offset038)
  985. #define ADC_ETC_TRIG1_COUNTER (IMXRT_ADC_ETC.offset03C)
  986. #define ADC_ETC_TRIG1_CHAIN_1_0 (IMXRT_ADC_ETC.offset040)
  987. #define ADC_ETC_TRIG1_CHAIN_3_2 (IMXRT_ADC_ETC.offset044)
  988. #define ADC_ETC_TRIG1_CHAIN_5_4 (IMXRT_ADC_ETC.offset048)
  989. #define ADC_ETC_TRIG1_CHAIN_7_6 (IMXRT_ADC_ETC.offset04C)
  990. #define ADC_ETC_TRIG1_RESULT_1_0 (IMXRT_ADC_ETC.offset050)
  991. #define ADC_ETC_TRIG1_RESULT_3_2 (IMXRT_ADC_ETC.offset054)
  992. #define ADC_ETC_TRIG1_RESULT_5_4 (IMXRT_ADC_ETC.offset058)
  993. #define ADC_ETC_TRIG1_RESULT_7_6 (IMXRT_ADC_ETC.offset05C)
  994. #define ADC_ETC_TRIG2_CTRL (IMXRT_ADC_ETC.offset060)
  995. #define ADC_ETC_TRIG2_COUNTER (IMXRT_ADC_ETC.offset064)
  996. #define ADC_ETC_TRIG2_CHAIN_1_0 (IMXRT_ADC_ETC.offset068)
  997. #define ADC_ETC_TRIG2_CHAIN_3_2 (IMXRT_ADC_ETC.offset06C)
  998. #define ADC_ETC_TRIG2_CHAIN_5_4 (IMXRT_ADC_ETC.offset070)
  999. #define ADC_ETC_TRIG2_CHAIN_7_6 (IMXRT_ADC_ETC.offset074)
  1000. #define ADC_ETC_TRIG2_RESULT_1_0 (IMXRT_ADC_ETC.offset078)
  1001. #define ADC_ETC_TRIG2_RESULT_3_2 (IMXRT_ADC_ETC.offset07C)
  1002. #define ADC_ETC_TRIG2_RESULT_5_4 (IMXRT_ADC_ETC.offset080)
  1003. #define ADC_ETC_TRIG2_RESULT_7_6 (IMXRT_ADC_ETC.offset084)
  1004. #define ADC_ETC_TRIG3_CTRL (IMXRT_ADC_ETC.offset088)
  1005. #define ADC_ETC_TRIG3_COUNTER (IMXRT_ADC_ETC.offset08C)
  1006. #define ADC_ETC_TRIG3_CHAIN_1_0 (IMXRT_ADC_ETC.offset090)
  1007. #define ADC_ETC_TRIG3_CHAIN_3_2 (IMXRT_ADC_ETC.offset094)
  1008. #define ADC_ETC_TRIG3_CHAIN_5_4 (IMXRT_ADC_ETC.offset098)
  1009. #define ADC_ETC_TRIG3_CHAIN_7_6 (IMXRT_ADC_ETC.offset09C)
  1010. #define ADC_ETC_TRIG3_RESULT_1_0 (IMXRT_ADC_ETC.offset0A0)
  1011. #define ADC_ETC_TRIG3_RESULT_3_2 (IMXRT_ADC_ETC.offset0A4)
  1012. #define ADC_ETC_TRIG3_RESULT_5_4 (IMXRT_ADC_ETC.offset0A8)
  1013. #define ADC_ETC_TRIG3_RESULT_7_6 (IMXRT_ADC_ETC.offset0AC)
  1014. #define ADC_ETC_TRIG4_CTRL (IMXRT_ADC_ETC.offset0B0)
  1015. #define ADC_ETC_TRIG4_COUNTER (IMXRT_ADC_ETC.offset0B4)
  1016. #define ADC_ETC_TRIG4_CHAIN_1_0 (IMXRT_ADC_ETC.offset0B8)
  1017. #define ADC_ETC_TRIG4_CHAIN_3_2 (IMXRT_ADC_ETC.offset0BC)
  1018. #define ADC_ETC_TRIG4_CHAIN_5_4 (IMXRT_ADC_ETC.offset0C0)
  1019. #define ADC_ETC_TRIG4_CHAIN_7_6 (IMXRT_ADC_ETC.offset0C4)
  1020. #define ADC_ETC_TRIG4_RESULT_1_0 (IMXRT_ADC_ETC.offset0C8)
  1021. #define ADC_ETC_TRIG4_RESULT_3_2 (IMXRT_ADC_ETC.offset0CC)
  1022. #define ADC_ETC_TRIG4_RESULT_5_4 (IMXRT_ADC_ETC.offset0D0)
  1023. #define ADC_ETC_TRIG4_RESULT_7_6 (IMXRT_ADC_ETC.offset0D4)
  1024. #define ADC_ETC_TRIG5_CTRL (IMXRT_ADC_ETC.offset0D8)
  1025. #define ADC_ETC_TRIG5_COUNTER (IMXRT_ADC_ETC.offset0DC)
  1026. #define ADC_ETC_TRIG5_CHAIN_1_0 (IMXRT_ADC_ETC.offset0E0)
  1027. #define ADC_ETC_TRIG5_CHAIN_3_2 (IMXRT_ADC_ETC.offset0E4)
  1028. #define ADC_ETC_TRIG5_CHAIN_5_4 (IMXRT_ADC_ETC.offset0E8)
  1029. #define ADC_ETC_TRIG5_CHAIN_7_6 (IMXRT_ADC_ETC.offset0EC)
  1030. #define ADC_ETC_TRIG5_RESULT_1_0 (IMXRT_ADC_ETC.offset0F0)
  1031. #define ADC_ETC_TRIG5_RESULT_3_2 (IMXRT_ADC_ETC.offset0F4)
  1032. #define ADC_ETC_TRIG5_RESULT_5_4 (IMXRT_ADC_ETC.offset0F8)
  1033. #define ADC_ETC_TRIG5_RESULT_7_6 (IMXRT_ADC_ETC.offset0FC)
  1034. #define ADC_ETC_TRIG6_CTRL (IMXRT_ADC_ETC.offset100)
  1035. #define ADC_ETC_TRIG6_COUNTER (IMXRT_ADC_ETC.offset104)
  1036. #define ADC_ETC_TRIG6_CHAIN_1_0 (IMXRT_ADC_ETC.offset108)
  1037. #define ADC_ETC_TRIG6_CHAIN_3_2 (IMXRT_ADC_ETC.offset10C)
  1038. #define ADC_ETC_TRIG6_CHAIN_5_4 (IMXRT_ADC_ETC.offset110)
  1039. #define ADC_ETC_TRIG6_CHAIN_7_6 (IMXRT_ADC_ETC.offset114)
  1040. #define ADC_ETC_TRIG6_RESULT_1_0 (IMXRT_ADC_ETC.offset118)
  1041. #define ADC_ETC_TRIG6_RESULT_3_2 (IMXRT_ADC_ETC.offset11C)
  1042. #define ADC_ETC_TRIG6_RESULT_5_4 (IMXRT_ADC_ETC.offset120)
  1043. #define ADC_ETC_TRIG6_RESULT_7_6 (IMXRT_ADC_ETC.offset124)
  1044. #define ADC_ETC_TRIG7_CTRL (IMXRT_ADC_ETC.offset128)
  1045. #define ADC_ETC_TRIG7_COUNTER (IMXRT_ADC_ETC.offset12C)
  1046. #define ADC_ETC_TRIG7_CHAIN_1_0 (IMXRT_ADC_ETC.offset130)
  1047. #define ADC_ETC_TRIG7_CHAIN_3_2 (IMXRT_ADC_ETC.offset134)
  1048. #define ADC_ETC_TRIG7_CHAIN_5_4 (IMXRT_ADC_ETC.offset138)
  1049. #define ADC_ETC_TRIG7_CHAIN_7_6 (IMXRT_ADC_ETC.offset13C)
  1050. #define ADC_ETC_TRIG7_RESULT_1_0 (IMXRT_ADC_ETC.offset140)
  1051. #define ADC_ETC_TRIG7_RESULT_3_2 (IMXRT_ADC_ETC.offset144)
  1052. #define ADC_ETC_TRIG7_RESULT_5_4 (IMXRT_ADC_ETC.offset148)
  1053. #define ADC_ETC_TRIG7_RESULT_7_6 (IMXRT_ADC_ETC.offset14C)
  1054. // 16.7: page 640
  1055. #define IMXRT_AIPSTZ1 (*(IMXRT_REGISTER32_t *)0x4007C000)
  1056. #define AIPSTZ1_MPR (IMXRT_AIPSTZ1.offset000)
  1057. #define AIPSTZ1_OPACR (IMXRT_AIPSTZ1.offset040)
  1058. #define AIPSTZ1_OPACR1 (IMXRT_AIPSTZ1.offset044)
  1059. #define AIPSTZ1_OPACR2 (IMXRT_AIPSTZ1.offset048)
  1060. #define AIPSTZ1_OPACR3 (IMXRT_AIPSTZ1.offset04C)
  1061. #define AIPSTZ1_OPACR4 (IMXRT_AIPSTZ1.offset050)
  1062. #define IMXRT_AIPSTZ2 (*(IMXRT_REGISTER32_t *)0x4017C000)
  1063. #define AIPSTZ2_MPR (IMXRT_AIPSTZ2.offset000)
  1064. #define AIPSTZ2_OPACR (IMXRT_AIPSTZ2.offset040)
  1065. #define AIPSTZ2_OPACR1 (IMXRT_AIPSTZ2.offset044)
  1066. #define AIPSTZ2_OPACR2 (IMXRT_AIPSTZ2.offset048)
  1067. #define AIPSTZ2_OPACR3 (IMXRT_AIPSTZ2.offset04C)
  1068. #define AIPSTZ2_OPACR4 (IMXRT_AIPSTZ2.offset050)
  1069. #define IMXRT_AIPSTZ3 (*(IMXRT_REGISTER32_t *)0x4027C000)
  1070. #define AIPSTZ3_MPR (IMXRT_AIPSTZ3.offset000)
  1071. #define AIPSTZ3_OPACR (IMXRT_AIPSTZ3.offset040)
  1072. #define AIPSTZ3_OPACR1 (IMXRT_AIPSTZ3.offset044)
  1073. #define AIPSTZ3_OPACR2 (IMXRT_AIPSTZ3.offset048)
  1074. #define AIPSTZ3_OPACR3 (IMXRT_AIPSTZ3.offset04C)
  1075. #define AIPSTZ3_OPACR4 (IMXRT_AIPSTZ3.offset050)
  1076. #define IMXRT_AIPSTZ4 (*(IMXRT_REGISTER32_t *)0x4037C000)
  1077. #define AIPSTZ4_MPR (IMXRT_AIPSTZ4.offset000)
  1078. #define AIPSTZ4_OPACR (IMXRT_AIPSTZ4.offset040)
  1079. #define AIPSTZ4_OPACR1 (IMXRT_AIPSTZ4.offset044)
  1080. #define AIPSTZ4_OPACR2 (IMXRT_AIPSTZ4.offset048)
  1081. #define AIPSTZ4_OPACR3 (IMXRT_AIPSTZ4.offset04C)
  1082. #define AIPSTZ4_OPACR4 (IMXRT_AIPSTZ4.offset050)
  1083. // 17.3: page 662
  1084. #define IMXRT_AOI1 (*(IMXRT_REGISTER16_t *)0x403B4000)
  1085. #define AOI1_BFCRT010 (IMXRT_AOI1.offset000)
  1086. #define AOI1_BFCRT230 (IMXRT_AOI1.offset002)
  1087. #define AOI1_BFCRT011 (IMXRT_AOI1.offset004)
  1088. #define AOI1_BFCRT231 (IMXRT_AOI1.offset006)
  1089. #define AOI1_BFCRT012 (IMXRT_AOI1.offset008)
  1090. #define AOI1_BFCRT232 (IMXRT_AOI1.offset00A)
  1091. #define AOI1_BFCRT013 (IMXRT_AOI1.offset00C)
  1092. #define AOI1_BFCRT233 (IMXRT_AOI1.offset00E)
  1093. #define IMXRT_AOI2 (*(IMXRT_REGISTER16_t *)0x403B8000)
  1094. #define AOI2_BFCRT010 (IMXRT_AOI2.offset000)
  1095. #define AOI2_BFCRT230 (IMXRT_AOI2.offset002)
  1096. #define AOI2_BFCRT011 (IMXRT_AOI2.offset004)
  1097. #define AOI2_BFCRT231 (IMXRT_AOI2.offset006)
  1098. #define AOI2_BFCRT012 (IMXRT_AOI2.offset008)
  1099. #define AOI2_BFCRT232 (IMXRT_AOI2.offset00A)
  1100. #define AOI2_BFCRT013 (IMXRT_AOI2.offset00C)
  1101. #define AOI2_BFCRT233 (IMXRT_AOI2.offset00E)
  1102. // 18.7: page 703
  1103. #define IMXRT_CCM (*(IMXRT_REGISTER32_t *)0x400FC000)
  1104. #define CCM_CCR (IMXRT_CCM.offset000)
  1105. #define CCM_CSR (IMXRT_CCM.offset008)
  1106. #define CCM_CCSR (IMXRT_CCM.offset00C)
  1107. #define CCM_CACRR (IMXRT_CCM.offset010)
  1108. #define CCM_CBCDR (IMXRT_CCM.offset014)
  1109. #define CCM_CBCMR (IMXRT_CCM.offset018)
  1110. #define CCM_CSCMR1 (IMXRT_CCM.offset01C)
  1111. #define CCM_CSCMR2 (IMXRT_CCM.offset020)
  1112. #define CCM_CSCDR1 (IMXRT_CCM.offset024)
  1113. #define CCM_CS1CDR (IMXRT_CCM.offset028)
  1114. #define CCM_CS2CDR (IMXRT_CCM.offset02C)
  1115. #define CCM_CDCDR (IMXRT_CCM.offset030)
  1116. #define CCM_CSCDR2 (IMXRT_CCM.offset038)
  1117. #define CCM_CSCDR3 (IMXRT_CCM.offset03C)
  1118. #define CCM_CDHIPR (IMXRT_CCM.offset048)
  1119. #define CCM_CLPCR (IMXRT_CCM.offset054)
  1120. #define CCM_CISR (IMXRT_CCM.offset058)
  1121. #define CCM_CIMR (IMXRT_CCM.offset05C)
  1122. #define CCM_CCOSR (IMXRT_CCM.offset060)
  1123. #define CCM_CGPR (IMXRT_CCM.offset064)
  1124. #define CCM_CCGR0 (IMXRT_CCM.offset068)
  1125. #define CCM_CCGR1 (IMXRT_CCM.offset06C)
  1126. #define CCM_CCGR2 (IMXRT_CCM.offset070)
  1127. #define CCM_CCGR3 (IMXRT_CCM.offset074)
  1128. #define CCM_CCGR4 (IMXRT_CCM.offset078)
  1129. #define CCM_CCGR5 (IMXRT_CCM.offset07C)
  1130. #define CCM_CCGR6 (IMXRT_CCM.offset080)
  1131. #define CCM_CMEOR (IMXRT_CCM.offset088)
  1132. #define CCM_CCR_RBC_EN ((uint32_t)(1<<27))
  1133. #define CCM_CCR_REG_BYPASS_COUNT(n) ((uint32_t)(((n) & 0x3F) << 21))
  1134. #define CCM_CCR_COSC_EN ((uint32_t)(1<<12))
  1135. #define CCM_CCR_OSCNT(n) ((uint32_t)(((n) & 0xFF) << 0))
  1136. #define CCM_CSR_COSC_READY ((uint32_t)(1<<5))
  1137. #define CCM_CSR_CAMP2_READY ((uint32_t)(1<<3))
  1138. #define CCM_CSR_REF_EN_B ((uint32_t)(1<<0))
  1139. #define CCM_CCSR_PLL3_SW_CLK_SEL ((uint32_t)(1<<0))
  1140. #define CCM_CACRR_ARM_PODF(n) ((uint32_t)(((n) & 0x07) << 0))
  1141. #define CCM_CACRR_ARM_PODF_MASK ((uint32_t)(0x07 << 0))
  1142. #define CCM_CBCDR_PERIPH_CLK2_PODF(n) ((uint32_t)(((n) & 0x07) << 27))
  1143. #define CCM_CBCDR_PERIPH_CLK2_PODF_MASK ((uint32_t)(0x07 << 27))
  1144. #define CCM_CBCDR_PERIPH_CLK_SEL ((uint32_t)(1<<25))
  1145. #define CCM_CBCDR_SEMC_PODF(n) ((uint32_t)(((n) & 0x07) << 16))
  1146. #define CCM_CBCDR_AHB_PODF(n) ((uint32_t)(((n) & 0x07) << 10))
  1147. #define CCM_CBCDR_AHB_PODF_MASK ((uint32_t)(0x07 << 10))
  1148. #define CCM_CBCDR_IPG_PODF(n) ((uint32_t)(((n) & 0x03) << 8))
  1149. #define CCM_CBCDR_IPG_PODF_MASK ((uint32_t)(0x03 << 8))
  1150. #define CCM_CBCDR_SEMC_ALT_CLK_SEL ((uint32_t)(1<<7))
  1151. #define CCM_CBCDR_SEMC_CLK_SEL ((uint32_t)(1<<6))
  1152. #define CCM_CBCMR_LPSPI_PODF(n) ((uint32_t)(((n) & 0x07) << 26))
  1153. #define CCM_CBCMR_LCDIF_PODF(n) ((uint32_t)(((n) & 0x07) << 23))
  1154. #define CCM_CBCMR_PRE_PERIPH_CLK_SEL(n) ((uint32_t)(((n) & 0x03) << 18))
  1155. #define CCM_CBCMR_TRACE_CLK_SEL(n) ((uint32_t)(((n) & 0x03) << 14))
  1156. #define CCM_CBCMR_PERIPH_CLK2_SEL(n) ((uint32_t)(((n) & 0x03) << 12))
  1157. #define CCM_CBCMR_PERIPH_CLK2_SEL_MASK ((uint32_t)(0x03 << 12))
  1158. #define CCM_CBCMR_LPSPI_CLK_SEL(n) ((uint32_t)(((n) & 0x03) << 4))
  1159. #define CCM_CBCMR_LPSPI_PODF_MASK ((uint32_t)(0x07 << 26))
  1160. #define CCM_CBCMR_LCDIF_PODF_MASK ((uint32_t)(0x07 << 23))
  1161. #define CCM_CBCMR_PRE_PERIPH_CLK_SEL_MASK ((uint32_t)(0x03 << 18))
  1162. #define CCM_CBCMR_TRACE_CLK_SEL_MASK ((uint32_t)(0x03 << 14))
  1163. #define CCM_CBCMR_LPSPI_CLK_SEL_MASK ((uint32_t)(0x03 << 4))
  1164. #define CCM_CSCMR1_FLEXSPI_CLK_SEL(n) ((uint32_t)(((n) & 0x03) << 29))
  1165. #define CCM_CSCMR1_FLEXSPI_PODF(n) ((uint32_t)(((n) & 0x07) << 23))
  1166. #define CCM_CSCMR1_USDHC2_CLK_SEL ((uint32_t)(1<<17))
  1167. #define CCM_CSCMR1_USDHC1_CLK_SEL ((uint32_t)(1<<16))
  1168. #define CCM_CSCMR1_SAI3_CLK_SEL(n) ((uint32_t)(((n) & 0x03) << 14))
  1169. #define CCM_CSCMR1_SAI2_CLK_SEL(n) ((uint32_t)(((n) & 0x03) << 12))
  1170. #define CCM_CSCMR1_SAI1_CLK_SEL(n) ((uint32_t)(((n) & 0x03) << 10))
  1171. #define CCM_CSCMR1_PERCLK_CLK_SEL ((uint32_t)(1<<6))
  1172. #define CCM_CSCMR1_PERCLK_PODF(n) ((uint32_t)(((n) & 0x3F) << 0))
  1173. #define CCM_CSCMR2_FLEXIO2_CLK_SEL(n) ((uint32_t)(((n) & 0x03) << 19))
  1174. #define CCM_CSCMR2_CAN_CLK_SEL(n) ((uint32_t)(((n) & 0x03) << 8))
  1175. #define CCM_CSCMR2_CAN_CLK_PODF(n) ((uint32_t)(((n) & 0x3F) << 2))
  1176. #define CCM_CSCDR1_TRACE_PODF(n) ((uint32_t)(((n) & 0x07) << 25))
  1177. #define CCM_CSCDR1_USDHC2_PODF(n) ((uint32_t)(((n) & 0x07) << 16))
  1178. #define CCM_CSCDR1_USDHC1_PODF(n) ((uint32_t)(((n) & 0x07) << 11))
  1179. #define CCM_CSCDR1_UART_CLK_SEL ((uint32_t)(1<<6))
  1180. #define CCM_CSCDR1_UART_CLK_PODF(n) ((uint32_t)(((n) & 0x3F) << 0))
  1181. #define CCM_CS1CDR_FLEXIO2_CLK_PODF(n) ((uint32_t)(((n) & 0x07) << 25))
  1182. #define CCM_CS1CDR_SAI3_CLK_PRED(n) ((uint32_t)(((n) & 0x07) << 22))
  1183. #define CCM_CS1CDR_SAI3_CLK_PODF(n) ((uint32_t)(((n) & 0x3F) << 16))
  1184. #define CCM_CS1CDR_FLEXIO2_CLK_PRED(n) ((uint32_t)(((n) & 0x07) << 9))
  1185. #define CCM_CS1CDR_SAI1_CLK_PRED(n) ((uint32_t)(((n) & 0x07) << 6))
  1186. #define CCM_CS1CDR_SAI1_CLK_PODF(n) ((uint32_t)(((n) & 0x3F) << 0))
  1187. #define CCM_CS2CDR_SAI2_CLK_PRED(n) ((uint32_t)(((n) & 0x07) << 6))
  1188. #define CCM_CS2CDR_SAI2_CLK_PODF(n) ((uint32_t)(((n) & 0x3F) << 0))
  1189. #define CCM_CDCDR_SPDIF0_CLK_PRED(n) ((uint32_t)(((n) & 0x07) << 25))
  1190. #define CCM_CDCDR_SPDIF0_CLK_PODF(n) ((uint32_t)(((n) & 0x07) << 22))
  1191. #define CCM_CDCDR_SPDIF0_CLK_SEL(n) ((uint32_t)(((n) & 0x03) << 20))
  1192. #define CCM_CDCDR_FLEXIO1_CLK_PRED(n) ((uint32_t)(((n) & 0x07) << 12))
  1193. #define CCM_CDCDR_FLEXIO1_CLK_PODF(n) ((uint32_t)(((n) & 0x07) << 9))
  1194. #define CCM_CDCDR_FLEXIO1_CLK_SEL(n) ((uint32_t)(((n) & 0x03) << 7))
  1195. #define CCM_CSCDR2_LPI2C_CLK_PODF(n) ((uint32_t)(((n) & 0x1F) << 19))
  1196. #define CCM_CSCDR2_LPI2C_CLK_SEL ((uint32_t)(1<<18))
  1197. #define CCM_CSCDR2_LCDIF_PRE_CLK_SEL(n) ((uint32_t)(((n) & 0x07) << 15))
  1198. #define CCM_CSCDR2_LCDIF_PRED(n) ((uint32_t)(((n) & 0x07) << 12))
  1199. #define CCM_CSCDR2_LCDIF_CLK_SEL(n) ((uint32_t)(((n) & 0x07) << 9))
  1200. #define CCM_CSCDR3_CSI_PODF(n) ((uint32_t)(((n) & 0x07) << 11))
  1201. #define CCM_CSCDR3_CSI_CLK_SEL(n) ((uint32_t)(((n) & 0x03) << 9))
  1202. #define CCM_CDHIPR_ARM_PODF_BUSY ((uint32_t)(1<<16))
  1203. #define CCM_CDHIPR_PERIPH_CLK_SEL_BUSY ((uint32_t)(1<<5))
  1204. #define CCM_CDHIPR_PERIPH2_CLK_SEL_BUSY ((uint32_t)(1<<3))
  1205. #define CCM_CDHIPR_AHB_PODF_BUSY ((uint32_t)(1<<1))
  1206. #define CCM_CDHIPR_SEMC_PODF_BUSY ((uint32_t)(1<<0))
  1207. #define CCM_CLPCR_MASK_L2CC_IDLE ((uint32_t)(1<<27))
  1208. #define CCM_CLPCR_MASK_SCU_IDLE ((uint32_t)(1<<26))
  1209. #define CCM_CLPCR_MASK_CORE0_WFI ((uint32_t)(1<<22))
  1210. #define CCM_CLPCR_BYPASS_LPM_HS0 ((uint32_t)(1<<21))
  1211. #define CCM_CLPCR_BYPASS_LPM_HS1 ((uint32_t)(1<<19))
  1212. #define CCM_CLPCR_COSC_PWRDOWN ((uint32_t)(1<<11))
  1213. #define CCM_CLPCR_STBY_COUNT(n) ((uint32_t)(((n) & 0x03) << 9))
  1214. #define CCM_CLPCR_VSTBY ((uint32_t)(1<<8))
  1215. #define CCM_CLPCR_DIS_REF_OSC ((uint32_t)(1<<7))
  1216. #define CCM_CLPCR_SBYOS ((uint32_t)(1<<6))
  1217. #define CCM_CLPCR_ARM_CLK_DIS_ON_LPM ((uint32_t)(1<<5))
  1218. #define CCM_CLPCR_LPM(n) ((uint32_t)(((n) & 0x03) << 0))
  1219. #define CCM_CISR_ARM_PODF_LOADED ((uint32_t)(1<<26))
  1220. #define CCM_CISR_PERIPH_CLK_SEL_LOADED ((uint32_t)(1<<22))
  1221. #define CCM_CISR_AHB_PODF_LOADED ((uint32_t)(1<<20))
  1222. #define CCM_CISR_PERIPH2_CLK_SEL_LOADED ((uint32_t)(1<<19))
  1223. #define CCM_CISR_SEMC_PODF_LOADED ((uint32_t)(1<<17))
  1224. #define CCM_CISR_COSC_READY ((uint32_t)(1<<6))
  1225. #define CCM_CISR_LRF_PLL ((uint32_t)(1<<0))
  1226. #define CCM_CIMR_ARM_PODF_LOADED ((uint32_t)(1<<26))
  1227. #define CCM_CIMR_MASK_PERIPH_CLK_SEL_LOADED ((uint32_t)(1<<22))
  1228. #define CCM_CIMR_MASK_AHB_PODF_LOADED ((uint32_t)(1<<20))
  1229. #define CCM_CIMR_MASK_PERIPH2_CLK_SEL_LOADED ((uint32_t)(1<<19))
  1230. #define CCM_CIMR_MASK_SEMC_PODF_LOADED ((uint32_t)(1<<17))
  1231. #define CCM_CIMR_MASK_COSC_READY ((uint32_t)(1<<6))
  1232. #define CCM_CIMR_MASK_LRF_PLL ((uint32_t)(1<<0))
  1233. #define CCM_CCOSR_CLKO2_EN ((uint32_t)(1<<24))
  1234. #define CCM_CCOSR_CLKO2_DIV(n) ((uint32_t)(((n) & 0x07) << 21))
  1235. #define CCM_CCOSR_CLKO2_SEL(n) ((uint32_t)(((n) & 0x1F) << 16))
  1236. #define CCM_CCOSR_CLK_OUT_SEL ((uint32_t)(1<<8))
  1237. #define CCM_CCOSR_CLKO1_EN ((uint32_t)(1<<7))
  1238. #define CCM_CCOSR_CLKO1_DIV(n) ((uint32_t)(((n) & 0x07) << 4))
  1239. #define CCM_CCOSR_CLKO1_SEL(n) ((uint32_t)(((n) & 0x0F) << 0))
  1240. #define CCM_CGPR_INT_MEM_CLK_LPM ((uint32_t)(1<<17))
  1241. #define CCM_CGPR_FPL ((uint32_t)(1<<16))
  1242. #define CCM_CGPR_SYS_MEM_DS_CTRL(n) ((uint32_t)(((n) & 0x03) << 14))
  1243. #define CCM_CGPR_EFUSE_PROG_SUPPLY_GATE ((uint32_t)(1<<4))
  1244. #define CCM_CGPR_PMIC_DELAY_SCALER ((uint32_t)(1<<0))
  1245. #define CCM_CCGR_OFF 0
  1246. #define CCM_CCGR_ON_RUNONLY 1
  1247. #define CCM_CCGR_ON 3
  1248. #define CCM_CCGR0_GPIO2(n) ((uint32_t)(((n) & 0x03) << 30))
  1249. #define CCM_CCGR0_LPUART2(n) ((uint32_t)(((n) & 0x03) << 28))
  1250. #define CCM_CCGR0_GPT2_SERIAL(n) ((uint32_t)(((n) & 0x03) << 26))
  1251. #define CCM_CCGR0_GPT2_BUS(n) ((uint32_t)(((n) & 0x03) << 24))
  1252. #define CCM_CCGR0_TRACE(n) ((uint32_t)(((n) & 0x03) << 22))
  1253. #define CCM_CCGR0_CAN2_SERIAL(n) ((uint32_t)(((n) & 0x03) << 20))
  1254. #define CCM_CCGR0_CAN2(n) ((uint32_t)(((n) & 0x03) << 18))
  1255. #define CCM_CCGR0_CAN1_SERIAL(n) ((uint32_t)(((n) & 0x03) << 16))
  1256. #define CCM_CCGR0_CAN1(n) ((uint32_t)(((n) & 0x03) << 14))
  1257. #define CCM_CCGR0_LPUART3(n) ((uint32_t)(((n) & 0x03) << 12))
  1258. #define CCM_CCGR0_DCP(n) ((uint32_t)(((n) & 0x03) << 10))
  1259. #define CCM_CCGR0_MQS_HMCLK(n) ((uint32_t)(((n) & 0x03) << 4))
  1260. #define CCM_CCGR0_AIPS_TZ2(n) ((uint32_t)(((n) & 0x03) << 2))
  1261. #define CCM_CCGR0_AIPS_TZ1(n) ((uint32_t)(((n) & 0x03) << 0))
  1262. #define CCM_CCGR1_CSU(n) ((uint32_t)(((n) & 0x03) << 28))
  1263. #define CCM_CCGR1_GPIO1(n) ((uint32_t)(((n) & 0x03) << 26))
  1264. #define CCM_CCGR1_LPUART4(n) ((uint32_t)(((n) & 0x03) << 24))
  1265. #define CCM_CCGR1_GPT_SERIAL(n) ((uint32_t)(((n) & 0x03) << 22))
  1266. #define CCM_CCGR1_GPT(n) ((uint32_t)(((n) & 0x03) << 20))
  1267. #define CCM_CCGR1_ADC1(n) ((uint32_t)(((n) & 0x03) << 16))
  1268. #define CCM_CCGR1_AOI2(n) ((uint32_t)(((n) & 0x03) << 14))
  1269. #define CCM_CCGR1_PIT(n) ((uint32_t)(((n) & 0x03) << 12))
  1270. #define CCM_CCGR1_ENET(n) ((uint32_t)(((n) & 0x03) << 10))
  1271. #define CCM_CCGR1_ADC2(n) ((uint32_t)(((n) & 0x03) << 8))
  1272. #define CCM_CCGR1_LPSPI4(n) ((uint32_t)(((n) & 0x03) << 6))
  1273. #define CCM_CCGR1_LPSPI3(n) ((uint32_t)(((n) & 0x03) << 4))
  1274. #define CCM_CCGR1_LPSPI2(n) ((uint32_t)(((n) & 0x03) << 2))
  1275. #define CCM_CCGR1_LPSPI1(n) ((uint32_t)(((n) & 0x03) << 0))
  1276. #define CCM_CCGR2_PXP(n) ((uint32_t)(((n) & 0x03) << 30))
  1277. #define CCM_CCGR2_LCD(n) ((uint32_t)(((n) & 0x03) << 28))
  1278. #define CCM_CCGR2_GPIO3(n) ((uint32_t)(((n) & 0x03) << 26))
  1279. #define CCM_CCGR2_XBAR2(n) ((uint32_t)(((n) & 0x03) << 24))
  1280. #define CCM_CCGR2_XBAR1(n) ((uint32_t)(((n) & 0x03) << 22))
  1281. #define CCM_CCGR2_IPMUX3(n) ((uint32_t)(((n) & 0x03) << 20))
  1282. #define CCM_CCGR2_IPMUX2(n) ((uint32_t)(((n) & 0x03) << 18))
  1283. #define CCM_CCGR2_IPMUX1(n) ((uint32_t)(((n) & 0x03) << 16))
  1284. #define CCM_CCGR2_XBAR3(n) ((uint32_t)(((n) & 0x03) << 14))
  1285. #define CCM_CCGR2_IIM(n) ((uint32_t)(((n) & 0x03) << 12))
  1286. #define CCM_CCGR2_LPI2C3(n) ((uint32_t)(((n) & 0x03) << 10))
  1287. #define CCM_CCGR2_LPI2C2(n) ((uint32_t)(((n) & 0x03) << 8))
  1288. #define CCM_CCGR2_LPI2C1(n) ((uint32_t)(((n) & 0x03) << 6))
  1289. #define CCM_CCGR2_IOMUXC_SNVS(n) ((uint32_t)(((n) & 0x03) << 4))
  1290. #define CCM_CCGR2_CSI(n) ((uint32_t)(((n) & 0x03) << 2))
  1291. #define CCM_CCGR3_IOMUXC_SNVS_GPR(n) ((uint32_t)(((n) & 0x03) << 30))
  1292. #define CCM_CCGR3_OCRAM(n) ((uint32_t)(((n) & 0x03) << 28))
  1293. #define CCM_CCGR3_ACMP4(n) ((uint32_t)(((n) & 0x03) << 26))
  1294. #define CCM_CCGR3_ACMP3(n) ((uint32_t)(((n) & 0x03) << 24))
  1295. #define CCM_CCGR3_ACMP2(n) ((uint32_t)(((n) & 0x03) << 22))
  1296. #define CCM_CCGR3_ACMP1(n) ((uint32_t)(((n) & 0x03) << 20))
  1297. #define CCM_CCGR3_FLEXRAM(n) ((uint32_t)(((n) & 0x03) << 18))
  1298. #define CCM_CCGR3_WDOG1(n) ((uint32_t)(((n) & 0x03) << 16))
  1299. #define CCM_CCGR3_EWM(n) ((uint32_t)(((n) & 0x03) << 14))
  1300. #define CCM_CCGR3_GPIO4(n) ((uint32_t)(((n) & 0x03) << 12))
  1301. #define CCM_CCGR3_LCDIF_PIX(n) ((uint32_t)(((n) & 0x03) << 10))
  1302. #define CCM_CCGR3_AOI1(n) ((uint32_t)(((n) & 0x03) << 8))
  1303. #define CCM_CCGR3_LPUART6(n) ((uint32_t)(((n) & 0x03) << 6))
  1304. #define CCM_CCGR3_SEMC(n) ((uint32_t)(((n) & 0x03) << 4))
  1305. #define CCM_CCGR3_LPUART5(n) ((uint32_t)(((n) & 0x03) << 2))
  1306. #define CCM_CCGR3_FLEXIO2(n) ((uint32_t)(((n) & 0x03) << 0))
  1307. #define CCM_CCGR4_ENC4(n) ((uint32_t)(((n) & 0x03) << 30))
  1308. #define CCM_CCGR4_ENC3(n) ((uint32_t)(((n) & 0x03) << 28))
  1309. #define CCM_CCGR4_ENC2(n) ((uint32_t)(((n) & 0x03) << 26))
  1310. #define CCM_CCGR4_ENC1(n) ((uint32_t)(((n) & 0x03) << 24))
  1311. #define CCM_CCGR4_PWM4(n) ((uint32_t)(((n) & 0x03) << 22))
  1312. #define CCM_CCGR4_PWM3(n) ((uint32_t)(((n) & 0x03) << 20))
  1313. #define CCM_CCGR4_PWM2(n) ((uint32_t)(((n) & 0x03) << 18))
  1314. #define CCM_CCGR4_PWM1(n) ((uint32_t)(((n) & 0x03) << 16))
  1315. #define CCM_CCGR4_SIM_EMS(n) ((uint32_t)(((n) & 0x03) << 14))
  1316. #define CCM_CCGR4_SIM_M(n) ((uint32_t)(((n) & 0x03) << 12))
  1317. #define CCM_CCGR4_TSC(n) ((uint32_t)(((n) & 0x03) << 10))
  1318. #define CCM_CCGR4_SIM_M7(n) ((uint32_t)(((n) & 0x03) << 8))
  1319. #define CCM_CCGR4_BEE(n) ((uint32_t)(((n) & 0x03) << 6))
  1320. #define CCM_CCGR4_IOMUXC_GPR(n) ((uint32_t)(((n) & 0x03) << 4))
  1321. #define CCM_CCGR4_IOMUXC(n) ((uint32_t)(((n) & 0x03) << 2))
  1322. #define CCM_CCGR5_SNVS_LP(n) ((uint32_t)(((n) & 0x03) << 30))
  1323. #define CCM_CCGR5_SNVS_HP(n) ((uint32_t)(((n) & 0x03) << 28))
  1324. #define CCM_CCGR5_LPUART7(n) ((uint32_t)(((n) & 0x03) << 26))
  1325. #define CCM_CCGR5_LPUART1(n) ((uint32_t)(((n) & 0x03) << 24))
  1326. #define CCM_CCGR5_SAI3(n) ((uint32_t)(((n) & 0x03) << 22))
  1327. #define CCM_CCGR5_SAI2(n) ((uint32_t)(((n) & 0x03) << 20))
  1328. #define CCM_CCGR5_SAI1(n) ((uint32_t)(((n) & 0x03) << 18))
  1329. #define CCM_CCGR5_SIM_MAIN(n) ((uint32_t)(((n) & 0x03) << 16))
  1330. #define CCM_CCGR5_SPDIF(n) ((uint32_t)(((n) & 0x03) << 14))
  1331. #define CCM_CCGR5_AIPS_TZ4(n) ((uint32_t)(((n) & 0x03) << 12))
  1332. #define CCM_CCGR5_WDOG2(n) ((uint32_t)(((n) & 0x03) << 10))
  1333. #define CCM_CCGR5_KPP(n) ((uint32_t)(((n) & 0x03) << 8))
  1334. #define CCM_CCGR5_DMA(n) ((uint32_t)(((n) & 0x03) << 6))
  1335. #define CCM_CCGR5_WDOG3(n) ((uint32_t)(((n) & 0x03) << 4))
  1336. #define CCM_CCGR5_FLEXIO1(n) ((uint32_t)(((n) & 0x03) << 2))
  1337. #define CCM_CCGR5_ROM(n) ((uint32_t)(((n) & 0x03) << 0))
  1338. #define CCM_CCGR6_QTIMER3(n) ((uint32_t)(((n) & 0x03) << 30))
  1339. #define CCM_CCGR6_QTIMER2(n) ((uint32_t)(((n) & 0x03) << 28))
  1340. #define CCM_CCGR6_QTIMER1(n) ((uint32_t)(((n) & 0x03) << 26))
  1341. #define CCM_CCGR6_LPI2C4_SERIAL(n) ((uint32_t)(((n) & 0x03) << 24))
  1342. #define CCM_CCGR6_ANADIG(n) ((uint32_t)(((n) & 0x03) << 22))
  1343. #define CCM_CCGR6_SIM_PER(n) ((uint32_t)(((n) & 0x03) << 20))
  1344. #define CCM_CCGR6_AIPS_TZ3(n) ((uint32_t)(((n) & 0x03) << 18))
  1345. #define CCM_CCGR6_QTIMER4(n) ((uint32_t)(((n) & 0x03) << 16))
  1346. #define CCM_CCGR6_LPUART8(n) ((uint32_t)(((n) & 0x03) << 14))
  1347. #define CCM_CCGR6_TRNG(n) ((uint32_t)(((n) & 0x03) << 12))
  1348. #define CCM_CCGR6_FLEXSPI(n) ((uint32_t)(((n) & 0x03) << 10))
  1349. #define CCM_CCGR6_IPMUX4(n) ((uint32_t)(((n) & 0x03) << 8))
  1350. #define CCM_CCGR6_DCDC(n) ((uint32_t)(((n) & 0x03) << 6))
  1351. #define CCM_CCGR6_USDHC2(n) ((uint32_t)(((n) & 0x03) << 4))
  1352. #define CCM_CCGR6_USDHC1(n) ((uint32_t)(((n) & 0x03) << 2))
  1353. #define CCM_CCGR6_USBOH3(n) ((uint32_t)(((n) & 0x03) << 0))
  1354. #define CCM_CMEOR_MOD_EN_OV_CAN1_CPI ((uint32_t)(1<<30))
  1355. #define CCM_CMEOR_MOD_EN_OV_CAN2_CPI ((uint32_t)(1<<28))
  1356. #define CCM_CMEOR_MOD_EN_OV_TRNG ((uint32_t)(1<<9))
  1357. #define CCM_CMEOR_MOD_EN_USDHC ((uint32_t)(1<<7))
  1358. #define CCM_CMEOR_MOD_EN_OV_PIT ((uint32_t)(1<<6))
  1359. #define CCM_CMEOR_MOD_EN_OV_GPT ((uint32_t)(1<<5))
  1360. // 18.8: page 752
  1361. #define IMXRT_CCM_ANALOG (*(IMXRT_REGISTER32_t *)0x400D8000)
  1362. #define CCM_ANALOG_PLL_ARM (IMXRT_CCM_ANALOG.offset000)
  1363. #define CCM_ANALOG_PLL_ARM_SET (IMXRT_CCM_ANALOG.offset004)
  1364. #define CCM_ANALOG_PLL_ARM_CLR (IMXRT_CCM_ANALOG.offset008)
  1365. #define CCM_ANALOG_PLL_ARM_TOG (IMXRT_CCM_ANALOG.offset00C)
  1366. #define CCM_ANALOG_PLL_USB1 (IMXRT_CCM_ANALOG.offset010)
  1367. #define CCM_ANALOG_PLL_USB1_SET (IMXRT_CCM_ANALOG.offset014)
  1368. #define CCM_ANALOG_PLL_USB1_CLR (IMXRT_CCM_ANALOG.offset018)
  1369. #define CCM_ANALOG_PLL_USB1_TOG (IMXRT_CCM_ANALOG.offset01C)
  1370. #define CCM_ANALOG_PLL_USB2 (IMXRT_CCM_ANALOG.offset020)
  1371. #define CCM_ANALOG_PLL_USB2_SET (IMXRT_CCM_ANALOG.offset024)
  1372. #define CCM_ANALOG_PLL_USB2_CLR (IMXRT_CCM_ANALOG.offset028)
  1373. #define CCM_ANALOG_PLL_USB2_TOG (IMXRT_CCM_ANALOG.offset02C)
  1374. #define CCM_ANALOG_PLL_SYS (IMXRT_CCM_ANALOG.offset030)
  1375. #define CCM_ANALOG_PLL_SYS_SET (IMXRT_CCM_ANALOG.offset034)
  1376. #define CCM_ANALOG_PLL_SYS_CLR (IMXRT_CCM_ANALOG.offset038)
  1377. #define CCM_ANALOG_PLL_SYS_TOG (IMXRT_CCM_ANALOG.offset03C)
  1378. #define CCM_ANALOG_PLL_SYS_SS (IMXRT_CCM_ANALOG.offset040)
  1379. #define CCM_ANALOG_PLL_SYS_NUM (IMXRT_CCM_ANALOG.offset050)
  1380. #define CCM_ANALOG_PLL_SYS_DENOM (IMXRT_CCM_ANALOG.offset060)
  1381. #define CCM_ANALOG_PLL_AUDIO (IMXRT_CCM_ANALOG.offset070)
  1382. #define CCM_ANALOG_PLL_AUDIO_SET (IMXRT_CCM_ANALOG.offset074)
  1383. #define CCM_ANALOG_PLL_AUDIO_CLR (IMXRT_CCM_ANALOG.offset078)
  1384. #define CCM_ANALOG_PLL_AUDIO_TOG (IMXRT_CCM_ANALOG.offset07C)
  1385. #define CCM_ANALOG_PLL_AUDIO_NUM (IMXRT_CCM_ANALOG.offset080)
  1386. #define CCM_ANALOG_PLL_AUDIO_DENOM (IMXRT_CCM_ANALOG.offset090)
  1387. #define CCM_ANALOG_PLL_VIDEO (IMXRT_CCM_ANALOG.offset0A0)
  1388. #define CCM_ANALOG_PLL_VIDEO_SET (IMXRT_CCM_ANALOG.offset0A4)
  1389. #define CCM_ANALOG_PLL_VIDEO_CLR (IMXRT_CCM_ANALOG.offset0A8)
  1390. #define CCM_ANALOG_PLL_VIDEO_TOG (IMXRT_CCM_ANALOG.offset0AC)
  1391. #define CCM_ANALOG_PLL_VIDEO_NUM (IMXRT_CCM_ANALOG.offset0B0)
  1392. #define CCM_ANALOG_PLL_VIDEO_DENOM (IMXRT_CCM_ANALOG.offset0C0)
  1393. #define CCM_ANALOG_PLL_ENET (IMXRT_CCM_ANALOG.offset0EC)
  1394. #define CCM_ANALOG_PLL_ENET_SET (IMXRT_CCM_ANALOG.offset0E4)
  1395. #define CCM_ANALOG_PLL_ENET_CLR (IMXRT_CCM_ANALOG.offset0E8)
  1396. #define CCM_ANALOG_PLL_ENET_TOG (IMXRT_CCM_ANALOG.offset0EC)
  1397. #define CCM_ANALOG_PFD_480 (IMXRT_CCM_ANALOG.offset0F0)
  1398. #define CCM_ANALOG_PFD_480_SET (IMXRT_CCM_ANALOG.offset0F4)
  1399. #define CCM_ANALOG_PFD_480_CLR (IMXRT_CCM_ANALOG.offset0F8)
  1400. #define CCM_ANALOG_PFD_480_TOG (IMXRT_CCM_ANALOG.offset0FC)
  1401. #define CCM_ANALOG_PFD_528 (IMXRT_CCM_ANALOG.offset100)
  1402. #define CCM_ANALOG_PFD_528_SET (IMXRT_CCM_ANALOG.offset104)
  1403. #define CCM_ANALOG_PFD_528_CLR (IMXRT_CCM_ANALOG.offset108)
  1404. #define CCM_ANALOG_PFD_528_TOG (IMXRT_CCM_ANALOG.offset10C)
  1405. #define CCM_ANALOG_MISC0 (IMXRT_CCM_ANALOG.offset150)
  1406. #define CCM_ANALOG_MISC0_SET (IMXRT_CCM_ANALOG.offset154)
  1407. #define CCM_ANALOG_MISC0_CLR (IMXRT_CCM_ANALOG.offset158)
  1408. #define CCM_ANALOG_MISC0_TOG (IMXRT_CCM_ANALOG.offset15C)
  1409. #define CCM_ANALOG_MISC1 (IMXRT_CCM_ANALOG.offset160)
  1410. #define CCM_ANALOG_MISC1_SET (IMXRT_CCM_ANALOG.offset164)
  1411. #define CCM_ANALOG_MISC1_CLR (IMXRT_CCM_ANALOG.offset168)
  1412. #define CCM_ANALOG_MISC1_TOG (IMXRT_CCM_ANALOG.offset16C)
  1413. #define CCM_ANALOG_MISC2 (IMXRT_CCM_ANALOG.offset170)
  1414. #define CCM_ANALOG_MISC2_SET (IMXRT_CCM_ANALOG.offset174)
  1415. #define CCM_ANALOG_MISC2_CLR (IMXRT_CCM_ANALOG.offset178)
  1416. #define CCM_ANALOG_MISC2_TOG (IMXRT_CCM_ANALOG.offset17C)
  1417. #define CCM_ANALOG_PLL_ARM_LOCK ((uint32_t)(1<<31))
  1418. #define CCM_ANALOG_PLL_ARM_BYPASS ((uint32_t)(1<<16))
  1419. #define CCM_ANALOG_PLL_ARM_ENABLE ((uint32_t)(1<<13))
  1420. #define CCM_ANALOG_PLL_ARM_POWERDOWN ((uint32_t)(1<<12))
  1421. #define CCM_ANALOG_PLL_ARM_DIV_SELECT(n) ((uint32_t)(((n) & 0x7F) << 0))
  1422. #define CCM_ANALOG_PLL_ARM_DIV_SELECT_MASK ((uint32_t)(0x7F << 0))
  1423. #define CCM_ANALOG_PLL_USB1_LOCK ((uint32_t)(1<<31))
  1424. #define CCM_ANALOG_PLL_USB1_BYPASS ((uint32_t)(1<<16))
  1425. #define CCM_ANALOG_PLL_USB1_ENABLE ((uint32_t)(1<<13))
  1426. #define CCM_ANALOG_PLL_USB1_POWER ((uint32_t)(1<<12))
  1427. #define CCM_ANALOG_PLL_USB1_EN_USB_CLKS ((uint32_t)(1<<6))
  1428. #define CCM_ANALOG_PLL_USB1_DIV_SELECT ((uint32_t)(1<<1))
  1429. #define CCM_ANALOG_PLL_SYS_LOCK ((uint32_t)(1<<31))
  1430. #define CCM_ANALOG_PLL_SYS_BYPASS ((uint32_t)(1<<16))
  1431. #define CCM_ANALOG_PLL_SYS_ENABLE ((uint32_t)(1<<13))
  1432. #define CCM_ANALOG_PLL_SYS_POWERDOWN ((uint32_t)(1<<12))
  1433. #define CCM_ANALOG_PLL_SYS_DIV_SELECT ((uint32_t)(1<<1))
  1434. // 19.7: page 810
  1435. #define IMXRT_CSI (*(IMXRT_REGISTER32_t *)0x402BC000)
  1436. #define CSI_CSICR1 (IMXRT_CSI.offset000)
  1437. #define CSI_CSICR2 (IMXRT_CSI.offset004)
  1438. #define CSI_CSICR3 (IMXRT_CSI.offset008)
  1439. #define CSI_CSISTATFIFO (IMXRT_CSI.offset00C)
  1440. #define CSI_CSIRFIFO (IMXRT_CSI.offset010)
  1441. #define CSI_CSIRXCNT (IMXRT_CSI.offset014)
  1442. #define CSI_CSISR (IMXRT_CSI.offset018)
  1443. #define CSI_CSIDMASA_STATFIFO (IMXRT_CSI.offset020)
  1444. #define CSI_CSIDMATS_STATFIFO (IMXRT_CSI.offset024)
  1445. #define CSI_CSIDMASA_FB1 (IMXRT_CSI.offset028)
  1446. #define CSI_CSIDMASA_FB2 (IMXRT_CSI.offset02C)
  1447. #define CSI_CSIFBUF_PARA (IMXRT_CSI.offset030)
  1448. #define CSI_CSIIMAG_PARA (IMXRT_CSI.offset034)
  1449. #define CSI_CSICR18 (IMXRT_CSI.offset048)
  1450. #define CSI_CSICR19 (IMXRT_CSI.offset04C)
  1451. // 20.6.1.1: page 837
  1452. #define IMXRT_DCDC (*(IMXRT_REGISTER32_t *)0x40080000)
  1453. #define DCDC_REG0 (IMXRT_DCDC.offset000)
  1454. #define DCDC_REG1 (IMXRT_DCDC.offset004)
  1455. #define DCDC_REG2 (IMXRT_DCDC.offset008)
  1456. #define DCDC_REG3 (IMXRT_DCDC.offset00C)
  1457. #define DCDC_REG0_STS_DC_OK ((uint32_t)(1<<31))
  1458. #define DCDC_REG0_XTAL_24M_OK ((uint32_t)(1<<29))
  1459. #define DCDC_REG0_CURRENT_ALERT_RESET ((uint32_t)(1<<28))
  1460. #define DCDC_REG0_XTALOK_DISABLE ((uint32_t)(1<<27))
  1461. #define DCDC_REG0_PWD_CMP_OFFSET ((uint32_t)(1<<26))
  1462. #define DCDC_REG0_LP_HIGH_HYS ((uint32_t)(1<<21))
  1463. #define DCDC_REG0_LP_OVERLOAD_FREQ_SEL ((uint32_t)(1<<20))
  1464. #define DCDC_REG0_LP_OVERLOAD_THRSH(n) ((uint32_t)(((n) & 0x03) << 18))
  1465. #define DCDC_REG0_PWD_HIGH_VOLT_DET ((uint32_t)(1<<17))
  1466. #define DCDC_REG0_EN_LP_OVERLOAD_SNS ((uint32_t)(1<<16))
  1467. #define DCDC_REG0_ADJ_POSLIMIT_BUCK(n) ((uint32_t)(((n) & 0x0F) << 12))
  1468. #define DCDC_REG0_PWD_CMP_BATT_DET ((uint32_t)(1<<11))
  1469. #define DCDC_REG0_OVERCUR_TRIG_ADJ(n) ((uint32_t)(((n) & 0x03) << 9))
  1470. #define DCDC_REG0_PWD_OVERCUR_DET ((uint32_t)(1<<8))
  1471. #define DCDC_REG0_CUR_SNS_THRSH(n) ((uint32_t)(((n) & 0x07) << 5))
  1472. #define DCDC_REG0_PWD_CUR_SNS_CMP ((uint32_t)(1<<4))
  1473. #define DCDC_REG0_PWD_OSC_INT ((uint32_t)(1<<3))
  1474. #define DCDC_REG0_SEL_CLK ((uint32_t)(1<<2))
  1475. #define DCDC_REG0_DISABLE_AUTO_CLK_SWITCH ((uint32_t)(1<<1))
  1476. #define DCDC_REG0_PWD_ZCD ((uint32_t)(1<<0))
  1477. #define DCDC_REG1_VBG_TRIM(n) ((uint32_t)(((n) & 0x1F) << 24))
  1478. #define DCDC_REG1_LOOPCTRL_EN_HYST ((uint32_t)(1<<23))
  1479. #define DCDC_REG1_LOOPCTRL_HST_THRESH ((uint32_t)(1<<21))
  1480. #define DCDC_REG1_LP_CMP_ISRC_SEL(n) ((uint32_t)(((n) & 0x03) << 12))
  1481. #define DCDC_REG1_REG_RLOAD_SW ((uint32_t)(1<<9))
  1482. #define DCDC_REG1_REG_FBK_SEL(n) ((uint32_t)(((n) & 0x03) << 7))
  1483. #define DCDC_REG2_DCM_SET_CTRL ((uint32_t)(1<<28))
  1484. #define DCDC_REG2_DISABLE_PULSE_SKIP ((uint32_t)(1<<27))
  1485. #define DCDC_REG2_LOOPCTRL_HYST_SIGN ((uint32_t)(1<<13))
  1486. #define DCDC_REG2_LOOPCTRL_RCSCALE_THRSH ((uint32_t)(1<<12))
  1487. #define DCDC_REG2_LOOPCTRL_EN_RCSCALE ((uint32_t)(((n) & 0x07) << 9))
  1488. #define DCDC_REG2_LOOPCTRL_DC_FF ((uint32_t)(((n) & 0x07) << 6))
  1489. #define DCDC_REG2_LOOPCTRL_DC_R ((uint32_t)(((n) & 0x0F) << 2))
  1490. #define DCDC_REG2_LOOPCTRL_DC_C ((uint32_t)(((n) & 0x03) << 0))
  1491. #define DCDC_REG3_DISABLE_STEP ((uint32_t)(1<<30))
  1492. #define DCDC_REG3_MISC_DISABLEFET_LOGIC ((uint32_t)(1<<28))
  1493. #define DCDC_REG3_MISC_DELAY_TIMING ((uint32_t)(1<<27))
  1494. #define DCDC_REG3_MINPWR_DC_HALFCLK ((uint32_t)(1<<24))
  1495. #define DCDC_REG3_TARGET_LP(n) ((uint32_t)(((n) & 0x07) << 8))
  1496. #define DCDC_REG3_TRG(n) ((uint32_t)(((n) & 0x1F) << 0))
  1497. #define DCDC_REG3_TRG_MASK ((uint32_t)(0x1F << 0))
  1498. // 21.4.1.1: page 849
  1499. #define IMXRT_DMAMUX (*(IMXRT_REGISTER32_t *)0x400EC000)
  1500. #define DMAMUX_CHCFG0 (IMXRT_DMAMUX.offset000)
  1501. #define DMAMUX_CHCFG1 (IMXRT_DMAMUX.offset004)
  1502. #define DMAMUX_CHCFG2 (IMXRT_DMAMUX.offset008)
  1503. #define DMAMUX_CHCFG3 (IMXRT_DMAMUX.offset00C)
  1504. #define DMAMUX_CHCFG4 (IMXRT_DMAMUX.offset010)
  1505. #define DMAMUX_CHCFG5 (IMXRT_DMAMUX.offset014)
  1506. #define DMAMUX_CHCFG6 (IMXRT_DMAMUX.offset018)
  1507. #define DMAMUX_CHCFG7 (IMXRT_DMAMUX.offset01C)
  1508. #define DMAMUX_CHCFG8 (IMXRT_DMAMUX.offset020)
  1509. #define DMAMUX_CHCFG9 (IMXRT_DMAMUX.offset024)
  1510. #define DMAMUX_CHCFG10 (IMXRT_DMAMUX.offset028)
  1511. #define DMAMUX_CHCFG11 (IMXRT_DMAMUX.offset02C)
  1512. #define DMAMUX_CHCFG12 (IMXRT_DMAMUX.offset030)
  1513. #define DMAMUX_CHCFG13 (IMXRT_DMAMUX.offset034)
  1514. #define DMAMUX_CHCFG14 (IMXRT_DMAMUX.offset038)
  1515. #define DMAMUX_CHCFG15 (IMXRT_DMAMUX.offset03C)
  1516. #define DMAMUX_CHCFG16 (IMXRT_DMAMUX.offset040)
  1517. #define DMAMUX_CHCFG17 (IMXRT_DMAMUX.offset044)
  1518. #define DMAMUX_CHCFG18 (IMXRT_DMAMUX.offset048)
  1519. #define DMAMUX_CHCFG19 (IMXRT_DMAMUX.offset04C)
  1520. #define DMAMUX_CHCFG20 (IMXRT_DMAMUX.offset050)
  1521. #define DMAMUX_CHCFG21 (IMXRT_DMAMUX.offset054)
  1522. #define DMAMUX_CHCFG22 (IMXRT_DMAMUX.offset058)
  1523. #define DMAMUX_CHCFG23 (IMXRT_DMAMUX.offset05C)
  1524. #define DMAMUX_CHCFG24 (IMXRT_DMAMUX.offset060)
  1525. #define DMAMUX_CHCFG25 (IMXRT_DMAMUX.offset064)
  1526. #define DMAMUX_CHCFG26 (IMXRT_DMAMUX.offset068)
  1527. #define DMAMUX_CHCFG27 (IMXRT_DMAMUX.offset06C)
  1528. #define DMAMUX_CHCFG28 (IMXRT_DMAMUX.offset070)
  1529. #define DMAMUX_CHCFG29 (IMXRT_DMAMUX.offset074)
  1530. #define DMAMUX_CHCFG30 (IMXRT_DMAMUX.offset078)
  1531. #define DMAMUX_CHCFG31 (IMXRT_DMAMUX.offset07C)
  1532. #define DMAMUX_CHCFG_ENBL ((uint32_t)(1<<31))
  1533. #define DMAMUX_CHCFG_TRIG ((uint32_t)(1<<30))
  1534. #define DMAMUX_CHCFG_A_ON ((uint32_t)(1<<29))
  1535. // 22.3.5.1: page 864
  1536. typedef struct {
  1537. volatile uint32_t CR; // 0
  1538. volatile uint32_t ES; // 4
  1539. uint32_t unused1; // 8
  1540. volatile uint32_t ERQ; // C
  1541. uint32_t unused2; // 10
  1542. volatile uint32_t EEI; // 14
  1543. volatile uint8_t CEEI; // 18
  1544. volatile uint8_t SEEI; // 19
  1545. volatile uint8_t CERQ; // 1A
  1546. volatile uint8_t SERQ; // 1B
  1547. volatile uint8_t CDNE; // 1C
  1548. volatile uint8_t SSRT; // 1D
  1549. volatile uint8_t CERR; // 1E
  1550. volatile uint8_t CINT; // 1F
  1551. uint32_t unused3; // 20
  1552. volatile uint32_t INT; // 24
  1553. uint32_t unused4; // 28
  1554. volatile uint32_t ERR; // 2C
  1555. uint32_t unused5; // 30
  1556. volatile uint32_t HRS; // 34
  1557. uint32_t unused6; // 38
  1558. uint32_t unused7; // 3C
  1559. uint32_t unused8; // 40
  1560. volatile uint32_t EARS; // 44
  1561. uint32_t unused[46];
  1562. volatile uint8_t DCHPRI3;
  1563. volatile uint8_t DCHPRI2;
  1564. volatile uint8_t DCHPRI1;
  1565. volatile uint8_t DCHPRI0;
  1566. volatile uint8_t DCHPRI7;
  1567. volatile uint8_t DCHPRI6;
  1568. volatile uint8_t DCHPRI5;
  1569. volatile uint8_t DCHPRI4;
  1570. volatile uint8_t DCHPRI11;
  1571. volatile uint8_t DCHPRI10;
  1572. volatile uint8_t DCHPRI9;
  1573. volatile uint8_t DCHPRI8;
  1574. volatile uint8_t DCHPRI15;
  1575. volatile uint8_t DCHPRI14;
  1576. volatile uint8_t DCHPRI13;
  1577. volatile uint8_t DCHPRI12;
  1578. volatile uint8_t DCHPRI19;
  1579. volatile uint8_t DCHPRI18;
  1580. volatile uint8_t DCHPRI17;
  1581. volatile uint8_t DCHPRI16;
  1582. volatile uint8_t DCHPRI23;
  1583. volatile uint8_t DCHPRI22;
  1584. volatile uint8_t DCHPRI21;
  1585. volatile uint8_t DCHPRI20;
  1586. volatile uint8_t DCHPRI27;
  1587. volatile uint8_t DCHPRI26;
  1588. volatile uint8_t DCHPRI25;
  1589. volatile uint8_t DCHPRI24;
  1590. volatile uint8_t DCHPRI31;
  1591. volatile uint8_t DCHPRI30;
  1592. volatile uint8_t DCHPRI29;
  1593. volatile uint8_t DCHPRI28;
  1594. } IMXRT_DMA_t;
  1595. typedef struct {
  1596. volatile const void * volatile SADDR;
  1597. int16_t SOFF;
  1598. union {
  1599. uint16_t ATTR;
  1600. struct {
  1601. uint8_t ATTR_DST;
  1602. uint8_t ATTR_SRC;
  1603. };
  1604. };
  1605. union {
  1606. uint32_t NBYTES;
  1607. uint32_t NBYTES_MLNO;
  1608. uint32_t NBYTES_MLOFFNO;
  1609. uint32_t NBYTES_MLOFFYES;
  1610. };
  1611. int32_t SLAST;
  1612. volatile void * volatile DADDR;
  1613. int16_t DOFF;
  1614. union {
  1615. volatile uint16_t CITER;
  1616. volatile uint16_t CITER_ELINKYES;
  1617. volatile uint16_t CITER_ELINKNO;
  1618. };
  1619. int32_t DLASTSGA;
  1620. volatile uint16_t CSR;
  1621. union {
  1622. volatile uint16_t BITER;
  1623. volatile uint16_t BITER_ELINKYES;
  1624. volatile uint16_t BITER_ELINKNO;
  1625. };
  1626. } IMXRT_DMA_TCD_t;
  1627. #define IMXRT_DMA (*(IMXRT_DMA_t *)0x400E8000)
  1628. #define DMA_CR (IMXRT_DMA.CR)
  1629. #define DMA_ES (IMXRT_DMA.ES)
  1630. #define DMA_ERQ (IMXRT_DMA.ERQ)
  1631. #define DMA_EEI (IMXRT_DMA.EEI)
  1632. #define DMA_CEEI (IMXRT_DMA.CEEI)
  1633. #define DMA_SEEI (IMXRT_DMA.SEEI)
  1634. #define DMA_CERQ (IMXRT_DMA.CERQ)
  1635. #define DMA_SERQ (IMXRT_DMA.SERQ)
  1636. #define DMA_CDNE (IMXRT_DMA.CDNE)
  1637. #define DMA_SSRT (IMXRT_DMA.SSRT)
  1638. #define DMA_CERR (IMXRT_DMA.CERR)
  1639. #define DMA_CINT (IMXRT_DMA.CINT)
  1640. #define DMA_INT (IMXRT_DMA.INT)
  1641. #define DMA_ERR (IMXRT_DMA.ERR)
  1642. #define DMA_HRS (IMXRT_DMA.HRS)
  1643. #define DMA_EARS (IMXRT_DMA.EARS)
  1644. #define DMA_DCHPRI3 (IMXRT_DMA.DCHPRI3)
  1645. #define DMA_DCHPRI2 (IMXRT_DMA.DCHPRI2)
  1646. #define DMA_DCHPRI1 (IMXRT_DMA.DCHPRI1)
  1647. #define DMA_DCHPRI0 (IMXRT_DMA.DCHPRI0)
  1648. #define DMA_DCHPRI7 (IMXRT_DMA.DCHPRI7)
  1649. #define DMA_DCHPRI6 (IMXRT_DMA.DCHPRI6)
  1650. #define DMA_DCHPRI5 (IMXRT_DMA.DCHPRI5)
  1651. #define DMA_DCHPRI4 (IMXRT_DMA.DCHPRI4)
  1652. #define DMA_DCHPRI11 (IMXRT_DMA.DCHPRI11)
  1653. #define DMA_DCHPRI10 (IMXRT_DMA.DCHPRI10)
  1654. #define DMA_DCHPRI9 (IMXRT_DMA.DCHPRI9)
  1655. #define DMA_DCHPRI8 (IMXRT_DMA.DCHPRI8)
  1656. #define DMA_DCHPRI15 (IMXRT_DMA.DCHPRI15)
  1657. #define DMA_DCHPRI14 (IMXRT_DMA.DCHPRI14)
  1658. #define DMA_DCHPRI13 (IMXRT_DMA.DCHPRI13)
  1659. #define DMA_DCHPRI12 (IMXRT_DMA.DCHPRI12)
  1660. #define DMA_DCHPRI19 (IMXRT_DMA.DCHPRI19)
  1661. #define DMA_DCHPRI18 (IMXRT_DMA.DCHPRI18)
  1662. #define DMA_DCHPRI17 (IMXRT_DMA.DCHPRI17)
  1663. #define DMA_DCHPRI16 (IMXRT_DMA.DCHPRI16)
  1664. #define DMA_DCHPRI23 (IMXRT_DMA.DCHPRI23)
  1665. #define DMA_DCHPRI22 (IMXRT_DMA.DCHPRI22)
  1666. #define DMA_DCHPRI21 (IMXRT_DMA.DCHPRI21)
  1667. #define DMA_DCHPRI20 (IMXRT_DMA.DCHPRI20)
  1668. #define DMA_DCHPRI27 (IMXRT_DMA.DCHPRI27)
  1669. #define DMA_DCHPRI26 (IMXRT_DMA.DCHPRI26)
  1670. #define DMA_DCHPRI25 (IMXRT_DMA.DCHPRI25)
  1671. #define DMA_DCHPRI24 (IMXRT_DMA.DCHPRI24)
  1672. #define DMA_DCHPRI31 (IMXRT_DMA.DCHPRI31)
  1673. #define DMA_DCHPRI30 (IMXRT_DMA.DCHPRI30)
  1674. #define DMA_DCHPRI29 (IMXRT_DMA.DCHPRI29)
  1675. #define DMA_DCHPRI28 (IMXRT_DMA.DCHPRI28)
  1676. #define DMA_CR_ACTIVE ((uint32_t)(1<<31)) // 1=DMA is executing
  1677. #define DMA_CR_CX ((uint32_t)(1<<17)) // Cancel Transfer
  1678. #define DMA_CR_ECX ((uint32_t)(1<<16)) // Error Cancel Transfer
  1679. #define DMA_CR_GRP1PRI ((uint32_t)(1<<10))
  1680. #define DMA_CR_GRP0PRI ((uint32_t)(1<<8))
  1681. #define DMA_CR_EMLM ((uint32_t)(1<<7)) // Enable Minor Loop Mapping
  1682. #define DMA_CR_CLM ((uint32_t)(1<<6)) // Continuous Link Mode
  1683. #define DMA_CR_HALT ((uint32_t)(1<<5)) // Halt DMA Operations
  1684. #define DMA_CR_HOE ((uint32_t)(1<<4)) // Halt On Error
  1685. #define DMA_CR_ERGA ((uint32_t)(1<<3)) // Enable Round Robin Group Arb
  1686. #define DMA_CR_ERCA ((uint32_t)(1<<2)) // Enable Round Robin Channel Arb
  1687. #define DMA_CR_EDBG ((uint32_t)(1<<1)) // Enable Debug
  1688. #define DMA_CEEI_CEEI(n) ((uint8_t)(n & 0x1F)) // Clear Enable Error Interrupt
  1689. #define DMA_CEEI_CAEE ((uint8_t)1<<6) // Clear All Enable Error Interrupts
  1690. #define DMA_CEEI_NOP ((uint8_t)1<<7) // NOP
  1691. #define DMA_SEEI_SEEI(n) ((uint8_t)(n & 0x1F)) // Set Enable Error Interrupt
  1692. #define DMA_SEEI_SAEE ((uint8_t)1<<6) // Set All Enable Error Interrupts
  1693. #define DMA_SEEI_NOP ((uint8_t)1<<7) // NOP
  1694. #define DMA_CERQ_CERQ(n) ((uint8_t)(n & 0x1F)) // Clear Enable Request
  1695. #define DMA_CERQ_CAER ((uint8_t)1<<6) // Clear All Enable Requests
  1696. #define DMA_CERQ_NOP ((uint8_t)1<<7) // NOP
  1697. #define DMA_SERQ_SERQ(n) ((uint8_t)(n & 0x1F)) // Set Enable Request
  1698. #define DMA_SERQ_SAER ((uint8_t)1<<6) // Set All Enable Requests
  1699. #define DMA_SERQ_NOP ((uint8_t)1<<7) // NOP
  1700. #define DMA_CDNE_CDNE(n) ((uint8_t)(n & 0x1F)) // Clear Done Bit
  1701. #define DMA_CDNE_CADN ((uint8_t)1<<6) // Clear All Done Bits
  1702. #define DMA_CDNE_NOP ((uint8_t)1<<7) // NOP
  1703. #define DMA_SSRT_SSRT(n) ((uint8_t)(n & 0x1F)) // Set Start Bit
  1704. #define DMA_SSRT_SAST ((uint8_t)1<<6) // Set All Start Bits
  1705. #define DMA_SSRT_NOP ((uint8_t)1<<7) // NOP
  1706. #define DMA_CERR_CERR(n) ((uint8_t)(n & 0x1F)) // Clear Error Indicator
  1707. #define DMA_CERR_CAEI ((uint8_t)1<<6) // Clear All Error Indicators
  1708. #define DMA_CERR_NOP ((uint8_t)1<<7) // NOP
  1709. #define DMA_CINT_CINT(n) ((uint8_t)(n & 0x1F)) // Clear Interrupt Request
  1710. #define DMA_CINT_CAIR ((uint8_t)1<<6) // Clear All Interrupt Requests
  1711. #define DMA_CINT_NOP ((uint8_t)1<<7) // NOP
  1712. #define IMXRT_DMA_TCD ((IMXRT_DMA_TCD_t *)0x400E9000)
  1713. #define DMA_TCD0_SADDR (IMXRT_DMA_TCD[0].SADDR)
  1714. #define DMA_TCD0_SOFF (IMXRT_DMA_TCD[0].SOFF)
  1715. #define DMA_TCD0_ATTR (IMXRT_DMA_TCD[0].ATTR)
  1716. #define DMA_TCD0_NBYTES (IMXRT_DMA_TCD[0].NBYTES)
  1717. #define DMA_TCD0_NBYTES_MLNO (IMXRT_DMA_TCD[0].NBYTES_MLNO)
  1718. #define DMA_TCD0_NBYTES_MLOFFNO (IMXRT_DMA_TCD[0].NBYTES_MLOFFNO)
  1719. #define DMA_TCD0_NBYTES_MLOFFYES (IMXRT_DMA_TCD[0].NBYTES_MLOFFYES)
  1720. #define DMA_TCD0_SLAST (IMXRT_DMA_TCD[0].SLAST)
  1721. #define DMA_TCD0_DADDR (IMXRT_DMA_TCD[0].DADDR)
  1722. #define DMA_TCD0_DOFF (IMXRT_DMA_TCD[0].DOFF)
  1723. #define DMA_TCD0_CITER (IMXRT_DMA_TCD[0].CITER)
  1724. #define DMA_TCD0_CITER_ELINKYES (IMXRT_DMA_TCD[0].CITER_ELINKYES)
  1725. #define DMA_TCD0_CITER_ELINKNO (IMXRT_DMA_TCD[0].CITER_ELINKNO)
  1726. #define DMA_TCD0_DLASTSGA (IMXRT_DMA_TCD[0].DLASTSGA)
  1727. #define DMA_TCD0_CSR (IMXRT_DMA_TCD[0].CSR)
  1728. #define DMA_TCD0_BITER (IMXRT_DMA_TCD[0].BITER)
  1729. #define DMA_TCD0_BITER_ELINKYES (IMXRT_DMA_TCD[0].BITER_ELINKYES)
  1730. #define DMA_TCD0_BITER_ELINKNO (IMXRT_DMA_TCD[0].BITER_ELINKNO)
  1731. #define DMA_TCD1_SADDR (IMXRT_DMA_TCD[1].SADDR)
  1732. #define DMA_TCD1_SOFF (IMXRT_DMA_TCD[1].SOFF)
  1733. #define DMA_TCD1_ATTR (IMXRT_DMA_TCD[1].ATTR)
  1734. #define DMA_TCD1_NBYTES (IMXRT_DMA_TCD[1].NBYTES)
  1735. #define DMA_TCD1_NBYTES_MLNO (IMXRT_DMA_TCD[1].NBYTES_MLNO)
  1736. #define DMA_TCD1_NBYTES_MLOFFNO (IMXRT_DMA_TCD[1].NBYTES_MLOFFNO)
  1737. #define DMA_TCD1_NBYTES_MLOFFYES (IMXRT_DMA_TCD[1].NBYTES_MLOFFYES)
  1738. #define DMA_TCD1_SLAST (IMXRT_DMA_TCD[1].SLAST)
  1739. #define DMA_TCD1_DADDR (IMXRT_DMA_TCD[1].DADDR)
  1740. #define DMA_TCD1_DOFF (IMXRT_DMA_TCD[1].DOFF)
  1741. #define DMA_TCD1_CITER (IMXRT_DMA_TCD[1].CITER)
  1742. #define DMA_TCD1_CITER_ELINKYES (IMXRT_DMA_TCD[1].CITER_ELINKYES)
  1743. #define DMA_TCD1_CITER_ELINKNO (IMXRT_DMA_TCD[1].CITER_ELINKNO)
  1744. #define DMA_TCD1_DLASTSGA (IMXRT_DMA_TCD[1].DLASTSGA)
  1745. #define DMA_TCD1_CSR (IMXRT_DMA_TCD[1].CSR)
  1746. #define DMA_TCD1_BITER (IMXRT_DMA_TCD[1].BITER)
  1747. #define DMA_TCD1_BITER_ELINKYES (IMXRT_DMA_TCD[1].BITER_ELINKYES)
  1748. #define DMA_TCD1_BITER_ELINKNO (IMXRT_DMA_TCD[1].BITER_ELINKNO)
  1749. #define DMA_TCD2_SADDR (IMXRT_DMA_TCD[2].SADDR)
  1750. #define DMA_TCD2_SOFF (IMXRT_DMA_TCD[2].SOFF)
  1751. #define DMA_TCD2_ATTR (IMXRT_DMA_TCD[2].ATTR)
  1752. #define DMA_TCD2_NBYTES (IMXRT_DMA_TCD[2].NBYTES)
  1753. #define DMA_TCD2_NBYTES_MLNO (IMXRT_DMA_TCD[2].NBYTES_MLNO)
  1754. #define DMA_TCD2_NBYTES_MLOFFNO (IMXRT_DMA_TCD[2].NBYTES_MLOFFNO)
  1755. #define DMA_TCD2_NBYTES_MLOFFYES (IMXRT_DMA_TCD[2].NBYTES_MLOFFYES)
  1756. #define DMA_TCD2_SLAST (IMXRT_DMA_TCD[2].SLAST)
  1757. #define DMA_TCD2_DADDR (IMXRT_DMA_TCD[2].DADDR)
  1758. #define DMA_TCD2_DOFF (IMXRT_DMA_TCD[2].DOFF)
  1759. #define DMA_TCD2_CITER (IMXRT_DMA_TCD[2].CITER)
  1760. #define DMA_TCD2_CITER_ELINKYES (IMXRT_DMA_TCD[2].CITER_ELINKYES)
  1761. #define DMA_TCD2_CITER_ELINKNO (IMXRT_DMA_TCD[2].CITER_ELINKNO)
  1762. #define DMA_TCD2_DLASTSGA (IMXRT_DMA_TCD[2].DLASTSGA)
  1763. #define DMA_TCD2_CSR (IMXRT_DMA_TCD[2].CSR)
  1764. #define DMA_TCD2_BITER (IMXRT_DMA_TCD[2].BITER)
  1765. #define DMA_TCD2_BITER_ELINKYES (IMXRT_DMA_TCD[2].BITER_ELINKYES)
  1766. #define DMA_TCD2_BITER_ELINKNO (IMXRT_DMA_TCD[2].BITER_ELINKNO)
  1767. #define DMA_TCD3_SADDR (IMXRT_DMA_TCD[3].SADDR)
  1768. #define DMA_TCD3_SOFF (IMXRT_DMA_TCD[3].SOFF)
  1769. #define DMA_TCD3_ATTR (IMXRT_DMA_TCD[3].ATTR)
  1770. #define DMA_TCD3_NBYTES (IMXRT_DMA_TCD[3].NBYTES)
  1771. #define DMA_TCD3_NBYTES_MLNO (IMXRT_DMA_TCD[3].NBYTES_MLNO)
  1772. #define DMA_TCD3_NBYTES_MLOFFNO (IMXRT_DMA_TCD[3].NBYTES_MLOFFNO)
  1773. #define DMA_TCD3_NBYTES_MLOFFYES (IMXRT_DMA_TCD[3].NBYTES_MLOFFYES)
  1774. #define DMA_TCD3_SLAST (IMXRT_DMA_TCD[3].SLAST)
  1775. #define DMA_TCD3_DADDR (IMXRT_DMA_TCD[3].DADDR)
  1776. #define DMA_TCD3_DOFF (IMXRT_DMA_TCD[3].DOFF)
  1777. #define DMA_TCD3_CITER (IMXRT_DMA_TCD[3].CITER)
  1778. #define DMA_TCD3_CITER_ELINKYES (IMXRT_DMA_TCD[3].CITER_ELINKYES)
  1779. #define DMA_TCD3_CITER_ELINKNO (IMXRT_DMA_TCD[3].CITER_ELINKNO)
  1780. #define DMA_TCD3_DLASTSGA (IMXRT_DMA_TCD[3].DLASTSGA)
  1781. #define DMA_TCD3_CSR (IMXRT_DMA_TCD[3].CSR)
  1782. #define DMA_TCD3_BITER (IMXRT_DMA_TCD[3].BITER)
  1783. #define DMA_TCD3_BITER_ELINKYES (IMXRT_DMA_TCD[3].BITER_ELINKYES)
  1784. #define DMA_TCD3_BITER_ELINKNO (IMXRT_DMA_TCD[3].BITER_ELINKNO)
  1785. #define DMA_TCD4_SADDR (IMXRT_DMA_TCD[4].SADDR)
  1786. #define DMA_TCD4_SOFF (IMXRT_DMA_TCD[4].SOFF)
  1787. #define DMA_TCD4_ATTR (IMXRT_DMA_TCD[4].ATTR)
  1788. #define DMA_TCD4_NBYTES (IMXRT_DMA_TCD[4].NBYTES)
  1789. #define DMA_TCD4_NBYTES_MLNO (IMXRT_DMA_TCD[4].NBYTES_MLNO)
  1790. #define DMA_TCD4_NBYTES_MLOFFNO (IMXRT_DMA_TCD[4].NBYTES_MLOFFNO)
  1791. #define DMA_TCD4_NBYTES_MLOFFYES (IMXRT_DMA_TCD[4].NBYTES_MLOFFYES)
  1792. #define DMA_TCD4_SLAST (IMXRT_DMA_TCD[4].SLAST)
  1793. #define DMA_TCD4_DADDR (IMXRT_DMA_TCD[4].DADDR)
  1794. #define DMA_TCD4_DOFF (IMXRT_DMA_TCD[4].DOFF)
  1795. #define DMA_TCD4_CITER (IMXRT_DMA_TCD[4].CITER)
  1796. #define DMA_TCD4_CITER_ELINKYES (IMXRT_DMA_TCD[4].CITER_ELINKYES)
  1797. #define DMA_TCD4_CITER_ELINKNO (IMXRT_DMA_TCD[4].CITER_ELINKNO)
  1798. #define DMA_TCD4_DLASTSGA (IMXRT_DMA_TCD[4].DLASTSGA)
  1799. #define DMA_TCD4_CSR (IMXRT_DMA_TCD[4].CSR)
  1800. #define DMA_TCD4_BITER (IMXRT_DMA_TCD[4].BITER)
  1801. #define DMA_TCD4_BITER_ELINKYES (IMXRT_DMA_TCD[4].BITER_ELINKYES)
  1802. #define DMA_TCD4_BITER_ELINKNO (IMXRT_DMA_TCD[4].BITER_ELINKNO)
  1803. #define DMA_TCD5_SADDR (IMXRT_DMA_TCD[5].SADDR)
  1804. #define DMA_TCD5_SOFF (IMXRT_DMA_TCD[5].SOFF)
  1805. #define DMA_TCD5_ATTR (IMXRT_DMA_TCD[5].ATTR)
  1806. #define DMA_TCD5_NBYTES (IMXRT_DMA_TCD[5].NBYTES)
  1807. #define DMA_TCD5_NBYTES_MLNO (IMXRT_DMA_TCD[5].NBYTES_MLNO)
  1808. #define DMA_TCD5_NBYTES_MLOFFNO (IMXRT_DMA_TCD[5].NBYTES_MLOFFNO)
  1809. #define DMA_TCD5_NBYTES_MLOFFYES (IMXRT_DMA_TCD[5].NBYTES_MLOFFYES)
  1810. #define DMA_TCD5_SLAST (IMXRT_DMA_TCD[5].SLAST)
  1811. #define DMA_TCD5_DADDR (IMXRT_DMA_TCD[5].DADDR)
  1812. #define DMA_TCD5_DOFF (IMXRT_DMA_TCD[5].DOFF)
  1813. #define DMA_TCD5_CITER (IMXRT_DMA_TCD[5].CITER)
  1814. #define DMA_TCD5_CITER_ELINKYES (IMXRT_DMA_TCD[5].CITER_ELINKYES)
  1815. #define DMA_TCD5_CITER_ELINKNO (IMXRT_DMA_TCD[5].CITER_ELINKNO)
  1816. #define DMA_TCD5_DLASTSGA (IMXRT_DMA_TCD[5].DLASTSGA)
  1817. #define DMA_TCD5_CSR (IMXRT_DMA_TCD[5].CSR)
  1818. #define DMA_TCD5_BITER (IMXRT_DMA_TCD[5].BITER)
  1819. #define DMA_TCD5_BITER_ELINKYES (IMXRT_DMA_TCD[5].BITER_ELINKYES)
  1820. #define DMA_TCD5_BITER_ELINKNO (IMXRT_DMA_TCD[5].BITER_ELINKNO)
  1821. #define DMA_TCD6_SADDR (IMXRT_DMA_TCD[6].SADDR)
  1822. #define DMA_TCD6_SOFF (IMXRT_DMA_TCD[6].SOFF)
  1823. #define DMA_TCD6_ATTR (IMXRT_DMA_TCD[6].ATTR)
  1824. #define DMA_TCD6_NBYTES (IMXRT_DMA_TCD[6].NBYTES)
  1825. #define DMA_TCD6_NBYTES_MLNO (IMXRT_DMA_TCD[6].NBYTES_MLNO)
  1826. #define DMA_TCD6_NBYTES_MLOFFNO (IMXRT_DMA_TCD[6].NBYTES_MLOFFNO)
  1827. #define DMA_TCD6_NBYTES_MLOFFYES (IMXRT_DMA_TCD[6].NBYTES_MLOFFYES)
  1828. #define DMA_TCD6_SLAST (IMXRT_DMA_TCD[6].SLAST)
  1829. #define DMA_TCD6_DADDR (IMXRT_DMA_TCD[6].DADDR)
  1830. #define DMA_TCD6_DOFF (IMXRT_DMA_TCD[6].DOFF)
  1831. #define DMA_TCD6_CITER (IMXRT_DMA_TCD[6].CITER)
  1832. #define DMA_TCD6_CITER_ELINKYES (IMXRT_DMA_TCD[6].CITER_ELINKYES)
  1833. #define DMA_TCD6_CITER_ELINKNO (IMXRT_DMA_TCD[6].CITER_ELINKNO)
  1834. #define DMA_TCD6_DLASTSGA (IMXRT_DMA_TCD[6].DLASTSGA)
  1835. #define DMA_TCD6_CSR (IMXRT_DMA_TCD[6].CSR)
  1836. #define DMA_TCD6_BITER (IMXRT_DMA_TCD[6].BITER)
  1837. #define DMA_TCD6_BITER_ELINKYES (IMXRT_DMA_TCD[6].BITER_ELINKYES)
  1838. #define DMA_TCD6_BITER_ELINKNO (IMXRT_DMA_TCD[6].BITER_ELINKNO)
  1839. #define DMA_TCD7_SADDR (IMXRT_DMA_TCD[7].SADDR)
  1840. #define DMA_TCD7_SOFF (IMXRT_DMA_TCD[7].SOFF)
  1841. #define DMA_TCD7_ATTR (IMXRT_DMA_TCD[7].ATTR)
  1842. #define DMA_TCD7_NBYTES (IMXRT_DMA_TCD[7].NBYTES)
  1843. #define DMA_TCD7_NBYTES_MLNO (IMXRT_DMA_TCD[7].NBYTES_MLNO)
  1844. #define DMA_TCD7_NBYTES_MLOFFNO (IMXRT_DMA_TCD[7].NBYTES_MLOFFNO)
  1845. #define DMA_TCD7_NBYTES_MLOFFYES (IMXRT_DMA_TCD[7].NBYTES_MLOFFYES)
  1846. #define DMA_TCD7_SLAST (IMXRT_DMA_TCD[7].SLAST)
  1847. #define DMA_TCD7_DADDR (IMXRT_DMA_TCD[7].DADDR)
  1848. #define DMA_TCD7_DOFF (IMXRT_DMA_TCD[7].DOFF)
  1849. #define DMA_TCD7_CITER (IMXRT_DMA_TCD[7].CITER)
  1850. #define DMA_TCD7_CITER_ELINKYES (IMXRT_DMA_TCD[7].CITER_ELINKYES)
  1851. #define DMA_TCD7_CITER_ELINKNO (IMXRT_DMA_TCD[7].CITER_ELINKNO)
  1852. #define DMA_TCD7_DLASTSGA (IMXRT_DMA_TCD[7].DLASTSGA)
  1853. #define DMA_TCD7_CSR (IMXRT_DMA_TCD[7].CSR)
  1854. #define DMA_TCD7_BITER (IMXRT_DMA_TCD[7].BITER)
  1855. #define DMA_TCD7_BITER_ELINKYES (IMXRT_DMA_TCD[7].BITER_ELINKYES)
  1856. #define DMA_TCD7_BITER_ELINKNO (IMXRT_DMA_TCD[7].BITER_ELINKNO)
  1857. #define DMA_TCD8_SADDR (IMXRT_DMA_TCD[8].SADDR)
  1858. #define DMA_TCD8_SOFF (IMXRT_DMA_TCD[8].SOFF)
  1859. #define DMA_TCD8_ATTR (IMXRT_DMA_TCD[8].ATTR)
  1860. #define DMA_TCD8_NBYTES (IMXRT_DMA_TCD[8].NBYTES)
  1861. #define DMA_TCD8_NBYTES_MLNO (IMXRT_DMA_TCD[8].NBYTES_MLNO)
  1862. #define DMA_TCD8_NBYTES_MLOFFNO (IMXRT_DMA_TCD[8].NBYTES_MLOFFNO)
  1863. #define DMA_TCD8_NBYTES_MLOFFYES (IMXRT_DMA_TCD[8].NBYTES_MLOFFYES)
  1864. #define DMA_TCD8_SLAST (IMXRT_DMA_TCD[8].SLAST)
  1865. #define DMA_TCD8_DADDR (IMXRT_DMA_TCD[8].DADDR)
  1866. #define DMA_TCD8_DOFF (IMXRT_DMA_TCD[8].DOFF)
  1867. #define DMA_TCD8_CITER (IMXRT_DMA_TCD[8].CITER)
  1868. #define DMA_TCD8_CITER_ELINKYES (IMXRT_DMA_TCD[8].CITER_ELINKYES)
  1869. #define DMA_TCD8_CITER_ELINKNO (IMXRT_DMA_TCD[8].CITER_ELINKNO)
  1870. #define DMA_TCD8_DLASTSGA (IMXRT_DMA_TCD[8].DLASTSGA)
  1871. #define DMA_TCD8_CSR (IMXRT_DMA_TCD[8].CSR)
  1872. #define DMA_TCD8_BITER (IMXRT_DMA_TCD[8].BITER)
  1873. #define DMA_TCD8_BITER_ELINKYES (IMXRT_DMA_TCD[8].BITER_ELINKYES)
  1874. #define DMA_TCD8_BITER_ELINKNO (IMXRT_DMA_TCD[8].BITER_ELINKNO)
  1875. #define DMA_TCD9_SADDR (IMXRT_DMA_TCD[9].SADDR)
  1876. #define DMA_TCD9_SOFF (IMXRT_DMA_TCD[9].SOFF)
  1877. #define DMA_TCD9_ATTR (IMXRT_DMA_TCD[9].ATTR)
  1878. #define DMA_TCD9_NBYTES (IMXRT_DMA_TCD[9].NBYTES)
  1879. #define DMA_TCD9_NBYTES_MLNO (IMXRT_DMA_TCD[9].NBYTES_MLNO)
  1880. #define DMA_TCD9_NBYTES_MLOFFNO (IMXRT_DMA_TCD[9].NBYTES_MLOFFNO)
  1881. #define DMA_TCD9_NBYTES_MLOFFYES (IMXRT_DMA_TCD[9].NBYTES_MLOFFYES)
  1882. #define DMA_TCD9_SLAST (IMXRT_DMA_TCD[9].SLAST)
  1883. #define DMA_TCD9_DADDR (IMXRT_DMA_TCD[9].DADDR)
  1884. #define DMA_TCD9_DOFF (IMXRT_DMA_TCD[9].DOFF)
  1885. #define DMA_TCD9_CITER (IMXRT_DMA_TCD[9].CITER)
  1886. #define DMA_TCD9_CITER_ELINKYES (IMXRT_DMA_TCD[9].CITER_ELINKYES)
  1887. #define DMA_TCD9_CITER_ELINKNO (IMXRT_DMA_TCD[9].CITER_ELINKNO)
  1888. #define DMA_TCD9_DLASTSGA (IMXRT_DMA_TCD[9].DLASTSGA)
  1889. #define DMA_TCD9_CSR (IMXRT_DMA_TCD[9].CSR)
  1890. #define DMA_TCD9_BITER (IMXRT_DMA_TCD[9].BITER)
  1891. #define DMA_TCD9_BITER_ELINKYES (IMXRT_DMA_TCD[9].BITER_ELINKYES)
  1892. #define DMA_TCD9_BITER_ELINKNO (IMXRT_DMA_TCD[9].BITER_ELINKNO)
  1893. #define DMA_TCD10_SADDR (IMXRT_DMA_TCD[10].SADDR)
  1894. #define DMA_TCD10_SOFF (IMXRT_DMA_TCD[10].SOFF)
  1895. #define DMA_TCD10_ATTR (IMXRT_DMA_TCD[10].ATTR)
  1896. #define DMA_TCD10_NBYTES (IMXRT_DMA_TCD[10].NBYTES)
  1897. #define DMA_TCD10_NBYTES_MLNO (IMXRT_DMA_TCD[10].NBYTES_MLNO)
  1898. #define DMA_TCD10_NBYTES_MLOFFNO (IMXRT_DMA_TCD[10].NBYTES_MLOFFNO)
  1899. #define DMA_TCD10_NBYTES_MLOFFYES (IMXRT_DMA_TCD[10].NBYTES_MLOFFYES)
  1900. #define DMA_TCD10_SLAST (IMXRT_DMA_TCD[10].SLAST)
  1901. #define DMA_TCD10_DADDR (IMXRT_DMA_TCD[10].DADDR)
  1902. #define DMA_TCD10_DOFF (IMXRT_DMA_TCD[10].DOFF)
  1903. #define DMA_TCD10_CITER (IMXRT_DMA_TCD[10].CITER)
  1904. #define DMA_TCD10_CITER_ELINKYES (IMXRT_DMA_TCD[10].CITER_ELINKYES)
  1905. #define DMA_TCD10_CITER_ELINKNO (IMXRT_DMA_TCD[10].CITER_ELINKNO)
  1906. #define DMA_TCD10_DLASTSGA (IMXRT_DMA_TCD[10].DLASTSGA)
  1907. #define DMA_TCD10_CSR (IMXRT_DMA_TCD[10].CSR)
  1908. #define DMA_TCD10_BITER (IMXRT_DMA_TCD[10].BITER)
  1909. #define DMA_TCD10_BITER_ELINKYES (IMXRT_DMA_TCD[10].BITER_ELINKYES)
  1910. #define DMA_TCD10_BITER_ELINKNO (IMXRT_DMA_TCD[10].BITER_ELINKNO)
  1911. #define DMA_TCD11_SADDR (IMXRT_DMA_TCD[11].SADDR)
  1912. #define DMA_TCD11_SOFF (IMXRT_DMA_TCD[11].SOFF)
  1913. #define DMA_TCD11_ATTR (IMXRT_DMA_TCD[11].ATTR)
  1914. #define DMA_TCD11_NBYTES (IMXRT_DMA_TCD[11].NBYTES)
  1915. #define DMA_TCD11_NBYTES_MLNO (IMXRT_DMA_TCD[11].NBYTES_MLNO)
  1916. #define DMA_TCD11_NBYTES_MLOFFNO (IMXRT_DMA_TCD[11].NBYTES_MLOFFNO)
  1917. #define DMA_TCD11_NBYTES_MLOFFYES (IMXRT_DMA_TCD[11].NBYTES_MLOFFYES)
  1918. #define DMA_TCD11_SLAST (IMXRT_DMA_TCD[11].SLAST)
  1919. #define DMA_TCD11_DADDR (IMXRT_DMA_TCD[11].DADDR)
  1920. #define DMA_TCD11_DOFF (IMXRT_DMA_TCD[11].DOFF)
  1921. #define DMA_TCD11_CITER (IMXRT_DMA_TCD[11].CITER)
  1922. #define DMA_TCD11_CITER_ELINKYES (IMXRT_DMA_TCD[11].CITER_ELINKYES)
  1923. #define DMA_TCD11_CITER_ELINKNO (IMXRT_DMA_TCD[11].CITER_ELINKNO)
  1924. #define DMA_TCD11_DLASTSGA (IMXRT_DMA_TCD[11].DLASTSGA)
  1925. #define DMA_TCD11_CSR (IMXRT_DMA_TCD[11].CSR)
  1926. #define DMA_TCD11_BITER (IMXRT_DMA_TCD[11].BITER)
  1927. #define DMA_TCD11_BITER_ELINKYES (IMXRT_DMA_TCD[11].BITER_ELINKYES)
  1928. #define DMA_TCD11_BITER_ELINKNO (IMXRT_DMA_TCD[11].BITER_ELINKNO)
  1929. #define DMA_TCD12_SADDR (IMXRT_DMA_TCD[12].SADDR)
  1930. #define DMA_TCD12_SOFF (IMXRT_DMA_TCD[12].SOFF)
  1931. #define DMA_TCD12_ATTR (IMXRT_DMA_TCD[12].ATTR)
  1932. #define DMA_TCD12_NBYTES (IMXRT_DMA_TCD[12].NBYTES)
  1933. #define DMA_TCD12_NBYTES_MLNO (IMXRT_DMA_TCD[12].NBYTES_MLNO)
  1934. #define DMA_TCD12_NBYTES_MLOFFNO (IMXRT_DMA_TCD[12].NBYTES_MLOFFNO)
  1935. #define DMA_TCD12_NBYTES_MLOFFYES (IMXRT_DMA_TCD[12].NBYTES_MLOFFYES)
  1936. #define DMA_TCD12_SLAST (IMXRT_DMA_TCD[12].SLAST)
  1937. #define DMA_TCD12_DADDR (IMXRT_DMA_TCD[12].DADDR)
  1938. #define DMA_TCD12_DOFF (IMXRT_DMA_TCD[12].DOFF)
  1939. #define DMA_TCD12_CITER (IMXRT_DMA_TCD[12].CITER)
  1940. #define DMA_TCD12_CITER_ELINKYES (IMXRT_DMA_TCD[12].CITER_ELINKYES)
  1941. #define DMA_TCD12_CITER_ELINKNO (IMXRT_DMA_TCD[12].CITER_ELINKNO)
  1942. #define DMA_TCD12_DLASTSGA (IMXRT_DMA_TCD[12].DLASTSGA)
  1943. #define DMA_TCD12_CSR (IMXRT_DMA_TCD[12].CSR)
  1944. #define DMA_TCD12_BITER (IMXRT_DMA_TCD[12].BITER)
  1945. #define DMA_TCD12_BITER_ELINKYES (IMXRT_DMA_TCD[12].BITER_ELINKYES)
  1946. #define DMA_TCD12_BITER_ELINKNO (IMXRT_DMA_TCD[12].BITER_ELINKNO)
  1947. #define DMA_TCD13_SADDR (IMXRT_DMA_TCD[13].SADDR)
  1948. #define DMA_TCD13_SOFF (IMXRT_DMA_TCD[13].SOFF)
  1949. #define DMA_TCD13_ATTR (IMXRT_DMA_TCD[13].ATTR)
  1950. #define DMA_TCD13_NBYTES (IMXRT_DMA_TCD[13].NBYTES)
  1951. #define DMA_TCD13_NBYTES_MLNO (IMXRT_DMA_TCD[13].NBYTES_MLNO)
  1952. #define DMA_TCD13_NBYTES_MLOFFNO (IMXRT_DMA_TCD[13].NBYTES_MLOFFNO)
  1953. #define DMA_TCD13_NBYTES_MLOFFYES (IMXRT_DMA_TCD[13].NBYTES_MLOFFYES)
  1954. #define DMA_TCD13_SLAST (IMXRT_DMA_TCD[13].SLAST)
  1955. #define DMA_TCD13_DADDR (IMXRT_DMA_TCD[13].DADDR)
  1956. #define DMA_TCD13_DOFF (IMXRT_DMA_TCD[13].DOFF)
  1957. #define DMA_TCD13_CITER (IMXRT_DMA_TCD[13].CITER)
  1958. #define DMA_TCD13_CITER_ELINKYES (IMXRT_DMA_TCD[13].CITER_ELINKYES)
  1959. #define DMA_TCD13_CITER_ELINKNO (IMXRT_DMA_TCD[13].CITER_ELINKNO)
  1960. #define DMA_TCD13_DLASTSGA (IMXRT_DMA_TCD[13].DLASTSGA)
  1961. #define DMA_TCD13_CSR (IMXRT_DMA_TCD[13].CSR)
  1962. #define DMA_TCD13_BITER (IMXRT_DMA_TCD[13].BITER)
  1963. #define DMA_TCD13_BITER_ELINKYES (IMXRT_DMA_TCD[13].BITER_ELINKYES)
  1964. #define DMA_TCD13_BITER_ELINKNO (IMXRT_DMA_TCD[13].BITER_ELINKNO)
  1965. #define DMA_TCD14_SADDR (IMXRT_DMA_TCD[14].SADDR)
  1966. #define DMA_TCD14_SOFF (IMXRT_DMA_TCD[14].SOFF)
  1967. #define DMA_TCD14_ATTR (IMXRT_DMA_TCD[14].ATTR)
  1968. #define DMA_TCD14_NBYTES (IMXRT_DMA_TCD[14].NBYTES)
  1969. #define DMA_TCD14_NBYTES_MLNO (IMXRT_DMA_TCD[14].NBYTES_MLNO)
  1970. #define DMA_TCD14_NBYTES_MLOFFNO (IMXRT_DMA_TCD[14].NBYTES_MLOFFNO)
  1971. #define DMA_TCD14_NBYTES_MLOFFYES (IMXRT_DMA_TCD[14].NBYTES_MLOFFYES)
  1972. #define DMA_TCD14_SLAST (IMXRT_DMA_TCD[14].SLAST)
  1973. #define DMA_TCD14_DADDR (IMXRT_DMA_TCD[14].DADDR)
  1974. #define DMA_TCD14_DOFF (IMXRT_DMA_TCD[14].DOFF)
  1975. #define DMA_TCD14_CITER (IMXRT_DMA_TCD[14].CITER)
  1976. #define DMA_TCD14_CITER_ELINKYES (IMXRT_DMA_TCD[14].CITER_ELINKYES)
  1977. #define DMA_TCD14_CITER_ELINKNO (IMXRT_DMA_TCD[14].CITER_ELINKNO)
  1978. #define DMA_TCD14_DLASTSGA (IMXRT_DMA_TCD[14].DLASTSGA)
  1979. #define DMA_TCD14_CSR (IMXRT_DMA_TCD[14].CSR)
  1980. #define DMA_TCD14_BITER (IMXRT_DMA_TCD[14].BITER)
  1981. #define DMA_TCD14_BITER_ELINKYES (IMXRT_DMA_TCD[14].BITER_ELINKYES)
  1982. #define DMA_TCD14_BITER_ELINKNO (IMXRT_DMA_TCD[14].BITER_ELINKNO)
  1983. #define DMA_TCD15_SADDR (IMXRT_DMA_TCD[15].SADDR)
  1984. #define DMA_TCD15_SOFF (IMXRT_DMA_TCD[15].SOFF)
  1985. #define DMA_TCD15_ATTR (IMXRT_DMA_TCD[15].ATTR)
  1986. #define DMA_TCD15_NBYTES (IMXRT_DMA_TCD[15].NBYTES)
  1987. #define DMA_TCD15_NBYTES_MLNO (IMXRT_DMA_TCD[15].NBYTES_MLNO)
  1988. #define DMA_TCD15_NBYTES_MLOFFNO (IMXRT_DMA_TCD[15].NBYTES_MLOFFNO)
  1989. #define DMA_TCD15_NBYTES_MLOFFYES (IMXRT_DMA_TCD[15].NBYTES_MLOFFYES)
  1990. #define DMA_TCD15_SLAST (IMXRT_DMA_TCD[15].SLAST)
  1991. #define DMA_TCD15_DADDR (IMXRT_DMA_TCD[15].DADDR)
  1992. #define DMA_TCD15_DOFF (IMXRT_DMA_TCD[15].DOFF)
  1993. #define DMA_TCD15_CITER (IMXRT_DMA_TCD[15].CITER)
  1994. #define DMA_TCD15_CITER_ELINKYES (IMXRT_DMA_TCD[15].CITER_ELINKYES)
  1995. #define DMA_TCD15_CITER_ELINKNO (IMXRT_DMA_TCD[15].CITER_ELINKNO)
  1996. #define DMA_TCD15_DLASTSGA (IMXRT_DMA_TCD[15].DLASTSGA)
  1997. #define DMA_TCD15_CSR (IMXRT_DMA_TCD[15].CSR)
  1998. #define DMA_TCD15_BITER (IMXRT_DMA_TCD[15].BITER)
  1999. #define DMA_TCD15_BITER_ELINKYES (IMXRT_DMA_TCD[15].BITER_ELINKYES)
  2000. #define DMA_TCD15_BITER_ELINKNO (IMXRT_DMA_TCD[15].BITER_ELINKNO)
  2001. #define DMA_TCD16_SADDR (IMXRT_DMA_TCD[16].SADDR)
  2002. #define DMA_TCD16_SOFF (IMXRT_DMA_TCD[16].SOFF)
  2003. #define DMA_TCD16_ATTR (IMXRT_DMA_TCD[16].ATTR)
  2004. #define DMA_TCD16_NBYTES (IMXRT_DMA_TCD[16].NBYTES)
  2005. #define DMA_TCD16_NBYTES_MLNO (IMXRT_DMA_TCD[16].NBYTES_MLNO)
  2006. #define DMA_TCD16_NBYTES_MLOFFNO (IMXRT_DMA_TCD[16].NBYTES_MLOFFNO)
  2007. #define DMA_TCD16_NBYTES_MLOFFYES (IMXRT_DMA_TCD[16].NBYTES_MLOFFYES)
  2008. #define DMA_TCD16_SLAST (IMXRT_DMA_TCD[16].SLAST)
  2009. #define DMA_TCD16_DADDR (IMXRT_DMA_TCD[16].DADDR)
  2010. #define DMA_TCD16_DOFF (IMXRT_DMA_TCD[16].DOFF)
  2011. #define DMA_TCD16_CITER (IMXRT_DMA_TCD[16].CITER)
  2012. #define DMA_TCD16_CITER_ELINKYES (IMXRT_DMA_TCD[16].CITER_ELINKYES)
  2013. #define DMA_TCD16_CITER_ELINKNO (IMXRT_DMA_TCD[16].CITER_ELINKNO)
  2014. #define DMA_TCD16_DLASTSGA (IMXRT_DMA_TCD[16].DLASTSGA)
  2015. #define DMA_TCD16_CSR (IMXRT_DMA_TCD[16].CSR)
  2016. #define DMA_TCD16_BITER (IMXRT_DMA_TCD[16].BITER)
  2017. #define DMA_TCD16_BITER_ELINKYES (IMXRT_DMA_TCD[16].BITER_ELINKYES)
  2018. #define DMA_TCD16_BITER_ELINKNO (IMXRT_DMA_TCD[16].BITER_ELINKNO)
  2019. #define DMA_TCD17_SADDR (IMXRT_DMA_TCD[17].SADDR)
  2020. #define DMA_TCD17_SOFF (IMXRT_DMA_TCD[17].SOFF)
  2021. #define DMA_TCD17_ATTR (IMXRT_DMA_TCD[17].ATTR)
  2022. #define DMA_TCD17_NBYTES (IMXRT_DMA_TCD[17].NBYTES)
  2023. #define DMA_TCD17_NBYTES_MLNO (IMXRT_DMA_TCD[17].NBYTES_MLNO)
  2024. #define DMA_TCD17_NBYTES_MLOFFNO (IMXRT_DMA_TCD[17].NBYTES_MLOFFNO)
  2025. #define DMA_TCD17_NBYTES_MLOFFYES (IMXRT_DMA_TCD[17].NBYTES_MLOFFYES)
  2026. #define DMA_TCD17_SLAST (IMXRT_DMA_TCD[17].SLAST)
  2027. #define DMA_TCD17_DADDR (IMXRT_DMA_TCD[17].DADDR)
  2028. #define DMA_TCD17_DOFF (IMXRT_DMA_TCD[17].DOFF)
  2029. #define DMA_TCD17_CITER (IMXRT_DMA_TCD[17].CITER)
  2030. #define DMA_TCD17_CITER_ELINKYES (IMXRT_DMA_TCD[17].CITER_ELINKYES)
  2031. #define DMA_TCD17_CITER_ELINKNO (IMXRT_DMA_TCD[17].CITER_ELINKNO)
  2032. #define DMA_TCD17_DLASTSGA (IMXRT_DMA_TCD[17].DLASTSGA)
  2033. #define DMA_TCD17_CSR (IMXRT_DMA_TCD[17].CSR)
  2034. #define DMA_TCD17_BITER (IMXRT_DMA_TCD[17].BITER)
  2035. #define DMA_TCD17_BITER_ELINKYES (IMXRT_DMA_TCD[17].BITER_ELINKYES)
  2036. #define DMA_TCD17_BITER_ELINKNO (IMXRT_DMA_TCD[17].BITER_ELINKNO)
  2037. #define DMA_TCD18_SADDR (IMXRT_DMA_TCD[18].SADDR)
  2038. #define DMA_TCD18_SOFF (IMXRT_DMA_TCD[18].SOFF)
  2039. #define DMA_TCD18_ATTR (IMXRT_DMA_TCD[18].ATTR)
  2040. #define DMA_TCD18_NBYTES (IMXRT_DMA_TCD[18].NBYTES)
  2041. #define DMA_TCD18_NBYTES_MLNO (IMXRT_DMA_TCD[18].NBYTES_MLNO)
  2042. #define DMA_TCD18_NBYTES_MLOFFNO (IMXRT_DMA_TCD[18].NBYTES_MLOFFNO)
  2043. #define DMA_TCD18_NBYTES_MLOFFYES (IMXRT_DMA_TCD[18].NBYTES_MLOFFYES)
  2044. #define DMA_TCD18_SLAST (IMXRT_DMA_TCD[18].SLAST)
  2045. #define DMA_TCD18_DADDR (IMXRT_DMA_TCD[18].DADDR)
  2046. #define DMA_TCD18_DOFF (IMXRT_DMA_TCD[18].DOFF)
  2047. #define DMA_TCD18_CITER (IMXRT_DMA_TCD[18].CITER)
  2048. #define DMA_TCD18_CITER_ELINKYES (IMXRT_DMA_TCD[18].CITER_ELINKYES)
  2049. #define DMA_TCD18_CITER_ELINKNO (IMXRT_DMA_TCD[18].CITER_ELINKNO)
  2050. #define DMA_TCD18_DLASTSGA (IMXRT_DMA_TCD[18].DLASTSGA)
  2051. #define DMA_TCD18_CSR (IMXRT_DMA_TCD[18].CSR)
  2052. #define DMA_TCD18_BITER (IMXRT_DMA_TCD[18].BITER)
  2053. #define DMA_TCD18_BITER_ELINKYES (IMXRT_DMA_TCD[18].BITER_ELINKYES)
  2054. #define DMA_TCD18_BITER_ELINKNO (IMXRT_DMA_TCD[18].BITER_ELINKNO)
  2055. #define DMA_TCD19_SADDR (IMXRT_DMA_TCD[19].SADDR)
  2056. #define DMA_TCD19_SOFF (IMXRT_DMA_TCD[19].SOFF)
  2057. #define DMA_TCD19_ATTR (IMXRT_DMA_TCD[19].ATTR)
  2058. #define DMA_TCD19_NBYTES (IMXRT_DMA_TCD[19].NBYTES)
  2059. #define DMA_TCD19_NBYTES_MLNO (IMXRT_DMA_TCD[19].NBYTES_MLNO)
  2060. #define DMA_TCD19_NBYTES_MLOFFNO (IMXRT_DMA_TCD[19].NBYTES_MLOFFNO)
  2061. #define DMA_TCD19_NBYTES_MLOFFYES (IMXRT_DMA_TCD[19].NBYTES_MLOFFYES)
  2062. #define DMA_TCD19_SLAST (IMXRT_DMA_TCD[19].SLAST)
  2063. #define DMA_TCD19_DADDR (IMXRT_DMA_TCD[19].DADDR)
  2064. #define DMA_TCD19_DOFF (IMXRT_DMA_TCD[19].DOFF)
  2065. #define DMA_TCD19_CITER (IMXRT_DMA_TCD[19].CITER)
  2066. #define DMA_TCD19_CITER_ELINKYES (IMXRT_DMA_TCD[19].CITER_ELINKYES)
  2067. #define DMA_TCD19_CITER_ELINKNO (IMXRT_DMA_TCD[19].CITER_ELINKNO)
  2068. #define DMA_TCD19_DLASTSGA (IMXRT_DMA_TCD[19].DLASTSGA)
  2069. #define DMA_TCD19_CSR (IMXRT_DMA_TCD[19].CSR)
  2070. #define DMA_TCD19_BITER (IMXRT_DMA_TCD[19].BITER)
  2071. #define DMA_TCD19_BITER_ELINKYES (IMXRT_DMA_TCD[19].BITER_ELINKYES)
  2072. #define DMA_TCD19_BITER_ELINKNO (IMXRT_DMA_TCD[19].BITER_ELINKNO)
  2073. #define DMA_TCD20_SADDR (IMXRT_DMA_TCD[20].SADDR)
  2074. #define DMA_TCD20_SOFF (IMXRT_DMA_TCD[20].SOFF)
  2075. #define DMA_TCD20_ATTR (IMXRT_DMA_TCD[20].ATTR)
  2076. #define DMA_TCD20_NBYTES (IMXRT_DMA_TCD[20].NBYTES)
  2077. #define DMA_TCD20_NBYTES_MLNO (IMXRT_DMA_TCD[20].NBYTES_MLNO)
  2078. #define DMA_TCD20_NBYTES_MLOFFNO (IMXRT_DMA_TCD[20].NBYTES_MLOFFNO)
  2079. #define DMA_TCD20_NBYTES_MLOFFYES (IMXRT_DMA_TCD[20].NBYTES_MLOFFYES)
  2080. #define DMA_TCD20_SLAST (IMXRT_DMA_TCD[20].SLAST)
  2081. #define DMA_TCD20_DADDR (IMXRT_DMA_TCD[20].DADDR)
  2082. #define DMA_TCD20_DOFF (IMXRT_DMA_TCD[20].DOFF)
  2083. #define DMA_TCD20_CITER (IMXRT_DMA_TCD[20].CITER)
  2084. #define DMA_TCD20_CITER_ELINKYES (IMXRT_DMA_TCD[20].CITER_ELINKYES)
  2085. #define DMA_TCD20_CITER_ELINKNO (IMXRT_DMA_TCD[20].CITER_ELINKNO)
  2086. #define DMA_TCD20_DLASTSGA (IMXRT_DMA_TCD[20].DLASTSGA)
  2087. #define DMA_TCD20_CSR (IMXRT_DMA_TCD[20].CSR)
  2088. #define DMA_TCD20_BITER (IMXRT_DMA_TCD[20].BITER)
  2089. #define DMA_TCD20_BITER_ELINKYES (IMXRT_DMA_TCD[20].BITER_ELINKYES)
  2090. #define DMA_TCD20_BITER_ELINKNO (IMXRT_DMA_TCD[20].BITER_ELINKNO)
  2091. #define DMA_TCD21_SADDR (IMXRT_DMA_TCD[21].SADDR)
  2092. #define DMA_TCD21_SOFF (IMXRT_DMA_TCD[21].SOFF)
  2093. #define DMA_TCD21_ATTR (IMXRT_DMA_TCD[21].ATTR)
  2094. #define DMA_TCD21_NBYTES (IMXRT_DMA_TCD[21].NBYTES)
  2095. #define DMA_TCD21_NBYTES_MLNO (IMXRT_DMA_TCD[21].NBYTES_MLNO)
  2096. #define DMA_TCD21_NBYTES_MLOFFNO (IMXRT_DMA_TCD[21].NBYTES_MLOFFNO)
  2097. #define DMA_TCD21_NBYTES_MLOFFYES (IMXRT_DMA_TCD[21].NBYTES_MLOFFYES)
  2098. #define DMA_TCD21_SLAST (IMXRT_DMA_TCD[21].SLAST)
  2099. #define DMA_TCD21_DADDR (IMXRT_DMA_TCD[21].DADDR)
  2100. #define DMA_TCD21_DOFF (IMXRT_DMA_TCD[21].DOFF)
  2101. #define DMA_TCD21_CITER (IMXRT_DMA_TCD[21].CITER)
  2102. #define DMA_TCD21_CITER_ELINKYES (IMXRT_DMA_TCD[21].CITER_ELINKYES)
  2103. #define DMA_TCD21_CITER_ELINKNO (IMXRT_DMA_TCD[21].CITER_ELINKNO)
  2104. #define DMA_TCD21_DLASTSGA (IMXRT_DMA_TCD[21].DLASTSGA)
  2105. #define DMA_TCD21_CSR (IMXRT_DMA_TCD[21].CSR)
  2106. #define DMA_TCD21_BITER (IMXRT_DMA_TCD[21].BITER)
  2107. #define DMA_TCD21_BITER_ELINKYES (IMXRT_DMA_TCD[21].BITER_ELINKYES)
  2108. #define DMA_TCD21_BITER_ELINKNO (IMXRT_DMA_TCD[21].BITER_ELINKNO)
  2109. #define DMA_TCD22_SADDR (IMXRT_DMA_TCD[22].SADDR)
  2110. #define DMA_TCD22_SOFF (IMXRT_DMA_TCD[22].SOFF)
  2111. #define DMA_TCD22_ATTR (IMXRT_DMA_TCD[22].ATTR)
  2112. #define DMA_TCD22_NBYTES (IMXRT_DMA_TCD[22].NBYTES)
  2113. #define DMA_TCD22_NBYTES_MLNO (IMXRT_DMA_TCD[22].NBYTES_MLNO)
  2114. #define DMA_TCD22_NBYTES_MLOFFNO (IMXRT_DMA_TCD[22].NBYTES_MLOFFNO)
  2115. #define DMA_TCD22_NBYTES_MLOFFYES (IMXRT_DMA_TCD[22].NBYTES_MLOFFYES)
  2116. #define DMA_TCD22_SLAST (IMXRT_DMA_TCD[22].SLAST)
  2117. #define DMA_TCD22_DADDR (IMXRT_DMA_TCD[22].DADDR)
  2118. #define DMA_TCD22_DOFF (IMXRT_DMA_TCD[22].DOFF)
  2119. #define DMA_TCD22_CITER (IMXRT_DMA_TCD[22].CITER)
  2120. #define DMA_TCD22_CITER_ELINKYES (IMXRT_DMA_TCD[22].CITER_ELINKYES)
  2121. #define DMA_TCD22_CITER_ELINKNO (IMXRT_DMA_TCD[22].CITER_ELINKNO)
  2122. #define DMA_TCD22_DLASTSGA (IMXRT_DMA_TCD[22].DLASTSGA)
  2123. #define DMA_TCD22_CSR (IMXRT_DMA_TCD[22].CSR)
  2124. #define DMA_TCD22_BITER (IMXRT_DMA_TCD[22].BITER)
  2125. #define DMA_TCD22_BITER_ELINKYES (IMXRT_DMA_TCD[22].BITER_ELINKYES)
  2126. #define DMA_TCD22_BITER_ELINKNO (IMXRT_DMA_TCD[22].BITER_ELINKNO)
  2127. #define DMA_TCD23_SADDR (IMXRT_DMA_TCD[23].SADDR)
  2128. #define DMA_TCD23_SOFF (IMXRT_DMA_TCD[23].SOFF)
  2129. #define DMA_TCD23_ATTR (IMXRT_DMA_TCD[23].ATTR)
  2130. #define DMA_TCD23_NBYTES (IMXRT_DMA_TCD[23].NBYTES)
  2131. #define DMA_TCD23_NBYTES_MLNO (IMXRT_DMA_TCD[23].NBYTES_MLNO)
  2132. #define DMA_TCD23_NBYTES_MLOFFNO (IMXRT_DMA_TCD[23].NBYTES_MLOFFNO)
  2133. #define DMA_TCD23_NBYTES_MLOFFYES (IMXRT_DMA_TCD[23].NBYTES_MLOFFYES)
  2134. #define DMA_TCD23_SLAST (IMXRT_DMA_TCD[23].SLAST)
  2135. #define DMA_TCD23_DADDR (IMXRT_DMA_TCD[23].DADDR)
  2136. #define DMA_TCD23_DOFF (IMXRT_DMA_TCD[23].DOFF)
  2137. #define DMA_TCD23_CITER (IMXRT_DMA_TCD[23].CITER)
  2138. #define DMA_TCD23_CITER_ELINKYES (IMXRT_DMA_TCD[23].CITER_ELINKYES)
  2139. #define DMA_TCD23_CITER_ELINKNO (IMXRT_DMA_TCD[23].CITER_ELINKNO)
  2140. #define DMA_TCD23_DLASTSGA (IMXRT_DMA_TCD[23].DLASTSGA)
  2141. #define DMA_TCD23_CSR (IMXRT_DMA_TCD[23].CSR)
  2142. #define DMA_TCD23_BITER (IMXRT_DMA_TCD[23].BITER)
  2143. #define DMA_TCD23_BITER_ELINKYES (IMXRT_DMA_TCD[23].BITER_ELINKYES)
  2144. #define DMA_TCD23_BITER_ELINKNO (IMXRT_DMA_TCD[23].BITER_ELINKNO)
  2145. #define DMA_TCD24_SADDR (IMXRT_DMA_TCD[24].SADDR)
  2146. #define DMA_TCD24_SOFF (IMXRT_DMA_TCD[24].SOFF)
  2147. #define DMA_TCD24_ATTR (IMXRT_DMA_TCD[24].ATTR)
  2148. #define DMA_TCD24_NBYTES (IMXRT_DMA_TCD[24].NBYTES)
  2149. #define DMA_TCD24_NBYTES_MLNO (IMXRT_DMA_TCD[24].NBYTES_MLNO)
  2150. #define DMA_TCD24_NBYTES_MLOFFNO (IMXRT_DMA_TCD[24].NBYTES_MLOFFNO)
  2151. #define DMA_TCD24_NBYTES_MLOFFYES (IMXRT_DMA_TCD[24].NBYTES_MLOFFYES)
  2152. #define DMA_TCD24_SLAST (IMXRT_DMA_TCD[24].SLAST)
  2153. #define DMA_TCD24_DADDR (IMXRT_DMA_TCD[24].DADDR)
  2154. #define DMA_TCD24_DOFF (IMXRT_DMA_TCD[24].DOFF)
  2155. #define DMA_TCD24_CITER (IMXRT_DMA_TCD[24].CITER)
  2156. #define DMA_TCD24_CITER_ELINKYES (IMXRT_DMA_TCD[24].CITER_ELINKYES)
  2157. #define DMA_TCD24_CITER_ELINKNO (IMXRT_DMA_TCD[24].CITER_ELINKNO)
  2158. #define DMA_TCD24_DLASTSGA (IMXRT_DMA_TCD[24].DLASTSGA)
  2159. #define DMA_TCD24_CSR (IMXRT_DMA_TCD[24].CSR)
  2160. #define DMA_TCD24_BITER (IMXRT_DMA_TCD[24].BITER)
  2161. #define DMA_TCD24_BITER_ELINKYES (IMXRT_DMA_TCD[24].BITER_ELINKYES)
  2162. #define DMA_TCD24_BITER_ELINKNO (IMXRT_DMA_TCD[24].BITER_ELINKNO)
  2163. #define DMA_TCD25_SADDR (IMXRT_DMA_TCD[25].SADDR)
  2164. #define DMA_TCD25_SOFF (IMXRT_DMA_TCD[25].SOFF)
  2165. #define DMA_TCD25_ATTR (IMXRT_DMA_TCD[25].ATTR)
  2166. #define DMA_TCD25_NBYTES (IMXRT_DMA_TCD[25].NBYTES)
  2167. #define DMA_TCD25_NBYTES_MLNO (IMXRT_DMA_TCD[25].NBYTES_MLNO)
  2168. #define DMA_TCD25_NBYTES_MLOFFNO (IMXRT_DMA_TCD[25].NBYTES_MLOFFNO)
  2169. #define DMA_TCD25_NBYTES_MLOFFYES (IMXRT_DMA_TCD[25].NBYTES_MLOFFYES)
  2170. #define DMA_TCD25_SLAST (IMXRT_DMA_TCD[25].SLAST)
  2171. #define DMA_TCD25_DADDR (IMXRT_DMA_TCD[25].DADDR)
  2172. #define DMA_TCD25_DOFF (IMXRT_DMA_TCD[25].DOFF)
  2173. #define DMA_TCD25_CITER (IMXRT_DMA_TCD[25].CITER)
  2174. #define DMA_TCD25_CITER_ELINKYES (IMXRT_DMA_TCD[25].CITER_ELINKYES)
  2175. #define DMA_TCD25_CITER_ELINKNO (IMXRT_DMA_TCD[25].CITER_ELINKNO)
  2176. #define DMA_TCD25_DLASTSGA (IMXRT_DMA_TCD[25].DLASTSGA)
  2177. #define DMA_TCD25_CSR (IMXRT_DMA_TCD[25].CSR)
  2178. #define DMA_TCD25_BITER (IMXRT_DMA_TCD[25].BITER)
  2179. #define DMA_TCD25_BITER_ELINKYES (IMXRT_DMA_TCD[25].BITER_ELINKYES)
  2180. #define DMA_TCD25_BITER_ELINKNO (IMXRT_DMA_TCD[25].BITER_ELINKNO)
  2181. #define DMA_TCD26_SADDR (IMXRT_DMA_TCD[26].SADDR)
  2182. #define DMA_TCD26_SOFF (IMXRT_DMA_TCD[26].SOFF)
  2183. #define DMA_TCD26_ATTR (IMXRT_DMA_TCD[26].ATTR)
  2184. #define DMA_TCD26_NBYTES (IMXRT_DMA_TCD[26].NBYTES)
  2185. #define DMA_TCD26_NBYTES_MLNO (IMXRT_DMA_TCD[26].NBYTES_MLNO)
  2186. #define DMA_TCD26_NBYTES_MLOFFNO (IMXRT_DMA_TCD[26].NBYTES_MLOFFNO)
  2187. #define DMA_TCD26_NBYTES_MLOFFYES (IMXRT_DMA_TCD[26].NBYTES_MLOFFYES)
  2188. #define DMA_TCD26_SLAST (IMXRT_DMA_TCD[26].SLAST)
  2189. #define DMA_TCD26_DADDR (IMXRT_DMA_TCD[26].DADDR)
  2190. #define DMA_TCD26_DOFF (IMXRT_DMA_TCD[26].DOFF)
  2191. #define DMA_TCD26_CITER (IMXRT_DMA_TCD[26].CITER)
  2192. #define DMA_TCD26_CITER_ELINKYES (IMXRT_DMA_TCD[26].CITER_ELINKYES)
  2193. #define DMA_TCD26_CITER_ELINKNO (IMXRT_DMA_TCD[26].CITER_ELINKNO)
  2194. #define DMA_TCD26_DLASTSGA (IMXRT_DMA_TCD[26].DLASTSGA)
  2195. #define DMA_TCD26_CSR (IMXRT_DMA_TCD[26].CSR)
  2196. #define DMA_TCD26_BITER (IMXRT_DMA_TCD[26].BITER)
  2197. #define DMA_TCD26_BITER_ELINKYES (IMXRT_DMA_TCD[26].BITER_ELINKYES)
  2198. #define DMA_TCD26_BITER_ELINKNO (IMXRT_DMA_TCD[26].BITER_ELINKNO)
  2199. #define DMA_TCD27_SADDR (IMXRT_DMA_TCD[27].SADDR)
  2200. #define DMA_TCD27_SOFF (IMXRT_DMA_TCD[27].SOFF)
  2201. #define DMA_TCD27_ATTR (IMXRT_DMA_TCD[27].ATTR)
  2202. #define DMA_TCD27_NBYTES (IMXRT_DMA_TCD[27].NBYTES)
  2203. #define DMA_TCD27_NBYTES_MLNO (IMXRT_DMA_TCD[27].NBYTES_MLNO)
  2204. #define DMA_TCD27_NBYTES_MLOFFNO (IMXRT_DMA_TCD[27].NBYTES_MLOFFNO)
  2205. #define DMA_TCD27_NBYTES_MLOFFYES (IMXRT_DMA_TCD[27].NBYTES_MLOFFYES)
  2206. #define DMA_TCD27_SLAST (IMXRT_DMA_TCD[27].SLAST)
  2207. #define DMA_TCD27_DADDR (IMXRT_DMA_TCD[27].DADDR)
  2208. #define DMA_TCD27_DOFF (IMXRT_DMA_TCD[27].DOFF)
  2209. #define DMA_TCD27_CITER (IMXRT_DMA_TCD[27].CITER)
  2210. #define DMA_TCD27_CITER_ELINKYES (IMXRT_DMA_TCD[27].CITER_ELINKYES)
  2211. #define DMA_TCD27_CITER_ELINKNO (IMXRT_DMA_TCD[27].CITER_ELINKNO)
  2212. #define DMA_TCD27_DLASTSGA (IMXRT_DMA_TCD[27].DLASTSGA)
  2213. #define DMA_TCD27_CSR (IMXRT_DMA_TCD[27].CSR)
  2214. #define DMA_TCD27_BITER (IMXRT_DMA_TCD[27].BITER)
  2215. #define DMA_TCD27_BITER_ELINKYES (IMXRT_DMA_TCD[27].BITER_ELINKYES)
  2216. #define DMA_TCD27_BITER_ELINKNO (IMXRT_DMA_TCD[27].BITER_ELINKNO)
  2217. #define DMA_TCD28_SADDR (IMXRT_DMA_TCD[28].SADDR)
  2218. #define DMA_TCD28_SOFF (IMXRT_DMA_TCD[28].SOFF)
  2219. #define DMA_TCD28_ATTR (IMXRT_DMA_TCD[28].ATTR)
  2220. #define DMA_TCD28_NBYTES (IMXRT_DMA_TCD[28].NBYTES)
  2221. #define DMA_TCD28_NBYTES_MLNO (IMXRT_DMA_TCD[28].NBYTES_MLNO)
  2222. #define DMA_TCD28_NBYTES_MLOFFNO (IMXRT_DMA_TCD[28].NBYTES_MLOFFNO)
  2223. #define DMA_TCD28_NBYTES_MLOFFYES (IMXRT_DMA_TCD[28].NBYTES_MLOFFYES)
  2224. #define DMA_TCD28_SLAST (IMXRT_DMA_TCD[28].SLAST)
  2225. #define DMA_TCD28_DADDR (IMXRT_DMA_TCD[28].DADDR)
  2226. #define DMA_TCD28_DOFF (IMXRT_DMA_TCD[28].DOFF)
  2227. #define DMA_TCD28_CITER (IMXRT_DMA_TCD[28].CITER)
  2228. #define DMA_TCD28_CITER_ELINKYES (IMXRT_DMA_TCD[28].CITER_ELINKYES)
  2229. #define DMA_TCD28_CITER_ELINKNO (IMXRT_DMA_TCD[28].CITER_ELINKNO)
  2230. #define DMA_TCD28_DLASTSGA (IMXRT_DMA_TCD[28].DLASTSGA)
  2231. #define DMA_TCD28_CSR (IMXRT_DMA_TCD[28].CSR)
  2232. #define DMA_TCD28_BITER (IMXRT_DMA_TCD[28].BITER)
  2233. #define DMA_TCD28_BITER_ELINKYES (IMXRT_DMA_TCD[28].BITER_ELINKYES)
  2234. #define DMA_TCD28_BITER_ELINKNO (IMXRT_DMA_TCD[28].BITER_ELINKNO)
  2235. #define DMA_TCD29_SADDR (IMXRT_DMA_TCD[29].SADDR)
  2236. #define DMA_TCD29_SOFF (IMXRT_DMA_TCD[29].SOFF)
  2237. #define DMA_TCD29_ATTR (IMXRT_DMA_TCD[29].ATTR)
  2238. #define DMA_TCD29_NBYTES (IMXRT_DMA_TCD[29].NBYTES)
  2239. #define DMA_TCD29_NBYTES_MLNO (IMXRT_DMA_TCD[29].NBYTES_MLNO)
  2240. #define DMA_TCD29_NBYTES_MLOFFNO (IMXRT_DMA_TCD[29].NBYTES_MLOFFNO)
  2241. #define DMA_TCD29_NBYTES_MLOFFYES (IMXRT_DMA_TCD[29].NBYTES_MLOFFYES)
  2242. #define DMA_TCD29_SLAST (IMXRT_DMA_TCD[29].SLAST)
  2243. #define DMA_TCD29_DADDR (IMXRT_DMA_TCD[29].DADDR)
  2244. #define DMA_TCD29_DOFF (IMXRT_DMA_TCD[29].DOFF)
  2245. #define DMA_TCD29_CITER (IMXRT_DMA_TCD[29].CITER)
  2246. #define DMA_TCD29_CITER_ELINKYES (IMXRT_DMA_TCD[29].CITER_ELINKYES)
  2247. #define DMA_TCD29_CITER_ELINKNO (IMXRT_DMA_TCD[29].CITER_ELINKNO)
  2248. #define DMA_TCD29_DLASTSGA (IMXRT_DMA_TCD[29].DLASTSGA)
  2249. #define DMA_TCD29_CSR (IMXRT_DMA_TCD[29].CSR)
  2250. #define DMA_TCD29_BITER (IMXRT_DMA_TCD[29].BITER)
  2251. #define DMA_TCD29_BITER_ELINKYES (IMXRT_DMA_TCD[29].BITER_ELINKYES)
  2252. #define DMA_TCD29_BITER_ELINKNO (IMXRT_DMA_TCD[29].BITER_ELINKNO)
  2253. #define DMA_TCD30_SADDR (IMXRT_DMA_TCD[30].SADDR)
  2254. #define DMA_TCD30_SOFF (IMXRT_DMA_TCD[30].SOFF)
  2255. #define DMA_TCD30_ATTR (IMXRT_DMA_TCD[30].ATTR)
  2256. #define DMA_TCD30_NBYTES (IMXRT_DMA_TCD[30].NBYTES)
  2257. #define DMA_TCD30_NBYTES_MLNO (IMXRT_DMA_TCD[30].NBYTES_MLNO)
  2258. #define DMA_TCD30_NBYTES_MLOFFNO (IMXRT_DMA_TCD[30].NBYTES_MLOFFNO)
  2259. #define DMA_TCD30_NBYTES_MLOFFYES (IMXRT_DMA_TCD[30].NBYTES_MLOFFYES)
  2260. #define DMA_TCD30_SLAST (IMXRT_DMA_TCD[30].SLAST)
  2261. #define DMA_TCD30_DADDR (IMXRT_DMA_TCD[30].DADDR)
  2262. #define DMA_TCD30_DOFF (IMXRT_DMA_TCD[30].DOFF)
  2263. #define DMA_TCD30_CITER (IMXRT_DMA_TCD[30].CITER)
  2264. #define DMA_TCD30_CITER_ELINKYES (IMXRT_DMA_TCD[30].CITER_ELINKYES)
  2265. #define DMA_TCD30_CITER_ELINKNO (IMXRT_DMA_TCD[30].CITER_ELINKNO)
  2266. #define DMA_TCD30_DLASTSGA (IMXRT_DMA_TCD[30].DLASTSGA)
  2267. #define DMA_TCD30_CSR (IMXRT_DMA_TCD[30].CSR)
  2268. #define DMA_TCD30_BITER (IMXRT_DMA_TCD[30].BITER)
  2269. #define DMA_TCD30_BITER_ELINKYES (IMXRT_DMA_TCD[30].BITER_ELINKYES)
  2270. #define DMA_TCD30_BITER_ELINKNO (IMXRT_DMA_TCD[30].BITER_ELINKNO)
  2271. #define DMA_TCD31_SADDR (IMXRT_DMA_TCD[31].SADDR)
  2272. #define DMA_TCD31_SOFF (IMXRT_DMA_TCD[31].SOFF)
  2273. #define DMA_TCD31_ATTR (IMXRT_DMA_TCD[31].ATTR)
  2274. #define DMA_TCD31_NBYTES (IMXRT_DMA_TCD[31].NBYTES)
  2275. #define DMA_TCD31_NBYTES_MLNO (IMXRT_DMA_TCD[31].NBYTES_MLNO)
  2276. #define DMA_TCD31_NBYTES_MLOFFNO (IMXRT_DMA_TCD[31].NBYTES_MLOFFNO)
  2277. #define DMA_TCD31_NBYTES_MLOFFYES (IMXRT_DMA_TCD[31].NBYTES_MLOFFYES)
  2278. #define DMA_TCD31_SLAST (IMXRT_DMA_TCD[31].SLAST)
  2279. #define DMA_TCD31_DADDR (IMXRT_DMA_TCD[31].DADDR)
  2280. #define DMA_TCD31_DOFF (IMXRT_DMA_TCD[31].DOFF)
  2281. #define DMA_TCD31_CITER (IMXRT_DMA_TCD[31].CITER)
  2282. #define DMA_TCD31_CITER_ELINKYES (IMXRT_DMA_TCD[31].CITER_ELINKYES)
  2283. #define DMA_TCD31_CITER_ELINKNO (IMXRT_DMA_TCD[31].CITER_ELINKNO)
  2284. #define DMA_TCD31_DLASTSGA (IMXRT_DMA_TCD[31].DLASTSGA)
  2285. #define DMA_TCD31_CSR (IMXRT_DMA_TCD[31].CSR)
  2286. #define DMA_TCD31_BITER (IMXRT_DMA_TCD[31].BITER)
  2287. #define DMA_TCD31_BITER_ELINKYES (IMXRT_DMA_TCD[31].BITER_ELINKYES)
  2288. #define DMA_TCD31_BITER_ELINKNO (IMXRT_DMA_TCD[31].BITER_ELINKNO)
  2289. // TODO: double check these defines from Teensy 3.x are still correct for IMXRT
  2290. #define DMA_TCD_ATTR_SMOD(n) (((n) & 0x1F) << 11)
  2291. #define DMA_TCD_ATTR_SSIZE(n) (((n) & 0x7) << 8)
  2292. #define DMA_TCD_ATTR_DMOD(n) (((n) & 0x1F) << 3)
  2293. #define DMA_TCD_ATTR_DSIZE(n) (((n) & 0x7) << 0)
  2294. #define DMA_TCD_ATTR_SIZE_8BIT 0
  2295. #define DMA_TCD_ATTR_SIZE_16BIT 1
  2296. #define DMA_TCD_ATTR_SIZE_32BIT 2
  2297. #define DMA_TCD_ATTR_SIZE_16BYTE 4
  2298. #define DMA_TCD_ATTR_SIZE_32BYTE 5 // caution: this might not be supported in newer chips?
  2299. #define DMA_TCD_CSR_BWC(n) (((n) & 0x3) << 14)
  2300. #define DMA_TCD_CSR_BWC_MASK 0xC000
  2301. #define DMA_TCD_CSR_MAJORLINKCH(n) (((n) & 0xF) << 8)
  2302. #define DMA_TCD_CSR_MAJORLINKCH_MASK 0x0F00
  2303. #define DMA_TCD_CSR_DONE 0x0080
  2304. #define DMA_TCD_CSR_ACTIVE 0x0040
  2305. #define DMA_TCD_CSR_MAJORELINK 0x0020
  2306. #define DMA_TCD_CSR_ESG 0x0010
  2307. #define DMA_TCD_CSR_DREQ 0x0008
  2308. #define DMA_TCD_CSR_INTHALF 0x0004
  2309. #define DMA_TCD_CSR_INTMAJOR 0x0002
  2310. #define DMA_TCD_CSR_START 0x0001
  2311. #define DMA_TCD_CITER_MASK ((uint16_t)0x7FFF) // Loop count mask
  2312. #define DMA_TCD_CITER_ELINK ((uint16_t)1<<15) // Enable channel linking on minor-loop complete
  2313. #define DMA_TCD_BITER_MASK ((uint16_t)0x7FFF) // Loop count mask
  2314. #define DMA_TCD_BITER_ELINK ((uint16_t)1<<15) // Enable channel linking on minor-loop complete
  2315. #define DMA_TCD_BITER_ELINKYES_ELINK 0x8000
  2316. #define DMA_TCD_BITER_ELINKYES_LINKCH(n) (((n) & 0xF) << 9)
  2317. #define DMA_TCD_BITER_ELINKYES_LINKCH_MASK 0x1E00
  2318. #define DMA_TCD_BITER_ELINKYES_BITER(n) (((n) & 0x1FF) << 0)
  2319. #define DMA_TCD_BITER_ELINKYES_BITER_MASK 0x01FF
  2320. #define DMA_TCD_CITER_ELINKYES_ELINK 0x8000
  2321. #define DMA_TCD_CITER_ELINKYES_LINKCH(n) (((n) & 0xF) << 9)
  2322. #define DMA_TCD_CITER_ELINKYES_LINKCH_MASK 0x1E00
  2323. #define DMA_TCD_CITER_ELINKYES_CITER(n) (((n) & 0x1FF) << 0)
  2324. #define DMA_TCD_CITER_ELINKYES_CITER_MASK 0x01FF
  2325. #define DMA_TCD_NBYTES_SMLOE ((uint32_t)1<<31) // Source Minor Loop Offset Enable
  2326. #define DMA_TCD_NBYTES_DMLOE ((uint32_t)1<<30) // Destination Minor Loop Offset Enable
  2327. #define DMA_TCD_NBYTES_MLOFFNO_NBYTES(n) ((uint32_t)((n) & 0x3FFFFFFF)) // NBytes transfer count when minor loop disabled
  2328. #define DMA_TCD_NBYTES_MLOFFYES_NBYTES(n) ((uint32_t)((n) & 0x3FF)) // NBytes transfer count when minor loop enabled
  2329. #define DMA_TCD_NBYTES_MLOFFYES_MLOFF(n) ((uint32_t)((n) & 0xFFFFF)<<10) // Minor loop offset
  2330. // 23.7.1: page 1023
  2331. #define IMXRT_ENC1 (*(IMXRT_REGISTER16_t *)0x403C8000)
  2332. #define ENC1_CTRL (IMXRT_ENC1.offset000)
  2333. #define ENC1_FILT (IMXRT_ENC1.offset002)
  2334. #define ENC1_WTR (IMXRT_ENC1.offset004)
  2335. #define ENC1_POSD (IMXRT_ENC1.offset006)
  2336. #define ENC1_POSDH (IMXRT_ENC1.offset008)
  2337. #define ENC1_REV (IMXRT_ENC1.offset00A)
  2338. #define ENC1_REVH (IMXRT_ENC1.offset00C)
  2339. #define ENC1_UPOS (IMXRT_ENC1.offset00E)
  2340. #define ENC1_LPOS (IMXRT_ENC1.offset010)
  2341. #define ENC1_UPOSH (IMXRT_ENC1.offset012)
  2342. #define ENC1_LPOSH (IMXRT_ENC1.offset014)
  2343. #define ENC1_UINIT (IMXRT_ENC1.offset016)
  2344. #define ENC1_LINIT (IMXRT_ENC1.offset018)
  2345. #define ENC1_IMR (IMXRT_ENC1.offset01A)
  2346. #define ENC1_TST (IMXRT_ENC1.offset01C)
  2347. #define ENC1_CTRL2 (IMXRT_ENC1.offset01E)
  2348. #define ENC1_UMOD (IMXRT_ENC1.offset020)
  2349. #define ENC1_LMOD (IMXRT_ENC1.offset022)
  2350. #define ENC1_UCOMP (IMXRT_ENC1.offset024)
  2351. #define ENC1_LCOMP (IMXRT_ENC1.offset026)
  2352. #define IMXRT_ENC2 (*(IMXRT_REGISTER16_t *)0x403CC000)
  2353. #define ENC2_CTRL (IMXRT_ENC2.offset000)
  2354. #define ENC2_FILT (IMXRT_ENC2.offset002)
  2355. #define ENC2_WTR (IMXRT_ENC2.offset004)
  2356. #define ENC2_POSD (IMXRT_ENC2.offset006)
  2357. #define ENC2_POSDH (IMXRT_ENC2.offset008)
  2358. #define ENC2_REV (IMXRT_ENC2.offset00A)
  2359. #define ENC2_REVH (IMXRT_ENC2.offset00C)
  2360. #define ENC2_UPOS (IMXRT_ENC2.offset00E)
  2361. #define ENC2_LPOS (IMXRT_ENC2.offset010)
  2362. #define ENC2_UPOSH (IMXRT_ENC2.offset012)
  2363. #define ENC2_LPOSH (IMXRT_ENC2.offset014)
  2364. #define ENC2_UINIT (IMXRT_ENC2.offset016)
  2365. #define ENC2_LINIT (IMXRT_ENC2.offset018)
  2366. #define ENC2_IMR (IMXRT_ENC2.offset01A)
  2367. #define ENC2_TST (IMXRT_ENC2.offset01C)
  2368. #define ENC2_CTRL2 (IMXRT_ENC2.offset01E)
  2369. #define ENC2_UMOD (IMXRT_ENC2.offset020)
  2370. #define ENC2_LMOD (IMXRT_ENC2.offset022)
  2371. #define ENC2_UCOMP (IMXRT_ENC2.offset024)
  2372. #define ENC2_LCOMP (IMXRT_ENC2.offset026)
  2373. #define IMXRT_ENC3 (*(IMXRT_REGISTER16_t *)0x403D0000)
  2374. #define ENC3_CTRL (IMXRT_ENC3.offset000)
  2375. #define ENC3_FILT (IMXRT_ENC3.offset002)
  2376. #define ENC3_WTR (IMXRT_ENC3.offset004)
  2377. #define ENC3_POSD (IMXRT_ENC3.offset006)
  2378. #define ENC3_POSDH (IMXRT_ENC3.offset008)
  2379. #define ENC3_REV (IMXRT_ENC3.offset00A)
  2380. #define ENC3_REVH (IMXRT_ENC3.offset00C)
  2381. #define ENC3_UPOS (IMXRT_ENC3.offset00E)
  2382. #define ENC3_LPOS (IMXRT_ENC3.offset010)
  2383. #define ENC3_UPOSH (IMXRT_ENC3.offset012)
  2384. #define ENC3_LPOSH (IMXRT_ENC3.offset014)
  2385. #define ENC3_UINIT (IMXRT_ENC3.offset016)
  2386. #define ENC3_LINIT (IMXRT_ENC3.offset018)
  2387. #define ENC3_IMR (IMXRT_ENC3.offset01A)
  2388. #define ENC3_TST (IMXRT_ENC3.offset01C)
  2389. #define ENC3_CTRL2 (IMXRT_ENC3.offset01E)
  2390. #define ENC3_UMOD (IMXRT_ENC3.offset020)
  2391. #define ENC3_LMOD (IMXRT_ENC3.offset022)
  2392. #define ENC3_UCOMP (IMXRT_ENC3.offset024)
  2393. #define ENC3_LCOMP (IMXRT_ENC3.offset026)
  2394. #define IMXRT_ENC4 (*(IMXRT_REGISTER16_t *)0x403D4000)
  2395. #define ENC4_CTRL (IMXRT_ENC4.offset000)
  2396. #define ENC4_FILT (IMXRT_ENC4.offset002)
  2397. #define ENC4_WTR (IMXRT_ENC4.offset004)
  2398. #define ENC4_POSD (IMXRT_ENC4.offset006)
  2399. #define ENC4_POSDH (IMXRT_ENC4.offset008)
  2400. #define ENC4_REV (IMXRT_ENC4.offset00A)
  2401. #define ENC4_REVH (IMXRT_ENC4.offset00C)
  2402. #define ENC4_UPOS (IMXRT_ENC4.offset00E)
  2403. #define ENC4_LPOS (IMXRT_ENC4.offset010)
  2404. #define ENC4_UPOSH (IMXRT_ENC4.offset012)
  2405. #define ENC4_LPOSH (IMXRT_ENC4.offset014)
  2406. #define ENC4_UINIT (IMXRT_ENC4.offset016)
  2407. #define ENC4_LINIT (IMXRT_ENC4.offset018)
  2408. #define ENC4_IMR (IMXRT_ENC4.offset01A)
  2409. #define ENC4_TST (IMXRT_ENC4.offset01C)
  2410. #define ENC4_CTRL2 (IMXRT_ENC4.offset01E)
  2411. #define ENC4_UMOD (IMXRT_ENC4.offset020)
  2412. #define ENC4_LMOD (IMXRT_ENC4.offset022)
  2413. #define ENC4_UCOMP (IMXRT_ENC4.offset024)
  2414. #define ENC4_LCOMP (IMXRT_ENC4.offset026)
  2415. // 24.5: page 1060
  2416. #define IMXRT_ENET (*(IMXRT_REGISTER32_t *)0x402D8000)
  2417. #define IMXRT_ENET_TIMER (*(IMXRT_REGISTER32_t *)0x402D8400)
  2418. #define ENET_EIR (IMXRT_ENET.offset004)
  2419. #define ENET_EIMR (IMXRT_ENET.offset008)
  2420. #define ENET_RDAR (IMXRT_ENET.offset010)
  2421. #define ENET_TDAR (IMXRT_ENET.offset014)
  2422. #define ENET_ECR (IMXRT_ENET.offset024)
  2423. #define ENET_MMFR (IMXRT_ENET.offset040)
  2424. #define ENET_MSCR (IMXRT_ENET.offset044)
  2425. #define ENET_MIBC (IMXRT_ENET.offset064)
  2426. #define ENET_RCR (IMXRT_ENET.offset084)
  2427. #define ENET_TCR (IMXRT_ENET.offset0C4)
  2428. #define ENET_PALR (IMXRT_ENET.offset0E4)
  2429. #define ENET_PAUR (IMXRT_ENET.offset0E8)
  2430. #define ENET_OPD (IMXRT_ENET.offset0EC)
  2431. #define ENET_TXIC (IMXRT_ENET.offset0F0)
  2432. #define ENET_RXIC (IMXRT_ENET.offset100)
  2433. #define ENET_IAUR (IMXRT_ENET.offset118)
  2434. #define ENET_IALR (IMXRT_ENET.offset11C)
  2435. #define ENET_GAUR (IMXRT_ENET.offset120)
  2436. #define ENET_GALR (IMXRT_ENET.offset124)
  2437. #define ENET_TFWR (IMXRT_ENET.offset144)
  2438. #define ENET_RDSR (IMXRT_ENET.offset180)
  2439. #define ENET_TDSR (IMXRT_ENET.offset184)
  2440. #define ENET_MRBR (IMXRT_ENET.offset188)
  2441. #define ENET_RSFL (IMXRT_ENET.offset190)
  2442. #define ENET_RSEM (IMXRT_ENET.offset194)
  2443. #define ENET_RAEM (IMXRT_ENET.offset198)
  2444. #define ENET_RAFL (IMXRT_ENET.offset19C)
  2445. #define ENET_TSEM (IMXRT_ENET.offset1A0)
  2446. #define ENET_TAEM (IMXRT_ENET.offset1A4)
  2447. #define ENET_TAFL (IMXRT_ENET.offset1A8)
  2448. #define ENET_TIPG (IMXRT_ENET.offset1AC)
  2449. #define ENET_FTRL (IMXRT_ENET.offset1B0)
  2450. #define ENET_TACC (IMXRT_ENET.offset1C0)
  2451. #define ENET_RACC (IMXRT_ENET.offset1C4)
  2452. #define ENET_RMON_T_DROP (IMXRT_ENET.offset200)
  2453. #define ENET_RMON_T_PACKETS (IMXRT_ENET.offset204)
  2454. #define ENET_RMON_T_BC_PKT (IMXRT_ENET.offset208)
  2455. #define ENET_RMON_T_MC_PKT (IMXRT_ENET.offset20C)
  2456. #define ENET_RMON_T_CRC_ALIGN (IMXRT_ENET.offset210)
  2457. #define ENET_RMON_T_UNDERSIZE (IMXRT_ENET.offset214)
  2458. #define ENET_RMON_T_OVERSIZE (IMXRT_ENET.offset218)
  2459. #define ENET_RMON_T_FRAG (IMXRT_ENET.offset21C)
  2460. #define ENET_RMON_T_JAB (IMXRT_ENET.offset220)
  2461. #define ENET_RMON_T_COL (IMXRT_ENET.offset224)
  2462. #define ENET_RMON_T_P64 (IMXRT_ENET.offset228)
  2463. #define ENET_RMON_T_P65TO127 (IMXRT_ENET.offset22C)
  2464. #define ENET_RMON_T_P128TO255 (IMXRT_ENET.offset230)
  2465. #define ENET_RMON_T_P256TO511 (IMXRT_ENET.offset234)
  2466. #define ENET_RMON_T_P512TO1023 (IMXRT_ENET.offset238)
  2467. #define ENET_RMON_T_P1024TO2047 (IMXRT_ENET.offset23C)
  2468. #define ENET_RMON_T_P_GTE2048 (IMXRT_ENET.offset240)
  2469. #define ENET_RMON_T_OCTETS (IMXRT_ENET.offset244)
  2470. #define ENET_IEEE_T_DROP (IMXRT_ENET.offset248)
  2471. #define ENET_IEEE_T_FRAME_OK (IMXRT_ENET.offset24C)
  2472. #define ENET_IEEE_T_1COL (IMXRT_ENET.offset250)
  2473. #define ENET_IEEE_T_MCOL (IMXRT_ENET.offset254)
  2474. #define ENET_IEEE_T_DEF (IMXRT_ENET.offset258)
  2475. #define ENET_IEEE_T_LCOL (IMXRT_ENET.offset25C)
  2476. #define ENET_IEEE_T_EXCOL (IMXRT_ENET.offset260)
  2477. #define ENET_IEEE_T_MACERR (IMXRT_ENET.offset264)
  2478. #define ENET_IEEE_T_CSERR (IMXRT_ENET.offset268)
  2479. #define ENET_IEEE_T_SQE (IMXRT_ENET.offset26C)
  2480. #define ENET_IEEE_T_FDXFC (IMXRT_ENET.offset270)
  2481. #define ENET_IEEE_T_OCTETS_OK (IMXRT_ENET.offset274)
  2482. #define ENET_RMON_R_PACKETS (IMXRT_ENET.offset284)
  2483. #define ENET_RMON_R_BC_PKT (IMXRT_ENET.offset288)
  2484. #define ENET_RMON_R_MC_PKT (IMXRT_ENET.offset28C)
  2485. #define ENET_RMON_R_CRC_ALIGN (IMXRT_ENET.offset290)
  2486. #define ENET_RMON_R_UNDERSIZE (IMXRT_ENET.offset294)
  2487. #define ENET_RMON_R_OVERSIZE (IMXRT_ENET.offset298)
  2488. #define ENET_RMON_R_FRAG (IMXRT_ENET.offset29C)
  2489. #define ENET_RMON_R_JAB (IMXRT_ENET.offset2A0)
  2490. #define ENET_RMON_R_RESVD_0 (IMXRT_ENET.offset2A4)
  2491. #define ENET_RMON_R_P64 (IMXRT_ENET.offset2A8)
  2492. #define ENET_RMON_R_P65TO127 (IMXRT_ENET.offset2AC)
  2493. #define ENET_RMON_R_P128TO255 (IMXRT_ENET.offset2B0)
  2494. #define ENET_RMON_R_P256TO511 (IMXRT_ENET.offset2B4)
  2495. #define ENET_RMON_R_P512TO1023 (IMXRT_ENET.offset2B8)
  2496. #define ENET_RMON_R_P1024TO2047 (IMXRT_ENET.offset2BC)
  2497. #define ENET_RMON_R_P_GTE2048 (IMXRT_ENET.offset2C0)
  2498. #define ENET_RMON_R_OCTETS (IMXRT_ENET.offset2C4)
  2499. #define ENET_IEEE_R_DROP (IMXRT_ENET.offset2C8)
  2500. #define ENET_IEEE_R_FRAME_OK (IMXRT_ENET.offset2CC)
  2501. #define ENET_IEEE_R_CRC (IMXRT_ENET.offset2D0)
  2502. #define ENET_IEEE_R_ALIGN (IMXRT_ENET.offset2D4)
  2503. #define ENET_IEEE_R_MACERR (IMXRT_ENET.offset2D8)
  2504. #define ENET_IEEE_R_FDXFC (IMXRT_ENET.offset2DC)
  2505. #define ENET_IEEE_R_OCTETS_OK (IMXRT_ENET.offset2E0)
  2506. #define ENET_ATCR (IMXRT_ENET_TIMER.offset000)
  2507. #define ENET_ATVR (IMXRT_ENET_TIMER.offset004)
  2508. #define ENET_ATOFF (IMXRT_ENET_TIMER.offset008)
  2509. #define ENET_ATPER (IMXRT_ENET_TIMER.offset00C)
  2510. #define ENET_ATCOR (IMXRT_ENET_TIMER.offset010)
  2511. #define ENET_ATINC (IMXRT_ENET_TIMER.offset014)
  2512. #define ENET_ATSTMP (IMXRT_ENET_TIMER.offset018)
  2513. #define ENET_TGSR (IMXRT_ENET_TIMER.offset204)
  2514. #define ENET_TCSR0 (IMXRT_ENET_TIMER.offset208)
  2515. #define ENET_TCCR0 (IMXRT_ENET_TIMER.offset20C)
  2516. #define ENET_TCSR1 (IMXRT_ENET_TIMER.offset210)
  2517. #define ENET_TCCR1 (IMXRT_ENET_TIMER.offset214)
  2518. #define ENET_TCSR2 (IMXRT_ENET_TIMER.offset218)
  2519. #define ENET_TCCR2 (IMXRT_ENET_TIMER.offset21C)
  2520. #define ENET_TCSR3 (IMXRT_ENET_TIMER.offset220)
  2521. #define ENET_TCCR3 (IMXRT_ENET_TIMER.offset224)
  2522. // 25.3.1.1: page 1199
  2523. #define IMXRT_EWM (*(IMXRT_REGISTER8_t *)0x402D8000)
  2524. #define EWM_CTRL (IMXRT_EWM.offset00)
  2525. #define EWM_SERV (IMXRT_EWM.offset01)
  2526. #define EWM_CMPL (IMXRT_EWM.offset02)
  2527. #define EWM_CMPH (IMXRT_EWM.offset03)
  2528. #define EWM_CLKCTRL (IMXRT_EWM.offset04)
  2529. #define EWM_CLKPRESCALER (IMXRT_EWM.offset05)
  2530. // 26.8: page 1249
  2531. #define IMXRT_FLEXCAN1 (*(IMXRT_REGISTER32_t *)0x401D0000)
  2532. #define IMXRT_FLEXCAN1_MASK (*(IMXRT_REGISTER32_t *)0x401D0800)
  2533. #define FLEXCAN1_MCR (IMXRT_FLEXCAN1.offset000)
  2534. #define FLEXCAN1_CTRL1 (IMXRT_FLEXCAN1.offset004)
  2535. #define FLEXCAN1_TIMER (IMXRT_FLEXCAN1.offset008)
  2536. #define FLEXCAN1_RXMGMASK (IMXRT_FLEXCAN1.offset010)
  2537. #define FLEXCAN1_RX14MASK (IMXRT_FLEXCAN1.offset014)
  2538. #define FLEXCAN1_RX15MASK (IMXRT_FLEXCAN1.offset018)
  2539. #define FLEXCAN1_ECR (IMXRT_FLEXCAN1.offset01C)
  2540. #define FLEXCAN1_ESR1 (IMXRT_FLEXCAN1.offset020)
  2541. #define FLEXCAN1_IMASK2 (IMXRT_FLEXCAN1.offset024)
  2542. #define FLEXCAN1_IMASK1 (IMXRT_FLEXCAN1.offset028)
  2543. #define FLEXCAN1_IFLAG2 (IMXRT_FLEXCAN1.offset02C)
  2544. #define FLEXCAN1_IFLAG1 (IMXRT_FLEXCAN1.offset030)
  2545. #define FLEXCAN1_CTRL2 (IMXRT_FLEXCAN1.offset034)
  2546. #define FLEXCAN1_ESR2 (IMXRT_FLEXCAN1.offset038)
  2547. #define FLEXCAN1_CRCR (IMXRT_FLEXCAN1.offset044)
  2548. #define FLEXCAN1_RXFGMASK (IMXRT_FLEXCAN1.offset048)
  2549. #define FLEXCAN1_RXFIR (IMXRT_FLEXCAN1.offset04C)
  2550. #define FLEXCAN1_RXIMR0 (IMXRT_FLEXCAN1_MASK.offset080)
  2551. #define FLEXCAN1_RXIMR1 (IMXRT_FLEXCAN1_MASK.offset084)
  2552. #define FLEXCAN1_RXIMR2 (IMXRT_FLEXCAN1_MASK.offset088)
  2553. #define FLEXCAN1_RXIMR3 (IMXRT_FLEXCAN1_MASK.offset08C)
  2554. #define FLEXCAN1_RXIMR4 (IMXRT_FLEXCAN1_MASK.offset090)
  2555. #define FLEXCAN1_RXIMR5 (IMXRT_FLEXCAN1_MASK.offset094)
  2556. #define FLEXCAN1_RXIMR6 (IMXRT_FLEXCAN1_MASK.offset098)
  2557. #define FLEXCAN1_RXIMR7 (IMXRT_FLEXCAN1_MASK.offset09C)
  2558. #define FLEXCAN1_RXIMR8 (IMXRT_FLEXCAN1_MASK.offset0A0)
  2559. #define FLEXCAN1_RXIMR9 (IMXRT_FLEXCAN1_MASK.offset0A4)
  2560. #define FLEXCAN1_RXIMR10 (IMXRT_FLEXCAN1_MASK.offset0A8)
  2561. #define FLEXCAN1_RXIMR11 (IMXRT_FLEXCAN1_MASK.offset0AC)
  2562. #define FLEXCAN1_RXIMR12 (IMXRT_FLEXCAN1_MASK.offset0B0)
  2563. #define FLEXCAN1_RXIMR13 (IMXRT_FLEXCAN1_MASK.offset0B4)
  2564. #define FLEXCAN1_RXIMR14 (IMXRT_FLEXCAN1_MASK.offset0B8)
  2565. #define FLEXCAN1_RXIMR15 (IMXRT_FLEXCAN1_MASK.offset0BC)
  2566. #define FLEXCAN1_RXIMR16 (IMXRT_FLEXCAN1_MASK.offset0C0)
  2567. #define FLEXCAN1_RXIMR17 (IMXRT_FLEXCAN1_MASK.offset0C4)
  2568. #define FLEXCAN1_RXIMR18 (IMXRT_FLEXCAN1_MASK.offset0C8)
  2569. #define FLEXCAN1_RXIMR19 (IMXRT_FLEXCAN1_MASK.offset0CC)
  2570. #define FLEXCAN1_RXIMR20 (IMXRT_FLEXCAN1_MASK.offset0D0)
  2571. #define FLEXCAN1_RXIMR21 (IMXRT_FLEXCAN1_MASK.offset0D4)
  2572. #define FLEXCAN1_RXIMR22 (IMXRT_FLEXCAN1_MASK.offset0D8)
  2573. #define FLEXCAN1_RXIMR23 (IMXRT_FLEXCAN1_MASK.offset0DC)
  2574. #define FLEXCAN1_RXIMR24 (IMXRT_FLEXCAN1_MASK.offset0E0)
  2575. #define FLEXCAN1_RXIMR25 (IMXRT_FLEXCAN1_MASK.offset0E4)
  2576. #define FLEXCAN1_RXIMR26 (IMXRT_FLEXCAN1_MASK.offset0E8)
  2577. #define FLEXCAN1_RXIMR27 (IMXRT_FLEXCAN1_MASK.offset0EC)
  2578. #define FLEXCAN1_RXIMR28 (IMXRT_FLEXCAN1_MASK.offset0F0)
  2579. #define FLEXCAN1_RXIMR29 (IMXRT_FLEXCAN1_MASK.offset0F4)
  2580. #define FLEXCAN1_RXIMR30 (IMXRT_FLEXCAN1_MASK.offset0F8)
  2581. #define FLEXCAN1_RXIMR31 (IMXRT_FLEXCAN1_MASK.offset0FC)
  2582. #define FLEXCAN1_RXIMR32 (IMXRT_FLEXCAN1_MASK.offset100)
  2583. #define FLEXCAN1_RXIMR33 (IMXRT_FLEXCAN1_MASK.offset104)
  2584. #define FLEXCAN1_RXIMR34 (IMXRT_FLEXCAN1_MASK.offset108)
  2585. #define FLEXCAN1_RXIMR35 (IMXRT_FLEXCAN1_MASK.offset10C)
  2586. #define FLEXCAN1_RXIMR36 (IMXRT_FLEXCAN1_MASK.offset110)
  2587. #define FLEXCAN1_RXIMR37 (IMXRT_FLEXCAN1_MASK.offset114)
  2588. #define FLEXCAN1_RXIMR38 (IMXRT_FLEXCAN1_MASK.offset118)
  2589. #define FLEXCAN1_RXIMR39 (IMXRT_FLEXCAN1_MASK.offset11C)
  2590. #define FLEXCAN1_RXIMR40 (IMXRT_FLEXCAN1_MASK.offset120)
  2591. #define FLEXCAN1_RXIMR41 (IMXRT_FLEXCAN1_MASK.offset124)
  2592. #define FLEXCAN1_RXIMR42 (IMXRT_FLEXCAN1_MASK.offset128)
  2593. #define FLEXCAN1_RXIMR43 (IMXRT_FLEXCAN1_MASK.offset12C)
  2594. #define FLEXCAN1_RXIMR44 (IMXRT_FLEXCAN1_MASK.offset130)
  2595. #define FLEXCAN1_RXIMR45 (IMXRT_FLEXCAN1_MASK.offset134)
  2596. #define FLEXCAN1_RXIMR46 (IMXRT_FLEXCAN1_MASK.offset138)
  2597. #define FLEXCAN1_RXIMR47 (IMXRT_FLEXCAN1_MASK.offset13C)
  2598. #define FLEXCAN1_RXIMR48 (IMXRT_FLEXCAN1_MASK.offset140)
  2599. #define FLEXCAN1_RXIMR49 (IMXRT_FLEXCAN1_MASK.offset144)
  2600. #define FLEXCAN1_RXIMR50 (IMXRT_FLEXCAN1_MASK.offset148)
  2601. #define FLEXCAN1_RXIMR51 (IMXRT_FLEXCAN1_MASK.offset14C)
  2602. #define FLEXCAN1_RXIMR52 (IMXRT_FLEXCAN1_MASK.offset150)
  2603. #define FLEXCAN1_RXIMR53 (IMXRT_FLEXCAN1_MASK.offset154)
  2604. #define FLEXCAN1_RXIMR54 (IMXRT_FLEXCAN1_MASK.offset158)
  2605. #define FLEXCAN1_RXIMR55 (IMXRT_FLEXCAN1_MASK.offset15C)
  2606. #define FLEXCAN1_RXIMR56 (IMXRT_FLEXCAN1_MASK.offset160)
  2607. #define FLEXCAN1_RXIMR57 (IMXRT_FLEXCAN1_MASK.offset164)
  2608. #define FLEXCAN1_RXIMR58 (IMXRT_FLEXCAN1_MASK.offset168)
  2609. #define FLEXCAN1_RXIMR59 (IMXRT_FLEXCAN1_MASK.offset16C)
  2610. #define FLEXCAN1_RXIMR60 (IMXRT_FLEXCAN1_MASK.offset170)
  2611. #define FLEXCAN1_RXIMR61 (IMXRT_FLEXCAN1_MASK.offset174)
  2612. #define FLEXCAN1_RXIMR62 (IMXRT_FLEXCAN1_MASK.offset178)
  2613. #define FLEXCAN1_RXIMR63 (IMXRT_FLEXCAN1_MASK.offset17C)
  2614. #define FLEXCAN1_GFWR (IMXRT_FLEXCAN1_MASK.offset1E0)
  2615. #define IMXRT_FLEXCAN2 (*(IMXRT_REGISTER32_t *)0x401D4000)
  2616. #define IMXRT_FLEXCAN2_MASK (*(IMXRT_REGISTER32_t *)0x401D4800)
  2617. #define FLEXCAN2_MCR (IMXRT_FLEXCAN2.offset000)
  2618. #define FLEXCAN2_CTRL1 (IMXRT_FLEXCAN2.offset004)
  2619. #define FLEXCAN2_TIMER (IMXRT_FLEXCAN2.offset008)
  2620. #define FLEXCAN2_RXMGMASK (IMXRT_FLEXCAN2.offset010)
  2621. #define FLEXCAN2_RX14MASK (IMXRT_FLEXCAN2.offset014)
  2622. #define FLEXCAN2_RX15MASK (IMXRT_FLEXCAN2.offset018)
  2623. #define FLEXCAN2_ECR (IMXRT_FLEXCAN2.offset01C)
  2624. #define FLEXCAN2_ESR1 (IMXRT_FLEXCAN2.offset020)
  2625. #define FLEXCAN2_IMASK2 (IMXRT_FLEXCAN2.offset024)
  2626. #define FLEXCAN2_IMASK1 (IMXRT_FLEXCAN2.offset028)
  2627. #define FLEXCAN2_IFLAG2 (IMXRT_FLEXCAN2.offset02C)
  2628. #define FLEXCAN2_IFLAG1 (IMXRT_FLEXCAN2.offset030)
  2629. #define FLEXCAN2_CTRL2 (IMXRT_FLEXCAN2.offset034)
  2630. #define FLEXCAN2_ESR2 (IMXRT_FLEXCAN2.offset038)
  2631. #define FLEXCAN2_CRCR (IMXRT_FLEXCAN2.offset044)
  2632. #define FLEXCAN2_RXFGMASK (IMXRT_FLEXCAN2.offset048)
  2633. #define FLEXCAN2_RXFIR (IMXRT_FLEXCAN2.offset04C)
  2634. #define FLEXCAN2_RXIMR0 (IMXRT_FLEXCAN2_MASK.offset080)
  2635. #define FLEXCAN2_RXIMR1 (IMXRT_FLEXCAN2_MASK.offset084)
  2636. #define FLEXCAN2_RXIMR2 (IMXRT_FLEXCAN2_MASK.offset088)
  2637. #define FLEXCAN2_RXIMR3 (IMXRT_FLEXCAN2_MASK.offset08C)
  2638. #define FLEXCAN2_RXIMR4 (IMXRT_FLEXCAN2_MASK.offset090)
  2639. #define FLEXCAN2_RXIMR5 (IMXRT_FLEXCAN2_MASK.offset094)
  2640. #define FLEXCAN2_RXIMR6 (IMXRT_FLEXCAN2_MASK.offset098)
  2641. #define FLEXCAN2_RXIMR7 (IMXRT_FLEXCAN2_MASK.offset09C)
  2642. #define FLEXCAN2_RXIMR8 (IMXRT_FLEXCAN2_MASK.offset0A0)
  2643. #define FLEXCAN2_RXIMR9 (IMXRT_FLEXCAN2_MASK.offset0A4)
  2644. #define FLEXCAN2_RXIMR10 (IMXRT_FLEXCAN2_MASK.offset0A8)
  2645. #define FLEXCAN2_RXIMR11 (IMXRT_FLEXCAN2_MASK.offset0AC)
  2646. #define FLEXCAN2_RXIMR12 (IMXRT_FLEXCAN2_MASK.offset0B0)
  2647. #define FLEXCAN2_RXIMR13 (IMXRT_FLEXCAN2_MASK.offset0B4)
  2648. #define FLEXCAN2_RXIMR14 (IMXRT_FLEXCAN2_MASK.offset0B8)
  2649. #define FLEXCAN2_RXIMR15 (IMXRT_FLEXCAN2_MASK.offset0BC)
  2650. #define FLEXCAN2_RXIMR16 (IMXRT_FLEXCAN2_MASK.offset0C0)
  2651. #define FLEXCAN2_RXIMR17 (IMXRT_FLEXCAN2_MASK.offset0C4)
  2652. #define FLEXCAN2_RXIMR18 (IMXRT_FLEXCAN2_MASK.offset0C8)
  2653. #define FLEXCAN2_RXIMR19 (IMXRT_FLEXCAN2_MASK.offset0CC)
  2654. #define FLEXCAN2_RXIMR20 (IMXRT_FLEXCAN2_MASK.offset0D0)
  2655. #define FLEXCAN2_RXIMR21 (IMXRT_FLEXCAN2_MASK.offset0D4)
  2656. #define FLEXCAN2_RXIMR22 (IMXRT_FLEXCAN2_MASK.offset0D8)
  2657. #define FLEXCAN2_RXIMR23 (IMXRT_FLEXCAN2_MASK.offset0DC)
  2658. #define FLEXCAN2_RXIMR24 (IMXRT_FLEXCAN2_MASK.offset0E0)
  2659. #define FLEXCAN2_RXIMR25 (IMXRT_FLEXCAN2_MASK.offset0E4)
  2660. #define FLEXCAN2_RXIMR26 (IMXRT_FLEXCAN2_MASK.offset0E8)
  2661. #define FLEXCAN2_RXIMR27 (IMXRT_FLEXCAN2_MASK.offset0EC)
  2662. #define FLEXCAN2_RXIMR28 (IMXRT_FLEXCAN2_MASK.offset0F0)
  2663. #define FLEXCAN2_RXIMR29 (IMXRT_FLEXCAN2_MASK.offset0F4)
  2664. #define FLEXCAN2_RXIMR30 (IMXRT_FLEXCAN2_MASK.offset0F8)
  2665. #define FLEXCAN2_RXIMR31 (IMXRT_FLEXCAN2_MASK.offset0FC)
  2666. #define FLEXCAN2_RXIMR32 (IMXRT_FLEXCAN2_MASK.offset100)
  2667. #define FLEXCAN2_RXIMR33 (IMXRT_FLEXCAN2_MASK.offset104)
  2668. #define FLEXCAN2_RXIMR34 (IMXRT_FLEXCAN2_MASK.offset108)
  2669. #define FLEXCAN2_RXIMR35 (IMXRT_FLEXCAN2_MASK.offset10C)
  2670. #define FLEXCAN2_RXIMR36 (IMXRT_FLEXCAN2_MASK.offset110)
  2671. #define FLEXCAN2_RXIMR37 (IMXRT_FLEXCAN2_MASK.offset114)
  2672. #define FLEXCAN2_RXIMR38 (IMXRT_FLEXCAN2_MASK.offset118)
  2673. #define FLEXCAN2_RXIMR39 (IMXRT_FLEXCAN2_MASK.offset11C)
  2674. #define FLEXCAN2_RXIMR40 (IMXRT_FLEXCAN2_MASK.offset120)
  2675. #define FLEXCAN2_RXIMR41 (IMXRT_FLEXCAN2_MASK.offset124)
  2676. #define FLEXCAN2_RXIMR42 (IMXRT_FLEXCAN2_MASK.offset128)
  2677. #define FLEXCAN2_RXIMR43 (IMXRT_FLEXCAN2_MASK.offset12C)
  2678. #define FLEXCAN2_RXIMR44 (IMXRT_FLEXCAN2_MASK.offset130)
  2679. #define FLEXCAN2_RXIMR45 (IMXRT_FLEXCAN2_MASK.offset134)
  2680. #define FLEXCAN2_RXIMR46 (IMXRT_FLEXCAN2_MASK.offset138)
  2681. #define FLEXCAN2_RXIMR47 (IMXRT_FLEXCAN2_MASK.offset13C)
  2682. #define FLEXCAN2_RXIMR48 (IMXRT_FLEXCAN2_MASK.offset140)
  2683. #define FLEXCAN2_RXIMR49 (IMXRT_FLEXCAN2_MASK.offset144)
  2684. #define FLEXCAN2_RXIMR50 (IMXRT_FLEXCAN2_MASK.offset148)
  2685. #define FLEXCAN2_RXIMR51 (IMXRT_FLEXCAN2_MASK.offset14C)
  2686. #define FLEXCAN2_RXIMR52 (IMXRT_FLEXCAN2_MASK.offset150)
  2687. #define FLEXCAN2_RXIMR53 (IMXRT_FLEXCAN2_MASK.offset154)
  2688. #define FLEXCAN2_RXIMR54 (IMXRT_FLEXCAN2_MASK.offset158)
  2689. #define FLEXCAN2_RXIMR55 (IMXRT_FLEXCAN2_MASK.offset15C)
  2690. #define FLEXCAN2_RXIMR56 (IMXRT_FLEXCAN2_MASK.offset160)
  2691. #define FLEXCAN2_RXIMR57 (IMXRT_FLEXCAN2_MASK.offset164)
  2692. #define FLEXCAN2_RXIMR58 (IMXRT_FLEXCAN2_MASK.offset168)
  2693. #define FLEXCAN2_RXIMR59 (IMXRT_FLEXCAN2_MASK.offset16C)
  2694. #define FLEXCAN2_RXIMR60 (IMXRT_FLEXCAN2_MASK.offset170)
  2695. #define FLEXCAN2_RXIMR61 (IMXRT_FLEXCAN2_MASK.offset174)
  2696. #define FLEXCAN2_RXIMR62 (IMXRT_FLEXCAN2_MASK.offset178)
  2697. #define FLEXCAN2_RXIMR63 (IMXRT_FLEXCAN2_MASK.offset17C)
  2698. #define FLEXCAN2_GFWR (IMXRT_FLEXCAN2_MASK.offset1E0)
  2699. // 27.3.1.1: page 1292
  2700. #define IMXRT_FLEXIO1 (*(IMXRT_REGISTER32_t *)0x401AC000)
  2701. #define IMXRT_FLEXIO1_b (*(IMXRT_REGISTER32_t *)0x401AC400)
  2702. #define FLEXIO1_VERID (IMXRT_FLEXIO1.offset000)
  2703. #define FLEXIO1_PARAM (IMXRT_FLEXIO1.offset004)
  2704. #define FLEXIO1_CTRL (IMXRT_FLEXIO1.offset008)
  2705. #define FLEXIO1_PIN (IMXRT_FLEXIO1.offset00C)
  2706. #define FLEXIO1_SHIFTSTAT (IMXRT_FLEXIO1.offset010)
  2707. #define FLEXIO1_SHIFTERR (IMXRT_FLEXIO1.offset014)
  2708. #define FLEXIO1_TIMSTAT (IMXRT_FLEXIO1.offset018)
  2709. #define FLEXIO1_SHIFTSIEN (IMXRT_FLEXIO1.offset020)
  2710. #define FLEXIO1_SHIFTEIEN (IMXRT_FLEXIO1.offset024)
  2711. #define FLEXIO1_TIMIEN (IMXRT_FLEXIO1.offset028)
  2712. #define FLEXIO1_SHIFTSDEN (IMXRT_FLEXIO1.offset030)
  2713. #define FLEXIO1_SHIFTSTATE (IMXRT_FLEXIO1.offset040)
  2714. #define FLEXIO1_SHIFTCTL0 (IMXRT_FLEXIO1.offset080)
  2715. #define FLEXIO1_SHIFTCTL1 (IMXRT_FLEXIO1.offset084)
  2716. #define FLEXIO1_SHIFTCTL2 (IMXRT_FLEXIO1.offset088)
  2717. #define FLEXIO1_SHIFTCTL3 (IMXRT_FLEXIO1.offset08C)
  2718. #define FLEXIO1_SHIFTCFG0 (IMXRT_FLEXIO1.offset100)
  2719. #define FLEXIO1_SHIFTCFG1 (IMXRT_FLEXIO1.offset104)
  2720. #define FLEXIO1_SHIFTCFG2 (IMXRT_FLEXIO1.offset108)
  2721. #define FLEXIO1_SHIFTCFG3 (IMXRT_FLEXIO1.offset10C)
  2722. #define FLEXIO1_SHIFTBUF0 (IMXRT_FLEXIO1.offset200)
  2723. #define FLEXIO1_SHIFTBUF1 (IMXRT_FLEXIO1.offset204)
  2724. #define FLEXIO1_SHIFTBUF2 (IMXRT_FLEXIO1.offset208)
  2725. #define FLEXIO1_SHIFTBUF3 (IMXRT_FLEXIO1.offset20C)
  2726. #define FLEXIO1_SHIFTBUFBIS0 (IMXRT_FLEXIO1.offset280)
  2727. #define FLEXIO1_SHIFTBUFBIS1 (IMXRT_FLEXIO1.offset284)
  2728. #define FLEXIO1_SHIFTBUFBIS2 (IMXRT_FLEXIO1.offset288)
  2729. #define FLEXIO1_SHIFTBUFBIS3 (IMXRT_FLEXIO1.offset28C)
  2730. #define FLEXIO1_SHIFTBUFBYS0 (IMXRT_FLEXIO1.offset300)
  2731. #define FLEXIO1_SHIFTBUFBYS1 (IMXRT_FLEXIO1.offset304)
  2732. #define FLEXIO1_SHIFTBUFBYS2 (IMXRT_FLEXIO1.offset308)
  2733. #define FLEXIO1_SHIFTBUFBYS3 (IMXRT_FLEXIO1.offset30C)
  2734. #define FLEXIO1_SHIFTBUFBBS0 (IMXRT_FLEXIO1.offset380)
  2735. #define FLEXIO1_SHIFTBUFBBS1 (IMXRT_FLEXIO1.offset384)
  2736. #define FLEXIO1_SHIFTBUFBBS2 (IMXRT_FLEXIO1.offset388)
  2737. #define FLEXIO1_SHIFTBUFBBS3 (IMXRT_FLEXIO1.offset38C)
  2738. #define FLEXIO1_TIMCTL0 (IMXRT_FLEXIO1_b.offset000)
  2739. #define FLEXIO1_TIMCTL1 (IMXRT_FLEXIO1_b.offset004)
  2740. #define FLEXIO1_TIMCTL2 (IMXRT_FLEXIO1_b.offset008)
  2741. #define FLEXIO1_TIMCTL3 (IMXRT_FLEXIO1_b.offset00C)
  2742. #define FLEXIO1_TIMCFG0 (IMXRT_FLEXIO1_b.offset080)
  2743. #define FLEXIO1_TIMCFG1 (IMXRT_FLEXIO1_b.offset084)
  2744. #define FLEXIO1_TIMCFG2 (IMXRT_FLEXIO1_b.offset088)
  2745. #define FLEXIO1_TIMCFG3 (IMXRT_FLEXIO1_b.offset08C)
  2746. #define FLEXIO1_TIMCMP0 (IMXRT_FLEXIO1_b.offset100)
  2747. #define FLEXIO1_TIMCMP1 (IMXRT_FLEXIO1_b.offset104)
  2748. #define FLEXIO1_TIMCMP2 (IMXRT_FLEXIO1_b.offset108)
  2749. #define FLEXIO1_TIMCMP3 (IMXRT_FLEXIO1_b.offset10C)
  2750. #define FLEXIO1_SHIFTBUFNBS0 (IMXRT_FLEXIO1_b.offset280)
  2751. #define FLEXIO1_SHIFTBUFNBS1 (IMXRT_FLEXIO1_b.offset284)
  2752. #define FLEXIO1_SHIFTBUFNBS2 (IMXRT_FLEXIO1_b.offset288)
  2753. #define FLEXIO1_SHIFTBUFNBS3 (IMXRT_FLEXIO1_b.offset28C)
  2754. #define FLEXIO1_SHIFTBUFHWS0 (IMXRT_FLEXIO1_b.offset300)
  2755. #define FLEXIO1_SHIFTBUFHWS1 (IMXRT_FLEXIO1_b.offset304)
  2756. #define FLEXIO1_SHIFTBUFHWS2 (IMXRT_FLEXIO1_b.offset308)
  2757. #define FLEXIO1_SHIFTBUFHWS3 (IMXRT_FLEXIO1_b.offset30C)
  2758. #define FLEXIO1_SHIFTBUFNIS0 (IMXRT_FLEXIO1_b.offset380)
  2759. #define FLEXIO1_SHIFTBUFNIS1 (IMXRT_FLEXIO1_b.offset384)
  2760. #define FLEXIO1_SHIFTBUFNIS2 (IMXRT_FLEXIO1_b.offset388)
  2761. #define FLEXIO1_SHIFTBUFNIS3 (IMXRT_FLEXIO1_b.offset38C)
  2762. #define IMXRT_FLEXIO2 (*(IMXRT_REGISTER32_t *)0x401B0000)
  2763. #define IMXRT_FLEXIO2_b (*(IMXRT_REGISTER32_t *)0x401B0400)
  2764. #define FLEXIO2_VERID (IMXRT_FLEXIO2.offset000)
  2765. #define FLEXIO2_PARAM (IMXRT_FLEXIO2.offset004)
  2766. #define FLEXIO2_CTRL (IMXRT_FLEXIO2.offset008)
  2767. #define FLEXIO2_PIN (IMXRT_FLEXIO2.offset00C)
  2768. #define FLEXIO2_SHIFTSTAT (IMXRT_FLEXIO2.offset010)
  2769. #define FLEXIO2_SHIFTERR (IMXRT_FLEXIO2.offset014)
  2770. #define FLEXIO2_TIMSTAT (IMXRT_FLEXIO2.offset018)
  2771. #define FLEXIO2_SHIFTSIEN (IMXRT_FLEXIO2.offset020)
  2772. #define FLEXIO2_SHIFTEIEN (IMXRT_FLEXIO2.offset024)
  2773. #define FLEXIO2_TIMIEN (IMXRT_FLEXIO2.offset028)
  2774. #define FLEXIO2_SHIFTSDEN (IMXRT_FLEXIO2.offset030)
  2775. #define FLEXIO2_SHIFTSTATE (IMXRT_FLEXIO2.offset040)
  2776. #define FLEXIO2_SHIFTCTL0 (IMXRT_FLEXIO2.offset080)
  2777. #define FLEXIO2_SHIFTCTL1 (IMXRT_FLEXIO2.offset084)
  2778. #define FLEXIO2_SHIFTCTL2 (IMXRT_FLEXIO2.offset088)
  2779. #define FLEXIO2_SHIFTCTL3 (IMXRT_FLEXIO2.offset08C)
  2780. #define FLEXIO2_SHIFTCFG0 (IMXRT_FLEXIO2.offset100)
  2781. #define FLEXIO2_SHIFTCFG1 (IMXRT_FLEXIO2.offset104)
  2782. #define FLEXIO2_SHIFTCFG2 (IMXRT_FLEXIO2.offset108)
  2783. #define FLEXIO2_SHIFTCFG3 (IMXRT_FLEXIO2.offset10C)
  2784. #define FLEXIO2_SHIFTBUF0 (IMXRT_FLEXIO2.offset200)
  2785. #define FLEXIO2_SHIFTBUF1 (IMXRT_FLEXIO2.offset204)
  2786. #define FLEXIO2_SHIFTBUF2 (IMXRT_FLEXIO2.offset208)
  2787. #define FLEXIO2_SHIFTBUF3 (IMXRT_FLEXIO2.offset20C)
  2788. #define FLEXIO2_SHIFTBUFBIS0 (IMXRT_FLEXIO2.offset280)
  2789. #define FLEXIO2_SHIFTBUFBIS1 (IMXRT_FLEXIO2.offset284)
  2790. #define FLEXIO2_SHIFTBUFBIS2 (IMXRT_FLEXIO2.offset288)
  2791. #define FLEXIO2_SHIFTBUFBIS3 (IMXRT_FLEXIO2.offset28C)
  2792. #define FLEXIO2_SHIFTBUFBYS0 (IMXRT_FLEXIO2.offset300)
  2793. #define FLEXIO2_SHIFTBUFBYS1 (IMXRT_FLEXIO2.offset304)
  2794. #define FLEXIO2_SHIFTBUFBYS2 (IMXRT_FLEXIO2.offset308)
  2795. #define FLEXIO2_SHIFTBUFBYS3 (IMXRT_FLEXIO2.offset30C)
  2796. #define FLEXIO2_SHIFTBUFBBS0 (IMXRT_FLEXIO2.offset380)
  2797. #define FLEXIO2_SHIFTBUFBBS1 (IMXRT_FLEXIO2.offset384)
  2798. #define FLEXIO2_SHIFTBUFBBS2 (IMXRT_FLEXIO2.offset388)
  2799. #define FLEXIO2_SHIFTBUFBBS3 (IMXRT_FLEXIO2.offset38C)
  2800. #define FLEXIO2_TIMCTL0 (IMXRT_FLEXIO2_b.offset000)
  2801. #define FLEXIO2_TIMCTL1 (IMXRT_FLEXIO2_b.offset004)
  2802. #define FLEXIO2_TIMCTL2 (IMXRT_FLEXIO2_b.offset008)
  2803. #define FLEXIO2_TIMCTL3 (IMXRT_FLEXIO2_b.offset00C)
  2804. #define FLEXIO2_TIMCFG0 (IMXRT_FLEXIO2_b.offset080)
  2805. #define FLEXIO2_TIMCFG1 (IMXRT_FLEXIO2_b.offset084)
  2806. #define FLEXIO2_TIMCFG2 (IMXRT_FLEXIO2_b.offset088)
  2807. #define FLEXIO2_TIMCFG3 (IMXRT_FLEXIO2_b.offset08C)
  2808. #define FLEXIO2_TIMCMP0 (IMXRT_FLEXIO2_b.offset100)
  2809. #define FLEXIO2_TIMCMP1 (IMXRT_FLEXIO2_b.offset104)
  2810. #define FLEXIO2_TIMCMP2 (IMXRT_FLEXIO2_b.offset108)
  2811. #define FLEXIO2_TIMCMP3 (IMXRT_FLEXIO2_b.offset10C)
  2812. #define FLEXIO2_SHIFTBUFNBS0 (IMXRT_FLEXIO2_b.offset280)
  2813. #define FLEXIO2_SHIFTBUFNBS1 (IMXRT_FLEXIO2_b.offset284)
  2814. #define FLEXIO2_SHIFTBUFNBS2 (IMXRT_FLEXIO2_b.offset288)
  2815. #define FLEXIO2_SHIFTBUFNBS3 (IMXRT_FLEXIO2_b.offset28C)
  2816. #define FLEXIO2_SHIFTBUFHWS0 (IMXRT_FLEXIO2_b.offset300)
  2817. #define FLEXIO2_SHIFTBUFHWS1 (IMXRT_FLEXIO2_b.offset304)
  2818. #define FLEXIO2_SHIFTBUFHWS2 (IMXRT_FLEXIO2_b.offset308)
  2819. #define FLEXIO2_SHIFTBUFHWS3 (IMXRT_FLEXIO2_b.offset30C)
  2820. #define FLEXIO2_SHIFTBUFNIS0 (IMXRT_FLEXIO2_b.offset380)
  2821. #define FLEXIO2_SHIFTBUFNIS1 (IMXRT_FLEXIO2_b.offset384)
  2822. #define FLEXIO2_SHIFTBUFNIS2 (IMXRT_FLEXIO2_b.offset388)
  2823. #define FLEXIO2_SHIFTBUFNIS3 (IMXRT_FLEXIO2_b.offset38C)
  2824. // FLEXIO3 only present in RT1062
  2825. #define IMXRT_FLEXIO3 (*(IMXRT_REGISTER32_t *)0x42020000)
  2826. #define IMXRT_FLEXIO3_b (*(IMXRT_REGISTER32_t *)0x42020400)
  2827. #define FLEXIO3_VERID (IMXRT_FLEXIO3.offset000)
  2828. #define FLEXIO3_PARAM (IMXRT_FLEXIO3.offset004)
  2829. #define FLEXIO3_CTRL (IMXRT_FLEXIO3.offset008)
  2830. #define FLEXIO3_PIN (IMXRT_FLEXIO3.offset00C)
  2831. #define FLEXIO3_SHIFTSTAT (IMXRT_FLEXIO3.offset010)
  2832. #define FLEXIO3_SHIFTERR (IMXRT_FLEXIO3.offset014)
  2833. #define FLEXIO3_TIMSTAT (IMXRT_FLEXIO3.offset018)
  2834. #define FLEXIO3_SHIFTSIEN (IMXRT_FLEXIO3.offset020)
  2835. #define FLEXIO3_SHIFTEIEN (IMXRT_FLEXIO3.offset024)
  2836. #define FLEXIO3_TIMIEN (IMXRT_FLEXIO3.offset028)
  2837. #define FLEXIO3_SHIFTSDEN (IMXRT_FLEXIO3.offset030)
  2838. #define FLEXIO3_SHIFTSTATE (IMXRT_FLEXIO3.offset040)
  2839. #define FLEXIO3_SHIFTCTL0 (IMXRT_FLEXIO3.offset080)
  2840. #define FLEXIO3_SHIFTCTL1 (IMXRT_FLEXIO3.offset084)
  2841. #define FLEXIO3_SHIFTCTL2 (IMXRT_FLEXIO3.offset088)
  2842. #define FLEXIO3_SHIFTCTL3 (IMXRT_FLEXIO3.offset08C)
  2843. #define FLEXIO3_SHIFTCFG0 (IMXRT_FLEXIO3.offset100)
  2844. #define FLEXIO3_SHIFTCFG1 (IMXRT_FLEXIO3.offset104)
  2845. #define FLEXIO3_SHIFTCFG2 (IMXRT_FLEXIO3.offset108)
  2846. #define FLEXIO3_SHIFTCFG3 (IMXRT_FLEXIO3.offset10C)
  2847. #define FLEXIO3_SHIFTBUF0 (IMXRT_FLEXIO3.offset200)
  2848. #define FLEXIO3_SHIFTBUF1 (IMXRT_FLEXIO3.offset204)
  2849. #define FLEXIO3_SHIFTBUF2 (IMXRT_FLEXIO3.offset208)
  2850. #define FLEXIO3_SHIFTBUF3 (IMXRT_FLEXIO3.offset20C)
  2851. #define FLEXIO3_SHIFTBUFBIS0 (IMXRT_FLEXIO3.offset280)
  2852. #define FLEXIO3_SHIFTBUFBIS1 (IMXRT_FLEXIO3.offset284)
  2853. #define FLEXIO3_SHIFTBUFBIS2 (IMXRT_FLEXIO3.offset288)
  2854. #define FLEXIO3_SHIFTBUFBIS3 (IMXRT_FLEXIO3.offset28C)
  2855. #define FLEXIO3_SHIFTBUFBYS0 (IMXRT_FLEXIO3.offset300)
  2856. #define FLEXIO3_SHIFTBUFBYS1 (IMXRT_FLEXIO3.offset304)
  2857. #define FLEXIO3_SHIFTBUFBYS2 (IMXRT_FLEXIO3.offset308)
  2858. #define FLEXIO3_SHIFTBUFBYS3 (IMXRT_FLEXIO3.offset30C)
  2859. #define FLEXIO3_SHIFTBUFBBS0 (IMXRT_FLEXIO3.offset380)
  2860. #define FLEXIO3_SHIFTBUFBBS1 (IMXRT_FLEXIO3.offset384)
  2861. #define FLEXIO3_SHIFTBUFBBS2 (IMXRT_FLEXIO3.offset388)
  2862. #define FLEXIO3_SHIFTBUFBBS3 (IMXRT_FLEXIO3.offset38C)
  2863. #define FLEXIO3_TIMCTL0 (IMXRT_FLEXIO3_b.offset000)
  2864. #define FLEXIO3_TIMCTL1 (IMXRT_FLEXIO3_b.offset004)
  2865. #define FLEXIO3_TIMCTL2 (IMXRT_FLEXIO3_b.offset008)
  2866. #define FLEXIO3_TIMCTL3 (IMXRT_FLEXIO3_b.offset00C)
  2867. #define FLEXIO3_TIMCFG0 (IMXRT_FLEXIO3_b.offset080)
  2868. #define FLEXIO3_TIMCFG1 (IMXRT_FLEXIO3_b.offset084)
  2869. #define FLEXIO3_TIMCFG2 (IMXRT_FLEXIO3_b.offset088)
  2870. #define FLEXIO3_TIMCFG3 (IMXRT_FLEXIO3_b.offset08C)
  2871. #define FLEXIO3_TIMCMP0 (IMXRT_FLEXIO3_b.offset100)
  2872. #define FLEXIO3_TIMCMP1 (IMXRT_FLEXIO3_b.offset104)
  2873. #define FLEXIO3_TIMCMP2 (IMXRT_FLEXIO3_b.offset108)
  2874. #define FLEXIO3_TIMCMP3 (IMXRT_FLEXIO3_b.offset10C)
  2875. #define FLEXIO3_SHIFTBUFNBS0 (IMXRT_FLEXIO3_b.offset280)
  2876. #define FLEXIO3_SHIFTBUFNBS1 (IMXRT_FLEXIO3_b.offset284)
  2877. #define FLEXIO3_SHIFTBUFNBS2 (IMXRT_FLEXIO3_b.offset288)
  2878. #define FLEXIO3_SHIFTBUFNBS3 (IMXRT_FLEXIO3_b.offset28C)
  2879. #define FLEXIO3_SHIFTBUFHWS0 (IMXRT_FLEXIO3_b.offset300)
  2880. #define FLEXIO3_SHIFTBUFHWS1 (IMXRT_FLEXIO3_b.offset304)
  2881. #define FLEXIO3_SHIFTBUFHWS2 (IMXRT_FLEXIO3_b.offset308)
  2882. #define FLEXIO3_SHIFTBUFHWS3 (IMXRT_FLEXIO3_b.offset30C)
  2883. #define FLEXIO3_SHIFTBUFNIS0 (IMXRT_FLEXIO3_b.offset380)
  2884. #define FLEXIO3_SHIFTBUFNIS1 (IMXRT_FLEXIO3_b.offset384)
  2885. #define FLEXIO3_SHIFTBUFNIS2 (IMXRT_FLEXIO3_b.offset388)
  2886. #define FLEXIO3_SHIFTBUFNIS3 (IMXRT_FLEXIO3_b.offset38C)
  2887. #define FLEXIO_CTRL_DOZEN ((uint16_t)(1<<31))
  2888. #define FLEXIO_CTRL_DBGE ((uint16_t)(1<<30))
  2889. #define FLEXIO_CTRL_FASTACC ((uint16_t)(1<<2))
  2890. #define FLEXIO_CTRL_SWRST ((uint16_t)(1<<1))
  2891. #define FLEXIO_CTRL_FLEXEN ((uint16_t)(1<<0))
  2892. #define FLEXIO_SHIFTCTL_TIMSEL(n) ((uint16_t)(((n) & 0x03) << 24))
  2893. #define FLEXIO_SHIFTCTL_TIMPOL ((uint16_t)(1<<23))
  2894. #define FLEXIO_SHIFTCTL_PINCFG(n) ((uint16_t)(((n) & 0x03) << 16))
  2895. #define FLEXIO_SHIFTCTL_PINSEL(n) ((uint16_t)(((n) & 0x1F) << 8))
  2896. #define FLEXIO_SHIFTCTL_PINPOL ((uint16_t)(1<<7))
  2897. #define FLEXIO_SHIFTCTL_SMOD(n) ((uint16_t)(((n) & 0x07) << 0))
  2898. #define FLEXIO_SHIFTCFG_PWIDTH(n) ((uint16_t)(((n) & 0x1F) << 16))
  2899. #define FLEXIO_SHIFTCFG_INSRC ((uint16_t)(1<<8))
  2900. #define FLEXIO_SHIFTCFG_SSTOP(n) ((uint16_t)(((n) & 0x03) << 4))
  2901. #define FLEXIO_SHIFTCFG_SSTART(n) ((uint16_t)(((n) & 0x03) << 0))
  2902. #define FLEXIO_TIMCTL_TRGSEL(n) ((uint16_t)(((n) & 0x3F) << 24))
  2903. #define FLEXIO_TIMCTL_TRGPOL ((uint16_t)(1<<23))
  2904. #define FLEXIO_TIMCTL_TRGSRC ((uint16_t)(1<<22))
  2905. #define FLEXIO_TIMCTL_PINCFG(n) ((uint16_t)(((n) & 0x03) << 16))
  2906. #define FLEXIO_TIMCTL_PINSEL(n) ((uint16_t)(((n) & 0x1F) << 8))
  2907. #define FLEXIO_TIMCTL_PINPOL ((uint16_t)(1<<7))
  2908. #define FLEXIO_TIMCTL_TIMOD(n) ((uint16_t)(((n) & 0x03) << 0))
  2909. #define FLEXIO_TIMCFG_TIMOUT(n) ((uint16_t)(((n) & 0x03) << 24))
  2910. #define FLEXIO_TIMCFG_TIMDEC(n) ((uint16_t)(((n) & 0x03) << 20))
  2911. #define FLEXIO_TIMCFG_TIMRST(n) ((uint16_t)(((n) & 0x07) << 16))
  2912. #define FLEXIO_TIMCFG_TIMDIS(n) ((uint16_t)(((n) & 0x07) << 12))
  2913. #define FLEXIO_TIMCFG_TIMENA(n) ((uint16_t)(((n) & 0x07) << 8))
  2914. #define FLEXIO_TIMCFG_TSTOP(n) ((uint16_t)(((n) & 0x03) << 4))
  2915. #define FLEXIO_TIMCFG_TSTART ((uint16_t)(1<<1))
  2916. // 28.4.1: page 1354
  2917. typedef struct {
  2918. struct {
  2919. volatile uint16_t CNT;
  2920. volatile uint16_t INIT;
  2921. volatile uint16_t CTRL2;
  2922. volatile uint16_t CTRL;
  2923. volatile uint16_t unused1;
  2924. volatile uint16_t VAL0;
  2925. volatile uint16_t FRACVAL1;
  2926. volatile uint16_t VAL1;
  2927. volatile uint16_t FRACVAL2;
  2928. volatile uint16_t VAL2;
  2929. volatile uint16_t FRACVAL3;
  2930. volatile uint16_t VAL3;
  2931. volatile uint16_t FRACVAL4;
  2932. volatile uint16_t VAL4;
  2933. volatile uint16_t FRACVAL5;
  2934. volatile uint16_t VAL5;
  2935. volatile uint16_t FRCTRL;
  2936. volatile uint16_t OCTRL;
  2937. volatile uint16_t STS;
  2938. volatile uint16_t INTEN;
  2939. volatile uint16_t DMAEN;
  2940. volatile uint16_t TCTRL;
  2941. volatile uint16_t DISMAP0;
  2942. volatile uint16_t DISMAP1;
  2943. volatile uint16_t DTCNT0;
  2944. volatile uint16_t DTCNT1;
  2945. volatile uint16_t CAPTCTRLA;
  2946. volatile uint16_t CAPTCOMPA;
  2947. volatile uint16_t CAPTCTRLB;
  2948. volatile uint16_t CAPTCOMPB;
  2949. volatile uint16_t CAPTCTRLX;
  2950. volatile uint16_t CAPTCOMPX;
  2951. volatile uint16_t CVAL0;
  2952. volatile uint16_t CVAL0CYC;
  2953. volatile uint16_t CVAL1;
  2954. volatile uint16_t CVAL1CYC;
  2955. volatile uint16_t CVAL2;
  2956. volatile uint16_t CVAL2CYC;
  2957. volatile uint16_t CVAL3;
  2958. volatile uint16_t CVAL3CYC;
  2959. volatile uint16_t CVAL4;
  2960. volatile uint16_t CVAL4CYC;
  2961. volatile uint16_t CVAL5;
  2962. volatile uint16_t CVAL5CYC;
  2963. volatile uint16_t unused2;
  2964. volatile uint16_t unused3;
  2965. volatile uint16_t unused4;
  2966. volatile uint16_t unused5;
  2967. } SM[4];
  2968. volatile uint16_t OUTEN;
  2969. volatile uint16_t MASK;
  2970. volatile uint16_t SWCOUT;
  2971. volatile uint16_t DTSRCSEL;
  2972. volatile uint16_t MCTRL;
  2973. volatile uint16_t MCTRL2;
  2974. volatile uint16_t FCTRL0;
  2975. volatile uint16_t FSTS0;
  2976. volatile uint16_t FFILT0;
  2977. volatile uint16_t FTST0;
  2978. volatile uint16_t FCTRL20;
  2979. } IMXRT_FLEXPWM_t;
  2980. #define IMXRT_FLEXPWM1 (*(IMXRT_FLEXPWM_t *)0x403DC000)
  2981. #define IMXRT_FLEXPWM2 (*(IMXRT_FLEXPWM_t *)0x403E0000)
  2982. #define IMXRT_FLEXPWM3 (*(IMXRT_FLEXPWM_t *)0x403E4000)
  2983. #define IMXRT_FLEXPWM4 (*(IMXRT_FLEXPWM_t *)0x403E8000)
  2984. #define FLEXPWM1_SM0CNT (IMXRT_FLEXPWM1.SM[0].CNT)
  2985. #define FLEXPWM1_SM0INIT (IMXRT_FLEXPWM1.SM[0].INIT)
  2986. #define FLEXPWM1_SM0CTRL2 (IMXRT_FLEXPWM1.SM[0].CTRL2)
  2987. #define FLEXPWM1_SM0CTRL (IMXRT_FLEXPWM1.SM[0].CTRL)
  2988. #define FLEXPWM1_SM0VAL0 (IMXRT_FLEXPWM1.SM[0].VAL0)
  2989. #define FLEXPWM1_SM0FRACVAL1 (IMXRT_FLEXPWM1.SM[0].FRACVAL1)
  2990. #define FLEXPWM1_SM0VAL1 (IMXRT_FLEXPWM1.SM[0].VAL1)
  2991. #define FLEXPWM1_SM0FRACVAL2 (IMXRT_FLEXPWM1.SM[0].FRACVAL2)
  2992. #define FLEXPWM1_SM0VAL2 (IMXRT_FLEXPWM1.SM[0].VAL2)
  2993. #define FLEXPWM1_SM0FRACVAL3 (IMXRT_FLEXPWM1.SM[0].FRACVAL3)
  2994. #define FLEXPWM1_SM0VAL3 (IMXRT_FLEXPWM1.SM[0].VAL3)
  2995. #define FLEXPWM1_SM0FRACVAL4 (IMXRT_FLEXPWM1.SM[0].FRACVAL4)
  2996. #define FLEXPWM1_SM0VAL4 (IMXRT_FLEXPWM1.SM[0].VAL4)
  2997. #define FLEXPWM1_SM0FRACVAL5 (IMXRT_FLEXPWM1.SM[0].FRACVAL5)
  2998. #define FLEXPWM1_SM0VAL5 (IMXRT_FLEXPWM1.SM[0].VAL5)
  2999. #define FLEXPWM1_SM0FRCTRL (IMXRT_FLEXPWM1.SM[0].FRCTRL)
  3000. #define FLEXPWM1_SM0OCTRL (IMXRT_FLEXPWM1.SM[0].OCTRL)
  3001. #define FLEXPWM1_SM0STS (IMXRT_FLEXPWM1.SM[0].STS)
  3002. #define FLEXPWM1_SM0INTEN (IMXRT_FLEXPWM1.SM[0].INTEN)
  3003. #define FLEXPWM1_SM0DMAEN (IMXRT_FLEXPWM1.SM[0].DMAEN)
  3004. #define FLEXPWM1_SM0TCTRL (IMXRT_FLEXPWM1.SM[0].TCTRL)
  3005. #define FLEXPWM1_SM0DISMAP0 (IMXRT_FLEXPWM1.SM[0].DISMAP0)
  3006. #define FLEXPWM1_SM0DISMAP1 (IMXRT_FLEXPWM1.SM[0].DISMAP1)
  3007. #define FLEXPWM1_SM0DTCNT0 (IMXRT_FLEXPWM1.SM[0].DTCNT0)
  3008. #define FLEXPWM1_SM0DTCNT1 (IMXRT_FLEXPWM1.SM[0].DTCNT1)
  3009. #define FLEXPWM1_SM0CAPTCTRLA (IMXRT_FLEXPWM1.SM[0].CAPTCTRLA)
  3010. #define FLEXPWM1_SM0CAPTCOMPA (IMXRT_FLEXPWM1.SM[0].CAPTCOMPA)
  3011. #define FLEXPWM1_SM0CAPTCTRLB (IMXRT_FLEXPWM1.SM[0].CAPTCTRLB)
  3012. #define FLEXPWM1_SM0CAPTCOMPB (IMXRT_FLEXPWM1.SM[0].CAPTCOMPB)
  3013. #define FLEXPWM1_SM0CAPTCTRLX (IMXRT_FLEXPWM1.SM[0].CAPTCTRLX)
  3014. #define FLEXPWM1_SM0CAPTCOMPX (IMXRT_FLEXPWM1.SM[0].CAPTCOMPX)
  3015. #define FLEXPWM1_SM0CVAL0 (IMXRT_FLEXPWM1.SM[0].CVAL0)
  3016. #define FLEXPWM1_SM0CVAL0CYC (IMXRT_FLEXPWM1.SM[0].CVAL0CYC)
  3017. #define FLEXPWM1_SM0CVAL1 (IMXRT_FLEXPWM1.SM[0].CVAL1)
  3018. #define FLEXPWM1_SM0CVAL1CYC (IMXRT_FLEXPWM1.SM[0].CVAL1CYC)
  3019. #define FLEXPWM1_SM0CVAL2 (IMXRT_FLEXPWM1.SM[0].CVAL2)
  3020. #define FLEXPWM1_SM0CVAL2CYC (IMXRT_FLEXPWM1.SM[0].CVAL2CYC)
  3021. #define FLEXPWM1_SM0CVAL3 (IMXRT_FLEXPWM1.SM[0].CVAL3)
  3022. #define FLEXPWM1_SM0CVAL3CYC (IMXRT_FLEXPWM1.SM[0].CVAL3CYC)
  3023. #define FLEXPWM1_SM0CVAL4 (IMXRT_FLEXPWM1.SM[0].CVAL4)
  3024. #define FLEXPWM1_SM0CVAL4CYC (IMXRT_FLEXPWM1.SM[0].CVAL4CYC)
  3025. #define FLEXPWM1_SM0CVAL5 (IMXRT_FLEXPWM1.SM[0].CVAL5)
  3026. #define FLEXPWM1_SM0CVAL5CYC (IMXRT_FLEXPWM1.SM[0].CVAL5CYC)
  3027. #define FLEXPWM1_SM1CNT (IMXRT_FLEXPWM1.SM[1].CNT)
  3028. #define FLEXPWM1_SM1INIT (IMXRT_FLEXPWM1.SM[1].INIT)
  3029. #define FLEXPWM1_SM1CTRL2 (IMXRT_FLEXPWM1.SM[1].CTRL2)
  3030. #define FLEXPWM1_SM1CTRL (IMXRT_FLEXPWM1.SM[1].CTRL)
  3031. #define FLEXPWM1_SM1VAL0 (IMXRT_FLEXPWM1.SM[1].VAL0)
  3032. #define FLEXPWM1_SM1FRACVAL1 (IMXRT_FLEXPWM1.SM[1].FRACVAL1)
  3033. #define FLEXPWM1_SM1VAL1 (IMXRT_FLEXPWM1.SM[1].VAL1)
  3034. #define FLEXPWM1_SM1FRACVAL2 (IMXRT_FLEXPWM1.SM[1].FRACVAL2)
  3035. #define FLEXPWM1_SM1VAL2 (IMXRT_FLEXPWM1.SM[1].VAL2)
  3036. #define FLEXPWM1_SM1FRACVAL3 (IMXRT_FLEXPWM1.SM[1].FRACVAL3)
  3037. #define FLEXPWM1_SM1VAL3 (IMXRT_FLEXPWM1.SM[1].VAL3)
  3038. #define FLEXPWM1_SM1FRACVAL4 (IMXRT_FLEXPWM1.SM[1].FRACVAL4)
  3039. #define FLEXPWM1_SM1VAL4 (IMXRT_FLEXPWM1.SM[1].VAL4)
  3040. #define FLEXPWM1_SM1FRACVAL5 (IMXRT_FLEXPWM1.SM[1].FRACVAL5)
  3041. #define FLEXPWM1_SM1VAL5 (IMXRT_FLEXPWM1.SM[1].VAL5)
  3042. #define FLEXPWM1_SM1FRCTRL (IMXRT_FLEXPWM1.SM[1].FRCTRL)
  3043. #define FLEXPWM1_SM1OCTRL (IMXRT_FLEXPWM1.SM[1].OCTRL)
  3044. #define FLEXPWM1_SM1STS (IMXRT_FLEXPWM1.SM[1].STS)
  3045. #define FLEXPWM1_SM1INTEN (IMXRT_FLEXPWM1.SM[1].INTEN)
  3046. #define FLEXPWM1_SM1DMAEN (IMXRT_FLEXPWM1.SM[1].DMAEN)
  3047. #define FLEXPWM1_SM1TCTRL (IMXRT_FLEXPWM1.SM[1].TCTRL)
  3048. #define FLEXPWM1_SM1DISMAP0 (IMXRT_FLEXPWM1.SM[1].DISMAP0)
  3049. #define FLEXPWM1_SM1DISMAP1 (IMXRT_FLEXPWM1.SM[1].DISMAP1)
  3050. #define FLEXPWM1_SM1DTCNT0 (IMXRT_FLEXPWM1.SM[1].DTCNT0)
  3051. #define FLEXPWM1_SM1DTCNT1 (IMXRT_FLEXPWM1.SM[1].DTCNT1)
  3052. #define FLEXPWM1_SM1CAPTCTRLA (IMXRT_FLEXPWM1.SM[1].CAPTCTRLA)
  3053. #define FLEXPWM1_SM1CAPTCOMPA (IMXRT_FLEXPWM1.SM[1].CAPTCOMPA)
  3054. #define FLEXPWM1_SM1CAPTCTRLB (IMXRT_FLEXPWM1.SM[1].CAPTCTRLB)
  3055. #define FLEXPWM1_SM1CAPTCOMPB (IMXRT_FLEXPWM1.SM[1].CAPTCOMPB)
  3056. #define FLEXPWM1_SM1CAPTCTRLX (IMXRT_FLEXPWM1.SM[1].CAPTCTRLX)
  3057. #define FLEXPWM1_SM1CAPTCOMPX (IMXRT_FLEXPWM1.SM[1].CAPTCOMPX)
  3058. #define FLEXPWM1_SM1CVAL0 (IMXRT_FLEXPWM1.SM[1].CVAL0)
  3059. #define FLEXPWM1_SM1CVAL0CYC (IMXRT_FLEXPWM1.SM[1].CVAL0CYC)
  3060. #define FLEXPWM1_SM1CVAL1 (IMXRT_FLEXPWM1.SM[1].CVAL1)
  3061. #define FLEXPWM1_SM1CVAL1CYC (IMXRT_FLEXPWM1.SM[1].CVAL1CYC)
  3062. #define FLEXPWM1_SM1CVAL2 (IMXRT_FLEXPWM1.SM[1].CVAL2)
  3063. #define FLEXPWM1_SM1CVAL2CYC (IMXRT_FLEXPWM1.SM[1].CVAL2CYC)
  3064. #define FLEXPWM1_SM1CVAL3 (IMXRT_FLEXPWM1.SM[1].CVAL3)
  3065. #define FLEXPWM1_SM1CVAL3CYC (IMXRT_FLEXPWM1.SM[1].CVAL3CYC)
  3066. #define FLEXPWM1_SM1CVAL4 (IMXRT_FLEXPWM1.SM[1].CVAL4)
  3067. #define FLEXPWM1_SM1CVAL4CYC (IMXRT_FLEXPWM1.SM[1].CVAL4CYC)
  3068. #define FLEXPWM1_SM1CVAL5 (IMXRT_FLEXPWM1.SM[1].CVAL5)
  3069. #define FLEXPWM1_SM1CVAL5CYC (IMXRT_FLEXPWM1.SM[1].CVAL5CYC)
  3070. #define FLEXPWM1_SM2CNT (IMXRT_FLEXPWM1.SM[2].CNT)
  3071. #define FLEXPWM1_SM2INIT (IMXRT_FLEXPWM1.SM[2].INIT)
  3072. #define FLEXPWM1_SM2CTRL2 (IMXRT_FLEXPWM1.SM[2].CTRL2)
  3073. #define FLEXPWM1_SM2CTRL (IMXRT_FLEXPWM1.SM[2].CTRL)
  3074. #define FLEXPWM1_SM2VAL0 (IMXRT_FLEXPWM1.SM[2].VAL0)
  3075. #define FLEXPWM1_SM2FRACVAL1 (IMXRT_FLEXPWM1.SM[2].FRACVAL1)
  3076. #define FLEXPWM1_SM2VAL1 (IMXRT_FLEXPWM1.SM[2].VAL1)
  3077. #define FLEXPWM1_SM2FRACVAL2 (IMXRT_FLEXPWM1.SM[2].FRACVAL2)
  3078. #define FLEXPWM1_SM2VAL2 (IMXRT_FLEXPWM1.SM[2].VAL2)
  3079. #define FLEXPWM1_SM2FRACVAL3 (IMXRT_FLEXPWM1.SM[2].FRACVAL3)
  3080. #define FLEXPWM1_SM2VAL3 (IMXRT_FLEXPWM1.SM[2].VAL3)
  3081. #define FLEXPWM1_SM2FRACVAL4 (IMXRT_FLEXPWM1.SM[2].FRACVAL4)
  3082. #define FLEXPWM1_SM2VAL4 (IMXRT_FLEXPWM1.SM[2].VAL4)
  3083. #define FLEXPWM1_SM2FRACVAL5 (IMXRT_FLEXPWM1.SM[2].FRACVAL5)
  3084. #define FLEXPWM1_SM2VAL5 (IMXRT_FLEXPWM1.SM[2].VAL5)
  3085. #define FLEXPWM1_SM2FRCTRL (IMXRT_FLEXPWM1.SM[2].FRCTRL)
  3086. #define FLEXPWM1_SM2OCTRL (IMXRT_FLEXPWM1.SM[2].OCTRL)
  3087. #define FLEXPWM1_SM2STS (IMXRT_FLEXPWM1.SM[2].STS)
  3088. #define FLEXPWM1_SM2INTEN (IMXRT_FLEXPWM1.SM[2].INTEN)
  3089. #define FLEXPWM1_SM2DMAEN (IMXRT_FLEXPWM1.SM[2].DMAEN)
  3090. #define FLEXPWM1_SM2TCTRL (IMXRT_FLEXPWM1.SM[2].TCTRL)
  3091. #define FLEXPWM1_SM2DISMAP0 (IMXRT_FLEXPWM1.SM[2].DISMAP0)
  3092. #define FLEXPWM1_SM2DISMAP1 (IMXRT_FLEXPWM1.SM[2].DISMAP1)
  3093. #define FLEXPWM1_SM2DTCNT0 (IMXRT_FLEXPWM1.SM[2].DTCNT0)
  3094. #define FLEXPWM1_SM2DTCNT1 (IMXRT_FLEXPWM1.SM[2].DTCNT1)
  3095. #define FLEXPWM1_SM2CAPTCTRLA (IMXRT_FLEXPWM1.SM[2].CAPTCTRLA)
  3096. #define FLEXPWM1_SM2CAPTCOMPA (IMXRT_FLEXPWM1.SM[2].CAPTCOMPA)
  3097. #define FLEXPWM1_SM2CAPTCTRLB (IMXRT_FLEXPWM1.SM[2].CAPTCTRLB)
  3098. #define FLEXPWM1_SM2CAPTCOMPB (IMXRT_FLEXPWM1.SM[2].CAPTCOMPB)
  3099. #define FLEXPWM1_SM2CAPTCTRLX (IMXRT_FLEXPWM1.SM[2].CAPTCTRLX)
  3100. #define FLEXPWM1_SM2CAPTCOMPX (IMXRT_FLEXPWM1.SM[2].CAPTCOMPX)
  3101. #define FLEXPWM1_SM2CVAL0 (IMXRT_FLEXPWM1.SM[2].CVAL0)
  3102. #define FLEXPWM1_SM2CVAL0CYC (IMXRT_FLEXPWM1.SM[2].CVAL0CYC)
  3103. #define FLEXPWM1_SM2CVAL1 (IMXRT_FLEXPWM1.SM[2].CVAL1)
  3104. #define FLEXPWM1_SM2CVAL1CYC (IMXRT_FLEXPWM1.SM[2].CVAL1CYC)
  3105. #define FLEXPWM1_SM2CVAL2 (IMXRT_FLEXPWM1.SM[2].CVAL2)
  3106. #define FLEXPWM1_SM2CVAL2CYC (IMXRT_FLEXPWM1.SM[2].CVAL2CYC)
  3107. #define FLEXPWM1_SM2CVAL3 (IMXRT_FLEXPWM1.SM[2].CVAL3)
  3108. #define FLEXPWM1_SM2CVAL3CYC (IMXRT_FLEXPWM1.SM[2].CVAL3CYC)
  3109. #define FLEXPWM1_SM2CVAL4 (IMXRT_FLEXPWM1.SM[2].CVAL4)
  3110. #define FLEXPWM1_SM2CVAL4CYC (IMXRT_FLEXPWM1.SM[2].CVAL4CYC)
  3111. #define FLEXPWM1_SM2CVAL5 (IMXRT_FLEXPWM1.SM[2].CVAL5)
  3112. #define FLEXPWM1_SM2CVAL5CYC (IMXRT_FLEXPWM1.SM[2].CVAL5CYC)
  3113. #define FLEXPWM1_SM3CNT (IMXRT_FLEXPWM1.SM[3].CNT)
  3114. #define FLEXPWM1_SM3INIT (IMXRT_FLEXPWM1.SM[3].INIT)
  3115. #define FLEXPWM1_SM3CTRL2 (IMXRT_FLEXPWM1.SM[3].CTRL2)
  3116. #define FLEXPWM1_SM3CTRL (IMXRT_FLEXPWM1.SM[3].CTRL)
  3117. #define FLEXPWM1_SM3VAL0 (IMXRT_FLEXPWM1.SM[3].VAL0)
  3118. #define FLEXPWM1_SM3FRACVAL1 (IMXRT_FLEXPWM1.SM[3].FRACVAL1)
  3119. #define FLEXPWM1_SM3VAL1 (IMXRT_FLEXPWM1.SM[3].VAL1)
  3120. #define FLEXPWM1_SM3FRACVAL2 (IMXRT_FLEXPWM1.SM[3].FRACVAL2)
  3121. #define FLEXPWM1_SM3VAL2 (IMXRT_FLEXPWM1.SM[3].VAL2)
  3122. #define FLEXPWM1_SM3FRACVAL3 (IMXRT_FLEXPWM1.SM[3].FRACVAL3)
  3123. #define FLEXPWM1_SM3VAL3 (IMXRT_FLEXPWM1.SM[3].VAL3)
  3124. #define FLEXPWM1_SM3FRACVAL4 (IMXRT_FLEXPWM1.SM[3].FRACVAL4)
  3125. #define FLEXPWM1_SM3VAL4 (IMXRT_FLEXPWM1.SM[3].VAL4)
  3126. #define FLEXPWM1_SM3FRACVAL5 (IMXRT_FLEXPWM1.SM[3].FRACVAL5)
  3127. #define FLEXPWM1_SM3VAL5 (IMXRT_FLEXPWM1.SM[3].VAL5)
  3128. #define FLEXPWM1_SM3FRCTRL (IMXRT_FLEXPWM1.SM[3].FRCTRL)
  3129. #define FLEXPWM1_SM3OCTRL (IMXRT_FLEXPWM1.SM[3].OCTRL)
  3130. #define FLEXPWM1_SM3STS (IMXRT_FLEXPWM1.SM[3].STS)
  3131. #define FLEXPWM1_SM3INTEN (IMXRT_FLEXPWM1.SM[3].INTEN)
  3132. #define FLEXPWM1_SM3DMAEN (IMXRT_FLEXPWM1.SM[3].DMAEN)
  3133. #define FLEXPWM1_SM3TCTRL (IMXRT_FLEXPWM1.SM[3].TCTRL)
  3134. #define FLEXPWM1_SM3DISMAP0 (IMXRT_FLEXPWM1.SM[3].DISMAP0)
  3135. #define FLEXPWM1_SM3DISMAP1 (IMXRT_FLEXPWM1.SM[3].DISMAP1)
  3136. #define FLEXPWM1_SM3DTCNT0 (IMXRT_FLEXPWM1.SM[3].DTCNT0)
  3137. #define FLEXPWM1_SM3DTCNT1 (IMXRT_FLEXPWM1.SM[3].DTCNT1)
  3138. #define FLEXPWM1_SM3CAPTCTRLA (IMXRT_FLEXPWM1.SM[3].CAPTCTRLA)
  3139. #define FLEXPWM1_SM3CAPTCOMPA (IMXRT_FLEXPWM1.SM[3].CAPTCOMPA)
  3140. #define FLEXPWM1_SM3CAPTCTRLB (IMXRT_FLEXPWM1.SM[3].CAPTCTRLB)
  3141. #define FLEXPWM1_SM3CAPTCOMPB (IMXRT_FLEXPWM1.SM[3].CAPTCOMPB)
  3142. #define FLEXPWM1_SM3CAPTCTRLX (IMXRT_FLEXPWM1.SM[3].CAPTCTRLX)
  3143. #define FLEXPWM1_SM3CAPTCOMPX (IMXRT_FLEXPWM1.SM[3].CAPTCOMPX)
  3144. #define FLEXPWM1_SM3CVAL0 (IMXRT_FLEXPWM1.SM[3].CVAL0)
  3145. #define FLEXPWM1_SM3CVAL0CYC (IMXRT_FLEXPWM1.SM[3].CVAL0CYC)
  3146. #define FLEXPWM1_SM3CVAL1 (IMXRT_FLEXPWM1.SM[3].CVAL1)
  3147. #define FLEXPWM1_SM3CVAL1CYC (IMXRT_FLEXPWM1.SM[3].CVAL1CYC)
  3148. #define FLEXPWM1_SM3CVAL2 (IMXRT_FLEXPWM1.SM[3].CVAL2)
  3149. #define FLEXPWM1_SM3CVAL2CYC (IMXRT_FLEXPWM1.SM[3].CVAL2CYC)
  3150. #define FLEXPWM1_SM3CVAL3 (IMXRT_FLEXPWM1.SM[3].CVAL3)
  3151. #define FLEXPWM1_SM3CVAL3CYC (IMXRT_FLEXPWM1.SM[3].CVAL3CYC)
  3152. #define FLEXPWM1_SM3CVAL4 (IMXRT_FLEXPWM1.SM[3].CVAL4)
  3153. #define FLEXPWM1_SM3CVAL4CYC (IMXRT_FLEXPWM1.SM[3].CVAL4CYC)
  3154. #define FLEXPWM1_SM3CVAL5 (IMXRT_FLEXPWM1.SM[3].CVAL5)
  3155. #define FLEXPWM1_SM3CVAL5CYC (IMXRT_FLEXPWM1.SM[3].CVAL5CYC)
  3156. #define FLEXPWM1_OUTEN (IMXRT_FLEXPWM1.OUTEN)
  3157. #define FLEXPWM1_MASK (IMXRT_FLEXPWM1.MASK)
  3158. #define FLEXPWM1_SWCOUT (IMXRT_FLEXPWM1.SWCOUT)
  3159. #define FLEXPWM1_DTSRCSEL (IMXRT_FLEXPWM1.DTSRCSEL)
  3160. #define FLEXPWM1_MCTRL (IMXRT_FLEXPWM1.MCTRL)
  3161. #define FLEXPWM1_MCTRL2 (IMXRT_FLEXPWM1.MCTRL2)
  3162. #define FLEXPWM1_FCTRL0 (IMXRT_FLEXPWM1.FCTRL0)
  3163. #define FLEXPWM1_FSTS0 (IMXRT_FLEXPWM1.FSTS0)
  3164. #define FLEXPWM1_FFILT0 (IMXRT_FLEXPWM1.FFILT0)
  3165. #define FLEXPWM1_FTST0 (IMXRT_FLEXPWM1.FTST0)
  3166. #define FLEXPWM1_FCTRL20 (IMXRT_FLEXPWM1.FCTRL20)
  3167. #define FLEXPWM2_SM0CNT (IMXRT_FLEXPWM2.SM[0].CNT)
  3168. #define FLEXPWM2_SM0INIT (IMXRT_FLEXPWM2.SM[0].INIT)
  3169. #define FLEXPWM2_SM0CTRL2 (IMXRT_FLEXPWM2.SM[0].CTRL2)
  3170. #define FLEXPWM2_SM0CTRL (IMXRT_FLEXPWM2.SM[0].CTRL)
  3171. #define FLEXPWM2_SM0VAL0 (IMXRT_FLEXPWM2.SM[0].VAL0)
  3172. #define FLEXPWM2_SM0FRACVAL1 (IMXRT_FLEXPWM2.SM[0].FRACVAL1)
  3173. #define FLEXPWM2_SM0VAL1 (IMXRT_FLEXPWM2.SM[0].VAL1)
  3174. #define FLEXPWM2_SM0FRACVAL2 (IMXRT_FLEXPWM2.SM[0].FRACVAL2)
  3175. #define FLEXPWM2_SM0VAL2 (IMXRT_FLEXPWM2.SM[0].VAL2)
  3176. #define FLEXPWM2_SM0FRACVAL3 (IMXRT_FLEXPWM2.SM[0].FRACVAL3)
  3177. #define FLEXPWM2_SM0VAL3 (IMXRT_FLEXPWM2.SM[0].VAL3)
  3178. #define FLEXPWM2_SM0FRACVAL4 (IMXRT_FLEXPWM2.SM[0].FRACVAL4)
  3179. #define FLEXPWM2_SM0VAL4 (IMXRT_FLEXPWM2.SM[0].VAL4)
  3180. #define FLEXPWM2_SM0FRACVAL5 (IMXRT_FLEXPWM2.SM[0].FRACVAL5)
  3181. #define FLEXPWM2_SM0VAL5 (IMXRT_FLEXPWM2.SM[0].VAL5)
  3182. #define FLEXPWM2_SM0FRCTRL (IMXRT_FLEXPWM2.SM[0].FRCTRL)
  3183. #define FLEXPWM2_SM0OCTRL (IMXRT_FLEXPWM2.SM[0].OCTRL)
  3184. #define FLEXPWM2_SM0STS (IMXRT_FLEXPWM2.SM[0].STS)
  3185. #define FLEXPWM2_SM0INTEN (IMXRT_FLEXPWM2.SM[0].INTEN)
  3186. #define FLEXPWM2_SM0DMAEN (IMXRT_FLEXPWM2.SM[0].DMAEN)
  3187. #define FLEXPWM2_SM0TCTRL (IMXRT_FLEXPWM2.SM[0].TCTRL)
  3188. #define FLEXPWM2_SM0DISMAP0 (IMXRT_FLEXPWM2.SM[0].DISMAP0)
  3189. #define FLEXPWM2_SM0DISMAP1 (IMXRT_FLEXPWM2.SM[0].DISMAP1)
  3190. #define FLEXPWM2_SM0DTCNT0 (IMXRT_FLEXPWM2.SM[0].DTCNT0)
  3191. #define FLEXPWM2_SM0DTCNT1 (IMXRT_FLEXPWM2.SM[0].DTCNT1)
  3192. #define FLEXPWM2_SM0CAPTCTRLA (IMXRT_FLEXPWM2.SM[0].CAPTCTRLA)
  3193. #define FLEXPWM2_SM0CAPTCOMPA (IMXRT_FLEXPWM2.SM[0].CAPTCOMPA)
  3194. #define FLEXPWM2_SM0CAPTCTRLB (IMXRT_FLEXPWM2.SM[0].CAPTCTRLB)
  3195. #define FLEXPWM2_SM0CAPTCOMPB (IMXRT_FLEXPWM2.SM[0].CAPTCOMPB)
  3196. #define FLEXPWM2_SM0CAPTCTRLX (IMXRT_FLEXPWM2.SM[0].CAPTCTRLX)
  3197. #define FLEXPWM2_SM0CAPTCOMPX (IMXRT_FLEXPWM2.SM[0].CAPTCOMPX)
  3198. #define FLEXPWM2_SM0CVAL0 (IMXRT_FLEXPWM2.SM[0].CVAL0)
  3199. #define FLEXPWM2_SM0CVAL0CYC (IMXRT_FLEXPWM2.SM[0].CVAL0CYC)
  3200. #define FLEXPWM2_SM0CVAL1 (IMXRT_FLEXPWM2.SM[0].CVAL1)
  3201. #define FLEXPWM2_SM0CVAL1CYC (IMXRT_FLEXPWM2.SM[0].CVAL1CYC)
  3202. #define FLEXPWM2_SM0CVAL2 (IMXRT_FLEXPWM2.SM[0].CVAL2)
  3203. #define FLEXPWM2_SM0CVAL2CYC (IMXRT_FLEXPWM2.SM[0].CVAL2CYC)
  3204. #define FLEXPWM2_SM0CVAL3 (IMXRT_FLEXPWM2.SM[0].CVAL3)
  3205. #define FLEXPWM2_SM0CVAL3CYC (IMXRT_FLEXPWM2.SM[0].CVAL3CYC)
  3206. #define FLEXPWM2_SM0CVAL4 (IMXRT_FLEXPWM2.SM[0].CVAL4)
  3207. #define FLEXPWM2_SM0CVAL4CYC (IMXRT_FLEXPWM2.SM[0].CVAL4CYC)
  3208. #define FLEXPWM2_SM0CVAL5 (IMXRT_FLEXPWM2.SM[0].CVAL5)
  3209. #define FLEXPWM2_SM0CVAL5CYC (IMXRT_FLEXPWM2.SM[0].CVAL5CYC)
  3210. #define FLEXPWM2_SM1CNT (IMXRT_FLEXPWM2.SM[1].CNT)
  3211. #define FLEXPWM2_SM1INIT (IMXRT_FLEXPWM2.SM[1].INIT)
  3212. #define FLEXPWM2_SM1CTRL2 (IMXRT_FLEXPWM2.SM[1].CTRL2)
  3213. #define FLEXPWM2_SM1CTRL (IMXRT_FLEXPWM2.SM[1].CTRL)
  3214. #define FLEXPWM2_SM1VAL0 (IMXRT_FLEXPWM2.SM[1].VAL0)
  3215. #define FLEXPWM2_SM1FRACVAL1 (IMXRT_FLEXPWM2.SM[1].FRACVAL1)
  3216. #define FLEXPWM2_SM1VAL1 (IMXRT_FLEXPWM2.SM[1].VAL1)
  3217. #define FLEXPWM2_SM1FRACVAL2 (IMXRT_FLEXPWM2.SM[1].FRACVAL2)
  3218. #define FLEXPWM2_SM1VAL2 (IMXRT_FLEXPWM2.SM[1].VAL2)
  3219. #define FLEXPWM2_SM1FRACVAL3 (IMXRT_FLEXPWM2.SM[1].FRACVAL3)
  3220. #define FLEXPWM2_SM1VAL3 (IMXRT_FLEXPWM2.SM[1].VAL3)
  3221. #define FLEXPWM2_SM1FRACVAL4 (IMXRT_FLEXPWM2.SM[1].FRACVAL4)
  3222. #define FLEXPWM2_SM1VAL4 (IMXRT_FLEXPWM2.SM[1].VAL4)
  3223. #define FLEXPWM2_SM1FRACVAL5 (IMXRT_FLEXPWM2.SM[1].FRACVAL5)
  3224. #define FLEXPWM2_SM1VAL5 (IMXRT_FLEXPWM2.SM[1].VAL5)
  3225. #define FLEXPWM2_SM1FRCTRL (IMXRT_FLEXPWM2.SM[1].FRCTRL)
  3226. #define FLEXPWM2_SM1OCTRL (IMXRT_FLEXPWM2.SM[1].OCTRL)
  3227. #define FLEXPWM2_SM1STS (IMXRT_FLEXPWM2.SM[1].STS)
  3228. #define FLEXPWM2_SM1INTEN (IMXRT_FLEXPWM2.SM[1].INTEN)
  3229. #define FLEXPWM2_SM1DMAEN (IMXRT_FLEXPWM2.SM[1].DMAEN)
  3230. #define FLEXPWM2_SM1TCTRL (IMXRT_FLEXPWM2.SM[1].TCTRL)
  3231. #define FLEXPWM2_SM1DISMAP0 (IMXRT_FLEXPWM2.SM[1].DISMAP0)
  3232. #define FLEXPWM2_SM1DISMAP1 (IMXRT_FLEXPWM2.SM[1].DISMAP1)
  3233. #define FLEXPWM2_SM1DTCNT0 (IMXRT_FLEXPWM2.SM[1].DTCNT0)
  3234. #define FLEXPWM2_SM1DTCNT1 (IMXRT_FLEXPWM2.SM[1].DTCNT1)
  3235. #define FLEXPWM2_SM1CAPTCTRLA (IMXRT_FLEXPWM2.SM[1].CAPTCTRLA)
  3236. #define FLEXPWM2_SM1CAPTCOMPA (IMXRT_FLEXPWM2.SM[1].CAPTCOMPA)
  3237. #define FLEXPWM2_SM1CAPTCTRLB (IMXRT_FLEXPWM2.SM[1].CAPTCTRLB)
  3238. #define FLEXPWM2_SM1CAPTCOMPB (IMXRT_FLEXPWM2.SM[1].CAPTCOMPB)
  3239. #define FLEXPWM2_SM1CAPTCTRLX (IMXRT_FLEXPWM2.SM[1].CAPTCTRLX)
  3240. #define FLEXPWM2_SM1CAPTCOMPX (IMXRT_FLEXPWM2.SM[1].CAPTCOMPX)
  3241. #define FLEXPWM2_SM1CVAL0 (IMXRT_FLEXPWM2.SM[1].CVAL0)
  3242. #define FLEXPWM2_SM1CVAL0CYC (IMXRT_FLEXPWM2.SM[1].CVAL0CYC)
  3243. #define FLEXPWM2_SM1CVAL1 (IMXRT_FLEXPWM2.SM[1].CVAL1)
  3244. #define FLEXPWM2_SM1CVAL1CYC (IMXRT_FLEXPWM2.SM[1].CVAL1CYC)
  3245. #define FLEXPWM2_SM1CVAL2 (IMXRT_FLEXPWM2.SM[1].CVAL2)
  3246. #define FLEXPWM2_SM1CVAL2CYC (IMXRT_FLEXPWM2.SM[1].CVAL2CYC)
  3247. #define FLEXPWM2_SM1CVAL3 (IMXRT_FLEXPWM2.SM[1].CVAL3)
  3248. #define FLEXPWM2_SM1CVAL3CYC (IMXRT_FLEXPWM2.SM[1].CVAL3CYC)
  3249. #define FLEXPWM2_SM1CVAL4 (IMXRT_FLEXPWM2.SM[1].CVAL4)
  3250. #define FLEXPWM2_SM1CVAL4CYC (IMXRT_FLEXPWM2.SM[1].CVAL4CYC)
  3251. #define FLEXPWM2_SM1CVAL5 (IMXRT_FLEXPWM2.SM[1].CVAL5)
  3252. #define FLEXPWM2_SM1CVAL5CYC (IMXRT_FLEXPWM2.SM[1].CVAL5CYC)
  3253. #define FLEXPWM2_SM2CNT (IMXRT_FLEXPWM2.SM[2].CNT)
  3254. #define FLEXPWM2_SM2INIT (IMXRT_FLEXPWM2.SM[2].INIT)
  3255. #define FLEXPWM2_SM2CTRL2 (IMXRT_FLEXPWM2.SM[2].CTRL2)
  3256. #define FLEXPWM2_SM2CTRL (IMXRT_FLEXPWM2.SM[2].CTRL)
  3257. #define FLEXPWM2_SM2VAL0 (IMXRT_FLEXPWM2.SM[2].VAL0)
  3258. #define FLEXPWM2_SM2FRACVAL1 (IMXRT_FLEXPWM2.SM[2].FRACVAL1)
  3259. #define FLEXPWM2_SM2VAL1 (IMXRT_FLEXPWM2.SM[2].VAL1)
  3260. #define FLEXPWM2_SM2FRACVAL2 (IMXRT_FLEXPWM2.SM[2].FRACVAL2)
  3261. #define FLEXPWM2_SM2VAL2 (IMXRT_FLEXPWM2.SM[2].VAL2)
  3262. #define FLEXPWM2_SM2FRACVAL3 (IMXRT_FLEXPWM2.SM[2].FRACVAL3)
  3263. #define FLEXPWM2_SM2VAL3 (IMXRT_FLEXPWM2.SM[2].VAL3)
  3264. #define FLEXPWM2_SM2FRACVAL4 (IMXRT_FLEXPWM2.SM[2].FRACVAL4)
  3265. #define FLEXPWM2_SM2VAL4 (IMXRT_FLEXPWM2.SM[2].VAL4)
  3266. #define FLEXPWM2_SM2FRACVAL5 (IMXRT_FLEXPWM2.SM[2].FRACVAL5)
  3267. #define FLEXPWM2_SM2VAL5 (IMXRT_FLEXPWM2.SM[2].VAL5)
  3268. #define FLEXPWM2_SM2FRCTRL (IMXRT_FLEXPWM2.SM[2].FRCTRL)
  3269. #define FLEXPWM2_SM2OCTRL (IMXRT_FLEXPWM2.SM[2].OCTRL)
  3270. #define FLEXPWM2_SM2STS (IMXRT_FLEXPWM2.SM[2].STS)
  3271. #define FLEXPWM2_SM2INTEN (IMXRT_FLEXPWM2.SM[2].INTEN)
  3272. #define FLEXPWM2_SM2DMAEN (IMXRT_FLEXPWM2.SM[2].DMAEN)
  3273. #define FLEXPWM2_SM2TCTRL (IMXRT_FLEXPWM2.SM[2].TCTRL)
  3274. #define FLEXPWM2_SM2DISMAP0 (IMXRT_FLEXPWM2.SM[2].DISMAP0)
  3275. #define FLEXPWM2_SM2DISMAP1 (IMXRT_FLEXPWM2.SM[2].DISMAP1)
  3276. #define FLEXPWM2_SM2DTCNT0 (IMXRT_FLEXPWM2.SM[2].DTCNT0)
  3277. #define FLEXPWM2_SM2DTCNT1 (IMXRT_FLEXPWM2.SM[2].DTCNT1)
  3278. #define FLEXPWM2_SM2CAPTCTRLA (IMXRT_FLEXPWM2.SM[2].CAPTCTRLA)
  3279. #define FLEXPWM2_SM2CAPTCOMPA (IMXRT_FLEXPWM2.SM[2].CAPTCOMPA)
  3280. #define FLEXPWM2_SM2CAPTCTRLB (IMXRT_FLEXPWM2.SM[2].CAPTCTRLB)
  3281. #define FLEXPWM2_SM2CAPTCOMPB (IMXRT_FLEXPWM2.SM[2].CAPTCOMPB)
  3282. #define FLEXPWM2_SM2CAPTCTRLX (IMXRT_FLEXPWM2.SM[2].CAPTCTRLX)
  3283. #define FLEXPWM2_SM2CAPTCOMPX (IMXRT_FLEXPWM2.SM[2].CAPTCOMPX)
  3284. #define FLEXPWM2_SM2CVAL0 (IMXRT_FLEXPWM2.SM[2].CVAL0)
  3285. #define FLEXPWM2_SM2CVAL0CYC (IMXRT_FLEXPWM2.SM[2].CVAL0CYC)
  3286. #define FLEXPWM2_SM2CVAL1 (IMXRT_FLEXPWM2.SM[2].CVAL1)
  3287. #define FLEXPWM2_SM2CVAL1CYC (IMXRT_FLEXPWM2.SM[2].CVAL1CYC)
  3288. #define FLEXPWM2_SM2CVAL2 (IMXRT_FLEXPWM2.SM[2].CVAL2)
  3289. #define FLEXPWM2_SM2CVAL2CYC (IMXRT_FLEXPWM2.SM[2].CVAL2CYC)
  3290. #define FLEXPWM2_SM2CVAL3 (IMXRT_FLEXPWM2.SM[2].CVAL3)
  3291. #define FLEXPWM2_SM2CVAL3CYC (IMXRT_FLEXPWM2.SM[2].CVAL3CYC)
  3292. #define FLEXPWM2_SM2CVAL4 (IMXRT_FLEXPWM2.SM[2].CVAL4)
  3293. #define FLEXPWM2_SM2CVAL4CYC (IMXRT_FLEXPWM2.SM[2].CVAL4CYC)
  3294. #define FLEXPWM2_SM2CVAL5 (IMXRT_FLEXPWM2.SM[2].CVAL5)
  3295. #define FLEXPWM2_SM2CVAL5CYC (IMXRT_FLEXPWM2.SM[2].CVAL5CYC)
  3296. #define FLEXPWM2_SM3CNT (IMXRT_FLEXPWM2.SM[3].CNT)
  3297. #define FLEXPWM2_SM3INIT (IMXRT_FLEXPWM2.SM[3].INIT)
  3298. #define FLEXPWM2_SM3CTRL2 (IMXRT_FLEXPWM2.SM[3].CTRL2)
  3299. #define FLEXPWM2_SM3CTRL (IMXRT_FLEXPWM2.SM[3].CTRL)
  3300. #define FLEXPWM2_SM3VAL0 (IMXRT_FLEXPWM2.SM[3].VAL0)
  3301. #define FLEXPWM2_SM3FRACVAL1 (IMXRT_FLEXPWM2.SM[3].FRACVAL1)
  3302. #define FLEXPWM2_SM3VAL1 (IMXRT_FLEXPWM2.SM[3].VAL1)
  3303. #define FLEXPWM2_SM3FRACVAL2 (IMXRT_FLEXPWM2.SM[3].FRACVAL2)
  3304. #define FLEXPWM2_SM3VAL2 (IMXRT_FLEXPWM2.SM[3].VAL2)
  3305. #define FLEXPWM2_SM3FRACVAL3 (IMXRT_FLEXPWM2.SM[3].FRACVAL3)
  3306. #define FLEXPWM2_SM3VAL3 (IMXRT_FLEXPWM2.SM[3].VAL3)
  3307. #define FLEXPWM2_SM3FRACVAL4 (IMXRT_FLEXPWM2.SM[3].FRACVAL4)
  3308. #define FLEXPWM2_SM3VAL4 (IMXRT_FLEXPWM2.SM[3].VAL4)
  3309. #define FLEXPWM2_SM3FRACVAL5 (IMXRT_FLEXPWM2.SM[3].FRACVAL5)
  3310. #define FLEXPWM2_SM3VAL5 (IMXRT_FLEXPWM2.SM[3].VAL5)
  3311. #define FLEXPWM2_SM3FRCTRL (IMXRT_FLEXPWM2.SM[3].FRCTRL)
  3312. #define FLEXPWM2_SM3OCTRL (IMXRT_FLEXPWM2.SM[3].OCTRL)
  3313. #define FLEXPWM2_SM3STS (IMXRT_FLEXPWM2.SM[3].STS)
  3314. #define FLEXPWM2_SM3INTEN (IMXRT_FLEXPWM2.SM[3].INTEN)
  3315. #define FLEXPWM2_SM3DMAEN (IMXRT_FLEXPWM2.SM[3].DMAEN)
  3316. #define FLEXPWM2_SM3TCTRL (IMXRT_FLEXPWM2.SM[3].TCTRL)
  3317. #define FLEXPWM2_SM3DISMAP0 (IMXRT_FLEXPWM2.SM[3].DISMAP0)
  3318. #define FLEXPWM2_SM3DISMAP1 (IMXRT_FLEXPWM2.SM[3].DISMAP1)
  3319. #define FLEXPWM2_SM3DTCNT0 (IMXRT_FLEXPWM2.SM[3].DTCNT0)
  3320. #define FLEXPWM2_SM3DTCNT1 (IMXRT_FLEXPWM2.SM[3].DTCNT1)
  3321. #define FLEXPWM2_SM3CAPTCTRLA (IMXRT_FLEXPWM2.SM[3].CAPTCTRLA)
  3322. #define FLEXPWM2_SM3CAPTCOMPA (IMXRT_FLEXPWM2.SM[3].CAPTCOMPA)
  3323. #define FLEXPWM2_SM3CAPTCTRLB (IMXRT_FLEXPWM2.SM[3].CAPTCTRLB)
  3324. #define FLEXPWM2_SM3CAPTCOMPB (IMXRT_FLEXPWM2.SM[3].CAPTCOMPB)
  3325. #define FLEXPWM2_SM3CAPTCTRLX (IMXRT_FLEXPWM2.SM[3].CAPTCTRLX)
  3326. #define FLEXPWM2_SM3CAPTCOMPX (IMXRT_FLEXPWM2.SM[3].CAPTCOMPX)
  3327. #define FLEXPWM2_SM3CVAL0 (IMXRT_FLEXPWM2.SM[3].CVAL0)
  3328. #define FLEXPWM2_SM3CVAL0CYC (IMXRT_FLEXPWM2.SM[3].CVAL0CYC)
  3329. #define FLEXPWM2_SM3CVAL1 (IMXRT_FLEXPWM2.SM[3].CVAL1)
  3330. #define FLEXPWM2_SM3CVAL1CYC (IMXRT_FLEXPWM2.SM[3].CVAL1CYC)
  3331. #define FLEXPWM2_SM3CVAL2 (IMXRT_FLEXPWM2.SM[3].CVAL2)
  3332. #define FLEXPWM2_SM3CVAL2CYC (IMXRT_FLEXPWM2.SM[3].CVAL2CYC)
  3333. #define FLEXPWM2_SM3CVAL3 (IMXRT_FLEXPWM2.SM[3].CVAL3)
  3334. #define FLEXPWM2_SM3CVAL3CYC (IMXRT_FLEXPWM2.SM[3].CVAL3CYC)
  3335. #define FLEXPWM2_SM3CVAL4 (IMXRT_FLEXPWM2.SM[3].CVAL4)
  3336. #define FLEXPWM2_SM3CVAL4CYC (IMXRT_FLEXPWM2.SM[3].CVAL4CYC)
  3337. #define FLEXPWM2_SM3CVAL5 (IMXRT_FLEXPWM2.SM[3].CVAL5)
  3338. #define FLEXPWM2_SM3CVAL5CYC (IMXRT_FLEXPWM2.SM[3].CVAL5CYC)
  3339. #define FLEXPWM2_OUTEN (IMXRT_FLEXPWM2.OUTEN)
  3340. #define FLEXPWM2_MASK (IMXRT_FLEXPWM2.MASK)
  3341. #define FLEXPWM2_SWCOUT (IMXRT_FLEXPWM2.SWCOUT)
  3342. #define FLEXPWM2_DTSRCSEL (IMXRT_FLEXPWM2.DTSRCSEL)
  3343. #define FLEXPWM2_MCTRL (IMXRT_FLEXPWM2.MCTRL)
  3344. #define FLEXPWM2_MCTRL2 (IMXRT_FLEXPWM2.MCTRL2)
  3345. #define FLEXPWM2_FCTRL0 (IMXRT_FLEXPWM2.FCTRL0)
  3346. #define FLEXPWM2_FSTS0 (IMXRT_FLEXPWM2.FSTS0)
  3347. #define FLEXPWM2_FFILT0 (IMXRT_FLEXPWM2.FFILT0)
  3348. #define FLEXPWM2_FTST0 (IMXRT_FLEXPWM2.FTST0)
  3349. #define FLEXPWM2_FCTRL20 (IMXRT_FLEXPWM2.FCTRL20)
  3350. #define FLEXPWM3_SM0CNT (IMXRT_FLEXPWM3.SM[0].CNT)
  3351. #define FLEXPWM3_SM0INIT (IMXRT_FLEXPWM3.SM[0].INIT)
  3352. #define FLEXPWM3_SM0CTRL2 (IMXRT_FLEXPWM3.SM[0].CTRL2)
  3353. #define FLEXPWM3_SM0CTRL (IMXRT_FLEXPWM3.SM[0].CTRL)
  3354. #define FLEXPWM3_SM0VAL0 (IMXRT_FLEXPWM3.SM[0].VAL0)
  3355. #define FLEXPWM3_SM0FRACVAL1 (IMXRT_FLEXPWM3.SM[0].FRACVAL1)
  3356. #define FLEXPWM3_SM0VAL1 (IMXRT_FLEXPWM3.SM[0].VAL1)
  3357. #define FLEXPWM3_SM0FRACVAL2 (IMXRT_FLEXPWM3.SM[0].FRACVAL2)
  3358. #define FLEXPWM3_SM0VAL2 (IMXRT_FLEXPWM3.SM[0].VAL2)
  3359. #define FLEXPWM3_SM0FRACVAL3 (IMXRT_FLEXPWM3.SM[0].FRACVAL3)
  3360. #define FLEXPWM3_SM0VAL3 (IMXRT_FLEXPWM3.SM[0].VAL3)
  3361. #define FLEXPWM3_SM0FRACVAL4 (IMXRT_FLEXPWM3.SM[0].FRACVAL4)
  3362. #define FLEXPWM3_SM0VAL4 (IMXRT_FLEXPWM3.SM[0].VAL4)
  3363. #define FLEXPWM3_SM0FRACVAL5 (IMXRT_FLEXPWM3.SM[0].FRACVAL5)
  3364. #define FLEXPWM3_SM0VAL5 (IMXRT_FLEXPWM3.SM[0].VAL5)
  3365. #define FLEXPWM3_SM0FRCTRL (IMXRT_FLEXPWM3.SM[0].FRCTRL)
  3366. #define FLEXPWM3_SM0OCTRL (IMXRT_FLEXPWM3.SM[0].OCTRL)
  3367. #define FLEXPWM3_SM0STS (IMXRT_FLEXPWM3.SM[0].STS)
  3368. #define FLEXPWM3_SM0INTEN (IMXRT_FLEXPWM3.SM[0].INTEN)
  3369. #define FLEXPWM3_SM0DMAEN (IMXRT_FLEXPWM3.SM[0].DMAEN)
  3370. #define FLEXPWM3_SM0TCTRL (IMXRT_FLEXPWM3.SM[0].TCTRL)
  3371. #define FLEXPWM3_SM0DISMAP0 (IMXRT_FLEXPWM3.SM[0].DISMAP0)
  3372. #define FLEXPWM3_SM0DISMAP1 (IMXRT_FLEXPWM3.SM[0].DISMAP1)
  3373. #define FLEXPWM3_SM0DTCNT0 (IMXRT_FLEXPWM3.SM[0].DTCNT0)
  3374. #define FLEXPWM3_SM0DTCNT1 (IMXRT_FLEXPWM3.SM[0].DTCNT1)
  3375. #define FLEXPWM3_SM0CAPTCTRLA (IMXRT_FLEXPWM3.SM[0].CAPTCTRLA)
  3376. #define FLEXPWM3_SM0CAPTCOMPA (IMXRT_FLEXPWM3.SM[0].CAPTCOMPA)
  3377. #define FLEXPWM3_SM0CAPTCTRLB (IMXRT_FLEXPWM3.SM[0].CAPTCTRLB)
  3378. #define FLEXPWM3_SM0CAPTCOMPB (IMXRT_FLEXPWM3.SM[0].CAPTCOMPB)
  3379. #define FLEXPWM3_SM0CAPTCTRLX (IMXRT_FLEXPWM3.SM[0].CAPTCTRLX)
  3380. #define FLEXPWM3_SM0CAPTCOMPX (IMXRT_FLEXPWM3.SM[0].CAPTCOMPX)
  3381. #define FLEXPWM3_SM0CVAL0 (IMXRT_FLEXPWM3.SM[0].CVAL0)
  3382. #define FLEXPWM3_SM0CVAL0CYC (IMXRT_FLEXPWM3.SM[0].CVAL0CYC)
  3383. #define FLEXPWM3_SM0CVAL1 (IMXRT_FLEXPWM3.SM[0].CVAL1)
  3384. #define FLEXPWM3_SM0CVAL1CYC (IMXRT_FLEXPWM3.SM[0].CVAL1CYC)
  3385. #define FLEXPWM3_SM0CVAL2 (IMXRT_FLEXPWM3.SM[0].CVAL2)
  3386. #define FLEXPWM3_SM0CVAL2CYC (IMXRT_FLEXPWM3.SM[0].CVAL2CYC)
  3387. #define FLEXPWM3_SM0CVAL3 (IMXRT_FLEXPWM3.SM[0].CVAL3)
  3388. #define FLEXPWM3_SM0CVAL3CYC (IMXRT_FLEXPWM3.SM[0].CVAL3CYC)
  3389. #define FLEXPWM3_SM0CVAL4 (IMXRT_FLEXPWM3.SM[0].CVAL4)
  3390. #define FLEXPWM3_SM0CVAL4CYC (IMXRT_FLEXPWM3.SM[0].CVAL4CYC)
  3391. #define FLEXPWM3_SM0CVAL5 (IMXRT_FLEXPWM3.SM[0].CVAL5)
  3392. #define FLEXPWM3_SM0CVAL5CYC (IMXRT_FLEXPWM3.SM[0].CVAL5CYC)
  3393. #define FLEXPWM3_SM1CNT (IMXRT_FLEXPWM3.SM[1].CNT)
  3394. #define FLEXPWM3_SM1INIT (IMXRT_FLEXPWM3.SM[1].INIT)
  3395. #define FLEXPWM3_SM1CTRL2 (IMXRT_FLEXPWM3.SM[1].CTRL2)
  3396. #define FLEXPWM3_SM1CTRL (IMXRT_FLEXPWM3.SM[1].CTRL)
  3397. #define FLEXPWM3_SM1VAL0 (IMXRT_FLEXPWM3.SM[1].VAL0)
  3398. #define FLEXPWM3_SM1FRACVAL1 (IMXRT_FLEXPWM3.SM[1].FRACVAL1)
  3399. #define FLEXPWM3_SM1VAL1 (IMXRT_FLEXPWM3.SM[1].VAL1)
  3400. #define FLEXPWM3_SM1FRACVAL2 (IMXRT_FLEXPWM3.SM[1].FRACVAL2)
  3401. #define FLEXPWM3_SM1VAL2 (IMXRT_FLEXPWM3.SM[1].VAL2)
  3402. #define FLEXPWM3_SM1FRACVAL3 (IMXRT_FLEXPWM3.SM[1].FRACVAL3)
  3403. #define FLEXPWM3_SM1VAL3 (IMXRT_FLEXPWM3.SM[1].VAL3)
  3404. #define FLEXPWM3_SM1FRACVAL4 (IMXRT_FLEXPWM3.SM[1].FRACVAL4)
  3405. #define FLEXPWM3_SM1VAL4 (IMXRT_FLEXPWM3.SM[1].VAL4)
  3406. #define FLEXPWM3_SM1FRACVAL5 (IMXRT_FLEXPWM3.SM[1].FRACVAL5)
  3407. #define FLEXPWM3_SM1VAL5 (IMXRT_FLEXPWM3.SM[1].VAL5)
  3408. #define FLEXPWM3_SM1FRCTRL (IMXRT_FLEXPWM3.SM[1].FRCTRL)
  3409. #define FLEXPWM3_SM1OCTRL (IMXRT_FLEXPWM3.SM[1].OCTRL)
  3410. #define FLEXPWM3_SM1STS (IMXRT_FLEXPWM3.SM[1].STS)
  3411. #define FLEXPWM3_SM1INTEN (IMXRT_FLEXPWM3.SM[1].INTEN)
  3412. #define FLEXPWM3_SM1DMAEN (IMXRT_FLEXPWM3.SM[1].DMAEN)
  3413. #define FLEXPWM3_SM1TCTRL (IMXRT_FLEXPWM3.SM[1].TCTRL)
  3414. #define FLEXPWM3_SM1DISMAP0 (IMXRT_FLEXPWM3.SM[1].DISMAP0)
  3415. #define FLEXPWM3_SM1DISMAP1 (IMXRT_FLEXPWM3.SM[1].DISMAP1)
  3416. #define FLEXPWM3_SM1DTCNT0 (IMXRT_FLEXPWM3.SM[1].DTCNT0)
  3417. #define FLEXPWM3_SM1DTCNT1 (IMXRT_FLEXPWM3.SM[1].DTCNT1)
  3418. #define FLEXPWM3_SM1CAPTCTRLA (IMXRT_FLEXPWM3.SM[1].CAPTCTRLA)
  3419. #define FLEXPWM3_SM1CAPTCOMPA (IMXRT_FLEXPWM3.SM[1].CAPTCOMPA)
  3420. #define FLEXPWM3_SM1CAPTCTRLB (IMXRT_FLEXPWM3.SM[1].CAPTCTRLB)
  3421. #define FLEXPWM3_SM1CAPTCOMPB (IMXRT_FLEXPWM3.SM[1].CAPTCOMPB)
  3422. #define FLEXPWM3_SM1CAPTCTRLX (IMXRT_FLEXPWM3.SM[1].CAPTCTRLX)
  3423. #define FLEXPWM3_SM1CAPTCOMPX (IMXRT_FLEXPWM3.SM[1].CAPTCOMPX)
  3424. #define FLEXPWM3_SM1CVAL0 (IMXRT_FLEXPWM3.SM[1].CVAL0)
  3425. #define FLEXPWM3_SM1CVAL0CYC (IMXRT_FLEXPWM3.SM[1].CVAL0CYC)
  3426. #define FLEXPWM3_SM1CVAL1 (IMXRT_FLEXPWM3.SM[1].CVAL1)
  3427. #define FLEXPWM3_SM1CVAL1CYC (IMXRT_FLEXPWM3.SM[1].CVAL1CYC)
  3428. #define FLEXPWM3_SM1CVAL2 (IMXRT_FLEXPWM3.SM[1].CVAL2)
  3429. #define FLEXPWM3_SM1CVAL2CYC (IMXRT_FLEXPWM3.SM[1].CVAL2CYC)
  3430. #define FLEXPWM3_SM1CVAL3 (IMXRT_FLEXPWM3.SM[1].CVAL3)
  3431. #define FLEXPWM3_SM1CVAL3CYC (IMXRT_FLEXPWM3.SM[1].CVAL3CYC)
  3432. #define FLEXPWM3_SM1CVAL4 (IMXRT_FLEXPWM3.SM[1].CVAL4)
  3433. #define FLEXPWM3_SM1CVAL4CYC (IMXRT_FLEXPWM3.SM[1].CVAL4CYC)
  3434. #define FLEXPWM3_SM1CVAL5 (IMXRT_FLEXPWM3.SM[1].CVAL5)
  3435. #define FLEXPWM3_SM1CVAL5CYC (IMXRT_FLEXPWM3.SM[1].CVAL5CYC)
  3436. #define FLEXPWM3_SM2CNT (IMXRT_FLEXPWM3.SM[2].CNT)
  3437. #define FLEXPWM3_SM2INIT (IMXRT_FLEXPWM3.SM[2].INIT)
  3438. #define FLEXPWM3_SM2CTRL2 (IMXRT_FLEXPWM3.SM[2].CTRL2)
  3439. #define FLEXPWM3_SM2CTRL (IMXRT_FLEXPWM3.SM[2].CTRL)
  3440. #define FLEXPWM3_SM2VAL0 (IMXRT_FLEXPWM3.SM[2].VAL0)
  3441. #define FLEXPWM3_SM2FRACVAL1 (IMXRT_FLEXPWM3.SM[2].FRACVAL1)
  3442. #define FLEXPWM3_SM2VAL1 (IMXRT_FLEXPWM3.SM[2].VAL1)
  3443. #define FLEXPWM3_SM2FRACVAL2 (IMXRT_FLEXPWM3.SM[2].FRACVAL2)
  3444. #define FLEXPWM3_SM2VAL2 (IMXRT_FLEXPWM3.SM[2].VAL2)
  3445. #define FLEXPWM3_SM2FRACVAL3 (IMXRT_FLEXPWM3.SM[2].FRACVAL3)
  3446. #define FLEXPWM3_SM2VAL3 (IMXRT_FLEXPWM3.SM[2].VAL3)
  3447. #define FLEXPWM3_SM2FRACVAL4 (IMXRT_FLEXPWM3.SM[2].FRACVAL4)
  3448. #define FLEXPWM3_SM2VAL4 (IMXRT_FLEXPWM3.SM[2].VAL4)
  3449. #define FLEXPWM3_SM2FRACVAL5 (IMXRT_FLEXPWM3.SM[2].FRACVAL5)
  3450. #define FLEXPWM3_SM2VAL5 (IMXRT_FLEXPWM3.SM[2].VAL5)
  3451. #define FLEXPWM3_SM2FRCTRL (IMXRT_FLEXPWM3.SM[2].FRCTRL)
  3452. #define FLEXPWM3_SM2OCTRL (IMXRT_FLEXPWM3.SM[2].OCTRL)
  3453. #define FLEXPWM3_SM2STS (IMXRT_FLEXPWM3.SM[2].STS)
  3454. #define FLEXPWM3_SM2INTEN (IMXRT_FLEXPWM3.SM[2].INTEN)
  3455. #define FLEXPWM3_SM2DMAEN (IMXRT_FLEXPWM3.SM[2].DMAEN)
  3456. #define FLEXPWM3_SM2TCTRL (IMXRT_FLEXPWM3.SM[2].TCTRL)
  3457. #define FLEXPWM3_SM2DISMAP0 (IMXRT_FLEXPWM3.SM[2].DISMAP0)
  3458. #define FLEXPWM3_SM2DISMAP1 (IMXRT_FLEXPWM3.SM[2].DISMAP1)
  3459. #define FLEXPWM3_SM2DTCNT0 (IMXRT_FLEXPWM3.SM[2].DTCNT0)
  3460. #define FLEXPWM3_SM2DTCNT1 (IMXRT_FLEXPWM3.SM[2].DTCNT1)
  3461. #define FLEXPWM3_SM2CAPTCTRLA (IMXRT_FLEXPWM3.SM[2].CAPTCTRLA)
  3462. #define FLEXPWM3_SM2CAPTCOMPA (IMXRT_FLEXPWM3.SM[2].CAPTCOMPA)
  3463. #define FLEXPWM3_SM2CAPTCTRLB (IMXRT_FLEXPWM3.SM[2].CAPTCTRLB)
  3464. #define FLEXPWM3_SM2CAPTCOMPB (IMXRT_FLEXPWM3.SM[2].CAPTCOMPB)
  3465. #define FLEXPWM3_SM2CAPTCTRLX (IMXRT_FLEXPWM3.SM[2].CAPTCTRLX)
  3466. #define FLEXPWM3_SM2CAPTCOMPX (IMXRT_FLEXPWM3.SM[2].CAPTCOMPX)
  3467. #define FLEXPWM3_SM2CVAL0 (IMXRT_FLEXPWM3.SM[2].CVAL0)
  3468. #define FLEXPWM3_SM2CVAL0CYC (IMXRT_FLEXPWM3.SM[2].CVAL0CYC)
  3469. #define FLEXPWM3_SM2CVAL1 (IMXRT_FLEXPWM3.SM[2].CVAL1)
  3470. #define FLEXPWM3_SM2CVAL1CYC (IMXRT_FLEXPWM3.SM[2].CVAL1CYC)
  3471. #define FLEXPWM3_SM2CVAL2 (IMXRT_FLEXPWM3.SM[2].CVAL2)
  3472. #define FLEXPWM3_SM2CVAL2CYC (IMXRT_FLEXPWM3.SM[2].CVAL2CYC)
  3473. #define FLEXPWM3_SM2CVAL3 (IMXRT_FLEXPWM3.SM[2].CVAL3)
  3474. #define FLEXPWM3_SM2CVAL3CYC (IMXRT_FLEXPWM3.SM[2].CVAL3CYC)
  3475. #define FLEXPWM3_SM2CVAL4 (IMXRT_FLEXPWM3.SM[2].CVAL4)
  3476. #define FLEXPWM3_SM2CVAL4CYC (IMXRT_FLEXPWM3.SM[2].CVAL4CYC)
  3477. #define FLEXPWM3_SM2CVAL5 (IMXRT_FLEXPWM3.SM[2].CVAL5)
  3478. #define FLEXPWM3_SM2CVAL5CYC (IMXRT_FLEXPWM3.SM[2].CVAL5CYC)
  3479. #define FLEXPWM3_SM3CNT (IMXRT_FLEXPWM3.SM[3].CNT)
  3480. #define FLEXPWM3_SM3INIT (IMXRT_FLEXPWM3.SM[3].INIT)
  3481. #define FLEXPWM3_SM3CTRL2 (IMXRT_FLEXPWM3.SM[3].CTRL2)
  3482. #define FLEXPWM3_SM3CTRL (IMXRT_FLEXPWM3.SM[3].CTRL)
  3483. #define FLEXPWM3_SM3VAL0 (IMXRT_FLEXPWM3.SM[3].VAL0)
  3484. #define FLEXPWM3_SM3FRACVAL1 (IMXRT_FLEXPWM3.SM[3].FRACVAL1)
  3485. #define FLEXPWM3_SM3VAL1 (IMXRT_FLEXPWM3.SM[3].VAL1)
  3486. #define FLEXPWM3_SM3FRACVAL2 (IMXRT_FLEXPWM3.SM[3].FRACVAL2)
  3487. #define FLEXPWM3_SM3VAL2 (IMXRT_FLEXPWM3.SM[3].VAL2)
  3488. #define FLEXPWM3_SM3FRACVAL3 (IMXRT_FLEXPWM3.SM[3].FRACVAL3)
  3489. #define FLEXPWM3_SM3VAL3 (IMXRT_FLEXPWM3.SM[3].VAL3)
  3490. #define FLEXPWM3_SM3FRACVAL4 (IMXRT_FLEXPWM3.SM[3].FRACVAL4)
  3491. #define FLEXPWM3_SM3VAL4 (IMXRT_FLEXPWM3.SM[3].VAL4)
  3492. #define FLEXPWM3_SM3FRACVAL5 (IMXRT_FLEXPWM3.SM[3].FRACVAL5)
  3493. #define FLEXPWM3_SM3VAL5 (IMXRT_FLEXPWM3.SM[3].VAL5)
  3494. #define FLEXPWM3_SM3FRCTRL (IMXRT_FLEXPWM3.SM[3].FRCTRL)
  3495. #define FLEXPWM3_SM3OCTRL (IMXRT_FLEXPWM3.SM[3].OCTRL)
  3496. #define FLEXPWM3_SM3STS (IMXRT_FLEXPWM3.SM[3].STS)
  3497. #define FLEXPWM3_SM3INTEN (IMXRT_FLEXPWM3.SM[3].INTEN)
  3498. #define FLEXPWM3_SM3DMAEN (IMXRT_FLEXPWM3.SM[3].DMAEN)
  3499. #define FLEXPWM3_SM3TCTRL (IMXRT_FLEXPWM3.SM[3].TCTRL)
  3500. #define FLEXPWM3_SM3DISMAP0 (IMXRT_FLEXPWM3.SM[3].DISMAP0)
  3501. #define FLEXPWM3_SM3DISMAP1 (IMXRT_FLEXPWM3.SM[3].DISMAP1)
  3502. #define FLEXPWM3_SM3DTCNT0 (IMXRT_FLEXPWM3.SM[3].DTCNT0)
  3503. #define FLEXPWM3_SM3DTCNT1 (IMXRT_FLEXPWM3.SM[3].DTCNT1)
  3504. #define FLEXPWM3_SM3CAPTCTRLA (IMXRT_FLEXPWM3.SM[3].CAPTCTRLA)
  3505. #define FLEXPWM3_SM3CAPTCOMPA (IMXRT_FLEXPWM3.SM[3].CAPTCOMPA)
  3506. #define FLEXPWM3_SM3CAPTCTRLB (IMXRT_FLEXPWM3.SM[3].CAPTCTRLB)
  3507. #define FLEXPWM3_SM3CAPTCOMPB (IMXRT_FLEXPWM3.SM[3].CAPTCOMPB)
  3508. #define FLEXPWM3_SM3CAPTCTRLX (IMXRT_FLEXPWM3.SM[3].CAPTCTRLX)
  3509. #define FLEXPWM3_SM3CAPTCOMPX (IMXRT_FLEXPWM3.SM[3].CAPTCOMPX)
  3510. #define FLEXPWM3_SM3CVAL0 (IMXRT_FLEXPWM3.SM[3].CVAL0)
  3511. #define FLEXPWM3_SM3CVAL0CYC (IMXRT_FLEXPWM3.SM[3].CVAL0CYC)
  3512. #define FLEXPWM3_SM3CVAL1 (IMXRT_FLEXPWM3.SM[3].CVAL1)
  3513. #define FLEXPWM3_SM3CVAL1CYC (IMXRT_FLEXPWM3.SM[3].CVAL1CYC)
  3514. #define FLEXPWM3_SM3CVAL2 (IMXRT_FLEXPWM3.SM[3].CVAL2)
  3515. #define FLEXPWM3_SM3CVAL2CYC (IMXRT_FLEXPWM3.SM[3].CVAL2CYC)
  3516. #define FLEXPWM3_SM3CVAL3 (IMXRT_FLEXPWM3.SM[3].CVAL3)
  3517. #define FLEXPWM3_SM3CVAL3CYC (IMXRT_FLEXPWM3.SM[3].CVAL3CYC)
  3518. #define FLEXPWM3_SM3CVAL4 (IMXRT_FLEXPWM3.SM[3].CVAL4)
  3519. #define FLEXPWM3_SM3CVAL4CYC (IMXRT_FLEXPWM3.SM[3].CVAL4CYC)
  3520. #define FLEXPWM3_SM3CVAL5 (IMXRT_FLEXPWM3.SM[3].CVAL5)
  3521. #define FLEXPWM3_SM3CVAL5CYC (IMXRT_FLEXPWM3.SM[3].CVAL5CYC)
  3522. #define FLEXPWM3_OUTEN (IMXRT_FLEXPWM3.OUTEN)
  3523. #define FLEXPWM3_MASK (IMXRT_FLEXPWM3.MASK)
  3524. #define FLEXPWM3_SWCOUT (IMXRT_FLEXPWM3.SWCOUT)
  3525. #define FLEXPWM3_DTSRCSEL (IMXRT_FLEXPWM3.DTSRCSEL)
  3526. #define FLEXPWM3_MCTRL (IMXRT_FLEXPWM3.MCTRL)
  3527. #define FLEXPWM3_MCTRL2 (IMXRT_FLEXPWM3.MCTRL2)
  3528. #define FLEXPWM3_FCTRL0 (IMXRT_FLEXPWM3.FCTRL0)
  3529. #define FLEXPWM3_FSTS0 (IMXRT_FLEXPWM3.FSTS0)
  3530. #define FLEXPWM3_FFILT0 (IMXRT_FLEXPWM3.FFILT0)
  3531. #define FLEXPWM3_FTST0 (IMXRT_FLEXPWM3.FTST0)
  3532. #define FLEXPWM3_FCTRL20 (IMXRT_FLEXPWM3.FCTRL20)
  3533. #define FLEXPWM4_SM0CNT (IMXRT_FLEXPWM4.SM[0].CNT)
  3534. #define FLEXPWM4_SM0INIT (IMXRT_FLEXPWM4.SM[0].INIT)
  3535. #define FLEXPWM4_SM0CTRL2 (IMXRT_FLEXPWM4.SM[0].CTRL2)
  3536. #define FLEXPWM4_SM0CTRL (IMXRT_FLEXPWM4.SM[0].CTRL)
  3537. #define FLEXPWM4_SM0VAL0 (IMXRT_FLEXPWM4.SM[0].VAL0)
  3538. #define FLEXPWM4_SM0FRACVAL1 (IMXRT_FLEXPWM4.SM[0].FRACVAL1)
  3539. #define FLEXPWM4_SM0VAL1 (IMXRT_FLEXPWM4.SM[0].VAL1)
  3540. #define FLEXPWM4_SM0FRACVAL2 (IMXRT_FLEXPWM4.SM[0].FRACVAL2)
  3541. #define FLEXPWM4_SM0VAL2 (IMXRT_FLEXPWM4.SM[0].VAL2)
  3542. #define FLEXPWM4_SM0FRACVAL3 (IMXRT_FLEXPWM4.SM[0].FRACVAL3)
  3543. #define FLEXPWM4_SM0VAL3 (IMXRT_FLEXPWM4.SM[0].VAL3)
  3544. #define FLEXPWM4_SM0FRACVAL4 (IMXRT_FLEXPWM4.SM[0].FRACVAL4)
  3545. #define FLEXPWM4_SM0VAL4 (IMXRT_FLEXPWM4.SM[0].VAL4)
  3546. #define FLEXPWM4_SM0FRACVAL5 (IMXRT_FLEXPWM4.SM[0].FRACVAL5)
  3547. #define FLEXPWM4_SM0VAL5 (IMXRT_FLEXPWM4.SM[0].VAL5)
  3548. #define FLEXPWM4_SM0FRCTRL (IMXRT_FLEXPWM4.SM[0].FRCTRL)
  3549. #define FLEXPWM4_SM0OCTRL (IMXRT_FLEXPWM4.SM[0].OCTRL)
  3550. #define FLEXPWM4_SM0STS (IMXRT_FLEXPWM4.SM[0].STS)
  3551. #define FLEXPWM4_SM0INTEN (IMXRT_FLEXPWM4.SM[0].INTEN)
  3552. #define FLEXPWM4_SM0DMAEN (IMXRT_FLEXPWM4.SM[0].DMAEN)
  3553. #define FLEXPWM4_SM0TCTRL (IMXRT_FLEXPWM4.SM[0].TCTRL)
  3554. #define FLEXPWM4_SM0DISMAP0 (IMXRT_FLEXPWM4.SM[0].DISMAP0)
  3555. #define FLEXPWM4_SM0DISMAP1 (IMXRT_FLEXPWM4.SM[0].DISMAP1)
  3556. #define FLEXPWM4_SM0DTCNT0 (IMXRT_FLEXPWM4.SM[0].DTCNT0)
  3557. #define FLEXPWM4_SM0DTCNT1 (IMXRT_FLEXPWM4.SM[0].DTCNT1)
  3558. #define FLEXPWM4_SM0CAPTCTRLA (IMXRT_FLEXPWM4.SM[0].CAPTCTRLA)
  3559. #define FLEXPWM4_SM0CAPTCOMPA (IMXRT_FLEXPWM4.SM[0].CAPTCOMPA)
  3560. #define FLEXPWM4_SM0CAPTCTRLB (IMXRT_FLEXPWM4.SM[0].CAPTCTRLB)
  3561. #define FLEXPWM4_SM0CAPTCOMPB (IMXRT_FLEXPWM4.SM[0].CAPTCOMPB)
  3562. #define FLEXPWM4_SM0CAPTCTRLX (IMXRT_FLEXPWM4.SM[0].CAPTCTRLX)
  3563. #define FLEXPWM4_SM0CAPTCOMPX (IMXRT_FLEXPWM4.SM[0].CAPTCOMPX)
  3564. #define FLEXPWM4_SM0CVAL0 (IMXRT_FLEXPWM4.SM[0].CVAL0)
  3565. #define FLEXPWM4_SM0CVAL0CYC (IMXRT_FLEXPWM4.SM[0].CVAL0CYC)
  3566. #define FLEXPWM4_SM0CVAL1 (IMXRT_FLEXPWM4.SM[0].CVAL1)
  3567. #define FLEXPWM4_SM0CVAL1CYC (IMXRT_FLEXPWM4.SM[0].CVAL1CYC)
  3568. #define FLEXPWM4_SM0CVAL2 (IMXRT_FLEXPWM4.SM[0].CVAL2)
  3569. #define FLEXPWM4_SM0CVAL2CYC (IMXRT_FLEXPWM4.SM[0].CVAL2CYC)
  3570. #define FLEXPWM4_SM0CVAL3 (IMXRT_FLEXPWM4.SM[0].CVAL3)
  3571. #define FLEXPWM4_SM0CVAL3CYC (IMXRT_FLEXPWM4.SM[0].CVAL3CYC)
  3572. #define FLEXPWM4_SM0CVAL4 (IMXRT_FLEXPWM4.SM[0].CVAL4)
  3573. #define FLEXPWM4_SM0CVAL4CYC (IMXRT_FLEXPWM4.SM[0].CVAL4CYC)
  3574. #define FLEXPWM4_SM0CVAL5 (IMXRT_FLEXPWM4.SM[0].CVAL5)
  3575. #define FLEXPWM4_SM0CVAL5CYC (IMXRT_FLEXPWM4.SM[0].CVAL5CYC)
  3576. #define FLEXPWM4_SM1CNT (IMXRT_FLEXPWM4.SM[1].CNT)
  3577. #define FLEXPWM4_SM1INIT (IMXRT_FLEXPWM4.SM[1].INIT)
  3578. #define FLEXPWM4_SM1CTRL2 (IMXRT_FLEXPWM4.SM[1].CTRL2)
  3579. #define FLEXPWM4_SM1CTRL (IMXRT_FLEXPWM4.SM[1].CTRL)
  3580. #define FLEXPWM4_SM1VAL0 (IMXRT_FLEXPWM4.SM[1].VAL0)
  3581. #define FLEXPWM4_SM1FRACVAL1 (IMXRT_FLEXPWM4.SM[1].FRACVAL1)
  3582. #define FLEXPWM4_SM1VAL1 (IMXRT_FLEXPWM4.SM[1].VAL1)
  3583. #define FLEXPWM4_SM1FRACVAL2 (IMXRT_FLEXPWM4.SM[1].FRACVAL2)
  3584. #define FLEXPWM4_SM1VAL2 (IMXRT_FLEXPWM4.SM[1].VAL2)
  3585. #define FLEXPWM4_SM1FRACVAL3 (IMXRT_FLEXPWM4.SM[1].FRACVAL3)
  3586. #define FLEXPWM4_SM1VAL3 (IMXRT_FLEXPWM4.SM[1].VAL3)
  3587. #define FLEXPWM4_SM1FRACVAL4 (IMXRT_FLEXPWM4.SM[1].FRACVAL4)
  3588. #define FLEXPWM4_SM1VAL4 (IMXRT_FLEXPWM4.SM[1].VAL4)
  3589. #define FLEXPWM4_SM1FRACVAL5 (IMXRT_FLEXPWM4.SM[1].FRACVAL5)
  3590. #define FLEXPWM4_SM1VAL5 (IMXRT_FLEXPWM4.SM[1].VAL5)
  3591. #define FLEXPWM4_SM1FRCTRL (IMXRT_FLEXPWM4.SM[1].FRCTRL)
  3592. #define FLEXPWM4_SM1OCTRL (IMXRT_FLEXPWM4.SM[1].OCTRL)
  3593. #define FLEXPWM4_SM1STS (IMXRT_FLEXPWM4.SM[1].STS)
  3594. #define FLEXPWM4_SM1INTEN (IMXRT_FLEXPWM4.SM[1].INTEN)
  3595. #define FLEXPWM4_SM1DMAEN (IMXRT_FLEXPWM4.SM[1].DMAEN)
  3596. #define FLEXPWM4_SM1TCTRL (IMXRT_FLEXPWM4.SM[1].TCTRL)
  3597. #define FLEXPWM4_SM1DISMAP0 (IMXRT_FLEXPWM4.SM[1].DISMAP0)
  3598. #define FLEXPWM4_SM1DISMAP1 (IMXRT_FLEXPWM4.SM[1].DISMAP1)
  3599. #define FLEXPWM4_SM1DTCNT0 (IMXRT_FLEXPWM4.SM[1].DTCNT0)
  3600. #define FLEXPWM4_SM1DTCNT1 (IMXRT_FLEXPWM4.SM[1].DTCNT1)
  3601. #define FLEXPWM4_SM1CAPTCTRLA (IMXRT_FLEXPWM4.SM[1].CAPTCTRLA)
  3602. #define FLEXPWM4_SM1CAPTCOMPA (IMXRT_FLEXPWM4.SM[1].CAPTCOMPA)
  3603. #define FLEXPWM4_SM1CAPTCTRLB (IMXRT_FLEXPWM4.SM[1].CAPTCTRLB)
  3604. #define FLEXPWM4_SM1CAPTCOMPB (IMXRT_FLEXPWM4.SM[1].CAPTCOMPB)
  3605. #define FLEXPWM4_SM1CAPTCTRLX (IMXRT_FLEXPWM4.SM[1].CAPTCTRLX)
  3606. #define FLEXPWM4_SM1CAPTCOMPX (IMXRT_FLEXPWM4.SM[1].CAPTCOMPX)
  3607. #define FLEXPWM4_SM1CVAL0 (IMXRT_FLEXPWM4.SM[1].CVAL0)
  3608. #define FLEXPWM4_SM1CVAL0CYC (IMXRT_FLEXPWM4.SM[1].CVAL0CYC)
  3609. #define FLEXPWM4_SM1CVAL1 (IMXRT_FLEXPWM4.SM[1].CVAL1)
  3610. #define FLEXPWM4_SM1CVAL1CYC (IMXRT_FLEXPWM4.SM[1].CVAL1CYC)
  3611. #define FLEXPWM4_SM1CVAL2 (IMXRT_FLEXPWM4.SM[1].CVAL2)
  3612. #define FLEXPWM4_SM1CVAL2CYC (IMXRT_FLEXPWM4.SM[1].CVAL2CYC)
  3613. #define FLEXPWM4_SM1CVAL3 (IMXRT_FLEXPWM4.SM[1].CVAL3)
  3614. #define FLEXPWM4_SM1CVAL3CYC (IMXRT_FLEXPWM4.SM[1].CVAL3CYC)
  3615. #define FLEXPWM4_SM1CVAL4 (IMXRT_FLEXPWM4.SM[1].CVAL4)
  3616. #define FLEXPWM4_SM1CVAL4CYC (IMXRT_FLEXPWM4.SM[1].CVAL4CYC)
  3617. #define FLEXPWM4_SM1CVAL5 (IMXRT_FLEXPWM4.SM[1].CVAL5)
  3618. #define FLEXPWM4_SM1CVAL5CYC (IMXRT_FLEXPWM4.SM[1].CVAL5CYC)
  3619. #define FLEXPWM4_SM2CNT (IMXRT_FLEXPWM4.SM[2].CNT)
  3620. #define FLEXPWM4_SM2INIT (IMXRT_FLEXPWM4.SM[2].INIT)
  3621. #define FLEXPWM4_SM2CTRL2 (IMXRT_FLEXPWM4.SM[2].CTRL2)
  3622. #define FLEXPWM4_SM2CTRL (IMXRT_FLEXPWM4.SM[2].CTRL)
  3623. #define FLEXPWM4_SM2VAL0 (IMXRT_FLEXPWM4.SM[2].VAL0)
  3624. #define FLEXPWM4_SM2FRACVAL1 (IMXRT_FLEXPWM4.SM[2].FRACVAL1)
  3625. #define FLEXPWM4_SM2VAL1 (IMXRT_FLEXPWM4.SM[2].VAL1)
  3626. #define FLEXPWM4_SM2FRACVAL2 (IMXRT_FLEXPWM4.SM[2].FRACVAL2)
  3627. #define FLEXPWM4_SM2VAL2 (IMXRT_FLEXPWM4.SM[2].VAL2)
  3628. #define FLEXPWM4_SM2FRACVAL3 (IMXRT_FLEXPWM4.SM[2].FRACVAL3)
  3629. #define FLEXPWM4_SM2VAL3 (IMXRT_FLEXPWM4.SM[2].VAL3)
  3630. #define FLEXPWM4_SM2FRACVAL4 (IMXRT_FLEXPWM4.SM[2].FRACVAL4)
  3631. #define FLEXPWM4_SM2VAL4 (IMXRT_FLEXPWM4.SM[2].VAL4)
  3632. #define FLEXPWM4_SM2FRACVAL5 (IMXRT_FLEXPWM4.SM[2].FRACVAL5)
  3633. #define FLEXPWM4_SM2VAL5 (IMXRT_FLEXPWM4.SM[2].VAL5)
  3634. #define FLEXPWM4_SM2FRCTRL (IMXRT_FLEXPWM4.SM[2].FRCTRL)
  3635. #define FLEXPWM4_SM2OCTRL (IMXRT_FLEXPWM4.SM[2].OCTRL)
  3636. #define FLEXPWM4_SM2STS (IMXRT_FLEXPWM4.SM[2].STS)
  3637. #define FLEXPWM4_SM2INTEN (IMXRT_FLEXPWM4.SM[2].INTEN)
  3638. #define FLEXPWM4_SM2DMAEN (IMXRT_FLEXPWM4.SM[2].DMAEN)
  3639. #define FLEXPWM4_SM2TCTRL (IMXRT_FLEXPWM4.SM[2].TCTRL)
  3640. #define FLEXPWM4_SM2DISMAP0 (IMXRT_FLEXPWM4.SM[2].DISMAP0)
  3641. #define FLEXPWM4_SM2DISMAP1 (IMXRT_FLEXPWM4.SM[2].DISMAP1)
  3642. #define FLEXPWM4_SM2DTCNT0 (IMXRT_FLEXPWM4.SM[2].DTCNT0)
  3643. #define FLEXPWM4_SM2DTCNT1 (IMXRT_FLEXPWM4.SM[2].DTCNT1)
  3644. #define FLEXPWM4_SM2CAPTCTRLA (IMXRT_FLEXPWM4.SM[2].CAPTCTRLA)
  3645. #define FLEXPWM4_SM2CAPTCOMPA (IMXRT_FLEXPWM4.SM[2].CAPTCOMPA)
  3646. #define FLEXPWM4_SM2CAPTCTRLB (IMXRT_FLEXPWM4.SM[2].CAPTCTRLB)
  3647. #define FLEXPWM4_SM2CAPTCOMPB (IMXRT_FLEXPWM4.SM[2].CAPTCOMPB)
  3648. #define FLEXPWM4_SM2CAPTCTRLX (IMXRT_FLEXPWM4.SM[2].CAPTCTRLX)
  3649. #define FLEXPWM4_SM2CAPTCOMPX (IMXRT_FLEXPWM4.SM[2].CAPTCOMPX)
  3650. #define FLEXPWM4_SM2CVAL0 (IMXRT_FLEXPWM4.SM[2].CVAL0)
  3651. #define FLEXPWM4_SM2CVAL0CYC (IMXRT_FLEXPWM4.SM[2].CVAL0CYC)
  3652. #define FLEXPWM4_SM2CVAL1 (IMXRT_FLEXPWM4.SM[2].CVAL1)
  3653. #define FLEXPWM4_SM2CVAL1CYC (IMXRT_FLEXPWM4.SM[2].CVAL1CYC)
  3654. #define FLEXPWM4_SM2CVAL2 (IMXRT_FLEXPWM4.SM[2].CVAL2)
  3655. #define FLEXPWM4_SM2CVAL2CYC (IMXRT_FLEXPWM4.SM[2].CVAL2CYC)
  3656. #define FLEXPWM4_SM2CVAL3 (IMXRT_FLEXPWM4.SM[2].CVAL3)
  3657. #define FLEXPWM4_SM2CVAL3CYC (IMXRT_FLEXPWM4.SM[2].CVAL3CYC)
  3658. #define FLEXPWM4_SM2CVAL4 (IMXRT_FLEXPWM4.SM[2].CVAL4)
  3659. #define FLEXPWM4_SM2CVAL4CYC (IMXRT_FLEXPWM4.SM[2].CVAL4CYC)
  3660. #define FLEXPWM4_SM2CVAL5 (IMXRT_FLEXPWM4.SM[2].CVAL5)
  3661. #define FLEXPWM4_SM2CVAL5CYC (IMXRT_FLEXPWM4.SM[2].CVAL5CYC)
  3662. #define FLEXPWM4_SM3CNT (IMXRT_FLEXPWM4.SM[3].CNT)
  3663. #define FLEXPWM4_SM3INIT (IMXRT_FLEXPWM4.SM[3].INIT)
  3664. #define FLEXPWM4_SM3CTRL2 (IMXRT_FLEXPWM4.SM[3].CTRL2)
  3665. #define FLEXPWM4_SM3CTRL (IMXRT_FLEXPWM4.SM[3].CTRL)
  3666. #define FLEXPWM4_SM3VAL0 (IMXRT_FLEXPWM4.SM[3].VAL0)
  3667. #define FLEXPWM4_SM3FRACVAL1 (IMXRT_FLEXPWM4.SM[3].FRACVAL1)
  3668. #define FLEXPWM4_SM3VAL1 (IMXRT_FLEXPWM4.SM[3].VAL1)
  3669. #define FLEXPWM4_SM3FRACVAL2 (IMXRT_FLEXPWM4.SM[3].FRACVAL2)
  3670. #define FLEXPWM4_SM3VAL2 (IMXRT_FLEXPWM4.SM[3].VAL2)
  3671. #define FLEXPWM4_SM3FRACVAL3 (IMXRT_FLEXPWM4.SM[3].FRACVAL3)
  3672. #define FLEXPWM4_SM3VAL3 (IMXRT_FLEXPWM4.SM[3].VAL3)
  3673. #define FLEXPWM4_SM3FRACVAL4 (IMXRT_FLEXPWM4.SM[3].FRACVAL4)
  3674. #define FLEXPWM4_SM3VAL4 (IMXRT_FLEXPWM4.SM[3].VAL4)
  3675. #define FLEXPWM4_SM3FRACVAL5 (IMXRT_FLEXPWM4.SM[3].FRACVAL5)
  3676. #define FLEXPWM4_SM3VAL5 (IMXRT_FLEXPWM4.SM[3].VAL5)
  3677. #define FLEXPWM4_SM3FRCTRL (IMXRT_FLEXPWM4.SM[3].FRCTRL)
  3678. #define FLEXPWM4_SM3OCTRL (IMXRT_FLEXPWM4.SM[3].OCTRL)
  3679. #define FLEXPWM4_SM3STS (IMXRT_FLEXPWM4.SM[3].STS)
  3680. #define FLEXPWM4_SM3INTEN (IMXRT_FLEXPWM4.SM[3].INTEN)
  3681. #define FLEXPWM4_SM3DMAEN (IMXRT_FLEXPWM4.SM[3].DMAEN)
  3682. #define FLEXPWM4_SM3TCTRL (IMXRT_FLEXPWM4.SM[3].TCTRL)
  3683. #define FLEXPWM4_SM3DISMAP0 (IMXRT_FLEXPWM4.SM[3].DISMAP0)
  3684. #define FLEXPWM4_SM3DISMAP1 (IMXRT_FLEXPWM4.SM[3].DISMAP1)
  3685. #define FLEXPWM4_SM3DTCNT0 (IMXRT_FLEXPWM4.SM[3].DTCNT0)
  3686. #define FLEXPWM4_SM3DTCNT1 (IMXRT_FLEXPWM4.SM[3].DTCNT1)
  3687. #define FLEXPWM4_SM3CAPTCTRLA (IMXRT_FLEXPWM4.SM[3].CAPTCTRLA)
  3688. #define FLEXPWM4_SM3CAPTCOMPA (IMXRT_FLEXPWM4.SM[3].CAPTCOMPA)
  3689. #define FLEXPWM4_SM3CAPTCTRLB (IMXRT_FLEXPWM4.SM[3].CAPTCTRLB)
  3690. #define FLEXPWM4_SM3CAPTCOMPB (IMXRT_FLEXPWM4.SM[3].CAPTCOMPB)
  3691. #define FLEXPWM4_SM3CAPTCTRLX (IMXRT_FLEXPWM4.SM[3].CAPTCTRLX)
  3692. #define FLEXPWM4_SM3CAPTCOMPX (IMXRT_FLEXPWM4.SM[3].CAPTCOMPX)
  3693. #define FLEXPWM4_SM3CVAL0 (IMXRT_FLEXPWM4.SM[3].CVAL0)
  3694. #define FLEXPWM4_SM3CVAL0CYC (IMXRT_FLEXPWM4.SM[3].CVAL0CYC)
  3695. #define FLEXPWM4_SM3CVAL1 (IMXRT_FLEXPWM4.SM[3].CVAL1)
  3696. #define FLEXPWM4_SM3CVAL1CYC (IMXRT_FLEXPWM4.SM[3].CVAL1CYC)
  3697. #define FLEXPWM4_SM3CVAL2 (IMXRT_FLEXPWM4.SM[3].CVAL2)
  3698. #define FLEXPWM4_SM3CVAL2CYC (IMXRT_FLEXPWM4.SM[3].CVAL2CYC)
  3699. #define FLEXPWM4_SM3CVAL3 (IMXRT_FLEXPWM4.SM[3].CVAL3)
  3700. #define FLEXPWM4_SM3CVAL3CYC (IMXRT_FLEXPWM4.SM[3].CVAL3CYC)
  3701. #define FLEXPWM4_SM3CVAL4 (IMXRT_FLEXPWM4.SM[3].CVAL4)
  3702. #define FLEXPWM4_SM3CVAL4CYC (IMXRT_FLEXPWM4.SM[3].CVAL4CYC)
  3703. #define FLEXPWM4_SM3CVAL5 (IMXRT_FLEXPWM4.SM[3].CVAL5)
  3704. #define FLEXPWM4_SM3CVAL5CYC (IMXRT_FLEXPWM4.SM[3].CVAL5CYC)
  3705. #define FLEXPWM4_OUTEN (IMXRT_FLEXPWM4.OUTEN)
  3706. #define FLEXPWM4_MASK (IMXRT_FLEXPWM4.MASK)
  3707. #define FLEXPWM4_SWCOUT (IMXRT_FLEXPWM4.SWCOUT)
  3708. #define FLEXPWM4_DTSRCSEL (IMXRT_FLEXPWM4.DTSRCSEL)
  3709. #define FLEXPWM4_MCTRL (IMXRT_FLEXPWM4.MCTRL)
  3710. #define FLEXPWM4_MCTRL2 (IMXRT_FLEXPWM4.MCTRL2)
  3711. #define FLEXPWM4_FCTRL0 (IMXRT_FLEXPWM4.FCTRL0)
  3712. #define FLEXPWM4_FSTS0 (IMXRT_FLEXPWM4.FSTS0)
  3713. #define FLEXPWM4_FFILT0 (IMXRT_FLEXPWM4.FFILT0)
  3714. #define FLEXPWM4_FTST0 (IMXRT_FLEXPWM4.FTST0)
  3715. #define FLEXPWM4_FCTRL20 (IMXRT_FLEXPWM4.FCTRL20)
  3716. // page 1361
  3717. #define FLEXPWM_SMCTRL2_DBGEN ((uint16_t)(1<<15))
  3718. #define FLEXPWM_SMCTRL2_WAITEN ((uint16_t)(1<<14))
  3719. #define FLEXPWM_SMCTRL2_INDEP ((uint16_t)(1<<13))
  3720. #define FLEXPWM_SMCTRL2_PWM23_INIT ((uint16_t)(1<<12))
  3721. #define FLEXPWM_SMCTRL2_PWM45_INIT ((uint16_t)(1<<11))
  3722. #define FLEXPWM_SMCTRL2_PWMX_INIT ((uint16_t)(1<<10))
  3723. #define FLEXPWM_SMCTRL2_INIT_SEL(n) ((uint16_t)(((n) & 0x03) << 8))
  3724. #define FLEXPWM_SMCTRL2_FRCEN ((uint16_t)(1<<7))
  3725. #define FLEXPWM_SMCTRL2_FORCE ((uint16_t)(1<<6))
  3726. #define FLEXPWM_SMCTRL2_FORCE_SEL(n) ((uint16_t)(((n) & 0x07) << 3))
  3727. #define FLEXPWM_SMCTRL2_RELOAD_SEL ((uint16_t)(1<<2))
  3728. #define FLEXPWM_SMCTRL2_CLK_SEL(n) ((uint16_t)(((n) & 0x03) << 0))
  3729. #define FLEXPWM_SMCTRL_LDFQ(n) ((uint16_t)(((n) & 0x0F) << 12))
  3730. #define FLEXPWM_SMCTRL_HALF ((uint16_t)(1<<11))
  3731. #define FLEXPWM_SMCTRL_FULL ((uint16_t)(1<<10))
  3732. #define FLEXPWM_SMCTRL_DT(n) ((uint16_t)(((n) & 0x03) << 8))
  3733. #define FLEXPWM_SMCTRL_COMPMODE ((uint16_t)(1<<7))
  3734. #define FLEXPWM_SMCTRL_PRSC(n) ((uint16_t)(((n) & 0x0F) << 4))
  3735. #define FLEXPWM_SMCTRL_SPLIT ((uint16_t)(1<<3))
  3736. #define FLEXPWM_SMCTRL_LDMOD ((uint16_t)(1<<2))
  3737. #define FLEXPWM_SMCTRL_DBLX ((uint16_t)(1<<1))
  3738. #define FLEXPWM_SMCTRL_DBLEN ((uint16_t)(1<<0))
  3739. #define FLEXPWM_SMFRCTRL_TEST ((uint16_t)(1<<15))
  3740. #define FLEXPWM_SMFRCTRL_FRAC_PU ((uint16_t)(1<<8))
  3741. #define FLEXPWM_SMFRCTRL_FRAC45_EN ((uint16_t)(1<<4))
  3742. #define FLEXPWM_SMFRCTRL_FRAC23_EN ((uint16_t)(1<<2))
  3743. #define FLEXPWM_SMFRCTRL_FRAC1_EN ((uint16_t)(1<<1))
  3744. #define FLEXPWM_SMOCTRL_PWMA_IN ((uint16_t)(1<<15))
  3745. #define FLEXPWM_SMOCTRL_PWMB_IN ((uint16_t)(1<<14))
  3746. #define FLEXPWM_SMOCTRL_PWMX_IN ((uint16_t)(1<<13))
  3747. #define FLEXPWM_SMOCTRL_POLA ((uint16_t)(1<<10))
  3748. #define FLEXPWM_SMOCTRL_POLB ((uint16_t)(1<<9))
  3749. #define FLEXPWM_SMOCTRL_POLX ((uint16_t)(1<<8))
  3750. #define FLEXPWM_SMOCTRL_PWMAFS(n) ((uint16_t)(((n) & 0x03) << 4))
  3751. #define FLEXPWM_SMOCTRL_PWMBFS(n) ((uint16_t)(((n) & 0x03) << 2))
  3752. #define FLEXPWM_SMOCTRL_PWMXFS(n) ((uint16_t)(((n) & 0x03) << 0))
  3753. #define FLEXPWM_SMSTS_RUF ((uint16_t)(1<<14))
  3754. #define FLEXPWM_SMSTS_REF ((uint16_t)(1<<13))
  3755. #define FLEXPWM_SMSTS_RF ((uint16_t)(1<<12))
  3756. #define FLEXPWM_SMSTS_CFA1 ((uint16_t)(1<<11))
  3757. #define FLEXPWM_SMSTS_CFA0 ((uint16_t)(1<<10))
  3758. #define FLEXPWM_SMSTS_CFB1 ((uint16_t)(1<<9))
  3759. #define FLEXPWM_SMSTS_CFB0 ((uint16_t)(1<<8))
  3760. #define FLEXPWM_SMSTS_CFX1 ((uint16_t)(1<<7))
  3761. #define FLEXPWM_SMSTS_CFX0 ((uint16_t)(1<<6))
  3762. #define FLEXPWM_SMSTS_CMPF(n) ((uint16_t)(((n) & 0x3F) << 0))
  3763. #define FLEXPWM_SMINTEN_REIE ((uint16_t)(1<<13))
  3764. #define FLEXPWM_SMINTEN_RIE ((uint16_t)(1<<12))
  3765. #define FLEXPWM_SMINTEN_CA1IE ((uint16_t)(1<<11))
  3766. #define FLEXPWM_SMINTEN_CA0IE ((uint16_t)(1<<10))
  3767. #define FLEXPWM_SMINTEN_CB1IE ((uint16_t)(1<<9))
  3768. #define FLEXPWM_SMINTEN_CB0IE ((uint16_t)(1<<8))
  3769. #define FLEXPWM_SMINTEN_CX1IE ((uint16_t)(1<<7))
  3770. #define FLEXPWM_SMINTEN_CX0IE ((uint16_t)(1<<6))
  3771. #define FLEXPWM_SMINTEN_CMPIE(n) ((uint16_t)(((n) & 0x3F) << 0))
  3772. #define FLEXPWM_SMDMAEN_VALDE ((uint16_t)(1<<9))
  3773. #define FLEXPWM_SMDMAEN_FAND ((uint16_t)(1<<8))
  3774. #define FLEXPWM_SMDMAEN_CAPTDE(n) ((uint16_t)(((n) & 0x03) << 6))
  3775. #define FLEXPWM_SMDMAEN_CA1DE ((uint16_t)(1<<5))
  3776. #define FLEXPWM_SMDMAEN_CA0DE ((uint16_t)(1<<4))
  3777. #define FLEXPWM_SMDMAEN_CB1DE ((uint16_t)(1<<3))
  3778. #define FLEXPWM_SMDMAEN_CB0DE ((uint16_t)(1<<2))
  3779. #define FLEXPWM_SMDMAEN_CX1DE ((uint16_t)(1<<1))
  3780. #define FLEXPWM_SMDMAEN_CX0DE ((uint16_t)(1<<0))
  3781. #define FLEXPWM_SMTCTRL_PWAOT0 ((uint16_t)(1<<15))
  3782. #define FLEXPWM_SMTCTRL_PWBOT1 ((uint16_t)(1<<14))
  3783. #define FLEXPWM_SMTCTRL_TRGFRQ ((uint16_t)(1<<12))
  3784. #define FLEXPWM_SMTCTRL_OUT_TRIG_EN(n) ((uint16_t)(((n) & 0x1F) << 0))
  3785. #define FLEXPWM_SMDISMAP0_DIS0X(n) ((uint16_t)(((n) & 0x0F) << 8))
  3786. #define FLEXPWM_SMDISMAP0_DIS0B(n) ((uint16_t)(((n) & 0x0F) << 4))
  3787. #define FLEXPWM_SMDISMAP0_DIS0A(n) ((uint16_t)(((n) & 0x0F) << 0))
  3788. #define FLEXPWM_SMDISMAP1_DIS1X(n) ((uint16_t)(((n) & 0x0F) << 8))
  3789. #define FLEXPWM_SMDISMAP1_DIS1B(n) ((uint16_t)(((n) & 0x0F) << 4))
  3790. #define FLEXPWM_SMDISMAP1_DIS1A(n) ((uint16_t)(((n) & 0x0F) << 0))
  3791. #define FLEXPWM_SMCAPTCTRLA_CA1CNT(n) ((uint16_t)(((n) & 0x07) << 13))
  3792. #define FLEXPWM_SMCAPTCTRLA_CA0CNT(n) ((uint16_t)(((n) & 0x07) << 10))
  3793. #define FLEXPWM_SMCAPTCTRLA_CFAWM(n) ((uint16_t)(((n) & 0x03) << 8))
  3794. #define FLEXPWM_SMCAPTCTRLA_EDGCNTA_EN ((uint16_t)(1<<7))
  3795. #define FLEXPWM_SMCAPTCTRLA_INP_SELA ((uint16_t)(1<<6))
  3796. #define FLEXPWM_SMCAPTCTRLA_EDGA1(n) ((uint16_t)(((n) & 0x03) << 4))
  3797. #define FLEXPWM_SMCAPTCTRLA_EDGA0(n) ((uint16_t)(((n) & 0x03) << 2))
  3798. #define FLEXPWM_SMCAPTCTRLA_ONESHOTA ((uint16_t)(1<<1))
  3799. #define FLEXPWM_SMCAPTCTRLA_ARMA ((uint16_t)(1<<0))
  3800. #define FLEXPWM_SMCAPTCOMPA_EDGCNTA(n) ((uint16_t)(((n) & 0xFF) << 8))
  3801. #define FLEXPWM_SMCAPTCOMPA_EDGCMPA(n) ((uint16_t)(((n) & 0xFF) << 0))
  3802. #define FLEXPWM_SMCAPTCTRLB_CB1CNT(n) ((uint16_t)(((n) & 0x07) << 13))
  3803. #define FLEXPWM_SMCAPTCTRLB_CB0CNT(n) ((uint16_t)(((n) & 0x07) << 10))
  3804. #define FLEXPWM_SMCAPTCTRLB_CFBWM(n) ((uint16_t)(((n) & 0x03) << 8))
  3805. #define FLEXPWM_SMCAPTCTRLB_EDGCNTB_EN ((uint16_t)(1<<7))
  3806. #define FLEXPWM_SMCAPTCTRLB_INP_SELB ((uint16_t)(1<<6))
  3807. #define FLEXPWM_SMCAPTCTRLB_EDGB1(n) ((uint16_t)(((n) & 0x03) << 4))
  3808. #define FLEXPWM_SMCAPTCTRLB_EDGB0(n) ((uint16_t)(((n) & 0x03) << 2))
  3809. #define FLEXPWM_SMCAPTCTRLB_ONESHOTB ((uint16_t)(1<<1))
  3810. #define FLEXPWM_SMCAPTCTRLB_ARMB ((uint16_t)(1<<0))
  3811. #define FLEXPWM_SMCAPTCOMPB_EDGCNTB(n) ((uint16_t)(((n) & 0xFF) << 8))
  3812. #define FLEXPWM_SMCAPTCOMPB_EDGCMPB(n) ((uint16_t)(((n) & 0xFF) << 0))
  3813. #define FLEXPWM_SMCAPTCTRLX_CX1CNT(n) ((uint16_t)(((n) & 0x07) << 13))
  3814. #define FLEXPWM_SMCAPTCTRLX_CX0CNT(n) ((uint16_t)(((n) & 0x07) << 10))
  3815. #define FLEXPWM_SMCAPTCTRLX_CFXWM(n) ((uint16_t)(((n) & 0x03) << 8))
  3816. #define FLEXPWM_SMCAPTCTRLX_EDGCNTX_EN ((uint16_t)(1<<7))
  3817. #define FLEXPWM_SMCAPTCTRLX_INP_SELX ((uint16_t)(1<<6))
  3818. #define FLEXPWM_SMCAPTCTRLX_EDGX1(n) ((uint16_t)(((n) & 0x03) << 4))
  3819. #define FLEXPWM_SMCAPTCTRLX_EDGX0(n) ((uint16_t)(((n) & 0x03) << 2))
  3820. #define FLEXPWM_SMCAPTCTRLX_ONESHOTX ((uint16_t)(1<<1))
  3821. #define FLEXPWM_SMCAPTCTRLX_ARMX ((uint16_t)(1<<0))
  3822. #define FLEXPWM_SMCAPTCOMPX_EDGCNTX(n) ((uint16_t)(((n) & 0xFF) << 8))
  3823. #define FLEXPWM_SMCAPTCOMPX_EDGCMPX(n) ((uint16_t)(((n) & 0xFF) << 0))
  3824. #define FLEXPWM_OUTEN_PWMA_EN(n) ((uint16_t)(((n) & 0x0F) << 8))
  3825. #define FLEXPWM_OUTEN_PWMB_EN(n) ((uint16_t)(((n) & 0x0F) << 4))
  3826. #define FLEXPWM_OUTEN_PWMX_EN(n) ((uint16_t)(((n) & 0x0F) << 0))
  3827. #define FLEXPWM_MASK_UPDATE_MASK(n) ((uint16_t)(((n) & 0x0F) << 12))
  3828. #define FLEXPWM_MASK_MASKA(n) ((uint16_t)(((n) & 0x0F) << 8))
  3829. #define FLEXPWM_MASK_MASKB(n) ((uint16_t)(((n) & 0x0F) << 4))
  3830. #define FLEXPWM_MASK_MASKX(n) ((uint16_t)(((n) & 0x0F) << 0))
  3831. #define FLEXPWM_SWCOUT_SM3OUT23 ((uint16_t)(1<<7))
  3832. #define FLEXPWM_SWCOUT_SM3OUT45 ((uint16_t)(1<<6))
  3833. #define FLEXPWM_SWCOUT_SM2OUT23 ((uint16_t)(1<<5))
  3834. #define FLEXPWM_SWCOUT_SM2OUT45 ((uint16_t)(1<<4))
  3835. #define FLEXPWM_SWCOUT_SM1OUT23 ((uint16_t)(1<<3))
  3836. #define FLEXPWM_SWCOUT_SM1OUT45 ((uint16_t)(1<<2))
  3837. #define FLEXPWM_SWCOUT_SM0OUT23 ((uint16_t)(1<<1))
  3838. #define FLEXPWM_SWCOUT_SM0OUT45 ((uint16_t)(1<<0))
  3839. #define FLEXPWM_DTSRCSEL_SM3SEL23(n) ((uint16_t)(((n) & 0x03) << 14))
  3840. #define FLEXPWM_DTSRCSEL_SM3SEL45(n) ((uint16_t)(((n) & 0x03) << 12))
  3841. #define FLEXPWM_DTSRCSEL_SM2SEL23(n) ((uint16_t)(((n) & 0x03) << 10))
  3842. #define FLEXPWM_DTSRCSEL_SM2SEL45(n) ((uint16_t)(((n) & 0x03) << 8))
  3843. #define FLEXPWM_DTSRCSEL_SM1SEL23(n) ((uint16_t)(((n) & 0x03) << 6))
  3844. #define FLEXPWM_DTSRCSEL_SM1SEL45(n) ((uint16_t)(((n) & 0x03) << 4))
  3845. #define FLEXPWM_DTSRCSEL_SM0SEL23(n) ((uint16_t)(((n) & 0x03) << 2))
  3846. #define FLEXPWM_DTSRCSEL_SM0SEL45(n) ((uint16_t)(((n) & 0x03) << 0))
  3847. #define FLEXPWM_MCTRL_IPOL(n) ((uint16_t)(((n) & 0x0F) << 12))
  3848. #define FLEXPWM_MCTRL_RUN(n) ((uint16_t)(((n) & 0x0F) << 8))
  3849. #define FLEXPWM_MCTRL_CLDOK(n) ((uint16_t)(((n) & 0x0F) << 4))
  3850. #define FLEXPWM_MCTRL_LDOK(n) ((uint16_t)(((n) & 0x0F) << 0))
  3851. #define FLEXPWM_MCTRL2_MONPLL(n) ((uint16_t)(((n) & 0x03) << 0))
  3852. #define FLEXPWM_FCTRL0_FLVL(n) ((uint16_t)(((n) & 0x0F) << 12))
  3853. #define FLEXPWM_FCTRL0_FAUTO(n) ((uint16_t)(((n) & 0x0F) << 8))
  3854. #define FLEXPWM_FCTRL0_FSAFE(n) ((uint16_t)(((n) & 0x0F) << 4))
  3855. #define FLEXPWM_FCTRL0_FIE(n) ((uint16_t)(((n) & 0x0F) << 0))
  3856. #define FLEXPWM_FSTS0_FHALF(n) ((uint16_t)(((n) & 0x0F) << 12))
  3857. #define FLEXPWM_FSTS0_FFPIN(n) ((uint16_t)(((n) & 0x0F) << 8))
  3858. #define FLEXPWM_FSTS0_FFULL(n) ((uint16_t)(((n) & 0x0F) << 4))
  3859. #define FLEXPWM_FSTS0_FFLAG(n) ((uint16_t)(((n) & 0x0F) << 0))
  3860. #define FLEXPWM_FFILT0_GSTR ((uint16_t)(1<<15))
  3861. #define FLEXPWM_FFILT0_FILT_CNT(n) ((uint16_t)(((n) & 0x07) << 8))
  3862. #define FLEXPWM_FFILT0_FILT_PER(n) ((uint16_t)(((n) & 0xFF) << 0))
  3863. #define FLEXPWM_FTST0_FTEST ((uint16_t)(1<<0))
  3864. #define FLEXPWM_FCTRL20_NOCOMB(n) ((uint16_t)(((n) & 0x0F) << 0))
  3865. // 29.3.1.1: page 1468
  3866. #define IMXRT_FLEXRAM (*(IMXRT_REGISTER32_t *)0x400B0000)
  3867. #define FLEXRAM_TCM_CTRL (IMXRT_FLEXRAM.offset000)
  3868. #define FLEXRAM_INT_STATUS (IMXRT_FLEXRAM.offset010)
  3869. #define FLEXRAM_INT_STAT_EN (IMXRT_FLEXRAM.offset014)
  3870. #define FLEXRAM_INT_SIG_EN (IMXRT_FLEXRAM.offset018)
  3871. #define FLEXRAM_TCM_CTRL_FORCE_CLK_ON ((uint32_t)(1<<2))
  3872. #define FLEXRAM_TCM_CTRL_TCM_RWAIT_EN ((uint32_t)(1<<1))
  3873. #define FLEXRAM_TCM_CTRL_TCM_WWAIT_EN ((uint32_t)(1<<0))
  3874. #define FLEXRAM_INT_STATUS_OCRAM_ERR_STATUS ((uint32_t)(1<<5))
  3875. #define FLEXRAM_INT_STATUS_DTCM_ERR_STATUS ((uint32_t)(1<<4))
  3876. #define FLEXRAM_INT_STATUS_ITCM_ERR_STATUS ((uint32_t)(1<<3))
  3877. #define FLEXRAM_INT_STAT_EN_OCRAM_ERR_STAT_EN ((uint32_t)(1<<5))
  3878. #define FLEXRAM_INT_STAT_EN_DTCM_ERR_STAT_EN ((uint32_t)(1<<4))
  3879. #define FLEXRAM_INT_STAT_EN_ITCM_ERR_STAT_EN ((uint32_t)(1<<3))
  3880. #define FLEXRAM_INT_SIG_EN_OCRAM_ERR_SIG_EN ((uint32_t)(1<<5))
  3881. #define FLEXRAM_INT_SIG_EN_DTCM_ERR_SIG_EN ((uint32_t)(1<<4))
  3882. #define FLEXRAM_INT_SIG_EN_ITCM_ERR_SIG_EN ((uint32_t)(1<<3))
  3883. // 30.5.2.1: page 1481
  3884. #define IMXRT_FLEXSPI (*(IMXRT_REGISTER32_t *)0x402A8000)
  3885. #define FLEXSPI_MCR0 (IMXRT_FLEXSPI.offset000)
  3886. #define FLEXSPI_MCR0_AHBGRANTWAIT(n) ((uint32_t)(((n) & 0xFF) << 24))
  3887. #define FLEXSPI_MCR0_AHBGRANTWAIT_MASK ((uint32_t)(0xFF << 24))
  3888. #define FLEXSPI_MCR0_IPGRANTWAIT(n) ((uint32_t)(((n) & 0xFF) << 16))
  3889. #define FLEXSPI_MCR0_IPGRANTWAIT_MASK ((uint32_t)(0xFF << 16))
  3890. #define FLEXSPI_MCR0_SCKFREERUNEN ((uint32_t)(1<<14))
  3891. #define FLEXSPI_MCR0_COMBINATIONEN ((uint32_t)(1<<13))
  3892. #define FLEXSPI_MCR0_DOZEEN ((uint32_t)(1<<12))
  3893. #define FLEXSPI_MCR0_HSEN ((uint32_t)(1<<11))
  3894. #define FLEXSPI_MCR0_ATDFEN ((uint32_t)(1<<7))
  3895. #define FLEXSPI_MCR0_ARDFEN ((uint32_t)(1<<6))
  3896. #define FLEXSPI_MCR0_RXCLKSRC(n) ((uint32_t)(((n) & 0x03) << 4))
  3897. #define FLEXSPI_MCR0_RXCLKSRC_MASK ((uint32_t)(0x03 << 4))
  3898. #define FLEXSPI_MCR0_MDIS ((uint32_t)(1<<1))
  3899. #define FLEXSPI_MCR0_SWRESET ((uint32_t)(1<<0))
  3900. #define FLEXSPI_MCR1 (IMXRT_FLEXSPI.offset004)
  3901. #define FLEXSPI_MCR1_SEQWAIT(n) ((uint32_t)(((n) & 0xFFFF) << 16))
  3902. #define FLEXSPI_MCR1_AHBBUSWAIT(n) ((uint32_t)(((n) & 0xFFFF) << 0))
  3903. #define FLEXSPI_MCR2 (IMXRT_FLEXSPI.offset008)
  3904. #define FLEXSPI_MCR2_RESUMEWAIT(n) ((uint32_t)(((n) & 0xFF) << 24))
  3905. #define FLEXSPI_MCR2_RESUMEWAIT_MASK ((uint32_t)(0xFF << 24))
  3906. #define FLEXSPI_MCR2_SCKBDIFFOPT ((uint32_t)(1<<19))
  3907. #define FLEXSPI_MCR2_SAMEDEVICEEN ((uint32_t)(1<<15))
  3908. #define FLEXSPI_MCR2_CLRLEARNPHASE ((uint32_t)(1<<14))
  3909. #define FLEXSPI_MCR2_CLRAHBBUFOPT ((uint32_t)(1<<11))
  3910. #define FLEXSPI_AHBCR (IMXRT_FLEXSPI.offset00C)
  3911. #define FLEXSPI_AHBCR_READADDROPT ((uint32_t)(1<<6))
  3912. #define FLEXSPI_AHBCR_PREFETCHEN ((uint32_t)(1<<5))
  3913. #define FLEXSPI_AHBCR_BUFFERABLEEN ((uint32_t)(1<<4))
  3914. #define FLEXSPI_AHBCR_CACHABLEEN ((uint32_t)(1<<3))
  3915. #define FLEXSPI_AHBCR_APAREN ((uint32_t)(1<<0))
  3916. #define FLEXSPI_INTEN (IMXRT_FLEXSPI.offset010)
  3917. #define FLEXSPI_INTEN_SEQTIMEOUTEN ((uint32_t)(1<<11))
  3918. #define FLEXSPI_INTEN_AHBBUSTIMEOUTEN ((uint32_t)(1<<10))
  3919. #define FLEXSPI_INTEN_SCKSTOPBYWREN ((uint32_t)(1<<9))
  3920. #define FLEXSPI_INTEN_SCKSTOPBYRDEN ((uint32_t)(1<<8))
  3921. #define FLEXSPI_INTEN_IPTXWEEN ((uint32_t)(1<<6))
  3922. #define FLEXSPI_INTEN_IPRXWAEN ((uint32_t)(1<<5))
  3923. #define FLEXSPI_INTEN_AHBCMDERREN ((uint32_t)(1<<4))
  3924. #define FLEXSPI_INTEN_IPCMDERREN ((uint32_t)(1<<3))
  3925. #define FLEXSPI_INTEN_AHBCMDGEEN ((uint32_t)(1<<2))
  3926. #define FLEXSPI_INTEN_IPCMDGEEN ((uint32_t)(1<<1))
  3927. #define FLEXSPI_INTEN_IPCMDDONEEN ((uint32_t)(1<<0))
  3928. #define FLEXSPI_INTR (IMXRT_FLEXSPI.offset014)
  3929. #define FLEXSPI_INTR_SEQTIMEOUT ((uint32_t)(1<<11))
  3930. #define FLEXSPI_INTR_AHBBUSTIMEOUT ((uint32_t)(1<<10))
  3931. #define FLEXSPI_INTR_SCKSTOPBYWR ((uint32_t)(1<<9))
  3932. #define FLEXSPI_INTR_SCKSTOPBYRD ((uint32_t)(1<<8))
  3933. #define FLEXSPI_INTR_IPTXWE ((uint32_t)(1<<6))
  3934. #define FLEXSPI_INTR_IPRXWA ((uint32_t)(1<<5))
  3935. #define FLEXSPI_INTR_AHBCMDERR ((uint32_t)(1<<4))
  3936. #define FLEXSPI_INTR_IPCMDERR ((uint32_t)(1<<3))
  3937. #define FLEXSPI_INTR_AHBCMDGE ((uint32_t)(1<<2))
  3938. #define FLEXSPI_INTR_IPCMDGE ((uint32_t)(1<<1))
  3939. #define FLEXSPI_INTR_IPCMDDONE ((uint32_t)(1<<0))
  3940. #define FLEXSPI_LUTKEY (IMXRT_FLEXSPI.offset018)
  3941. #define FLEXSPI_LUTKEY_VALUE ((uint32_t)0x5AF05AF0)
  3942. #define FLEXSPI_LUTCR (IMXRT_FLEXSPI.offset01C)
  3943. #define FLEXSPI_LUTCR_UNLOCK ((uint32_t)(1<<1))
  3944. #define FLEXSPI_LUTCR_LOCK ((uint32_t)(1<<0))
  3945. #define FLEXSPI_AHBRXBUF0CR0 (IMXRT_FLEXSPI.offset020)
  3946. #define FLEXSPI_AHBRXBUF1CR0 (IMXRT_FLEXSPI.offset024)
  3947. #define FLEXSPI_AHBRXBUF2CR0 (IMXRT_FLEXSPI.offset028)
  3948. #define FLEXSPI_AHBRXBUF3CR0 (IMXRT_FLEXSPI.offset02C)
  3949. #define FLEXSPI_AHBRXBUFCR0_PREFETCHEN ((uint32_t)(1<<31))
  3950. #define FLEXSPI_AHBRXBUFCR0_PRIORITY(n) ((uint32_t)(((n) & 0x03) << 24))
  3951. #define FLEXSPI_AHBRXBUFCR0_PRIORITY_MASK ((uint32_t)((0x03) << 24))
  3952. #define FLEXSPI_AHBRXBUFCR0_MSTRID(n) ((uint32_t)(((n) & 0x0F) << 16))
  3953. #define FLEXSPI_AHBRXBUFCR0_MSTRID_MASK ((uint32_t)((0x0F) << 16))
  3954. #define FLEXSPI_AHBRXBUFCR0_BUFSZ(n) ((uint32_t)(((n) & 0xFF) << 0))
  3955. #define FLEXSPI_AHBRXBUFCR0_BUFSZ_MASK ((uint32_t)((0xFF) << 0))
  3956. #define FLEXSPI_FLSHA1CR0 (IMXRT_FLEXSPI.offset060)
  3957. #define FLEXSPI_FLSHA2CR0 (IMXRT_FLEXSPI.offset064)
  3958. #define FLEXSPI_FLSHB1CR0 (IMXRT_FLEXSPI.offset068)
  3959. #define FLEXSPI_FLSHB2CR0 (IMXRT_FLEXSPI.offset06C)
  3960. #define FLEXSPI_FLSHCR0_FLSHSZ(n) ((uint32_t)(((n) & 0x7FFFFF) << 0))
  3961. #define FLEXSPI_FLSHCR0_FLSHSZ_MASK ((uint32_t)((0x7FFFFF) << 0))
  3962. #define FLEXSPI_FLSHA1CR1 (IMXRT_FLEXSPI.offset070)
  3963. #define FLEXSPI_FLSHA2CR1 (IMXRT_FLEXSPI.offset074)
  3964. #define FLEXSPI_FLSHB1CR1 (IMXRT_FLEXSPI.offset078)
  3965. #define FLEXSPI_FLSHB2CR1 (IMXRT_FLEXSPI.offset07C)
  3966. #define FLEXSPI_FLSHCR1_CSINTERVAL(n) ((uint32_t)(((n) & 0xFFFF) << 16))
  3967. #define FLEXSPI_FLSHCR1_CSINTERVAL_MASK ((uint32_t)((0xFFFF) << 16))
  3968. #define FLEXSPI_FLSHCR1_CSINTERVALUNIT ((uint32_t)(1<<15))
  3969. #define FLEXSPI_FLSHCR1_CAS(n) ((uint32_t)(((n) & 0x0F) << 11))
  3970. #define FLEXSPI_FLSHCR1_WA ((uint32_t)(1<<10))
  3971. #define FLEXSPI_FLSHCR1_TCSH(n) ((uint32_t)(((n) & 0x1F) << 5))
  3972. #define FLEXSPI_FLSHCR1_TCSH_MASK ((uint32_t)((0x1F) << 5))
  3973. #define FLEXSPI_FLSHCR1_TCSS(n) ((uint32_t)(((n) & 0x1F) << 0))
  3974. #define FLEXSPI_FLSHCR1_TCSS_MASK ((uint32_t)((0x1F) << 0))
  3975. #define FLEXSPI_FLSHA1CR2 (IMXRT_FLEXSPI.offset080)
  3976. #define FLEXSPI_FLSHA2CR2 (IMXRT_FLEXSPI.offset084)
  3977. #define FLEXSPI_FLSHB1CR2 (IMXRT_FLEXSPI.offset088)
  3978. #define FLEXSPI_FLSHB2CR2 (IMXRT_FLEXSPI.offset08C)
  3979. #define FLEXSPI_FLSHCR2_CLRINSTRPTR ((uint32_t)(1<<31))
  3980. #define FLEXSPI_FLSHCR2_AWRWAITUNIT(n) ((uint32_t)(((n) & 0x07) << 28))
  3981. #define FLEXSPI_FLSHCR2_AWRWAIT(n) ((uint32_t)(((n) & 0xFFF) << 16))
  3982. #define FLEXSPI_FLSHCR2_AWRSEQNUM(n) ((uint32_t)(((n) & 0x07) << 13))
  3983. #define FLEXSPI_FLSHCR2_AWRSEQID(n) ((uint32_t)(((n) & 0x0F) << 8))
  3984. #define FLEXSPI_FLSHCR2_ARDSEQNUM(n) ((uint32_t)(((n) & 0x07) << 5))
  3985. #define FLEXSPI_FLSHCR2_ARDSEQID(n) ((uint32_t)(((n) & 0x0F) << 0))
  3986. #define FLEXSPI_FLSHCR4 (IMXRT_FLEXSPI.offset094)
  3987. #define FLEXSPI_FLSHCR4_WMENB ((uint32_t)(1<<3))
  3988. #define FLEXSPI_FLSHCR4_WMENA ((uint32_t)(1<<2))
  3989. #define FLEXSPI_FLSHCR4_WMOPT1 ((uint32_t)(1<<0))
  3990. #define FLEXSPI_IPCR0 (IMXRT_FLEXSPI.offset0A0)
  3991. #define FLEXSPI_IPCR0_SFAR(n) ((uint32_t)(n))
  3992. #define FLEXSPI_IPCR1 (IMXRT_FLEXSPI.offset0A4)
  3993. #define FLEXSPI_IPCR1_IPAREN ((uint32_t)(1<<31))
  3994. #define FLEXSPI_IPCR1_ISEQNUM(n) ((uint32_t)(((n) & 0x07) << 24))
  3995. #define FLEXSPI_IPCR1_ISEQID(n) ((uint32_t)(((n) & 0x0F) << 16))
  3996. #define FLEXSPI_IPCR1_IDATSZ(n) ((uint32_t)(((n) & 0xFFFF) << 0))
  3997. #define FLEXSPI_IPCMD (IMXRT_FLEXSPI.offset0B0)
  3998. #define FLEXSPI_IPCMD_TRG ((uint32_t)(1<<0))
  3999. #define FLEXSPI_IPRXFCR (IMXRT_FLEXSPI.offset0B8)
  4000. #define FLEXSPI_IPRXFCR_RXWMRK(n) ((uint32_t)(((n) & 0x0F) << 2))
  4001. #define FLEXSPI_IPRXFCR_RXDMAEN ((uint32_t)(1<<1))
  4002. #define FLEXSPI_IPRXFCR_CLRIPRXF ((uint32_t)(1<<0))
  4003. #define FLEXSPI_IPTXFCR (IMXRT_FLEXSPI.offset0BC)
  4004. #define FLEXSPI_IPTXFCR_TXWMRK(n) ((uint32_t)(((n) & 0x0F) << 2))
  4005. #define FLEXSPI_IPTXFCR_TXDMAEN ((uint32_t)(1<<1))
  4006. #define FLEXSPI_IPTXFCR_CLRIPTXF ((uint32_t)(1<<0))
  4007. #define FLEXSPI_DLLACR (IMXRT_FLEXSPI.offset0C0)
  4008. #define FLEXSPI_DLLBCR (IMXRT_FLEXSPI.offset0C4)
  4009. #define FLEXSPI_DLLCR_OVRDVAL(n) ((uint32_t)(((n) & 0x3F) << 9))
  4010. #define FLEXSPI_DLLCR_OVRDEN ((uint32_t)(1<<8))
  4011. #define FLEXSPI_DLLCR_SLVDLYTARGET(n) ((uint32_t)(((n) & 0x0F) << 3))
  4012. #define FLEXSPI_DLLCR_DLLRESET ((uint32_t)(1<<1))
  4013. #define FLEXSPI_DLLCR_DLLEN ((uint32_t)(1<<0))
  4014. #define FLEXSPI_STS0 (IMXRT_FLEXSPI.offset0E0)
  4015. #define FLEXSPI_STS0_ARBCMDSRC(n) ((uint32_t)(((n) & 0x03) << 2))
  4016. #define FLEXSPI_STS0_ARBIDLE ((uint32_t)(1<<1))
  4017. #define FLEXSPI_STS0_SEQIDLE ((uint32_t)(1<<0))
  4018. #define FLEXSPI_STS1 (IMXRT_FLEXSPI.offset0E4)
  4019. #define FLEXSPI_STS1_IPCMDERRCODE(n) ((uint32_t)(((n) & 0x0F) << 24))
  4020. #define FLEXSPI_STS1_IPCMDERRID(n) ((uint32_t)(((n) & 0x0F) << 16))
  4021. #define FLEXSPI_STS1_AHBCMDERRCODE(n) ((uint32_t)(((n) & 0x0F) << 8))
  4022. #define FLEXSPI_STS1_AHBCMDERRID(n) ((uint32_t)(((n) & 0x0F) << 0))
  4023. #define FLEXSPI_STS2 (IMXRT_FLEXSPI.offset0E8)
  4024. #define FLEXSPI_STS2_BREFSEL(n) ((uint32_t)(((n) & 0x3F) << 24))
  4025. #define FLEXSPI_STS2_BSLVSEL(n) ((uint32_t)(((n) & 0x3F) << 18))
  4026. #define FLEXSPI_STS2_BREFLOCK ((uint32_t)(1<<17))
  4027. #define FLEXSPI_STS2_BSLVLOCK ((uint32_t)(1<<16))
  4028. #define FLEXSPI_STS2_AREFSEL(n) ((uint32_t)(((n) & 0x3F) << 8))
  4029. #define FLEXSPI_STS2_ASLVSEL(n) ((uint32_t)(((n) & 0x3F) << 2))
  4030. #define FLEXSPI_STS2_AREFLOCK ((uint32_t)(1<<1))
  4031. #define FLEXSPI_STS2_ASLVLOCK ((uint32_t)(1<<0))
  4032. #define FLEXSPI_AHBSPNDSTS (IMXRT_FLEXSPI.offset0EC)
  4033. #define FLEXSPI_AHBSPNDSTS_DATLFT(n) ((uint32_t)(((n) & 0xFFFF) << 16))
  4034. #define FLEXSPI_AHBSPNDSTS_BUFID(n) ((uint32_t)(((n) & 0x7) << 1))
  4035. #define FLEXSPI_AHBSPNDSTS_ACTIVE ((uint32_t)(1<<0))
  4036. #define FLEXSPI_IPRXFSTS (IMXRT_FLEXSPI.offset0F0)
  4037. #define FLEXSPI_IPRXFSTS_RDCNTR(n) ((uint32_t)(((n) & 0xFFFF) << 16))
  4038. #define FLEXSPI_IPRXFSTS_FILL(n) ((uint32_t)(((n) & 0xFF) << 0))
  4039. #define FLEXSPI_IPTXFSTS (IMXRT_FLEXSPI.offset0F4)
  4040. #define FLEXSPI_IPTXFSTS_WRCNTR(n) ((uint32_t)(((n) & 0xFFFF) << 16))
  4041. #define FLEXSPI_IPTXFSTS_FILL(n) ((uint32_t)(((n) & 0xFF) << 0))
  4042. #define FLEXSPI_RFDR0 (IMXRT_FLEXSPI.offset100)
  4043. #define FLEXSPI_RFDR1 (IMXRT_FLEXSPI.offset104)
  4044. #define FLEXSPI_RFDR2 (IMXRT_FLEXSPI.offset108)
  4045. #define FLEXSPI_RFDR3 (IMXRT_FLEXSPI.offset10C)
  4046. #define FLEXSPI_RFDR4 (IMXRT_FLEXSPI.offset110)
  4047. #define FLEXSPI_RFDR5 (IMXRT_FLEXSPI.offset114)
  4048. #define FLEXSPI_RFDR6 (IMXRT_FLEXSPI.offset118)
  4049. #define FLEXSPI_RFDR7 (IMXRT_FLEXSPI.offset11C)
  4050. #define FLEXSPI_RFDR8 (IMXRT_FLEXSPI.offset120)
  4051. #define FLEXSPI_RFDR9 (IMXRT_FLEXSPI.offset124)
  4052. #define FLEXSPI_RFDR10 (IMXRT_FLEXSPI.offset128)
  4053. #define FLEXSPI_RFDR11 (IMXRT_FLEXSPI.offset12C)
  4054. #define FLEXSPI_RFDR12 (IMXRT_FLEXSPI.offset130)
  4055. #define FLEXSPI_RFDR13 (IMXRT_FLEXSPI.offset134)
  4056. #define FLEXSPI_RFDR14 (IMXRT_FLEXSPI.offset138)
  4057. #define FLEXSPI_RFDR15 (IMXRT_FLEXSPI.offset13C)
  4058. #define FLEXSPI_RFDR16 (IMXRT_FLEXSPI.offset140)
  4059. #define FLEXSPI_RFDR17 (IMXRT_FLEXSPI.offset144)
  4060. #define FLEXSPI_RFDR18 (IMXRT_FLEXSPI.offset148)
  4061. #define FLEXSPI_RFDR19 (IMXRT_FLEXSPI.offset14C)
  4062. #define FLEXSPI_RFDR20 (IMXRT_FLEXSPI.offset150)
  4063. #define FLEXSPI_RFDR21 (IMXRT_FLEXSPI.offset154)
  4064. #define FLEXSPI_RFDR22 (IMXRT_FLEXSPI.offset158)
  4065. #define FLEXSPI_RFDR23 (IMXRT_FLEXSPI.offset15C)
  4066. #define FLEXSPI_RFDR24 (IMXRT_FLEXSPI.offset160)
  4067. #define FLEXSPI_RFDR25 (IMXRT_FLEXSPI.offset164)
  4068. #define FLEXSPI_RFDR26 (IMXRT_FLEXSPI.offset168)
  4069. #define FLEXSPI_RFDR27 (IMXRT_FLEXSPI.offset16C)
  4070. #define FLEXSPI_RFDR28 (IMXRT_FLEXSPI.offset170)
  4071. #define FLEXSPI_RFDR29 (IMXRT_FLEXSPI.offset174)
  4072. #define FLEXSPI_RFDR30 (IMXRT_FLEXSPI.offset178)
  4073. #define FLEXSPI_RFDR31 (IMXRT_FLEXSPI.offset17C)
  4074. #define FLEXSPI_TFDR0 (IMXRT_FLEXSPI.offset180)
  4075. #define FLEXSPI_TFDR1 (IMXRT_FLEXSPI.offset184)
  4076. #define FLEXSPI_TFDR2 (IMXRT_FLEXSPI.offset188)
  4077. #define FLEXSPI_TFDR3 (IMXRT_FLEXSPI.offset18C)
  4078. #define FLEXSPI_TFDR4 (IMXRT_FLEXSPI.offset190)
  4079. #define FLEXSPI_TFDR5 (IMXRT_FLEXSPI.offset194)
  4080. #define FLEXSPI_TFDR6 (IMXRT_FLEXSPI.offset198)
  4081. #define FLEXSPI_TFDR7 (IMXRT_FLEXSPI.offset19C)
  4082. #define FLEXSPI_TFDR8 (IMXRT_FLEXSPI.offset1A0)
  4083. #define FLEXSPI_TFDR9 (IMXRT_FLEXSPI.offset1A4)
  4084. #define FLEXSPI_TFDR10 (IMXRT_FLEXSPI.offset1A8)
  4085. #define FLEXSPI_TFDR11 (IMXRT_FLEXSPI.offset1AC)
  4086. #define FLEXSPI_TFDR12 (IMXRT_FLEXSPI.offset1B0)
  4087. #define FLEXSPI_TFDR13 (IMXRT_FLEXSPI.offset1B4)
  4088. #define FLEXSPI_TFDR14 (IMXRT_FLEXSPI.offset1B8)
  4089. #define FLEXSPI_TFDR15 (IMXRT_FLEXSPI.offset1BC)
  4090. #define FLEXSPI_TFDR16 (IMXRT_FLEXSPI.offset1C0)
  4091. #define FLEXSPI_TFDR17 (IMXRT_FLEXSPI.offset1C4)
  4092. #define FLEXSPI_TFDR18 (IMXRT_FLEXSPI.offset1C8)
  4093. #define FLEXSPI_TFDR19 (IMXRT_FLEXSPI.offset1CC)
  4094. #define FLEXSPI_TFDR20 (IMXRT_FLEXSPI.offset1D0)
  4095. #define FLEXSPI_TFDR21 (IMXRT_FLEXSPI.offset1D4)
  4096. #define FLEXSPI_TFDR22 (IMXRT_FLEXSPI.offset1D8)
  4097. #define FLEXSPI_TFDR23 (IMXRT_FLEXSPI.offset1DC)
  4098. #define FLEXSPI_TFDR24 (IMXRT_FLEXSPI.offset1E0)
  4099. #define FLEXSPI_TFDR25 (IMXRT_FLEXSPI.offset1E4)
  4100. #define FLEXSPI_TFDR26 (IMXRT_FLEXSPI.offset1E8)
  4101. #define FLEXSPI_TFDR27 (IMXRT_FLEXSPI.offset1EC)
  4102. #define FLEXSPI_TFDR28 (IMXRT_FLEXSPI.offset1F0)
  4103. #define FLEXSPI_TFDR29 (IMXRT_FLEXSPI.offset1F4)
  4104. #define FLEXSPI_TFDR30 (IMXRT_FLEXSPI.offset1F8)
  4105. #define FLEXSPI_TFDR31 (IMXRT_FLEXSPI.offset1FC)
  4106. #define FLEXSPI_LUT0 (IMXRT_FLEXSPI.offset200)
  4107. #define FLEXSPI_LUT1 (IMXRT_FLEXSPI.offset204)
  4108. #define FLEXSPI_LUT2 (IMXRT_FLEXSPI.offset208)
  4109. #define FLEXSPI_LUT3 (IMXRT_FLEXSPI.offset20C)
  4110. #define FLEXSPI_LUT4 (IMXRT_FLEXSPI.offset210)
  4111. #define FLEXSPI_LUT5 (IMXRT_FLEXSPI.offset214)
  4112. #define FLEXSPI_LUT6 (IMXRT_FLEXSPI.offset218)
  4113. #define FLEXSPI_LUT7 (IMXRT_FLEXSPI.offset21C)
  4114. #define FLEXSPI_LUT8 (IMXRT_FLEXSPI.offset220)
  4115. #define FLEXSPI_LUT9 (IMXRT_FLEXSPI.offset224)
  4116. #define FLEXSPI_LUT10 (IMXRT_FLEXSPI.offset228)
  4117. #define FLEXSPI_LUT11 (IMXRT_FLEXSPI.offset22C)
  4118. #define FLEXSPI_LUT12 (IMXRT_FLEXSPI.offset230)
  4119. #define FLEXSPI_LUT13 (IMXRT_FLEXSPI.offset234)
  4120. #define FLEXSPI_LUT14 (IMXRT_FLEXSPI.offset238)
  4121. #define FLEXSPI_LUT15 (IMXRT_FLEXSPI.offset23C)
  4122. #define FLEXSPI_LUT16 (IMXRT_FLEXSPI.offset240)
  4123. #define FLEXSPI_LUT17 (IMXRT_FLEXSPI.offset244)
  4124. #define FLEXSPI_LUT18 (IMXRT_FLEXSPI.offset248)
  4125. #define FLEXSPI_LUT19 (IMXRT_FLEXSPI.offset24C)
  4126. #define FLEXSPI_LUT20 (IMXRT_FLEXSPI.offset250)
  4127. #define FLEXSPI_LUT21 (IMXRT_FLEXSPI.offset254)
  4128. #define FLEXSPI_LUT22 (IMXRT_FLEXSPI.offset258)
  4129. #define FLEXSPI_LUT23 (IMXRT_FLEXSPI.offset25C)
  4130. #define FLEXSPI_LUT24 (IMXRT_FLEXSPI.offset260)
  4131. #define FLEXSPI_LUT25 (IMXRT_FLEXSPI.offset264)
  4132. #define FLEXSPI_LUT26 (IMXRT_FLEXSPI.offset268)
  4133. #define FLEXSPI_LUT27 (IMXRT_FLEXSPI.offset26C)
  4134. #define FLEXSPI_LUT28 (IMXRT_FLEXSPI.offset270)
  4135. #define FLEXSPI_LUT29 (IMXRT_FLEXSPI.offset274)
  4136. #define FLEXSPI_LUT30 (IMXRT_FLEXSPI.offset278)
  4137. #define FLEXSPI_LUT31 (IMXRT_FLEXSPI.offset27C)
  4138. #define FLEXSPI_LUT32 (IMXRT_FLEXSPI.offset280)
  4139. #define FLEXSPI_LUT33 (IMXRT_FLEXSPI.offset284)
  4140. #define FLEXSPI_LUT34 (IMXRT_FLEXSPI.offset288)
  4141. #define FLEXSPI_LUT35 (IMXRT_FLEXSPI.offset28C)
  4142. #define FLEXSPI_LUT36 (IMXRT_FLEXSPI.offset290)
  4143. #define FLEXSPI_LUT37 (IMXRT_FLEXSPI.offset294)
  4144. #define FLEXSPI_LUT38 (IMXRT_FLEXSPI.offset298)
  4145. #define FLEXSPI_LUT39 (IMXRT_FLEXSPI.offset29C)
  4146. #define FLEXSPI_LUT40 (IMXRT_FLEXSPI.offset2A0)
  4147. #define FLEXSPI_LUT41 (IMXRT_FLEXSPI.offset2A4)
  4148. #define FLEXSPI_LUT42 (IMXRT_FLEXSPI.offset2A8)
  4149. #define FLEXSPI_LUT43 (IMXRT_FLEXSPI.offset2AC)
  4150. #define FLEXSPI_LUT44 (IMXRT_FLEXSPI.offset2B0)
  4151. #define FLEXSPI_LUT45 (IMXRT_FLEXSPI.offset2B4)
  4152. #define FLEXSPI_LUT46 (IMXRT_FLEXSPI.offset2B8)
  4153. #define FLEXSPI_LUT47 (IMXRT_FLEXSPI.offset2BC)
  4154. #define FLEXSPI_LUT48 (IMXRT_FLEXSPI.offset2C0)
  4155. #define FLEXSPI_LUT49 (IMXRT_FLEXSPI.offset2C4)
  4156. #define FLEXSPI_LUT50 (IMXRT_FLEXSPI.offset2C8)
  4157. #define FLEXSPI_LUT51 (IMXRT_FLEXSPI.offset2CC)
  4158. #define FLEXSPI_LUT52 (IMXRT_FLEXSPI.offset2D0)
  4159. #define FLEXSPI_LUT53 (IMXRT_FLEXSPI.offset2D4)
  4160. #define FLEXSPI_LUT54 (IMXRT_FLEXSPI.offset2D8)
  4161. #define FLEXSPI_LUT55 (IMXRT_FLEXSPI.offset2DC)
  4162. #define FLEXSPI_LUT56 (IMXRT_FLEXSPI.offset2E0)
  4163. #define FLEXSPI_LUT57 (IMXRT_FLEXSPI.offset2E4)
  4164. #define FLEXSPI_LUT58 (IMXRT_FLEXSPI.offset2E8)
  4165. #define FLEXSPI_LUT59 (IMXRT_FLEXSPI.offset2EC)
  4166. #define FLEXSPI_LUT60 (IMXRT_FLEXSPI.offset2F0)
  4167. #define FLEXSPI_LUT61 (IMXRT_FLEXSPI.offset2F4)
  4168. #define FLEXSPI_LUT62 (IMXRT_FLEXSPI.offset2F8)
  4169. #define FLEXSPI_LUT63 (IMXRT_FLEXSPI.offset2FC)
  4170. #define FLEXSPI_LUT_OPCODE1(n) ((uint32_t)(((n) & 0x3F) << 26))
  4171. #define FLEXSPI_LUT_NUM_PADS1(n) ((uint32_t)(((n) & 0x03) << 24))
  4172. #define FLEXSPI_LUT_OPERAND1(n) ((uint32_t)(((n) & 0xFF) << 16))
  4173. #define FLEXSPI_LUT_OPCODE0(n) ((uint32_t)(((n) & 0x3F) << 10))
  4174. #define FLEXSPI_LUT_NUM_PADS0(n) ((uint32_t)(((n) & 0x03) << 8))
  4175. #define FLEXSPI_LUT_OPERAND0(n) ((uint32_t)(((n) & 0xFF) << 0))
  4176. #define FLEXSPI_LUT_INSTRUCTION(opcode, pads, operand) ((uint32_t)(\
  4177. (((opcode) & 0x3F) << 10) | (((pads) & 0x03) << 8) | ((operand) & 0xFF)))
  4178. // 30.7.8: page 1532
  4179. #define FLEXSPI_LUT_OPCODE_CMD_SDR 0x01
  4180. #define FLEXSPI_LUT_OPCODE_CMD_DDR 0x21
  4181. #define FLEXSPI_LUT_OPCODE_RADDR_SDR 0x02
  4182. #define FLEXSPI_LUT_OPCODE_RADDR_DDR 0x22
  4183. #define FLEXSPI_LUT_OPCODE_CADDR_SDR 0x03
  4184. #define FLEXSPI_LUT_OPCODE_CADDR_DDR 0x23
  4185. #define FLEXSPI_LUT_OPCODE_MODE1_SDR 0x04
  4186. #define FLEXSPI_LUT_OPCODE_MODE1_DDR 0x24
  4187. #define FLEXSPI_LUT_OPCODE_MODE2_SDR 0x05
  4188. #define FLEXSPI_LUT_OPCODE_MODE2_DDR 0x25
  4189. #define FLEXSPI_LUT_OPCODE_MODE4_SDR 0x06
  4190. #define FLEXSPI_LUT_OPCODE_MODE4_DDR 0x26
  4191. #define FLEXSPI_LUT_OPCODE_MODE8_SDR 0x07
  4192. #define FLEXSPI_LUT_OPCODE_MODE8_DDR 0x27
  4193. #define FLEXSPI_LUT_OPCODE_WRITE_SDR 0x08
  4194. #define FLEXSPI_LUT_OPCODE_WRITE_DDR 0x28
  4195. #define FLEXSPI_LUT_OPCODE_READ_SDR 0x09
  4196. #define FLEXSPI_LUT_OPCODE_READ_DDR 0x29
  4197. #define FLEXSPI_LUT_OPCODE_LEARN_SDR 0x0A
  4198. #define FLEXSPI_LUT_OPCODE_LEARN_DDR 0x2A
  4199. #define FLEXSPI_LUT_OPCODE_DATSZ_SDR 0x0B
  4200. #define FLEXSPI_LUT_OPCODE_DATSZ_DDR 0x2B
  4201. #define FLEXSPI_LUT_OPCODE_DUMMY_SDR 0x0C
  4202. #define FLEXSPI_LUT_OPCODE_DUMMY_DDR 0x2C
  4203. #define FLEXSPI_LUT_OPCODE_DUMMY_RWDS_SDR 0x0D
  4204. #define FLEXSPI_LUT_OPCODE_DUMMY_RWDS_DDR 0x2D
  4205. #define FLEXSPI_LUT_OPCODE_JMP_ON_CS 0x1F
  4206. #define FLEXSPI_LUT_OPCODE_STOP 0x00
  4207. #define FLEXSPI_LUT_NUM_PADS_1 0x00
  4208. #define FLEXSPI_LUT_NUM_PADS_2 0x01
  4209. #define FLEXSPI_LUT_NUM_PADS_4 0x02
  4210. #define FLEXSPI_LUT_NUM_PADS_8 0x03
  4211. // 31.5: page 1595
  4212. #define IMXRT_GPC (*(IMXRT_REGISTER32_t *)0x400F4000)
  4213. #define GPC_CNTR (IMXRT_GPC.offset000)
  4214. #define GPC_IMR1 (IMXRT_GPC.offset008)
  4215. #define GPC_IMR2 (IMXRT_GPC.offset00C)
  4216. #define GPC_IMR3 (IMXRT_GPC.offset010)
  4217. #define GPC_IMR4 (IMXRT_GPC.offset014)
  4218. #define GPC_ISR1 (IMXRT_GPC.offset018)
  4219. #define GPC_ISR2 (IMXRT_GPC.offset01C)
  4220. #define GPC_ISR3 (IMXRT_GPC.offset020)
  4221. #define GPC_ISR4 (IMXRT_GPC.offset024)
  4222. #define GPC_IMR5 (IMXRT_GPC.offset034)
  4223. #define GPC_ISR5 (IMXRT_GPC.offset038)
  4224. #define GPC_CNTR_PDRAM0_PGE ((uint32_t)(1<<22))
  4225. #define GPC_CNTR_MEGA_PUP_REQ ((uint32_t)(1<<3))
  4226. #define GPC_CNTR_MEGA_PDN_REQ ((uint32_t)(1<<2))
  4227. // page 1602
  4228. #define PGC_MEGA_CTRL (IMXRT_GPC.offset220)
  4229. #define PGC_MEGA_PUPSCR (IMXRT_GPC.offset224)
  4230. #define PGC_MEGA_PDNSCR (IMXRT_GPC.offset228)
  4231. #define PGC_MEGA_SR (IMXRT_GPC.offset22C)
  4232. #define PGC_CPU_CTRL (IMXRT_GPC.offset2A0)
  4233. #define PGC_CPU_PUPSCR (IMXRT_GPC.offset2A4)
  4234. #define PGC_CPU_PDNSCR (IMXRT_GPC.offset2A8)
  4235. #define PGC_CPU_SR (IMXRT_GPC.offset2AC)
  4236. #define PGC_MEGA_CTRL_PCR ((uint32_t)(1<<0))
  4237. #define PGC_MEGA_PUPSCR_SW2ISO(n) ((uint32_t)(((n) & 0x3F) << 8))
  4238. #define PGC_MEGA_PUPSCR_SW(n) ((uint32_t)(((n) & 0x3F) << 0))
  4239. #define PGC_MEGA_PDNSCR_ISO2SW(n) ((uint32_t)(((n) & 0x3F) << 8))
  4240. #define PGC_MEGA_PDNSCR_ISO(n) ((uint32_t)(((n) & 0x3F) << 0))
  4241. #define PGC_MEGA_SR_PSR ((uint32_t)(1<<0))
  4242. #define PGC_CPU_CTRL_PCR ((uint32_t)(1<<0))
  4243. #define PGC_CPU_PUPSCR_SW2ISO(n) ((uint32_t)(((n) & 0x3F) << 8))
  4244. #define PGC_CPU_PUPSCR_SW(n) ((uint32_t)(((n) & 0x3F) << 0))
  4245. #define PGC_CPU_PDNSCR_ISO2SW(n) ((uint32_t)(((n) & 0x3F) << 8))
  4246. #define PGC_CPU_PDNSCR_ISO(n) ((uint32_t)(((n) & 0x3F) << 0))
  4247. #define PGC_CPU_SR_PSR ((uint32_t)(1<<0))
  4248. // 32.4.1: page 1620
  4249. #define IMXRT_GPIO1 (*(IMXRT_REGISTER32_t *)0x401B8000)
  4250. #define GPIO1_DR (IMXRT_GPIO1.offset000)
  4251. #define GPIO1_GDIR (IMXRT_GPIO1.offset004)
  4252. #define GPIO1_PSR (IMXRT_GPIO1.offset008)
  4253. #define GPIO1_ICR1 (IMXRT_GPIO1.offset00C)
  4254. #define GPIO1_ICR2 (IMXRT_GPIO1.offset010)
  4255. #define GPIO1_IMR (IMXRT_GPIO1.offset014)
  4256. #define GPIO1_ISR (IMXRT_GPIO1.offset018)
  4257. #define GPIO1_EDGE_SEL (IMXRT_GPIO1.offset01C)
  4258. #define GPIO1_DR_SET (IMXRT_GPIO1.offset084)
  4259. #define GPIO1_DR_CLEAR (IMXRT_GPIO1.offset088)
  4260. #define GPIO1_DR_TOGGLE (IMXRT_GPIO1.offset08C)
  4261. #define IMXRT_GPIO2 (*(IMXRT_REGISTER32_t *)0x401BC000)
  4262. #define GPIO2_DR (IMXRT_GPIO2.offset000)
  4263. #define GPIO2_GDIR (IMXRT_GPIO2.offset004)
  4264. #define GPIO2_PSR (IMXRT_GPIO2.offset008)
  4265. #define GPIO2_ICR1 (IMXRT_GPIO2.offset00C)
  4266. #define GPIO2_ICR2 (IMXRT_GPIO2.offset010)
  4267. #define GPIO2_IMR (IMXRT_GPIO2.offset014)
  4268. #define GPIO2_ISR (IMXRT_GPIO2.offset018)
  4269. #define GPIO2_EDGE_SEL (IMXRT_GPIO2.offset01C)
  4270. #define GPIO2_DR_SET (IMXRT_GPIO2.offset084)
  4271. #define GPIO2_DR_CLEAR (IMXRT_GPIO2.offset088)
  4272. #define GPIO2_DR_TOGGLE (IMXRT_GPIO2.offset08C)
  4273. #define IMXRT_GPIO3 (*(IMXRT_REGISTER32_t *)0x401C0000)
  4274. #define GPIO3_DR (IMXRT_GPIO3.offset000)
  4275. #define GPIO3_GDIR (IMXRT_GPIO3.offset004)
  4276. #define GPIO3_PSR (IMXRT_GPIO3.offset008)
  4277. #define GPIO3_ICR1 (IMXRT_GPIO3.offset00C)
  4278. #define GPIO3_ICR2 (IMXRT_GPIO3.offset010)
  4279. #define GPIO3_IMR (IMXRT_GPIO3.offset014)
  4280. #define GPIO3_ISR (IMXRT_GPIO3.offset018)
  4281. #define GPIO3_EDGE_SEL (IMXRT_GPIO3.offset01C)
  4282. #define GPIO3_DR_SET (IMXRT_GPIO3.offset084)
  4283. #define GPIO3_DR_CLEAR (IMXRT_GPIO3.offset088)
  4284. #define GPIO3_DR_TOGGLE (IMXRT_GPIO3.offset08C)
  4285. #define IMXRT_GPIO4 (*(IMXRT_REGISTER32_t *)0x401C4000)
  4286. #define GPIO4_DR (IMXRT_GPIO4.offset000)
  4287. #define GPIO4_GDIR (IMXRT_GPIO4.offset004)
  4288. #define GPIO4_PSR (IMXRT_GPIO4.offset008)
  4289. #define GPIO4_ICR1 (IMXRT_GPIO4.offset00C)
  4290. #define GPIO4_ICR2 (IMXRT_GPIO4.offset010)
  4291. #define GPIO4_IMR (IMXRT_GPIO4.offset014)
  4292. #define GPIO4_ISR (IMXRT_GPIO4.offset018)
  4293. #define GPIO4_EDGE_SEL (IMXRT_GPIO4.offset01C)
  4294. #define GPIO4_DR_SET (IMXRT_GPIO4.offset084)
  4295. #define GPIO4_DR_CLEAR (IMXRT_GPIO4.offset088)
  4296. #define GPIO4_DR_TOGGLE (IMXRT_GPIO4.offset08C)
  4297. #define IMXRT_GPIO5 (*(IMXRT_REGISTER32_t *)0x400C0000)
  4298. #define GPIO5_DR (IMXRT_GPIO5.offset000)
  4299. #define GPIO5_GDIR (IMXRT_GPIO5.offset004)
  4300. #define GPIO5_PSR (IMXRT_GPIO5.offset008)
  4301. #define GPIO5_ICR1 (IMXRT_GPIO5.offset00C)
  4302. #define GPIO5_ICR2 (IMXRT_GPIO5.offset010)
  4303. #define GPIO5_IMR (IMXRT_GPIO5.offset014)
  4304. #define GPIO5_ISR (IMXRT_GPIO5.offset018)
  4305. #define GPIO5_EDGE_SEL (IMXRT_GPIO5.offset01C)
  4306. #define GPIO5_DR_SET (IMXRT_GPIO5.offset084)
  4307. #define GPIO5_DR_CLEAR (IMXRT_GPIO5.offset088)
  4308. #define GPIO5_DR_TOGGLE (IMXRT_GPIO5.offset08C)
  4309. // 33.6: page 1651
  4310. #define IMXRT_GPT1 (*(IMXRT_REGISTER32_t *)0x401EC000)
  4311. #define GPT1_CR (IMXRT_GPT1.offset000)
  4312. #define GPT1_PR (IMXRT_GPT1.offset004)
  4313. #define GPT1_SR (IMXRT_GPT1.offset008)
  4314. #define GPT1_IR (IMXRT_GPT1.offset00C)
  4315. #define GPT1_OCR1 (IMXRT_GPT1.offset010)
  4316. #define GPT1_OCR2 (IMXRT_GPT1.offset014)
  4317. #define GPT1_OCR3 (IMXRT_GPT1.offset018)
  4318. #define GPT1_ICR1 (IMXRT_GPT1.offset01C)
  4319. #define GPT1_ICR2 (IMXRT_GPT1.offset020)
  4320. #define GPT1_CNT (IMXRT_GPT1.offset024)
  4321. #define IMXRT_GPT2 (*(IMXRT_REGISTER32_t *)0x401F0000)
  4322. #define GPT2_CR (IMXRT_GPT2.offset000)
  4323. #define GPT2_PR (IMXRT_GPT2.offset004)
  4324. #define GPT2_SR (IMXRT_GPT2.offset008)
  4325. #define GPT2_IR (IMXRT_GPT2.offset00C)
  4326. #define GPT2_OCR1 (IMXRT_GPT2.offset010)
  4327. #define GPT2_OCR2 (IMXRT_GPT2.offset014)
  4328. #define GPT2_OCR3 (IMXRT_GPT2.offset018)
  4329. #define GPT2_ICR1 (IMXRT_GPT2.offset01C)
  4330. #define GPT2_ICR2 (IMXRT_GPT2.offset020)
  4331. #define GPT2_CNT (IMXRT_GPT2.offset024)
  4332. #define GPT_CR_FO3 ((uint32_t)(1<<31))
  4333. #define GPT_CR_FO2 ((uint32_t)(1<<30))
  4334. #define GPT_CR_FO1 ((uint32_t)(1<<29))
  4335. #define GPT_CR_OM3(n) ((uint32_t)(((n) & 0x07) << 26))
  4336. #define GPT_CR_OM2(n) ((uint32_t)(((n) & 0x07) << 23))
  4337. #define GPT_CR_OM1(n) ((uint32_t)(((n) & 0x07) << 20))
  4338. #define GPT_CR_IM2(n) ((uint32_t)(((n) & 0x03) << 18))
  4339. #define GPT_CR_IM1(n) ((uint32_t)(((n) & 0x03) << 16))
  4340. #define GPT_CR_SWR ((uint32_t)(1<<15))
  4341. #define GPT_CR_EN_24M ((uint32_t)(1<<10))
  4342. #define GPT_CR_FRR ((uint32_t)(1<<9))
  4343. #define GPT_CR_CLKSRC(n) ((uint32_t)(((n) & 0x07) << 6))
  4344. #define GPT_CR_STOPEN ((uint32_t)(1<<5))
  4345. #define GPT_CR_DOZEEN ((uint32_t)(1<<4))
  4346. #define GPT_CR_WAITEN ((uint32_t)(1<<3))
  4347. #define GPT_CR_DBGEN ((uint32_t)(1<<2))
  4348. #define GPT_CR_ENMOD ((uint32_t)(1<<1))
  4349. #define GPT_CR_EN ((uint32_t)(1<<0))
  4350. #define GPT_PR_PRESCALER24M(n) ((uint32_t)(((n) & 0x0F) << 12))
  4351. #define GPT_PR_PRESCALER(n) ((uint32_t)(((n) & 0xFFF) << 0))
  4352. #define GPT_SR_ROV ((uint32_t)(1<<5))
  4353. #define GPT_SR_IF2 ((uint32_t)(1<<4))
  4354. #define GPT_SR_IF1 ((uint32_t)(1<<3))
  4355. #define GPT_SR_OF3 ((uint32_t)(1<<2))
  4356. #define GPT_SR_OF2 ((uint32_t)(1<<1))
  4357. #define GPT_SR_OF1 ((uint32_t)(1<<0))
  4358. #define GPT_IR_ROVIE ((uint32_t)(1<<5))
  4359. #define GPT_IR_IF2IE ((uint32_t)(1<<4))
  4360. #define GPT_IR_IF1IE ((uint32_t)(1<<3))
  4361. #define GPT_IR_OF3IE ((uint32_t)(1<<2))
  4362. #define GPT_IR_OF2IE ((uint32_t)(1<<1))
  4363. #define GPT_IR_OF1IE ((uint32_t)(1<<0))
  4364. // 34.4: page 1671
  4365. #define IMXRT_IOMUXC_GPR (*(IMXRT_REGISTER32_t *)0x400AC000)
  4366. #define IOMUXC_GPR_GPR0 (IMXRT_IOMUXC_GPR.offset000)
  4367. #define IOMUXC_GPR_GPR1 (IMXRT_IOMUXC_GPR.offset004)
  4368. #define IOMUXC_GPR_GPR2 (IMXRT_IOMUXC_GPR.offset008)
  4369. #define IOMUXC_GPR_GPR3 (IMXRT_IOMUXC_GPR.offset00C)
  4370. #define IOMUXC_GPR_GPR4 (IMXRT_IOMUXC_GPR.offset010)
  4371. #define IOMUXC_GPR_GPR5 (IMXRT_IOMUXC_GPR.offset014)
  4372. #define IOMUXC_GPR_GPR6 (IMXRT_IOMUXC_GPR.offset018)
  4373. #define IOMUXC_GPR_GPR7 (IMXRT_IOMUXC_GPR.offset01C)
  4374. #define IOMUXC_GPR_GPR8 (IMXRT_IOMUXC_GPR.offset020)
  4375. #define IOMUXC_GPR_GPR9 (IMXRT_IOMUXC_GPR.offset024)
  4376. #define IOMUXC_GPR_GPR10 (IMXRT_IOMUXC_GPR.offset028)
  4377. #define IOMUXC_GPR_GPR11 (IMXRT_IOMUXC_GPR.offset02C)
  4378. #define IOMUXC_GPR_GPR12 (IMXRT_IOMUXC_GPR.offset030)
  4379. #define IOMUXC_GPR_GPR13 (IMXRT_IOMUXC_GPR.offset034)
  4380. #define IOMUXC_GPR_GPR14 (IMXRT_IOMUXC_GPR.offset038)
  4381. #define IOMUXC_GPR_GPR15 (IMXRT_IOMUXC_GPR.offset03C)
  4382. #define IOMUXC_GPR_GPR16 (IMXRT_IOMUXC_GPR.offset040)
  4383. #define IOMUXC_GPR_GPR17 (IMXRT_IOMUXC_GPR.offset044)
  4384. #define IOMUXC_GPR_GPR18 (IMXRT_IOMUXC_GPR.offset048)
  4385. #define IOMUXC_GPR_GPR19 (IMXRT_IOMUXC_GPR.offset04C)
  4386. #define IOMUXC_GPR_GPR20 (IMXRT_IOMUXC_GPR.offset050)
  4387. #define IOMUXC_GPR_GPR21 (IMXRT_IOMUXC_GPR.offset054)
  4388. #define IOMUXC_GPR_GPR22 (IMXRT_IOMUXC_GPR.offset058)
  4389. #define IOMUXC_GPR_GPR23 (IMXRT_IOMUXC_GPR.offset05C)
  4390. #define IOMUXC_GPR_GPR24 (IMXRT_IOMUXC_GPR.offset060)
  4391. #define IOMUXC_GPR_GPR25 (IMXRT_IOMUXC_GPR.offset064)
  4392. #define IOMUXC_GPR_GPR1_CM7_FORCE_HCLK_EN ((uint32_t)(1<<31))
  4393. #define IOMUXC_GPR_GPR1_ENET_IPG_CLK_S_EN ((uint32_t)(1<<23))
  4394. #define IOMUXC_GPR_GPR1_EXC_MON ((uint32_t)(1<<22))
  4395. #define IOMUXC_GPR_GPR1_SAI3_MCLK_DIR ((uint32_t)(1<<21))
  4396. #define IOMUXC_GPR_GPR1_SAI2_MCLK_DIR ((uint32_t)(1<<20))
  4397. #define IOMUXC_GPR_GPR1_SAI1_MCLK_DIR ((uint32_t)(1<<19))
  4398. #define IOMUXC_GPR_GPR1_ENET1_TX_CLK_DIR ((uint32_t)(1<<17))
  4399. #define IOMUXC_GPR_GPR1_USB_EXP_MODE ((uint32_t)(1<<15))
  4400. #define IOMUXC_GPR_GPR1_ENET1_CLK_SEL ((uint32_t)(1<<13))
  4401. #define IOMUXC_GPR_GPR1_GINT ((uint32_t)(1<<12))
  4402. #define IOMUXC_GPR_GPR1_SAI3_MCLK3_SEL(n) ((uint32_t)(((n) & 0x03) << 10))
  4403. #define IOMUXC_GPR_GPR1_SAI2_MCLK3_SEL(n) ((uint32_t)(((n) & 0x03) << 8))
  4404. #define IOMUXC_GPR_GPR1_SAI1_MCLK3_SEL(n) ((uint32_t)(((n) & 0x03) << 6))
  4405. #define IOMUXC_GPR_GPR1_SAI1_MCLK2_SEL(n) ((uint32_t)(((n) & 0x07) << 3))
  4406. #define IOMUXC_GPR_GPR1_SAI1_MCLK1_SEL(n) ((uint32_t)(((n) & 0x07) << 0))
  4407. #define IOMUXC_GPR_GPR1_SAI3_MCLK3_SEL_MASK IOMUXC_GPR_GPR1_SAI3_MCLK3_SEL(3)
  4408. #define IOMUXC_GPR_GPR1_SAI2_MCLK3_SEL_MASK IOMUXC_GPR_GPR1_SAI2_MCLK3_SEL(3)
  4409. #define IOMUXC_GPR_GPR1_SAI1_MCLK3_SEL_MASK IOMUXC_GPR_GPR1_SAI1_MCLK3_SEL(3)
  4410. #define IOMUXC_GPR_GPR1_SAI1_MCLK2_SEL_MASK IOMUXC_GPR_GPR1_SAI1_MCLK2_SEL(7)
  4411. #define IOMUXC_GPR_GPR1_SAI1_MCLK1_SEL_MASK IOMUXC_GPR_GPR1_SAI1_MCLK1_SEL(7)
  4412. #define IOMUXC_GPR_GPR2_QTIMER4_TMR_CNTS_FREEZE ((uint32_t)(1<<31))
  4413. #define IOMUXC_GPR_GPR2_QTIMER3_TMR_CNTS_FREEZE ((uint32_t)(1<<30))
  4414. #define IOMUXC_GPR_GPR2_QTIMER2_TMR_CNTS_FREEZE ((uint32_t)(1<<29))
  4415. #define IOMUXC_GPR_GPR2_QTIMER1_TMR_CNTS_FREEZE ((uint32_t)(1<<28))
  4416. #define IOMUXC_GPR_GPR2_MQS_OVERSAMPLE ((uint32_t)(1<<26))
  4417. #define IOMUXC_GPR_GPR2_MQS_EN ((uint32_t)(1<<25))
  4418. #define IOMUXC_GPR_GPR2_MQS_SW_RST ((uint32_t)(1<<24))
  4419. #define IOMUXC_GPR_GPR2_MQS_CLK_DIV(n) ((uint32_t)(((n) & 0xFF) << 16))
  4420. #define IOMUXC_GPR_GPR2_L2_MEM_DEEPSLEEP ((uint32_t)(1<<14))
  4421. #define IOMUXC_GPR_GPR2_L2_MEM_EN_POWERSAVING ((uint32_t)(1<<12))
  4422. #define IOMUXC_GPR_GPR2_MQS_CLK_DIV_MASK IOMUXC_GPR_GPR2_MQS_CLK_DIV(255)
  4423. #define IOMUXC_GPR_GPR3_OCRAM_STATUS(n) ((uint32_t)(((n) & 0x0F) << 16))
  4424. #define IOMUXC_GPR_GPR3_DCP_KEY_SEL ((uint32_t)(1<<4))
  4425. #define IOMUXC_GPR_GPR3_OCRAM_CTL(n) ((uint32_t)(((n) & 0x0F) << 0))
  4426. #define IOMUXC_GPR_GPR4_FLEXIO2_STOP_ACK ((uint32_t)(1<<29))
  4427. #define IOMUXC_GPR_GPR4_FLEXIO1_STOP_ACK ((uint32_t)(1<<28))
  4428. #define IOMUXC_GPR_GPR4_FLEXSPI_STOP_ACK ((uint32_t)(1<<27))
  4429. #define IOMUXC_GPR_GPR4_PIT_STOP_ACK ((uint32_t)(1<<26))
  4430. #define IOMUXC_GPR_GPR4_SEMC_STOP_ACK ((uint32_t)(1<<25))
  4431. #define IOMUXC_GPR_GPR4_SAI3_STOP_ACK ((uint32_t)(1<<23))
  4432. #define IOMUXC_GPR_GPR4_SAI2_STOP_ACK ((uint32_t)(1<<22))
  4433. #define IOMUXC_GPR_GPR4_SAI1_STOP_ACK ((uint32_t)(1<<21))
  4434. #define IOMUXC_GPR_GPR4_ENET_STOP_ACK ((uint32_t)(1<<20))
  4435. #define IOMUXC_GPR_GPR4_TRNG_STOP_ACK ((uint32_t)(1<<19))
  4436. #define IOMUXC_GPR_GPR4_CAN2_STOP_ACK ((uint32_t)(1<<18))
  4437. #define IOMUXC_GPR_GPR4_CAN1_STOP_ACK ((uint32_t)(1<<17))
  4438. #define IOMUXC_GPR_GPR4_EDMA_STOP_ACK ((uint32_t)(1<<16))
  4439. #define IOMUXC_GPR_GPR4_FLEXIO2_STOP_REQ ((uint32_t)(1<<13))
  4440. #define IOMUXC_GPR_GPR4_FLEXIO1_STOP_REQ ((uint32_t)(1<<12))
  4441. #define IOMUXC_GPR_GPR4_FLEXSPI_STOP_REQ ((uint32_t)(1<<11))
  4442. #define IOMUXC_GPR_GPR4_PIT_STOP_REQ ((uint32_t)(1<<10))
  4443. #define IOMUXC_GPR_GPR4_SEMC_STOP_REQ ((uint32_t)(1<<9))
  4444. #define IOMUXC_GPR_GPR4_SAI3_STOP_REQ ((uint32_t)(1<<7))
  4445. #define IOMUXC_GPR_GPR4_SAI2_STOP_REQ ((uint32_t)(1<<6))
  4446. #define IOMUXC_GPR_GPR4_SAI1_STOP_REQ ((uint32_t)(1<<5))
  4447. #define IOMUXC_GPR_GPR4_ENET_STOP_REQ ((uint32_t)(1<<4))
  4448. #define IOMUXC_GPR_GPR4_TRNG_STOP_REQ ((uint32_t)(1<<3))
  4449. #define IOMUXC_GPR_GPR4_CAN2_STOP_REQ ((uint32_t)(1<<2))
  4450. #define IOMUXC_GPR_GPR4_CAN1_STOP_REQ ((uint32_t)(1<<1))
  4451. #define IOMUXC_GPR_GPR4_EDMA_STOP_REQ ((uint32_t)(1<<0))
  4452. #define IOMUXC_GPR_GPR5_VREF_1M_CLK_GPT2 ((uint32_t)(1<<29))
  4453. #define IOMUXC_GPR_GPR5_VREF_1M_CLK_GPT1 ((uint32_t)(1<<28))
  4454. #define IOMUXC_GPR_GPR5_ENET_EVENT3IN_SEL ((uint32_t)(1<<25))
  4455. #define IOMUXC_GPR_GPR5_GPT2_CAPIN2_SEL ((uint32_t)(1<<24))
  4456. #define IOMUXC_GPR_GPR5_GPT2_CAPIN1_SEL ((uint32_t)(1<<23))
  4457. #define IOMUXC_GPR_GPR5_WDOG2_MASK ((uint32_t)(1<<7))
  4458. #define IOMUXC_GPR_GPR5_WDOG1_MASK ((uint32_t)(1<<6))
  4459. #define IOMUXC_GPR_GPR6_IOMUXC_XBAR_DIR_SEL_19 ((uint32_t)(1<<31))
  4460. #define IOMUXC_GPR_GPR6_IOMUXC_XBAR_DIR_SEL_18 ((uint32_t)(1<<30))
  4461. #define IOMUXC_GPR_GPR6_IOMUXC_XBAR_DIR_SEL_17 ((uint32_t)(1<<29))
  4462. #define IOMUXC_GPR_GPR6_IOMUXC_XBAR_DIR_SEL_16 ((uint32_t)(1<<28))
  4463. #define IOMUXC_GPR_GPR6_IOMUXC_XBAR_DIR_SEL_15 ((uint32_t)(1<<27))
  4464. #define IOMUXC_GPR_GPR6_IOMUXC_XBAR_DIR_SEL_14 ((uint32_t)(1<<26))
  4465. #define IOMUXC_GPR_GPR6_IOMUXC_XBAR_DIR_SEL_13 ((uint32_t)(1<<25))
  4466. #define IOMUXC_GPR_GPR6_IOMUXC_XBAR_DIR_SEL_12 ((uint32_t)(1<<24))
  4467. #define IOMUXC_GPR_GPR6_IOMUXC_XBAR_DIR_SEL_11 ((uint32_t)(1<<23))
  4468. #define IOMUXC_GPR_GPR6_IOMUXC_XBAR_DIR_SEL_10 ((uint32_t)(1<<22))
  4469. #define IOMUXC_GPR_GPR6_IOMUXC_XBAR_DIR_SEL_9 ((uint32_t)(1<<21))
  4470. #define IOMUXC_GPR_GPR6_IOMUXC_XBAR_DIR_SEL_8 ((uint32_t)(1<<20))
  4471. #define IOMUXC_GPR_GPR6_IOMUXC_XBAR_DIR_SEL_7 ((uint32_t)(1<<19))
  4472. #define IOMUXC_GPR_GPR6_IOMUXC_XBAR_DIR_SEL_6 ((uint32_t)(1<<18))
  4473. #define IOMUXC_GPR_GPR6_IOMUXC_XBAR_DIR_SEL_5 ((uint32_t)(1<<17))
  4474. #define IOMUXC_GPR_GPR6_IOMUXC_XBAR_DIR_SEL_4 ((uint32_t)(1<<16))
  4475. #define IOMUXC_GPR_GPR6_QTIMER4_TRM3_INPUT_SEL ((uint32_t)(1<<15))
  4476. #define IOMUXC_GPR_GPR6_QTIMER4_TRM2_INPUT_SEL ((uint32_t)(1<<14))
  4477. #define IOMUXC_GPR_GPR6_QTIMER4_TRM1_INPUT_SEL ((uint32_t)(1<<13))
  4478. #define IOMUXC_GPR_GPR6_QTIMER4_TRM0_INPUT_SEL ((uint32_t)(1<<12))
  4479. #define IOMUXC_GPR_GPR6_QTIMER3_TRM3_INPUT_SEL ((uint32_t)(1<<11))
  4480. #define IOMUXC_GPR_GPR6_QTIMER3_TRM2_INPUT_SEL ((uint32_t)(1<<10))
  4481. #define IOMUXC_GPR_GPR6_QTIMER3_TRM1_INPUT_SEL ((uint32_t)(1<<9))
  4482. #define IOMUXC_GPR_GPR6_QTIMER3_TRM0_INPUT_SEL ((uint32_t)(1<<8))
  4483. #define IOMUXC_GPR_GPR6_QTIMER2_TRM3_INPUT_SEL ((uint32_t)(1<<7))
  4484. #define IOMUXC_GPR_GPR6_QTIMER2_TRM2_INPUT_SEL ((uint32_t)(1<<6))
  4485. #define IOMUXC_GPR_GPR6_QTIMER2_TRM1_INPUT_SEL ((uint32_t)(1<<5))
  4486. #define IOMUXC_GPR_GPR6_QTIMER2_TRM0_INPUT_SEL ((uint32_t)(1<<4))
  4487. #define IOMUXC_GPR_GPR6_QTIMER1_TRM3_INPUT_SEL ((uint32_t)(1<<3))
  4488. #define IOMUXC_GPR_GPR6_QTIMER1_TRM2_INPUT_SEL ((uint32_t)(1<<2))
  4489. #define IOMUXC_GPR_GPR6_QTIMER1_TRM1_INPUT_SEL ((uint32_t)(1<<1))
  4490. #define IOMUXC_GPR_GPR6_QTIMER1_TRM0_INPUT_SEL ((uint32_t)(1<<0))
  4491. #define IOMUXC_GPR_GPR7_LPUART8_STOP_ACK ((uint32_t)(1<<31))
  4492. #define IOMUXC_GPR_GPR7_LPUART7_STOP_ACK ((uint32_t)(1<<30))
  4493. #define IOMUXC_GPR_GPR7_LPUART6_STOP_ACK ((uint32_t)(1<<29))
  4494. #define IOMUXC_GPR_GPR7_LPUART5_STOP_ACK ((uint32_t)(1<<28))
  4495. #define IOMUXC_GPR_GPR7_LPUART4_STOP_ACK ((uint32_t)(1<<27))
  4496. #define IOMUXC_GPR_GPR7_LPUART3_STOP_ACK ((uint32_t)(1<<26))
  4497. #define IOMUXC_GPR_GPR7_LPUART2_STOP_ACK ((uint32_t)(1<<25))
  4498. #define IOMUXC_GPR_GPR7_LPUART1_STOP_ACK ((uint32_t)(1<<24))
  4499. #define IOMUXC_GPR_GPR7_LPSPI4_STOP_ACK ((uint32_t)(1<<23))
  4500. #define IOMUXC_GPR_GPR7_LPSPI3_STOP_ACK ((uint32_t)(1<<22))
  4501. #define IOMUXC_GPR_GPR7_LPSPI2_STOP_ACK ((uint32_t)(1<<21))
  4502. #define IOMUXC_GPR_GPR7_LPSPI1_STOP_ACK ((uint32_t)(1<<20))
  4503. #define IOMUXC_GPR_GPR7_LPI2C4_STOP_ACK ((uint32_t)(1<<19))
  4504. #define IOMUXC_GPR_GPR7_LPI2C3_STOP_ACK ((uint32_t)(1<<18))
  4505. #define IOMUXC_GPR_GPR7_LPI2C2_STOP_ACK ((uint32_t)(1<<17))
  4506. #define IOMUXC_GPR_GPR7_LPI2C1_STOP_ACK ((uint32_t)(1<<16))
  4507. #define IOMUXC_GPR_GPR7_LPUART8_STOP_REQ ((uint32_t)(1<<15))
  4508. #define IOMUXC_GPR_GPR7_LPUART7_STOP_REQ ((uint32_t)(1<<14))
  4509. #define IOMUXC_GPR_GPR7_LPUART6_STOP_REQ ((uint32_t)(1<<13))
  4510. #define IOMUXC_GPR_GPR7_LPUART5_STOP_REQ ((uint32_t)(1<<12))
  4511. #define IOMUXC_GPR_GPR7_LPUART4_STOP_REQ ((uint32_t)(1<<11))
  4512. #define IOMUXC_GPR_GPR7_LPUART3_STOP_REQ ((uint32_t)(1<<10))
  4513. #define IOMUXC_GPR_GPR7_LPUART2_STOP_REQ ((uint32_t)(1<<9))
  4514. #define IOMUXC_GPR_GPR7_LPUART1_STOP_REQ ((uint32_t)(1<<8))
  4515. #define IOMUXC_GPR_GPR7_LPSPI4_STOP_REQ ((uint32_t)(1<<7))
  4516. #define IOMUXC_GPR_GPR7_LPSPI3_STOP_REQ ((uint32_t)(1<<6))
  4517. #define IOMUXC_GPR_GPR7_LPSPI2_STOP_REQ ((uint32_t)(1<<5))
  4518. #define IOMUXC_GPR_GPR7_LPSPI1_STOP_REQ ((uint32_t)(1<<4))
  4519. #define IOMUXC_GPR_GPR7_LPI2C4_STOP_REQ ((uint32_t)(1<<3))
  4520. #define IOMUXC_GPR_GPR7_LPI2C3_STOP_REQ ((uint32_t)(1<<2))
  4521. #define IOMUXC_GPR_GPR7_LPI2C2_STOP_REQ ((uint32_t)(1<<1))
  4522. #define IOMUXC_GPR_GPR7_LPI2C1_STOP_REQ ((uint32_t)(1<<0))
  4523. #define IOMUXC_GPR_GPR8_LPUART8_IPG_DOZE ((uint32_t)(1<<31))
  4524. #define IOMUXC_GPR_GPR8_LPUART8_IPG_STOP_MODE ((uint32_t)(1<<30))
  4525. #define IOMUXC_GPR_GPR8_LPUART7_IPG_DOZE ((uint32_t)(1<<29))
  4526. #define IOMUXC_GPR_GPR8_LPUART7_IPG_STOP_MODE ((uint32_t)(1<<28))
  4527. #define IOMUXC_GPR_GPR8_LPUART6_IPG_DOZE ((uint32_t)(1<<27))
  4528. #define IOMUXC_GPR_GPR8_LPUART6_IPG_STOP_MODE ((uint32_t)(1<<26))
  4529. #define IOMUXC_GPR_GPR8_LPUART5_IPG_DOZE ((uint32_t)(1<<25))
  4530. #define IOMUXC_GPR_GPR8_LPUART5_IPG_STOP_MODE ((uint32_t)(1<<24))
  4531. #define IOMUXC_GPR_GPR8_LPUART4_IPG_DOZE ((uint32_t)(1<<23))
  4532. #define IOMUXC_GPR_GPR8_LPUART4_IPG_STOP_MODE ((uint32_t)(1<<22))
  4533. #define IOMUXC_GPR_GPR8_LPUART3_IPG_DOZE ((uint32_t)(1<<21))
  4534. #define IOMUXC_GPR_GPR8_LPUART3_IPG_STOP_MODE ((uint32_t)(1<<20))
  4535. #define IOMUXC_GPR_GPR8_LPUART2_IPG_DOZE ((uint32_t)(1<<19))
  4536. #define IOMUXC_GPR_GPR8_LPUART2_IPG_STOP_MODE ((uint32_t)(1<<18))
  4537. #define IOMUXC_GPR_GPR8_LPUART1_IPG_DOZE ((uint32_t)(1<<17))
  4538. #define IOMUXC_GPR_GPR8_LPUART1_IPG_STOP_MODE ((uint32_t)(1<<16))
  4539. #define IOMUXC_GPR_GPR8_LPSPI4_IPG_DOZE ((uint32_t)(1<<15))
  4540. #define IOMUXC_GPR_GPR8_LPSPI4_IPG_STOP_MODE ((uint32_t)(1<<14))
  4541. #define IOMUXC_GPR_GPR8_LPSPI3_IPG_DOZE ((uint32_t)(1<<13))
  4542. #define IOMUXC_GPR_GPR8_LPSPI3_IPG_STOP_MODE ((uint32_t)(1<<12))
  4543. #define IOMUXC_GPR_GPR8_LPSPI2_IPG_DOZE ((uint32_t)(1<<11))
  4544. #define IOMUXC_GPR_GPR8_LPSPI2_IPG_STOP_MODE ((uint32_t)(1<<10))
  4545. #define IOMUXC_GPR_GPR8_LPSPI1_IPG_DOZE ((uint32_t)(1<<9))
  4546. #define IOMUXC_GPR_GPR8_LPSPI1_IPG_STOP_MODE ((uint32_t)(1<<8))
  4547. #define IOMUXC_GPR_GPR8_LPI2C4_IPG_DOZE ((uint32_t)(1<<7))
  4548. #define IOMUXC_GPR_GPR8_LPI2C4_IPG_STOP_MODE ((uint32_t)(1<<6))
  4549. #define IOMUXC_GPR_GPR8_LPI2C3_IPG_DOZE ((uint32_t)(1<<5))
  4550. #define IOMUXC_GPR_GPR8_LPI2C3_IPG_STOP_MODE ((uint32_t)(1<<4))
  4551. #define IOMUXC_GPR_GPR8_LPI2C2_IPG_DOZE ((uint32_t)(1<<3))
  4552. #define IOMUXC_GPR_GPR8_LPI2C2_IPG_STOP_MODE ((uint32_t)(1<<2))
  4553. #define IOMUXC_GPR_GPR8_LPI2C1_IPG_DOZE ((uint32_t)(1<<1))
  4554. #define IOMUXC_GPR_GPR8_LPI2C1_IPG_STOP_MODE ((uint32_t)(1<<0))
  4555. #define IOMUXC_GPR_GPR10_LOCK_OCRAM_TZ_ADDR(n) ((uint32_t)(((n) & 0x7F) << 25))
  4556. #define IOMUXC_GPR_GPR10_LOCK_OCRAM_TZ_EN ((uint32_t)(1<<24))
  4557. #define IOMUXC_GPR_GPR10_LOCK_DCPKEY_OCOTP_OR_KEYMUX ((uint32_t)(1<<20))
  4558. #define IOMUXC_GPR_GPR10_LOCK_SEC_ERR_RESP ((uint32_t)(1<<18))
  4559. #define IOMUXC_GPR_GPR10_LOCK_DBG_EN ((uint32_t)(1<<17))
  4560. #define IOMUXC_GPR_GPR10_LOCK_NIDEN ((uint32_t)(1<<16))
  4561. #define IOMUXC_GPR_GPR10_OCRAM_TZ_ADDR(n) ((uint32_t)(((n) & 0x7F) << 9))
  4562. #define IOMUXC_GPR_GPR10_OCRAM_TZ_EN ((uint32_t)(1<<8))
  4563. #define IOMUXC_GPR_GPR10_DCPKEY_OCOTP_OR_KEYMUX ((uint32_t)(1<<4))
  4564. #define IOMUXC_GPR_GPR10_SEC_ERR_RESP ((uint32_t)(1<<2))
  4565. #define IOMUXC_GPR_GPR10_DBG_EN ((uint32_t)(1<<1))
  4566. #define IOMUXC_GPR_GPR10_NIDEN ((uint32_t)(1<<0))
  4567. #define IOMUXC_GPR_GPR11_LOCK_BEE_DE_RX_EN(n) ((uint32_t)(((n) & 0x0F) << 24))
  4568. #define IOMUXC_GPR_GPR11_LOCK_M7_APC_AC_R3_CTRL(n) ((uint32_t)(((n) & 0x03) << 22))
  4569. #define IOMUXC_GPR_GPR11_LOCK_M7_APC_AC_R2_CTRL(n) ((uint32_t)(((n) & 0x03) << 20))
  4570. #define IOMUXC_GPR_GPR11_LOCK_M7_APC_AC_R1_CTRL(n) ((uint32_t)(((n) & 0x03) << 18))
  4571. #define IOMUXC_GPR_GPR11_LOCK_M7_APC_AC_R0_CTRL(n) ((uint32_t)(((n) & 0x03) << 16))
  4572. #define IOMUXC_GPR_GPR11_BEE_DE_RX_EN(n) ((uint32_t)(((n) & 0x0F) << 8))
  4573. #define IOMUXC_GPR_GPR11_M7_APC_AC_R3_CTRL(n) ((uint32_t)(((n) & 0x03) << 6))
  4574. #define IOMUXC_GPR_GPR11_M7_APC_AC_R2_CTRL(n) ((uint32_t)(((n) & 0x03) << 4))
  4575. #define IOMUXC_GPR_GPR11_M7_APC_AC_R1_CTRL(n) ((uint32_t)(((n) & 0x03) << 2))
  4576. #define IOMUXC_GPR_GPR11_M7_APC_AC_R0_CTRL(n) ((uint32_t)(((n) & 0x03) << 0))
  4577. #define IOMUXC_GPR_GPR12_ACMP_IPG_STOP_MODE ((uint32_t)(1<<4))
  4578. #define IOMUXC_GPR_GPR12_FLEXIO2_IPG_DOZE ((uint32_t)(1<<3))
  4579. #define IOMUXC_GPR_GPR12_FLEXIO2_IPG_STOP_MODE ((uint32_t)(1<<2))
  4580. #define IOMUXC_GPR_GPR12_FLEXIO1_IPG_DOZE ((uint32_t)(1<<1))
  4581. #define IOMUXC_GPR_GPR12_FLEXIO1_IPG_STOP_MODE ((uint32_t)(1<<0))
  4582. #define IOMUXC_GPR_GPR13_CACHE_USB ((uint32_t)(1<<13))
  4583. #define IOMUXC_GPR_GPR13_CACHE_ENET ((uint32_t)(1<<7))
  4584. #define IOMUXC_GPR_GPR13_AWCACHE_USDHC ((uint32_t)(1<<1))
  4585. #define IOMUXC_GPR_GPR13_ARCACHE_USDHC ((uint32_t)(1<<0))
  4586. #define IOMUXC_GPR_GPR14_CM7_MX6RT_CFGDTCMSZ(n) ((uint32_t)(((n) & 0x0F) << 20))
  4587. #define IOMUXC_GPR_GPR14_CM7_MX6RT_CFGITCMSZ(n) ((uint32_t)(((n) & 0x0F) << 16))
  4588. #define IOMUXC_GPR_GPR14_ACMP4_SAMPLE_SYNC_EN ((uint32_t)(1<<11))
  4589. #define IOMUXC_GPR_GPR14_ACMP3_SAMPLE_SYNC_EN ((uint32_t)(1<<10))
  4590. #define IOMUXC_GPR_GPR14_ACMP2_SAMPLE_SYNC_EN ((uint32_t)(1<<9))
  4591. #define IOMUXC_GPR_GPR14_ACMP1_SAMPLE_SYNC_EN ((uint32_t)(1<<8))
  4592. #define IOMUXC_GPR_GPR14_ACMP4_CMP_IGEN_TRIM_UP ((uint32_t)(1<<7))
  4593. #define IOMUXC_GPR_GPR14_ACMP3_CMP_IGEN_TRIM_UP ((uint32_t)(1<<6))
  4594. #define IOMUXC_GPR_GPR14_ACMP2_CMP_IGEN_TRIM_UP ((uint32_t)(1<<5))
  4595. #define IOMUXC_GPR_GPR14_ACMP1_CMP_IGEN_TRIM_UP ((uint32_t)(1<<4))
  4596. #define IOMUXC_GPR_GPR14_ACMP4_CMP_IGEN_TRIM_DN ((uint32_t)(1<<3))
  4597. #define IOMUXC_GPR_GPR14_ACMP3_CMP_IGEN_TRIM_DN ((uint32_t)(1<<2))
  4598. #define IOMUXC_GPR_GPR14_ACMP2_CMP_IGEN_TRIM_DN ((uint32_t)(1<<1))
  4599. #define IOMUXC_GPR_GPR14_ACMP1_CMP_IGEN_TRIM_DN ((uint32_t)(1<<0))
  4600. #define IOMUXC_GPR_GPR16_CM7_INIT_VTOR(n) ((uint32_t)(((n) & 0x1FFFFFF) << 7))
  4601. #define IOMUXC_GPR_GPR16_FLEXRAM_BANK_CFG_SEL ((uint32_t)(1<<2))
  4602. #define IOMUXC_GPR_GPR16_INIT_DTCM_EN ((uint32_t)(1<<1))
  4603. #define IOMUXC_GPR_GPR16_INIT_ITCM_EN ((uint32_t)(1<<0))
  4604. #define IOMUXC_GPR_GPR18_M7_APC_AC_R0_BOT(n) ((uint32_t)(((n) & 0x1FFFFFFF) << 3))
  4605. #define IOMUXC_GPR_GPR18_LOCK_M7_APC_AC_R0_BOT ((uint32_t)(1<<0))
  4606. #define IOMUXC_GPR_GPR19_M7_APC_AC_R0_TOP(n) ((uint32_t)(((n) & 0x1FFFFFFF) << 3))
  4607. #define IOMUXC_GPR_GPR19_LOCK_M7_APC_AC_R0_TOP ((uint32_t)(1<<0))
  4608. #define IOMUXC_GPR_GPR20_M7_APC_AC_R1_BOT(n) ((uint32_t)(((n) & 0x1FFFFFFF) << 3))
  4609. #define IOMUXC_GPR_GPR20_LOCK_M7_APC_AC_R1_BOT ((uint32_t)(1<<0))
  4610. #define IOMUXC_GPR_GPR21_M7_APC_AC_R1_TOP(n) ((uint32_t)(((n) & 0x1FFFFFFF) << 3))
  4611. #define IOMUXC_GPR_GPR21_LOCK_M7_APC_AC_R1_TOP ((uint32_t)(1<<0))
  4612. #define IOMUXC_GPR_GPR22_M7_APC_AC_R2_BOT(n) ((uint32_t)(((n) & 0x1FFFFFFF) << 3))
  4613. #define IOMUXC_GPR_GPR22_LOCK_M7_APC_AC_R2_BOT ((uint32_t)(1<<0))
  4614. #define IOMUXC_GPR_GPR23_M7_APC_AC_R2_TOP(n) ((uint32_t)(((n) & 0x1FFFFFFF) << 3))
  4615. #define IOMUXC_GPR_GPR23_LOCK_M7_APC_AC_R2_TOP ((uint32_t)(1<<0))
  4616. #define IOMUXC_GPR_GPR24_M7_APC_AC_R3_BOT(n) ((uint32_t)(((n) & 0x1FFFFFFF) << 3))
  4617. #define IOMUXC_GPR_GPR24_LOCK_M7_APC_AC_R3_BOT ((uint32_t)(1<<0))
  4618. #define IOMUXC_GPR_GPR25_M7_APC_AC_R3_TOP(n) ((uint32_t)(((n) & 0x1FFFFFFF) << 3))
  4619. #define IOMUXC_GPR_GPR25_LOCK_M7_APC_AC_R3_TOP ((uint32_t)(1<<0))
  4620. // 34.5: page 1717
  4621. #define IMXRT_IOMUXC_SNVS (*(IMXRT_REGISTER32_t *)0x400A8000)
  4622. #define IOMUXC_SNVS_SW_MUX_CTL_PAD_WAKEUP (IMXRT_IOMUXC_SNVS.offset000)
  4623. #define IOMUXC_SNVS_SW_MUX_CTL_PAD_PMIC_ON_REQ (IMXRT_IOMUXC_SNVS.offset004)
  4624. #define IOMUXC_SNVS_SW_MUX_CTL_PAD_PMIC_STBY_REQ (IMXRT_IOMUXC_SNVS.offset008)
  4625. #define IOMUXC_SNVS_SW_PAD_CTL_PAD_TEST_MODE (IMXRT_IOMUXC_SNVS.offset00C)
  4626. #define IOMUXC_SNVS_SW_PAD_CTL_PAD_POR_B (IMXRT_IOMUXC_SNVS.offset010)
  4627. #define IOMUXC_SNVS_SW_PAD_CTL_PAD_ONOFF (IMXRT_IOMUXC_SNVS.offset014)
  4628. #define IOMUXC_SNVS_SW_PAD_CTL_PAD_WAKEUP (IMXRT_IOMUXC_SNVS.offset018)
  4629. #define IOMUXC_SNVS_SW_PAD_CTL_PAD_PMIC_ON_REQ (IMXRT_IOMUXC_SNVS.offset01C)
  4630. #define IOMUXC_SNVS_SW_PAD_CTL_PAD_PMIC_STBY_REQ (IMXRT_IOMUXC_SNVS.offset020)
  4631. // 34.6: page 1732
  4632. #define IMXRT_IOMUXC_SNVS_GPR (*(IMXRT_REGISTER32_t *)0x400A4000)
  4633. #define IOMUXC_SNVS_GPR_GPR0 (IMXRT_IOMUXC_SNVS_GPR.offset000)
  4634. #define IOMUXC_SNVS_GPR_GPR1 (IMXRT_IOMUXC_SNVS_GPR.offset004)
  4635. #define IOMUXC_SNVS_GPR_GPR2 (IMXRT_IOMUXC_SNVS_GPR.offset008)
  4636. #define IOMUXC_SNVS_GPR_GPR3 (IMXRT_IOMUXC_SNVS_GPR.offset00C)
  4637. // 34.7: page 1736
  4638. #define IMXRT_IOMUXC (*(IMXRT_REGISTER32_t *)0x401F8000)
  4639. #define IMXRT_IOMUXC_b (*(IMXRT_REGISTER32_t *)0x401F8400)
  4640. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_EMC_00 (IMXRT_IOMUXC.offset014)
  4641. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_EMC_01 (IMXRT_IOMUXC.offset018)
  4642. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_EMC_02 (IMXRT_IOMUXC.offset01C)
  4643. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_EMC_03 (IMXRT_IOMUXC.offset020)
  4644. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_EMC_04 (IMXRT_IOMUXC.offset024)
  4645. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_EMC_05 (IMXRT_IOMUXC.offset028)
  4646. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_EMC_06 (IMXRT_IOMUXC.offset02C)
  4647. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_EMC_07 (IMXRT_IOMUXC.offset030)
  4648. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_EMC_08 (IMXRT_IOMUXC.offset034)
  4649. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_EMC_09 (IMXRT_IOMUXC.offset038)
  4650. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_EMC_10 (IMXRT_IOMUXC.offset03C)
  4651. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_EMC_11 (IMXRT_IOMUXC.offset040)
  4652. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_EMC_12 (IMXRT_IOMUXC.offset044)
  4653. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_EMC_13 (IMXRT_IOMUXC.offset048)
  4654. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_EMC_14 (IMXRT_IOMUXC.offset04C)
  4655. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_EMC_15 (IMXRT_IOMUXC.offset050)
  4656. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_EMC_16 (IMXRT_IOMUXC.offset054)
  4657. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_EMC_17 (IMXRT_IOMUXC.offset058)
  4658. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_EMC_18 (IMXRT_IOMUXC.offset05C)
  4659. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_EMC_19 (IMXRT_IOMUXC.offset060)
  4660. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_EMC_20 (IMXRT_IOMUXC.offset064)
  4661. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_EMC_21 (IMXRT_IOMUXC.offset068)
  4662. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_EMC_22 (IMXRT_IOMUXC.offset06C)
  4663. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_EMC_23 (IMXRT_IOMUXC.offset070)
  4664. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_EMC_24 (IMXRT_IOMUXC.offset074)
  4665. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_EMC_25 (IMXRT_IOMUXC.offset078)
  4666. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_EMC_26 (IMXRT_IOMUXC.offset07C)
  4667. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_EMC_27 (IMXRT_IOMUXC.offset080)
  4668. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_EMC_28 (IMXRT_IOMUXC.offset084)
  4669. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_EMC_29 (IMXRT_IOMUXC.offset088)
  4670. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_EMC_30 (IMXRT_IOMUXC.offset08C)
  4671. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_EMC_31 (IMXRT_IOMUXC.offset090)
  4672. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_EMC_32 (IMXRT_IOMUXC.offset094)
  4673. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_EMC_33 (IMXRT_IOMUXC.offset098)
  4674. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_EMC_34 (IMXRT_IOMUXC.offset09C)
  4675. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_EMC_35 (IMXRT_IOMUXC.offset0A0)
  4676. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_EMC_36 (IMXRT_IOMUXC.offset0A4)
  4677. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_EMC_37 (IMXRT_IOMUXC.offset0A8)
  4678. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_EMC_38 (IMXRT_IOMUXC.offset0AC)
  4679. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_EMC_39 (IMXRT_IOMUXC.offset0B0)
  4680. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_EMC_40 (IMXRT_IOMUXC.offset0B4)
  4681. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_EMC_41 (IMXRT_IOMUXC.offset0B8)
  4682. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_AD_B0_00 (IMXRT_IOMUXC.offset0BC)
  4683. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_AD_B0_01 (IMXRT_IOMUXC.offset0C0)
  4684. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_AD_B0_02 (IMXRT_IOMUXC.offset0C4)
  4685. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_AD_B0_03 (IMXRT_IOMUXC.offset0C8)
  4686. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_AD_B0_04 (IMXRT_IOMUXC.offset0CC)
  4687. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_AD_B0_05 (IMXRT_IOMUXC.offset0D0)
  4688. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_AD_B0_06 (IMXRT_IOMUXC.offset0D4)
  4689. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_AD_B0_07 (IMXRT_IOMUXC.offset0D8)
  4690. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_AD_B0_08 (IMXRT_IOMUXC.offset0DC)
  4691. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_AD_B0_09 (IMXRT_IOMUXC.offset0E0)
  4692. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_AD_B0_10 (IMXRT_IOMUXC.offset0E4)
  4693. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_AD_B0_11 (IMXRT_IOMUXC.offset0E8)
  4694. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_AD_B0_12 (IMXRT_IOMUXC.offset0EC)
  4695. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_AD_B0_13 (IMXRT_IOMUXC.offset0F0)
  4696. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_AD_B0_14 (IMXRT_IOMUXC.offset0F4)
  4697. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_AD_B0_15 (IMXRT_IOMUXC.offset0F8)
  4698. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_AD_B1_00 (IMXRT_IOMUXC.offset0FC)
  4699. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_AD_B1_01 (IMXRT_IOMUXC.offset100)
  4700. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_AD_B1_02 (IMXRT_IOMUXC.offset104)
  4701. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_AD_B1_03 (IMXRT_IOMUXC.offset108)
  4702. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_AD_B1_04 (IMXRT_IOMUXC.offset10C)
  4703. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_AD_B1_05 (IMXRT_IOMUXC.offset110)
  4704. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_AD_B1_06 (IMXRT_IOMUXC.offset114)
  4705. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_AD_B1_07 (IMXRT_IOMUXC.offset118)
  4706. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_AD_B1_08 (IMXRT_IOMUXC.offset11C)
  4707. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_AD_B1_09 (IMXRT_IOMUXC.offset120)
  4708. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_AD_B1_10 (IMXRT_IOMUXC.offset124)
  4709. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_AD_B1_11 (IMXRT_IOMUXC.offset128)
  4710. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_AD_B1_12 (IMXRT_IOMUXC.offset12C)
  4711. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_AD_B1_13 (IMXRT_IOMUXC.offset130)
  4712. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_AD_B1_14 (IMXRT_IOMUXC.offset134)
  4713. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_AD_B1_15 (IMXRT_IOMUXC.offset138)
  4714. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_B0_00 (IMXRT_IOMUXC.offset13C)
  4715. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_B0_01 (IMXRT_IOMUXC.offset140)
  4716. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_B0_02 (IMXRT_IOMUXC.offset144)
  4717. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_B0_03 (IMXRT_IOMUXC.offset148)
  4718. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_B0_04 (IMXRT_IOMUXC.offset14C)
  4719. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_B0_05 (IMXRT_IOMUXC.offset150)
  4720. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_B0_06 (IMXRT_IOMUXC.offset154)
  4721. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_B0_07 (IMXRT_IOMUXC.offset158)
  4722. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_B0_08 (IMXRT_IOMUXC.offset15C)
  4723. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_B0_09 (IMXRT_IOMUXC.offset160)
  4724. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_B0_10 (IMXRT_IOMUXC.offset164)
  4725. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_B0_11 (IMXRT_IOMUXC.offset168)
  4726. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_B0_12 (IMXRT_IOMUXC.offset16C)
  4727. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_B0_13 (IMXRT_IOMUXC.offset170)
  4728. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_B0_14 (IMXRT_IOMUXC.offset174)
  4729. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_B0_15 (IMXRT_IOMUXC.offset178)
  4730. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_B1_00 (IMXRT_IOMUXC.offset17C)
  4731. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_B1_01 (IMXRT_IOMUXC.offset180)
  4732. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_B1_02 (IMXRT_IOMUXC.offset184)
  4733. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_B1_03 (IMXRT_IOMUXC.offset188)
  4734. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_B1_04 (IMXRT_IOMUXC.offset18C)
  4735. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_B1_05 (IMXRT_IOMUXC.offset190)
  4736. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_B1_06 (IMXRT_IOMUXC.offset194)
  4737. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_B1_07 (IMXRT_IOMUXC.offset198)
  4738. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_B1_08 (IMXRT_IOMUXC.offset19C)
  4739. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_B1_09 (IMXRT_IOMUXC.offset1A0)
  4740. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_B1_10 (IMXRT_IOMUXC.offset1A4)
  4741. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_B1_11 (IMXRT_IOMUXC.offset1A8)
  4742. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_B1_12 (IMXRT_IOMUXC.offset1AC)
  4743. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_B1_13 (IMXRT_IOMUXC.offset1B0)
  4744. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_B1_14 (IMXRT_IOMUXC.offset1B4)
  4745. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_B1_15 (IMXRT_IOMUXC.offset1B8)
  4746. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_SD_B0_00 (IMXRT_IOMUXC.offset1BC)
  4747. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_SD_B0_01 (IMXRT_IOMUXC.offset1C0)
  4748. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_SD_B0_02 (IMXRT_IOMUXC.offset1C4)
  4749. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_SD_B0_03 (IMXRT_IOMUXC.offset1C8)
  4750. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_SD_B0_04 (IMXRT_IOMUXC.offset1CC)
  4751. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_SD_B0_05 (IMXRT_IOMUXC.offset1D0)
  4752. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_SD_B1_00 (IMXRT_IOMUXC.offset1D4)
  4753. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_SD_B1_01 (IMXRT_IOMUXC.offset1D8)
  4754. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_SD_B1_02 (IMXRT_IOMUXC.offset1DC)
  4755. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_SD_B1_03 (IMXRT_IOMUXC.offset1E0)
  4756. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_SD_B1_04 (IMXRT_IOMUXC.offset1E4)
  4757. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_SD_B1_05 (IMXRT_IOMUXC.offset1E8)
  4758. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_SD_B1_06 (IMXRT_IOMUXC.offset1EC)
  4759. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_SD_B1_07 (IMXRT_IOMUXC.offset1F0)
  4760. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_SD_B1_08 (IMXRT_IOMUXC.offset1F4)
  4761. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_SD_B1_09 (IMXRT_IOMUXC.offset1F8)
  4762. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_SD_B1_10 (IMXRT_IOMUXC.offset1FC)
  4763. #define IOMUXC_SW_MUX_CTL_PAD_GPIO_SD_B1_11 (IMXRT_IOMUXC.offset200)
  4764. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_EMC_00 (IMXRT_IOMUXC.offset204)
  4765. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_EMC_01 (IMXRT_IOMUXC.offset208)
  4766. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_EMC_02 (IMXRT_IOMUXC.offset20C)
  4767. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_EMC_03 (IMXRT_IOMUXC.offset210)
  4768. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_EMC_04 (IMXRT_IOMUXC.offset214)
  4769. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_EMC_05 (IMXRT_IOMUXC.offset218)
  4770. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_EMC_06 (IMXRT_IOMUXC.offset21C)
  4771. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_EMC_07 (IMXRT_IOMUXC.offset220)
  4772. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_EMC_08 (IMXRT_IOMUXC.offset224)
  4773. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_EMC_09 (IMXRT_IOMUXC.offset228)
  4774. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_EMC_10 (IMXRT_IOMUXC.offset22C)
  4775. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_EMC_11 (IMXRT_IOMUXC.offset230)
  4776. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_EMC_12 (IMXRT_IOMUXC.offset234)
  4777. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_EMC_13 (IMXRT_IOMUXC.offset238)
  4778. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_EMC_14 (IMXRT_IOMUXC.offset23C)
  4779. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_EMC_15 (IMXRT_IOMUXC.offset240)
  4780. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_EMC_16 (IMXRT_IOMUXC.offset244)
  4781. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_EMC_17 (IMXRT_IOMUXC.offset248)
  4782. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_EMC_18 (IMXRT_IOMUXC.offset24C)
  4783. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_EMC_19 (IMXRT_IOMUXC.offset250)
  4784. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_EMC_20 (IMXRT_IOMUXC.offset254)
  4785. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_EMC_21 (IMXRT_IOMUXC.offset258)
  4786. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_EMC_22 (IMXRT_IOMUXC.offset25C)
  4787. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_EMC_23 (IMXRT_IOMUXC.offset260)
  4788. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_EMC_24 (IMXRT_IOMUXC.offset264)
  4789. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_EMC_25 (IMXRT_IOMUXC.offset268)
  4790. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_EMC_26 (IMXRT_IOMUXC.offset26C)
  4791. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_EMC_27 (IMXRT_IOMUXC.offset270)
  4792. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_EMC_28 (IMXRT_IOMUXC.offset274)
  4793. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_EMC_29 (IMXRT_IOMUXC.offset278)
  4794. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_EMC_30 (IMXRT_IOMUXC.offset27C)
  4795. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_EMC_31 (IMXRT_IOMUXC.offset280)
  4796. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_EMC_32 (IMXRT_IOMUXC.offset284)
  4797. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_EMC_33 (IMXRT_IOMUXC.offset288)
  4798. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_EMC_34 (IMXRT_IOMUXC.offset28C)
  4799. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_EMC_35 (IMXRT_IOMUXC.offset290)
  4800. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_EMC_36 (IMXRT_IOMUXC.offset294)
  4801. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_EMC_37 (IMXRT_IOMUXC.offset298)
  4802. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_EMC_38 (IMXRT_IOMUXC.offset29C)
  4803. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_EMC_39 (IMXRT_IOMUXC.offset2A0)
  4804. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_EMC_40 (IMXRT_IOMUXC.offset2A4)
  4805. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_EMC_41 (IMXRT_IOMUXC.offset2A8)
  4806. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_AD_B0_00 (IMXRT_IOMUXC.offset2AC)
  4807. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_AD_B0_01 (IMXRT_IOMUXC.offset2B0)
  4808. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_AD_B0_02 (IMXRT_IOMUXC.offset2B4)
  4809. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_AD_B0_03 (IMXRT_IOMUXC.offset2B8)
  4810. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_AD_B0_04 (IMXRT_IOMUXC.offset2BC)
  4811. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_AD_B0_05 (IMXRT_IOMUXC.offset2C0)
  4812. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_AD_B0_06 (IMXRT_IOMUXC.offset2C4)
  4813. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_AD_B0_07 (IMXRT_IOMUXC.offset2C8)
  4814. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_AD_B0_08 (IMXRT_IOMUXC.offset2CC)
  4815. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_AD_B0_09 (IMXRT_IOMUXC.offset2D0)
  4816. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_AD_B0_10 (IMXRT_IOMUXC.offset2D4)
  4817. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_AD_B0_11 (IMXRT_IOMUXC.offset2D8)
  4818. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_AD_B0_12 (IMXRT_IOMUXC.offset2DC)
  4819. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_AD_B0_13 (IMXRT_IOMUXC.offset2E0)
  4820. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_AD_B0_14 (IMXRT_IOMUXC.offset2E4)
  4821. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_AD_B0_15 (IMXRT_IOMUXC.offset2E8)
  4822. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_AD_B1_00 (IMXRT_IOMUXC.offset2EC)
  4823. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_AD_B1_01 (IMXRT_IOMUXC.offset2F0)
  4824. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_AD_B1_02 (IMXRT_IOMUXC.offset2F4)
  4825. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_AD_B1_03 (IMXRT_IOMUXC.offset2F8)
  4826. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_AD_B1_04 (IMXRT_IOMUXC.offset2FC)
  4827. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_AD_B1_05 (IMXRT_IOMUXC.offset300)
  4828. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_AD_B1_06 (IMXRT_IOMUXC.offset304)
  4829. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_AD_B1_07 (IMXRT_IOMUXC.offset308)
  4830. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_AD_B1_08 (IMXRT_IOMUXC.offset30C)
  4831. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_AD_B1_09 (IMXRT_IOMUXC.offset310)
  4832. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_AD_B1_10 (IMXRT_IOMUXC.offset314)
  4833. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_AD_B1_11 (IMXRT_IOMUXC.offset318)
  4834. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_AD_B1_12 (IMXRT_IOMUXC.offset31C)
  4835. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_AD_B1_13 (IMXRT_IOMUXC.offset320)
  4836. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_AD_B1_14 (IMXRT_IOMUXC.offset324)
  4837. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_AD_B1_15 (IMXRT_IOMUXC.offset328)
  4838. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_B0_00 (IMXRT_IOMUXC.offset32C)
  4839. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_B0_01 (IMXRT_IOMUXC.offset330)
  4840. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_B0_02 (IMXRT_IOMUXC.offset334)
  4841. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_B0_03 (IMXRT_IOMUXC.offset338)
  4842. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_B0_04 (IMXRT_IOMUXC.offset33C)
  4843. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_B0_05 (IMXRT_IOMUXC.offset340)
  4844. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_B0_06 (IMXRT_IOMUXC.offset344)
  4845. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_B0_07 (IMXRT_IOMUXC.offset348)
  4846. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_B0_08 (IMXRT_IOMUXC.offset34C)
  4847. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_B0_09 (IMXRT_IOMUXC.offset350)
  4848. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_B0_10 (IMXRT_IOMUXC.offset354)
  4849. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_B0_11 (IMXRT_IOMUXC.offset358)
  4850. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_B0_12 (IMXRT_IOMUXC.offset35C)
  4851. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_B0_13 (IMXRT_IOMUXC.offset360)
  4852. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_B0_14 (IMXRT_IOMUXC.offset364)
  4853. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_B0_15 (IMXRT_IOMUXC.offset368)
  4854. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_B1_00 (IMXRT_IOMUXC.offset36C)
  4855. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_B1_01 (IMXRT_IOMUXC.offset370)
  4856. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_B1_02 (IMXRT_IOMUXC.offset374)
  4857. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_B1_03 (IMXRT_IOMUXC.offset378)
  4858. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_B1_04 (IMXRT_IOMUXC.offset37C)
  4859. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_B1_05 (IMXRT_IOMUXC.offset380)
  4860. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_B1_06 (IMXRT_IOMUXC.offset384)
  4861. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_B1_07 (IMXRT_IOMUXC.offset388)
  4862. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_B1_08 (IMXRT_IOMUXC.offset38C)
  4863. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_B1_09 (IMXRT_IOMUXC.offset390)
  4864. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_B1_10 (IMXRT_IOMUXC.offset394)
  4865. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_B1_11 (IMXRT_IOMUXC.offset398)
  4866. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_B1_12 (IMXRT_IOMUXC.offset39C)
  4867. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_B1_13 (IMXRT_IOMUXC.offset3A0)
  4868. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_B1_14 (IMXRT_IOMUXC.offset3A4)
  4869. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_B1_15 (IMXRT_IOMUXC.offset3A8)
  4870. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_SD_B0_00 (IMXRT_IOMUXC.offset3AC)
  4871. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_SD_B0_01 (IMXRT_IOMUXC.offset3B0)
  4872. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_SD_B0_02 (IMXRT_IOMUXC.offset3B4)
  4873. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_SD_B0_03 (IMXRT_IOMUXC.offset3B8)
  4874. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_SD_B0_04 (IMXRT_IOMUXC.offset3BC)
  4875. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_SD_B0_05 (IMXRT_IOMUXC.offset3C0)
  4876. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_SD_B1_00 (IMXRT_IOMUXC.offset3C4)
  4877. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_SD_B1_01 (IMXRT_IOMUXC.offset3C8)
  4878. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_SD_B1_02 (IMXRT_IOMUXC.offset3CC)
  4879. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_SD_B1_03 (IMXRT_IOMUXC.offset3D0)
  4880. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_SD_B1_04 (IMXRT_IOMUXC.offset3D4)
  4881. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_SD_B1_05 (IMXRT_IOMUXC.offset3D8)
  4882. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_SD_B1_06 (IMXRT_IOMUXC.offset3DC)
  4883. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_SD_B1_07 (IMXRT_IOMUXC.offset3E0)
  4884. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_SD_B1_08 (IMXRT_IOMUXC.offset3E4)
  4885. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_SD_B1_09 (IMXRT_IOMUXC.offset3E8)
  4886. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_SD_B1_10 (IMXRT_IOMUXC.offset3EC)
  4887. #define IOMUXC_SW_PAD_CTL_PAD_GPIO_SD_B1_11 (IMXRT_IOMUXC.offset3F0)
  4888. #define IOMUXC_ANATOP_USB_OTG_ID_SELECT_INPUT (IMXRT_IOMUXC.offset3F4)
  4889. #define IOMUXC_ANATOP_USB_UH1_ID_SELECT_INPUT (IMXRT_IOMUXC.offset3F8)
  4890. #define IOMUXC_CCM_PMIC_READY_SELECT_INPUT (IMXRT_IOMUXC.offset3FC)
  4891. #define IOMUXC_CSI_DATA02_SELECT_INPUT (IMXRT_IOMUXC_b.offset000)
  4892. #define IOMUXC_CSI_DATA03_SELECT_INPUT (IMXRT_IOMUXC_b.offset004)
  4893. #define IOMUXC_CSI_DATA04_SELECT_INPUT (IMXRT_IOMUXC_b.offset008)
  4894. #define IOMUXC_CSI_DATA05_SELECT_INPUT (IMXRT_IOMUXC_b.offset00C)
  4895. #define IOMUXC_CSI_DATA06_SELECT_INPUT (IMXRT_IOMUXC_b.offset010)
  4896. #define IOMUXC_CSI_DATA07_SELECT_INPUT (IMXRT_IOMUXC_b.offset014)
  4897. #define IOMUXC_CSI_DATA08_SELECT_INPUT (IMXRT_IOMUXC_b.offset018)
  4898. #define IOMUXC_CSI_DATA09_SELECT_INPUT (IMXRT_IOMUXC_b.offset01C)
  4899. #define IOMUXC_CSI_HSYNC_SELECT_INPUT (IMXRT_IOMUXC_b.offset020)
  4900. #define IOMUXC_CSI_PIXCLK_SELECT_INPUT (IMXRT_IOMUXC_b.offset024)
  4901. #define IOMUXC_CSI_VSYNC_SELECT_INPUT (IMXRT_IOMUXC_b.offset028)
  4902. #define IOMUXC_ENET_IPG_CLK_RMII_SELECT_INPUT (IMXRT_IOMUXC_b.offset02C)
  4903. #define IOMUXC_ENET_MDIO_SELECT_INPUT (IMXRT_IOMUXC_b.offset030)
  4904. #define IOMUXC_ENET0_RXDATA_SELECT_INPUT (IMXRT_IOMUXC_b.offset034)
  4905. #define IOMUXC_ENET1_RXDATA_SELECT_INPUT (IMXRT_IOMUXC_b.offset038)
  4906. #define IOMUXC_ENET_RXEN_SELECT_INPUT (IMXRT_IOMUXC_b.offset03C)
  4907. #define IOMUXC_ENET_RXERR_SELECT_INPUT (IMXRT_IOMUXC_b.offset040)
  4908. #define IOMUXC_ENET0_TIMER_SELECT_INPUT (IMXRT_IOMUXC_b.offset044)
  4909. #define IOMUXC_ENET_TXCLK_SELECT_INPUT (IMXRT_IOMUXC_b.offset048)
  4910. #define IOMUXC_FLEXCAN1_RX_SELECT_INPUT (IMXRT_IOMUXC_b.offset04C)
  4911. #define IOMUXC_FLEXCAN2_RX_SELECT_INPUT (IMXRT_IOMUXC_b.offset050)
  4912. #define IOMUXC_FLEXPWM1_PWMA3_SELECT_INPUT (IMXRT_IOMUXC_b.offset054)
  4913. #define IOMUXC_FLEXPWM1_PWMA0_SELECT_INPUT (IMXRT_IOMUXC_b.offset058)
  4914. #define IOMUXC_FLEXPWM1_PWMA1_SELECT_INPUT (IMXRT_IOMUXC_b.offset05C)
  4915. #define IOMUXC_FLEXPWM1_PWMA2_SELECT_INPUT (IMXRT_IOMUXC_b.offset060)
  4916. #define IOMUXC_FLEXPWM1_PWMB3_SELECT_INPUT (IMXRT_IOMUXC_b.offset064)
  4917. #define IOMUXC_FLEXPWM1_PWMB0_SELECT_INPUT (IMXRT_IOMUXC_b.offset068)
  4918. #define IOMUXC_FLEXPWM1_PWMB1_SELECT_INPUT (IMXRT_IOMUXC_b.offset06C)
  4919. #define IOMUXC_FLEXPWM1_PWMB2_SELECT_INPUT (IMXRT_IOMUXC_b.offset070)
  4920. #define IOMUXC_FLEXPWM2_PWMA3_SELECT_INPUT (IMXRT_IOMUXC_b.offset074)
  4921. #define IOMUXC_FLEXPWM2_PWMA0_SELECT_INPUT (IMXRT_IOMUXC_b.offset078)
  4922. #define IOMUXC_FLEXPWM2_PWMA1_SELECT_INPUT (IMXRT_IOMUXC_b.offset07C)
  4923. #define IOMUXC_FLEXPWM2_PWMA2_SELECT_INPUT (IMXRT_IOMUXC_b.offset080)
  4924. #define IOMUXC_FLEXPWM2_PWMB3_SELECT_INPUT (IMXRT_IOMUXC_b.offset084)
  4925. #define IOMUXC_FLEXPWM2_PWMB0_SELECT_INPUT (IMXRT_IOMUXC_b.offset088)
  4926. #define IOMUXC_FLEXPWM2_PWMB1_SELECT_INPUT (IMXRT_IOMUXC_b.offset09C)
  4927. #define IOMUXC_FLEXPWM2_PWMB2_SELECT_INPUT (IMXRT_IOMUXC_b.offset090)
  4928. #define IOMUXC_FLEXPWM4_PWMA0_SELECT_INPUT (IMXRT_IOMUXC_b.offset094)
  4929. #define IOMUXC_FLEXPWM4_PWMA1_SELECT_INPUT (IMXRT_IOMUXC_b.offset098)
  4930. #define IOMUXC_FLEXPWM4_PWMA2_SELECT_INPUT (IMXRT_IOMUXC_b.offset09C)
  4931. #define IOMUXC_FLEXPWM4_PWMA3_SELECT_INPUT (IMXRT_IOMUXC_b.offset0A0)
  4932. #define IOMUXC_FLEXSPIA_DQS_SELECT_INPUT (IMXRT_IOMUXC_b.offset0A4)
  4933. #define IOMUXC_FLEXSPIA_DATA0_SELECT_INPUT (IMXRT_IOMUXC_b.offset0A8)
  4934. #define IOMUXC_FLEXSPIA_DATA1_SELECT_INPUT (IMXRT_IOMUXC_b.offset0AC)
  4935. #define IOMUXC_FLEXSPIA_DATA2_SELECT_INPUT (IMXRT_IOMUXC_b.offset0B0)
  4936. #define IOMUXC_FLEXSPIA_DATA3_SELECT_INPUT (IMXRT_IOMUXC_b.offset0B4)
  4937. #define IOMUXC_FLEXSPIB_DATA0_SELECT_INPUT (IMXRT_IOMUXC_b.offset0B8)
  4938. #define IOMUXC_FLEXSPIB_DATA1_SELECT_INPUT (IMXRT_IOMUXC_b.offset0BC)
  4939. #define IOMUXC_FLEXSPIB_DATA2_SELECT_INPUT (IMXRT_IOMUXC_b.offset0C0)
  4940. #define IOMUXC_FLEXSPIB_DATA3_SELECT_INPUT (IMXRT_IOMUXC_b.offset0C4)
  4941. #define IOMUXC_FLEXSPIA_SCK_SELECT_INPUT (IMXRT_IOMUXC_b.offset0C8)
  4942. #define IOMUXC_LPI2C1_SCL_SELECT_INPUT (IMXRT_IOMUXC_b.offset0CC)
  4943. #define IOMUXC_LPI2C1_SDA_SELECT_INPUT (IMXRT_IOMUXC_b.offset0D0)
  4944. #define IOMUXC_LPI2C2_SCL_SELECT_INPUT (IMXRT_IOMUXC_b.offset0D4)
  4945. #define IOMUXC_LPI2C2_SDA_SELECT_INPUT (IMXRT_IOMUXC_b.offset0D8)
  4946. #define IOMUXC_LPI2C3_SCL_SELECT_INPUT (IMXRT_IOMUXC_b.offset0DC)
  4947. #define IOMUXC_LPI2C3_SDA_SELECT_INPUT (IMXRT_IOMUXC_b.offset0E0)
  4948. #define IOMUXC_LPI2C4_SCL_SELECT_INPUT (IMXRT_IOMUXC_b.offset0E4)
  4949. #define IOMUXC_LPI2C4_SDA_SELECT_INPUT (IMXRT_IOMUXC_b.offset0E8)
  4950. #define IOMUXC_LPSPI1_PCS0_SELECT_INPUT (IMXRT_IOMUXC_b.offset0EC)
  4951. #define IOMUXC_LPSPI1_SCK_SELECT_INPUT (IMXRT_IOMUXC_b.offset0F0)
  4952. #define IOMUXC_LPSPI1_SDI_SELECT_INPUT (IMXRT_IOMUXC_b.offset0F4)
  4953. #define IOMUXC_LPSPI1_SDO_SELECT_INPUT (IMXRT_IOMUXC_b.offset0F8)
  4954. #define IOMUXC_LPSPI2_PCS0_SELECT_INPUT (IMXRT_IOMUXC_b.offset0FC)
  4955. #define IOMUXC_LPSPI2_SCK_SELECT_INPUT (IMXRT_IOMUXC_b.offset100)
  4956. #define IOMUXC_LPSPI2_SDI_SELECT_INPUT (IMXRT_IOMUXC_b.offset104)
  4957. #define IOMUXC_LPSPI2_SDO_SELECT_INPUT (IMXRT_IOMUXC_b.offset108)
  4958. #define IOMUXC_LPSPI3_PCS0_SELECT_INPUT (IMXRT_IOMUXC_b.offset10C)
  4959. #define IOMUXC_LPSPI3_SCK_SELECT_INPUT (IMXRT_IOMUXC_b.offset110)
  4960. #define IOMUXC_LPSPI3_SDI_SELECT_INPUT (IMXRT_IOMUXC_b.offset114)
  4961. #define IOMUXC_LPSPI3_SDO_SELECT_INPUT (IMXRT_IOMUXC_b.offset118)
  4962. #define IOMUXC_LPSPI4_PCS0_SELECT_INPUT (IMXRT_IOMUXC_b.offset11C)
  4963. #define IOMUXC_LPSPI4_SCK_SELECT_INPUT (IMXRT_IOMUXC_b.offset120)
  4964. #define IOMUXC_LPSPI4_SDI_SELECT_INPUT (IMXRT_IOMUXC_b.offset124)
  4965. #define IOMUXC_LPSPI4_SDO_SELECT_INPUT (IMXRT_IOMUXC_b.offset128)
  4966. #define IOMUXC_LPUART2_RX_SELECT_INPUT (IMXRT_IOMUXC_b.offset12C)
  4967. #define IOMUXC_LPUART2_TX_SELECT_INPUT (IMXRT_IOMUXC_b.offset130)
  4968. #define IOMUXC_LPUART3_CTS_B_SELECT_INPUT (IMXRT_IOMUXC_b.offset134)
  4969. #define IOMUXC_LPUART3_RX_SELECT_INPUT (IMXRT_IOMUXC_b.offset138)
  4970. #define IOMUXC_LPUART3_TX_SELECT_INPUT (IMXRT_IOMUXC_b.offset13C)
  4971. #define IOMUXC_LPUART4_RX_SELECT_INPUT (IMXRT_IOMUXC_b.offset140)
  4972. #define IOMUXC_LPUART4_TX_SELECT_INPUT (IMXRT_IOMUXC_b.offset144)
  4973. #define IOMUXC_LPUART5_RX_SELECT_INPUT (IMXRT_IOMUXC_b.offset148)
  4974. #define IOMUXC_LPUART5_TX_SELECT_INPUT (IMXRT_IOMUXC_b.offset14C)
  4975. #define IOMUXC_LPUART6_RX_SELECT_INPUT (IMXRT_IOMUXC_b.offset150)
  4976. #define IOMUXC_LPUART6_TX_SELECT_INPUT (IMXRT_IOMUXC_b.offset154)
  4977. #define IOMUXC_LPUART7_RX_SELECT_INPUT (IMXRT_IOMUXC_b.offset158)
  4978. #define IOMUXC_LPUART7_TX_SELECT_INPUT (IMXRT_IOMUXC_b.offset15C)
  4979. #define IOMUXC_LPUART8_RX_SELECT_INPUT (IMXRT_IOMUXC_b.offset160)
  4980. #define IOMUXC_LPUART8_TX_SELECT_INPUT (IMXRT_IOMUXC_b.offset164)
  4981. #define IOMUXC_NMI_GLUE_NMI_SELECT_INPUT (IMXRT_IOMUXC_b.offset168)
  4982. #define IOMUXC_QTIMER2_TIMER0_SELECT_INPUT (IMXRT_IOMUXC_b.offset16C)
  4983. #define IOMUXC_QTIMER2_TIMER1_SELECT_INPUT (IMXRT_IOMUXC_b.offset170)
  4984. #define IOMUXC_QTIMER2_TIMER2_SELECT_INPUT (IMXRT_IOMUXC_b.offset174)
  4985. #define IOMUXC_QTIMER2_TIMER3_SELECT_INPUT (IMXRT_IOMUXC_b.offset178)
  4986. #define IOMUXC_QTIMER3_TIMER0_SELECT_INPUT (IMXRT_IOMUXC_b.offset17C)
  4987. #define IOMUXC_QTIMER3_TIMER1_SELECT_INPUT (IMXRT_IOMUXC_b.offset180)
  4988. #define IOMUXC_QTIMER3_TIMER2_SELECT_INPUT (IMXRT_IOMUXC_b.offset184)
  4989. #define IOMUXC_QTIMER3_TIMER3_SELECT_INPUT (IMXRT_IOMUXC_b.offset188)
  4990. #define IOMUXC_SAI1_MCLK2_SELECT_INPUT (IMXRT_IOMUXC_b.offset18C)
  4991. #define IOMUXC_SAI1_RX_BCLK_SELECT_INPUT (IMXRT_IOMUXC_b.offset190)
  4992. #define IOMUXC_SAI1_RX_DATA0_SELECT_INPUT (IMXRT_IOMUXC_b.offset194)
  4993. #define IOMUXC_SAI1_RX_DATA1_SELECT_INPUT (IMXRT_IOMUXC_b.offset198)
  4994. #define IOMUXC_SAI1_RX_DATA2_SELECT_INPUT (IMXRT_IOMUXC_b.offset19C)
  4995. #define IOMUXC_SAI1_RX_DATA3_SELECT_INPUT (IMXRT_IOMUXC_b.offset1A0)
  4996. #define IOMUXC_SAI1_RX_SYNC_SELECT_INPUT (IMXRT_IOMUXC_b.offset1A4)
  4997. #define IOMUXC_SAI1_TX_BCLK_SELECT_INPUT (IMXRT_IOMUXC_b.offset1A8)
  4998. #define IOMUXC_SAI1_TX_SYNC_SELECT_INPUT (IMXRT_IOMUXC_b.offset1AC)
  4999. #define IOMUXC_SAI2_MCLK2_SELECT_INPUT (IMXRT_IOMUXC_b.offset1B0)
  5000. #define IOMUXC_SAI2_RX_BCLK_SELECT_INPUT (IMXRT_IOMUXC_b.offset1B4)
  5001. #define IOMUXC_SAI2_RX_DATA0_SELECT_INPUT (IMXRT_IOMUXC_b.offset1B8)
  5002. #define IOMUXC_SAI2_RX_SYNC_SELECT_INPUT (IMXRT_IOMUXC_b.offset1BC)
  5003. #define IOMUXC_SAI2_TX_BCLK_SELECT_INPUT (IMXRT_IOMUXC_b.offset1C0)
  5004. #define IOMUXC_SAI2_TX_SYNC_SELECT_INPUT (IMXRT_IOMUXC_b.offset1C4)
  5005. #define IOMUXC_SPDIF_IN_SELECT_INPUT (IMXRT_IOMUXC_b.offset1C8)
  5006. #define IOMUXC_USB_OTG2_OC_SELECT_INPUT (IMXRT_IOMUXC_b.offset1CC)
  5007. #define IOMUXC_USB_OTG1_OC_SELECT_INPUT (IMXRT_IOMUXC_b.offset1D0)
  5008. #define IOMUXC_USDHC1_CD_B_SELECT_INPUT (IMXRT_IOMUXC_b.offset1D4)
  5009. #define IOMUXC_USDHC1_WP_SELECT_INPUT (IMXRT_IOMUXC_b.offset1D8)
  5010. #define IOMUXC_USDHC2_CLK_SELECT_INPUT (IMXRT_IOMUXC_b.offset1DC)
  5011. #define IOMUXC_USDHC2_CD_B_SELECT_INPUT (IMXRT_IOMUXC_b.offset1E0)
  5012. #define IOMUXC_USDHC2_CMD_SELECT_INPUT (IMXRT_IOMUXC_b.offset1E4)
  5013. #define IOMUXC_USDHC2_DATA0_SELECT_INPUT (IMXRT_IOMUXC_b.offset1E8)
  5014. #define IOMUXC_USDHC2_DATA1_SELECT_INPUT (IMXRT_IOMUXC_b.offset1EC)
  5015. #define IOMUXC_USDHC2_DATA2_SELECT_INPUT (IMXRT_IOMUXC_b.offset1F0)
  5016. #define IOMUXC_USDHC2_DATA3_SELECT_INPUT (IMXRT_IOMUXC_b.offset1F4)
  5017. #define IOMUXC_USDHC2_DATA4_SELECT_INPUT (IMXRT_IOMUXC_b.offset1F8)
  5018. #define IOMUXC_USDHC2_DATA5_SELECT_INPUT (IMXRT_IOMUXC_b.offset1FC)
  5019. #define IOMUXC_USDHC2_DATA6_SELECT_INPUT (IMXRT_IOMUXC_b.offset200)
  5020. #define IOMUXC_USDHC2_DATA7_SELECT_INPUT (IMXRT_IOMUXC_b.offset204)
  5021. #define IOMUXC_USDHC2_WP_SELECT_INPUT (IMXRT_IOMUXC_b.offset208)
  5022. #define IOMUXC_XBAR1_IN02_SELECT_INPUT (IMXRT_IOMUXC_b.offset20C)
  5023. #define IOMUXC_XBAR1_IN03_SELECT_INPUT (IMXRT_IOMUXC_b.offset210)
  5024. #define IOMUXC_XBAR1_IN04_SELECT_INPUT (IMXRT_IOMUXC_b.offset214)
  5025. #define IOMUXC_XBAR1_IN05_SELECT_INPUT (IMXRT_IOMUXC_b.offset218)
  5026. #define IOMUXC_XBAR1_IN06_SELECT_INPUT (IMXRT_IOMUXC_b.offset21C)
  5027. #define IOMUXC_XBAR1_IN07_SELECT_INPUT (IMXRT_IOMUXC_b.offset220)
  5028. #define IOMUXC_XBAR1_IN08_SELECT_INPUT (IMXRT_IOMUXC_b.offset224)
  5029. #define IOMUXC_XBAR1_IN09_SELECT_INPUT (IMXRT_IOMUXC_b.offset228)
  5030. #define IOMUXC_XBAR1_IN17_SELECT_INPUT (IMXRT_IOMUXC_b.offset22C)
  5031. #define IOMUXC_XBAR1_IN18_SELECT_INPUT (IMXRT_IOMUXC_b.offset230)
  5032. #define IOMUXC_XBAR1_IN20_SELECT_INPUT (IMXRT_IOMUXC_b.offset234)
  5033. #define IOMUXC_XBAR1_IN22_SELECT_INPUT (IMXRT_IOMUXC_b.offset238)
  5034. #define IOMUXC_XBAR1_IN23_SELECT_INPUT (IMXRT_IOMUXC_b.offset23C)
  5035. #define IOMUXC_XBAR1_IN24_SELECT_INPUT (IMXRT_IOMUXC_b.offset240)
  5036. #define IOMUXC_XBAR1_IN14_SELECT_INPUT (IMXRT_IOMUXC_b.offset244)
  5037. #define IOMUXC_XBAR1_IN15_SELECT_INPUT (IMXRT_IOMUXC_b.offset248)
  5038. #define IOMUXC_XBAR1_IN16_SELECT_INPUT (IMXRT_IOMUXC_b.offset24C)
  5039. #define IOMUXC_XBAR1_IN25_SELECT_INPUT (IMXRT_IOMUXC_b.offset250)
  5040. #define IOMUXC_XBAR1_IN19_SELECT_INPUT (IMXRT_IOMUXC_b.offset254)
  5041. #define IOMUXC_XBAR1_IN21_SELECT_INPUT (IMXRT_IOMUXC_b.offset258)
  5042. #define IOMUXC_PAD_SRE ((uint32_t)(1<<0))
  5043. #define IOMUXC_PAD_DSE(n) ((uint32_t)(((n) & 0x07) << 3))
  5044. #define IOMUXC_PAD_SPEED(n) ((uint32_t)(((n) & 0x03) << 6))
  5045. #define IOMUXC_PAD_ODE ((uint32_t)(1<<11))
  5046. #define IOMUXC_PAD_PKE ((uint32_t)(1<<12))
  5047. #define IOMUXC_PAD_PUE ((uint32_t)(1<<13))
  5048. #define IOMUXC_PAD_PUS(n) ((uint32_t)(((n) & 0x03) << 14))
  5049. #define IOMUXC_PAD_HYS ((uint32_t)(1<<16))
  5050. // 35.6: page 2301
  5051. #define IMXRT_KPP (*(IMXRT_REGISTER16_t *)0x401FC000)
  5052. #define KPP_KPCR (IMXRT_KPP.offset000)
  5053. #define KPP_KPSR (IMXRT_KPP.offset002)
  5054. #define KPP_KDDR (IMXRT_KPP.offset004)
  5055. #define KPP_KPDR (IMXRT_KPP.offset006)
  5056. // 36.4: page 2325
  5057. #define IMXRT_LCDIF (*(IMXRT_REGISTER32_t *)0x402B8000)
  5058. #define LCDIF_CTRL (IMXRT_LCDIF.offset000)
  5059. #define LCDIF_CTRL_SET (IMXRT_LCDIF.offset004)
  5060. #define LCDIF_CTRL_CLR (IMXRT_LCDIF.offset008)
  5061. #define LCDIF_CTRL_TOG (IMXRT_LCDIF.offset00C)
  5062. #define LCDIF_CTRL1 (IMXRT_LCDIF.offset010)
  5063. #define LCDIF_CTRL1_SET (IMXRT_LCDIF.offset014)
  5064. #define LCDIF_CTRL1_CLR (IMXRT_LCDIF.offset018)
  5065. #define LCDIF_CTRL1_TOG (IMXRT_LCDIF.offset01C)
  5066. #define LCDIF_CTRL2 (IMXRT_LCDIF.offset020)
  5067. #define LCDIF_CTRL2_SET (IMXRT_LCDIF.offset024)
  5068. #define LCDIF_CTRL2_CLR (IMXRT_LCDIF.offset028)
  5069. #define LCDIF_CTRL2_TOG (IMXRT_LCDIF.offset02C)
  5070. #define LCDIF_TRANSFER_COUNT (IMXRT_LCDIF.offset030)
  5071. #define LCDIF_CUR_BUF (IMXRT_LCDIF.offset040)
  5072. #define LCDIF_NEXT_BUF (IMXRT_LCDIF.offset050)
  5073. #define LCDIF_VDCTRL0 (IMXRT_LCDIF.offset070)
  5074. #define LCDIF_VDCTRL0_SET (IMXRT_LCDIF.offset074)
  5075. #define LCDIF_VDCTRL0_CLR (IMXRT_LCDIF.offset078)
  5076. #define LCDIF_VDCTRL0_TOG (IMXRT_LCDIF.offset07C)
  5077. #define LCDIF_VDCTRL1 (IMXRT_LCDIF.offset080)
  5078. #define LCDIF_VDCTRL2 (IMXRT_LCDIF.offset090)
  5079. #define LCDIF_VDCTRL3 (IMXRT_LCDIF.offset0A0)
  5080. #define LCDIF_VDCTRL4 (IMXRT_LCDIF.offset0B0)
  5081. #define LCDIF_BM_ERROR_STAT (IMXRT_LCDIF.offset190)
  5082. #define LCDIF_CRC_STAT (IMXRT_LCDIF.offset1A0)
  5083. #define LCDIF_STAT (IMXRT_LCDIF.offset1B0)
  5084. #define LCDIF_THRES (IMXRT_LCDIF.offset200)
  5085. #define LCDIF_AS_CTRL (IMXRT_LCDIF.offset210)
  5086. #define LCDIF_AS_BUF (IMXRT_LCDIF.offset220)
  5087. #define LCDIF_AS_NEXT_BUF (IMXRT_LCDIF.offset230)
  5088. #define LCDIF_AS_CLRKEYLOW (IMXRT_LCDIF.offset240)
  5089. #define LCDIF_AS_CLRKEYHIGH (IMXRT_LCDIF.offset250)
  5090. #define LCDIF_PIGEONCTRL0 (IMXRT_LCDIF.offset380)
  5091. #define LCDIF_PIGEONCTRL0_SET (IMXRT_LCDIF.offset384)
  5092. #define LCDIF_PIGEONCTRL0_CLR (IMXRT_LCDIF.offset388)
  5093. #define LCDIF_PIGEONCTRL0_TOG (IMXRT_LCDIF.offset38C)
  5094. #define LCDIF_PIGEONCTRL1 (IMXRT_LCDIF.offset390)
  5095. #define LCDIF_PIGEONCTRL1_SET (IMXRT_LCDIF.offset394)
  5096. #define LCDIF_PIGEONCTRL1_CLR (IMXRT_LCDIF.offset398)
  5097. #define LCDIF_PIGEONCTRL1_TOG (IMXRT_LCDIF.offset39C)
  5098. #define LCDIF_PIGEONCTRL2 (IMXRT_LCDIF.offset3A0)
  5099. #define LCDIF_PIGEONCTRL2_SET (IMXRT_LCDIF.offset3A4)
  5100. #define LCDIF_PIGEONCTRL2_CLR (IMXRT_LCDIF.offset3A8)
  5101. #define LCDIF_PIGEONCTRL2_TOG (IMXRT_LCDIF.offset3AC)
  5102. #define IMXRT_LCDIF_b (*(IMXRT_REGISTER32_t *)0x402B8800)
  5103. #define LCDIF_PIGEON_0_0 (IMXRT_LCDIF_b.offset000)
  5104. #define LCDIF_PIGEON_0_1 (IMXRT_LCDIF_b.offset010)
  5105. #define LCDIF_PIGEON_0_2 (IMXRT_LCDIF_b.offset020)
  5106. #define LCDIF_PIGEON_1_0 (IMXRT_LCDIF_b.offset040)
  5107. #define LCDIF_PIGEON_1_1 (IMXRT_LCDIF_b.offset050)
  5108. #define LCDIF_PIGEON_1_2 (IMXRT_LCDIF_b.offset060)
  5109. #define LCDIF_PIGEON_2_0 (IMXRT_LCDIF_b.offset080)
  5110. #define LCDIF_PIGEON_2_1 (IMXRT_LCDIF_b.offset090)
  5111. #define LCDIF_PIGEON_2_2 (IMXRT_LCDIF_b.offset0A0)
  5112. #define LCDIF_PIGEON_3_0 (IMXRT_LCDIF_b.offset0C0)
  5113. #define LCDIF_PIGEON_3_1 (IMXRT_LCDIF_b.offset0D0)
  5114. #define LCDIF_PIGEON_3_2 (IMXRT_LCDIF_b.offset0E0)
  5115. #define LCDIF_PIGEON_4_0 (IMXRT_LCDIF_b.offset100)
  5116. #define LCDIF_PIGEON_4_1 (IMXRT_LCDIF_b.offset110)
  5117. #define LCDIF_PIGEON_4_2 (IMXRT_LCDIF_b.offset120)
  5118. #define LCDIF_PIGEON_5_0 (IMXRT_LCDIF_b.offset140)
  5119. #define LCDIF_PIGEON_5_1 (IMXRT_LCDIF_b.offset150)
  5120. #define LCDIF_PIGEON_5_2 (IMXRT_LCDIF_b.offset160)
  5121. #define LCDIF_PIGEON_6_0 (IMXRT_LCDIF_b.offset180)
  5122. #define LCDIF_PIGEON_6_1 (IMXRT_LCDIF_b.offset190)
  5123. #define LCDIF_PIGEON_6_2 (IMXRT_LCDIF_b.offset1A0)
  5124. #define LCDIF_PIGEON_7_0 (IMXRT_LCDIF_b.offset1C0)
  5125. #define LCDIF_PIGEON_7_1 (IMXRT_LCDIF_b.offset1D0)
  5126. #define LCDIF_PIGEON_7_2 (IMXRT_LCDIF_b.offset1E0)
  5127. #define LCDIF_PIGEON_8_0 (IMXRT_LCDIF_b.offset200)
  5128. #define LCDIF_PIGEON_8_1 (IMXRT_LCDIF_b.offset210)
  5129. #define LCDIF_PIGEON_8_2 (IMXRT_LCDIF_b.offset220)
  5130. #define LCDIF_PIGEON_9_0 (IMXRT_LCDIF_b.offset240)
  5131. #define LCDIF_PIGEON_9_1 (IMXRT_LCDIF_b.offset250)
  5132. #define LCDIF_PIGEON_9_2 (IMXRT_LCDIF_b.offset260)
  5133. #define LCDIF_PIGEON_10_0 (IMXRT_LCDIF_b.offset280)
  5134. #define LCDIF_PIGEON_10_1 (IMXRT_LCDIF_b.offset290)
  5135. #define LCDIF_PIGEON_10_2 (IMXRT_LCDIF_b.offset2A0)
  5136. #define LCDIF_PIGEON_11_0 (IMXRT_LCDIF_b.offset2C0)
  5137. #define LCDIF_PIGEON_11_1 (IMXRT_LCDIF_b.offset2D0)
  5138. #define LCDIF_PIGEON_11_2 (IMXRT_LCDIF_b.offset2E0)
  5139. // 37.4: page 2371
  5140. typedef struct {
  5141. const uint32_t VERID;
  5142. const uint32_t PARAM;
  5143. const uint32_t unused1;
  5144. const uint32_t unused2;
  5145. volatile uint32_t MCR; // 010
  5146. volatile uint32_t MSR; // 014
  5147. volatile uint32_t MIER; // 018
  5148. volatile uint32_t MDER; // 01C
  5149. volatile uint32_t MCFGR0; // 020
  5150. volatile uint32_t MCFGR1; // 024
  5151. volatile uint32_t MCFGR2; // 028
  5152. volatile uint32_t MCFGR3; // 02C
  5153. volatile uint32_t unused3[4];
  5154. volatile uint32_t MDMR; // 040
  5155. volatile uint32_t unused4;
  5156. volatile uint32_t MCCR0; // 048
  5157. volatile uint32_t unused5;
  5158. volatile uint32_t MCCR1; // 050
  5159. volatile uint32_t unused6;
  5160. volatile uint32_t MFCR; // 058
  5161. volatile uint32_t MFSR; // 05C
  5162. volatile uint32_t MTDR; // 060
  5163. volatile uint32_t unused7[3];
  5164. volatile uint32_t MRDR; // 070
  5165. volatile uint32_t unused8[39];
  5166. volatile uint32_t SCR; // 110
  5167. volatile uint32_t SSR; // 114
  5168. volatile uint32_t SIER; // 118
  5169. volatile uint32_t SDER; // 11C
  5170. volatile uint32_t unused9;
  5171. volatile uint32_t SCFGR1; // 124
  5172. volatile uint32_t SCFGR2; // 128
  5173. volatile uint32_t unused10[5];
  5174. volatile uint32_t SAMR; // 140
  5175. volatile uint32_t unused11[3];
  5176. volatile uint32_t SASR; // 150
  5177. volatile uint32_t unused12[3];
  5178. volatile uint32_t STAR; // 154
  5179. volatile uint32_t unused13[3];
  5180. volatile uint32_t STDR; // 160
  5181. volatile uint32_t unused14[3];
  5182. volatile uint32_t SRDR; // 170
  5183. } IMXRT_LPI2C_t;
  5184. #define IMXRT_LPI2C1 (*(IMXRT_LPI2C_t *)0x403F0000)
  5185. #define LPI2C1_VERID (IMXRT_LPI2C1.VERID)
  5186. #define LPI2C1_PARAM (IMXRT_LPI2C1.PARAM)
  5187. #define LPI2C1_MCR (IMXRT_LPI2C1.MCR)
  5188. #define LPI2C1_MSR (IMXRT_LPI2C1.MSR)
  5189. #define LPI2C1_MIER (IMXRT_LPI2C1.MIER)
  5190. #define LPI2C1_MDER (IMXRT_LPI2C1.MDER)
  5191. #define LPI2C1_MCFGR0 (IMXRT_LPI2C1.MCFGR0)
  5192. #define LPI2C1_MCFGR1 (IMXRT_LPI2C1.MCFGR1)
  5193. #define LPI2C1_MCFGR2 (IMXRT_LPI2C1.MCFGR2)
  5194. #define LPI2C1_MCFGR3 (IMXRT_LPI2C1.MCFGR3)
  5195. #define LPI2C1_MDMR (IMXRT_LPI2C1.MDMR)
  5196. #define LPI2C1_MCCR0 (IMXRT_LPI2C1.MCCR0)
  5197. #define LPI2C1_MCCR1 (IMXRT_LPI2C1.MCCR1)
  5198. #define LPI2C1_MFCR (IMXRT_LPI2C1.MFCR)
  5199. #define LPI2C1_MFSR (IMXRT_LPI2C1.MFSR)
  5200. #define LPI2C1_MTDR (IMXRT_LPI2C1.MTDR)
  5201. #define LPI2C1_MRDR (IMXRT_LPI2C1.MRDR)
  5202. #define LPI2C1_SCR (IMXRT_LPI2C1.SCR)
  5203. #define LPI2C1_SSR (IMXRT_LPI2C1.SSR)
  5204. #define LPI2C1_SIER (IMXRT_LPI2C1.SIER)
  5205. #define LPI2C1_SDER (IMXRT_LPI2C1.SDER)
  5206. #define LPI2C1_SCFGR1 (IMXRT_LPI2C1.SCFGR1)
  5207. #define LPI2C1_SCFGR2 (IMXRT_LPI2C1.SCFGR2)
  5208. #define LPI2C1_SAMR (IMXRT_LPI2C1.SAMR)
  5209. #define LPI2C1_SASR (IMXRT_LPI2C1.SASR)
  5210. #define LPI2C1_STAR (IMXRT_LPI2C1.STAR)
  5211. #define LPI2C1_STDR (IMXRT_LPI2C1.STDR)
  5212. #define LPI2C1_SRDR (IMXRT_LPI2C1.SRDR)
  5213. #define IMXRT_LPI2C2 (*(IMXRT_LPI2C_t *)0x403F4000)
  5214. #define LPI2C2_VERID (IMXRT_LPI2C2.VERID)
  5215. #define LPI2C2_PARAM (IMXRT_LPI2C2.PARAM)
  5216. #define LPI2C2_MCR (IMXRT_LPI2C2.MCR)
  5217. #define LPI2C2_MSR (IMXRT_LPI2C2.MSR)
  5218. #define LPI2C2_MIER (IMXRT_LPI2C2.MIER)
  5219. #define LPI2C2_MDER (IMXRT_LPI2C2.MDER)
  5220. #define LPI2C2_MCFGR0 (IMXRT_LPI2C2.MCFGR0)
  5221. #define LPI2C2_MCFGR1 (IMXRT_LPI2C2.MCFGR1)
  5222. #define LPI2C2_MCFGR2 (IMXRT_LPI2C2.MCFGR2)
  5223. #define LPI2C2_MCFGR3 (IMXRT_LPI2C2.MCFGR3)
  5224. #define LPI2C2_MDMR (IMXRT_LPI2C2.MDMR)
  5225. #define LPI2C2_MCCR0 (IMXRT_LPI2C2.MCCR0)
  5226. #define LPI2C2_MCCR1 (IMXRT_LPI2C2.MCCR1)
  5227. #define LPI2C2_MFCR (IMXRT_LPI2C2.MFCR)
  5228. #define LPI2C2_MFSR (IMXRT_LPI2C2.MFSR)
  5229. #define LPI2C2_MTDR (IMXRT_LPI2C2.MTDR)
  5230. #define LPI2C2_MRDR (IMXRT_LPI2C2.MRDR)
  5231. #define LPI2C2_SCR (IMXRT_LPI2C2.SCR)
  5232. #define LPI2C2_SSR (IMXRT_LPI2C2.SSR)
  5233. #define LPI2C2_SIER (IMXRT_LPI2C2.SIER)
  5234. #define LPI2C2_SDER (IMXRT_LPI2C2.SDER)
  5235. #define LPI2C2_SCFGR1 (IMXRT_LPI2C2.SCFGR1)
  5236. #define LPI2C2_SCFGR2 (IMXRT_LPI2C2.SCFGR2)
  5237. #define LPI2C2_SAMR (IMXRT_LPI2C2.SAMR)
  5238. #define LPI2C2_SASR (IMXRT_LPI2C2.SASR)
  5239. #define LPI2C2_STAR (IMXRT_LPI2C2.STAR)
  5240. #define LPI2C2_STDR (IMXRT_LPI2C2.STDR)
  5241. #define LPI2C2_SRDR (IMXRT_LPI2C2.SRDR)
  5242. #define IMXRT_LPI2C3 (*(IMXRT_LPI2C_t *)0x403F8000)
  5243. #define LPI2C3_VERID (IMXRT_LPI2C3.VERID)
  5244. #define LPI2C3_PARAM (IMXRT_LPI2C3.PARAM)
  5245. #define LPI2C3_MCR (IMXRT_LPI2C3.MCR)
  5246. #define LPI2C3_MSR (IMXRT_LPI2C3.MSR)
  5247. #define LPI2C3_MIER (IMXRT_LPI2C3.MIER)
  5248. #define LPI2C3_MDER (IMXRT_LPI2C3.MDER)
  5249. #define LPI2C3_MCFGR0 (IMXRT_LPI2C3.MCFGR0)
  5250. #define LPI2C3_MCFGR1 (IMXRT_LPI2C3.MCFGR1)
  5251. #define LPI2C3_MCFGR2 (IMXRT_LPI2C3.MCFGR2)
  5252. #define LPI2C3_MCFGR3 (IMXRT_LPI2C3.MCFGR3)
  5253. #define LPI2C3_MDMR (IMXRT_LPI2C3.MDMR)
  5254. #define LPI2C3_MCCR0 (IMXRT_LPI2C3.MCCR0)
  5255. #define LPI2C3_MCCR1 (IMXRT_LPI2C3.MCCR1)
  5256. #define LPI2C3_MFCR (IMXRT_LPI2C3.MFCR)
  5257. #define LPI2C3_MFSR (IMXRT_LPI2C3.MFSR)
  5258. #define LPI2C3_MTDR (IMXRT_LPI2C3.MTDR)
  5259. #define LPI2C3_MRDR (IMXRT_LPI2C3.MRDR)
  5260. #define LPI2C3_SCR (IMXRT_LPI2C3.SCR)
  5261. #define LPI2C3_SSR (IMXRT_LPI2C3.SSR)
  5262. #define LPI2C3_SIER (IMXRT_LPI2C3.SIER)
  5263. #define LPI2C3_SDER (IMXRT_LPI2C3.SDER)
  5264. #define LPI2C3_SCFGR1 (IMXRT_LPI2C3.SCFGR1)
  5265. #define LPI2C3_SCFGR2 (IMXRT_LPI2C3.SCFGR2)
  5266. #define LPI2C3_SAMR (IMXRT_LPI2C3.SAMR)
  5267. #define LPI2C3_SASR (IMXRT_LPI2C3.SASR)
  5268. #define LPI2C3_STAR (IMXRT_LPI2C3.STAR)
  5269. #define LPI2C3_STDR (IMXRT_LPI2C3.STDR)
  5270. #define LPI2C3_SRDR (IMXRT_LPI2C3.SRDR)
  5271. #define IMXRT_LPI2C4 (*(IMXRT_LPI2C_t *)0x403FC000)
  5272. #define LPI2C4_VERID (IMXRT_LPI2C4.VERID)
  5273. #define LPI2C4_PARAM (IMXRT_LPI2C4.PARAM)
  5274. #define LPI2C4_MCR (IMXRT_LPI2C4.MCR)
  5275. #define LPI2C4_MSR (IMXRT_LPI2C4.MSR)
  5276. #define LPI2C4_MIER (IMXRT_LPI2C4.MIER)
  5277. #define LPI2C4_MDER (IMXRT_LPI2C4.MDER)
  5278. #define LPI2C4_MCFGR0 (IMXRT_LPI2C4.MCFGR0)
  5279. #define LPI2C4_MCFGR1 (IMXRT_LPI2C4.MCFGR1)
  5280. #define LPI2C4_MCFGR2 (IMXRT_LPI2C4.MCFGR2)
  5281. #define LPI2C4_MCFGR3 (IMXRT_LPI2C4.MCFGR3)
  5282. #define LPI2C4_MDMR (IMXRT_LPI2C4.MDMR)
  5283. #define LPI2C4_MCCR0 (IMXRT_LPI2C4.MCCR0)
  5284. #define LPI2C4_MCCR1 (IMXRT_LPI2C4.MCCR1)
  5285. #define LPI2C4_MFCR (IMXRT_LPI2C4.MFCR)
  5286. #define LPI2C4_MFSR (IMXRT_LPI2C4.MFSR)
  5287. #define LPI2C4_MTDR (IMXRT_LPI2C4.MTDR)
  5288. #define LPI2C4_MRDR (IMXRT_LPI2C4.MRDR)
  5289. #define LPI2C4_SCR (IMXRT_LPI2C4.SCR)
  5290. #define LPI2C4_SSR (IMXRT_LPI2C4.SSR)
  5291. #define LPI2C4_SIER (IMXRT_LPI2C4.SIER)
  5292. #define LPI2C4_SDER (IMXRT_LPI2C4.SDER)
  5293. #define LPI2C4_SCFGR1 (IMXRT_LPI2C4.SCFGR1)
  5294. #define LPI2C4_SCFGR2 (IMXRT_LPI2C4.SCFGR2)
  5295. #define LPI2C4_SAMR (IMXRT_LPI2C4.SAMR)
  5296. #define LPI2C4_SASR (IMXRT_LPI2C4.SASR)
  5297. #define LPI2C4_STAR (IMXRT_LPI2C4.STAR)
  5298. #define LPI2C4_STDR (IMXRT_LPI2C4.STDR)
  5299. #define LPI2C4_SRDR (IMXRT_LPI2C4.SRDR)
  5300. #define LPI2C_MCR_RRF ((uint32_t)(1<<9))
  5301. #define LPI2C_MCR_RTF ((uint32_t)(1<<8))
  5302. #define LPI2C_MCR_DBGEN ((uint32_t)(1<<3))
  5303. #define LPI2C_MCR_DOZEN ((uint32_t)(1<<2))
  5304. #define LPI2C_MCR_RST ((uint32_t)(1<<1))
  5305. #define LPI2C_MCR_MEN ((uint32_t)(1<<0))
  5306. #define LPI2C_MSR_BBF ((uint32_t)(1<<25))
  5307. #define LPI2C_MSR_MBF ((uint32_t)(1<<24))
  5308. #define LPI2C_MSR_DMF ((uint32_t)(1<<14))
  5309. #define LPI2C_MSR_PLTF ((uint32_t)(1<<13))
  5310. #define LPI2C_MSR_FEF ((uint32_t)(1<<12))
  5311. #define LPI2C_MSR_ALF ((uint32_t)(1<<11))
  5312. #define LPI2C_MSR_NDF ((uint32_t)(1<<10))
  5313. #define LPI2C_MSR_SDF ((uint32_t)(1<<9))
  5314. #define LPI2C_MSR_EPF ((uint32_t)(1<<8))
  5315. #define LPI2C_MSR_RDF ((uint32_t)(1<<1))
  5316. #define LPI2C_MSR_TDF ((uint32_t)(1<<0))
  5317. #define LPI2C_MIER_DMIE ((uint32_t)(1<<14))
  5318. #define LPI2C_MIER_PLTIE ((uint32_t)(1<<13))
  5319. #define LPI2C_MIER_FEIE ((uint32_t)(1<<12))
  5320. #define LPI2C_MIER_ALIE ((uint32_t)(1<<11))
  5321. #define LPI2C_MIER_NDIE ((uint32_t)(1<<10))
  5322. #define LPI2C_MIER_SDIE ((uint32_t)(1<<9))
  5323. #define LPI2C_MIER_EPIE ((uint32_t)(1<<8))
  5324. #define LPI2C_MIER_RDIE ((uint32_t)(1<<1))
  5325. #define LPI2C_MIER_TDIE ((uint32_t)(1<<0))
  5326. #define LPI2C_MDER_RDDE ((uint32_t)(1<<1))
  5327. #define LPI2C_MDER_TDDE ((uint32_t)(1<<0))
  5328. #define LPI2C_MCFGR0_RDMO ((uint32_t)(1<<9))
  5329. #define LPI2C_MCFGR0_CIRFIFO ((uint32_t)(1<<8))
  5330. #define LPI2C_MCFGR0_HRSEL ((uint32_t)(1<<2))
  5331. #define LPI2C_MCFGR0_HRPOL ((uint32_t)(1<<1))
  5332. #define LPI2C_MCFGR0_HREN ((uint32_t)(1<<0))
  5333. #define LPI2C_MCFGR1_PINCFG(n) ((uint32_t)(((n) & 0x07) << 24))
  5334. #define LPI2C_MCFGR1_MATCFG(n) ((uint32_t)(((n) & 0x07) << 16))
  5335. #define LPI2C_MCFGR1_TIMECFG ((uint32_t)(1<<10))
  5336. #define LPI2C_MCFGR1_IGNACK ((uint32_t)(1<<9))
  5337. #define LPI2C_MCFGR1_AUTOSTOP ((uint32_t)(1<<8))
  5338. #define LPI2C_MCFGR1_PRESCALE(n) ((uint32_t)(((n) & 0x07) << 0))
  5339. #define LPI2C_MCFGR2_FILTSDA(n) ((uint32_t)(((n) & 0x0F) << 24))
  5340. #define LPI2C_MCFGR2_FILTSCL(n) ((uint32_t)(((n) & 0x0F) << 16))
  5341. #define LPI2C_MCFGR2_BUSIDLE(n) ((uint32_t)(((n) & 0xFFF) << 0))
  5342. #define LPI2C_MCFGR3_PINLOW(n) ((uint32_t)(((n) & 0xFFF) << 8))
  5343. #define LPI2C_MDMR_MATCH1(n) ((uint32_t)(((n) & 0xFF) << 16))
  5344. #define LPI2C_MDMR_MATCH0(n) ((uint32_t)(((n) & 0xFF) << 0))
  5345. #define LPI2C_MCCR0_DATAVD(n) ((uint32_t)(((n) & 0x3F) << 24))
  5346. #define LPI2C_MCCR0_SETHOLD(n) ((uint32_t)(((n) & 0x3F) << 16))
  5347. #define LPI2C_MCCR0_CLKHI(n) ((uint32_t)(((n) & 0x3F) << 8))
  5348. #define LPI2C_MCCR0_CLKLO(n) ((uint32_t)(((n) & 0x3F) << 0))
  5349. #define LPI2C_MCCR1_DATAVD(n) ((uint32_t)(((n) & 0x3F) << 24))
  5350. #define LPI2C_MCCR1_SETHOLD(n) ((uint32_t)(((n) & 0x3F) << 16))
  5351. #define LPI2C_MCCR1_CLKHI(n) ((uint32_t)(((n) & 0x3F) << 8))
  5352. #define LPI2C_MCCR1_CLKLO(n) ((uint32_t)(((n) & 0x3F) << 0))
  5353. #define LPI2C_MFCR_RXWATER(n) ((uint32_t)(((n) & 0x03) << 16))
  5354. #define LPI2C_MFCR_TXWATER(n) ((uint32_t)(((n) & 0x03) << 0))
  5355. #define LPI2C_MFSR_RXCOUNT(n) ((uint32_t)(((n) & 0x07) << 16))
  5356. #define LPI2C_MFSR_TXCOUNT(n) ((uint32_t)(((n) & 0x07) << 16))
  5357. #define LPI2C_MTDR_CMD(n) ((uint32_t)(((n) & 0x07) << 8))
  5358. #define LPI2C_MTDR_CMD_TRANSMIT ((uint32_t)(0 << 8))
  5359. #define LPI2C_MTDR_CMD_RECEIVE ((uint32_t)(1 << 8))
  5360. #define LPI2C_MTDR_CMD_STOP ((uint32_t)(2 << 8))
  5361. #define LPI2C_MTDR_CMD_DISCARD ((uint32_t)(3 << 8))
  5362. #define LPI2C_MTDR_CMD_START ((uint32_t)(4 << 8))
  5363. #define LPI2C_MTDR_CMD_START_NACK ((uint32_t)(5 << 8))
  5364. #define LPI2C_MTDR_CMD_HS_START ((uint32_t)(6 << 8))
  5365. #define LPI2C_MTDR_CMD_HS_START_NAcK ((uint32_t)(7 << 8))
  5366. #define LPI2C_MTDR_DATA(n) ((uint32_t)(((n) & 0xFF) << 0))
  5367. #define LPI2C_MRDR_RXEMPTY ((uint32_t)(1<<14))
  5368. #define LPI2C_MRDR_DATA(n) ((uint32_t)(((n) & 0xFF) << 0))
  5369. #define LPI2C_SCR_RRF ((uint32_t)(1<<9))
  5370. #define LPI2C_SCR_RTF ((uint32_t)(1<<8))
  5371. #define LPI2C_SCR_FILTDZ ((uint32_t)(1<<5))
  5372. #define LPI2C_SCR_FILTEN ((uint32_t)(1<<4))
  5373. #define LPI2C_SCR_RST ((uint32_t)(1<<1))
  5374. #define LPI2C_SCR_SEN ((uint32_t)(1<<0))
  5375. #define LPI2C_SSR_BBF ((uint32_t)(1<<25))
  5376. #define LPI2C_SSR_SBF ((uint32_t)(1<<24))
  5377. #define LPI2C_SSR_SARF ((uint32_t)(1<<15))
  5378. #define LPI2C_SSR_GCF ((uint32_t)(1<<14))
  5379. #define LPI2C_SSR_AM1F ((uint32_t)(1<<13))
  5380. #define LPI2C_SSR_AM0F ((uint32_t)(1<<12))
  5381. #define LPI2C_SSR_FEF ((uint32_t)(1<<11))
  5382. #define LPI2C_SSR_BEF ((uint32_t)(1<<10))
  5383. #define LPI2C_SSR_SDF ((uint32_t)(1<<9))
  5384. #define LPI2C_SSR_RSF ((uint32_t)(1<<8))
  5385. #define LPI2C_SSR_TAF ((uint32_t)(1<<3))
  5386. #define LPI2C_SSR_AVF ((uint32_t)(1<<2))
  5387. #define LPI2C_SSR_RDF ((uint32_t)(1<<1))
  5388. #define LPI2C_SSR_TDF ((uint32_t)(1<<0))
  5389. #define LPI2C_SIER_SARIE ((uint32_t)(1<<25))
  5390. #define LPI2C_SIER_GCIE ((uint32_t)(1<<24))
  5391. #define LPI2C_SIER_AM1F ((uint32_t)(1<<13))
  5392. #define LPI2C_SIER_AM0IE ((uint32_t)(1<<12))
  5393. #define LPI2C_SIER_FEIE ((uint32_t)(1<<11))
  5394. #define LPI2C_SIER_BEIE ((uint32_t)(1<<10))
  5395. #define LPI2C_SIER_SDIE ((uint32_t)(1<<9))
  5396. #define LPI2C_SIER_RSIE ((uint32_t)(1<<8))
  5397. #define LPI2C_SIER_TAIE ((uint32_t)(1<<3))
  5398. #define LPI2C_SIER_AVIE ((uint32_t)(1<<2))
  5399. #define LPI2C_SIER_RDIE ((uint32_t)(1<<1))
  5400. #define LPI2C_SIER_TDIE ((uint32_t)(1<<0))
  5401. #define LPI2C_SDER_AVDE ((uint32_t)(1<<2))
  5402. #define LPI2C_SDER_RDDE ((uint32_t)(1<<1))
  5403. #define LPI2C_SDER_TDDE ((uint32_t)(1<<0))
  5404. #define LPI2C_SCFGR1_ADDRCFG(n) ((uint32_t)(((n) & 0x07) << 16))
  5405. #define LPI2C_SCFGR1_HSMEN ((uint32_t)(1<<13))
  5406. #define LPI2C_SCFGR1_IGNACK ((uint32_t)(1<<12))
  5407. #define LPI2C_SCFGR1_RXCFG ((uint32_t)(1<<11))
  5408. #define LPI2C_SCFGR1_TXCFG ((uint32_t)(1<<10))
  5409. #define LPI2C_SCFGR1_SAEN ((uint32_t)(1<<9))
  5410. #define LPI2C_SCFGR1_GCEN ((uint32_t)(1<<8))
  5411. #define LPI2C_SCFGR1_ACKSTALL ((uint32_t)(1<<3))
  5412. #define LPI2C_SCFGR1_TXDSTALL ((uint32_t)(1<<2))
  5413. #define LPI2C_SCFGR1_RXSTALL ((uint32_t)(1<<1))
  5414. #define LPI2C_SCFGR1_ADRSTALL ((uint32_t)(1<<0))
  5415. #define LPI2C_SCFGR2_FILTSDA(n) ((uint32_t)(((n) & 0x0F) << 24))
  5416. #define LPI2C_SCFGR2_FILTSCL(n) ((uint32_t)(((n) & 0x0F) << 16))
  5417. #define LPI2C_SCFGR2_DATAVD(n) ((uint32_t)(((n) & 0x3F) << 8))
  5418. #define LPI2C_SCFGR2_CLKHOLD(n) ((uint32_t)(((n) & 0x0F) << 0))
  5419. #define LPI2C_SAMR_ADDR1(n) ((uint32_t)(((n) & 0x7F) << 17))
  5420. #define LPI2C_SAMR_ADDR0(n) ((uint32_t)(((n) & 0x7F) << 1))
  5421. #define LPI2C_SASR_ANV ((uint32_t)(1<<14))
  5422. #define LPI2C_SASR_RADDR(n) ((uint32_t)(((n) & 0x7FF) << 0))
  5423. #define LPI2C_STAR_TXNACK ((uint32_t)(1<<0))
  5424. #define LPI2C_STDR_DATA(n) ((uint32_t)(((n) & 0xFF) << 0))
  5425. #define LPI2C_SRDR_SOF ((uint32_t)(1<<15))
  5426. #define LPI2C_SRDR_RXEMPTY ((uint32_t)(1<<14))
  5427. #define LPI2C_SRDR_DATA(n) ((uint32_t)(((n) & 0xFF) << 0))
  5428. // 38.3.5.2: page 2422
  5429. typedef struct {
  5430. const uint32_t VERID; // 0
  5431. const uint32_t PARAM; // 0x04
  5432. const uint32_t UNUSED0; // 0x08
  5433. const uint32_t UNUSED1; // 0x0c
  5434. volatile uint32_t CR; // 0x10
  5435. volatile uint32_t SR; // 0x14
  5436. volatile uint32_t IER; // 0x18
  5437. volatile uint32_t DER; // 0x1c
  5438. volatile uint32_t CFGR0; // 0x20
  5439. volatile uint32_t CFGR1; // 0x24
  5440. const uint32_t UNUSED3; // 0x28
  5441. const uint32_t UNUSED4; // 0x2c
  5442. volatile uint32_t DMR0; // 0x30
  5443. volatile uint32_t DMR1; // 0x34
  5444. const uint32_t UNUSED5; // 0x38
  5445. const uint32_t UNUSED6; // 0x3c
  5446. volatile uint32_t CCR; // 0x40
  5447. const uint32_t UNUSED7; // 0x44
  5448. const uint32_t UNUSED8; // 0x48
  5449. const uint32_t UNUSED9; // 0x4c
  5450. const uint32_t UNUSED10; // 0x50
  5451. const uint32_t UNUSED11; // 0x54
  5452. volatile uint32_t FCR; // 0x58
  5453. volatile uint32_t FSR; // 0x5C
  5454. volatile uint32_t TCR; // 0x60
  5455. volatile uint32_t TDR; // 0x64
  5456. const uint32_t UNUSED12; // 0x68
  5457. const uint32_t UNUSED13; // 0x6c
  5458. volatile uint32_t RSR; // 0x70
  5459. volatile uint32_t RDR; // 0x74
  5460. } IMXRT_LPSPI_t;
  5461. #define IMXRT_LPSPI1 (*(IMXRT_REGISTER32_t *)0x40394000)
  5462. #define IMXRT_LPSPI1_S (*(IMXRT_LPSPI_t *)0x40394000)
  5463. #define LPSPI1_VERID (IMXRT_LPSPI1.offset000)
  5464. #define LPSPI1_PARAM (IMXRT_LPSPI1.offset004)
  5465. #define LPSPI1_CR (IMXRT_LPSPI1.offset010)
  5466. #define LPSPI1_SR (IMXRT_LPSPI1.offset014)
  5467. #define LPSPI1_IER (IMXRT_LPSPI1.offset018)
  5468. #define LPSPI1_DER (IMXRT_LPSPI1.offset01C)
  5469. #define LPSPI1_CFGR0 (IMXRT_LPSPI1.offset020)
  5470. #define LPSPI1_CFGR1 (IMXRT_LPSPI1.offset024)
  5471. #define LPSPI1_DMR0 (IMXRT_LPSPI1.offset030)
  5472. #define LPSPI1_DMR1 (IMXRT_LPSPI1.offset034)
  5473. #define LPSPI1_CCR (IMXRT_LPSPI1.offset040)
  5474. #define LPSPI1_FCR (IMXRT_LPSPI1.offset058)
  5475. #define LPSPI1_FSR (IMXRT_LPSPI1.offset05C)
  5476. #define LPSPI1_TCR (IMXRT_LPSPI1.offset060)
  5477. #define LPSPI1_TDR (IMXRT_LPSPI1.offset064)
  5478. #define LPSPI1_RSR (IMXRT_LPSPI1.offset070)
  5479. #define LPSPI1_RDR (IMXRT_LPSPI1.offset074)
  5480. #define IMXRT_LPSPI2 (*(IMXRT_REGISTER32_t *)0x40398000)
  5481. #define IMXRT_LPSPI2_S (*(IMXRT_LPSPI_t *)0x40398000)
  5482. #define LPSPI2_VERID (IMXRT_LPSPI2.offset000)
  5483. #define LPSPI2_PARAM (IMXRT_LPSPI2.offset004)
  5484. #define LPSPI2_CR (IMXRT_LPSPI2.offset010)
  5485. #define LPSPI2_SR (IMXRT_LPSPI2.offset014)
  5486. #define LPSPI2_IER (IMXRT_LPSPI2.offset018)
  5487. #define LPSPI2_DER (IMXRT_LPSPI2.offset01C)
  5488. #define LPSPI2_CFGR0 (IMXRT_LPSPI2.offset020)
  5489. #define LPSPI2_CFGR1 (IMXRT_LPSPI2.offset024)
  5490. #define LPSPI2_DMR0 (IMXRT_LPSPI2.offset030)
  5491. #define LPSPI2_DMR1 (IMXRT_LPSPI2.offset034)
  5492. #define LPSPI2_CCR (IMXRT_LPSPI2.offset040)
  5493. #define LPSPI2_FCR (IMXRT_LPSPI2.offset058)
  5494. #define LPSPI2_FSR (IMXRT_LPSPI2.offset05C)
  5495. #define LPSPI2_TCR (IMXRT_LPSPI2.offset060)
  5496. #define LPSPI2_TDR (IMXRT_LPSPI2.offset064)
  5497. #define LPSPI2_RSR (IMXRT_LPSPI2.offset070)
  5498. #define LPSPI2_RDR (IMXRT_LPSPI2.offset074)
  5499. #define IMXRT_LPSPI3 (*(IMXRT_REGISTER32_t *)0x4039C000)
  5500. #define IMXRT_LPSPI3_S (*(IMXRT_LPSPI_t *)0x4039C000)
  5501. #define LPSPI3_VERID (IMXRT_LPSPI3.offset000)
  5502. #define LPSPI3_PARAM (IMXRT_LPSPI3.offset004)
  5503. #define LPSPI3_CR (IMXRT_LPSPI3.offset010)
  5504. #define LPSPI3_SR (IMXRT_LPSPI3.offset014)
  5505. #define LPSPI3_IER (IMXRT_LPSPI3.offset018)
  5506. #define LPSPI3_DER (IMXRT_LPSPI3.offset01C)
  5507. #define LPSPI3_CFGR0 (IMXRT_LPSPI3.offset020)
  5508. #define LPSPI3_CFGR1 (IMXRT_LPSPI3.offset024)
  5509. #define LPSPI3_DMR0 (IMXRT_LPSPI3.offset030)
  5510. #define LPSPI3_DMR1 (IMXRT_LPSPI3.offset034)
  5511. #define LPSPI3_CCR (IMXRT_LPSPI3.offset040)
  5512. #define LPSPI3_FCR (IMXRT_LPSPI3.offset058)
  5513. #define LPSPI3_FSR (IMXRT_LPSPI3.offset05C)
  5514. #define LPSPI3_TCR (IMXRT_LPSPI3.offset060)
  5515. #define LPSPI3_TDR (IMXRT_LPSPI3.offset064)
  5516. #define LPSPI3_RSR (IMXRT_LPSPI3.offset070)
  5517. #define LPSPI3_RDR (IMXRT_LPSPI3.offset074)
  5518. #define IMXRT_LPSPI4 (*(IMXRT_REGISTER32_t *)0x403A0000)
  5519. #define IMXRT_LPSPI4_S (*(IMXRT_LPSPI_t *)0x403A0000)
  5520. #define LPSPI4_VERID (IMXRT_LPSPI4.offset000)
  5521. #define LPSPI4_PARAM (IMXRT_LPSPI4.offset004)
  5522. #define LPSPI4_CR (IMXRT_LPSPI4.offset010)
  5523. #define LPSPI4_SR (IMXRT_LPSPI4.offset014)
  5524. #define LPSPI4_IER (IMXRT_LPSPI4.offset018)
  5525. #define LPSPI4_DER (IMXRT_LPSPI4.offset01C)
  5526. #define LPSPI4_CFGR0 (IMXRT_LPSPI4.offset020)
  5527. #define LPSPI4_CFGR1 (IMXRT_LPSPI4.offset024)
  5528. #define LPSPI4_DMR0 (IMXRT_LPSPI4.offset030)
  5529. #define LPSPI4_DMR1 (IMXRT_LPSPI4.offset034)
  5530. #define LPSPI4_CCR (IMXRT_LPSPI4.offset040)
  5531. #define LPSPI4_FCR (IMXRT_LPSPI4.offset058)
  5532. #define LPSPI4_FSR (IMXRT_LPSPI4.offset05C)
  5533. #define LPSPI4_TCR (IMXRT_LPSPI4.offset060)
  5534. #define LPSPI4_TDR (IMXRT_LPSPI4.offset064)
  5535. #define LPSPI4_RSR (IMXRT_LPSPI4.offset070)
  5536. #define LPSPI4_RDR (IMXRT_LPSPI4.offset074)
  5537. #define LPSPI_CR_RRF ((uint32_t)(1<<9))
  5538. #define LPSPI_CR_RTF ((uint32_t)(1<<8))
  5539. #define LPSPI_CR_DBGEN ((uint32_t)(1<<3))
  5540. #define LPSPI_CR_DOZEN ((uint32_t)(1<<2))
  5541. #define LPSPI_CR_RST ((uint32_t)(1<<1))
  5542. #define LPSPI_CR_MEN ((uint32_t)(1<<0))
  5543. #define LPSPI_SR_MBF ((uint32_t)(1<<24))
  5544. #define LPSPI_SR_DMF ((uint32_t)(1<<13))
  5545. #define LPSPI_SR_REF ((uint32_t)(1<<12))
  5546. #define LPSPI_SR_TEF ((uint32_t)(1<<11))
  5547. #define LPSPI_SR_TCF ((uint32_t)(1<<10))
  5548. #define LPSPI_SR_FCF ((uint32_t)(1<<9))
  5549. #define LPSPI_SR_WCF ((uint32_t)(1<<8))
  5550. #define LPSPI_SR_RDF ((uint32_t)(1<<1))
  5551. #define LPSPI_SR_TDF ((uint32_t)(1<<0))
  5552. #define LPSPI_IER_DMIE ((uint32_t)(1<<13))
  5553. #define LPSPI_IER_REIE ((uint32_t)(1<<12))
  5554. #define LPSPI_IER_TEIE ((uint32_t)(1<<11))
  5555. #define LPSPI_IER_TCIE ((uint32_t)(1<<10))
  5556. #define LPSPI_IER_FCIE ((uint32_t)(1<<9))
  5557. #define LPSPI_IER_WCIE ((uint32_t)(1<<8))
  5558. #define LPSPI_IER_RDIE ((uint32_t)(1<<1))
  5559. #define LPSPI_IER_TDIE ((uint32_t)(1<<0))
  5560. #define LPSPI_DER_RDDE ((uint32_t)(1<<1))
  5561. #define LPSPI_DER_TDDE ((uint32_t)(1<<0))
  5562. #define LPSPI_CFGR0_RDMO ((uint32_t)(1<<9))
  5563. #define LPSPI_CFGR0_CIRFIFO ((uint32_t)(1<<8))
  5564. #define LPSPI_CFGR0_HRSEL ((uint32_t)(1<<2))
  5565. #define LPSPI_CFGR0_HRPOL ((uint32_t)(1<<1))
  5566. #define LPSPI_CFGR0_HREN ((uint32_t)(1<<0))
  5567. #define LPSPI_CFGR1_PCSCFG ((uint32_t)(1<<27))
  5568. #define LPSPI_CFGR1_OUTCFG ((uint32_t)(1<<26))
  5569. #define LPSPI_CFGR1_PINCFG(n) ((uint32_t)(((n) & 0x03) << 24))
  5570. #define LPSPI_CFGR1_MATCFG(n) ((uint32_t)(((n) & 0x07) << 16))
  5571. #define LPSPI_CFGR1_PCSPOL(n) ((uint32_t)(((n) & 0x0F) << 8))
  5572. #define LPSPI_CFGR1_NOSTALL ((uint32_t)(1<<3))
  5573. #define LPSPI_CFGR1_AUTOPCS ((uint32_t)(1<<2))
  5574. #define LPSPI_CFGR1_SAMPLE ((uint32_t)(1<<1))
  5575. #define LPSPI_CFGR1_MASTER ((uint32_t)(1<<0))
  5576. #define LPSPI_CCR_SCKPCS(n) ((uint32_t)(((n) & 0xFF) << 24))
  5577. #define LPSPI_CCR_PCSSCK(n) ((uint32_t)(((n) & 0xFF) << 16))
  5578. #define LPSPI_CCR_DBT(n) ((uint32_t)(((n) & 0xFF) << 8))
  5579. #define LPSPI_CCR_SCKDIV(n) ((uint32_t)(((n) & 0xFF) << 0))
  5580. #define LPSPI_FCR_RXWATER(n) ((uint32_t)(((n) & 0x0F) << 16))
  5581. #define LPSPI_FCR_TXWATER(n) ((uint32_t)(((n) & 0x0F) << 0))
  5582. #define LPSPI_FSR_RXCOUNT(n) ((uint32_t)(((n) & 0x1F) << 16))
  5583. #define LPSPI_FSR_TXCOUNT(n) ((uint32_t)(((n) & 0x1F) << 0))
  5584. #define LPSPI_TCR_CPOL ((uint32_t)(1<<31))
  5585. #define LPSPI_TCR_CPHA ((uint32_t)(1<<30))
  5586. #define LPSPI_TCR_PRESCALE(n) ((uint32_t)(((n) & 0x07) << 27))
  5587. #define LPSPI_TCR_PCS(n) ((uint32_t)(((n) & 0x03) << 24))
  5588. #define LPSPI_TCR_LSBF ((uint32_t)(1<<23))
  5589. #define LPSPI_TCR_BYSW ((uint32_t)(1<<22))
  5590. #define LPSPI_TCR_CONT ((uint32_t)(1<<21))
  5591. #define LPSPI_TCR_CONTC ((uint32_t)(1<<20))
  5592. #define LPSPI_TCR_RXMSK ((uint32_t)(1<<19))
  5593. #define LPSPI_TCR_TXMSK ((uint32_t)(1<<18))
  5594. #define LPSPI_TCR_WIDTH(n) ((uint32_t)(((n) & 0x03) << 16))
  5595. #define LPSPI_TCR_FRAMESZ(n) ((uint32_t)(((n) & 0xFFF) << 0))
  5596. #define LPSPI_RSR_RXEMPTY ((uint32_t)(1<<1))
  5597. #define LPSPI_RSR_SOF ((uint32_t)(1<<0))
  5598. // 39.3.1.1: page 2466
  5599. typedef struct {
  5600. const uint32_t VERID;
  5601. const uint32_t PARAM;
  5602. volatile uint32_t GLOBAL;
  5603. volatile uint32_t PINCFG;
  5604. volatile uint32_t BAUD;
  5605. volatile uint32_t STAT;
  5606. volatile uint32_t CTRL;
  5607. volatile uint32_t DATA;
  5608. volatile uint32_t MATCH;
  5609. volatile uint32_t MODIR;
  5610. volatile uint32_t FIFO;
  5611. volatile uint32_t WATER;
  5612. } IMXRT_LPUART_t;
  5613. #define IMXRT_LPUART1 (*(IMXRT_LPUART_t *)0x40184000)
  5614. #define LPUART1_VERID (IMXRT_LPUART1.VERID)
  5615. #define LPUART1_PARAM (IMXRT_LPUART1.PARAM)
  5616. #define LPUART1_GLOBAL (IMXRT_LPUART1.GLOBAL)
  5617. #define LPUART1_PINCFG (IMXRT_LPUART1.PINCFG)
  5618. #define LPUART1_BAUD (IMXRT_LPUART1.BAUD)
  5619. #define LPUART1_STAT (IMXRT_LPUART1.STAT)
  5620. #define LPUART1_CTRL (IMXRT_LPUART1.CTRL)
  5621. #define LPUART1_DATA (IMXRT_LPUART1.DATA)
  5622. #define LPUART1_MATCH (IMXRT_LPUART1.MATCH)
  5623. #define LPUART1_MODIR (IMXRT_LPUART1.MODIR)
  5624. #define LPUART1_FIFO (IMXRT_LPUART1.FIFO)
  5625. #define LPUART1_WATER (IMXRT_LPUART1.WATER)
  5626. #define IMXRT_LPUART2 (*(IMXRT_LPUART_t *)0x40188000)
  5627. #define LPUART2_VERID (IMXRT_LPUART2.VERID)
  5628. #define LPUART2_PARAM (IMXRT_LPUART2.PARAM)
  5629. #define LPUART2_GLOBAL (IMXRT_LPUART2.GLOBAL)
  5630. #define LPUART2_PINCFG (IMXRT_LPUART2.PINCFG)
  5631. #define LPUART2_BAUD (IMXRT_LPUART2.BAUD)
  5632. #define LPUART2_STAT (IMXRT_LPUART2.STAT)
  5633. #define LPUART2_CTRL (IMXRT_LPUART2.CTRL)
  5634. #define LPUART2_DATA (IMXRT_LPUART2.DATA)
  5635. #define LPUART2_MATCH (IMXRT_LPUART2.MATCH)
  5636. #define LPUART2_MODIR (IMXRT_LPUART2.MODIR)
  5637. #define LPUART2_FIFO (IMXRT_LPUART2.FIFO)
  5638. #define LPUART2_WATER (IMXRT_LPUART2.WATER)
  5639. #define IMXRT_LPUART3 (*(IMXRT_LPUART_t *)0x4018C000)
  5640. #define LPUART3_VERID (IMXRT_LPUART3.VERID)
  5641. #define LPUART3_PARAM (IMXRT_LPUART3.PARAM)
  5642. #define LPUART3_GLOBAL (IMXRT_LPUART3.GLOBAL)
  5643. #define LPUART3_PINCFG (IMXRT_LPUART3.PINCFG)
  5644. #define LPUART3_BAUD (IMXRT_LPUART3.BAUD)
  5645. #define LPUART3_STAT (IMXRT_LPUART3.STAT)
  5646. #define LPUART3_CTRL (IMXRT_LPUART3.CTRL)
  5647. #define LPUART3_DATA (IMXRT_LPUART3.DATA)
  5648. #define LPUART3_MATCH (IMXRT_LPUART3.MATCH)
  5649. #define LPUART3_MODIR (IMXRT_LPUART3.MODIR)
  5650. #define LPUART3_FIFO (IMXRT_LPUART3.FIFO)
  5651. #define LPUART3_WATER (IMXRT_LPUART3.WATER)
  5652. #define IMXRT_LPUART4 (*(IMXRT_LPUART_t *)0x40190000)
  5653. #define LPUART4_VERID (IMXRT_LPUART4.VERID)
  5654. #define LPUART4_PARAM (IMXRT_LPUART4.PARAM)
  5655. #define LPUART4_GLOBAL (IMXRT_LPUART4.GLOBAL)
  5656. #define LPUART4_PINCFG (IMXRT_LPUART4.PINCFG)
  5657. #define LPUART4_BAUD (IMXRT_LPUART4.BAUD)
  5658. #define LPUART4_STAT (IMXRT_LPUART4.STAT)
  5659. #define LPUART4_CTRL (IMXRT_LPUART4.CTRL)
  5660. #define LPUART4_DATA (IMXRT_LPUART4.DATA)
  5661. #define LPUART4_MATCH (IMXRT_LPUART4.MATCH)
  5662. #define LPUART4_MODIR (IMXRT_LPUART4.MODIR)
  5663. #define LPUART4_FIFO (IMXRT_LPUART4.FIFO)
  5664. #define LPUART4_WATER (IMXRT_LPUART4.WATER)
  5665. #define IMXRT_LPUART5 (*(IMXRT_LPUART_t *)0x40194000)
  5666. #define LPUART5_VERID (IMXRT_LPUART5.VERID)
  5667. #define LPUART5_PARAM (IMXRT_LPUART5.PARAM)
  5668. #define LPUART5_GLOBAL (IMXRT_LPUART5.GLOBAL)
  5669. #define LPUART5_PINCFG (IMXRT_LPUART5.PINCFG)
  5670. #define LPUART5_BAUD (IMXRT_LPUART5.BAUD)
  5671. #define LPUART5_STAT (IMXRT_LPUART5.STAT)
  5672. #define LPUART5_CTRL (IMXRT_LPUART5.CTRL)
  5673. #define LPUART5_DATA (IMXRT_LPUART5.DATA)
  5674. #define LPUART5_MATCH (IMXRT_LPUART5.MATCH)
  5675. #define LPUART5_MODIR (IMXRT_LPUART5.MODIR)
  5676. #define LPUART5_FIFO (IMXRT_LPUART5.FIFO)
  5677. #define LPUART5_WATER (IMXRT_LPUART5.WATER)
  5678. #define IMXRT_LPUART6 (*(IMXRT_LPUART_t *)0x40198000)
  5679. #define LPUART6_VERID (IMXRT_LPUART6.VERID)
  5680. #define LPUART6_PARAM (IMXRT_LPUART6.PARAM)
  5681. #define LPUART6_GLOBAL (IMXRT_LPUART6.GLOBAL)
  5682. #define LPUART6_PINCFG (IMXRT_LPUART6.PINCFG)
  5683. #define LPUART6_BAUD (IMXRT_LPUART6.BAUD)
  5684. #define LPUART6_STAT (IMXRT_LPUART6.STAT)
  5685. #define LPUART6_CTRL (IMXRT_LPUART6.CTRL)
  5686. #define LPUART6_DATA (IMXRT_LPUART6.DATA)
  5687. #define LPUART6_MATCH (IMXRT_LPUART6.MATCH)
  5688. #define LPUART6_MODIR (IMXRT_LPUART6.MODIR)
  5689. #define LPUART6_FIFO (IMXRT_LPUART6.FIFO)
  5690. #define LPUART6_WATER (IMXRT_LPUART6.WATER)
  5691. #define IMXRT_LPUART7 (*(IMXRT_LPUART_t *)0x4019C000)
  5692. #define LPUART7_VERID (IMXRT_LPUART7.VERID)
  5693. #define LPUART7_PARAM (IMXRT_LPUART7.PARAM)
  5694. #define LPUART7_GLOBAL (IMXRT_LPUART7.GLOBAL)
  5695. #define LPUART7_PINCFG (IMXRT_LPUART7.PINCFG)
  5696. #define LPUART7_BAUD (IMXRT_LPUART7.BAUD)
  5697. #define LPUART7_STAT (IMXRT_LPUART7.STAT)
  5698. #define LPUART7_CTRL (IMXRT_LPUART7.CTRL)
  5699. #define LPUART7_DATA (IMXRT_LPUART7.DATA)
  5700. #define LPUART7_MATCH (IMXRT_LPUART7.MATCH)
  5701. #define LPUART7_MODIR (IMXRT_LPUART7.MODIR)
  5702. #define LPUART7_FIFO (IMXRT_LPUART7.FIFO)
  5703. #define LPUART7_WATER (IMXRT_LPUART7.WATER)
  5704. #define IMXRT_LPUART8 (*(IMXRT_LPUART_t *)0x401A0000)
  5705. #define LPUART8_VERID (IMXRT_LPUART8.VERID)
  5706. #define LPUART8_PARAM (IMXRT_LPUART8.PARAM)
  5707. #define LPUART8_GLOBAL (IMXRT_LPUART8.GLOBAL)
  5708. #define LPUART8_PINCFG (IMXRT_LPUART8.PINCFG)
  5709. #define LPUART8_BAUD (IMXRT_LPUART8.BAUD)
  5710. #define LPUART8_STAT (IMXRT_LPUART8.STAT)
  5711. #define LPUART8_CTRL (IMXRT_LPUART8.CTRL)
  5712. #define LPUART8_DATA (IMXRT_LPUART8.DATA)
  5713. #define LPUART8_MATCH (IMXRT_LPUART8.MATCH)
  5714. #define LPUART8_MODIR (IMXRT_LPUART8.MODIR)
  5715. #define LPUART8_FIFO (IMXRT_LPUART8.FIFO)
  5716. #define LPUART8_WATER (IMXRT_LPUART8.WATER)
  5717. #define LPUART_VERID_MAJOR(n) ((uint32_t)(((n) & 0xFF) << 24))
  5718. #define LPUART_VERID_MINOR(n) ((uint32_t)(((n) & 0xFF) << 16))
  5719. #define LPUART_VERID_FEATURE(n) ((uint32_t)(((n) & 0xFFFF) << 0))
  5720. #define LPUART_PARAM_RXFIFO(n) ((uint32_t)(((n) & 0xFF) << 8))
  5721. #define LPUART_PARAM_TXFIFO(n) ((uint32_t)(((n) & 0xFF) << 0))
  5722. #define LPUART_GLOBAL_RST ((uint32_t)(1<<1))
  5723. #define LPUART_PINCFG_TRGSEL(n) ((uint32_t)(((n) & 0x03) << 0))
  5724. #define LPUART_BAUD_MAEN1 ((uint32_t)(1<<31))
  5725. #define LPUART_BAUD_MAEN2 ((uint32_t)(1<<30))
  5726. #define LPUART_BAUD_M10 ((uint32_t)(1<<29))
  5727. #define LPUART_BAUD_OSR(n) ((uint32_t)(((n) & 0x1F) << 24))
  5728. #define LPUART_BAUD_TDMAE ((uint32_t)(1<<23))
  5729. #define LPUART_BAUD_RDMAE ((uint32_t)(1<<21))
  5730. #define LPUART_BAUD_MATCFG(n) ((uint32_t)(((n) & 0x03) << 18))
  5731. #define LPUART_BAUD_BOTHEDGE ((uint32_t)(1<<17))
  5732. #define LPUART_BAUD_RESYNCDIS ((uint32_t)(1<<16))
  5733. #define LPUART_BAUD_LBKDIE ((uint32_t)(1<<15))
  5734. #define LPUART_BAUD_RXEDGIE ((uint32_t)(1<<14))
  5735. #define LPUART_BAUD_SBNS ((uint32_t)(1<<13))
  5736. #define LPUART_BAUD_SBR(n) ((uint32_t)(((n) & 0x01FFF) << 0))
  5737. #define LPUART_STAT_LBKDIF ((uint32_t)(1<<31))
  5738. #define LPUART_STAT_RXEDGIF ((uint32_t)(1<<30))
  5739. #define LPUART_STAT_MSBF ((uint32_t)(1<<29))
  5740. #define LPUART_STAT_RXINV ((uint32_t)(1<<28))
  5741. #define LPUART_STAT_RWUID ((uint32_t)(1<<27))
  5742. #define LPUART_STAT_BRK13 ((uint32_t)(1<<26))
  5743. #define LPUART_STAT_LBKDE ((uint32_t)(1<<25))
  5744. #define LPUART_STAT_RAF ((uint32_t)(1<<24))
  5745. #define LPUART_STAT_TDRE ((uint32_t)(1<<23))
  5746. #define LPUART_STAT_TC ((uint32_t)(1<<22))
  5747. #define LPUART_STAT_RDRF ((uint32_t)(1<<21))
  5748. #define LPUART_STAT_IDLE ((uint32_t)(1<<20))
  5749. #define LPUART_STAT_OR ((uint32_t)(1<<19))
  5750. #define LPUART_STAT_NF ((uint32_t)(1<<18))
  5751. #define LPUART_STAT_FE ((uint32_t)(1<<17))
  5752. #define LPUART_STAT_PF ((uint32_t)(1<<16))
  5753. #define LPUART_STAT_MA1F ((uint32_t)(1<<15))
  5754. #define LPUART_STAT_MA2F ((uint32_t)(1<<14))
  5755. #define LPUART_CTRL_R8T9 ((uint32_t)(1<<31))
  5756. #define LPUART_CTRL_R9T8 ((uint32_t)(1<<30))
  5757. #define LPUART_CTRL_TXDIR ((uint32_t)(1<<29))
  5758. #define LPUART_CTRL_TXINV ((uint32_t)(1<<28))
  5759. #define LPUART_CTRL_ORIE ((uint32_t)(1<<27))
  5760. #define LPUART_CTRL_NEIE ((uint32_t)(1<<26))
  5761. #define LPUART_CTRL_FEIE ((uint32_t)(1<<25))
  5762. #define LPUART_CTRL_PEIE ((uint32_t)(1<<24))
  5763. #define LPUART_CTRL_TIE ((uint32_t)(1<<23))
  5764. #define LPUART_CTRL_TCIE ((uint32_t)(1<<22))
  5765. #define LPUART_CTRL_RIE ((uint32_t)(1<<21))
  5766. #define LPUART_CTRL_ILIE ((uint32_t)(1<<20))
  5767. #define LPUART_CTRL_TE ((uint32_t)(1<<19))
  5768. #define LPUART_CTRL_RE ((uint32_t)(1<<18))
  5769. #define LPUART_CTRL_RWU ((uint32_t)(1<<17))
  5770. #define LPUART_CTRL_SBK ((uint32_t)(1<<16))
  5771. #define LPUART_CTRL_MA1IE ((uint32_t)(1<<15))
  5772. #define LPUART_CTRL_MA2IE ((uint32_t)(1<<14))
  5773. #define LPUART_CTRL_M7 ((uint32_t)(1<<11))
  5774. #define LPUART_CTRL_IDLECFG(n) ((uint32_t)(((n) & 0x07) << 8))
  5775. #define LPUART_CTRL_LOOPS ((uint32_t)(1<<7))
  5776. #define LPUART_CTRL_DOZEEN ((uint32_t)(1<<6))
  5777. #define LPUART_CTRL_RSRC ((uint32_t)(1<<5))
  5778. #define LPUART_CTRL_M ((uint32_t)(1<<4))
  5779. #define LPUART_CTRL_WAKE ((uint32_t)(1<<3))
  5780. #define LPUART_CTRL_ILT ((uint32_t)(1<<2))
  5781. #define LPUART_CTRL_PE ((uint32_t)(1<<1))
  5782. #define LPUART_CTRL_PT ((uint32_t)(1<<0))
  5783. #define LPUART_DATA_NOISY ((uint32_t)(1<<15))
  5784. #define LPUART_DATA_PARITYE ((uint32_t)(1<<14))
  5785. #define LPUART_DATA_FRETSC ((uint32_t)(1<<13))
  5786. #define LPUART_DATA_RXEMPT ((uint32_t)(1<<12))
  5787. #define LPUART_DATA_IDLINE ((uint32_t)(1<<11))
  5788. #define LPUART_MATCH_MA2(n) ((uint32_t)(((n) & 0x3FF) << 16))
  5789. #define LPUART_MATCH_MA1(n) ((uint32_t)(((n) & 0x3FF) << 0))
  5790. #define LPUART_MODIR_IREN ((uint32_t)(1<<18))
  5791. #define LPUART_MODIR_TNP(n) ((uint32_t)(((n) & 0x03) << 16))
  5792. #define LPUART_MODIR_RTSWATER(n) ((uint32_t)(((n) & 0x03) << 8))
  5793. #define LPUART_MODIR_TXCTSSRC ((uint32_t)(1<<5))
  5794. #define LPUART_MODIR_TXCTSC ((uint32_t)(1<<4))
  5795. #define LPUART_MODIR_RXRTSE ((uint32_t)(1<<3))
  5796. #define LPUART_MODIR_TXRTSPOL ((uint32_t)(1<<2))
  5797. #define LPUART_MODIR_TXRTSE ((uint32_t)(1<<1))
  5798. #define LPUART_MODIR_TXCTSE ((uint32_t)(1<<0))
  5799. #define LPUART_FIFO_TXEMPT ((uint32_t)(1<<23))
  5800. #define LPUART_FIFO_RXEMPT ((uint32_t)(1<<22))
  5801. #define LPUART_FIFO_TXOF ((uint32_t)(1<<17))
  5802. #define LPUART_FIFO_RXUF ((uint32_t)(1<<16))
  5803. #define LPUART_FIFO_TXFLUSH ((uint32_t)(1<<15))
  5804. #define LPUART_FIFO_RXFLUSH ((uint32_t)(1<<14))
  5805. #define LPUART_FIFO_RXIDEN(n) ((uint32_t)(((n) & 0x07) << 10))
  5806. #define LPUART_FIFO_TXOFE ((uint32_t)(1<<9))
  5807. #define LPUART_FIFO_RXUFE ((uint32_t)(1<<8))
  5808. #define LPUART_FIFO_TXFE ((uint32_t)(1<<7))
  5809. #define LPUART_FIFO_TXFIFOSIZE(n) ((uint32_t)(((n) & 0x07) << 4))
  5810. #define LPUART_FIFO_RXFE ((uint32_t)(1<<3))
  5811. #define LPUART_FIFO_RXFIFOSIZE(n) ((uint32_t)(((n) & 0x07) << 0))
  5812. #define LPUART_WATER_RXCOUNT(n) ((uint32_t)(((n) & 0x07) << 24))
  5813. #define LPUART_WATER_RXWATER(n) ((uint32_t)(((n) & 0x03) << 16))
  5814. #define LPUART_WATER_TXCOUNT(n) ((uint32_t)(((n) & 0x07) << 8))
  5815. #define LPUART_WATER_TXWATER(n) ((uint32_t)(((n) & 0x03) << 0))
  5816. // 40.4: page 2495
  5817. // 41.3: page 2498 TODO...
  5818. // 42.5.1.1: page 2509
  5819. #define IMXRT_OCOTP (*(IMXRT_REGISTER32_t *)0x401F4000)
  5820. #define HW_OCOTP_CTRL (IMXRT_OCOTP.offset000)
  5821. #define HW_OCOTP_CTRL_SET (IMXRT_OCOTP.offset004)
  5822. #define HW_OCOTP_CTRL_CLR (IMXRT_OCOTP.offset008)
  5823. #define HW_OCOTP_CTRL_TOG (IMXRT_OCOTP.offset00C)
  5824. #define HW_OCOTP_TIMING (IMXRT_OCOTP.offset010)
  5825. #define HW_OCOTP_DATA (IMXRT_OCOTP.offset020)
  5826. #define HW_OCOTP_READ_CTRL (IMXRT_OCOTP.offset030)
  5827. #define HW_OCOTP_READ_FUSE_DATA (IMXRT_OCOTP.offset040)
  5828. #define HW_OCOTP_SW_STICKY (IMXRT_OCOTP.offset050)
  5829. #define HW_OCOTP_SCS (IMXRT_OCOTP.offset060)
  5830. #define HW_OCOTP_SCS_SET (IMXRT_OCOTP.offset064)
  5831. #define HW_OCOTP_SCS_CLR (IMXRT_OCOTP.offset068)
  5832. #define HW_OCOTP_SCS_TOG (IMXRT_OCOTP.offset06C)
  5833. #define HW_OCOTP_VERSION (IMXRT_OCOTP.offset090)
  5834. #define HW_OCOTP_TIMING2 (IMXRT_OCOTP.offset100)
  5835. #define HW_OCOTP_CTRL_WR_UNLOCK(n) ((uint32_t)(((n) & 0xFFFF) << 16))
  5836. #define HW_OCOTP_CTRL_RELOAD_SHADOWS ((uint32_t)(1<<10))
  5837. #define HW_OCOTP_CTRL_ERROR ((uint32_t)(1<<9))
  5838. #define HW_OCOTP_CTRL_BUSY ((uint32_t)(1<<8))
  5839. #define HW_OCOTP_CTRL_ADDR(n) ((uint32_t)(((n) & 0x3F) << 0))
  5840. #define HW_OCOTP_TIMING_WAIT(n) ((uint32_t)(((n) & 0x3F) << 22))
  5841. #define HW_OCOTP_TIMING_STROBE_READ(n) ((uint32_t)(((n) & 0x3F) << 16))
  5842. #define HW_OCOTP_TIMING_RELAX(n) ((uint32_t)(((n) & 0x0F) << 12))
  5843. #define HW_OCOTP_TIMING_STROBE_PROG(n) ((uint32_t)(((n) & 0xFFF) << 0))
  5844. #define HW_OCOTP_READ_CTRL_READ_FUSE ((uint32_t)(1<<0))
  5845. #define HW_OCOTP_SW_STICKY_JTAG_BLOCK_RELEASE ((uint32_t)(1<<4))
  5846. #define HW_OCOTP_SW_STICKY_BLOCK_ROM_PART ((uint32_t)(1<<3))
  5847. #define HW_OCOTP_SW_STICKY_FIELD_RETURN_LOCK ((uint32_t)(1<<2))
  5848. #define HW_OCOTP_SW_STICKY_SRK_REVOKE_LOCK ((uint32_t)(1<<1))
  5849. #define HW_OCOTP_SW_STICKY_BLOCK_DTCP_KEY ((uint32_t)(1<<0))
  5850. #define HW_OCOTP_SCS_LOCK ((uint32_t)(1<<31))
  5851. #define HW_OCOTP_SCS_HAB_JDE ((uint32_t)(1<<0))
  5852. #define HW_OCOTP_TIMING2_RELAX1(n) ((uint32_t)(((n) & 0x7F) << 24))
  5853. #define HW_OCOTP_TIMING2_RELAX_READ(n) ((uint32_t)(((n) & 0x3F) << 16))
  5854. #define HW_OCOTP_TIMING2_RELAX_PROG(n) ((uint32_t)(((n) & 0xFFF) << 0))
  5855. #define IMXRT_OCOTP_VALUE (*(IMXRT_REGISTER32_t *)0x401F4400)
  5856. #define HW_OCOTP_LOCK (IMXRT_OCOTP_VALUE.offset000)
  5857. #define HW_OCOTP_CFG0 (IMXRT_OCOTP_VALUE.offset010)
  5858. #define HW_OCOTP_CFG1 (IMXRT_OCOTP_VALUE.offset020)
  5859. #define HW_OCOTP_CFG2 (IMXRT_OCOTP_VALUE.offset030)
  5860. #define HW_OCOTP_CFG3 (IMXRT_OCOTP_VALUE.offset040)
  5861. #define HW_OCOTP_CFG4 (IMXRT_OCOTP_VALUE.offset050)
  5862. #define HW_OCOTP_CFG5 (IMXRT_OCOTP_VALUE.offset060)
  5863. #define HW_OCOTP_CFG6 (IMXRT_OCOTP_VALUE.offset070)
  5864. #define HW_OCOTP_MEM0 (IMXRT_OCOTP_VALUE.offset080)
  5865. #define HW_OCOTP MEM1 (IMXRT_OCOTP_VALUE.offset090)
  5866. #define HW_OCOTP_MEM2 (IMXRT_OCOTP_VALUE.offset0A0)
  5867. #define HW_OCOTP_MEM3 (IMXRT_OCOTP_VALUE.offset0B0)
  5868. #define HW_OCOTP_MEM4 (IMXRT_OCOTP_VALUE.offset0C0)
  5869. #define HW_OCOTP_ANA0 (IMXRT_OCOTP_VALUE.offset0D0)
  5870. #define HW_OCOTP_ANA1 (IMXRT_OCOTP_VALUE.offset0E0)
  5871. #define HW_OCOTP_ANA2 (IMXRT_OCOTP_VALUE.offset0F0)
  5872. #define HW_OCOTP_SRK0 (IMXRT_OCOTP_VALUE.offset180)
  5873. #define HW_OCOTP_SRK1 (IMXRT_OCOTP_VALUE.offset190)
  5874. #define HW_OCOTP_SRK2 (IMXRT_OCOTP_VALUE.offset1A0)
  5875. #define HW_OCOTP_SRK3 (IMXRT_OCOTP_VALUE.offset1B0)
  5876. #define HW_OCOTP_SRK4 (IMXRT_OCOTP_VALUE.offset1C0)
  5877. #define HW_OCOTP_SRK5 (IMXRT_OCOTP_VALUE.offset1D0)
  5878. #define HW_OCOTP_SRK6 (IMXRT_OCOTP_VALUE.offset1E0)
  5879. #define HW_OCOTP_SRK7 (IMXRT_OCOTP_VALUE.offset1F0)
  5880. #define HW_OCOTP_SJC_RESP0 (IMXRT_OCOTP_VALUE.offset200)
  5881. #define HW_OCOTP_SJC_RESP1 (IMXRT_OCOTP_VALUE.offset210)
  5882. #define HW_OCOTP_MAC0 (IMXRT_OCOTP_VALUE.offset220)
  5883. #define HW_OCOTP_MAC1 (IMXRT_OCOTP_VALUE.offset230)
  5884. #define HW_OCOTP_MAC2 (IMXRT_OCOTP_VALUE.offset240)
  5885. #define HW_OCOTP_GP3 (IMXRT_OCOTP_VALUE.offset250)
  5886. #define HW_OCOTP_GP1 (IMXRT_OCOTP_VALUE.offset260)
  5887. #define HW_OCOTP_GP2 (IMXRT_OCOTP_VALUE.offset270)
  5888. #define HW_OCOTP_SW_GP1 (IMXRT_OCOTP_VALUE.offset280)
  5889. #define HW_OCOTP_SW_GP20 (IMXRT_OCOTP_VALUE.offset290)
  5890. #define HW_OCOTP_SW_GP21 (IMXRT_OCOTP_VALUE.offset2A0)
  5891. #define HW_OCOTP_SW_GP22 (IMXRT_OCOTP_VALUE.offset2B0)
  5892. #define HW_OCOTP_SW_GP23 (IMXRT_OCOTP_VALUE.offset2C0)
  5893. #define HW_OCOTP_MISC_CONF0 (IMXRT_OCOTP_VALUE.offset2D0)
  5894. #define HW_OCOTP_MISC_CONF1 (IMXRT_OCOTP_VALUE.offset2E0)
  5895. #define HW_OCOTP_SRK_REVOKE (IMXRT_OCOTP_VALUE.offset2F0)
  5896. // 44.8.1: page 2583
  5897. #define IMXRT_PIT (*(IMXRT_REGISTER32_t *)0x40084000)
  5898. #define PIT_MCR (IMXRT_PIT.offset000)
  5899. #define PIT_LTMR64H (IMXRT_PIT.offset0E0)
  5900. #define PIT_LTMR64L (IMXRT_PIT.offset0E4)
  5901. typedef struct {
  5902. volatile uint32_t LDVAL;
  5903. volatile uint32_t CVAL;
  5904. volatile uint32_t TCTRL;
  5905. volatile uint32_t TFLG;
  5906. } IMXRT_PIT_CHANNEL_t;
  5907. #define IMXRT_PIT_CHANNELS ((IMXRT_PIT_CHANNEL_t *)(&(IMXRT_PIT.offset100)))
  5908. #define PIT_LDVAL0 (IMXRT_PIT.offset100)
  5909. #define PIT_CVAL0 (IMXRT_PIT.offset104)
  5910. #define PIT_TCTRL0 (IMXRT_PIT.offset108)
  5911. #define PIT_TFLG0 (IMXRT_PIT.offset10C)
  5912. #define PIT_LDVAL1 (IMXRT_PIT.offset110)
  5913. #define PIT_CVAL1 (IMXRT_PIT.offset114)
  5914. #define PIT_TCTRL1 (IMXRT_PIT.offset118)
  5915. #define PIT_TFLG1 (IMXRT_PIT.offset11C)
  5916. #define PIT_LDVAL2 (IMXRT_PIT.offset120)
  5917. #define PIT_CVAL2 (IMXRT_PIT.offset124)
  5918. #define PIT_TCTRL2 (IMXRT_PIT.offset128)
  5919. #define PIT_TFLG2 (IMXRT_PIT.offset12C)
  5920. #define PIT_LDVAL3 (IMXRT_PIT.offset130)
  5921. #define PIT_CVAL3 (IMXRT_PIT.offset134)
  5922. #define PIT_TCTRL3 (IMXRT_PIT.offset138)
  5923. #define PIT_TFLG3 (IMXRT_PIT.offset13C)
  5924. #define PIT_MCR_MDIS ((uint32_t)(1<<1))
  5925. #define PIT_MCR_FRZ ((uint32_t)(1<<0))
  5926. #define PIT_TCTRL_CHN ((uint32_t)(1<<2))
  5927. #define PIT_TCTRL_TIE ((uint32_t)(1<<1))
  5928. #define PIT_TCTRL_TEN ((uint32_t)(1<<0))
  5929. #define PIT_TFLG_TIF ((uint32_t)(1<<0))
  5930. // 45.7: page 2598
  5931. #define IMXRT_PMU (*(IMXRT_REGISTER32_t *)0x400D8000)
  5932. #define PMU_REG_1P1 (IMXRT_PMU.offset110)
  5933. #define PMU_REG_1P1_SET (IMXRT_PMU.offset114)
  5934. #define PMU_REG_1P1_CLR (IMXRT_PMU.offset118)
  5935. #define PMU_REG_1P1_TOG (IMXRT_PMU.offset11C)
  5936. #define PMU_REG_3P0 (IMXRT_PMU.offset120)
  5937. #define PMU_REG_3P0_SET (IMXRT_PMU.offset124)
  5938. #define PMU_REG_3P0_CLR (IMXRT_PMU.offset128)
  5939. #define PMU_REG_3P0_TOG (IMXRT_PMU.offset12C)
  5940. #define PMU_REG_2P5 (IMXRT_PMU.offset130)
  5941. #define PMU_REG_2P5_SET (IMXRT_PMU.offset134)
  5942. #define PMU_REG_2P5_CLR (IMXRT_PMU.offset138)
  5943. #define PMU_REG_2P5_TOG (IMXRT_PMU.offset13C)
  5944. #define PMU_REG_CORE (IMXRT_PMU.offset140)
  5945. #define PMU_REG_CORE_SET (IMXRT_PMU.offset144)
  5946. #define PMU_REG_CORE_CLR (IMXRT_PMU.offset148)
  5947. #define PMU_REG_CORE_TOG (IMXRT_PMU.offset14C)
  5948. #define PMU_MISC0 (IMXRT_PMU.offset150)
  5949. #define PMU_MISC0_SET (IMXRT_PMU.offset154)
  5950. #define PMU_MISC0_CLR (IMXRT_PMU.offset158)
  5951. #define PMU_MISC0_TOG (IMXRT_PMU.offset15C)
  5952. #define PMU_MISC1 (IMXRT_PMU.offset160)
  5953. #define PMU_MISC1_SET (IMXRT_PMU.offset164)
  5954. #define PMU_MISC1_CLR (IMXRT_PMU.offset168)
  5955. #define PMU_MISC1_TOG (IMXRT_PMU.offset16C)
  5956. #define PMU_MISC2 (IMXRT_PMU.offset170)
  5957. #define PMU_MISC2_SET (IMXRT_PMU.offset174)
  5958. #define PMU_MISC2_CLR (IMXRT_PMU.offset178)
  5959. #define PMU_MISC2_TOG (IMXRT_PMU.offset17C)
  5960. #define PMU_REG_1P1_SELREF_WEAK_LINREG ((uint32_t)(1<<19))
  5961. #define PMU_REG_1P1_ENABLE_WEAK_LINREG ((uint32_t)(1<<18))
  5962. #define PMU_REG_1P1_OK_VDD1P1 ((uint32_t)(1<<17))
  5963. #define PMU_REG_1P1_BO_VDD1P1 ((uint32_t)(1<<16))
  5964. #define PMU_REG_1P1_OUTPUT_TRG(n) ((uint32_t)(((n) & 0x0F) << 8))
  5965. #define PMU_REG_1P1_BO_OFFSET(n) ((uint32_t)(((n) & 0x07) << 4))
  5966. #define PMU_REG_1P1_ENABLE_PULLDOWN ((uint32_t)(1<<3))
  5967. #define PMU_REG_1P1_ENABLE_ILIMIT ((uint32_t)(1<<2))
  5968. #define PMU_REG_1P1_ENABLE_BO ((uint32_t)(1<<1))
  5969. #define PMU_REG_1P1_ENABLE_LINREG ((uint32_t)(1<<0))
  5970. #define PMU_REG_3P0_OK_VDD3P0 ((uint32_t)(1<<17))
  5971. #define PMU_REG_3P0_BO_VDD3P0 ((uint32_t)(1<<16))
  5972. #define PMU_REG_3P0_OUTPUT_TRG(n) ((uint32_t)(((n) & 0x1F) << 8))
  5973. #define PMU_REG_3P0_VBUS_SEL ((uint32_t)(1<<7))
  5974. #define PMU_REG_3P0_BO_OFFSET(n) ((uint32_t)(((n) & 0x07) << 4))
  5975. #define PMU_REG_3P0_ENABLE_ILIMIT ((uint32_t)(1<<2))
  5976. #define PMU_REG_3P0_ENABLE_BO ((uint32_t)(1<<1))
  5977. #define PMU_REG_3P0_ENABLE_LINREG ((uint32_t)(1<<0))
  5978. #define PMU_REG_2P5_ENABLE_WEAK_LINREG ((uint32_t)(1<<18))
  5979. #define PMU_REG_2P5_OK_VDD2P5 ((uint32_t)(1<<17))
  5980. #define PMU_REG_2P5_BO_VDD2P5 ((uint32_t)(1<<16))
  5981. #define PMU_REG_2P5_OUTPUT_TRG(n) ((uint32_t)(((n) & 0x0F) << 8))
  5982. #define PMU_REG_2P5_BO_OFFSET(n) ((uint32_t)(((n) & 0x07) << 4))
  5983. #define PMU_REG_2P5_ENABLE_PULLDOWN ((uint32_t)(1<<3))
  5984. #define PMU_REG_2P5_ENABLE_ILIMIT ((uint32_t)(1<<2))
  5985. #define PMU_REG_2P5_ENABLE_BO ((uint32_t)(1<<1))
  5986. #define PMU_REG_2P5_ENABLE_LINREG ((uint32_t)(1<<0))
  5987. #define PMU_REG_CORE_FET_ODRIVE ((uint32_t)(1<<29))
  5988. #define PMU_REG_CORE_RAMP_RATE(n) ((uint32_t)(((n) & 0x03) << 27))
  5989. #define PMU_REG_CORE_REG2_ADJ(n) ((uint32_t)(((n) & 0x0F) << 23))
  5990. #define PMU_REG_CORE_REG2_TARG(n) ((uint32_t)(((n) & 0x1F) << 18))
  5991. #define PMU_REG_CORE_REG1_ADJ(n) ((uint32_t)(((n) & 0x0F) << 14))
  5992. #define PMU_REG_CORE_REG1_TARG(n) ((uint32_t)(((n) & 0x1F) << 9))
  5993. #define PMU_REG_CORE_REG0_ADJ(n) ((uint32_t)(((n) & 0x0F) << 5))
  5994. #define PMU_REG_CORE_REG0_TARG(n) ((uint32_t)(((n) & 0x1F) << 0))
  5995. #define PMU_MISC0_VID_PLL_PREDIV ((uint32_t)(1<<31))
  5996. #define PMU_MISC0_XTAL_24M_PWD ((uint32_t)(1<<30))
  5997. #define PMU_MISC0_RTC_XTAL_SOURCE ((uint32_t)(1<<29))
  5998. #define PMU_MISC0_CLKGATE_DELAY(n) ((uint32_t)(((n) & 0x07) << 26))
  5999. #define PMU_MISC0_CLKGATE_CTRL ((uint32_t)(1<<25))
  6000. #define PMU_MISC0_OSC_XTALOK_EN ((uint32_t)(1<<16))
  6001. #define PMU_MISC0_OSC_XTALOK ((uint32_t)(1<<15))
  6002. #define PMU_MISC0_OSC_I(n) ((uint32_t)(((n) & 0x03) << 13))
  6003. #define PMU_MISC0_DISCON_HIGH_SNVS ((uint32_t)(1<<12))
  6004. #define PMU_MISC0_STOP_MODE_CONFIG(n) ((uint32_t)(((n) & 0x03) << 10))
  6005. #define PMU_MISC0_REFTOP_VBGUP ((uint32_t)(1<<7))
  6006. #define PMU_MISC0_REFTOP_VBGADJ(n) ((uint32_t)(((n) & 0x07) << 4))
  6007. #define PMU_MISC0_REFTOP_SELFBIASOFF ((uint32_t)(1<<3))
  6008. #define PMU_MISC0_REFTOP_PWD ((uint32_t)(1<<0))
  6009. #define PMU_MISC1_IRQ_DIG_BO ((uint32_t)(1<<31))
  6010. #define PMU_MISC1_IRQ_ANA_BO ((uint32_t)(1<<30))
  6011. #define PMU_MISC1_IRQ_TEMPHIGH ((uint32_t)(1<<29))
  6012. #define PMU_MISC1_IRQ_TEMPLOW ((uint32_t)(1<<28))
  6013. #define PMU_MISC1_IRQ_TEMPPANIC ((uint32_t)(1<<27))
  6014. #define PMU_MISC1_PFD_528_AUTOGATE_EN ((uint32_t)(1<<17))
  6015. #define PMU_MISC1_PFD_480_AUTOGATE_EN ((uint32_t)(1<<16))
  6016. #define PMU_MISC1_LVDSCLK2_IBEN ((uint32_t)(1<<13))
  6017. #define PMU_MISC1_LVDSCLK1_IBEN ((uint32_t)(1<<12))
  6018. #define PMU_MISC1_LVDSCLK2_OBEN ((uint32_t)(1<<11))
  6019. #define PMU_MISC1_LVDSCLK1_OBEN ((uint32_t)(1<<10))
  6020. #define PMU_MISC1_LVDS2_CLK_SEL(n) ((uint32_t)(((n) & 0x1F) << 5))
  6021. #define PMU_MISC1_LVDS1_CLK_SEL(n) ((uint32_t)(((n) & 0x1F) << 0))
  6022. #define PMU_MISC2_VIDEO_DIV(n) ((uint32_t)(((n) & 0x03) << 30))
  6023. #define PMU_MISC2_REG2_STEP_TIME(n) ((uint32_t)(((n) & 0x03) << 28))
  6024. #define PMU_MISC2_REG1_STEP_TIME(n) ((uint32_t)(((n) & 0x03) << 26))
  6025. #define PMU_MISC2_REG0_STEP_TIME(n) ((uint32_t)(((n) & 0x03) << 24))
  6026. #define PMU_MISC2_AUDIO_DIV_MSB ((uint32_t)(1<<23))
  6027. #define PMU_MISC2_REG2_OK ((uint32_t)(1<<22))
  6028. #define PMU_MISC2_REG2_ENABLE_BO ((uint32_t)(1<<21))
  6029. #define PMU_MISC2_REG2_BO_STATUS ((uint32_t)(1<<19))
  6030. #define PMU_MISC2_REG2_BO_OFFSET(n) ((uint32_t)(((n) & 0x07) << 16))
  6031. #define PMU_MISC2_AUDIO_DIV_LSB ((uint32_t)(1<<15))
  6032. #define PMU_MISC2_REG1_ENABLE_BO ((uint32_t)(1<<13))
  6033. #define PMU_MISC2_REG1_BO_STATUS ((uint32_t)(1<<11))
  6034. #define PMU_MISC2_REG1_BO_OFFSET(n) ((uint32_t)(((n) & 0x07) << 8))
  6035. #define PMU_MISC2_PLL3_DISABLE ((uint32_t)(1<<7))
  6036. #define PMU_MISC2_REG0_ENABLE_BO ((uint32_t)(1<<5))
  6037. #define PMU_MISC2_REG0_BO_STATUS ((uint32_t)(1<<3))
  6038. #define PMU_MISC2_REG0_BO_OFFSET(n) ((uint32_t)(((n) & 0x07) << 0))
  6039. // 46.7: page 2656
  6040. #define IMXRT_PXP (*(IMXRT_REGISTER32_t *)0x402B4000)
  6041. #define IMXRT_PXP_b (*(IMXRT_REGISTER32_t *)0x402B4400)
  6042. #define PXP_CTRL (IMXRT_PXP.offset000)
  6043. #define PXP_CTRL_SET (IMXRT_PXP.offset004)
  6044. #define PXP_CTRL_CLR (IMXRT_PXP.offset008)
  6045. #define PXP_CTRL_TOG (IMXRT_PXP.offset00C)
  6046. #define PXP_STAT (IMXRT_PXP.offset010)
  6047. #define PXP_STAT_SET (IMXRT_PXP.offset014)
  6048. #define PXP_STAT_CLR (IMXRT_PXP.offset018)
  6049. #define PXP_STAT_TOG (IMXRT_PXP.offset01C)
  6050. #define PXP_OUT_CTRL (IMXRT_PXP.offset020)
  6051. #define PXP_OUT_CTRL_SET (IMXRT_PXP.offset024)
  6052. #define PXP_OUT_CTRL_CLR (IMXRT_PXP.offset028)
  6053. #define PXP_OUT_CTRL_TOG (IMXRT_PXP.offset02C)
  6054. #define PXP_OUT_BUF (IMXRT_PXP.offset030)
  6055. #define PXP_OUT_BUF2 (IMXRT_PXP.offset040)
  6056. #define PXP_OUT_PITCH (IMXRT_PXP.offset050)
  6057. #define PXP_OUT_LRC (IMXRT_PXP.offset060)
  6058. #define PXP_OUT_PS_ULC (IMXRT_PXP.offset070)
  6059. #define PXP_OUT_PS_LRC (IMXRT_PXP.offset080)
  6060. #define PXP_OUT_AS_ULC (IMXRT_PXP.offset090)
  6061. #define PXP_OUT_AS_LRC (IMXRT_PXP.offset0A0)
  6062. #define PXP_PS_CTRL (IMXRT_PXP.offset0B0)
  6063. #define PXP_PS_CTRL_SET (IMXRT_PXP.offset0B4)
  6064. #define PXP_PS_CTRL_CLR (IMXRT_PXP.offset0B8)
  6065. #define PXP_PS_CTRL_TOG (IMXRT_PXP.offset0BC)
  6066. #define PXP_PS_BUF (IMXRT_PXP.offset0C0)
  6067. #define PXP_PS_UBUF (IMXRT_PXP.offset0D0)
  6068. #define PXP_PS_VBUF (IMXRT_PXP.offset0E0)
  6069. #define PXP_PS_PITCH (IMXRT_PXP.offset0F0)
  6070. #define PXP_PS_BACKGROUND_0 (IMXRT_PXP.offset100)
  6071. #define PXP_PS_SCALE (IMXRT_PXP.offset110)
  6072. #define PXP_PS_OFFSET (IMXRT_PXP.offset120)
  6073. #define PXP_PS_CLRKEYLOW_0 (IMXRT_PXP.offset130)
  6074. #define PXP_PS_CLRKEYHIGH_0 (IMXRT_PXP.offset140)
  6075. #define PXP_AS_CTRL (IMXRT_PXP.offset150)
  6076. #define PXP_AS_BUF (IMXRT_PXP.offset160)
  6077. #define PXP_AS_PITCH (IMXRT_PXP.offset170)
  6078. #define PXP_AS_CLRKEYLOW_0 (IMXRT_PXP.offset180)
  6079. #define PXP_AS_CLRKEYHIGH_0 (IMXRT_PXP.offset190)
  6080. #define PXP_CSC1_COEF0 (IMXRT_PXP.offset1A0)
  6081. #define PXP_CSC1_COEF1 (IMXRT_PXP.offset1B0)
  6082. #define PXP_CSC1_COEF2 (IMXRT_PXP.offset1C0)
  6083. #define PXP_POWER (IMXRT_PXP_b.offset000)
  6084. #define PXP_PORTER_DUFF_CTRL (IMXRT_PXP_b.offset040)
  6085. // 47.5: page 2695
  6086. typedef struct {
  6087. union {
  6088. struct {
  6089. volatile uint16_t COMP1;
  6090. volatile uint16_t COMP2;
  6091. volatile uint16_t CAPT;
  6092. volatile uint16_t LOAD;
  6093. volatile uint16_t HOLD;
  6094. volatile uint16_t CNTR;
  6095. volatile uint16_t CTRL;
  6096. volatile uint16_t SCTRL;
  6097. volatile uint16_t CMPLD1;
  6098. volatile uint16_t CMPLD2;
  6099. volatile uint16_t CSCTRL;
  6100. volatile uint16_t FILT;
  6101. volatile uint16_t DMA;
  6102. volatile uint16_t unused1[3];
  6103. } CH[4];
  6104. struct {
  6105. volatile uint16_t unused2[15];
  6106. volatile uint16_t ENBL;
  6107. };
  6108. };
  6109. } IMXRT_TMR_t;
  6110. #define IMXRT_TMR1 (*(IMXRT_TMR_t *)0x401DC000)
  6111. #define TMR1_COMP10 (IMXRT_TMR1.CH[0].COMP1)
  6112. #define TMR1_COMP20 (IMXRT_TMR1.CH[0].COMP2)
  6113. #define TMR1_CAPT0 (IMXRT_TMR1.CH[0].CAPT)
  6114. #define TMR1_LOAD0 (IMXRT_TMR1.CH[0].LOAD)
  6115. #define TMR1_HOLD0 (IMXRT_TMR1.CH[0].HOLD)
  6116. #define TMR1_CNTR0 (IMXRT_TMR1.CH[0].CNTR)
  6117. #define TMR1_CTRL0 (IMXRT_TMR1.CH[0].CTRL)
  6118. #define TMR1_SCTRL0 (IMXRT_TMR1.CH[0].SCTRL)
  6119. #define TMR1_CMPLD10 (IMXRT_TMR1.CH[0].CMPLD1)
  6120. #define TMR1_CMPLD20 (IMXRT_TMR1.CH[0].CMPLD2)
  6121. #define TMR1_CSCTRL0 (IMXRT_TMR1.CH[0].CSCTRL)
  6122. #define TMR1_FILT0 (IMXRT_TMR1.CH[0].FILT)
  6123. #define TMR1_DMA0 (IMXRT_TMR1.CH[0].DMA)
  6124. #define TMR1_ENBL (IMXRT_TMR1.ENBL)
  6125. #define TMR1_COMP11 (IMXRT_TMR1.CH[1].COMP1)
  6126. #define TMR1_COMP21 (IMXRT_TMR1.CH[1].COMP2)
  6127. #define TMR1_CAPT1 (IMXRT_TMR1.CH[1].CAPT)
  6128. #define TMR1_LOAD1 (IMXRT_TMR1.CH[1].LOAD)
  6129. #define TMR1_HOLD1 (IMXRT_TMR1.CH[1].HOLD)
  6130. #define TMR1_CNTR1 (IMXRT_TMR1.CH[1].CNTR)
  6131. #define TMR1_CTRL1 (IMXRT_TMR1.CH[1].CTRL)
  6132. #define TMR1_SCTRL1 (IMXRT_TMR1.CH[1].SCTRL)
  6133. #define TMR1_CMPLD11 (IMXRT_TMR1.CH[1].CMPLD1)
  6134. #define TMR1_CMPLD21 (IMXRT_TMR1.CH[1].CMPLD2)
  6135. #define TMR1_CSCTRL1 (IMXRT_TMR1.CH[1].CSCTRL)
  6136. #define TMR1_FILT1 (IMXRT_TMR1.CH[1].FILT)
  6137. #define TMR1_DMA1 (IMXRT_TMR1.CH[1].DMA)
  6138. #define TMR1_COMP12 (IMXRT_TMR1.CH[2].COMP1)
  6139. #define TMR1_COMP22 (IMXRT_TMR1.CH[2].COMP2)
  6140. #define TMR1_CAPT2 (IMXRT_TMR1.CH[2].CAPT)
  6141. #define TMR1_LOAD2 (IMXRT_TMR1.CH[2].LOAD)
  6142. #define TMR1_HOLD2 (IMXRT_TMR1.CH[2].HOLD)
  6143. #define TMR1_CNTR2 (IMXRT_TMR1.CH[2].CNTR)
  6144. #define TMR1_CTRL2 (IMXRT_TMR1.CH[2].CTRL)
  6145. #define TMR1_SCTRL2 (IMXRT_TMR1.CH[2].SCTRL)
  6146. #define TMR1_CMPLD12 (IMXRT_TMR1.CH[2].CMPLD1)
  6147. #define TMR1_CMPLD22 (IMXRT_TMR1.CH[2].CMPLD2)
  6148. #define TMR1_CSCTRL2 (IMXRT_TMR1.CH[2].CSCTRL)
  6149. #define TMR1_FILT2 (IMXRT_TMR1.CH[2].FILT)
  6150. #define TMR1_DMA2 (IMXRT_TMR1.CH[2].DMA)
  6151. #define TMR1_COMP13 (IMXRT_TMR1.CH[3].COMP1)
  6152. #define TMR1_COMP23 (IMXRT_TMR1.CH[3].COMP2)
  6153. #define TMR1_CAPT3 (IMXRT_TMR1.CH[3].CAPT)
  6154. #define TMR1_LOAD3 (IMXRT_TMR1.CH[3].LOAD)
  6155. #define TMR1_HOLD3 (IMXRT_TMR1.CH[3].HOLD)
  6156. #define TMR1_CNTR3 (IMXRT_TMR1.CH[3].CNTR)
  6157. #define TMR1_CTRL3 (IMXRT_TMR1.CH[3].CTRL)
  6158. #define TMR1_SCTRL3 (IMXRT_TMR1.CH[3].SCTRL)
  6159. #define TMR1_CMPLD13 (IMXRT_TMR1.CH[3].CMPLD1)
  6160. #define TMR1_CMPLD23 (IMXRT_TMR1.CH[3].CMPLD2)
  6161. #define TMR1_CSCTRL3 (IMXRT_TMR1.CH[3].CSCTRL)
  6162. #define TMR1_FILT3 (IMXRT_TMR1.CH[3].FILT)
  6163. #define TMR1_DMA3 (IMXRT_TMR1.CH[3].DMA)
  6164. #define IMXRT_TMR2 (*(IMXRT_TMR_t *)0x401E0000)
  6165. #define TMR2_COMP10 (IMXRT_TMR2.CH[0].COMP1)
  6166. #define TMR2_COMP20 (IMXRT_TMR2.CH[0].COMP2)
  6167. #define TMR2_CAPT0 (IMXRT_TMR2.CH[0].CAPT)
  6168. #define TMR2_LOAD0 (IMXRT_TMR2.CH[0].LOAD)
  6169. #define TMR2_HOLD0 (IMXRT_TMR2.CH[0].HOLD)
  6170. #define TMR2_CNTR0 (IMXRT_TMR2.CH[0].CNTR)
  6171. #define TMR2_CTRL0 (IMXRT_TMR2.CH[0].CTRL)
  6172. #define TMR2_SCTRL0 (IMXRT_TMR2.CH[0].SCTRL)
  6173. #define TMR2_CMPLD10 (IMXRT_TMR2.CH[0].CMPLD1)
  6174. #define TMR2_CMPLD20 (IMXRT_TMR2.CH[0].CMPLD2)
  6175. #define TMR2_CSCTRL0 (IMXRT_TMR2.CH[0].CSCTRL)
  6176. #define TMR2_FILT0 (IMXRT_TMR2.CH[0].FILT)
  6177. #define TMR2_DMA0 (IMXRT_TMR2.CH[0].DMA)
  6178. #define TMR2_ENBL (IMXRT_TMR2.ENBL)
  6179. #define TMR2_COMP11 (IMXRT_TMR2.CH[1].COMP1)
  6180. #define TMR2_COMP21 (IMXRT_TMR2.CH[1].COMP2)
  6181. #define TMR2_CAPT1 (IMXRT_TMR2.CH[1].CAPT)
  6182. #define TMR2_LOAD1 (IMXRT_TMR2.CH[1].LOAD)
  6183. #define TMR2_HOLD1 (IMXRT_TMR2.CH[1].HOLD)
  6184. #define TMR2_CNTR1 (IMXRT_TMR2.CH[1].CNTR)
  6185. #define TMR2_CTRL1 (IMXRT_TMR2.CH[1].CTRL)
  6186. #define TMR2_SCTRL1 (IMXRT_TMR2.CH[1].SCTRL)
  6187. #define TMR2_CMPLD11 (IMXRT_TMR2.CH[1].CMPLD1)
  6188. #define TMR2_CMPLD21 (IMXRT_TMR2.CH[1].CMPLD2)
  6189. #define TMR2_CSCTRL1 (IMXRT_TMR2.CH[1].CSCTRL)
  6190. #define TMR2_FILT1 (IMXRT_TMR2.CH[1].FILT)
  6191. #define TMR2_DMA1 (IMXRT_TMR2.CH[1].DMA)
  6192. #define TMR2_COMP12 (IMXRT_TMR2.CH[2].COMP1)
  6193. #define TMR2_COMP22 (IMXRT_TMR2.CH[2].COMP2)
  6194. #define TMR2_CAPT2 (IMXRT_TMR2.CH[2].CAPT)
  6195. #define TMR2_LOAD2 (IMXRT_TMR2.CH[2].LOAD)
  6196. #define TMR2_HOLD2 (IMXRT_TMR2.CH[2].HOLD)
  6197. #define TMR2_CNTR2 (IMXRT_TMR2.CH[2].CNTR)
  6198. #define TMR2_CTRL2 (IMXRT_TMR2.CH[2].CTRL)
  6199. #define TMR2_SCTRL2 (IMXRT_TMR2.CH[2].SCTRL)
  6200. #define TMR2_CMPLD12 (IMXRT_TMR2.CH[2].CMPLD1)
  6201. #define TMR2_CMPLD22 (IMXRT_TMR2.CH[2].CMPLD2)
  6202. #define TMR2_CSCTRL2 (IMXRT_TMR2.CH[2].CSCTRL)
  6203. #define TMR2_FILT2 (IMXRT_TMR2.CH[2].FILT)
  6204. #define TMR2_DMA2 (IMXRT_TMR2.CH[2].DMA)
  6205. #define TMR2_COMP13 (IMXRT_TMR2.CH[3].COMP1)
  6206. #define TMR2_COMP23 (IMXRT_TMR2.CH[3].COMP2)
  6207. #define TMR2_CAPT3 (IMXRT_TMR2.CH[3].CAPT)
  6208. #define TMR2_LOAD3 (IMXRT_TMR2.CH[3].LOAD)
  6209. #define TMR2_HOLD3 (IMXRT_TMR2.CH[3].HOLD)
  6210. #define TMR2_CNTR3 (IMXRT_TMR2.CH[3].CNTR)
  6211. #define TMR2_CTRL3 (IMXRT_TMR2.CH[3].CTRL)
  6212. #define TMR2_SCTRL3 (IMXRT_TMR2.CH[3].SCTRL)
  6213. #define TMR2_CMPLD13 (IMXRT_TMR2.CH[3].CMPLD1)
  6214. #define TMR2_CMPLD23 (IMXRT_TMR2.CH[3].CMPLD2)
  6215. #define TMR2_CSCTRL3 (IMXRT_TMR2.CH[3].CSCTRL)
  6216. #define TMR2_FILT3 (IMXRT_TMR2.CH[3].FILT)
  6217. #define TMR2_DMA3 (IMXRT_TMR2.CH[3].DMA)
  6218. #define IMXRT_TMR3 (*(IMXRT_TMR_t *)0x401E4000)
  6219. #define TMR3_COMP10 (IMXRT_TMR3.CH[0].COMP1)
  6220. #define TMR3_COMP20 (IMXRT_TMR3.CH[0].COMP2)
  6221. #define TMR3_CAPT0 (IMXRT_TMR3.CH[0].CAPT)
  6222. #define TMR3_LOAD0 (IMXRT_TMR3.CH[0].LOAD)
  6223. #define TMR3_HOLD0 (IMXRT_TMR3.CH[0].HOLD)
  6224. #define TMR3_CNTR0 (IMXRT_TMR3.CH[0].CNTR)
  6225. #define TMR3_CTRL0 (IMXRT_TMR3.CH[0].CTRL)
  6226. #define TMR3_SCTRL0 (IMXRT_TMR3.CH[0].SCTRL)
  6227. #define TMR3_CMPLD10 (IMXRT_TMR3.CH[0].CMPLD1)
  6228. #define TMR3_CMPLD20 (IMXRT_TMR3.CH[0].CMPLD2)
  6229. #define TMR3_CSCTRL0 (IMXRT_TMR3.CH[0].CSCTRL)
  6230. #define TMR3_FILT0 (IMXRT_TMR3.CH[0].FILT)
  6231. #define TMR3_DMA0 (IMXRT_TMR3.CH[0].DMA)
  6232. #define TMR3_ENBL (IMXRT_TMR3.ENBL)
  6233. #define TMR3_COMP11 (IMXRT_TMR3.CH[1].COMP1)
  6234. #define TMR3_COMP21 (IMXRT_TMR3.CH[1].COMP2)
  6235. #define TMR3_CAPT1 (IMXRT_TMR3.CH[1].CAPT)
  6236. #define TMR3_LOAD1 (IMXRT_TMR3.CH[1].LOAD)
  6237. #define TMR3_HOLD1 (IMXRT_TMR3.CH[1].HOLD)
  6238. #define TMR3_CNTR1 (IMXRT_TMR3.CH[1].CNTR)
  6239. #define TMR3_CTRL1 (IMXRT_TMR3.CH[1].CTRL)
  6240. #define TMR3_SCTRL1 (IMXRT_TMR3.CH[1].SCTRL)
  6241. #define TMR3_CMPLD11 (IMXRT_TMR3.CH[1].CMPLD1)
  6242. #define TMR3_CMPLD21 (IMXRT_TMR3.CH[1].CMPLD2)
  6243. #define TMR3_CSCTRL1 (IMXRT_TMR3.CH[1].CSCTRL)
  6244. #define TMR3_FILT1 (IMXRT_TMR3.CH[1].FILT)
  6245. #define TMR3_DMA1 (IMXRT_TMR3.CH[1].DMA)
  6246. #define TMR3_COMP12 (IMXRT_TMR3.CH[2].COMP1)
  6247. #define TMR3_COMP22 (IMXRT_TMR3.CH[2].COMP2)
  6248. #define TMR3_CAPT2 (IMXRT_TMR3.CH[2].CAPT)
  6249. #define TMR3_LOAD2 (IMXRT_TMR3.CH[2].LOAD)
  6250. #define TMR3_HOLD2 (IMXRT_TMR3.CH[2].HOLD)
  6251. #define TMR3_CNTR2 (IMXRT_TMR3.CH[2].CNTR)
  6252. #define TMR3_CTRL2 (IMXRT_TMR3.CH[2].CTRL)
  6253. #define TMR3_SCTRL2 (IMXRT_TMR3.CH[2].SCTRL)
  6254. #define TMR3_CMPLD12 (IMXRT_TMR3.CH[2].CMPLD1)
  6255. #define TMR3_CMPLD22 (IMXRT_TMR3.CH[2].CMPLD2)
  6256. #define TMR3_CSCTRL2 (IMXRT_TMR3.CH[2].CSCTRL)
  6257. #define TMR3_FILT2 (IMXRT_TMR3.CH[2].FILT)
  6258. #define TMR3_DMA2 (IMXRT_TMR3.CH[2].DMA)
  6259. #define TMR3_COMP13 (IMXRT_TMR3.CH[3].COMP1)
  6260. #define TMR3_COMP23 (IMXRT_TMR3.CH[3].COMP2)
  6261. #define TMR3_CAPT3 (IMXRT_TMR3.CH[3].CAPT)
  6262. #define TMR3_LOAD3 (IMXRT_TMR3.CH[3].LOAD)
  6263. #define TMR3_HOLD3 (IMXRT_TMR3.CH[3].HOLD)
  6264. #define TMR3_CNTR3 (IMXRT_TMR3.CH[3].CNTR)
  6265. #define TMR3_CTRL3 (IMXRT_TMR3.CH[3].CTRL)
  6266. #define TMR3_SCTRL3 (IMXRT_TMR3.CH[3].SCTRL)
  6267. #define TMR3_CMPLD13 (IMXRT_TMR3.CH[3].CMPLD1)
  6268. #define TMR3_CMPLD23 (IMXRT_TMR3.CH[3].CMPLD2)
  6269. #define TMR3_CSCTRL3 (IMXRT_TMR3.CH[3].CSCTRL)
  6270. #define TMR3_FILT3 (IMXRT_TMR3.CH[3].FILT)
  6271. #define TMR3_DMA3 (IMXRT_TMR3.CH[3].DMA)
  6272. #define IMXRT_TMR4 (*(IMXRT_TMR_t *)0x401E8000)
  6273. #define TMR4_COMP10 (IMXRT_TMR4.CH[0].COMP1)
  6274. #define TMR4_COMP20 (IMXRT_TMR4.CH[0].COMP2)
  6275. #define TMR4_CAPT0 (IMXRT_TMR4.CH[0].CAPT)
  6276. #define TMR4_LOAD0 (IMXRT_TMR4.CH[0].LOAD)
  6277. #define TMR4_HOLD0 (IMXRT_TMR4.CH[0].HOLD)
  6278. #define TMR4_CNTR0 (IMXRT_TMR4.CH[0].CNTR)
  6279. #define TMR4_CTRL0 (IMXRT_TMR4.CH[0].CTRL)
  6280. #define TMR4_SCTRL0 (IMXRT_TMR4.CH[0].SCTRL)
  6281. #define TMR4_CMPLD10 (IMXRT_TMR4.CH[0].CMPLD1)
  6282. #define TMR4_CMPLD20 (IMXRT_TMR4.CH[0].CMPLD2)
  6283. #define TMR4_CSCTRL0 (IMXRT_TMR4.CH[0].CSCTRL)
  6284. #define TMR4_FILT0 (IMXRT_TMR4.CH[0].FILT)
  6285. #define TMR4_DMA0 (IMXRT_TMR4.CH[0].DMA)
  6286. #define TMR4_ENBL (IMXRT_TMR4.ENBL)
  6287. #define TMR4_COMP11 (IMXRT_TMR4.CH[1].COMP1)
  6288. #define TMR4_COMP21 (IMXRT_TMR4.CH[1].COMP2)
  6289. #define TMR4_CAPT1 (IMXRT_TMR4.CH[1].CAPT)
  6290. #define TMR4_LOAD1 (IMXRT_TMR4.CH[1].LOAD)
  6291. #define TMR4_HOLD1 (IMXRT_TMR4.CH[1].HOLD)
  6292. #define TMR4_CNTR1 (IMXRT_TMR4.CH[1].CNTR)
  6293. #define TMR4_CTRL1 (IMXRT_TMR4.CH[1].CTRL)
  6294. #define TMR4_SCTRL1 (IMXRT_TMR4.CH[1].SCTRL)
  6295. #define TMR4_CMPLD11 (IMXRT_TMR4.CH[1].CMPLD1)
  6296. #define TMR4_CMPLD21 (IMXRT_TMR4.CH[1].CMPLD2)
  6297. #define TMR4_CSCTRL1 (IMXRT_TMR4.CH[1].CSCTRL)
  6298. #define TMR4_FILT1 (IMXRT_TMR4.CH[1].FILT)
  6299. #define TMR4_DMA1 (IMXRT_TMR4.CH[1].DMA)
  6300. #define TMR4_COMP12 (IMXRT_TMR4.CH[2].COMP1)
  6301. #define TMR4_COMP22 (IMXRT_TMR4.CH[2].COMP2)
  6302. #define TMR4_CAPT2 (IMXRT_TMR4.CH[2].CAPT)
  6303. #define TMR4_LOAD2 (IMXRT_TMR4.CH[2].LOAD)
  6304. #define TMR4_HOLD2 (IMXRT_TMR4.CH[2].HOLD)
  6305. #define TMR4_CNTR2 (IMXRT_TMR4.CH[2].CNTR)
  6306. #define TMR4_CTRL2 (IMXRT_TMR4.CH[2].CTRL)
  6307. #define TMR4_SCTRL2 (IMXRT_TMR4.CH[2].SCTRL)
  6308. #define TMR4_CMPLD12 (IMXRT_TMR4.CH[2].CMPLD1)
  6309. #define TMR4_CMPLD22 (IMXRT_TMR4.CH[2].CMPLD2)
  6310. #define TMR4_CSCTRL2 (IMXRT_TMR4.CH[2].CSCTRL)
  6311. #define TMR4_FILT2 (IMXRT_TMR4.CH[2].FILT)
  6312. #define TMR4_DMA2 (IMXRT_TMR4.CH[2].DMA)
  6313. #define TMR4_COMP13 (IMXRT_TMR4.CH[3].COMP1)
  6314. #define TMR4_COMP23 (IMXRT_TMR4.CH[3].COMP2)
  6315. #define TMR4_CAPT3 (IMXRT_TMR4.CH[3].CAPT)
  6316. #define TMR4_LOAD3 (IMXRT_TMR4.CH[3].LOAD)
  6317. #define TMR4_HOLD3 (IMXRT_TMR4.CH[3].HOLD)
  6318. #define TMR4_CNTR3 (IMXRT_TMR4.CH[3].CNTR)
  6319. #define TMR4_CTRL3 (IMXRT_TMR4.CH[3].CTRL)
  6320. #define TMR4_SCTRL3 (IMXRT_TMR4.CH[3].SCTRL)
  6321. #define TMR4_CMPLD13 (IMXRT_TMR4.CH[3].CMPLD1)
  6322. #define TMR4_CMPLD23 (IMXRT_TMR4.CH[3].CMPLD2)
  6323. #define TMR4_CSCTRL3 (IMXRT_TMR4.CH[3].CSCTRL)
  6324. #define TMR4_FILT3 (IMXRT_TMR4.CH[3].FILT)
  6325. #define TMR4_DMA3 (IMXRT_TMR4.CH[3].DMA)
  6326. #define TMR_CTRL_CM(n) ((uint16_t)(((n) & 0x07) << 13))
  6327. #define TMR_CTRL_PCS(n) ((uint16_t)(((n) & 0x0F) << 9))
  6328. #define TMR_CTRL_SCS(n) ((uint16_t)(((n) & 0x03) << 7))
  6329. #define TMR_CTRL_ONCE ((uint16_t)(1<<6))
  6330. #define TMR_CTRL_LENGTH ((uint16_t)(1<<5))
  6331. #define TMR_CTRL_DIR ((uint16_t)(1<<4))
  6332. #define TMR_CTRL_COINIT ((uint16_t)(1<<3))
  6333. #define TMR_CTRL_OUTMODE(n) ((uint16_t)(((n) & 0x07) << 0))
  6334. #define TMR_SCTRL_TCF ((uint16_t)(1<<15))
  6335. #define TMR_SCTRL_TCFIE ((uint16_t)(1<<14))
  6336. #define TMR_SCTRL_TOF ((uint16_t)(1<<13))
  6337. #define TMR_SCTRL_TOFIE ((uint16_t)(1<<12))
  6338. #define TMR_SCTRL_IEF ((uint16_t)(1<<11))
  6339. #define TMR_SCTRL_IEFIE ((uint16_t)(1<<10))
  6340. #define TMR_SCTRL_IPS ((uint16_t)(1<<9))
  6341. #define TMR_SCTRL_INPUT ((uint16_t)(1<<8))
  6342. #define TMR_SCTRL_CAPTURE_MODE(n) ((uint16_t)(((n) & 0x03) << 6))
  6343. #define TMR_SCTRL_MSTR ((uint16_t)(1<<5))
  6344. #define TMR_SCTRL_EEOF ((uint16_t)(1<<4))
  6345. #define TMR_SCTRL_VAL ((uint16_t)(1<<3))
  6346. #define TMR_SCTRL_FORCE ((uint16_t)(1<<2))
  6347. #define TMR_SCTRL_OPS ((uint16_t)(1<<1))
  6348. #define TMR_SCTRL_OEN ((uint16_t)(1<<0))
  6349. #define TMR_CSCTRL_DBG_EN(n) ((uint16_t)(((n) & 0x03) << 14))
  6350. #define TMR_CSCTRL_FAULT ((uint16_t)(1<<13))
  6351. #define TMR_CSCTRL_ALT_LOAD ((uint16_t)(1<<12))
  6352. #define TMR_CSCTRL_ROC ((uint16_t)(1<<11))
  6353. #define TMR_CSCTRL_TCI ((uint16_t)(1<<10))
  6354. #define TMR_CSCTRL_UP ((uint16_t)(1<<9))
  6355. #define TMR_CSCTRL_TCF2EN ((uint16_t)(1<<7))
  6356. #define TMR_CSCTRL_TCF1EN ((uint16_t)(1<<6))
  6357. #define TMR_CSCTRL_TCF2 ((uint16_t)(1<<5))
  6358. #define TMR_CSCTRL_TCF1 ((uint16_t)(1<<4))
  6359. #define TMR_CSCTRL_CL2(n) ((uint16_t)(((n) & 0x03) << 2))
  6360. #define TMR_CSCTRL_CL1(n) ((uint16_t)(((n) & 0x03) << 0))
  6361. #define TMR_FILT_FILT_CNT(n) ((uint16_t)(((n) & 0x07) << 8))
  6362. #define TMR_FILT_FILT_PER(n) ((uint16_t)(((n) & 0xFF) << 0))
  6363. #define TMR_DMA_CMPLD2DE ((uint16_t)(1<<2))
  6364. #define TMR_DMA_CMPLD1DE ((uint16_t)(1<<1))
  6365. #define TMR_DMA_IEFDE ((uint16_t)(1<<0))
  6366. // 48.4.1.1: page 2748
  6367. #define IMXRT_I2S1 (*(IMXRT_REGISTER32_t *)0x40384000)
  6368. #define I2S1_VERID (IMXRT_I2S1.offset000)
  6369. #define I2S1_PARAM (IMXRT_I2S1.offset004)
  6370. #define I2S1_TCSR (IMXRT_I2S1.offset008)
  6371. #define I2S1_TCR1 (IMXRT_I2S1.offset00C)
  6372. #define I2S1_TCR2 (IMXRT_I2S1.offset010)
  6373. #define I2S1_TCR3 (IMXRT_I2S1.offset014)
  6374. #define I2S1_TCR4 (IMXRT_I2S1.offset018)
  6375. #define I2S1_TCR5 (IMXRT_I2S1.offset01C)
  6376. #define I2S1_TDR0 (IMXRT_I2S1.offset020)
  6377. #define I2S1_TDR1 (IMXRT_I2S1.offset024)
  6378. #define I2S1_TDR2 (IMXRT_I2S1.offset028)
  6379. #define I2S1_TDR3 (IMXRT_I2S1.offset02C)
  6380. #define I2S1_TFR0 (IMXRT_I2S1.offset040)
  6381. #define I2S1_TFR1 (IMXRT_I2S1.offset044)
  6382. #define I2S1_TFR2 (IMXRT_I2S1.offset048)
  6383. #define I2S1_TFR3 (IMXRT_I2S1.offset04C)
  6384. #define I2S1_TMR (IMXRT_I2S1.offset060)
  6385. #define I2S1_RCSR (IMXRT_I2S1.offset088)
  6386. #define I2S1_RCR1 (IMXRT_I2S1.offset08C)
  6387. #define I2S1_RCR2 (IMXRT_I2S1.offset090)
  6388. #define I2S1_RCR3 (IMXRT_I2S1.offset094)
  6389. #define I2S1_RCR4 (IMXRT_I2S1.offset098)
  6390. #define I2S1_RCR5 (IMXRT_I2S1.offset09C)
  6391. #define I2S1_RDR0 (IMXRT_I2S1.offset0A0)
  6392. #define I2S1_RDR1 (IMXRT_I2S1.offset0A4)
  6393. #define I2S1_RDR2 (IMXRT_I2S1.offset0A8)
  6394. #define I2S1_RDR3 (IMXRT_I2S1.offset0AC)
  6395. #define I2S1_RFR0 (IMXRT_I2S1.offset0C0)
  6396. #define I2S1_RFR1 (IMXRT_I2S1.offset0C4)
  6397. #define I2S1_RFR2 (IMXRT_I2S1.offset0C8)
  6398. #define I2S1_RFR3 (IMXRT_I2S1.offset0CC)
  6399. #define I2S1_RMR (IMXRT_I2S1.offset0E0)
  6400. #define IMXRT_I2S2 (*(IMXRT_REGISTER32_t *)0x40388000)
  6401. #define I2S2_VERID (IMXRT_I2S2.offset000)
  6402. #define I2S2_PARAM (IMXRT_I2S2.offset004)
  6403. #define I2S2_TCSR (IMXRT_I2S2.offset008)
  6404. #define I2S2_TCR1 (IMXRT_I2S2.offset00C)
  6405. #define I2S2_TCR2 (IMXRT_I2S2.offset010)
  6406. #define I2S2_TCR3 (IMXRT_I2S2.offset014)
  6407. #define I2S2_TCR4 (IMXRT_I2S2.offset018)
  6408. #define I2S2_TCR5 (IMXRT_I2S2.offset01C)
  6409. #define I2S2_TDR0 (IMXRT_I2S2.offset020)
  6410. #define I2S2_TDR1 (IMXRT_I2S2.offset024)
  6411. #define I2S2_TDR2 (IMXRT_I2S2.offset028)
  6412. #define I2S2_TDR3 (IMXRT_I2S2.offset02C)
  6413. #define I2S2_TFR0 (IMXRT_I2S2.offset040)
  6414. #define I2S2_TFR1 (IMXRT_I2S2.offset044)
  6415. #define I2S2_TFR2 (IMXRT_I2S2.offset048)
  6416. #define I2S2_TFR3 (IMXRT_I2S2.offset04C)
  6417. #define I2S2_TMR (IMXRT_I2S2.offset060)
  6418. #define I2S2_RCSR (IMXRT_I2S2.offset088)
  6419. #define I2S2_RCR1 (IMXRT_I2S2.offset08C)
  6420. #define I2S2_RCR2 (IMXRT_I2S2.offset090)
  6421. #define I2S2_RCR3 (IMXRT_I2S2.offset094)
  6422. #define I2S2_RCR4 (IMXRT_I2S2.offset098)
  6423. #define I2S2_RCR5 (IMXRT_I2S2.offset09C)
  6424. #define I2S2_RDR0 (IMXRT_I2S2.offset0A0)
  6425. #define I2S2_RDR1 (IMXRT_I2S2.offset0A4)
  6426. #define I2S2_RDR2 (IMXRT_I2S2.offset0A8)
  6427. #define I2S2_RDR3 (IMXRT_I2S2.offset0AC)
  6428. #define I2S2_RFR0 (IMXRT_I2S2.offset0C0)
  6429. #define I2S2_RFR1 (IMXRT_I2S2.offset0C4)
  6430. #define I2S2_RFR2 (IMXRT_I2S2.offset0C8)
  6431. #define I2S2_RFR3 (IMXRT_I2S2.offset0CC)
  6432. #define I2S2_RMR (IMXRT_I2S2.offset0E0)
  6433. #define IMXRT_I2S3 (*(IMXRT_REGISTER32_t *)0x4038C000)
  6434. #define I2S3_VERID (IMXRT_I2S3.offset000)
  6435. #define I2S3_PARAM (IMXRT_I2S3.offset004)
  6436. #define I2S3_TCSR (IMXRT_I2S3.offset008)
  6437. #define I2S3_TCR1 (IMXRT_I2S3.offset00C)
  6438. #define I2S3_TCR2 (IMXRT_I2S3.offset010)
  6439. #define I2S3_TCR3 (IMXRT_I2S3.offset014)
  6440. #define I2S3_TCR4 (IMXRT_I2S3.offset018)
  6441. #define I2S3_TCR5 (IMXRT_I2S3.offset01C)
  6442. #define I2S3_TDR0 (IMXRT_I2S3.offset020)
  6443. #define I2S3_TDR1 (IMXRT_I2S3.offset024)
  6444. #define I2S3_TDR2 (IMXRT_I2S3.offset028)
  6445. #define I2S3_TDR3 (IMXRT_I2S3.offset02C)
  6446. #define I2S3_TFR0 (IMXRT_I2S3.offset040)
  6447. #define I2S3_TFR1 (IMXRT_I2S3.offset044)
  6448. #define I2S3_TFR2 (IMXRT_I2S3.offset048)
  6449. #define I2S3_TFR3 (IMXRT_I2S3.offset04C)
  6450. #define I2S3_TMR (IMXRT_I2S3.offset060)
  6451. #define I2S3_RCSR (IMXRT_I2S3.offset088)
  6452. #define I2S3_RCR1 (IMXRT_I2S3.offset08C)
  6453. #define I2S3_RCR2 (IMXRT_I2S3.offset090)
  6454. #define I2S3_RCR3 (IMXRT_I2S3.offset094)
  6455. #define I2S3_RCR4 (IMXRT_I2S3.offset098)
  6456. #define I2S3_RCR5 (IMXRT_I2S3.offset09C)
  6457. #define I2S3_RDR0 (IMXRT_I2S3.offset0A0)
  6458. #define I2S3_RDR1 (IMXRT_I2S3.offset0A4)
  6459. #define I2S3_RDR2 (IMXRT_I2S3.offset0A8)
  6460. #define I2S3_RDR3 (IMXRT_I2S3.offset0AC)
  6461. #define I2S3_RFR0 (IMXRT_I2S3.offset0C0)
  6462. #define I2S3_RFR1 (IMXRT_I2S3.offset0C4)
  6463. #define I2S3_RFR2 (IMXRT_I2S3.offset0C8)
  6464. #define I2S3_RFR3 (IMXRT_I2S3.offset0CC)
  6465. #define I2S3_RMR (IMXRT_I2S3.offset0E0)
  6466. // 49.3.1.1: page 2784
  6467. #define IMXRT_SEMC (*(IMXRT_REGISTER32_t *)0x402F0000)
  6468. #define SEMC_MCR (IMXRT_SEMC.offset000)
  6469. #define SEMC_IOCR (IMXRT_SEMC.offset004)
  6470. #define SEMC_BMCR0 (IMXRT_SEMC.offset008)
  6471. #define SEMC_BMCR1 (IMXRT_SEMC.offset00C)
  6472. #define SEMC_BR0 (IMXRT_SEMC.offset010)
  6473. #define SEMC_BR1 (IMXRT_SEMC.offset014)
  6474. #define SEMC_BR2 (IMXRT_SEMC.offset018)
  6475. #define SEMC_BR3 (IMXRT_SEMC.offset01C)
  6476. #define SEMC_BR4 (IMXRT_SEMC.offset020)
  6477. #define SEMC_BR5 (IMXRT_SEMC.offset024)
  6478. #define SEMC_BR6 (IMXRT_SEMC.offset028)
  6479. #define SEMC_BR7 (IMXRT_SEMC.offset02C)
  6480. #define SEMC_BR8 (IMXRT_SEMC.offset030)
  6481. #define SEMC_INTEN (IMXRT_SEMC.offset038)
  6482. #define SEMC_INTR (IMXRT_SEMC.offset03C)
  6483. #define SEMC_SDRAMCR0 (IMXRT_SEMC.offset040)
  6484. #define SEMC_SDRAMCR1 (IMXRT_SEMC.offset044)
  6485. #define SEMC_SDRAMCR2 (IMXRT_SEMC.offset048)
  6486. #define SEMC_SDRAMCR3 (IMXRT_SEMC.offset04C)
  6487. #define SEMC_NANDCR0 (IMXRT_SEMC.offset050)
  6488. #define SEMC_NANDCR1 (IMXRT_SEMC.offset054)
  6489. #define SEMC_NANDCR2 (IMXRT_SEMC.offset058)
  6490. #define SEMC_NANDCR3 (IMXRT_SEMC.offset05C)
  6491. #define SEMC_ORCR0 (IMXRT_SEMC.offset060)
  6492. #define SEMC_ORCR1 (IMXRT_SEMC.offset064)
  6493. #define SEMC_ORCR2 (IMXRT_SEMC.offset068)
  6494. #define SEMC_ORCR3 (IMXRT_SEMC.offset06C)
  6495. #define SEMC_SRAMCR0 (IMXRT_SEMC.offset070)
  6496. #define SEMC_SRAMCR1 (IMXRT_SEMC.offset074)
  6497. #define SEMC_SRAMCR2 (IMXRT_SEMC.offset078)
  6498. #define SEMC_SRAMCR3 (IMXRT_SEMC.offset07C)
  6499. #define SEMC_DBICR0 (IMXRT_SEMC.offset080)
  6500. #define SEMC_DBICR1 (IMXRT_SEMC.offset084)
  6501. #define SEMC_IPCR0 (IMXRT_SEMC.offset090)
  6502. #define SEMC_IPCR1 (IMXRT_SEMC.offset094)
  6503. #define SEMC_IPCR2 (IMXRT_SEMC.offset098)
  6504. #define SEMC_IPCMD (IMXRT_SEMC.offset09C)
  6505. #define SEMC_IPTXDAT (IMXRT_SEMC.offset0A0)
  6506. #define SEMC_IPRXDAT (IMXRT_SEMC.offset0B0)
  6507. #define SEMC_STS0 (IMXRT_SEMC.offset0C0)
  6508. #define SEMC_STS1 (IMXRT_SEMC.offset0C4)
  6509. #define SEMC_STS2 (IMXRT_SEMC.offset0C8)
  6510. #define SEMC_STS3 (IMXRT_SEMC.offset0CC)
  6511. #define SEMC_STS4 (IMXRT_SEMC.offset0D0)
  6512. #define SEMC_STS5 (IMXRT_SEMC.offset0D4)
  6513. #define SEMC_STS6 (IMXRT_SEMC.offset0D8)
  6514. #define SEMC_STS7 (IMXRT_SEMC.offset0DC)
  6515. #define SEMC_STS8 (IMXRT_SEMC.offset0E0)
  6516. #define SEMC_STS9 (IMXRT_SEMC.offset0E4)
  6517. #define SEMC_STS10 (IMXRT_SEMC.offset0E8)
  6518. #define SEMC_STS11 (IMXRT_SEMC.offset0EC)
  6519. #define SEMC_STS12 (IMXRT_SEMC.offset0F0)
  6520. #define SEMC_STS13 (IMXRT_SEMC.offset0F4)
  6521. #define SEMC_STS14 (IMXRT_SEMC.offset0F8)
  6522. #define SEMC_STS15 (IMXRT_SEMC.offset0FC)
  6523. // 50.6.1: page 2895
  6524. #define IMXRT_SNVS (*(IMXRT_REGISTER32_t *)0x400D4000)
  6525. #define SNVS_HPLR (IMXRT_SNVS.offset000)
  6526. #define SNVS_HPCOMR (IMXRT_SNVS.offset004)
  6527. #define SNVS_HPCR (IMXRT_SNVS.offset008)
  6528. #define SNVS_HPSR (IMXRT_SNVS.offset014)
  6529. #define SNVS_HPRTCMR (IMXRT_SNVS.offset024)
  6530. #define SNVS_HPRTCLR (IMXRT_SNVS.offset028)
  6531. #define SNVS_HPTAMR (IMXRT_SNVS.offset02C)
  6532. #define SNVS_HPTALR (IMXRT_SNVS.offset030)
  6533. #define SNVS_LPLR (IMXRT_SNVS.offset034)
  6534. #define SNVS_LPCR (IMXRT_SNVS.offset038)
  6535. #define SNVS_LPSR (IMXRT_SNVS.offset04C)
  6536. #define SNVS_LPSMCMR (IMXRT_SNVS.offset05C)
  6537. #define SNVS_LPSMCLR (IMXRT_SNVS.offset060)
  6538. #define SNVS_LPGPR (IMXRT_SNVS.offset068)
  6539. #define IMXRT_SNVS_b (*(IMXRT_REGISTER32_t *)0x400D4800)
  6540. #define SNVS_HPVIDR1 (IMXRT_SNVS_b.offset3F8)
  6541. #define SNVS_HPVIDR2 (IMXRT_SNVS_b.offset3FC)
  6542. // 51.5: page 2938
  6543. #define IMXRT_SPDIF (*(IMXRT_REGISTER32_t *)0x400D4000)
  6544. #define SPDIF_SCR (IMXRT_SPDIF.offset000)
  6545. #define SPDIF_SRCD (IMXRT_SPDIF.offset004)
  6546. #define SPDIF_SRPC (IMXRT_SPDIF.offset008)
  6547. #define SPDIF_SIE (IMXRT_SPDIF.offset00C)
  6548. #define SPDIF_SIS (IMXRT_SPDIF.offset010)
  6549. #define SPDIF_SIC (IMXRT_SPDIF.offset010)
  6550. #define SPDIF_SRL (IMXRT_SPDIF.offset014)
  6551. #define SPDIF_SRR (IMXRT_SPDIF.offset018)
  6552. #define SPDIF_SRCSH (IMXRT_SPDIF.offset01C)
  6553. #define SPDIF_SRCSL (IMXRT_SPDIF.offset020)
  6554. #define SPDIF_SRU (IMXRT_SPDIF.offset024)
  6555. #define SPDIF_SRQ (IMXRT_SPDIF.offset028)
  6556. #define SPDIF_STL (IMXRT_SPDIF.offset02C)
  6557. #define SPDIF_STR (IMXRT_SPDIF.offset030)
  6558. #define SPDIF_STCSCH (IMXRT_SPDIF.offset034)
  6559. #define SPDIF_STCSCL (IMXRT_SPDIF.offset038)
  6560. #define SPDIF_SRFM (IMXRT_SPDIF.offset044)
  6561. #define SPDIF_STC (IMXRT_SPDIF.offset050)
  6562. #define SPDIF_SCR_RXFIFO_CTR ((uint32_t)(1 << 23))
  6563. #define SPDIF_SCR_RXFIFO_OFF_ON ((uint32_t)(1 << 22))
  6564. #define SPDIF_SCR_RXFIFO_RST ((uint32_t)(1 << 21))
  6565. #define SPDIF_SCR_RXFIFOFULL_SEL(n) ((uint32_t)(((n) & 0x03) << 19))
  6566. #define SPDIF_SCR_RXAUTOSYNC ((uint32_t)(1 << 18))
  6567. #define SPDIF_SCR_TXAUTOSYNC ((uint32_t)(1 << 17))
  6568. #define SPDIF_SCR_TXFIFOEMPTY_SEL(n) ((uint32_t)(((n) & 0x03) << 15))
  6569. #define SPDIF_SCR_LOW_POWER ((uint32_t)(1 << 13))
  6570. #define SPDIF_SCR_SOFT_RESET ((uint32_t)(1 << 12))
  6571. #define SPDIF_SCR_TXFIFO_CTRL(n) ((uint32_t)(((n) & 0x03) << 10))
  6572. #define SPDIF_SCR_DMA_RX_EN ((uint32_t)(1 << 9))
  6573. #define SPDIF_SCR_DMA_TX_EN ((uint32_t)(1 << 8))
  6574. #define SPDIF_SCR_VALCTRL ((uint32_t)(1 << 5))
  6575. #define SPDIF_SCR_TXSEL(n) ((uint32_t)(((n) & 0x07) << 2))
  6576. #define SPDIF_SCR_USRC_SEL(n) ((uint32_t)(((n) & 0x03) << 0))
  6577. #define SPDIF_SRCD_USYNCMODE ((uint32_t)(1 << 1))
  6578. #define SPDIF_SRPC_CLKSRC_SEL(n) ((uint32_t)(((n) & 0x0f) << 7))
  6579. #define SPDIF_SRPC_LOCK ((uint32_t)(1 << 6))
  6580. #define SPDIF_SRPC_GAINSEL(n) ((uint32_t)(((n) & 0x07) << 3))
  6581. #define SPDIF_SIE_LOCK ((uint32_t)(1 << 20))
  6582. #define SPDIF_SIE_TXUNOV ((uint32_t)(1 << 19))
  6583. #define SPDIF_SIE_TXRESYN ((uint32_t)(1 << 18))
  6584. #define SPDIF_SIE_CNEW ((uint32_t)(1 << 17))
  6585. #define SPDIF_SIE_VALNOGOOD ((uint32_t)(1 << 16))
  6586. #define SPDIF_SIE_SYMERR ((uint32_t)(1 << 15))
  6587. #define SPDIF_SIE_BITERR ((uint32_t)(1 << 14))
  6588. #define SPDIF_SIE_URXFUL ((uint32_t)(1 << 10))
  6589. #define SPDIF_SIE_URXOV ((uint32_t)(1 << 9))
  6590. #define SPDIF_SIE_QRXFUL ((uint32_t)(1 << 8))
  6591. #define SPDIF_SIE_QRXOV ((uint32_t)(1 << 7))
  6592. #define SPDIF_SIE_UQSYNC ((uint32_t)(1 << 6))
  6593. #define SPDIF_SIE_UQERR ((uint32_t)(1 << 5))
  6594. #define SPDIF_SIE_RXFIFOUNOV ((uint32_t)(1 << 4))
  6595. #define SPDIF_SIE_RXFIFORESYN ((uint32_t)(1 << 3))
  6596. #define SPDIF_SIE_LOCKLOSS ((uint32_t)(1 << 2))
  6597. #define SPDIF_SIE_TXEM ((uint32_t)(1 << 1))
  6598. #define SPDIF_SIE_RXFIFOFUL ((uint32_t)(1 << 0))
  6599. #define SPDIF_SIS_LOCK ((uint32_t)(1 << 20))
  6600. #define SPDIF_SIS_TXUNOV ((uint32_t)(1 << 19))
  6601. #define SPDIF_SIS_TXRESYN ((uint32_t)(1 << 18))
  6602. #define SPDIF_SIS_CNEW ((uint32_t)(1 << 17))
  6603. #define SPDIF_SIS_VALNOGOOD ((uint32_t)(1 << 16))
  6604. #define SPDIF_SIS_SYMERR ((uint32_t)(1 << 15))
  6605. #define SPDIF_SIS_BITERR ((uint32_t)(1 << 14))
  6606. #define SPDIF_SIS_URXFUL ((uint32_t)(1 << 10))
  6607. #define SPDIF_SIS_URXOV ((uint32_t)(1 << 9))
  6608. #define SPDIF_SIS_QRXFUL ((uint32_t)(1 << 8))
  6609. #define SPDIF_SIS_QRXOV ((uint32_t)(1 << 7))
  6610. #define SPDIF_SIS_UQSYNC ((uint32_t)(1 << 6))
  6611. #define SPDIF_SIS_UQERR ((uint32_t)(1 << 5))
  6612. #define SPDIF_SIS_RXFIFOUNOV ((uint32_t)(1 << 4))
  6613. #define SPDIF_SIS_RXFIFORESYN ((uint32_t)(1 << 3))
  6614. #define SPDIF_SIS_LOCKLOSS ((uint32_t)(1 << 2))
  6615. #define SPDIF_SIS_TXEM ((uint32_t)(1 << 1))
  6616. #define SPDIF_SIS_RXFIFOFUL ((uint32_t)(1 << 0))
  6617. #define SPDIF_SIC_LOCK ((uint32_t)(1 << 20))
  6618. #define SPDIF_SIC_TXUNOV ((uint32_t)(1 << 19))
  6619. #define SPDIF_SIC_TXRESYN ((uint32_t)(1 << 18))
  6620. #define SPDIF_SIC_CNEW ((uint32_t)(1 << 17))
  6621. #define SPDIF_SIC_VALNOGOOD ((uint32_t)(1 << 16))
  6622. #define SPDIF_SIC_SYMERR ((uint32_t)(1 << 15))
  6623. #define SPDIF_SIC_BITERR ((uint32_t)(1 << 14))
  6624. #define SPDIF_SIC_URXFUL ((uint32_t)(1 << 10))
  6625. #define SPDIF_SIC_URXOV ((uint32_t)(1 << 9))
  6626. #define SPDIF_SIC_QRXOV ((uint32_t)(1 << 7))
  6627. #define SPDIF_SIC_UQSYNC ((uint32_t)(1 << 6))
  6628. #define SPDIF_SIC_UQERR ((uint32_t)(1 << 5))
  6629. #define SPDIF_SIC_RXFIFOUNOV ((uint32_t)(1 << 4))
  6630. #define SPDIF_SIC_RXFIFORESYN ((uint32_t)(1 << 3))
  6631. #define SPDIF_SIC_LOCKLOSS ((uint32_t)(1 << 2))
  6632. #define SPDIF_STC_SYSCLK_DF(n) ((uint32_t)(((n) & 0x1ff) << 11))
  6633. #define SPDIF_STC_TXCLK_SOURCE(n) ((uint32_t)(((n) & 0x07) << 8))
  6634. #define SPDIF_STC_TX_ALL_CLK_EN ((uint32_t)(1 << 7))
  6635. #define SPDIF_STC_TXCLK_DF(n) ((uint32_t)(((n) & 0x7f) << 0))
  6636. // 52.7: page 2969
  6637. #define IMXRT_SRC (*(IMXRT_REGISTER32_t *)0x400F8000)
  6638. #define SRC_SCR (IMXRT_SRC.offset000)
  6639. #define SRC_SBMR1 (IMXRT_SRC.offset004)
  6640. #define SRC_SRSR (IMXRT_SRC.offset008)
  6641. #define SRC_SBMR2 (IMXRT_SRC.offset01C)
  6642. /*
  6643. These register are used by the ROM code and should not be used by application software
  6644. #define SRC_GPR1 (IMXRT_SRC.offset020)
  6645. #define SRC_GPR2 (IMXRT_SRC.offset024)
  6646. #define SRC_GPR3 (IMXRT_SRC.offset028)
  6647. #define SRC_GPR4 (IMXRT_SRC.offset02C)
  6648. #define SRC_GPR5 (IMXRT_SRC.offset030)
  6649. #define SRC_GPR6 (IMXRT_SRC.offset034)
  6650. #define SRC_GPR7 (IMXRT_SRC.offset038)
  6651. #define SRC_GPR8 (IMXRT_SRC.offset03C)
  6652. #define SRC_GPR9 (IMXRT_SRC.offset040)
  6653. #define SRC_GPR10 (IMXRT_SRC.offset044)
  6654. */
  6655. #define SRC_SCR_MASK_WDOG3_RST(n) ((uint32_t)(((n) & 0x0f) << 28))
  6656. #define SRC_SCR_DBG_RST_MSK_PG ((uint32_t)(1 << 25))
  6657. #define SRC_SCR_CORE0_DBG_RST ((uint32_t)(1 << 17))
  6658. #define SRC_SCR_CORE0_RST ((uint32_t)(1 << 13))
  6659. #define SRC_SCR_MASK_WDOG_RST(n) ((uint32_t)(((n) & 0x0f) << 7))
  6660. #define SRC_SBMR1_BOOT_CFG4(n) ((uint32_t)(((n) & 0xff) << 24))
  6661. #define SRC_SBMR1_BOOT_CFG3(n) ((uint32_t)(((n) & 0xff) << 16))
  6662. #define SRC_SBMR1_BOOT_CFG2(n) ((uint32_t)(((n) & 0xff) << 8))
  6663. #define SRC_SBMR1_BOOT_CFG1(n) ((uint32_t)(((n) & 0xff) << 0))
  6664. #define SRC_SRSR_TEMPSENSE_RST_B ((uint32_t)(1 << 8))
  6665. #define SRC_SRSR_WDOG3_RST_B ((uint32_t)(1 << 7))
  6666. #define SRC_SRSR_JTAG_SW_RST ((uint32_t)(1 << 6))
  6667. #define SRC_SRSR_JTAG_RST_B ((uint32_t)(1 << 5))
  6668. #define SRC_SRSR_WDOG_RST_B ((uint32_t)(1 << 4))
  6669. #define SRC_SRSR_IPP_USER_RESET_B ((uint32_t)(1 << 3))
  6670. #define SRC_SRSR_CSU_RESET_B ((uint32_t)(1 << 2))
  6671. #define SRC_SRSR_LOCKUP_SYSRESETREQ ((uint32_t)(1 << 1))
  6672. #define SRC_SRSR_IPP_RESET_B ((uint32_t)(1 << 0))
  6673. #define SRC_SBMR2_BMOD(n) ((uint32_t)(((n) & 0x03) << 24))
  6674. #define SRC_SBMR2_BT_FUSE_SEL ((uint32_t)(1 << 4))
  6675. #define SRC_SBMR2_DIR_BT_DIS ((uint32_t)(1 << 3))
  6676. #define SRC_SBMR2_SEC_CONFIG(n) ((uint32_t)(((n) & 0x03) << 0))
  6677. // 53.3: page 2986
  6678. #define IMXRT_TEMPMON (*(IMXRT_REGISTER32_t *)0x400D8180)
  6679. #define TEMPMON_TEMPSENSE0 (IMXRT_TEMPMON.offset000)
  6680. #define TEMPMON_TEMPSENSE0_SET (IMXRT_TEMPMON.offset004)
  6681. #define TEMPMON_TEMPSENSE0_CLR (IMXRT_TEMPMON.offset008)
  6682. #define TEMPMON_TEMPSENSE0_TOG (IMXRT_TEMPMON.offset08c)
  6683. #define TEMPMON_TEMPSENSE1 (IMXRT_TEMPMON.offset090)
  6684. #define TEMPMON_TEMPSENSE1_SET (IMXRT_TEMPMON.offset094)
  6685. #define TEMPMON_TEMPSENSE1_CLR (IMXRT_TEMPMON.offset098)
  6686. #define TEMPMON_TEMPSENSE1_TOG (IMXRT_TEMPMON.offset09C)
  6687. #define TEMPMON_TEMPSENSE2 (IMXRT_TEMPMON.offset110)
  6688. #define TEMPMON_TEMPSENSE2_SET (IMXRT_TEMPMON.offset114)
  6689. #define TEMPMON_TEMPSENSE2_CLR (IMXRT_TEMPMON.offset118)
  6690. #define TEMPMON_TEMPSENSE2_TOG (IMXRT_TEMPMON.offset11C)
  6691. #define TEMPMON_CTRL0_ALARM_VALUE(n) ((uint32_t)(((n) & 0x0fff) << 20))
  6692. #define TEMPMON_CTRL0_TEMP_CNT(n) ((uint32_t)(((n) & 0x0fff) << 8))
  6693. #define TEMPMON_CTRL0_FINISHED ((uint32_t)(1 << 2))
  6694. #define TEMPMON_CTRL0_MEASURE_TEMP ((uint32_t)(1 << 1))
  6695. #define TEMPMON_CTRL0_POWER_DOWN ((uint32_t)(1 << 0))
  6696. #define TEMPMON_CTRL1_MEASURE_FREQ(n) ((uint32_t)(((n) & 0xffff) << 0))
  6697. #define TEMPMON_CTRL2_PANIC_ALARM_VALUE(n) ((uint32_t)(((n) & 0x0fff) << 16))
  6698. #define TEMPMON_CTRL2_LOW_ALARM_VALUE(n) ((uint32_t)(((n) & 0x0fff) << 0))
  6699. // 54.3: page 2998
  6700. #define IMXRT_TSC (*(IMXRT_REGISTER32_t *)0x400E0000)
  6701. #define TSC_BASIC_SETTING (IMXRT_TSC.offset000)
  6702. #define TSC_PS_INPUT_BUFFER_ADDR (IMXRT_TSC.offset010)
  6703. #define TSC_FLOW_CONTROL (IMXRT_TSC.offset020)
  6704. #define TSC_MEASEURE_VALUE (IMXRT_TSC.offset030)
  6705. #define TSC_INT_EN (IMXRT_TSC.offset040)
  6706. #define TSC_INT_SIG_EN (IMXRT_TSC.offset050)
  6707. #define TSC_INT_STATUS (IMXRT_TSC.offset060)
  6708. #define TSC_DEBUG_MODE (IMXRT_TSC.offset070)
  6709. #define TSC_DEBUG_MODE2 (IMXRT_TSC.offset080)
  6710. // 55.4.1.1: page 3022
  6711. #define IMXRT_USB1 (*(IMXRT_REGISTER32_t *)0x402E0000)
  6712. #define USB1_ID (IMXRT_USB1.offset000)
  6713. #define USB1_HWGENERAL (IMXRT_USB1.offset004)
  6714. #define USB1_HWHOST (IMXRT_USB1.offset008)
  6715. #define USB1_HWDEVICE (IMXRT_USB1.offset00C)
  6716. #define USB1_HWTXBUF (IMXRT_USB1.offset010)
  6717. #define USB1_HWRXBUF (IMXRT_USB1.offset014)
  6718. #define USB1_GPTIMER0LD (IMXRT_USB1.offset080)
  6719. #define USB1_GPTIMER0CTRL (IMXRT_USB1.offset084)
  6720. #define USB1_GPTIMER1LD (IMXRT_USB1.offset088)
  6721. #define USB1_GPTIMER1CTRL (IMXRT_USB1.offset08C)
  6722. #define USB1_SBUSCFG (IMXRT_USB1.offset090)
  6723. #define USB1_HCIVERSION (IMXRT_USB1.offset100)
  6724. #define USB1_HCSPARAMS (IMXRT_USB1.offset104)
  6725. #define USB1_HCCPARAMS (IMXRT_USB1.offset108)
  6726. #define USB1_DCIVERSION (IMXRT_USB1.offset120)
  6727. #define USB1_DCCPARAMS (IMXRT_USB1.offset124)
  6728. #define USB1_USBCMD (IMXRT_USB1.offset140)
  6729. #define USB1_USBSTS (IMXRT_USB1.offset144)
  6730. #define USB1_USBINTR (IMXRT_USB1.offset148)
  6731. #define USB1_FRINDEX (IMXRT_USB1.offset14C)
  6732. #define USB1_PERIODICLISTBASE (IMXRT_USB1.offset154)
  6733. #define USB1_DEVICEADDR (IMXRT_USB1.offset154)
  6734. #define USB1_ASYNCLISTADDR (IMXRT_USB1.offset158)
  6735. #define USB1_ENDPOINTLISTADDR (IMXRT_USB1.offset158)
  6736. #define USB1_BURSTSIZE (IMXRT_USB1.offset160)
  6737. #define USB1_TXFILLTUNING (IMXRT_USB1.offset164)
  6738. #define USB1_ENDPTNAK (IMXRT_USB1.offset178)
  6739. #define USB1_ENDPTNAKEN (IMXRT_USB1.offset17C)
  6740. #define USB1_CONFIGFLAG (IMXRT_USB1.offset180)
  6741. #define USB1_PORTSC1 (IMXRT_USB1.offset184)
  6742. #define USB1_OTGSC (IMXRT_USB1.offset1A4)
  6743. #define USB1_USBMODE (IMXRT_USB1.offset1A8)
  6744. #define USB1_ENDPTSETUPSTAT (IMXRT_USB1.offset1AC)
  6745. #define USB1_ENDPTPRIME (IMXRT_USB1.offset1B0)
  6746. #define USB1_ENDPTFLUSH (IMXRT_USB1.offset1B4)
  6747. #define USB1_ENDPTSTATUS (IMXRT_USB1.offset1B8)
  6748. #define USB1_ENDPTCOMPLETE (IMXRT_USB1.offset1BC)
  6749. #define USB1_ENDPTCTRL0 (IMXRT_USB1.offset1C0)
  6750. #define USB1_ENDPTCTRL1 (IMXRT_USB1.offset1C4)
  6751. #define USB1_ENDPTCTRL2 (IMXRT_USB1.offset1C8)
  6752. #define USB1_ENDPTCTRL3 (IMXRT_USB1.offset1CC)
  6753. #define USB1_ENDPTCTRL4 (IMXRT_USB1.offset1D0)
  6754. #define USB1_ENDPTCTRL5 (IMXRT_USB1.offset1D4)
  6755. #define USB1_ENDPTCTRL6 (IMXRT_USB1.offset1D8)
  6756. #define USB1_ENDPTCTRL7 (IMXRT_USB1.offset1DC)
  6757. #define IMXRT_USB2 (*(IMXRT_REGISTER32_t *)0x402DC000)
  6758. #define USB2_ID (IMXRT_USB2.offset000)
  6759. #define USB2_HWGENERAL (IMXRT_USB2.offset004)
  6760. #define USB2_HWHOST (IMXRT_USB2.offset008)
  6761. #define USB2_HWDEVICE (IMXRT_USB2.offset00C)
  6762. #define USB2_HWTXBUF (IMXRT_USB2.offset010)
  6763. #define USB2_HWRXBUF (IMXRT_USB2.offset014)
  6764. #define USB2_GPTIMER0LD (IMXRT_USB2.offset080)
  6765. #define USB2_GPTIMER0CTRL (IMXRT_USB2.offset084)
  6766. #define USB2_GPTIMER1LD (IMXRT_USB2.offset088)
  6767. #define USB2_GPTIMER1CTRL (IMXRT_USB2.offset08C)
  6768. #define USB2_SBUSCFG (IMXRT_USB2.offset090)
  6769. #define USB2_HCIVERSION (IMXRT_USB2.offset100)
  6770. #define USB2_HCSPARAMS (IMXRT_USB2.offset104)
  6771. #define USB2_HCCPARAMS (IMXRT_USB2.offset108)
  6772. #define USB2_DCIVERSION (IMXRT_USB2.offset120)
  6773. #define USB2_DCCPARAMS (IMXRT_USB2.offset124)
  6774. #define USB2_USBCMD (IMXRT_USB2.offset140)
  6775. #define USB2_USBSTS (IMXRT_USB2.offset144)
  6776. #define USB2_USBINTR (IMXRT_USB2.offset148)
  6777. #define USB2_FRINDEX (IMXRT_USB2.offset14C)
  6778. #define USB2_PERIODICLISTBASE (IMXRT_USB2.offset154)
  6779. #define USB2_DEVICEADDR (IMXRT_USB2.offset154)
  6780. #define USB2_ASYNCLISTADDR (IMXRT_USB2.offset158)
  6781. #define USB2_ENDPOINTLISTADDR (IMXRT_USB2.offset158)
  6782. #define USB2_BURSTSIZE (IMXRT_USB2.offset160)
  6783. #define USB2_TXFILLTUNING (IMXRT_USB2.offset164)
  6784. #define USB2_ENDPTNAK (IMXRT_USB2.offset178)
  6785. #define USB2_ENDPTNAKEN (IMXRT_USB2.offset17C)
  6786. #define USB2_CONFIGFLAG (IMXRT_USB2.offset180)
  6787. #define USB2_PORTSC1 (IMXRT_USB2.offset184)
  6788. #define USB2_OTGSC (IMXRT_USB2.offset1A4)
  6789. #define USB2_USBMODE (IMXRT_USB2.offset1A8)
  6790. #define USB2_ENDPTSETUPSTAT (IMXRT_USB2.offset1AC)
  6791. #define USB2_ENDPTPRIME (IMXRT_USB2.offset1B0)
  6792. #define USB2_ENDPTFLUSH (IMXRT_USB2.offset1B4)
  6793. #define USB2_ENDPTSTATUS (IMXRT_USB2.offset1B8)
  6794. #define USB2_ENDPTCOMPLETE (IMXRT_USB2.offset1BC)
  6795. #define USB2_ENDPTCTRL0 (IMXRT_USB2.offset1C0)
  6796. #define USB2_ENDPTCTRL1 (IMXRT_USB2.offset1C4)
  6797. #define USB2_ENDPTCTRL2 (IMXRT_USB2.offset1C8)
  6798. #define USB2_ENDPTCTRL3 (IMXRT_USB2.offset1CC)
  6799. #define USB2_ENDPTCTRL4 (IMXRT_USB2.offset1D0)
  6800. #define USB2_ENDPTCTRL5 (IMXRT_USB2.offset1D4)
  6801. #define USB2_ENDPTCTRL6 (IMXRT_USB2.offset1D8)
  6802. #define USB2_ENDPTCTRL7 (IMXRT_USB2.offset1DC)
  6803. #define USB_USBCMD_ITC(n) ((uint32_t)(((n) & 0xFF) << 16))
  6804. #define USB_USBCMD_FS_2 ((uint32_t)(1<<15))
  6805. #define USB_USBCMD_SUTW ((uint32_t)(1<<13))
  6806. #define USB_USBCMD_ATDTW ((uint32_t)(1<<12))
  6807. #define USB_USBCMD_ASPE ((uint32_t)(1<<11))
  6808. #define USB_USBCMD_ASP(n) ((uint32_t)(((n) & 0x03) << 8))
  6809. #define USB_USBCMD_IAA ((uint32_t)(1<<6))
  6810. #define USB_USBCMD_ASE ((uint32_t)(1<<5))
  6811. #define USB_USBCMD_PSE ((uint32_t)(1<<4))
  6812. #define USB_USBCMD_FS_1(n) ((uint32_t)(((n) & 0x03) << 2))
  6813. #define USB_USBCMD_RST ((uint32_t)(1<<1))
  6814. #define USB_USBCMD_RS ((uint32_t)(1<<0))
  6815. #define USB_USBSTS_TI1 ((uint32_t)(1<<25))
  6816. #define USB_USBSTS_TI0 ((uint32_t)(1<<24))
  6817. #define USB_USBSTS_NAKI ((uint32_t)(1<<16))
  6818. #define USB_USBSTS_AS ((uint32_t)(1<<15))
  6819. #define USB_USBSTS_PS ((uint32_t)(1<<14))
  6820. #define USB_USBSTS_RCL ((uint32_t)(1<<13))
  6821. #define USB_USBSTS_HCH ((uint32_t)(1<<12))
  6822. #define USB_USBSTS_ULPII ((uint32_t)(1<<10))
  6823. #define USB_USBSTS_SLI ((uint32_t)(1<<8))
  6824. #define USB_USBSTS_SRI ((uint32_t)(1<<7))
  6825. #define USB_USBSTS_URI ((uint32_t)(1<<6))
  6826. #define USB_USBSTS_AAI ((uint32_t)(1<<5))
  6827. #define USB_USBSTS_SEI ((uint32_t)(1<<4))
  6828. #define USB_USBSTS_FRI ((uint32_t)(1<<3))
  6829. #define USB_USBSTS_PCI ((uint32_t)(1<<2))
  6830. #define USB_USBSTS_UEI ((uint32_t)(1<<1))
  6831. #define USB_USBSTS_UI ((uint32_t)(1<<0))
  6832. #define USB_USBINTR_TIE1 ((uint32_t)(1<<25))
  6833. #define USB_USBINTR_TIE0 ((uint32_t)(1<<24))
  6834. #define USB_USBINTR_UPIE ((uint32_t)(1<<19))
  6835. #define USB_USBINTR_UAIE ((uint32_t)(1<<18))
  6836. #define USB_USBINTR_NAKE ((uint32_t)(1<<16))
  6837. #define USB_USBINTR_ULPIE ((uint32_t)(1<<10))
  6838. #define USB_USBINTR_SLE ((uint32_t)(1<<8))
  6839. #define USB_USBINTR_SRE ((uint32_t)(1<<7))
  6840. #define USB_USBINTR_URE ((uint32_t)(1<<6))
  6841. #define USB_USBINTR_AAE ((uint32_t)(1<<5))
  6842. #define USB_USBINTR_SEE ((uint32_t)(1<<4))
  6843. #define USB_USBINTR_FRE ((uint32_t)(1<<3))
  6844. #define USB_USBINTR_PCE ((uint32_t)(1<<2))
  6845. #define USB_USBINTR_UEE ((uint32_t)(1<<1))
  6846. #define USB_USBINTR_UE ((uint32_t)(1<<0))
  6847. #define USB_DEVICEADDR_USBADR(n) ((uint32_t)(((n) & 0x7F) << 25))
  6848. #define USB_DEVICEADDR_USBADRA ((uint32_t)(1<<24))
  6849. #define USB_PORTSC1_PTS_1(n) ((uint32_t)(((n) & 0x03) << 30))
  6850. #define USB_PORTSC1_STS ((uint32_t)(1<<29))
  6851. #define USB_PORTSC1_PTW ((uint32_t)(1<<28))
  6852. #define USB_PORTSC1_PSPD(n) ((uint32_t)(((n) & 0x03) << 26))
  6853. #define USB_PORTSC1_PTS_2 ((uint32_t)(1<<25))
  6854. #define USB_PORTSC1_PFSC ((uint32_t)(1<<24))
  6855. #define USB_PORTSC1_PHCD ((uint32_t)(1<<23))
  6856. #define USB_PORTSC1_WKOC ((uint32_t)(1<<22))
  6857. #define USB_PORTSC1_WKDC ((uint32_t)(1<<21))
  6858. #define USB_PORTSC1_WKCN ((uint32_t)(1<<20))
  6859. #define USB_PORTSC1_PTC(n) ((uint32_t)(((n) & 0x0F) << 16))
  6860. #define USB_PORTSC1_PIC(n) ((uint32_t)(((n) & 0x03) << 14))
  6861. #define USB_PORTSC1_PO ((uint32_t)(1<<13))
  6862. #define USB_PORTSC1_PP ((uint32_t)(1<<12))
  6863. #define USB_PORTSC1_LS(n) ((uint32_t)(((n) & 0x03) << 10))
  6864. #define USB_PORTSC1_HSP ((uint32_t)(1<<9))
  6865. #define USB_PORTSC1_PR ((uint32_t)(1<<8))
  6866. #define USB_PORTSC1_SUSP ((uint32_t)(1<<7))
  6867. #define USB_PORTSC1_FPR ((uint32_t)(1<<6))
  6868. #define USB_PORTSC1_OCC ((uint32_t)(1<<5))
  6869. #define USB_PORTSC1_OCA ((uint32_t)(1<<4))
  6870. #define USB_PORTSC1_PEC ((uint32_t)(1<<3))
  6871. #define USB_PORTSC1_PE ((uint32_t)(1<<2))
  6872. #define USB_PORTSC1_CSC ((uint32_t)(1<<1))
  6873. #define USB_PORTSC1_CCS ((uint32_t)(1<<0))
  6874. #define USB_USBMODE_SDIS ((uint32_t)(1<<4))
  6875. #define USB_USBMODE_SLOM ((uint32_t)(1<<3))
  6876. #define USB_USBMODE_ES ((uint32_t)(1<<2))
  6877. #define USB_USBMODE_CM(n) ((uint32_t)(((n) & 0x03) << 0))
  6878. #define USB_USBMODE_CM_MASK USB_USBMODE_CM(3)
  6879. #define USB_ENDPTCTRL_TXE ((uint32_t)(1<<23))
  6880. #define USB_ENDPTCTRL_TXR ((uint32_t)(1<<22))
  6881. #define USB_ENDPTCTRL_TXI ((uint32_t)(1<<21))
  6882. #define USB_ENDPTCTRL_TXT(n) ((uint32_t)(((n) & 0x03) << 18))
  6883. #define USB_ENDPTCTRL_TXD ((uint32_t)(1<<17))
  6884. #define USB_ENDPTCTRL_TXS ((uint32_t)(1<<16))
  6885. #define USB_ENDPTCTRL_RXE ((uint32_t)(1<<7))
  6886. #define USB_ENDPTCTRL_RXR ((uint32_t)(1<<6))
  6887. #define USB_ENDPTCTRL_RXI ((uint32_t)(1<<5))
  6888. #define USB_ENDPTCTRL_RXT(n) ((uint32_t)(((n) & 0x03) << 2))
  6889. #define USB_ENDPTCTRL_RXD ((uint32_t)(1<<0))
  6890. #define USB_ENDPTCTRL_RXS ((uint32_t)(1<<1))
  6891. // 56.3: page 3283
  6892. #define IMXRT_USBPHY1 (*(IMXRT_REGISTER32_t *)0x400D9000)
  6893. #define USBPHY1_PWD (IMXRT_USBPHY1.offset000)
  6894. #define USBPHY1_PWD_SET (IMXRT_USBPHY1.offset004)
  6895. #define USBPHY1_PWD_CLR (IMXRT_USBPHY1.offset008)
  6896. #define USBPHY1_PWD_TOG (IMXRT_USBPHY1.offset00C)
  6897. #define USBPHY1_TX (IMXRT_USBPHY1.offset010)
  6898. #define USBPHY1_TX_SET (IMXRT_USBPHY1.offset014)
  6899. #define USBPHY1_TX_CLR (IMXRT_USBPHY1.offset018)
  6900. #define USBPHY1_TX_TOG (IMXRT_USBPHY1.offset01C)
  6901. #define USBPHY1_RX (IMXRT_USBPHY1.offset020)
  6902. #define USBPHY1_RX_SET (IMXRT_USBPHY1.offset024)
  6903. #define USBPHY1_RX_CLR (IMXRT_USBPHY1.offset028)
  6904. #define USBPHY1_RX_TOG (IMXRT_USBPHY1.offset02C)
  6905. #define USBPHY1_CTRL (IMXRT_USBPHY1.offset030)
  6906. #define USBPHY1_CTRL_SET (IMXRT_USBPHY1.offset034)
  6907. #define USBPHY1_CTRL_CLR (IMXRT_USBPHY1.offset038)
  6908. #define USBPHY1_CTRL_TOG (IMXRT_USBPHY1.offset03C)
  6909. #define USBPHY1_STATUS (IMXRT_USBPHY1.offset040)
  6910. #define USBPHY1_DEBUG (IMXRT_USBPHY1.offset050)
  6911. #define USBPHY1_DEBUG_SET (IMXRT_USBPHY1.offset054)
  6912. #define USBPHY1_DEBUG_CLR (IMXRT_USBPHY1.offset058)
  6913. #define USBPHY1_DEBUG_TOG (IMXRT_USBPHY1.offset05C)
  6914. #define USBPHY1_DEBUG0_STATUS (IMXRT_USBPHY1.offset060)
  6915. #define USBPHY1_DEBUG1 (IMXRT_USBPHY1.offset070)
  6916. #define USBPHY1_DEBUG1_SET (IMXRT_USBPHY1.offset074)
  6917. #define USBPHY1_DEBUG1_CLR (IMXRT_USBPHY1.offset078)
  6918. #define USBPHY1_DEBUG1_TOG (IMXRT_USBPHY1.offset07C)
  6919. #define USBPHY1_VERSION (IMXRT_USBPHY1.offset080)
  6920. #define IMXRT_USBPHY2 (*(IMXRT_REGISTER32_t *)0x400DA000)
  6921. #define USBPHY2_PWD (IMXRT_USBPHY2.offset000)
  6922. #define USBPHY2_PWD_SET (IMXRT_USBPHY2.offset004)
  6923. #define USBPHY2_PWD_CLR (IMXRT_USBPHY2.offset008)
  6924. #define USBPHY2_PWD_TOG (IMXRT_USBPHY2.offset00C)
  6925. #define USBPHY2_TX (IMXRT_USBPHY2.offset010)
  6926. #define USBPHY2_TX_SET (IMXRT_USBPHY2.offset014)
  6927. #define USBPHY2_TX_CLR (IMXRT_USBPHY2.offset018)
  6928. #define USBPHY2_TX_TOG (IMXRT_USBPHY2.offset01C)
  6929. #define USBPHY2_RX (IMXRT_USBPHY2.offset020)
  6930. #define USBPHY2_RX_SET (IMXRT_USBPHY2.offset024)
  6931. #define USBPHY2_RX_CLR (IMXRT_USBPHY2.offset028)
  6932. #define USBPHY2_RX_TOG (IMXRT_USBPHY2.offset02C)
  6933. #define USBPHY2_CTRL (IMXRT_USBPHY2.offset030)
  6934. #define USBPHY2_CTRL_SET (IMXRT_USBPHY2.offset034)
  6935. #define USBPHY2_CTRL_CLR (IMXRT_USBPHY2.offset038)
  6936. #define USBPHY2_CTRL_TOG (IMXRT_USBPHY2.offset03C)
  6937. #define USBPHY2_STATUS (IMXRT_USBPHY2.offset040)
  6938. #define USBPHY2_DEBUG (IMXRT_USBPHY2.offset050)
  6939. #define USBPHY2_DEBUG_SET (IMXRT_USBPHY2.offset054)
  6940. #define USBPHY2_DEBUG_CLR (IMXRT_USBPHY2.offset058)
  6941. #define USBPHY2_DEBUG_TOG (IMXRT_USBPHY2.offset05C)
  6942. #define USBPHY2_DEBUG0_STATUS (IMXRT_USBPHY2.offset060)
  6943. #define USBPHY2_DEBUG1 (IMXRT_USBPHY2.offset070)
  6944. #define USBPHY2_DEBUG1_SET (IMXRT_USBPHY2.offset074)
  6945. #define USBPHY2_DEBUG1_CLR (IMXRT_USBPHY2.offset078)
  6946. #define USBPHY2_DEBUG1_TOG (IMXRT_USBPHY2.offset07C)
  6947. #define USBPHY2_VERSION (IMXRT_USBPHY2.offset080)
  6948. #define USBPHY_PWD_RXPWDRX ((uint32_t)(1<<20))
  6949. #define USBPHY_PWD_RXPWDDIFF ((uint32_t)(1<<19))
  6950. #define USBPHY_PWD_RXPWD1PT1 ((uint32_t)(1<<18))
  6951. #define USBPHY_PWD_RXPWDENV ((uint32_t)(1<<17))
  6952. #define USBPHY_PWD_TXPWDV2I ((uint32_t)(1<<12))
  6953. #define USBPHY_PWD_TXPWDIBIAS ((uint32_t)(1<<11))
  6954. #define USBPHY_PWD_TXPWDFS ((uint32_t)(1<<10))
  6955. #define USBPHY_TX_USBPHY_TX_EDGECTRL(n) ((uint32_t)(((n) & 0x07) << 26))
  6956. #define USBPHY_TX_TXCAL45DP(n) ((uint32_t)(((n) & 0x0F) << 16))
  6957. #define USBPHY_TX_TXCAL45DN(n) ((uint32_t)(((n) & 0x0F) << 8))
  6958. #define USBPHY_TX_D_CAL(n) ((uint32_t)(((n) & 0x0F) << 0))
  6959. #define USBPHY_RX_RXDBYPASS ((uint32_t)(1<<22))
  6960. #define USBPHY_RX_DISCONADJ(n) ((uint32_t)(((n) & 0x07) << 4))
  6961. #define USBPHY_RX_ENVADJ(n) ((uint32_t)(((n) & 0x07) << 0))
  6962. #define USBPHY_CTRL_SFTRST ((uint32_t)(1<<31))
  6963. #define USBPHY_CTRL_CLKGATE ((uint32_t)(1<<30))
  6964. #define USBPHY_CTRL_UTMI_SUSPENDM ((uint32_t)(1<<29))
  6965. #define USBPHY_CTRL_HOST_FORCE_LS_SE0 ((uint32_t)(1<<28))
  6966. #define USBPHY_CTRL_OTG_ID_VALUE ((uint32_t)(1<<27))
  6967. #define USBPHY_CTRL_FSDLL_RST_EN ((uint32_t)(1<<24))
  6968. #define USBPHY_CTRL_ENVBUSCHG_WKUP ((uint32_t)(1<<23))
  6969. #define USBPHY_CTRL_ENIDCHG_WKUP ((uint32_t)(1<<22))
  6970. #define USBPHY_CTRL_ENDPDMCHG_WKUP ((uint32_t)(1<<21))
  6971. #define USBPHY_CTRL_ENAUTOCLR_PHY_PWD ((uint32_t)(1<<20))
  6972. #define USBPHY_CTRL_ENAUTOCLR_CLKGATE ((uint32_t)(1<<19))
  6973. #define USBPHY_CTRL_ENAUTO_PWRON_PLL ((uint32_t)(1<<18))
  6974. #define USBPHY_CTRL_WAKEUP_IRQ ((uint32_t)(1<<17))
  6975. #define USBPHY_CTRL_ENIRQWAKEUP ((uint32_t)(1<<16))
  6976. #define USBPHY_CTRL_ENUTMILEVEL3 ((uint32_t)(1<<15))
  6977. #define USBPHY_CTRL_ENUTMILEVEL2 ((uint32_t)(1<<14))
  6978. #define USBPHY_CTRL_DATA_ON_LRADC ((uint32_t)(1<<13))
  6979. #define USBPHY_CTRL_DEVPLUGIN_IRQ ((uint32_t)(1<<12))
  6980. #define USBPHY_CTRL_ENIRQDEVPLUGIN ((uint32_t)(1<<11))
  6981. #define USBPHY_CTRL_RESUME_IRQ ((uint32_t)(1<<10))
  6982. #define USBPHY_CTRL_ENIRQRESUMEDETECT ((uint32_t)(1<<9))
  6983. #define USBPHY_CTRL_RESUMEIRQSTICKY ((uint32_t)(1<<8))
  6984. #define USBPHY_CTRL_ENOTGIDDETECT ((uint32_t)(1<<7))
  6985. #define USBPHY_CTRL_OTG_ID_CHG_IRQ ((uint32_t)(1<<6))
  6986. #define USBPHY_CTRL_DEVPLUGIN_POLARITY ((uint32_t)(1<<5))
  6987. #define USBPHY_CTRL_ENDEVPLUGINDETECT ((uint32_t)(1<<4))
  6988. #define USBPHY_CTRL_HOSTDISCONDETECT_IRQ ((uint32_t)(1<<3))
  6989. #define USBPHY_CTRL_ENIRQHOSTDISCON ((uint32_t)(1<<2))
  6990. #define USBPHY_CTRL_ENHOSTDISCONDETECT ((uint32_t)(1<<1))
  6991. #define USBPHY_CTRL_ENOTG_ID_CHG_IRQ ((uint32_t)(1<<0))
  6992. // 57.9.1.1: page 3381
  6993. #define IMXRT_USDHC1 (*(IMXRT_REGISTER32_t *)0x402C0000)
  6994. #define USDHC1_DS_ADDR (IMXRT_USDHC1.offset000)
  6995. #define USDHC1_BLK_ATT (IMXRT_USDHC1.offset004)
  6996. #define USDHC1_CMD_ARG (IMXRT_USDHC1.offset008)
  6997. #define USDHC1_CMD_XFR_TYP (IMXRT_USDHC1.offset00C)
  6998. #define USDHC1_CMD_RSP0 (IMXRT_USDHC1.offset010)
  6999. #define USDHC1_CMD_RSP1 (IMXRT_USDHC1.offset014)
  7000. #define USDHC1_CMD_RSP2 (IMXRT_USDHC1.offset018)
  7001. #define USDHC1_CMD_RSP3 (IMXRT_USDHC1.offset01C)
  7002. #define USDHC1_DATA_BUFF_ACC_PORT (IMXRT_USDHC1.offset020)
  7003. #define USDHC1_PRES_STATE (IMXRT_USDHC1.offset024)
  7004. #define USDHC1_PROT_CTRL (IMXRT_USDHC1.offset028)
  7005. #define USDHC1_SYS_CTRL (IMXRT_USDHC1.offset02C)
  7006. #define USDHC1_INT_STATUS (IMXRT_USDHC1.offset030)
  7007. #define USDHC1_INT_STATUS_EN (IMXRT_USDHC1.offset034)
  7008. #define USDHC1_INT_SIGNAL_EN (IMXRT_USDHC1.offset038)
  7009. #define USDHC1_AUTOCMD12_ERR_STATUS (IMXRT_USDHC1.offset03C)
  7010. #define USDHC1_HOST_CTRL_CAP (IMXRT_USDHC1.offset040)
  7011. #define USDHC1_WTMK_LVL (IMXRT_USDHC1.offset044)
  7012. #define USDHC1_MIX_CTRL (IMXRT_USDHC1.offset048)
  7013. #define USDHC1_FORCE_EVENT (IMXRT_USDHC1.offset050)
  7014. #define USDHC1_ADMA_ERR_STATUS (IMXRT_USDHC1.offset054)
  7015. #define USDHC1_ADMA_SYS_ADDR (IMXRT_USDHC1.offset058)
  7016. #define USDHC1_DLL_CTRL (IMXRT_USDHC1.offset060)
  7017. #define USDHC1_DLL_STATUS (IMXRT_USDHC1.offset064)
  7018. #define USDHC1_CLK_TUNE_CTRL_STATUS (IMXRT_USDHC1.offset068)
  7019. #define USDHC1_VEND_SPEC (IMXRT_USDHC1.offset0C0)
  7020. #define USDHC1_MMC_BOOT (IMXRT_USDHC1.offset0C4)
  7021. #define USDHC1_VEND_SPEC2 (IMXRT_USDHC1.offset0C8)
  7022. #define USDHC1_TUNING_CTRL (IMXRT_USDHC1.offset0CC)
  7023. #define IMXRT_USDHC2 (*(IMXRT_REGISTER32_t *)0x402C4000)
  7024. #define USDHC2_DS_ADDR (IMXRT_USDHC2.offset000)
  7025. #define USDHC2_BLK_ATT (IMXRT_USDHC2.offset004)
  7026. #define USDHC2_CMD_ARG (IMXRT_USDHC2.offset008)
  7027. #define USDHC2_CMD_XFR_TYP (IMXRT_USDHC2.offset00C)
  7028. #define USDHC2_CMD_RSP0 (IMXRT_USDHC2.offset010)
  7029. #define USDHC2_CMD_RSP1 (IMXRT_USDHC2.offset014)
  7030. #define USDHC2_CMD_RSP2 (IMXRT_USDHC2.offset018)
  7031. #define USDHC2_CMD_RSP3 (IMXRT_USDHC2.offset01C)
  7032. #define USDHC2_DATA_BUFF_ACC_PORT (IMXRT_USDHC2.offset020)
  7033. #define USDHC2_PRES_STATE (IMXRT_USDHC2.offset024)
  7034. #define USDHC2_PROT_CTRL (IMXRT_USDHC2.offset028)
  7035. #define USDHC2_SYS_CTRL (IMXRT_USDHC2.offset02C)
  7036. #define USDHC2_INT_STATUS (IMXRT_USDHC2.offset030)
  7037. #define USDHC2_INT_STATUS_EN (IMXRT_USDHC2.offset034)
  7038. #define USDHC2_INT_SIGNAL_EN (IMXRT_USDHC2.offset038)
  7039. #define USDHC2_AUTOCMD12_ERR_STATUS (IMXRT_USDHC2.offset03C)
  7040. #define USDHC2_HOST_CTRL_CAP (IMXRT_USDHC2.offset040)
  7041. #define USDHC2_WTMK_LVL (IMXRT_USDHC2.offset044)
  7042. #define USDHC2_MIX_CTRL (IMXRT_USDHC2.offset048)
  7043. #define USDHC2_FORCE_EVENT (IMXRT_USDHC2.offset050)
  7044. #define USDHC2_ADMA_ERR_STATUS (IMXRT_USDHC2.offset054)
  7045. #define USDHC2_ADMA_SYS_ADDR (IMXRT_USDHC2.offset058)
  7046. #define USDHC2_DLL_CTRL (IMXRT_USDHC2.offset060)
  7047. #define USDHC2_DLL_STATUS (IMXRT_USDHC2.offset064)
  7048. #define USDHC2_CLK_TUNE_CTRL_STATUS (IMXRT_USDHC2.offset068)
  7049. #define USDHC2_VEND_SPEC (IMXRT_USDHC2.offset0C0)
  7050. #define USDHC2_MMC_BOOT (IMXRT_USDHC2.offset0C4)
  7051. #define USDHC2_VEND_SPEC2 (IMXRT_USDHC2.offset0C8)
  7052. #define USDHC2_TUNING_CTRL (IMXRT_USDHC2.offset0CC)
  7053. // 58.7.1.1: page 3461
  7054. #define IMXRT_WDOG1 (*(IMXRT_REGISTER16_t *)0x400B8000)
  7055. #define WDOG1_WCR (IMXRT_WDOG1.offset000)
  7056. #define WDOG1_WSR (IMXRT_WDOG1.offset002)
  7057. #define WDOG1_WRSR (IMXRT_WDOG1.offset004)
  7058. #define WDOG1_WICR (IMXRT_WDOG1.offset006)
  7059. #define WDOG1_WMCR (IMXRT_WDOG1.offset008)
  7060. #define IMXRT_WDOG2 (*(IMXRT_REGISTER16_t *)0x400D0000)
  7061. #define WDOG2_WCR (IMXRT_WDOG2.offset000)
  7062. #define WDOG2_WSR (IMXRT_WDOG2.offset002)
  7063. #define WDOG2_WRSR (IMXRT_WDOG2.offset004)
  7064. #define WDOG2_WICR (IMXRT_WDOG2.offset006)
  7065. #define WDOG2_WMCR (IMXRT_WDOG2.offset008)
  7066. #define WDOG_WCR_WDZST ((uint16_t)(1<<0))
  7067. #define WDOG_WCR_WDBG ((uint16_t)(1<<1))
  7068. #define WDOG_WCR_WDE ((uint16_t)(1<<2))
  7069. #define WDOG_WCR_WDT ((uint16_t)(1<<3))
  7070. #define WDOG_WCR_SRS ((uint16_t)(1<<4))
  7071. #define WDOG_WCR_WDA ((uint16_t)(1<<5))
  7072. #define WDOG_WCR_SRE ((uint16_t)(1<<6))
  7073. #define WDOG_WCR_WDW ((uint16_t)(1<<7))
  7074. #define WDOG_WCR_WT(n) ((uint16_t)(((n) & 0xFF) << 8))
  7075. #define WDOG_WRSR_SFTW ((uint16_t)(1<<0))
  7076. #define WDOG_WRSR_TOUT ((uint16_t)(1<<1))
  7077. #define WDOG_WRSR_POR ((uint16_t)(1<<4))
  7078. // 59.3.1.1: page 3471
  7079. #define IMXRT_WDOG3 (*(IMXRT_REGISTER32_t *)0x400BC000)
  7080. #define WDOG3_CS (IMXRT_WDOG3.offset000)
  7081. #define WDOG3_CNT (IMXRT_WDOG3.offset004)
  7082. #define WDOG3_TOVAL (IMXRT_WDOG3.offset008)
  7083. #define WDOG3_WIN (IMXRT_WDOG3.offset00C)
  7084. #define WDOG_CS_STOP ((uint16_t)(1<<0))
  7085. #define WDOG_CS_WAIT ((uint16_t)(1<<1))
  7086. #define WDOG_CS_DBG ((uint16_t)(1<<2))
  7087. #define WDOG_CS_TST(n) ((uint16_t)(((n) & 0x03) << 3))
  7088. #define WDOG_CS_UPDATE ((uint16_t)(1<<5))
  7089. #define WDOG_CS_INT ((uint16_t)(1<<6))
  7090. #define WDOG_CS_EN ((uint16_t)(1<<7))
  7091. #define WDOG_CS_CLK(n) ((uint16_t)(((n) & 0x03) << 8))
  7092. #define WDOG_CS_RCS ((uint16_t)(1<<10))
  7093. #define WDOG_CS_ULK ((uint16_t)(1<<11))
  7094. #define WDOG_CS_PRES ((uint16_t)(1<<12))
  7095. #define WDOG_CS_CMD32EN ((uint16_t)(1<<13))
  7096. #define WDOG_CS_FLG ((uint16_t)(1<<14))
  7097. #define WDOG_CS_WIN ((uint16_t)(1<<15))
  7098. // 60.4: page 3491
  7099. #define IMXRT_XBARA1 (*(IMXRT_REGISTER16_t *)0x403BC000)
  7100. #define XBARA1_SEL0 (IMXRT_XBARA1.offset000)
  7101. #define XBARA1_SEL1 (IMXRT_XBARA1.offset002)
  7102. #define XBARA1_SEL2 (IMXRT_XBARA1.offset004)
  7103. #define XBARA1_SEL3 (IMXRT_XBARA1.offset006)
  7104. #define XBARA1_SEL4 (IMXRT_XBARA1.offset008)
  7105. #define XBARA1_SEL5 (IMXRT_XBARA1.offset00A)
  7106. #define XBARA1_SEL6 (IMXRT_XBARA1.offset00C)
  7107. #define XBARA1_SEL7 (IMXRT_XBARA1.offset00E)
  7108. #define XBARA1_SEL8 (IMXRT_XBARA1.offset010)
  7109. #define XBARA1_SEL9 (IMXRT_XBARA1.offset012)
  7110. #define XBARA1_SEL10 (IMXRT_XBARA1.offset014)
  7111. #define XBARA1_SEL11 (IMXRT_XBARA1.offset016)
  7112. #define XBARA1_SEL12 (IMXRT_XBARA1.offset018)
  7113. #define XBARA1_SEL13 (IMXRT_XBARA1.offset01A)
  7114. #define XBARA1_SEL14 (IMXRT_XBARA1.offset01C)
  7115. #define XBARA1_SEL15 (IMXRT_XBARA1.offset01E)
  7116. #define XBARA1_SEL16 (IMXRT_XBARA1.offset020)
  7117. #define XBARA1_SEL17 (IMXRT_XBARA1.offset022)
  7118. #define XBARA1_SEL18 (IMXRT_XBARA1.offset024)
  7119. #define XBARA1_SEL19 (IMXRT_XBARA1.offset026)
  7120. #define XBARA1_SEL20 (IMXRT_XBARA1.offset028)
  7121. #define XBARA1_SEL21 (IMXRT_XBARA1.offset02A)
  7122. #define XBARA1_SEL22 (IMXRT_XBARA1.offset02C)
  7123. #define XBARA1_SEL23 (IMXRT_XBARA1.offset02E)
  7124. #define XBARA1_SEL24 (IMXRT_XBARA1.offset030)
  7125. #define XBARA1_SEL25 (IMXRT_XBARA1.offset032)
  7126. #define XBARA1_SEL26 (IMXRT_XBARA1.offset034)
  7127. #define XBARA1_SEL27 (IMXRT_XBARA1.offset036)
  7128. #define XBARA1_SEL28 (IMXRT_XBARA1.offset038)
  7129. #define XBARA1_SEL29 (IMXRT_XBARA1.offset03A)
  7130. #define XBARA1_CTRL0 (IMXRT_XBARA1.offset03C)
  7131. #define XBARA1_CTRL1 (IMXRT_XBARA1.offset03E)
  7132. // 61.3: page 3537
  7133. #define IMXRT_XBARB2 (*(IMXRT_REGISTER16_t *)0x403C0000)
  7134. #define XBARB2_SEL0 (IMXRT_XBARB2.offset000)
  7135. #define XBARB2_SEL1 (IMXRT_XBARB2.offset002)
  7136. #define XBARB2_SEL2 (IMXRT_XBARB2.offset004)
  7137. #define XBARB2_SEL3 (IMXRT_XBARB2.offset006)
  7138. #define XBARB2_SEL4 (IMXRT_XBARB2.offset008)
  7139. #define XBARB2_SEL5 (IMXRT_XBARB2.offset00A)
  7140. #define XBARB2_SEL6 (IMXRT_XBARB2.offset00C)
  7141. #define XBARB2_SEL7 (IMXRT_XBARB2.offset00E)
  7142. #define IMXRT_XBARB3 (*(IMXRT_REGISTER16_t *)0x403C4000)
  7143. #define XBARB3_SEL0 (IMXRT_XBARB3.offset000)
  7144. #define XBARB3_SEL1 (IMXRT_XBARB3.offset002)
  7145. #define XBARB3_SEL2 (IMXRT_XBARB3.offset004)
  7146. #define XBARB3_SEL3 (IMXRT_XBARB3.offset006)
  7147. #define XBARB3_SEL4 (IMXRT_XBARB3.offset008)
  7148. #define XBARB3_SEL5 (IMXRT_XBARB3.offset00A)
  7149. #define XBARB3_SEL6 (IMXRT_XBARB3.offset00C)
  7150. #define XBARB3_SEL7 (IMXRT_XBARB3.offset00E)
  7151. // 62.5: page 3548
  7152. #define IMXRT_XTALOSC24M (*(IMXRT_REGISTER32_t *)0x400D8000)
  7153. #define XTALOSC24M_MISC0 (IMXRT_XTALOSC24M.offset150)
  7154. #define XTALOSC24M_LOWPWR_CTRL (IMXRT_XTALOSC24M.offset270)
  7155. #define XTALOSC24M_LOWPWR_CTRL_SET (IMXRT_XTALOSC24M.offset274)
  7156. #define XTALOSC24M_LOWPWR_CTRL_CLR (IMXRT_XTALOSC24M.offset278)
  7157. #define XTALOSC24M_LOWPWR_CTRL_TOG (IMXRT_XTALOSC24M.offset27C)
  7158. #define XTALOSC24M_OSC_CONFIG0 (IMXRT_XTALOSC24M.offset2A0)
  7159. #define XTALOSC24M_OSC_CONFIG0_SET (IMXRT_XTALOSC24M.offset2A4)
  7160. #define XTALOSC24M_OSC_CONFIG0_CLR (IMXRT_XTALOSC24M.offset2A8)
  7161. #define XTALOSC24M_OSC_CONFIG0_TOG (IMXRT_XTALOSC24M.offset2AC)
  7162. #define XTALOSC24M_OSC_CONFIG1 (IMXRT_XTALOSC24M.offset2B0)
  7163. #define XTALOSC24M_OSC_CONFIG1_SET (IMXRT_XTALOSC24M.offset2B4)
  7164. #define XTALOSC24M_OSC_CONFIG1_CLR (IMXRT_XTALOSC24M.offset2B8)
  7165. #define XTALOSC24M_OSC_CONFIG1_TOG (IMXRT_XTALOSC24M.offset2BC)
  7166. #define XTALOSC24M_OSC_CONFIG2 (IMXRT_XTALOSC24M.offset2C0)
  7167. #define XTALOSC24M_OSC_CONFIG2_SET (IMXRT_XTALOSC24M.offset2C4)
  7168. #define XTALOSC24M_OSC_CONFIG2_CLR (IMXRT_XTALOSC24M.offset2C8)
  7169. #define XTALOSC24M_OSC_CONFIG2_TOG (IMXRT_XTALOSC24M.offset2CC)
  7170. // 0 = highest priority
  7171. // Cortex-M7: 0,16,32,48,64,80,96,112,128,144,160,176,192,208,224,240
  7172. #define NVIC_SET_PRIORITY(irqnum, priority) (*((volatile uint8_t *)0xE000E400 + (irqnum)) = (uint8_t)(priority))
  7173. #define NVIC_GET_PRIORITY(irqnum) (*((uint8_t *)0xE000E400 + (irqnum)))
  7174. #define __disable_irq() __asm__ volatile("CPSID i":::"memory");
  7175. #define __enable_irq() __asm__ volatile("CPSIE i":::"memory");
  7176. // System Control Space (SCS), ARMv7 ref manual, B3.2, page 708
  7177. #define SCB_CPUID (*(const uint32_t *)0xE000ED00) // CPUID Base Register
  7178. #define SCB_ICSR (*(volatile uint32_t *)0xE000ED04) // Interrupt Control and State
  7179. #define SCB_ICSR_NMIPENDSET ((uint32_t)(1<<31))
  7180. #define SCB_ICSR_PENDSVSET ((uint32_t)(1<<28))
  7181. #define SCB_ICSR_PENDSVCLR ((uint32_t)(1<<27))
  7182. #define SCB_ICSR_PENDSTSET ((uint32_t)(1<<26))
  7183. #define SCB_ICSR_PENDSTCLR ((uint32_t)(1<<25))
  7184. #define SCB_ICSR_ISRPREEMPT ((uint32_t)(1<<23))
  7185. #define SCB_ICSR_ISRPENDING ((uint32_t)(1<<22))
  7186. #define SCB_ICSR_RETTOBASE ((uint32_t)(1<<11))
  7187. #define SCB_VTOR (*(volatile uint32_t *)0xE000ED08) // Vector Table Offset
  7188. #define SCB_AIRCR (*(volatile uint32_t *)0xE000ED0C) // Application Interrupt & Reset
  7189. #define SCB_SCR (*(volatile uint32_t *)0xE000ED10) // System Control Register
  7190. #define SCB_SCR_SEVONPEND ((uint8_t)0x10) // Send Event on Pending bit
  7191. #define SCB_SCR_SLEEPDEEP ((uint8_t)0x04) // Sleep or Deep Sleep
  7192. #define SCB_SCR_SLEEPONEXIT ((uint8_t)0x02) // Sleep-on-exit
  7193. #define SCB_CCR (*(volatile uint32_t *)0xE000ED14) // Configuration and Control
  7194. #define SCB_CCR_BP ((uint32_t)(1<<18)) // Branch prediction enable
  7195. #define SCB_CCR_IC ((uint32_t)(1<<17)) // Instruction caches enable
  7196. #define SCB_CCR_DC ((uint32_t)(1<<16))
  7197. #define SCB_CCR_STKALIGN ((uint32_t)(1<<9))
  7198. #define SCB_CCR_BFHFNMIGN ((uint32_t)(1<<8))
  7199. #define SCB_CCR_DIV_0_TRP ((uint32_t)(1<<4))
  7200. #define SCB_CCR_UNALIGN_TRP ((uint32_t)(1<<3))
  7201. #define SCB_CCR_USERSETMPEND ((uint32_t)(1<<1))
  7202. #define SCB_CCR_NONBASETHRDENA ((uint32_t)(1<<0))
  7203. #define SCB_SHPR1 (*(volatile uint32_t *)0xE000ED18) // System Handler Priority 1
  7204. #define SCB_SHPR2 (*(volatile uint32_t *)0xE000ED1C) // System Handler Priority 2
  7205. #define SCB_SHPR3 (*(volatile uint32_t *)0xE000ED20) // System Handler Priority 3
  7206. #define SCB_SHCSR (*(volatile uint32_t *)0xE000ED24) // System Handler Control & State
  7207. #define SCB_CFSR (*(volatile uint32_t *)0xE000ED28) // Configurable Fault Status
  7208. #define SCB_HFSR (*(volatile uint32_t *)0xE000ED2C) // HardFault Status
  7209. #define SCB_DFSR (*(volatile uint32_t *)0xE000ED30) // Debug Fault Status
  7210. #define SCB_MMFAR (*(volatile uint32_t *)0xE000ED34) // MemManage Fault Address
  7211. #define SCB_BFAR (*(volatile uint32_t *)0xE000ED38) // Bus Fault Address
  7212. #define SCB_AFAR (*(volatile uint32_t *)0xE000ED3C) // Aux Fault Address
  7213. #define SCB_ID_PFR0 (*(const uint32_t *)0xE000ED40) // Processor Feature 0
  7214. #define SCB_ID_PFR1 (*(const uint32_t *)0xE000ED44) // Processor Feature 1
  7215. #define SCB_ID_DFR0 (*(const uint32_t *)0xE000ED48) // Debug Feature 0
  7216. #define SCB_ID_AFR0 (*(const uint32_t *)0xE000ED4C) // Auxiliary Feature 0
  7217. #define SCB_ID_MMFR0 (*(const uint32_t *)0xE000ED50) // Memory Model Feature 0
  7218. #define SCB_ID_MMFR1 (*(const uint32_t *)0xE000ED54) // Memory Model Feature 1
  7219. #define SCB_ID_MMFR2 (*(const uint32_t *)0xE000ED58) // Memory Model Feature 2
  7220. #define SCB_ID_MMFR3 (*(const uint32_t *)0xE000ED5C) // Memory Model Feature 3
  7221. #define SCB_ID_ISAR0 (*(const uint32_t *)0xE000ED60) // Instruction Set Attribute 0
  7222. #define SCB_ID_ISAR1 (*(const uint32_t *)0xE000ED64) // Instruction Set Attribute 1
  7223. #define SCB_ID_ISAR2 (*(const uint32_t *)0xE000ED68) // Instruction Set Attribute 2
  7224. #define SCB_ID_ISAR3 (*(const uint32_t *)0xE000ED6C) // Instruction Set Attribute 3
  7225. #define SCB_ID_ISAR4 (*(const uint32_t *)0xE000ED70) // Instruction Set Attribute 4
  7226. #define SCB_ID_CLIDR (*(const uint32_t *)0xE000ED78) // Cache Level ID
  7227. #define SCB_ID_CTR (*(const uint32_t *)0xE000ED7C) // Cache Type
  7228. #define SCB_ID_CCSIDR (*(const uint32_t *)0xE000ED80) // Cache Size ID
  7229. #define SCB_ID_CSSELR (*(const uint32_t *)0xE000ED84) // Cache Size Selection
  7230. #define SCB_CPACR (*(volatile uint32_t *)0xE000ED88) // Coprocessor Access Control
  7231. #define SCB_FPCCR (*(volatile uint32_t *)0xE000EF34) // FP Context Control
  7232. #define SCB_FPCAR (*(volatile uint32_t *)0xE000EF38) // FP Context Address
  7233. #define SCB_FPDSCR (*(volatile uint32_t *)0xE000EF3C) // FP Default Status Control
  7234. #define SCB_MVFR0 (*(volatile uint32_t *)0xE000EF40) // Media & FP Feature 0
  7235. #define SCB_MVFR1 (*(volatile uint32_t *)0xE000EF44) // Media & FP Feature 1
  7236. #define SCB_MVFR2 (*(volatile uint32_t *)0xE000EF48) // Media & FP Feature 2
  7237. #define SYST_CSR (*(volatile uint32_t *)0xE000E010) // SysTick Control and Status
  7238. #define SYST_CSR_COUNTFLAG ((uint32_t)(1<<16))
  7239. #define SYST_CSR_CLKSOURCE ((uint32_t)(1<<2))
  7240. #define SYST_CSR_TICKINT ((uint32_t)(1<<1))
  7241. #define SYST_CSR_ENABLE ((uint32_t)(1<<0))
  7242. #define SYST_RVR (*(volatile uint32_t *)0xE000E014) // SysTick Reload Value Register
  7243. #define SYST_CVR (*(volatile uint32_t *)0xE000E018) // SysTick Current Value Register
  7244. #define SYST_CALIB (*(const uint32_t *)0xE000E01C) // SysTick Calibration Value
  7245. // Nested Vectored Interrupt Controller, Table 3-4 & ARMv7 ref, appendix B3.4 (page 750)
  7246. #define NVIC_ISER0 (*(volatile uint32_t *)0xE000E100)
  7247. #define NVIC_ISER1 (*(volatile uint32_t *)0xE000E104)
  7248. #define NVIC_ISER2 (*(volatile uint32_t *)0xE000E108)
  7249. #define NVIC_ISER3 (*(volatile uint32_t *)0xE000E10C)
  7250. #define NVIC_ISER4 (*(volatile uint32_t *)0xE000E110)
  7251. #define NVIC_ICER0 (*(volatile uint32_t *)0xE000E180)
  7252. #define NVIC_ICER1 (*(volatile uint32_t *)0xE000E184)
  7253. #define NVIC_ICER2 (*(volatile uint32_t *)0xE000E188)
  7254. #define NVIC_ICER3 (*(volatile uint32_t *)0xE000E18C)
  7255. #define NVIC_ICER4 (*(volatile uint32_t *)0xE000E190)
  7256. #define NVIC_STIR (*(volatile uint32_t *)0xE000EF00)
  7257. #define NVIC_ENABLE_IRQ(n) (*(&NVIC_ISER0 + ((n) >> 5)) = (1 << ((n) & 31)))
  7258. #define NVIC_DISABLE_IRQ(n) (*(&NVIC_ICER0 + ((n) >> 5)) = (1 << ((n) & 31)))
  7259. #define NVIC_SET_PENDING(n) (*((volatile uint32_t *)0xE000E200 + ((n) >> 5)) = (1 << ((n) & 31)))
  7260. #define NVIC_CLEAR_PENDING(n) (*((volatile uint32_t *)0xE000E280 + ((n) >> 5)) = (1 << ((n) & 31)))
  7261. #define NVIC_IS_ENABLED(n) (*(&NVIC_ISER0 + ((n) >> 5)) & (1 << ((n) & 31)))
  7262. #define NVIC_IS_PENDING(n) (*((volatile uint32_t *)0xE000E200 + ((n) >> 5)) & (1 << ((n) & 31)))
  7263. #define NVIC_IS_ACTIVE(n) (*((volatile uint32_t *)0xE000E300 + ((n) >> 5)) & (1 << ((n) & 31)))
  7264. #define NVIC_TRIGGER_IRQ(n) NVIC_STIR=(n)
  7265. #define ARM_DEMCR (*(volatile uint32_t *)0xE000EDFC) // Debug Exception and Monitor Control
  7266. #define ARM_DEMCR_TRCENA (1 << 24) // Enable debugging & monitoring blocks
  7267. #define ARM_DWT_CTRL (*(volatile uint32_t *)0xE0001000) // DWT control register
  7268. #define ARM_DWT_CTRL_CYCCNTENA (1 << 0) // Enable cycle count
  7269. #define ARM_DWT_CYCCNT (*(volatile uint32_t *)0xE0001004) // Cycle count register
  7270. #define SCB_MPU_TYPE (*(volatile uint32_t *)0xE000ED90) //
  7271. #define SCB_MPU_CTRL (*(volatile uint32_t *)0xE000ED94) //
  7272. #define SCB_MPU_CTRL_PRIVDEFENA ((uint32_t)(1<<2)) // Enables default memory map
  7273. #define SCB_MPU_CTRL_HFNMIENA ((uint32_t)(1<<1)) // Use MPU for HardFault & NMI
  7274. #define SCB_MPU_CTRL_ENABLE ((uint32_t)(1<<0)) // Enables MPU
  7275. #define SCB_MPU_RNR (*(volatile uint32_t *)0xE000ED98) //
  7276. #define SCB_MPU_RBAR (*(volatile uint32_t *)0xE000ED9C) //
  7277. #define SCB_MPU_RBAR_ADDR_MASK ((uint32_t)(0xFFFFFFE0))
  7278. #define SCB_MPU_RBAR_VALID ((uint32_t)(1<<4))
  7279. #define SCB_MPU_RBAR_REGION(n) ((uint32_t)((n) & 15))
  7280. #define SCB_MPU_RASR (*(volatile uint32_t *)0xE000EDA0) // ARM DDI0403E, pg 696
  7281. #define SCB_MPU_RASR_XN ((uint32_t)(1<<28))
  7282. #define SCB_MPU_RASR_AP(n) ((uint32_t)(((n) & 7) << 24))
  7283. #define SCB_MPU_RASR_TEX(n) ((uint32_t)(((n) & 7) << 19))
  7284. #define SCB_MPU_RASR_S ((uint32_t)(1<<18))
  7285. #define SCB_MPU_RASR_C ((uint32_t)(1<<17))
  7286. #define SCB_MPU_RASR_B ((uint32_t)(1<<16))
  7287. #define SCB_MPU_RASR_SRD(n) ((uint32_t)(((n) & 255) << 8))
  7288. #define SCB_MPU_RASR_SIZE(n) ((uint32_t)(((n) & 31) << 1))
  7289. #define SCB_MPU_RASR_ENABLE ((uint32_t)(1<<0))
  7290. #define SCB_MPU_RBAR_A1 (*(volatile uint32_t *)0xE000EDA4) //
  7291. #define SCB_MPU_RASR_A1 (*(volatile uint32_t *)0xE000EDA8) //
  7292. #define SCB_MPU_RBAR_A2 (*(volatile uint32_t *)0xE000EDAC) //
  7293. #define SCB_MPU_RASR_A2 (*(volatile uint32_t *)0xE000EDB0) //
  7294. #define SCB_MPU_RBAR_A3 (*(volatile uint32_t *)0xE000EDB4) //
  7295. #define SCB_MPU_RASR_A3 (*(volatile uint32_t *)0xE000EDB8) //
  7296. #define SCB_CACHE_ICIALLU (*(volatile uint32_t *)0xE000EF50)
  7297. #define SCB_CACHE_ICIMVAU (*(volatile uint32_t *)0xE000EF58)
  7298. #define SCB_CACHE_DCIMVAC (*(volatile uint32_t *)0xE000EF5C)
  7299. #define SCB_CACHE_DCISW (*(volatile uint32_t *)0xE000EF60)
  7300. #define SCB_CACHE_DCCMVAU (*(volatile uint32_t *)0xE000EF64)
  7301. #define SCB_CACHE_DCCMVAC (*(volatile uint32_t *)0xE000EF68)
  7302. #define SCB_CACHE_DCCSW (*(volatile uint32_t *)0xE000EF6C)
  7303. #define SCB_CACHE_DCCIMVAC (*(volatile uint32_t *)0xE000EF70)
  7304. #define SCB_CACHE_DCCISW (*(volatile uint32_t *)0xE000EF74)
  7305. #define SCB_CACHE_BPIALL (*(volatile uint32_t *)0xE000EF78)
  7306. // Flush data from cache to memory
  7307. //
  7308. // Normally arm_dcache_flush() is used when metadata written to memory
  7309. // will be used by a DMA or a bus-master peripheral. Any data in the
  7310. // cache is written to memory. A copy remains in the cache, so this is
  7311. // typically used with special fields you will want to quickly access
  7312. // in the future. For data transmission, use arm_dcache_flush_delete().
  7313. __attribute__((always_inline, unused))
  7314. static inline void arm_dcache_flush(void *addr, uint32_t size)
  7315. {
  7316. uint32_t location = (uint32_t)addr & 0xFFFFFFE0;
  7317. uint32_t end_addr = (uint32_t)addr + size;
  7318. asm("dsb");
  7319. do {
  7320. SCB_CACHE_DCCMVAC = location;
  7321. location += 32;
  7322. } while (location < end_addr);
  7323. asm("dsb");
  7324. asm("isb");
  7325. }
  7326. // Delete data from the cache, without touching memory
  7327. //
  7328. // Normally arm_dcache_delete() is used before receiving data via
  7329. // DMA or from bus-master peripherals which write to memory. You
  7330. // want to delete anything the cache may have stored, so your next
  7331. // read is certain to access the physical memory.
  7332. __attribute__((always_inline, unused))
  7333. static inline void arm_dcache_delete(void *addr, uint32_t size)
  7334. {
  7335. uint32_t location = (uint32_t)addr & 0xFFFFFFE0;
  7336. uint32_t end_addr = (uint32_t)addr + size;
  7337. asm("dsb");
  7338. do {
  7339. SCB_CACHE_DCIMVAC = location;
  7340. location += 32;
  7341. } while (location < end_addr);
  7342. asm("dsb");
  7343. asm("isb");
  7344. }
  7345. // Flush data from cache to memory, and delete it from the cache
  7346. //
  7347. // Normally arm_dcache_flush_delete() is used when transmitting data
  7348. // via DMA or bus-master peripherals which read from memory. You want
  7349. // any cached data written to memory, and then removed from the cache,
  7350. // because you no longer need to access the data after transmission.
  7351. __attribute__((always_inline, unused))
  7352. static inline void arm_dcache_flush_delete(void *addr, uint32_t size)
  7353. {
  7354. uint32_t location = (uint32_t)addr & 0xFFFFFFE0;
  7355. uint32_t end_addr = (uint32_t)addr + size;
  7356. asm("dsb");
  7357. do {
  7358. SCB_CACHE_DCCIMVAC = location;
  7359. location += 32;
  7360. } while (location < end_addr);
  7361. asm("dsb");
  7362. asm("isb");
  7363. }