ctucanfd_kregs.h 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349
  1. /* SPDX-License-Identifier: GPL-2.0-or-later */
  2. /*******************************************************************************
  3. *
  4. * CTU CAN FD IP Core
  5. *
  6. * Copyright (C) 2015-2018 Ondrej Ille <[email protected]> FEE CTU
  7. * Copyright (C) 2018-2022 Ondrej Ille <[email protected]> self-funded
  8. * Copyright (C) 2018-2019 Martin Jerabek <[email protected]> FEE CTU
  9. * Copyright (C) 2018-2022 Pavel Pisa <[email protected]> FEE CTU/self-funded
  10. *
  11. * Project advisors:
  12. * Jiri Novak <[email protected]>
  13. * Pavel Pisa <[email protected]>
  14. *
  15. * Department of Measurement (http://meas.fel.cvut.cz/)
  16. * Faculty of Electrical Engineering (http://www.fel.cvut.cz)
  17. * Czech Technical University (http://www.cvut.cz/)
  18. ******************************************************************************/
  19. /* This file is autogenerated, DO NOT EDIT! */
  20. #ifndef __CTU_CAN_FD_CAN_FD_REGISTER_MAP__
  21. #define __CTU_CAN_FD_CAN_FD_REGISTER_MAP__
  22. #include <linux/bits.h>
  23. /* CAN_Registers memory map */
  24. enum ctu_can_fd_can_registers {
  25. CTUCANFD_DEVICE_ID = 0x0,
  26. CTUCANFD_VERSION = 0x2,
  27. CTUCANFD_MODE = 0x4,
  28. CTUCANFD_SETTINGS = 0x6,
  29. CTUCANFD_STATUS = 0x8,
  30. CTUCANFD_COMMAND = 0xc,
  31. CTUCANFD_INT_STAT = 0x10,
  32. CTUCANFD_INT_ENA_SET = 0x14,
  33. CTUCANFD_INT_ENA_CLR = 0x18,
  34. CTUCANFD_INT_MASK_SET = 0x1c,
  35. CTUCANFD_INT_MASK_CLR = 0x20,
  36. CTUCANFD_BTR = 0x24,
  37. CTUCANFD_BTR_FD = 0x28,
  38. CTUCANFD_EWL = 0x2c,
  39. CTUCANFD_ERP = 0x2d,
  40. CTUCANFD_FAULT_STATE = 0x2e,
  41. CTUCANFD_REC = 0x30,
  42. CTUCANFD_TEC = 0x32,
  43. CTUCANFD_ERR_NORM = 0x34,
  44. CTUCANFD_ERR_FD = 0x36,
  45. CTUCANFD_CTR_PRES = 0x38,
  46. CTUCANFD_FILTER_A_MASK = 0x3c,
  47. CTUCANFD_FILTER_A_VAL = 0x40,
  48. CTUCANFD_FILTER_B_MASK = 0x44,
  49. CTUCANFD_FILTER_B_VAL = 0x48,
  50. CTUCANFD_FILTER_C_MASK = 0x4c,
  51. CTUCANFD_FILTER_C_VAL = 0x50,
  52. CTUCANFD_FILTER_RAN_LOW = 0x54,
  53. CTUCANFD_FILTER_RAN_HIGH = 0x58,
  54. CTUCANFD_FILTER_CONTROL = 0x5c,
  55. CTUCANFD_FILTER_STATUS = 0x5e,
  56. CTUCANFD_RX_MEM_INFO = 0x60,
  57. CTUCANFD_RX_POINTERS = 0x64,
  58. CTUCANFD_RX_STATUS = 0x68,
  59. CTUCANFD_RX_SETTINGS = 0x6a,
  60. CTUCANFD_RX_DATA = 0x6c,
  61. CTUCANFD_TX_STATUS = 0x70,
  62. CTUCANFD_TX_COMMAND = 0x74,
  63. CTUCANFD_TXTB_INFO = 0x76,
  64. CTUCANFD_TX_PRIORITY = 0x78,
  65. CTUCANFD_ERR_CAPT = 0x7c,
  66. CTUCANFD_RETR_CTR = 0x7d,
  67. CTUCANFD_ALC = 0x7e,
  68. CTUCANFD_TS_INFO = 0x7f,
  69. CTUCANFD_TRV_DELAY = 0x80,
  70. CTUCANFD_SSP_CFG = 0x82,
  71. CTUCANFD_RX_FR_CTR = 0x84,
  72. CTUCANFD_TX_FR_CTR = 0x88,
  73. CTUCANFD_DEBUG_REGISTER = 0x8c,
  74. CTUCANFD_YOLO_REG = 0x90,
  75. CTUCANFD_TIMESTAMP_LOW = 0x94,
  76. CTUCANFD_TIMESTAMP_HIGH = 0x98,
  77. CTUCANFD_TXTB1_DATA_1 = 0x100,
  78. CTUCANFD_TXTB1_DATA_2 = 0x104,
  79. CTUCANFD_TXTB1_DATA_20 = 0x14c,
  80. CTUCANFD_TXTB2_DATA_1 = 0x200,
  81. CTUCANFD_TXTB2_DATA_2 = 0x204,
  82. CTUCANFD_TXTB2_DATA_20 = 0x24c,
  83. CTUCANFD_TXTB3_DATA_1 = 0x300,
  84. CTUCANFD_TXTB3_DATA_2 = 0x304,
  85. CTUCANFD_TXTB3_DATA_20 = 0x34c,
  86. CTUCANFD_TXTB4_DATA_1 = 0x400,
  87. CTUCANFD_TXTB4_DATA_2 = 0x404,
  88. CTUCANFD_TXTB4_DATA_20 = 0x44c,
  89. };
  90. /* Control_registers memory region */
  91. /* DEVICE_ID VERSION registers */
  92. #define REG_DEVICE_ID_DEVICE_ID GENMASK(15, 0)
  93. #define REG_DEVICE_ID_VER_MINOR GENMASK(23, 16)
  94. #define REG_DEVICE_ID_VER_MAJOR GENMASK(31, 24)
  95. /* MODE SETTINGS registers */
  96. #define REG_MODE_RST BIT(0)
  97. #define REG_MODE_BMM BIT(1)
  98. #define REG_MODE_STM BIT(2)
  99. #define REG_MODE_AFM BIT(3)
  100. #define REG_MODE_FDE BIT(4)
  101. #define REG_MODE_TTTM BIT(5)
  102. #define REG_MODE_ROM BIT(6)
  103. #define REG_MODE_ACF BIT(7)
  104. #define REG_MODE_TSTM BIT(8)
  105. #define REG_MODE_RXBAM BIT(9)
  106. #define REG_MODE_SAM BIT(11)
  107. #define REG_MODE_RTRLE BIT(16)
  108. #define REG_MODE_RTRTH GENMASK(20, 17)
  109. #define REG_MODE_ILBP BIT(21)
  110. #define REG_MODE_ENA BIT(22)
  111. #define REG_MODE_NISOFD BIT(23)
  112. #define REG_MODE_PEX BIT(24)
  113. #define REG_MODE_TBFBO BIT(25)
  114. #define REG_MODE_FDRF BIT(26)
  115. /* STATUS registers */
  116. #define REG_STATUS_RXNE BIT(0)
  117. #define REG_STATUS_DOR BIT(1)
  118. #define REG_STATUS_TXNF BIT(2)
  119. #define REG_STATUS_EFT BIT(3)
  120. #define REG_STATUS_RXS BIT(4)
  121. #define REG_STATUS_TXS BIT(5)
  122. #define REG_STATUS_EWL BIT(6)
  123. #define REG_STATUS_IDLE BIT(7)
  124. #define REG_STATUS_PEXS BIT(8)
  125. #define REG_STATUS_STCNT BIT(16)
  126. /* COMMAND registers */
  127. #define REG_COMMAND_RXRPMV BIT(1)
  128. #define REG_COMMAND_RRB BIT(2)
  129. #define REG_COMMAND_CDO BIT(3)
  130. #define REG_COMMAND_ERCRST BIT(4)
  131. #define REG_COMMAND_RXFCRST BIT(5)
  132. #define REG_COMMAND_TXFCRST BIT(6)
  133. #define REG_COMMAND_CPEXS BIT(7)
  134. /* INT_STAT registers */
  135. #define REG_INT_STAT_RXI BIT(0)
  136. #define REG_INT_STAT_TXI BIT(1)
  137. #define REG_INT_STAT_EWLI BIT(2)
  138. #define REG_INT_STAT_DOI BIT(3)
  139. #define REG_INT_STAT_FCSI BIT(4)
  140. #define REG_INT_STAT_ALI BIT(5)
  141. #define REG_INT_STAT_BEI BIT(6)
  142. #define REG_INT_STAT_OFI BIT(7)
  143. #define REG_INT_STAT_RXFI BIT(8)
  144. #define REG_INT_STAT_BSI BIT(9)
  145. #define REG_INT_STAT_RBNEI BIT(10)
  146. #define REG_INT_STAT_TXBHCI BIT(11)
  147. /* INT_ENA_SET registers */
  148. #define REG_INT_ENA_SET_INT_ENA_SET GENMASK(11, 0)
  149. /* INT_ENA_CLR registers */
  150. #define REG_INT_ENA_CLR_INT_ENA_CLR GENMASK(11, 0)
  151. /* INT_MASK_SET registers */
  152. #define REG_INT_MASK_SET_INT_MASK_SET GENMASK(11, 0)
  153. /* INT_MASK_CLR registers */
  154. #define REG_INT_MASK_CLR_INT_MASK_CLR GENMASK(11, 0)
  155. /* BTR registers */
  156. #define REG_BTR_PROP GENMASK(6, 0)
  157. #define REG_BTR_PH1 GENMASK(12, 7)
  158. #define REG_BTR_PH2 GENMASK(18, 13)
  159. #define REG_BTR_BRP GENMASK(26, 19)
  160. #define REG_BTR_SJW GENMASK(31, 27)
  161. /* BTR_FD registers */
  162. #define REG_BTR_FD_PROP_FD GENMASK(5, 0)
  163. #define REG_BTR_FD_PH1_FD GENMASK(11, 7)
  164. #define REG_BTR_FD_PH2_FD GENMASK(17, 13)
  165. #define REG_BTR_FD_BRP_FD GENMASK(26, 19)
  166. #define REG_BTR_FD_SJW_FD GENMASK(31, 27)
  167. /* EWL ERP FAULT_STATE registers */
  168. #define REG_EWL_EW_LIMIT GENMASK(7, 0)
  169. #define REG_EWL_ERP_LIMIT GENMASK(15, 8)
  170. #define REG_EWL_ERA BIT(16)
  171. #define REG_EWL_ERP BIT(17)
  172. #define REG_EWL_BOF BIT(18)
  173. /* REC TEC registers */
  174. #define REG_REC_REC_VAL GENMASK(8, 0)
  175. #define REG_REC_TEC_VAL GENMASK(24, 16)
  176. /* ERR_NORM ERR_FD registers */
  177. #define REG_ERR_NORM_ERR_NORM_VAL GENMASK(15, 0)
  178. #define REG_ERR_NORM_ERR_FD_VAL GENMASK(31, 16)
  179. /* CTR_PRES registers */
  180. #define REG_CTR_PRES_CTPV GENMASK(8, 0)
  181. #define REG_CTR_PRES_PTX BIT(9)
  182. #define REG_CTR_PRES_PRX BIT(10)
  183. #define REG_CTR_PRES_ENORM BIT(11)
  184. #define REG_CTR_PRES_EFD BIT(12)
  185. /* FILTER_A_MASK registers */
  186. #define REG_FILTER_A_MASK_BIT_MASK_A_VAL GENMASK(28, 0)
  187. /* FILTER_A_VAL registers */
  188. #define REG_FILTER_A_VAL_BIT_VAL_A_VAL GENMASK(28, 0)
  189. /* FILTER_B_MASK registers */
  190. #define REG_FILTER_B_MASK_BIT_MASK_B_VAL GENMASK(28, 0)
  191. /* FILTER_B_VAL registers */
  192. #define REG_FILTER_B_VAL_BIT_VAL_B_VAL GENMASK(28, 0)
  193. /* FILTER_C_MASK registers */
  194. #define REG_FILTER_C_MASK_BIT_MASK_C_VAL GENMASK(28, 0)
  195. /* FILTER_C_VAL registers */
  196. #define REG_FILTER_C_VAL_BIT_VAL_C_VAL GENMASK(28, 0)
  197. /* FILTER_RAN_LOW registers */
  198. #define REG_FILTER_RAN_LOW_BIT_RAN_LOW_VAL GENMASK(28, 0)
  199. /* FILTER_RAN_HIGH registers */
  200. #define REG_FILTER_RAN_HIGH_BIT_RAN_HIGH_VAL GENMASK(28, 0)
  201. /* FILTER_CONTROL FILTER_STATUS registers */
  202. #define REG_FILTER_CONTROL_FANB BIT(0)
  203. #define REG_FILTER_CONTROL_FANE BIT(1)
  204. #define REG_FILTER_CONTROL_FAFB BIT(2)
  205. #define REG_FILTER_CONTROL_FAFE BIT(3)
  206. #define REG_FILTER_CONTROL_FBNB BIT(4)
  207. #define REG_FILTER_CONTROL_FBNE BIT(5)
  208. #define REG_FILTER_CONTROL_FBFB BIT(6)
  209. #define REG_FILTER_CONTROL_FBFE BIT(7)
  210. #define REG_FILTER_CONTROL_FCNB BIT(8)
  211. #define REG_FILTER_CONTROL_FCNE BIT(9)
  212. #define REG_FILTER_CONTROL_FCFB BIT(10)
  213. #define REG_FILTER_CONTROL_FCFE BIT(11)
  214. #define REG_FILTER_CONTROL_FRNB BIT(12)
  215. #define REG_FILTER_CONTROL_FRNE BIT(13)
  216. #define REG_FILTER_CONTROL_FRFB BIT(14)
  217. #define REG_FILTER_CONTROL_FRFE BIT(15)
  218. #define REG_FILTER_CONTROL_SFA BIT(16)
  219. #define REG_FILTER_CONTROL_SFB BIT(17)
  220. #define REG_FILTER_CONTROL_SFC BIT(18)
  221. #define REG_FILTER_CONTROL_SFR BIT(19)
  222. /* RX_MEM_INFO registers */
  223. #define REG_RX_MEM_INFO_RX_BUFF_SIZE GENMASK(12, 0)
  224. #define REG_RX_MEM_INFO_RX_MEM_FREE GENMASK(28, 16)
  225. /* RX_POINTERS registers */
  226. #define REG_RX_POINTERS_RX_WPP GENMASK(11, 0)
  227. #define REG_RX_POINTERS_RX_RPP GENMASK(27, 16)
  228. /* RX_STATUS RX_SETTINGS registers */
  229. #define REG_RX_STATUS_RXE BIT(0)
  230. #define REG_RX_STATUS_RXF BIT(1)
  231. #define REG_RX_STATUS_RXMOF BIT(2)
  232. #define REG_RX_STATUS_RXFRC GENMASK(14, 4)
  233. #define REG_RX_STATUS_RTSOP BIT(16)
  234. /* RX_DATA registers */
  235. #define REG_RX_DATA_RX_DATA GENMASK(31, 0)
  236. /* TX_STATUS registers */
  237. #define REG_TX_STATUS_TX1S GENMASK(3, 0)
  238. #define REG_TX_STATUS_TX2S GENMASK(7, 4)
  239. #define REG_TX_STATUS_TX3S GENMASK(11, 8)
  240. #define REG_TX_STATUS_TX4S GENMASK(15, 12)
  241. #define REG_TX_STATUS_TX5S GENMASK(19, 16)
  242. #define REG_TX_STATUS_TX6S GENMASK(23, 20)
  243. #define REG_TX_STATUS_TX7S GENMASK(27, 24)
  244. #define REG_TX_STATUS_TX8S GENMASK(31, 28)
  245. /* TX_COMMAND TXTB_INFO registers */
  246. #define REG_TX_COMMAND_TXCE BIT(0)
  247. #define REG_TX_COMMAND_TXCR BIT(1)
  248. #define REG_TX_COMMAND_TXCA BIT(2)
  249. #define REG_TX_COMMAND_TXB1 BIT(8)
  250. #define REG_TX_COMMAND_TXB2 BIT(9)
  251. #define REG_TX_COMMAND_TXB3 BIT(10)
  252. #define REG_TX_COMMAND_TXB4 BIT(11)
  253. #define REG_TX_COMMAND_TXB5 BIT(12)
  254. #define REG_TX_COMMAND_TXB6 BIT(13)
  255. #define REG_TX_COMMAND_TXB7 BIT(14)
  256. #define REG_TX_COMMAND_TXB8 BIT(15)
  257. #define REG_TX_COMMAND_TXT_BUFFER_COUNT GENMASK(19, 16)
  258. /* TX_PRIORITY registers */
  259. #define REG_TX_PRIORITY_TXT1P GENMASK(2, 0)
  260. #define REG_TX_PRIORITY_TXT2P GENMASK(6, 4)
  261. #define REG_TX_PRIORITY_TXT3P GENMASK(10, 8)
  262. #define REG_TX_PRIORITY_TXT4P GENMASK(14, 12)
  263. #define REG_TX_PRIORITY_TXT5P GENMASK(18, 16)
  264. #define REG_TX_PRIORITY_TXT6P GENMASK(22, 20)
  265. #define REG_TX_PRIORITY_TXT7P GENMASK(26, 24)
  266. #define REG_TX_PRIORITY_TXT8P GENMASK(30, 28)
  267. /* ERR_CAPT RETR_CTR ALC TS_INFO registers */
  268. #define REG_ERR_CAPT_ERR_POS GENMASK(4, 0)
  269. #define REG_ERR_CAPT_ERR_TYPE GENMASK(7, 5)
  270. #define REG_ERR_CAPT_RETR_CTR_VAL GENMASK(11, 8)
  271. #define REG_ERR_CAPT_ALC_BIT GENMASK(20, 16)
  272. #define REG_ERR_CAPT_ALC_ID_FIELD GENMASK(23, 21)
  273. #define REG_ERR_CAPT_TS_BITS GENMASK(29, 24)
  274. /* TRV_DELAY SSP_CFG registers */
  275. #define REG_TRV_DELAY_TRV_DELAY_VALUE GENMASK(6, 0)
  276. #define REG_TRV_DELAY_SSP_OFFSET GENMASK(23, 16)
  277. #define REG_TRV_DELAY_SSP_SRC GENMASK(25, 24)
  278. /* RX_FR_CTR registers */
  279. #define REG_RX_FR_CTR_RX_FR_CTR_VAL GENMASK(31, 0)
  280. /* TX_FR_CTR registers */
  281. #define REG_TX_FR_CTR_TX_FR_CTR_VAL GENMASK(31, 0)
  282. /* DEBUG_REGISTER registers */
  283. #define REG_DEBUG_REGISTER_STUFF_COUNT GENMASK(2, 0)
  284. #define REG_DEBUG_REGISTER_DESTUFF_COUNT GENMASK(5, 3)
  285. #define REG_DEBUG_REGISTER_PC_ARB BIT(6)
  286. #define REG_DEBUG_REGISTER_PC_CON BIT(7)
  287. #define REG_DEBUG_REGISTER_PC_DAT BIT(8)
  288. #define REG_DEBUG_REGISTER_PC_STC BIT(9)
  289. #define REG_DEBUG_REGISTER_PC_CRC BIT(10)
  290. #define REG_DEBUG_REGISTER_PC_CRCD BIT(11)
  291. #define REG_DEBUG_REGISTER_PC_ACK BIT(12)
  292. #define REG_DEBUG_REGISTER_PC_ACKD BIT(13)
  293. #define REG_DEBUG_REGISTER_PC_EOF BIT(14)
  294. #define REG_DEBUG_REGISTER_PC_INT BIT(15)
  295. #define REG_DEBUG_REGISTER_PC_SUSP BIT(16)
  296. #define REG_DEBUG_REGISTER_PC_OVR BIT(17)
  297. #define REG_DEBUG_REGISTER_PC_SOF BIT(18)
  298. /* YOLO_REG registers */
  299. #define REG_YOLO_REG_YOLO_VAL GENMASK(31, 0)
  300. /* TIMESTAMP_LOW registers */
  301. #define REG_TIMESTAMP_LOW_TIMESTAMP_LOW GENMASK(31, 0)
  302. /* TIMESTAMP_HIGH registers */
  303. #define REG_TIMESTAMP_HIGH_TIMESTAMP_HIGH GENMASK(31, 0)
  304. #endif