hpm_otp_regs.h 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560
  1. /*
  2. * Copyright (c) 2021-2023 HPMicro
  3. *
  4. * SPDX-License-Identifier: BSD-3-Clause
  5. *
  6. */
  7. #ifndef HPM_OTP_H
  8. #define HPM_OTP_H
  9. typedef struct {
  10. __RW uint32_t SHADOW[128]; /* 0x0 - 0x1FC: Fuse shadow registers */
  11. __RW uint32_t SHADOW_LOCK[8]; /* 0x200 - 0x21C: Fuse shadow lock */
  12. __R uint8_t RESERVED0[480]; /* 0x220 - 0x3FF: Reserved */
  13. __RW uint32_t FUSE[128]; /* 0x400 - 0x5FC: Fuse Array */
  14. __RW uint32_t FUSE_LOCK[8]; /* 0x600 - 0x61C: Fuse lock */
  15. __R uint8_t RESERVED1[480]; /* 0x620 - 0x7FF: Reserved */
  16. __RW uint32_t UNLOCK; /* 0x800: UNLOCK */
  17. __RW uint32_t DATA; /* 0x804: DATA */
  18. __RW uint32_t ADDR; /* 0x808: ADDR */
  19. __RW uint32_t CMD; /* 0x80C: CMD */
  20. __R uint8_t RESERVED2[496]; /* 0x810 - 0x9FF: Reserved */
  21. __RW uint32_t LOAD_REQ; /* 0xA00: LOAD Request */
  22. __RW uint32_t LOAD_COMP; /* 0xA04: LOAD complete */
  23. __R uint8_t RESERVED3[24]; /* 0xA08 - 0xA1F: Reserved */
  24. __RW uint32_t REGION[4]; /* 0xA20 - 0xA2C: LOAD region */
  25. __R uint8_t RESERVED4[464]; /* 0xA30 - 0xBFF: Reserved */
  26. __RW uint32_t INT_FLAG; /* 0xC00: interrupt flag */
  27. __RW uint32_t INT_EN; /* 0xC04: interrupt enable */
  28. } OTP_Type;
  29. /* Bitfield definition for register array: SHADOW */
  30. /*
  31. * SHADOW (RW)
  32. *
  33. * shadow register of fuse for pmic area
  34. * for PMIC, index valid for 0-15, for SOC index valid for 16-128
  35. */
  36. #define OTP_SHADOW_SHADOW_MASK (0xFFFFFFFFUL)
  37. #define OTP_SHADOW_SHADOW_SHIFT (0U)
  38. #define OTP_SHADOW_SHADOW_SET(x) (((uint32_t)(x) << OTP_SHADOW_SHADOW_SHIFT) & OTP_SHADOW_SHADOW_MASK)
  39. #define OTP_SHADOW_SHADOW_GET(x) (((uint32_t)(x) & OTP_SHADOW_SHADOW_MASK) >> OTP_SHADOW_SHADOW_SHIFT)
  40. /* Bitfield definition for register array: SHADOW_LOCK */
  41. /*
  42. * LOCK (RW)
  43. *
  44. * lock for pmic part shadow registers, 2 bits per 32 bit word, lock behavior is different between different fuse types
  45. * 00: not locked
  46. * 01: soft locked
  47. * 10: not locked, and cannot lock in furture
  48. * 11: double locked
  49. */
  50. #define OTP_SHADOW_LOCK_LOCK_MASK (0xFFFFFFFFUL)
  51. #define OTP_SHADOW_LOCK_LOCK_SHIFT (0U)
  52. #define OTP_SHADOW_LOCK_LOCK_SET(x) (((uint32_t)(x) << OTP_SHADOW_LOCK_LOCK_SHIFT) & OTP_SHADOW_LOCK_LOCK_MASK)
  53. #define OTP_SHADOW_LOCK_LOCK_GET(x) (((uint32_t)(x) & OTP_SHADOW_LOCK_LOCK_MASK) >> OTP_SHADOW_LOCK_LOCK_SHIFT)
  54. /* Bitfield definition for register array: FUSE */
  55. /*
  56. * FUSE (RW)
  57. *
  58. * fuse array, valid in PMIC part only
  59. * read operation will read out value in fuse array
  60. * write operation will update fuse array value(please make sure fuse is unlocked and 2.5V power is ready)
  61. */
  62. #define OTP_FUSE_FUSE_MASK (0xFFFFFFFFUL)
  63. #define OTP_FUSE_FUSE_SHIFT (0U)
  64. #define OTP_FUSE_FUSE_SET(x) (((uint32_t)(x) << OTP_FUSE_FUSE_SHIFT) & OTP_FUSE_FUSE_MASK)
  65. #define OTP_FUSE_FUSE_GET(x) (((uint32_t)(x) & OTP_FUSE_FUSE_MASK) >> OTP_FUSE_FUSE_SHIFT)
  66. /* Bitfield definition for register array: FUSE_LOCK */
  67. /*
  68. * LOCK (RW)
  69. *
  70. * lock for fuse array, 2 bits per 32 bit word, lock behavior is different between different fuse types
  71. * 00: not locked
  72. * 01: soft locked
  73. * 10: not locked, and cannot lock in furture
  74. * 11: double locked
  75. */
  76. #define OTP_FUSE_LOCK_LOCK_MASK (0xFFFFFFFFUL)
  77. #define OTP_FUSE_LOCK_LOCK_SHIFT (0U)
  78. #define OTP_FUSE_LOCK_LOCK_SET(x) (((uint32_t)(x) << OTP_FUSE_LOCK_LOCK_SHIFT) & OTP_FUSE_LOCK_LOCK_MASK)
  79. #define OTP_FUSE_LOCK_LOCK_GET(x) (((uint32_t)(x) & OTP_FUSE_LOCK_LOCK_MASK) >> OTP_FUSE_LOCK_LOCK_SHIFT)
  80. /* Bitfield definition for register: UNLOCK */
  81. /*
  82. * UNLOCK (RW)
  83. *
  84. * unlock word for fuse array operation
  85. * write "OPEN" to unlock fuse array, write any other value will lock write to fuse.
  86. * Please make sure 24M crystal is running and 2.5V LDO working properly
  87. */
  88. #define OTP_UNLOCK_UNLOCK_MASK (0xFFFFFFFFUL)
  89. #define OTP_UNLOCK_UNLOCK_SHIFT (0U)
  90. #define OTP_UNLOCK_UNLOCK_SET(x) (((uint32_t)(x) << OTP_UNLOCK_UNLOCK_SHIFT) & OTP_UNLOCK_UNLOCK_MASK)
  91. #define OTP_UNLOCK_UNLOCK_GET(x) (((uint32_t)(x) & OTP_UNLOCK_UNLOCK_MASK) >> OTP_UNLOCK_UNLOCK_SHIFT)
  92. /* Bitfield definition for register: DATA */
  93. /*
  94. * DATA (RW)
  95. *
  96. * data register for non-blocking access
  97. * this register hold dat read from fuse array or data to by programmed to fuse array
  98. */
  99. #define OTP_DATA_DATA_MASK (0xFFFFFFFFUL)
  100. #define OTP_DATA_DATA_SHIFT (0U)
  101. #define OTP_DATA_DATA_SET(x) (((uint32_t)(x) << OTP_DATA_DATA_SHIFT) & OTP_DATA_DATA_MASK)
  102. #define OTP_DATA_DATA_GET(x) (((uint32_t)(x) & OTP_DATA_DATA_MASK) >> OTP_DATA_DATA_SHIFT)
  103. /* Bitfield definition for register: ADDR */
  104. /*
  105. * ADDR (RW)
  106. *
  107. * word address to be read or write
  108. */
  109. #define OTP_ADDR_ADDR_MASK (0x7FU)
  110. #define OTP_ADDR_ADDR_SHIFT (0U)
  111. #define OTP_ADDR_ADDR_SET(x) (((uint32_t)(x) << OTP_ADDR_ADDR_SHIFT) & OTP_ADDR_ADDR_MASK)
  112. #define OTP_ADDR_ADDR_GET(x) (((uint32_t)(x) & OTP_ADDR_ADDR_MASK) >> OTP_ADDR_ADDR_SHIFT)
  113. /* Bitfield definition for register: CMD */
  114. /*
  115. * CMD (RW)
  116. *
  117. * command to access fure array
  118. * "BLOW" will update fuse word at ADDR to value hold in DATA
  119. * "READ" will fetch fuse value in at ADDR to DATA register
  120. */
  121. #define OTP_CMD_CMD_MASK (0xFFFFFFFFUL)
  122. #define OTP_CMD_CMD_SHIFT (0U)
  123. #define OTP_CMD_CMD_SET(x) (((uint32_t)(x) << OTP_CMD_CMD_SHIFT) & OTP_CMD_CMD_MASK)
  124. #define OTP_CMD_CMD_GET(x) (((uint32_t)(x) & OTP_CMD_CMD_MASK) >> OTP_CMD_CMD_SHIFT)
  125. /* Bitfield definition for register: LOAD_REQ */
  126. /*
  127. * REQUEST (RW)
  128. *
  129. * reload request for 4 regions
  130. * bit0: region0
  131. * bit1: region1
  132. * bit2: region2
  133. * bit3: region3
  134. */
  135. #define OTP_LOAD_REQ_REQUEST_MASK (0xFU)
  136. #define OTP_LOAD_REQ_REQUEST_SHIFT (0U)
  137. #define OTP_LOAD_REQ_REQUEST_SET(x) (((uint32_t)(x) << OTP_LOAD_REQ_REQUEST_SHIFT) & OTP_LOAD_REQ_REQUEST_MASK)
  138. #define OTP_LOAD_REQ_REQUEST_GET(x) (((uint32_t)(x) & OTP_LOAD_REQ_REQUEST_MASK) >> OTP_LOAD_REQ_REQUEST_SHIFT)
  139. /* Bitfield definition for register: LOAD_COMP */
  140. /*
  141. * COMPLETE (RW)
  142. *
  143. * reload complete sign for 4 regions
  144. * bit0: region 0
  145. * bit1: region1
  146. * bit2: region2
  147. * bit3: region3
  148. */
  149. #define OTP_LOAD_COMP_COMPLETE_MASK (0xFU)
  150. #define OTP_LOAD_COMP_COMPLETE_SHIFT (0U)
  151. #define OTP_LOAD_COMP_COMPLETE_SET(x) (((uint32_t)(x) << OTP_LOAD_COMP_COMPLETE_SHIFT) & OTP_LOAD_COMP_COMPLETE_MASK)
  152. #define OTP_LOAD_COMP_COMPLETE_GET(x) (((uint32_t)(x) & OTP_LOAD_COMP_COMPLETE_MASK) >> OTP_LOAD_COMP_COMPLETE_SHIFT)
  153. /* Bitfield definition for register array: REGION */
  154. /*
  155. * STOP (RW)
  156. *
  157. * stop address of load region, fuse word at end address will NOT be reloaded
  158. * region0: fixed at 8
  159. * region1: fixed at 16
  160. * region2: fixed at 0,
  161. * region3: usrer configurable
  162. */
  163. #define OTP_REGION_STOP_MASK (0x7F00U)
  164. #define OTP_REGION_STOP_SHIFT (8U)
  165. #define OTP_REGION_STOP_SET(x) (((uint32_t)(x) << OTP_REGION_STOP_SHIFT) & OTP_REGION_STOP_MASK)
  166. #define OTP_REGION_STOP_GET(x) (((uint32_t)(x) & OTP_REGION_STOP_MASK) >> OTP_REGION_STOP_SHIFT)
  167. /*
  168. * START (RW)
  169. *
  170. * start address of load region, fuse word at start address will be reloaded
  171. * region0: fixed at 0
  172. * region1: fixed at 8
  173. * region2: fixed at 16,
  174. * region3: usrer configurable
  175. */
  176. #define OTP_REGION_START_MASK (0x7FU)
  177. #define OTP_REGION_START_SHIFT (0U)
  178. #define OTP_REGION_START_SET(x) (((uint32_t)(x) << OTP_REGION_START_SHIFT) & OTP_REGION_START_MASK)
  179. #define OTP_REGION_START_GET(x) (((uint32_t)(x) & OTP_REGION_START_MASK) >> OTP_REGION_START_SHIFT)
  180. /* Bitfield definition for register: INT_FLAG */
  181. /*
  182. * WRITE (RW)
  183. *
  184. * fuse write flag, write 1 to clear
  185. * 0: fuse is not written or writing
  186. * 1: value in DATA register is programmed into fuse
  187. */
  188. #define OTP_INT_FLAG_WRITE_MASK (0x4U)
  189. #define OTP_INT_FLAG_WRITE_SHIFT (2U)
  190. #define OTP_INT_FLAG_WRITE_SET(x) (((uint32_t)(x) << OTP_INT_FLAG_WRITE_SHIFT) & OTP_INT_FLAG_WRITE_MASK)
  191. #define OTP_INT_FLAG_WRITE_GET(x) (((uint32_t)(x) & OTP_INT_FLAG_WRITE_MASK) >> OTP_INT_FLAG_WRITE_SHIFT)
  192. /*
  193. * READ (RW)
  194. *
  195. * fuse read flag, write 1 to clear
  196. * 0: fuse is not read or reading
  197. * 1: fuse value is put in DATA register
  198. */
  199. #define OTP_INT_FLAG_READ_MASK (0x2U)
  200. #define OTP_INT_FLAG_READ_SHIFT (1U)
  201. #define OTP_INT_FLAG_READ_SET(x) (((uint32_t)(x) << OTP_INT_FLAG_READ_SHIFT) & OTP_INT_FLAG_READ_MASK)
  202. #define OTP_INT_FLAG_READ_GET(x) (((uint32_t)(x) & OTP_INT_FLAG_READ_MASK) >> OTP_INT_FLAG_READ_SHIFT)
  203. /*
  204. * LOAD (RW)
  205. *
  206. * fuse load flag, write 1 to clear
  207. * 0: fuse is not loaded or loading
  208. * 1: fuse loaded
  209. */
  210. #define OTP_INT_FLAG_LOAD_MASK (0x1U)
  211. #define OTP_INT_FLAG_LOAD_SHIFT (0U)
  212. #define OTP_INT_FLAG_LOAD_SET(x) (((uint32_t)(x) << OTP_INT_FLAG_LOAD_SHIFT) & OTP_INT_FLAG_LOAD_MASK)
  213. #define OTP_INT_FLAG_LOAD_GET(x) (((uint32_t)(x) & OTP_INT_FLAG_LOAD_MASK) >> OTP_INT_FLAG_LOAD_SHIFT)
  214. /* Bitfield definition for register: INT_EN */
  215. /*
  216. * WRITE (RW)
  217. *
  218. * fuse write interrupt enable
  219. * 0: fuse write interrupt is not enable
  220. * 1: fuse write interrupt is enable
  221. */
  222. #define OTP_INT_EN_WRITE_MASK (0x4U)
  223. #define OTP_INT_EN_WRITE_SHIFT (2U)
  224. #define OTP_INT_EN_WRITE_SET(x) (((uint32_t)(x) << OTP_INT_EN_WRITE_SHIFT) & OTP_INT_EN_WRITE_MASK)
  225. #define OTP_INT_EN_WRITE_GET(x) (((uint32_t)(x) & OTP_INT_EN_WRITE_MASK) >> OTP_INT_EN_WRITE_SHIFT)
  226. /*
  227. * READ (RW)
  228. *
  229. * fuse read interrupt enable
  230. * 0: fuse read interrupt is not enable
  231. * 1: fuse read interrupt is enable
  232. */
  233. #define OTP_INT_EN_READ_MASK (0x2U)
  234. #define OTP_INT_EN_READ_SHIFT (1U)
  235. #define OTP_INT_EN_READ_SET(x) (((uint32_t)(x) << OTP_INT_EN_READ_SHIFT) & OTP_INT_EN_READ_MASK)
  236. #define OTP_INT_EN_READ_GET(x) (((uint32_t)(x) & OTP_INT_EN_READ_MASK) >> OTP_INT_EN_READ_SHIFT)
  237. /*
  238. * LOAD (RW)
  239. *
  240. * fuse load interrupt enable
  241. * 0: fuse load interrupt is not enable
  242. * 1: fuse load interrupt is enable
  243. */
  244. #define OTP_INT_EN_LOAD_MASK (0x1U)
  245. #define OTP_INT_EN_LOAD_SHIFT (0U)
  246. #define OTP_INT_EN_LOAD_SET(x) (((uint32_t)(x) << OTP_INT_EN_LOAD_SHIFT) & OTP_INT_EN_LOAD_MASK)
  247. #define OTP_INT_EN_LOAD_GET(x) (((uint32_t)(x) & OTP_INT_EN_LOAD_MASK) >> OTP_INT_EN_LOAD_SHIFT)
  248. /* SHADOW register group index macro definition */
  249. #define OTP_SHADOW_SHADOW000 (0UL)
  250. #define OTP_SHADOW_SHADOW001 (1UL)
  251. #define OTP_SHADOW_SHADOW002 (2UL)
  252. #define OTP_SHADOW_SHADOW003 (3UL)
  253. #define OTP_SHADOW_SHADOW004 (4UL)
  254. #define OTP_SHADOW_SHADOW005 (5UL)
  255. #define OTP_SHADOW_SHADOW006 (6UL)
  256. #define OTP_SHADOW_SHADOW007 (7UL)
  257. #define OTP_SHADOW_SHADOW008 (8UL)
  258. #define OTP_SHADOW_SHADOW009 (9UL)
  259. #define OTP_SHADOW_SHADOW010 (10UL)
  260. #define OTP_SHADOW_SHADOW011 (11UL)
  261. #define OTP_SHADOW_SHADOW012 (12UL)
  262. #define OTP_SHADOW_SHADOW013 (13UL)
  263. #define OTP_SHADOW_SHADOW014 (14UL)
  264. #define OTP_SHADOW_SHADOW015 (15UL)
  265. #define OTP_SHADOW_SHADOW016 (16UL)
  266. #define OTP_SHADOW_SHADOW017 (17UL)
  267. #define OTP_SHADOW_SHADOW018 (18UL)
  268. #define OTP_SHADOW_SHADOW019 (19UL)
  269. #define OTP_SHADOW_SHADOW020 (20UL)
  270. #define OTP_SHADOW_SHADOW021 (21UL)
  271. #define OTP_SHADOW_SHADOW022 (22UL)
  272. #define OTP_SHADOW_SHADOW023 (23UL)
  273. #define OTP_SHADOW_SHADOW024 (24UL)
  274. #define OTP_SHADOW_SHADOW025 (25UL)
  275. #define OTP_SHADOW_SHADOW026 (26UL)
  276. #define OTP_SHADOW_SHADOW027 (27UL)
  277. #define OTP_SHADOW_SHADOW028 (28UL)
  278. #define OTP_SHADOW_SHADOW029 (29UL)
  279. #define OTP_SHADOW_SHADOW030 (30UL)
  280. #define OTP_SHADOW_SHADOW031 (31UL)
  281. #define OTP_SHADOW_SHADOW032 (32UL)
  282. #define OTP_SHADOW_SHADOW033 (33UL)
  283. #define OTP_SHADOW_SHADOW034 (34UL)
  284. #define OTP_SHADOW_SHADOW035 (35UL)
  285. #define OTP_SHADOW_SHADOW036 (36UL)
  286. #define OTP_SHADOW_SHADOW037 (37UL)
  287. #define OTP_SHADOW_SHADOW038 (38UL)
  288. #define OTP_SHADOW_SHADOW039 (39UL)
  289. #define OTP_SHADOW_SHADOW040 (40UL)
  290. #define OTP_SHADOW_SHADOW041 (41UL)
  291. #define OTP_SHADOW_SHADOW042 (42UL)
  292. #define OTP_SHADOW_SHADOW043 (43UL)
  293. #define OTP_SHADOW_SHADOW044 (44UL)
  294. #define OTP_SHADOW_SHADOW045 (45UL)
  295. #define OTP_SHADOW_SHADOW046 (46UL)
  296. #define OTP_SHADOW_SHADOW047 (47UL)
  297. #define OTP_SHADOW_SHADOW048 (48UL)
  298. #define OTP_SHADOW_SHADOW049 (49UL)
  299. #define OTP_SHADOW_SHADOW050 (50UL)
  300. #define OTP_SHADOW_SHADOW051 (51UL)
  301. #define OTP_SHADOW_SHADOW052 (52UL)
  302. #define OTP_SHADOW_SHADOW053 (53UL)
  303. #define OTP_SHADOW_SHADOW054 (54UL)
  304. #define OTP_SHADOW_SHADOW055 (55UL)
  305. #define OTP_SHADOW_SHADOW056 (56UL)
  306. #define OTP_SHADOW_SHADOW057 (57UL)
  307. #define OTP_SHADOW_SHADOW058 (58UL)
  308. #define OTP_SHADOW_SHADOW059 (59UL)
  309. #define OTP_SHADOW_SHADOW060 (60UL)
  310. #define OTP_SHADOW_SHADOW061 (61UL)
  311. #define OTP_SHADOW_SHADOW062 (62UL)
  312. #define OTP_SHADOW_SHADOW063 (63UL)
  313. #define OTP_SHADOW_SHADOW064 (64UL)
  314. #define OTP_SHADOW_SHADOW065 (65UL)
  315. #define OTP_SHADOW_SHADOW066 (66UL)
  316. #define OTP_SHADOW_SHADOW067 (67UL)
  317. #define OTP_SHADOW_SHADOW068 (68UL)
  318. #define OTP_SHADOW_SHADOW069 (69UL)
  319. #define OTP_SHADOW_SHADOW070 (70UL)
  320. #define OTP_SHADOW_SHADOW071 (71UL)
  321. #define OTP_SHADOW_SHADOW072 (72UL)
  322. #define OTP_SHADOW_SHADOW073 (73UL)
  323. #define OTP_SHADOW_SHADOW074 (74UL)
  324. #define OTP_SHADOW_SHADOW075 (75UL)
  325. #define OTP_SHADOW_SHADOW076 (76UL)
  326. #define OTP_SHADOW_SHADOW077 (77UL)
  327. #define OTP_SHADOW_SHADOW078 (78UL)
  328. #define OTP_SHADOW_SHADOW079 (79UL)
  329. #define OTP_SHADOW_SHADOW080 (80UL)
  330. #define OTP_SHADOW_SHADOW081 (81UL)
  331. #define OTP_SHADOW_SHADOW082 (82UL)
  332. #define OTP_SHADOW_SHADOW083 (83UL)
  333. #define OTP_SHADOW_SHADOW084 (84UL)
  334. #define OTP_SHADOW_SHADOW085 (85UL)
  335. #define OTP_SHADOW_SHADOW086 (86UL)
  336. #define OTP_SHADOW_SHADOW087 (87UL)
  337. #define OTP_SHADOW_SHADOW088 (88UL)
  338. #define OTP_SHADOW_SHADOW089 (89UL)
  339. #define OTP_SHADOW_SHADOW090 (90UL)
  340. #define OTP_SHADOW_SHADOW091 (91UL)
  341. #define OTP_SHADOW_SHADOW092 (92UL)
  342. #define OTP_SHADOW_SHADOW093 (93UL)
  343. #define OTP_SHADOW_SHADOW094 (94UL)
  344. #define OTP_SHADOW_SHADOW095 (95UL)
  345. #define OTP_SHADOW_SHADOW096 (96UL)
  346. #define OTP_SHADOW_SHADOW097 (97UL)
  347. #define OTP_SHADOW_SHADOW098 (98UL)
  348. #define OTP_SHADOW_SHADOW099 (99UL)
  349. #define OTP_SHADOW_SHADOW100 (100UL)
  350. #define OTP_SHADOW_SHADOW101 (101UL)
  351. #define OTP_SHADOW_SHADOW102 (102UL)
  352. #define OTP_SHADOW_SHADOW103 (103UL)
  353. #define OTP_SHADOW_SHADOW104 (104UL)
  354. #define OTP_SHADOW_SHADOW105 (105UL)
  355. #define OTP_SHADOW_SHADOW106 (106UL)
  356. #define OTP_SHADOW_SHADOW107 (107UL)
  357. #define OTP_SHADOW_SHADOW108 (108UL)
  358. #define OTP_SHADOW_SHADOW109 (109UL)
  359. #define OTP_SHADOW_SHADOW110 (110UL)
  360. #define OTP_SHADOW_SHADOW111 (111UL)
  361. #define OTP_SHADOW_SHADOW112 (112UL)
  362. #define OTP_SHADOW_SHADOW113 (113UL)
  363. #define OTP_SHADOW_SHADOW114 (114UL)
  364. #define OTP_SHADOW_SHADOW115 (115UL)
  365. #define OTP_SHADOW_SHADOW116 (116UL)
  366. #define OTP_SHADOW_SHADOW117 (117UL)
  367. #define OTP_SHADOW_SHADOW118 (118UL)
  368. #define OTP_SHADOW_SHADOW119 (119UL)
  369. #define OTP_SHADOW_SHADOW120 (120UL)
  370. #define OTP_SHADOW_SHADOW121 (121UL)
  371. #define OTP_SHADOW_SHADOW122 (122UL)
  372. #define OTP_SHADOW_SHADOW123 (123UL)
  373. #define OTP_SHADOW_SHADOW124 (124UL)
  374. #define OTP_SHADOW_SHADOW125 (125UL)
  375. #define OTP_SHADOW_SHADOW126 (126UL)
  376. #define OTP_SHADOW_SHADOW127 (127UL)
  377. /* SHADOW_LOCK register group index macro definition */
  378. #define OTP_SHADOW_LOCK_LOCK00 (0UL)
  379. #define OTP_SHADOW_LOCK_LOCK01 (1UL)
  380. #define OTP_SHADOW_LOCK_LOCK02 (2UL)
  381. #define OTP_SHADOW_LOCK_LOCK03 (3UL)
  382. #define OTP_SHADOW_LOCK_LOCK04 (4UL)
  383. #define OTP_SHADOW_LOCK_LOCK05 (5UL)
  384. #define OTP_SHADOW_LOCK_LOCK06 (6UL)
  385. #define OTP_SHADOW_LOCK_LOCK07 (7UL)
  386. /* FUSE register group index macro definition */
  387. #define OTP_FUSE_FUSE000 (0UL)
  388. #define OTP_FUSE_FUSE001 (1UL)
  389. #define OTP_FUSE_FUSE002 (2UL)
  390. #define OTP_FUSE_FUSE003 (3UL)
  391. #define OTP_FUSE_FUSE004 (4UL)
  392. #define OTP_FUSE_FUSE005 (5UL)
  393. #define OTP_FUSE_FUSE006 (6UL)
  394. #define OTP_FUSE_FUSE007 (7UL)
  395. #define OTP_FUSE_FUSE008 (8UL)
  396. #define OTP_FUSE_FUSE009 (9UL)
  397. #define OTP_FUSE_FUSE010 (10UL)
  398. #define OTP_FUSE_FUSE011 (11UL)
  399. #define OTP_FUSE_FUSE012 (12UL)
  400. #define OTP_FUSE_FUSE013 (13UL)
  401. #define OTP_FUSE_FUSE014 (14UL)
  402. #define OTP_FUSE_FUSE015 (15UL)
  403. #define OTP_FUSE_FUSE016 (16UL)
  404. #define OTP_FUSE_FUSE017 (17UL)
  405. #define OTP_FUSE_FUSE018 (18UL)
  406. #define OTP_FUSE_FUSE019 (19UL)
  407. #define OTP_FUSE_FUSE020 (20UL)
  408. #define OTP_FUSE_FUSE021 (21UL)
  409. #define OTP_FUSE_FUSE022 (22UL)
  410. #define OTP_FUSE_FUSE023 (23UL)
  411. #define OTP_FUSE_FUSE024 (24UL)
  412. #define OTP_FUSE_FUSE025 (25UL)
  413. #define OTP_FUSE_FUSE026 (26UL)
  414. #define OTP_FUSE_FUSE027 (27UL)
  415. #define OTP_FUSE_FUSE028 (28UL)
  416. #define OTP_FUSE_FUSE029 (29UL)
  417. #define OTP_FUSE_FUSE030 (30UL)
  418. #define OTP_FUSE_FUSE031 (31UL)
  419. #define OTP_FUSE_FUSE032 (32UL)
  420. #define OTP_FUSE_FUSE033 (33UL)
  421. #define OTP_FUSE_FUSE034 (34UL)
  422. #define OTP_FUSE_FUSE035 (35UL)
  423. #define OTP_FUSE_FUSE036 (36UL)
  424. #define OTP_FUSE_FUSE037 (37UL)
  425. #define OTP_FUSE_FUSE038 (38UL)
  426. #define OTP_FUSE_FUSE039 (39UL)
  427. #define OTP_FUSE_FUSE040 (40UL)
  428. #define OTP_FUSE_FUSE041 (41UL)
  429. #define OTP_FUSE_FUSE042 (42UL)
  430. #define OTP_FUSE_FUSE043 (43UL)
  431. #define OTP_FUSE_FUSE044 (44UL)
  432. #define OTP_FUSE_FUSE045 (45UL)
  433. #define OTP_FUSE_FUSE046 (46UL)
  434. #define OTP_FUSE_FUSE047 (47UL)
  435. #define OTP_FUSE_FUSE048 (48UL)
  436. #define OTP_FUSE_FUSE049 (49UL)
  437. #define OTP_FUSE_FUSE050 (50UL)
  438. #define OTP_FUSE_FUSE051 (51UL)
  439. #define OTP_FUSE_FUSE052 (52UL)
  440. #define OTP_FUSE_FUSE053 (53UL)
  441. #define OTP_FUSE_FUSE054 (54UL)
  442. #define OTP_FUSE_FUSE055 (55UL)
  443. #define OTP_FUSE_FUSE056 (56UL)
  444. #define OTP_FUSE_FUSE057 (57UL)
  445. #define OTP_FUSE_FUSE058 (58UL)
  446. #define OTP_FUSE_FUSE059 (59UL)
  447. #define OTP_FUSE_FUSE060 (60UL)
  448. #define OTP_FUSE_FUSE061 (61UL)
  449. #define OTP_FUSE_FUSE062 (62UL)
  450. #define OTP_FUSE_FUSE063 (63UL)
  451. #define OTP_FUSE_FUSE064 (64UL)
  452. #define OTP_FUSE_FUSE065 (65UL)
  453. #define OTP_FUSE_FUSE066 (66UL)
  454. #define OTP_FUSE_FUSE067 (67UL)
  455. #define OTP_FUSE_FUSE068 (68UL)
  456. #define OTP_FUSE_FUSE069 (69UL)
  457. #define OTP_FUSE_FUSE070 (70UL)
  458. #define OTP_FUSE_FUSE071 (71UL)
  459. #define OTP_FUSE_FUSE072 (72UL)
  460. #define OTP_FUSE_FUSE073 (73UL)
  461. #define OTP_FUSE_FUSE074 (74UL)
  462. #define OTP_FUSE_FUSE075 (75UL)
  463. #define OTP_FUSE_FUSE076 (76UL)
  464. #define OTP_FUSE_FUSE077 (77UL)
  465. #define OTP_FUSE_FUSE078 (78UL)
  466. #define OTP_FUSE_FUSE079 (79UL)
  467. #define OTP_FUSE_FUSE080 (80UL)
  468. #define OTP_FUSE_FUSE081 (81UL)
  469. #define OTP_FUSE_FUSE082 (82UL)
  470. #define OTP_FUSE_FUSE083 (83UL)
  471. #define OTP_FUSE_FUSE084 (84UL)
  472. #define OTP_FUSE_FUSE085 (85UL)
  473. #define OTP_FUSE_FUSE086 (86UL)
  474. #define OTP_FUSE_FUSE087 (87UL)
  475. #define OTP_FUSE_FUSE088 (88UL)
  476. #define OTP_FUSE_FUSE089 (89UL)
  477. #define OTP_FUSE_FUSE090 (90UL)
  478. #define OTP_FUSE_FUSE091 (91UL)
  479. #define OTP_FUSE_FUSE092 (92UL)
  480. #define OTP_FUSE_FUSE093 (93UL)
  481. #define OTP_FUSE_FUSE094 (94UL)
  482. #define OTP_FUSE_FUSE095 (95UL)
  483. #define OTP_FUSE_FUSE096 (96UL)
  484. #define OTP_FUSE_FUSE097 (97UL)
  485. #define OTP_FUSE_FUSE098 (98UL)
  486. #define OTP_FUSE_FUSE099 (99UL)
  487. #define OTP_FUSE_FUSE100 (100UL)
  488. #define OTP_FUSE_FUSE101 (101UL)
  489. #define OTP_FUSE_FUSE102 (102UL)
  490. #define OTP_FUSE_FUSE103 (103UL)
  491. #define OTP_FUSE_FUSE104 (104UL)
  492. #define OTP_FUSE_FUSE105 (105UL)
  493. #define OTP_FUSE_FUSE106 (106UL)
  494. #define OTP_FUSE_FUSE107 (107UL)
  495. #define OTP_FUSE_FUSE108 (108UL)
  496. #define OTP_FUSE_FUSE109 (109UL)
  497. #define OTP_FUSE_FUSE110 (110UL)
  498. #define OTP_FUSE_FUSE111 (111UL)
  499. #define OTP_FUSE_FUSE112 (112UL)
  500. #define OTP_FUSE_FUSE113 (113UL)
  501. #define OTP_FUSE_FUSE114 (114UL)
  502. #define OTP_FUSE_FUSE115 (115UL)
  503. #define OTP_FUSE_FUSE116 (116UL)
  504. #define OTP_FUSE_FUSE117 (117UL)
  505. #define OTP_FUSE_FUSE118 (118UL)
  506. #define OTP_FUSE_FUSE119 (119UL)
  507. #define OTP_FUSE_FUSE120 (120UL)
  508. #define OTP_FUSE_FUSE121 (121UL)
  509. #define OTP_FUSE_FUSE122 (122UL)
  510. #define OTP_FUSE_FUSE123 (123UL)
  511. #define OTP_FUSE_FUSE124 (124UL)
  512. #define OTP_FUSE_FUSE125 (125UL)
  513. #define OTP_FUSE_FUSE126 (126UL)
  514. #define OTP_FUSE_FUSE127 (127UL)
  515. /* FUSE_LOCK register group index macro definition */
  516. #define OTP_FUSE_LOCK_LOCK00 (0UL)
  517. #define OTP_FUSE_LOCK_LOCK01 (1UL)
  518. #define OTP_FUSE_LOCK_LOCK02 (2UL)
  519. #define OTP_FUSE_LOCK_LOCK03 (3UL)
  520. #define OTP_FUSE_LOCK_LOCK04 (4UL)
  521. #define OTP_FUSE_LOCK_LOCK05 (5UL)
  522. #define OTP_FUSE_LOCK_LOCK06 (6UL)
  523. #define OTP_FUSE_LOCK_LOCK07 (7UL)
  524. /* REGION register group index macro definition */
  525. #define OTP_REGION_LOAD_REGION0 (0UL)
  526. #define OTP_REGION_LOAD_REGION1 (1UL)
  527. #define OTP_REGION_LOAD_REGION2 (2UL)
  528. #define OTP_REGION_LOAD_REGION3 (3UL)
  529. #endif /* HPM_OTP_H */