hpm_sysctl_regs.h 54 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403
  1. /*
  2. * Copyright (c) 2021-2023 HPMicro
  3. *
  4. * SPDX-License-Identifier: BSD-3-Clause
  5. *
  6. */
  7. #ifndef HPM_SYSCTL_H
  8. #define HPM_SYSCTL_H
  9. typedef struct {
  10. __RW uint32_t RESOURCE[322]; /* 0x0 - 0x504: Resource control register for cpu0_core */
  11. __R uint8_t RESERVED0[760]; /* 0x508 - 0x7FF: Reserved */
  12. struct {
  13. __RW uint32_t VALUE; /* 0x800: Group setting */
  14. __RW uint32_t SET; /* 0x804: Group setting */
  15. __RW uint32_t CLEAR; /* 0x808: Group setting */
  16. __RW uint32_t TOGGLE; /* 0x80C: Group setting */
  17. } GROUP0[3];
  18. __R uint8_t RESERVED1[16]; /* 0x830 - 0x83F: Reserved */
  19. struct {
  20. __RW uint32_t VALUE; /* 0x840: Group setting */
  21. __RW uint32_t SET; /* 0x844: Group setting */
  22. __RW uint32_t CLEAR; /* 0x848: Group setting */
  23. __RW uint32_t TOGGLE; /* 0x84C: Group setting */
  24. } GROUP1[3];
  25. __R uint8_t RESERVED2[144]; /* 0x870 - 0x8FF: Reserved */
  26. struct {
  27. __RW uint32_t VALUE; /* 0x900: Affiliate of Group */
  28. __RW uint32_t SET; /* 0x904: Affiliate of Group */
  29. __RW uint32_t CLEAR; /* 0x908: Affiliate of Group */
  30. __RW uint32_t TOGGLE; /* 0x90C: Affiliate of Group */
  31. } AFFILIATE[2];
  32. struct {
  33. __RW uint32_t VALUE; /* 0x920: Retention Contol */
  34. __RW uint32_t SET; /* 0x924: Retention Contol */
  35. __RW uint32_t CLEAR; /* 0x928: Retention Contol */
  36. __RW uint32_t TOGGLE; /* 0x92C: Retention Contol */
  37. } RETENTION[2];
  38. __R uint8_t RESERVED3[1728]; /* 0x940 - 0xFFF: Reserved */
  39. struct {
  40. __RW uint32_t STATUS; /* 0x1000: Power Setting */
  41. __RW uint32_t LF_WAIT; /* 0x1004: Power Setting */
  42. __R uint8_t RESERVED0[4]; /* 0x1008 - 0x100B: Reserved */
  43. __RW uint32_t OFF_WAIT; /* 0x100C: Power Setting */
  44. } POWER[2];
  45. __R uint8_t RESERVED4[992]; /* 0x1020 - 0x13FF: Reserved */
  46. struct {
  47. __RW uint32_t CONTROL; /* 0x1400: Reset Setting */
  48. __RW uint32_t CONFIG; /* 0x1404: Reset Setting */
  49. __R uint8_t RESERVED0[4]; /* 0x1408 - 0x140B: Reserved */
  50. __RW uint32_t COUNTER; /* 0x140C: Reset Setting */
  51. } RESET[3];
  52. __R uint8_t RESERVED5[976]; /* 0x1430 - 0x17FF: Reserved */
  53. __RW uint32_t CLOCK_CPU[1]; /* 0x1800: Clock setting */
  54. __RW uint32_t CLOCK[39]; /* 0x1804 - 0x189C: Clock setting */
  55. __R uint8_t RESERVED6[864]; /* 0x18A0 - 0x1BFF: Reserved */
  56. __RW uint32_t ADCCLK[3]; /* 0x1C00 - 0x1C08: Clock setting */
  57. __RW uint32_t DACCLK[2]; /* 0x1C0C - 0x1C10: Clock setting */
  58. __R uint8_t RESERVED7[1004]; /* 0x1C14 - 0x1FFF: Reserved */
  59. __RW uint32_t GLOBAL00; /* 0x2000: Clock senario */
  60. __R uint8_t RESERVED8[1020]; /* 0x2004 - 0x23FF: Reserved */
  61. struct {
  62. __RW uint32_t CONTROL; /* 0x2400: Clock measure and monitor control */
  63. __R uint32_t CURRENT; /* 0x2404: Clock measure result */
  64. __RW uint32_t LOW_LIMIT; /* 0x2408: Clock lower limit */
  65. __RW uint32_t HIGH_LIMIT; /* 0x240C: Clock upper limit */
  66. __R uint8_t RESERVED0[16]; /* 0x2410 - 0x241F: Reserved */
  67. } MONITOR[4];
  68. __R uint8_t RESERVED9[896]; /* 0x2480 - 0x27FF: Reserved */
  69. struct {
  70. __RW uint32_t LP; /* 0x2800: CPU0 LP control */
  71. __RW uint32_t LOCK; /* 0x2804: CPU0 Lock GPR */
  72. __RW uint32_t GPR[14]; /* 0x2808 - 0x283C: CPU0 GPR0 */
  73. __R uint32_t WAKEUP_STATUS[4]; /* 0x2840 - 0x284C: CPU0 wakeup IRQ status */
  74. __R uint8_t RESERVED0[48]; /* 0x2850 - 0x287F: Reserved */
  75. __RW uint32_t WAKEUP_ENABLE[4]; /* 0x2880 - 0x288C: CPU0 wakeup IRQ enable */
  76. __R uint8_t RESERVED1[880]; /* 0x2890 - 0x2BFF: Reserved */
  77. } CPU[2];
  78. } SYSCTL_Type;
  79. /* Bitfield definition for register array: RESOURCE */
  80. /*
  81. * GLB_BUSY (RO)
  82. *
  83. * global busy
  84. * 0: no changes pending to any nodes
  85. * 1: any of nodes is changing status
  86. */
  87. #define SYSCTL_RESOURCE_GLB_BUSY_MASK (0x80000000UL)
  88. #define SYSCTL_RESOURCE_GLB_BUSY_SHIFT (31U)
  89. #define SYSCTL_RESOURCE_GLB_BUSY_GET(x) (((uint32_t)(x) & SYSCTL_RESOURCE_GLB_BUSY_MASK) >> SYSCTL_RESOURCE_GLB_BUSY_SHIFT)
  90. /*
  91. * LOC_BUSY (RO)
  92. *
  93. * local busy
  94. * 0: no change is pending for current node
  95. * 1: current node is changing status
  96. */
  97. #define SYSCTL_RESOURCE_LOC_BUSY_MASK (0x40000000UL)
  98. #define SYSCTL_RESOURCE_LOC_BUSY_SHIFT (30U)
  99. #define SYSCTL_RESOURCE_LOC_BUSY_GET(x) (((uint32_t)(x) & SYSCTL_RESOURCE_LOC_BUSY_MASK) >> SYSCTL_RESOURCE_LOC_BUSY_SHIFT)
  100. /*
  101. * MODE (RW)
  102. *
  103. * resource work mode
  104. * 0:auto turn on and off as system required(recommended)
  105. * 1:always on
  106. * 2:always off
  107. * 3:reserved
  108. */
  109. #define SYSCTL_RESOURCE_MODE_MASK (0x3U)
  110. #define SYSCTL_RESOURCE_MODE_SHIFT (0U)
  111. #define SYSCTL_RESOURCE_MODE_SET(x) (((uint32_t)(x) << SYSCTL_RESOURCE_MODE_SHIFT) & SYSCTL_RESOURCE_MODE_MASK)
  112. #define SYSCTL_RESOURCE_MODE_GET(x) (((uint32_t)(x) & SYSCTL_RESOURCE_MODE_MASK) >> SYSCTL_RESOURCE_MODE_SHIFT)
  113. /* Bitfield definition for register of struct array GROUP0: VALUE */
  114. /*
  115. * LINK (RW)
  116. *
  117. * denpendency on peripherals, index count from resource ahbp(0x400), each bit represents a peripheral
  118. * 0: peripheral is not needed
  119. * 1: periphera is needed
  120. */
  121. #define SYSCTL_GROUP0_VALUE_LINK_MASK (0xFFFFFFFFUL)
  122. #define SYSCTL_GROUP0_VALUE_LINK_SHIFT (0U)
  123. #define SYSCTL_GROUP0_VALUE_LINK_SET(x) (((uint32_t)(x) << SYSCTL_GROUP0_VALUE_LINK_SHIFT) & SYSCTL_GROUP0_VALUE_LINK_MASK)
  124. #define SYSCTL_GROUP0_VALUE_LINK_GET(x) (((uint32_t)(x) & SYSCTL_GROUP0_VALUE_LINK_MASK) >> SYSCTL_GROUP0_VALUE_LINK_SHIFT)
  125. /* Bitfield definition for register of struct array GROUP0: SET */
  126. /*
  127. * LINK (RW)
  128. *
  129. * denpendency on peripherals, index count from resource ahbp(0x400), each bit represents a peripheral
  130. * 0: no effect
  131. * 1: add periphera into this group,periphera is needed
  132. */
  133. #define SYSCTL_GROUP0_SET_LINK_MASK (0xFFFFFFFFUL)
  134. #define SYSCTL_GROUP0_SET_LINK_SHIFT (0U)
  135. #define SYSCTL_GROUP0_SET_LINK_SET(x) (((uint32_t)(x) << SYSCTL_GROUP0_SET_LINK_SHIFT) & SYSCTL_GROUP0_SET_LINK_MASK)
  136. #define SYSCTL_GROUP0_SET_LINK_GET(x) (((uint32_t)(x) & SYSCTL_GROUP0_SET_LINK_MASK) >> SYSCTL_GROUP0_SET_LINK_SHIFT)
  137. /* Bitfield definition for register of struct array GROUP0: CLEAR */
  138. /*
  139. * LINK (RW)
  140. *
  141. * denpendency on peripherals, index count from resource ahbp(0x400), each bit represents a peripheral
  142. * 0: no effect
  143. * 1: delete periphera in this group,periphera is not needed
  144. */
  145. #define SYSCTL_GROUP0_CLEAR_LINK_MASK (0xFFFFFFFFUL)
  146. #define SYSCTL_GROUP0_CLEAR_LINK_SHIFT (0U)
  147. #define SYSCTL_GROUP0_CLEAR_LINK_SET(x) (((uint32_t)(x) << SYSCTL_GROUP0_CLEAR_LINK_SHIFT) & SYSCTL_GROUP0_CLEAR_LINK_MASK)
  148. #define SYSCTL_GROUP0_CLEAR_LINK_GET(x) (((uint32_t)(x) & SYSCTL_GROUP0_CLEAR_LINK_MASK) >> SYSCTL_GROUP0_CLEAR_LINK_SHIFT)
  149. /* Bitfield definition for register of struct array GROUP0: TOGGLE */
  150. /*
  151. * LINK (RW)
  152. *
  153. * denpendency on peripherals, index count from resource ahbp(0x400), each bit represents a peripheral
  154. * 0: no effect
  155. * 1: toggle the result that whether periphera is needed before
  156. */
  157. #define SYSCTL_GROUP0_TOGGLE_LINK_MASK (0xFFFFFFFFUL)
  158. #define SYSCTL_GROUP0_TOGGLE_LINK_SHIFT (0U)
  159. #define SYSCTL_GROUP0_TOGGLE_LINK_SET(x) (((uint32_t)(x) << SYSCTL_GROUP0_TOGGLE_LINK_SHIFT) & SYSCTL_GROUP0_TOGGLE_LINK_MASK)
  160. #define SYSCTL_GROUP0_TOGGLE_LINK_GET(x) (((uint32_t)(x) & SYSCTL_GROUP0_TOGGLE_LINK_MASK) >> SYSCTL_GROUP0_TOGGLE_LINK_SHIFT)
  161. /* Bitfield definition for register of struct array GROUP1: VALUE */
  162. /*
  163. * LINK (RW)
  164. *
  165. * denpendency on peripherals, index count from resource ahbp(0x400), each bit represents a peripheral
  166. * 0: peripheral is not needed
  167. * 1: periphera is needed
  168. */
  169. #define SYSCTL_GROUP1_VALUE_LINK_MASK (0xFFFFFFFFUL)
  170. #define SYSCTL_GROUP1_VALUE_LINK_SHIFT (0U)
  171. #define SYSCTL_GROUP1_VALUE_LINK_SET(x) (((uint32_t)(x) << SYSCTL_GROUP1_VALUE_LINK_SHIFT) & SYSCTL_GROUP1_VALUE_LINK_MASK)
  172. #define SYSCTL_GROUP1_VALUE_LINK_GET(x) (((uint32_t)(x) & SYSCTL_GROUP1_VALUE_LINK_MASK) >> SYSCTL_GROUP1_VALUE_LINK_SHIFT)
  173. /* Bitfield definition for register of struct array GROUP1: SET */
  174. /*
  175. * LINK (RW)
  176. *
  177. * denpendency on peripherals, index count from resource ahbp(0x400), each bit represents a peripheral
  178. * 0: no effect
  179. * 1: add periphera into this group,periphera is needed
  180. */
  181. #define SYSCTL_GROUP1_SET_LINK_MASK (0xFFFFFFFFUL)
  182. #define SYSCTL_GROUP1_SET_LINK_SHIFT (0U)
  183. #define SYSCTL_GROUP1_SET_LINK_SET(x) (((uint32_t)(x) << SYSCTL_GROUP1_SET_LINK_SHIFT) & SYSCTL_GROUP1_SET_LINK_MASK)
  184. #define SYSCTL_GROUP1_SET_LINK_GET(x) (((uint32_t)(x) & SYSCTL_GROUP1_SET_LINK_MASK) >> SYSCTL_GROUP1_SET_LINK_SHIFT)
  185. /* Bitfield definition for register of struct array GROUP1: CLEAR */
  186. /*
  187. * LINK (RW)
  188. *
  189. * denpendency on peripherals, index count from resource ahbp(0x400), each bit represents a peripheral
  190. * 0: no effect
  191. * 1: delete periphera in this group,periphera is not needed
  192. */
  193. #define SYSCTL_GROUP1_CLEAR_LINK_MASK (0xFFFFFFFFUL)
  194. #define SYSCTL_GROUP1_CLEAR_LINK_SHIFT (0U)
  195. #define SYSCTL_GROUP1_CLEAR_LINK_SET(x) (((uint32_t)(x) << SYSCTL_GROUP1_CLEAR_LINK_SHIFT) & SYSCTL_GROUP1_CLEAR_LINK_MASK)
  196. #define SYSCTL_GROUP1_CLEAR_LINK_GET(x) (((uint32_t)(x) & SYSCTL_GROUP1_CLEAR_LINK_MASK) >> SYSCTL_GROUP1_CLEAR_LINK_SHIFT)
  197. /* Bitfield definition for register of struct array GROUP1: TOGGLE */
  198. /*
  199. * LINK (RW)
  200. *
  201. * denpendency on peripherals, index count from resource ahbp(0x400), each bit represents a peripheral
  202. * 0: no effect
  203. * 1: toggle the result that whether periphera is needed before
  204. */
  205. #define SYSCTL_GROUP1_TOGGLE_LINK_MASK (0xFFFFFFFFUL)
  206. #define SYSCTL_GROUP1_TOGGLE_LINK_SHIFT (0U)
  207. #define SYSCTL_GROUP1_TOGGLE_LINK_SET(x) (((uint32_t)(x) << SYSCTL_GROUP1_TOGGLE_LINK_SHIFT) & SYSCTL_GROUP1_TOGGLE_LINK_MASK)
  208. #define SYSCTL_GROUP1_TOGGLE_LINK_GET(x) (((uint32_t)(x) & SYSCTL_GROUP1_TOGGLE_LINK_MASK) >> SYSCTL_GROUP1_TOGGLE_LINK_SHIFT)
  209. /* Bitfield definition for register of struct array AFFILIATE: VALUE */
  210. /*
  211. * LINK (RW)
  212. *
  213. * Affiliate groups of cpu0, each bit represents a group
  214. * bit0: cpu0 depends on group0
  215. * bit1: cpu0 depends on group1
  216. * bit2: cpu0 depends on group2
  217. * bit3: cpu0 depends on group3
  218. */
  219. #define SYSCTL_AFFILIATE_VALUE_LINK_MASK (0xFU)
  220. #define SYSCTL_AFFILIATE_VALUE_LINK_SHIFT (0U)
  221. #define SYSCTL_AFFILIATE_VALUE_LINK_SET(x) (((uint32_t)(x) << SYSCTL_AFFILIATE_VALUE_LINK_SHIFT) & SYSCTL_AFFILIATE_VALUE_LINK_MASK)
  222. #define SYSCTL_AFFILIATE_VALUE_LINK_GET(x) (((uint32_t)(x) & SYSCTL_AFFILIATE_VALUE_LINK_MASK) >> SYSCTL_AFFILIATE_VALUE_LINK_SHIFT)
  223. /* Bitfield definition for register of struct array AFFILIATE: SET */
  224. /*
  225. * LINK (RW)
  226. *
  227. * Affiliate groups of cpu0,each bit represents a group
  228. * 0: no effect
  229. * 1: the group is assigned to CPU0
  230. */
  231. #define SYSCTL_AFFILIATE_SET_LINK_MASK (0xFU)
  232. #define SYSCTL_AFFILIATE_SET_LINK_SHIFT (0U)
  233. #define SYSCTL_AFFILIATE_SET_LINK_SET(x) (((uint32_t)(x) << SYSCTL_AFFILIATE_SET_LINK_SHIFT) & SYSCTL_AFFILIATE_SET_LINK_MASK)
  234. #define SYSCTL_AFFILIATE_SET_LINK_GET(x) (((uint32_t)(x) & SYSCTL_AFFILIATE_SET_LINK_MASK) >> SYSCTL_AFFILIATE_SET_LINK_SHIFT)
  235. /* Bitfield definition for register of struct array AFFILIATE: CLEAR */
  236. /*
  237. * LINK (RW)
  238. *
  239. * Affiliate groups of cpu0, each bit represents a group
  240. * 0: no effect
  241. * 1: the group is not assigned to CPU0
  242. */
  243. #define SYSCTL_AFFILIATE_CLEAR_LINK_MASK (0xFU)
  244. #define SYSCTL_AFFILIATE_CLEAR_LINK_SHIFT (0U)
  245. #define SYSCTL_AFFILIATE_CLEAR_LINK_SET(x) (((uint32_t)(x) << SYSCTL_AFFILIATE_CLEAR_LINK_SHIFT) & SYSCTL_AFFILIATE_CLEAR_LINK_MASK)
  246. #define SYSCTL_AFFILIATE_CLEAR_LINK_GET(x) (((uint32_t)(x) & SYSCTL_AFFILIATE_CLEAR_LINK_MASK) >> SYSCTL_AFFILIATE_CLEAR_LINK_SHIFT)
  247. /* Bitfield definition for register of struct array AFFILIATE: TOGGLE */
  248. /*
  249. * LINK (RW)
  250. *
  251. * Affiliate groups of cpu0, each bit represents a group
  252. * 0: no effect
  253. * 1: toggle the result that whether the group is assigned to CPU0 before
  254. */
  255. #define SYSCTL_AFFILIATE_TOGGLE_LINK_MASK (0xFU)
  256. #define SYSCTL_AFFILIATE_TOGGLE_LINK_SHIFT (0U)
  257. #define SYSCTL_AFFILIATE_TOGGLE_LINK_SET(x) (((uint32_t)(x) << SYSCTL_AFFILIATE_TOGGLE_LINK_SHIFT) & SYSCTL_AFFILIATE_TOGGLE_LINK_MASK)
  258. #define SYSCTL_AFFILIATE_TOGGLE_LINK_GET(x) (((uint32_t)(x) & SYSCTL_AFFILIATE_TOGGLE_LINK_MASK) >> SYSCTL_AFFILIATE_TOGGLE_LINK_SHIFT)
  259. /* Bitfield definition for register of struct array RETENTION: VALUE */
  260. /*
  261. * LINK (RW)
  262. *
  263. * retention setting while CPU0 enter stop mode, each bit represents a resource
  264. * bit00: soc_mem is kept on while cpu0 stop
  265. * bit01: soc_ctx is kept on while cpu0 stop
  266. * bit02: cpu0_mem is kept on while cpu0 stop
  267. * bit03: cpu0_ctx is kept on while cpu0 stop
  268. * bit04: cpu1_mem is kept on while cpu0 stop
  269. * bit05: cpu1_ctx is kept on while cpu0 stop
  270. * bit06: xtal_hold is kept on while cpu0 stop
  271. * bit07: pll0_hold is kept on while cpu0 stop
  272. * bit08: pll1_hold is kept on while cpu0 stop
  273. * bit09: pll2_hold is kept on while cpu0 stop
  274. */
  275. #define SYSCTL_RETENTION_VALUE_LINK_MASK (0x3FFU)
  276. #define SYSCTL_RETENTION_VALUE_LINK_SHIFT (0U)
  277. #define SYSCTL_RETENTION_VALUE_LINK_SET(x) (((uint32_t)(x) << SYSCTL_RETENTION_VALUE_LINK_SHIFT) & SYSCTL_RETENTION_VALUE_LINK_MASK)
  278. #define SYSCTL_RETENTION_VALUE_LINK_GET(x) (((uint32_t)(x) & SYSCTL_RETENTION_VALUE_LINK_MASK) >> SYSCTL_RETENTION_VALUE_LINK_SHIFT)
  279. /* Bitfield definition for register of struct array RETENTION: SET */
  280. /*
  281. * LINK (RW)
  282. *
  283. * retention setting while CPU0 enter stop mode, each bit represents a resource
  284. * 0: no effect
  285. * 1: keep
  286. */
  287. #define SYSCTL_RETENTION_SET_LINK_MASK (0x3FFU)
  288. #define SYSCTL_RETENTION_SET_LINK_SHIFT (0U)
  289. #define SYSCTL_RETENTION_SET_LINK_SET(x) (((uint32_t)(x) << SYSCTL_RETENTION_SET_LINK_SHIFT) & SYSCTL_RETENTION_SET_LINK_MASK)
  290. #define SYSCTL_RETENTION_SET_LINK_GET(x) (((uint32_t)(x) & SYSCTL_RETENTION_SET_LINK_MASK) >> SYSCTL_RETENTION_SET_LINK_SHIFT)
  291. /* Bitfield definition for register of struct array RETENTION: CLEAR */
  292. /*
  293. * LINK (RW)
  294. *
  295. * retention setting while CPU0 enter stop mode, each bit represents a resource
  296. * 0: no effect
  297. * 1: no keep
  298. */
  299. #define SYSCTL_RETENTION_CLEAR_LINK_MASK (0x3FFU)
  300. #define SYSCTL_RETENTION_CLEAR_LINK_SHIFT (0U)
  301. #define SYSCTL_RETENTION_CLEAR_LINK_SET(x) (((uint32_t)(x) << SYSCTL_RETENTION_CLEAR_LINK_SHIFT) & SYSCTL_RETENTION_CLEAR_LINK_MASK)
  302. #define SYSCTL_RETENTION_CLEAR_LINK_GET(x) (((uint32_t)(x) & SYSCTL_RETENTION_CLEAR_LINK_MASK) >> SYSCTL_RETENTION_CLEAR_LINK_SHIFT)
  303. /* Bitfield definition for register of struct array RETENTION: TOGGLE */
  304. /*
  305. * LINK (RW)
  306. *
  307. * retention setting while CPU0 enter stop mode, each bit represents a resource
  308. * 0: no effect
  309. * 1: toggle the result that whether the resource is kept on while CPU0 stop before
  310. */
  311. #define SYSCTL_RETENTION_TOGGLE_LINK_MASK (0x3FFU)
  312. #define SYSCTL_RETENTION_TOGGLE_LINK_SHIFT (0U)
  313. #define SYSCTL_RETENTION_TOGGLE_LINK_SET(x) (((uint32_t)(x) << SYSCTL_RETENTION_TOGGLE_LINK_SHIFT) & SYSCTL_RETENTION_TOGGLE_LINK_MASK)
  314. #define SYSCTL_RETENTION_TOGGLE_LINK_GET(x) (((uint32_t)(x) & SYSCTL_RETENTION_TOGGLE_LINK_MASK) >> SYSCTL_RETENTION_TOGGLE_LINK_SHIFT)
  315. /* Bitfield definition for register of struct array POWER: STATUS */
  316. /*
  317. * FLAG (RW)
  318. *
  319. * flag represents power cycle happened from last clear of this bit
  320. * 0: power domain did not edurance power cycle since last clear of this bit
  321. * 1: power domain enduranced power cycle since last clear of this bit
  322. */
  323. #define SYSCTL_POWER_STATUS_FLAG_MASK (0x80000000UL)
  324. #define SYSCTL_POWER_STATUS_FLAG_SHIFT (31U)
  325. #define SYSCTL_POWER_STATUS_FLAG_SET(x) (((uint32_t)(x) << SYSCTL_POWER_STATUS_FLAG_SHIFT) & SYSCTL_POWER_STATUS_FLAG_MASK)
  326. #define SYSCTL_POWER_STATUS_FLAG_GET(x) (((uint32_t)(x) & SYSCTL_POWER_STATUS_FLAG_MASK) >> SYSCTL_POWER_STATUS_FLAG_SHIFT)
  327. /*
  328. * FLAG_WAKE (RW)
  329. *
  330. * flag represents wakeup power cycle happened from last clear of this bit
  331. * 0: power domain did not edurance wakeup power cycle since last clear of this bit
  332. * 1: power domain enduranced wakeup power cycle since last clear of this bit
  333. */
  334. #define SYSCTL_POWER_STATUS_FLAG_WAKE_MASK (0x40000000UL)
  335. #define SYSCTL_POWER_STATUS_FLAG_WAKE_SHIFT (30U)
  336. #define SYSCTL_POWER_STATUS_FLAG_WAKE_SET(x) (((uint32_t)(x) << SYSCTL_POWER_STATUS_FLAG_WAKE_SHIFT) & SYSCTL_POWER_STATUS_FLAG_WAKE_MASK)
  337. #define SYSCTL_POWER_STATUS_FLAG_WAKE_GET(x) (((uint32_t)(x) & SYSCTL_POWER_STATUS_FLAG_WAKE_MASK) >> SYSCTL_POWER_STATUS_FLAG_WAKE_SHIFT)
  338. /*
  339. * LF_DISABLE (RO)
  340. *
  341. * low fanout power switch disable
  342. * 0: low fanout power switches are turned on
  343. * 1: low fanout power switches are truned off
  344. */
  345. #define SYSCTL_POWER_STATUS_LF_DISABLE_MASK (0x1000U)
  346. #define SYSCTL_POWER_STATUS_LF_DISABLE_SHIFT (12U)
  347. #define SYSCTL_POWER_STATUS_LF_DISABLE_GET(x) (((uint32_t)(x) & SYSCTL_POWER_STATUS_LF_DISABLE_MASK) >> SYSCTL_POWER_STATUS_LF_DISABLE_SHIFT)
  348. /*
  349. * LF_ACK (RO)
  350. *
  351. * low fanout power switch feedback
  352. * 0: low fanout power switches are turned on
  353. * 1: low fanout power switches are truned off
  354. */
  355. #define SYSCTL_POWER_STATUS_LF_ACK_MASK (0x100U)
  356. #define SYSCTL_POWER_STATUS_LF_ACK_SHIFT (8U)
  357. #define SYSCTL_POWER_STATUS_LF_ACK_GET(x) (((uint32_t)(x) & SYSCTL_POWER_STATUS_LF_ACK_MASK) >> SYSCTL_POWER_STATUS_LF_ACK_SHIFT)
  358. /* Bitfield definition for register of struct array POWER: LF_WAIT */
  359. /*
  360. * WAIT (RW)
  361. *
  362. * wait time for low fan out power switch turn on, default value is 255
  363. * 0: 0 clock cycle
  364. * 1: 1 clock cycles
  365. * . . .
  366. * clock cycles count on 24MHz
  367. */
  368. #define SYSCTL_POWER_LF_WAIT_WAIT_MASK (0xFFFFFUL)
  369. #define SYSCTL_POWER_LF_WAIT_WAIT_SHIFT (0U)
  370. #define SYSCTL_POWER_LF_WAIT_WAIT_SET(x) (((uint32_t)(x) << SYSCTL_POWER_LF_WAIT_WAIT_SHIFT) & SYSCTL_POWER_LF_WAIT_WAIT_MASK)
  371. #define SYSCTL_POWER_LF_WAIT_WAIT_GET(x) (((uint32_t)(x) & SYSCTL_POWER_LF_WAIT_WAIT_MASK) >> SYSCTL_POWER_LF_WAIT_WAIT_SHIFT)
  372. /* Bitfield definition for register of struct array POWER: OFF_WAIT */
  373. /*
  374. * WAIT (RW)
  375. *
  376. * wait time for power switch turn off, default value is 15
  377. * 0: 0 clock cycle
  378. * 1: 1 clock cycles
  379. * . . .
  380. * clock cycles count on 24MHz
  381. */
  382. #define SYSCTL_POWER_OFF_WAIT_WAIT_MASK (0xFFFFFUL)
  383. #define SYSCTL_POWER_OFF_WAIT_WAIT_SHIFT (0U)
  384. #define SYSCTL_POWER_OFF_WAIT_WAIT_SET(x) (((uint32_t)(x) << SYSCTL_POWER_OFF_WAIT_WAIT_SHIFT) & SYSCTL_POWER_OFF_WAIT_WAIT_MASK)
  385. #define SYSCTL_POWER_OFF_WAIT_WAIT_GET(x) (((uint32_t)(x) & SYSCTL_POWER_OFF_WAIT_WAIT_MASK) >> SYSCTL_POWER_OFF_WAIT_WAIT_SHIFT)
  386. /* Bitfield definition for register of struct array RESET: CONTROL */
  387. /*
  388. * FLAG (RW)
  389. *
  390. * flag represents reset happened from last clear of this bit
  391. * 0: domain did not edurance reset cycle since last clear of this bit
  392. * 1: domain enduranced reset cycle since last clear of this bit
  393. */
  394. #define SYSCTL_RESET_CONTROL_FLAG_MASK (0x80000000UL)
  395. #define SYSCTL_RESET_CONTROL_FLAG_SHIFT (31U)
  396. #define SYSCTL_RESET_CONTROL_FLAG_SET(x) (((uint32_t)(x) << SYSCTL_RESET_CONTROL_FLAG_SHIFT) & SYSCTL_RESET_CONTROL_FLAG_MASK)
  397. #define SYSCTL_RESET_CONTROL_FLAG_GET(x) (((uint32_t)(x) & SYSCTL_RESET_CONTROL_FLAG_MASK) >> SYSCTL_RESET_CONTROL_FLAG_SHIFT)
  398. /*
  399. * FLAG_WAKE (RW)
  400. *
  401. * flag represents wakeup reset happened from last clear of this bit
  402. * 0: domain did not edurance wakeup reset cycle since last clear of this bit
  403. * 1: domain enduranced wakeup reset cycle since last clear of this bit
  404. */
  405. #define SYSCTL_RESET_CONTROL_FLAG_WAKE_MASK (0x40000000UL)
  406. #define SYSCTL_RESET_CONTROL_FLAG_WAKE_SHIFT (30U)
  407. #define SYSCTL_RESET_CONTROL_FLAG_WAKE_SET(x) (((uint32_t)(x) << SYSCTL_RESET_CONTROL_FLAG_WAKE_SHIFT) & SYSCTL_RESET_CONTROL_FLAG_WAKE_MASK)
  408. #define SYSCTL_RESET_CONTROL_FLAG_WAKE_GET(x) (((uint32_t)(x) & SYSCTL_RESET_CONTROL_FLAG_WAKE_MASK) >> SYSCTL_RESET_CONTROL_FLAG_WAKE_SHIFT)
  409. /*
  410. * HOLD (RW)
  411. *
  412. * perform reset and hold in reset, until ths bit cleared by software
  413. * 0: reset is released for function
  414. * 1: reset is assert and hold
  415. */
  416. #define SYSCTL_RESET_CONTROL_HOLD_MASK (0x10U)
  417. #define SYSCTL_RESET_CONTROL_HOLD_SHIFT (4U)
  418. #define SYSCTL_RESET_CONTROL_HOLD_SET(x) (((uint32_t)(x) << SYSCTL_RESET_CONTROL_HOLD_SHIFT) & SYSCTL_RESET_CONTROL_HOLD_MASK)
  419. #define SYSCTL_RESET_CONTROL_HOLD_GET(x) (((uint32_t)(x) & SYSCTL_RESET_CONTROL_HOLD_MASK) >> SYSCTL_RESET_CONTROL_HOLD_SHIFT)
  420. /*
  421. * RESET (RW)
  422. *
  423. * perform reset and release imediately
  424. * 0: reset is released
  425. * 1 reset is asserted and will release automaticly
  426. */
  427. #define SYSCTL_RESET_CONTROL_RESET_MASK (0x1U)
  428. #define SYSCTL_RESET_CONTROL_RESET_SHIFT (0U)
  429. #define SYSCTL_RESET_CONTROL_RESET_SET(x) (((uint32_t)(x) << SYSCTL_RESET_CONTROL_RESET_SHIFT) & SYSCTL_RESET_CONTROL_RESET_MASK)
  430. #define SYSCTL_RESET_CONTROL_RESET_GET(x) (((uint32_t)(x) & SYSCTL_RESET_CONTROL_RESET_MASK) >> SYSCTL_RESET_CONTROL_RESET_SHIFT)
  431. /* Bitfield definition for register of struct array RESET: CONFIG */
  432. /*
  433. * PRE_WAIT (RW)
  434. *
  435. * wait cycle numbers before assert reset
  436. * 0: wait 0 cycle
  437. * 1: wait 1 cycles
  438. * . . .
  439. * Note, clock cycle is base on 24M
  440. */
  441. #define SYSCTL_RESET_CONFIG_PRE_WAIT_MASK (0xFF0000UL)
  442. #define SYSCTL_RESET_CONFIG_PRE_WAIT_SHIFT (16U)
  443. #define SYSCTL_RESET_CONFIG_PRE_WAIT_SET(x) (((uint32_t)(x) << SYSCTL_RESET_CONFIG_PRE_WAIT_SHIFT) & SYSCTL_RESET_CONFIG_PRE_WAIT_MASK)
  444. #define SYSCTL_RESET_CONFIG_PRE_WAIT_GET(x) (((uint32_t)(x) & SYSCTL_RESET_CONFIG_PRE_WAIT_MASK) >> SYSCTL_RESET_CONFIG_PRE_WAIT_SHIFT)
  445. /*
  446. * RSTCLK_NUM (RW)
  447. *
  448. * reset clock number(must be even number)
  449. * 0: 0 cycle
  450. * 1: 0 cycles
  451. * 2: 2 cycles
  452. * 3: 2 cycles
  453. * . . .
  454. * Note, clock cycle is base on 24M
  455. */
  456. #define SYSCTL_RESET_CONFIG_RSTCLK_NUM_MASK (0xFF00U)
  457. #define SYSCTL_RESET_CONFIG_RSTCLK_NUM_SHIFT (8U)
  458. #define SYSCTL_RESET_CONFIG_RSTCLK_NUM_SET(x) (((uint32_t)(x) << SYSCTL_RESET_CONFIG_RSTCLK_NUM_SHIFT) & SYSCTL_RESET_CONFIG_RSTCLK_NUM_MASK)
  459. #define SYSCTL_RESET_CONFIG_RSTCLK_NUM_GET(x) (((uint32_t)(x) & SYSCTL_RESET_CONFIG_RSTCLK_NUM_MASK) >> SYSCTL_RESET_CONFIG_RSTCLK_NUM_SHIFT)
  460. /*
  461. * POST_WAIT (RW)
  462. *
  463. * time guard band for reset release
  464. * 0: wait 0 cycle
  465. * 1: wait 1 cycles
  466. * . . .
  467. * Note, clock cycle is base on 24M
  468. */
  469. #define SYSCTL_RESET_CONFIG_POST_WAIT_MASK (0xFFU)
  470. #define SYSCTL_RESET_CONFIG_POST_WAIT_SHIFT (0U)
  471. #define SYSCTL_RESET_CONFIG_POST_WAIT_SET(x) (((uint32_t)(x) << SYSCTL_RESET_CONFIG_POST_WAIT_SHIFT) & SYSCTL_RESET_CONFIG_POST_WAIT_MASK)
  472. #define SYSCTL_RESET_CONFIG_POST_WAIT_GET(x) (((uint32_t)(x) & SYSCTL_RESET_CONFIG_POST_WAIT_MASK) >> SYSCTL_RESET_CONFIG_POST_WAIT_SHIFT)
  473. /* Bitfield definition for register of struct array RESET: COUNTER */
  474. /*
  475. * COUNTER (RW)
  476. *
  477. * self clear trigger counter, reset triggered when counter value is 1, write 0 will cancel reset
  478. * 0: wait 0 cycle
  479. * 1: wait 1 cycles
  480. * . . .
  481. * Note, clock cycle is base on 24M
  482. */
  483. #define SYSCTL_RESET_COUNTER_COUNTER_MASK (0xFFFFFUL)
  484. #define SYSCTL_RESET_COUNTER_COUNTER_SHIFT (0U)
  485. #define SYSCTL_RESET_COUNTER_COUNTER_SET(x) (((uint32_t)(x) << SYSCTL_RESET_COUNTER_COUNTER_SHIFT) & SYSCTL_RESET_COUNTER_COUNTER_MASK)
  486. #define SYSCTL_RESET_COUNTER_COUNTER_GET(x) (((uint32_t)(x) & SYSCTL_RESET_COUNTER_COUNTER_MASK) >> SYSCTL_RESET_COUNTER_COUNTER_SHIFT)
  487. /* Bitfield definition for register array: CLOCK_CPU */
  488. /*
  489. * GLB_BUSY (RO)
  490. *
  491. * global busy
  492. * 0: no changes pending to any clock
  493. * 1: any of nodes is changing status
  494. */
  495. #define SYSCTL_CLOCK_CPU_GLB_BUSY_MASK (0x80000000UL)
  496. #define SYSCTL_CLOCK_CPU_GLB_BUSY_SHIFT (31U)
  497. #define SYSCTL_CLOCK_CPU_GLB_BUSY_GET(x) (((uint32_t)(x) & SYSCTL_CLOCK_CPU_GLB_BUSY_MASK) >> SYSCTL_CLOCK_CPU_GLB_BUSY_SHIFT)
  498. /*
  499. * LOC_BUSY (RO)
  500. *
  501. * local busy
  502. * 0: a change is pending for current node
  503. * 1: current node is changing status
  504. */
  505. #define SYSCTL_CLOCK_CPU_LOC_BUSY_MASK (0x40000000UL)
  506. #define SYSCTL_CLOCK_CPU_LOC_BUSY_SHIFT (30U)
  507. #define SYSCTL_CLOCK_CPU_LOC_BUSY_GET(x) (((uint32_t)(x) & SYSCTL_CLOCK_CPU_LOC_BUSY_MASK) >> SYSCTL_CLOCK_CPU_LOC_BUSY_SHIFT)
  508. /*
  509. * PRESERVE (RW)
  510. *
  511. * preserve function against global select
  512. * 0: select global clock setting
  513. * 1: not select global clock setting
  514. */
  515. #define SYSCTL_CLOCK_CPU_PRESERVE_MASK (0x10000000UL)
  516. #define SYSCTL_CLOCK_CPU_PRESERVE_SHIFT (28U)
  517. #define SYSCTL_CLOCK_CPU_PRESERVE_SET(x) (((uint32_t)(x) << SYSCTL_CLOCK_CPU_PRESERVE_SHIFT) & SYSCTL_CLOCK_CPU_PRESERVE_MASK)
  518. #define SYSCTL_CLOCK_CPU_PRESERVE_GET(x) (((uint32_t)(x) & SYSCTL_CLOCK_CPU_PRESERVE_MASK) >> SYSCTL_CLOCK_CPU_PRESERVE_SHIFT)
  519. /*
  520. * SUB1_DIV (RW)
  521. *
  522. * ahb bus divider, the bus clock is generated by cpu_clock/div
  523. * 0: divider by 1
  524. * 1: divider by 2
  525. * …
  526. */
  527. #define SYSCTL_CLOCK_CPU_SUB1_DIV_MASK (0xF00000UL)
  528. #define SYSCTL_CLOCK_CPU_SUB1_DIV_SHIFT (20U)
  529. #define SYSCTL_CLOCK_CPU_SUB1_DIV_SET(x) (((uint32_t)(x) << SYSCTL_CLOCK_CPU_SUB1_DIV_SHIFT) & SYSCTL_CLOCK_CPU_SUB1_DIV_MASK)
  530. #define SYSCTL_CLOCK_CPU_SUB1_DIV_GET(x) (((uint32_t)(x) & SYSCTL_CLOCK_CPU_SUB1_DIV_MASK) >> SYSCTL_CLOCK_CPU_SUB1_DIV_SHIFT)
  531. /*
  532. * SUB0_DIV (RW)
  533. *
  534. * axi bus divider, the bus clock is generated by cpu_clock/div
  535. * 0: divider by 1
  536. * 1: divider by 2
  537. * …
  538. */
  539. #define SYSCTL_CLOCK_CPU_SUB0_DIV_MASK (0xF0000UL)
  540. #define SYSCTL_CLOCK_CPU_SUB0_DIV_SHIFT (16U)
  541. #define SYSCTL_CLOCK_CPU_SUB0_DIV_SET(x) (((uint32_t)(x) << SYSCTL_CLOCK_CPU_SUB0_DIV_SHIFT) & SYSCTL_CLOCK_CPU_SUB0_DIV_MASK)
  542. #define SYSCTL_CLOCK_CPU_SUB0_DIV_GET(x) (((uint32_t)(x) & SYSCTL_CLOCK_CPU_SUB0_DIV_MASK) >> SYSCTL_CLOCK_CPU_SUB0_DIV_SHIFT)
  543. /*
  544. * MUX (RW)
  545. *
  546. * current mux in clock component
  547. * 0:osc0_clk0
  548. * 1:pll0_clk0
  549. * 2:pll0_clk1
  550. * 3:pll0_clk2
  551. * 4:pll1_clk0
  552. * 5:pll1_clk1
  553. * 6:pll2_clk0
  554. * 7:pll2_clk1
  555. */
  556. #define SYSCTL_CLOCK_CPU_MUX_MASK (0x700U)
  557. #define SYSCTL_CLOCK_CPU_MUX_SHIFT (8U)
  558. #define SYSCTL_CLOCK_CPU_MUX_SET(x) (((uint32_t)(x) << SYSCTL_CLOCK_CPU_MUX_SHIFT) & SYSCTL_CLOCK_CPU_MUX_MASK)
  559. #define SYSCTL_CLOCK_CPU_MUX_GET(x) (((uint32_t)(x) & SYSCTL_CLOCK_CPU_MUX_MASK) >> SYSCTL_CLOCK_CPU_MUX_SHIFT)
  560. /*
  561. * DIV (RW)
  562. *
  563. * clock divider
  564. * 0: divider by 1
  565. * 1: divider by 2
  566. * 2: divider by 3
  567. * . . .
  568. * 255: divider by 256
  569. */
  570. #define SYSCTL_CLOCK_CPU_DIV_MASK (0xFFU)
  571. #define SYSCTL_CLOCK_CPU_DIV_SHIFT (0U)
  572. #define SYSCTL_CLOCK_CPU_DIV_SET(x) (((uint32_t)(x) << SYSCTL_CLOCK_CPU_DIV_SHIFT) & SYSCTL_CLOCK_CPU_DIV_MASK)
  573. #define SYSCTL_CLOCK_CPU_DIV_GET(x) (((uint32_t)(x) & SYSCTL_CLOCK_CPU_DIV_MASK) >> SYSCTL_CLOCK_CPU_DIV_SHIFT)
  574. /* Bitfield definition for register array: CLOCK */
  575. /*
  576. * GLB_BUSY (RO)
  577. *
  578. * global busy
  579. * 0: no changes pending to any clock
  580. * 1: any of nodes is changing status
  581. */
  582. #define SYSCTL_CLOCK_GLB_BUSY_MASK (0x80000000UL)
  583. #define SYSCTL_CLOCK_GLB_BUSY_SHIFT (31U)
  584. #define SYSCTL_CLOCK_GLB_BUSY_GET(x) (((uint32_t)(x) & SYSCTL_CLOCK_GLB_BUSY_MASK) >> SYSCTL_CLOCK_GLB_BUSY_SHIFT)
  585. /*
  586. * LOC_BUSY (RO)
  587. *
  588. * local busy
  589. * 0: a change is pending for current node
  590. * 1: current node is changing status
  591. */
  592. #define SYSCTL_CLOCK_LOC_BUSY_MASK (0x40000000UL)
  593. #define SYSCTL_CLOCK_LOC_BUSY_SHIFT (30U)
  594. #define SYSCTL_CLOCK_LOC_BUSY_GET(x) (((uint32_t)(x) & SYSCTL_CLOCK_LOC_BUSY_MASK) >> SYSCTL_CLOCK_LOC_BUSY_SHIFT)
  595. /*
  596. * PRESERVE (RW)
  597. *
  598. * preserve function against global select
  599. * 0: select global clock setting
  600. * 1: not select global clock setting
  601. */
  602. #define SYSCTL_CLOCK_PRESERVE_MASK (0x10000000UL)
  603. #define SYSCTL_CLOCK_PRESERVE_SHIFT (28U)
  604. #define SYSCTL_CLOCK_PRESERVE_SET(x) (((uint32_t)(x) << SYSCTL_CLOCK_PRESERVE_SHIFT) & SYSCTL_CLOCK_PRESERVE_MASK)
  605. #define SYSCTL_CLOCK_PRESERVE_GET(x) (((uint32_t)(x) & SYSCTL_CLOCK_PRESERVE_MASK) >> SYSCTL_CLOCK_PRESERVE_SHIFT)
  606. /*
  607. * MUX (RW)
  608. *
  609. * current mux in clock component
  610. * 0:osc0_clk0
  611. * 1:pll0_clk0
  612. * 2:pll0_clk1
  613. * 3:pll0_clk2
  614. * 4:pll1_clk0
  615. * 5:pll1_clk1
  616. * 6:pll2_clk0
  617. * 7:pll2_clk1
  618. */
  619. #define SYSCTL_CLOCK_MUX_MASK (0x700U)
  620. #define SYSCTL_CLOCK_MUX_SHIFT (8U)
  621. #define SYSCTL_CLOCK_MUX_SET(x) (((uint32_t)(x) << SYSCTL_CLOCK_MUX_SHIFT) & SYSCTL_CLOCK_MUX_MASK)
  622. #define SYSCTL_CLOCK_MUX_GET(x) (((uint32_t)(x) & SYSCTL_CLOCK_MUX_MASK) >> SYSCTL_CLOCK_MUX_SHIFT)
  623. /*
  624. * DIV (RW)
  625. *
  626. * clock divider
  627. * 0: divider by 1
  628. * 1: divider by 2
  629. * 2: divider by 3
  630. * . . .
  631. * 255: divider by 256
  632. */
  633. #define SYSCTL_CLOCK_DIV_MASK (0xFFU)
  634. #define SYSCTL_CLOCK_DIV_SHIFT (0U)
  635. #define SYSCTL_CLOCK_DIV_SET(x) (((uint32_t)(x) << SYSCTL_CLOCK_DIV_SHIFT) & SYSCTL_CLOCK_DIV_MASK)
  636. #define SYSCTL_CLOCK_DIV_GET(x) (((uint32_t)(x) & SYSCTL_CLOCK_DIV_MASK) >> SYSCTL_CLOCK_DIV_SHIFT)
  637. /* Bitfield definition for register array: ADCCLK */
  638. /*
  639. * GLB_BUSY (RO)
  640. *
  641. * global busy
  642. * 0: no changes pending to any clock
  643. * 1: any of nodes is changing status
  644. */
  645. #define SYSCTL_ADCCLK_GLB_BUSY_MASK (0x80000000UL)
  646. #define SYSCTL_ADCCLK_GLB_BUSY_SHIFT (31U)
  647. #define SYSCTL_ADCCLK_GLB_BUSY_GET(x) (((uint32_t)(x) & SYSCTL_ADCCLK_GLB_BUSY_MASK) >> SYSCTL_ADCCLK_GLB_BUSY_SHIFT)
  648. /*
  649. * LOC_BUSY (RO)
  650. *
  651. * local busy
  652. * 0: a change is pending for current node
  653. * 1: current node is changing status
  654. */
  655. #define SYSCTL_ADCCLK_LOC_BUSY_MASK (0x40000000UL)
  656. #define SYSCTL_ADCCLK_LOC_BUSY_SHIFT (30U)
  657. #define SYSCTL_ADCCLK_LOC_BUSY_GET(x) (((uint32_t)(x) & SYSCTL_ADCCLK_LOC_BUSY_MASK) >> SYSCTL_ADCCLK_LOC_BUSY_SHIFT)
  658. /*
  659. * PRESERVE (RW)
  660. *
  661. * preserve function against global select
  662. * 0: select global clock setting
  663. * 1: not select global clock setting
  664. */
  665. #define SYSCTL_ADCCLK_PRESERVE_MASK (0x10000000UL)
  666. #define SYSCTL_ADCCLK_PRESERVE_SHIFT (28U)
  667. #define SYSCTL_ADCCLK_PRESERVE_SET(x) (((uint32_t)(x) << SYSCTL_ADCCLK_PRESERVE_SHIFT) & SYSCTL_ADCCLK_PRESERVE_MASK)
  668. #define SYSCTL_ADCCLK_PRESERVE_GET(x) (((uint32_t)(x) & SYSCTL_ADCCLK_PRESERVE_MASK) >> SYSCTL_ADCCLK_PRESERVE_SHIFT)
  669. /*
  670. * MUX (RW)
  671. *
  672. * current mux
  673. * 0: ana clock
  674. * 1: ahb clock
  675. */
  676. #define SYSCTL_ADCCLK_MUX_MASK (0x100U)
  677. #define SYSCTL_ADCCLK_MUX_SHIFT (8U)
  678. #define SYSCTL_ADCCLK_MUX_SET(x) (((uint32_t)(x) << SYSCTL_ADCCLK_MUX_SHIFT) & SYSCTL_ADCCLK_MUX_MASK)
  679. #define SYSCTL_ADCCLK_MUX_GET(x) (((uint32_t)(x) & SYSCTL_ADCCLK_MUX_MASK) >> SYSCTL_ADCCLK_MUX_SHIFT)
  680. /* Bitfield definition for register array: DACCLK */
  681. /*
  682. * GLB_BUSY (RO)
  683. *
  684. * global busy
  685. * 0: no changes pending to any clock
  686. * 1: any of nodes is changing status
  687. */
  688. #define SYSCTL_DACCLK_GLB_BUSY_MASK (0x80000000UL)
  689. #define SYSCTL_DACCLK_GLB_BUSY_SHIFT (31U)
  690. #define SYSCTL_DACCLK_GLB_BUSY_GET(x) (((uint32_t)(x) & SYSCTL_DACCLK_GLB_BUSY_MASK) >> SYSCTL_DACCLK_GLB_BUSY_SHIFT)
  691. /*
  692. * LOC_BUSY (RO)
  693. *
  694. * local busy
  695. * 0: a change is pending for current node
  696. * 1: current node is changing status
  697. */
  698. #define SYSCTL_DACCLK_LOC_BUSY_MASK (0x40000000UL)
  699. #define SYSCTL_DACCLK_LOC_BUSY_SHIFT (30U)
  700. #define SYSCTL_DACCLK_LOC_BUSY_GET(x) (((uint32_t)(x) & SYSCTL_DACCLK_LOC_BUSY_MASK) >> SYSCTL_DACCLK_LOC_BUSY_SHIFT)
  701. /*
  702. * PRESERVE (RW)
  703. *
  704. * preserve function against global select
  705. * 0: select global clock setting
  706. * 1: not select global clock setting
  707. */
  708. #define SYSCTL_DACCLK_PRESERVE_MASK (0x10000000UL)
  709. #define SYSCTL_DACCLK_PRESERVE_SHIFT (28U)
  710. #define SYSCTL_DACCLK_PRESERVE_SET(x) (((uint32_t)(x) << SYSCTL_DACCLK_PRESERVE_SHIFT) & SYSCTL_DACCLK_PRESERVE_MASK)
  711. #define SYSCTL_DACCLK_PRESERVE_GET(x) (((uint32_t)(x) & SYSCTL_DACCLK_PRESERVE_MASK) >> SYSCTL_DACCLK_PRESERVE_SHIFT)
  712. /*
  713. * MUX (RW)
  714. *
  715. * current mux
  716. * 0: ana clock
  717. * 1: ahb clock
  718. */
  719. #define SYSCTL_DACCLK_MUX_MASK (0x100U)
  720. #define SYSCTL_DACCLK_MUX_SHIFT (8U)
  721. #define SYSCTL_DACCLK_MUX_SET(x) (((uint32_t)(x) << SYSCTL_DACCLK_MUX_SHIFT) & SYSCTL_DACCLK_MUX_MASK)
  722. #define SYSCTL_DACCLK_MUX_GET(x) (((uint32_t)(x) & SYSCTL_DACCLK_MUX_MASK) >> SYSCTL_DACCLK_MUX_SHIFT)
  723. /* Bitfield definition for register: GLOBAL00 */
  724. /*
  725. * MUX (RW)
  726. *
  727. * global clock override request
  728. * bit0: override to preset0
  729. * bit1: override to preset1
  730. * bit2: override to preset2
  731. * bit3: override to preset3
  732. */
  733. #define SYSCTL_GLOBAL00_MUX_MASK (0xFU)
  734. #define SYSCTL_GLOBAL00_MUX_SHIFT (0U)
  735. #define SYSCTL_GLOBAL00_MUX_SET(x) (((uint32_t)(x) << SYSCTL_GLOBAL00_MUX_SHIFT) & SYSCTL_GLOBAL00_MUX_MASK)
  736. #define SYSCTL_GLOBAL00_MUX_GET(x) (((uint32_t)(x) & SYSCTL_GLOBAL00_MUX_MASK) >> SYSCTL_GLOBAL00_MUX_SHIFT)
  737. /* Bitfield definition for register of struct array MONITOR: CONTROL */
  738. /*
  739. * VALID (RW)
  740. *
  741. * result is ready for read
  742. * 0: not ready
  743. * 1: result is ready
  744. */
  745. #define SYSCTL_MONITOR_CONTROL_VALID_MASK (0x80000000UL)
  746. #define SYSCTL_MONITOR_CONTROL_VALID_SHIFT (31U)
  747. #define SYSCTL_MONITOR_CONTROL_VALID_SET(x) (((uint32_t)(x) << SYSCTL_MONITOR_CONTROL_VALID_SHIFT) & SYSCTL_MONITOR_CONTROL_VALID_MASK)
  748. #define SYSCTL_MONITOR_CONTROL_VALID_GET(x) (((uint32_t)(x) & SYSCTL_MONITOR_CONTROL_VALID_MASK) >> SYSCTL_MONITOR_CONTROL_VALID_SHIFT)
  749. /*
  750. * DIV_BUSY (RO)
  751. *
  752. * divider is applying new setting
  753. */
  754. #define SYSCTL_MONITOR_CONTROL_DIV_BUSY_MASK (0x8000000UL)
  755. #define SYSCTL_MONITOR_CONTROL_DIV_BUSY_SHIFT (27U)
  756. #define SYSCTL_MONITOR_CONTROL_DIV_BUSY_GET(x) (((uint32_t)(x) & SYSCTL_MONITOR_CONTROL_DIV_BUSY_MASK) >> SYSCTL_MONITOR_CONTROL_DIV_BUSY_SHIFT)
  757. /*
  758. * OUTEN (RW)
  759. *
  760. * enable clock output
  761. */
  762. #define SYSCTL_MONITOR_CONTROL_OUTEN_MASK (0x1000000UL)
  763. #define SYSCTL_MONITOR_CONTROL_OUTEN_SHIFT (24U)
  764. #define SYSCTL_MONITOR_CONTROL_OUTEN_SET(x) (((uint32_t)(x) << SYSCTL_MONITOR_CONTROL_OUTEN_SHIFT) & SYSCTL_MONITOR_CONTROL_OUTEN_MASK)
  765. #define SYSCTL_MONITOR_CONTROL_OUTEN_GET(x) (((uint32_t)(x) & SYSCTL_MONITOR_CONTROL_OUTEN_MASK) >> SYSCTL_MONITOR_CONTROL_OUTEN_SHIFT)
  766. /*
  767. * DIV (RW)
  768. *
  769. * output divider
  770. */
  771. #define SYSCTL_MONITOR_CONTROL_DIV_MASK (0xFF0000UL)
  772. #define SYSCTL_MONITOR_CONTROL_DIV_SHIFT (16U)
  773. #define SYSCTL_MONITOR_CONTROL_DIV_SET(x) (((uint32_t)(x) << SYSCTL_MONITOR_CONTROL_DIV_SHIFT) & SYSCTL_MONITOR_CONTROL_DIV_MASK)
  774. #define SYSCTL_MONITOR_CONTROL_DIV_GET(x) (((uint32_t)(x) & SYSCTL_MONITOR_CONTROL_DIV_MASK) >> SYSCTL_MONITOR_CONTROL_DIV_SHIFT)
  775. /*
  776. * HIGH (RW)
  777. *
  778. * clock frequency higher than upper limit
  779. */
  780. #define SYSCTL_MONITOR_CONTROL_HIGH_MASK (0x8000U)
  781. #define SYSCTL_MONITOR_CONTROL_HIGH_SHIFT (15U)
  782. #define SYSCTL_MONITOR_CONTROL_HIGH_SET(x) (((uint32_t)(x) << SYSCTL_MONITOR_CONTROL_HIGH_SHIFT) & SYSCTL_MONITOR_CONTROL_HIGH_MASK)
  783. #define SYSCTL_MONITOR_CONTROL_HIGH_GET(x) (((uint32_t)(x) & SYSCTL_MONITOR_CONTROL_HIGH_MASK) >> SYSCTL_MONITOR_CONTROL_HIGH_SHIFT)
  784. /*
  785. * LOW (RW)
  786. *
  787. * clock frequency lower than lower limit
  788. */
  789. #define SYSCTL_MONITOR_CONTROL_LOW_MASK (0x4000U)
  790. #define SYSCTL_MONITOR_CONTROL_LOW_SHIFT (14U)
  791. #define SYSCTL_MONITOR_CONTROL_LOW_SET(x) (((uint32_t)(x) << SYSCTL_MONITOR_CONTROL_LOW_SHIFT) & SYSCTL_MONITOR_CONTROL_LOW_MASK)
  792. #define SYSCTL_MONITOR_CONTROL_LOW_GET(x) (((uint32_t)(x) & SYSCTL_MONITOR_CONTROL_LOW_MASK) >> SYSCTL_MONITOR_CONTROL_LOW_SHIFT)
  793. /*
  794. * START (RW)
  795. *
  796. * start measurement
  797. */
  798. #define SYSCTL_MONITOR_CONTROL_START_MASK (0x1000U)
  799. #define SYSCTL_MONITOR_CONTROL_START_SHIFT (12U)
  800. #define SYSCTL_MONITOR_CONTROL_START_SET(x) (((uint32_t)(x) << SYSCTL_MONITOR_CONTROL_START_SHIFT) & SYSCTL_MONITOR_CONTROL_START_MASK)
  801. #define SYSCTL_MONITOR_CONTROL_START_GET(x) (((uint32_t)(x) & SYSCTL_MONITOR_CONTROL_START_MASK) >> SYSCTL_MONITOR_CONTROL_START_SHIFT)
  802. /*
  803. * MODE (RW)
  804. *
  805. * work mode,
  806. * 0: register value will be compared to measurement
  807. * 1: upper and lower value will be recordered in register
  808. */
  809. #define SYSCTL_MONITOR_CONTROL_MODE_MASK (0x400U)
  810. #define SYSCTL_MONITOR_CONTROL_MODE_SHIFT (10U)
  811. #define SYSCTL_MONITOR_CONTROL_MODE_SET(x) (((uint32_t)(x) << SYSCTL_MONITOR_CONTROL_MODE_SHIFT) & SYSCTL_MONITOR_CONTROL_MODE_MASK)
  812. #define SYSCTL_MONITOR_CONTROL_MODE_GET(x) (((uint32_t)(x) & SYSCTL_MONITOR_CONTROL_MODE_MASK) >> SYSCTL_MONITOR_CONTROL_MODE_SHIFT)
  813. /*
  814. * ACCURACY (RW)
  815. *
  816. * measurement accuracy,
  817. * 0: resolution is 1kHz
  818. * 1: resolution is 1Hz
  819. */
  820. #define SYSCTL_MONITOR_CONTROL_ACCURACY_MASK (0x200U)
  821. #define SYSCTL_MONITOR_CONTROL_ACCURACY_SHIFT (9U)
  822. #define SYSCTL_MONITOR_CONTROL_ACCURACY_SET(x) (((uint32_t)(x) << SYSCTL_MONITOR_CONTROL_ACCURACY_SHIFT) & SYSCTL_MONITOR_CONTROL_ACCURACY_MASK)
  823. #define SYSCTL_MONITOR_CONTROL_ACCURACY_GET(x) (((uint32_t)(x) & SYSCTL_MONITOR_CONTROL_ACCURACY_MASK) >> SYSCTL_MONITOR_CONTROL_ACCURACY_SHIFT)
  824. /*
  825. * REFERENCE (RW)
  826. *
  827. * refrence clock selection,
  828. * 0: 32k
  829. * 1: 24M
  830. */
  831. #define SYSCTL_MONITOR_CONTROL_REFERENCE_MASK (0x100U)
  832. #define SYSCTL_MONITOR_CONTROL_REFERENCE_SHIFT (8U)
  833. #define SYSCTL_MONITOR_CONTROL_REFERENCE_SET(x) (((uint32_t)(x) << SYSCTL_MONITOR_CONTROL_REFERENCE_SHIFT) & SYSCTL_MONITOR_CONTROL_REFERENCE_MASK)
  834. #define SYSCTL_MONITOR_CONTROL_REFERENCE_GET(x) (((uint32_t)(x) & SYSCTL_MONITOR_CONTROL_REFERENCE_MASK) >> SYSCTL_MONITOR_CONTROL_REFERENCE_SHIFT)
  835. /*
  836. * SELECTION (RW)
  837. *
  838. * clock measurement selection
  839. * 0: clk_32k
  840. * 1: clk_irc24m
  841. * 2: clk_xtal_24m
  842. * 3: clk_usb0_phy
  843. * 8: clk0_osc0
  844. * 9: clk0_pll0
  845. * 10: clk1_pll0
  846. * 11: clk2_pll0
  847. * 12: clk0_pll1
  848. * 13: clk1_pll1
  849. * 14: clk0_pll2
  850. * 15: clk1_pll2
  851. * 128: clk_top_cpu0
  852. * 129: clk_top_mct0
  853. * 130: clk_top_mct1
  854. * 131: clk_top_xpi0
  855. * 132: clk_top_tmr0
  856. * 133: clk_top_tmr1
  857. * 134: clk_top_tmr2
  858. * 135: clk_top_tmr3
  859. * 136: clk_top_urt0
  860. * 137: clk_top_urt1
  861. * 138: clk_top_urt2
  862. * 139: clk_top_urt3
  863. * 140: clk_top_urt4
  864. * 141: clk_top_urt5
  865. * 142: clk_top_urt6
  866. * 143: clk_top_urt7
  867. * 144: clk_top_i2c0
  868. * 145: clk_top_i2c1
  869. * 146: clk_top_i2c2
  870. * 147: clk_top_i2c3
  871. * 148: clk_top_spi0
  872. * 149: clk_top_spi1
  873. * 150: clk_top_spi2
  874. * 151: clk_top_spi3
  875. * 152: clk_top_can0
  876. * 153: clk_top_can1
  877. * 154: clk_top_can2
  878. * 155: clk_top_can3
  879. * 156: clk_top_ptpc
  880. * 157: clk_top_ana0
  881. * 158: clk_top_ana1
  882. * 159: clk_top_ana2
  883. * 160: clk_top_ana3
  884. * 161: clk_top_ana4
  885. * 162: clk_top_ref0
  886. * 163: clk_top_ref1
  887. * 164: clk_top_lin0
  888. * 165: clk_top_lin1
  889. * 166: clk_top_lin2
  890. * 167: clk_top_lin3
  891. */
  892. #define SYSCTL_MONITOR_CONTROL_SELECTION_MASK (0xFFU)
  893. #define SYSCTL_MONITOR_CONTROL_SELECTION_SHIFT (0U)
  894. #define SYSCTL_MONITOR_CONTROL_SELECTION_SET(x) (((uint32_t)(x) << SYSCTL_MONITOR_CONTROL_SELECTION_SHIFT) & SYSCTL_MONITOR_CONTROL_SELECTION_MASK)
  895. #define SYSCTL_MONITOR_CONTROL_SELECTION_GET(x) (((uint32_t)(x) & SYSCTL_MONITOR_CONTROL_SELECTION_MASK) >> SYSCTL_MONITOR_CONTROL_SELECTION_SHIFT)
  896. /* Bitfield definition for register of struct array MONITOR: CURRENT */
  897. /*
  898. * FREQUENCY (RO)
  899. *
  900. * self updating measure result
  901. */
  902. #define SYSCTL_MONITOR_CURRENT_FREQUENCY_MASK (0xFFFFFFFFUL)
  903. #define SYSCTL_MONITOR_CURRENT_FREQUENCY_SHIFT (0U)
  904. #define SYSCTL_MONITOR_CURRENT_FREQUENCY_GET(x) (((uint32_t)(x) & SYSCTL_MONITOR_CURRENT_FREQUENCY_MASK) >> SYSCTL_MONITOR_CURRENT_FREQUENCY_SHIFT)
  905. /* Bitfield definition for register of struct array MONITOR: LOW_LIMIT */
  906. /*
  907. * FREQUENCY (RW)
  908. *
  909. * lower frequency
  910. */
  911. #define SYSCTL_MONITOR_LOW_LIMIT_FREQUENCY_MASK (0xFFFFFFFFUL)
  912. #define SYSCTL_MONITOR_LOW_LIMIT_FREQUENCY_SHIFT (0U)
  913. #define SYSCTL_MONITOR_LOW_LIMIT_FREQUENCY_SET(x) (((uint32_t)(x) << SYSCTL_MONITOR_LOW_LIMIT_FREQUENCY_SHIFT) & SYSCTL_MONITOR_LOW_LIMIT_FREQUENCY_MASK)
  914. #define SYSCTL_MONITOR_LOW_LIMIT_FREQUENCY_GET(x) (((uint32_t)(x) & SYSCTL_MONITOR_LOW_LIMIT_FREQUENCY_MASK) >> SYSCTL_MONITOR_LOW_LIMIT_FREQUENCY_SHIFT)
  915. /* Bitfield definition for register of struct array MONITOR: HIGH_LIMIT */
  916. /*
  917. * FREQUENCY (RW)
  918. *
  919. * upper frequency
  920. */
  921. #define SYSCTL_MONITOR_HIGH_LIMIT_FREQUENCY_MASK (0xFFFFFFFFUL)
  922. #define SYSCTL_MONITOR_HIGH_LIMIT_FREQUENCY_SHIFT (0U)
  923. #define SYSCTL_MONITOR_HIGH_LIMIT_FREQUENCY_SET(x) (((uint32_t)(x) << SYSCTL_MONITOR_HIGH_LIMIT_FREQUENCY_SHIFT) & SYSCTL_MONITOR_HIGH_LIMIT_FREQUENCY_MASK)
  924. #define SYSCTL_MONITOR_HIGH_LIMIT_FREQUENCY_GET(x) (((uint32_t)(x) & SYSCTL_MONITOR_HIGH_LIMIT_FREQUENCY_MASK) >> SYSCTL_MONITOR_HIGH_LIMIT_FREQUENCY_SHIFT)
  925. /* Bitfield definition for register of struct array CPU: LP */
  926. /*
  927. * WAKE_CNT (RW)
  928. *
  929. * CPU0 wake up counter, counter satuated at 255, write 0x00 to clear
  930. */
  931. #define SYSCTL_CPU_LP_WAKE_CNT_MASK (0xFF000000UL)
  932. #define SYSCTL_CPU_LP_WAKE_CNT_SHIFT (24U)
  933. #define SYSCTL_CPU_LP_WAKE_CNT_SET(x) (((uint32_t)(x) << SYSCTL_CPU_LP_WAKE_CNT_SHIFT) & SYSCTL_CPU_LP_WAKE_CNT_MASK)
  934. #define SYSCTL_CPU_LP_WAKE_CNT_GET(x) (((uint32_t)(x) & SYSCTL_CPU_LP_WAKE_CNT_MASK) >> SYSCTL_CPU_LP_WAKE_CNT_SHIFT)
  935. /*
  936. * HALT (RW)
  937. *
  938. * halt request for CPU0,
  939. * 0: CPU0 will start to execute after reset or receive wakeup request
  940. * 1: CPU0 will not start after reset, or wakeup after WFI
  941. */
  942. #define SYSCTL_CPU_LP_HALT_MASK (0x10000UL)
  943. #define SYSCTL_CPU_LP_HALT_SHIFT (16U)
  944. #define SYSCTL_CPU_LP_HALT_SET(x) (((uint32_t)(x) << SYSCTL_CPU_LP_HALT_SHIFT) & SYSCTL_CPU_LP_HALT_MASK)
  945. #define SYSCTL_CPU_LP_HALT_GET(x) (((uint32_t)(x) & SYSCTL_CPU_LP_HALT_MASK) >> SYSCTL_CPU_LP_HALT_SHIFT)
  946. /*
  947. * WAKE (RO)
  948. *
  949. * CPU0 is waking up
  950. * 0: CPU0 wake up not asserted
  951. * 1: CPU0 wake up asserted
  952. */
  953. #define SYSCTL_CPU_LP_WAKE_MASK (0x2000U)
  954. #define SYSCTL_CPU_LP_WAKE_SHIFT (13U)
  955. #define SYSCTL_CPU_LP_WAKE_GET(x) (((uint32_t)(x) & SYSCTL_CPU_LP_WAKE_MASK) >> SYSCTL_CPU_LP_WAKE_SHIFT)
  956. /*
  957. * EXEC (RO)
  958. *
  959. * CPU0 is executing
  960. * 0: CPU0 is not executing
  961. * 1: CPU0 is executing
  962. */
  963. #define SYSCTL_CPU_LP_EXEC_MASK (0x1000U)
  964. #define SYSCTL_CPU_LP_EXEC_SHIFT (12U)
  965. #define SYSCTL_CPU_LP_EXEC_GET(x) (((uint32_t)(x) & SYSCTL_CPU_LP_EXEC_MASK) >> SYSCTL_CPU_LP_EXEC_SHIFT)
  966. /*
  967. * WAKE_FLAG (RW)
  968. *
  969. * CPU0 wakeup flag, indicate a wakeup event got active, write 1 to clear this bit
  970. * 0: CPU0 wakeup not happened
  971. * 1: CPU0 wake up happened
  972. */
  973. #define SYSCTL_CPU_LP_WAKE_FLAG_MASK (0x400U)
  974. #define SYSCTL_CPU_LP_WAKE_FLAG_SHIFT (10U)
  975. #define SYSCTL_CPU_LP_WAKE_FLAG_SET(x) (((uint32_t)(x) << SYSCTL_CPU_LP_WAKE_FLAG_SHIFT) & SYSCTL_CPU_LP_WAKE_FLAG_MASK)
  976. #define SYSCTL_CPU_LP_WAKE_FLAG_GET(x) (((uint32_t)(x) & SYSCTL_CPU_LP_WAKE_FLAG_MASK) >> SYSCTL_CPU_LP_WAKE_FLAG_SHIFT)
  977. /*
  978. * SLEEP_FLAG (RW)
  979. *
  980. * CPU0 sleep flag, indicate a sleep event got active, write 1 to clear this bit
  981. * 0: CPU0 sleep not happened
  982. * 1: CPU0 sleep happened
  983. */
  984. #define SYSCTL_CPU_LP_SLEEP_FLAG_MASK (0x200U)
  985. #define SYSCTL_CPU_LP_SLEEP_FLAG_SHIFT (9U)
  986. #define SYSCTL_CPU_LP_SLEEP_FLAG_SET(x) (((uint32_t)(x) << SYSCTL_CPU_LP_SLEEP_FLAG_SHIFT) & SYSCTL_CPU_LP_SLEEP_FLAG_MASK)
  987. #define SYSCTL_CPU_LP_SLEEP_FLAG_GET(x) (((uint32_t)(x) & SYSCTL_CPU_LP_SLEEP_FLAG_MASK) >> SYSCTL_CPU_LP_SLEEP_FLAG_SHIFT)
  988. /*
  989. * RESET_FLAG (RW)
  990. *
  991. * CPU0 reset flag, indicate a reset event got active, write 1 to clear this bit
  992. * 0: CPU0 reset not happened
  993. * 1: CPU0 reset happened
  994. */
  995. #define SYSCTL_CPU_LP_RESET_FLAG_MASK (0x100U)
  996. #define SYSCTL_CPU_LP_RESET_FLAG_SHIFT (8U)
  997. #define SYSCTL_CPU_LP_RESET_FLAG_SET(x) (((uint32_t)(x) << SYSCTL_CPU_LP_RESET_FLAG_SHIFT) & SYSCTL_CPU_LP_RESET_FLAG_MASK)
  998. #define SYSCTL_CPU_LP_RESET_FLAG_GET(x) (((uint32_t)(x) & SYSCTL_CPU_LP_RESET_FLAG_MASK) >> SYSCTL_CPU_LP_RESET_FLAG_SHIFT)
  999. /*
  1000. * MODE (RW)
  1001. *
  1002. * Low power mode, system behavior after WFI
  1003. * 00: CPU clock stop after WFI
  1004. * 01: System enter low power mode after WFI
  1005. * 10: Keep running after WFI
  1006. * 11: reserved
  1007. */
  1008. #define SYSCTL_CPU_LP_MODE_MASK (0x3U)
  1009. #define SYSCTL_CPU_LP_MODE_SHIFT (0U)
  1010. #define SYSCTL_CPU_LP_MODE_SET(x) (((uint32_t)(x) << SYSCTL_CPU_LP_MODE_SHIFT) & SYSCTL_CPU_LP_MODE_MASK)
  1011. #define SYSCTL_CPU_LP_MODE_GET(x) (((uint32_t)(x) & SYSCTL_CPU_LP_MODE_MASK) >> SYSCTL_CPU_LP_MODE_SHIFT)
  1012. /* Bitfield definition for register of struct array CPU: LOCK */
  1013. /*
  1014. * GPR (RW)
  1015. *
  1016. * Lock bit for CPU_DATA0 to CPU_DATA13, once set, this bit will not clear untile next reset
  1017. */
  1018. #define SYSCTL_CPU_LOCK_GPR_MASK (0xFFFCU)
  1019. #define SYSCTL_CPU_LOCK_GPR_SHIFT (2U)
  1020. #define SYSCTL_CPU_LOCK_GPR_SET(x) (((uint32_t)(x) << SYSCTL_CPU_LOCK_GPR_SHIFT) & SYSCTL_CPU_LOCK_GPR_MASK)
  1021. #define SYSCTL_CPU_LOCK_GPR_GET(x) (((uint32_t)(x) & SYSCTL_CPU_LOCK_GPR_MASK) >> SYSCTL_CPU_LOCK_GPR_SHIFT)
  1022. /*
  1023. * LOCK (RW)
  1024. *
  1025. * Lock bit for CPU_LOCK
  1026. */
  1027. #define SYSCTL_CPU_LOCK_LOCK_MASK (0x2U)
  1028. #define SYSCTL_CPU_LOCK_LOCK_SHIFT (1U)
  1029. #define SYSCTL_CPU_LOCK_LOCK_SET(x) (((uint32_t)(x) << SYSCTL_CPU_LOCK_LOCK_SHIFT) & SYSCTL_CPU_LOCK_LOCK_MASK)
  1030. #define SYSCTL_CPU_LOCK_LOCK_GET(x) (((uint32_t)(x) & SYSCTL_CPU_LOCK_LOCK_MASK) >> SYSCTL_CPU_LOCK_LOCK_SHIFT)
  1031. /* Bitfield definition for register of struct array CPU: GPR0 */
  1032. /*
  1033. * GPR (RW)
  1034. *
  1035. * register for software to handle resume, can save resume address or status
  1036. */
  1037. #define SYSCTL_CPU_GPR_GPR_MASK (0xFFFFFFFFUL)
  1038. #define SYSCTL_CPU_GPR_GPR_SHIFT (0U)
  1039. #define SYSCTL_CPU_GPR_GPR_SET(x) (((uint32_t)(x) << SYSCTL_CPU_GPR_GPR_SHIFT) & SYSCTL_CPU_GPR_GPR_MASK)
  1040. #define SYSCTL_CPU_GPR_GPR_GET(x) (((uint32_t)(x) & SYSCTL_CPU_GPR_GPR_MASK) >> SYSCTL_CPU_GPR_GPR_SHIFT)
  1041. /* Bitfield definition for register of struct array CPU: STATUS0 */
  1042. /*
  1043. * STATUS (RO)
  1044. *
  1045. * IRQ values
  1046. */
  1047. #define SYSCTL_CPU_WAKEUP_STATUS_STATUS_MASK (0xFFFFFFFFUL)
  1048. #define SYSCTL_CPU_WAKEUP_STATUS_STATUS_SHIFT (0U)
  1049. #define SYSCTL_CPU_WAKEUP_STATUS_STATUS_GET(x) (((uint32_t)(x) & SYSCTL_CPU_WAKEUP_STATUS_STATUS_MASK) >> SYSCTL_CPU_WAKEUP_STATUS_STATUS_SHIFT)
  1050. /* Bitfield definition for register of struct array CPU: ENABLE0 */
  1051. /*
  1052. * ENABLE (RW)
  1053. *
  1054. * IRQ wakeup enable
  1055. */
  1056. #define SYSCTL_CPU_WAKEUP_ENABLE_ENABLE_MASK (0xFFFFFFFFUL)
  1057. #define SYSCTL_CPU_WAKEUP_ENABLE_ENABLE_SHIFT (0U)
  1058. #define SYSCTL_CPU_WAKEUP_ENABLE_ENABLE_SET(x) (((uint32_t)(x) << SYSCTL_CPU_WAKEUP_ENABLE_ENABLE_SHIFT) & SYSCTL_CPU_WAKEUP_ENABLE_ENABLE_MASK)
  1059. #define SYSCTL_CPU_WAKEUP_ENABLE_ENABLE_GET(x) (((uint32_t)(x) & SYSCTL_CPU_WAKEUP_ENABLE_ENABLE_MASK) >> SYSCTL_CPU_WAKEUP_ENABLE_ENABLE_SHIFT)
  1060. /* RESOURCE register group index macro definition */
  1061. #define SYSCTL_RESOURCE_CPU0 (0UL)
  1062. #define SYSCTL_RESOURCE_CPX0 (1UL)
  1063. #define SYSCTL_RESOURCE_CPU1 (8UL)
  1064. #define SYSCTL_RESOURCE_CPX1 (9UL)
  1065. #define SYSCTL_RESOURCE_POW_CPU0 (21UL)
  1066. #define SYSCTL_RESOURCE_POW_CPU1 (22UL)
  1067. #define SYSCTL_RESOURCE_RST_SOC (23UL)
  1068. #define SYSCTL_RESOURCE_RST_CPU0 (24UL)
  1069. #define SYSCTL_RESOURCE_RST_CPU1 (25UL)
  1070. #define SYSCTL_RESOURCE_CLK_SRC_XTAL (32UL)
  1071. #define SYSCTL_RESOURCE_CLK_SRC_PLL0 (33UL)
  1072. #define SYSCTL_RESOURCE_CLK_SRC_CLK0_PLL0 (34UL)
  1073. #define SYSCTL_RESOURCE_CLK_SRC_CLK1_PLL0 (35UL)
  1074. #define SYSCTL_RESOURCE_CLK_SRC_CLK2_PLL0 (36UL)
  1075. #define SYSCTL_RESOURCE_CLK_SRC_PLL1 (37UL)
  1076. #define SYSCTL_RESOURCE_CLK_SRC_CLK0_PLL1 (38UL)
  1077. #define SYSCTL_RESOURCE_CLK_SRC_CLK1_PLL1 (39UL)
  1078. #define SYSCTL_RESOURCE_CLK_SRC_PLL2 (40UL)
  1079. #define SYSCTL_RESOURCE_CLK_SRC_CLK0_PLL2 (41UL)
  1080. #define SYSCTL_RESOURCE_CLK_SRC_CLK1_PLL2 (42UL)
  1081. #define SYSCTL_RESOURCE_CLK_SRC_PLL0_REF (43UL)
  1082. #define SYSCTL_RESOURCE_CLK_SRC_PLL1_REF (44UL)
  1083. #define SYSCTL_RESOURCE_CLK_SRC_PLL2_REF (45UL)
  1084. #define SYSCTL_RESOURCE_CLK_TOP_CPU0 (64UL)
  1085. #define SYSCTL_RESOURCE_CLK_TOP_MCT0 (65UL)
  1086. #define SYSCTL_RESOURCE_CLK_TOP_MCT1 (66UL)
  1087. #define SYSCTL_RESOURCE_CLK_TOP_XPI0 (67UL)
  1088. #define SYSCTL_RESOURCE_CLK_TOP_TMR0 (68UL)
  1089. #define SYSCTL_RESOURCE_CLK_TOP_TMR1 (69UL)
  1090. #define SYSCTL_RESOURCE_CLK_TOP_TMR2 (70UL)
  1091. #define SYSCTL_RESOURCE_CLK_TOP_TMR3 (71UL)
  1092. #define SYSCTL_RESOURCE_CLK_TOP_URT0 (72UL)
  1093. #define SYSCTL_RESOURCE_CLK_TOP_URT1 (73UL)
  1094. #define SYSCTL_RESOURCE_CLK_TOP_URT2 (74UL)
  1095. #define SYSCTL_RESOURCE_CLK_TOP_URT3 (75UL)
  1096. #define SYSCTL_RESOURCE_CLK_TOP_URT4 (76UL)
  1097. #define SYSCTL_RESOURCE_CLK_TOP_URT5 (77UL)
  1098. #define SYSCTL_RESOURCE_CLK_TOP_URT6 (78UL)
  1099. #define SYSCTL_RESOURCE_CLK_TOP_URT7 (79UL)
  1100. #define SYSCTL_RESOURCE_CLK_TOP_I2C0 (80UL)
  1101. #define SYSCTL_RESOURCE_CLK_TOP_I2C1 (81UL)
  1102. #define SYSCTL_RESOURCE_CLK_TOP_I2C2 (82UL)
  1103. #define SYSCTL_RESOURCE_CLK_TOP_I2C3 (83UL)
  1104. #define SYSCTL_RESOURCE_CLK_TOP_SPI0 (84UL)
  1105. #define SYSCTL_RESOURCE_CLK_TOP_SPI1 (85UL)
  1106. #define SYSCTL_RESOURCE_CLK_TOP_SPI2 (86UL)
  1107. #define SYSCTL_RESOURCE_CLK_TOP_SPI3 (87UL)
  1108. #define SYSCTL_RESOURCE_CLK_TOP_CAN0 (88UL)
  1109. #define SYSCTL_RESOURCE_CLK_TOP_CAN1 (89UL)
  1110. #define SYSCTL_RESOURCE_CLK_TOP_CAN2 (90UL)
  1111. #define SYSCTL_RESOURCE_CLK_TOP_CAN3 (91UL)
  1112. #define SYSCTL_RESOURCE_CLK_TOP_PTPC (92UL)
  1113. #define SYSCTL_RESOURCE_CLK_TOP_ANA0 (93UL)
  1114. #define SYSCTL_RESOURCE_CLK_TOP_ANA1 (94UL)
  1115. #define SYSCTL_RESOURCE_CLK_TOP_ANA2 (95UL)
  1116. #define SYSCTL_RESOURCE_CLK_TOP_ANA3 (96UL)
  1117. #define SYSCTL_RESOURCE_CLK_TOP_ANA4 (97UL)
  1118. #define SYSCTL_RESOURCE_CLK_TOP_REF0 (98UL)
  1119. #define SYSCTL_RESOURCE_CLK_TOP_REF1 (99UL)
  1120. #define SYSCTL_RESOURCE_CLK_TOP_LIN0 (100UL)
  1121. #define SYSCTL_RESOURCE_CLK_TOP_LIN1 (101UL)
  1122. #define SYSCTL_RESOURCE_CLK_TOP_LIN2 (102UL)
  1123. #define SYSCTL_RESOURCE_CLK_TOP_LIN3 (103UL)
  1124. #define SYSCTL_RESOURCE_CLK_TOP_ADC0 (128UL)
  1125. #define SYSCTL_RESOURCE_CLK_TOP_ADC1 (129UL)
  1126. #define SYSCTL_RESOURCE_CLK_TOP_ADC2 (130UL)
  1127. #define SYSCTL_RESOURCE_CLK_TOP_DAC0 (131UL)
  1128. #define SYSCTL_RESOURCE_CLK_TOP_DAC1 (132UL)
  1129. #define SYSCTL_RESOURCE_AHBP (256UL)
  1130. #define SYSCTL_RESOURCE_AXIS (257UL)
  1131. #define SYSCTL_RESOURCE_AXIC (258UL)
  1132. #define SYSCTL_RESOURCE_LMM0 (259UL)
  1133. #define SYSCTL_RESOURCE_MCT0 (260UL)
  1134. #define SYSCTL_RESOURCE_LMM1 (261UL)
  1135. #define SYSCTL_RESOURCE_MCT1 (262UL)
  1136. #define SYSCTL_RESOURCE_ROM0 (263UL)
  1137. #define SYSCTL_RESOURCE_RAM0 (264UL)
  1138. #define SYSCTL_RESOURCE_I2C0 (265UL)
  1139. #define SYSCTL_RESOURCE_I2C1 (266UL)
  1140. #define SYSCTL_RESOURCE_I2C2 (267UL)
  1141. #define SYSCTL_RESOURCE_I2C3 (268UL)
  1142. #define SYSCTL_RESOURCE_TMR0 (269UL)
  1143. #define SYSCTL_RESOURCE_TMR1 (270UL)
  1144. #define SYSCTL_RESOURCE_TMR2 (271UL)
  1145. #define SYSCTL_RESOURCE_TMR3 (272UL)
  1146. #define SYSCTL_RESOURCE_GPIO (273UL)
  1147. #define SYSCTL_RESOURCE_ADC0 (274UL)
  1148. #define SYSCTL_RESOURCE_ADC1 (275UL)
  1149. #define SYSCTL_RESOURCE_ADC2 (276UL)
  1150. #define SYSCTL_RESOURCE_DAC0 (277UL)
  1151. #define SYSCTL_RESOURCE_DAC1 (278UL)
  1152. #define SYSCTL_RESOURCE_ACMP (279UL)
  1153. #define SYSCTL_RESOURCE_SPI0 (280UL)
  1154. #define SYSCTL_RESOURCE_SPI1 (281UL)
  1155. #define SYSCTL_RESOURCE_SPI2 (282UL)
  1156. #define SYSCTL_RESOURCE_SPI3 (283UL)
  1157. #define SYSCTL_RESOURCE_SDM0 (284UL)
  1158. #define SYSCTL_RESOURCE_URT0 (285UL)
  1159. #define SYSCTL_RESOURCE_URT1 (286UL)
  1160. #define SYSCTL_RESOURCE_URT2 (287UL)
  1161. #define SYSCTL_RESOURCE_URT3 (288UL)
  1162. #define SYSCTL_RESOURCE_URT4 (289UL)
  1163. #define SYSCTL_RESOURCE_URT5 (290UL)
  1164. #define SYSCTL_RESOURCE_URT6 (291UL)
  1165. #define SYSCTL_RESOURCE_URT7 (292UL)
  1166. #define SYSCTL_RESOURCE_LIN0 (293UL)
  1167. #define SYSCTL_RESOURCE_LIN1 (294UL)
  1168. #define SYSCTL_RESOURCE_LIN2 (295UL)
  1169. #define SYSCTL_RESOURCE_LIN3 (296UL)
  1170. #define SYSCTL_RESOURCE_PTPC (297UL)
  1171. #define SYSCTL_RESOURCE_CAN0 (298UL)
  1172. #define SYSCTL_RESOURCE_CAN1 (299UL)
  1173. #define SYSCTL_RESOURCE_CAN2 (300UL)
  1174. #define SYSCTL_RESOURCE_CAN3 (301UL)
  1175. #define SYSCTL_RESOURCE_WDG0 (302UL)
  1176. #define SYSCTL_RESOURCE_WDG1 (303UL)
  1177. #define SYSCTL_RESOURCE_MBX0 (304UL)
  1178. #define SYSCTL_RESOURCE_MBX1 (305UL)
  1179. #define SYSCTL_RESOURCE_CRC0 (306UL)
  1180. #define SYSCTL_RESOURCE_MOT0 (307UL)
  1181. #define SYSCTL_RESOURCE_MOT1 (308UL)
  1182. #define SYSCTL_RESOURCE_MOT2 (309UL)
  1183. #define SYSCTL_RESOURCE_MOT3 (310UL)
  1184. #define SYSCTL_RESOURCE_MSYN (311UL)
  1185. #define SYSCTL_RESOURCE_XPI0 (312UL)
  1186. #define SYSCTL_RESOURCE_HDMA (313UL)
  1187. #define SYSCTL_RESOURCE_XDMA (314UL)
  1188. #define SYSCTL_RESOURCE_KMAN (315UL)
  1189. #define SYSCTL_RESOURCE_SDP0 (316UL)
  1190. #define SYSCTL_RESOURCE_RNG0 (317UL)
  1191. #define SYSCTL_RESOURCE_TSNS (318UL)
  1192. #define SYSCTL_RESOURCE_USB0 (319UL)
  1193. #define SYSCTL_RESOURCE_REF0 (320UL)
  1194. #define SYSCTL_RESOURCE_REF1 (321UL)
  1195. /* GROUP0 register group index macro definition */
  1196. #define SYSCTL_GROUP0_LINK0 (0UL)
  1197. #define SYSCTL_GROUP0_LINK1 (1UL)
  1198. #define SYSCTL_GROUP0_LINK2 (2UL)
  1199. /* GROUP1 register group index macro definition */
  1200. #define SYSCTL_GROUP1_LINK0 (0UL)
  1201. #define SYSCTL_GROUP1_LINK1 (1UL)
  1202. #define SYSCTL_GROUP1_LINK2 (2UL)
  1203. /* AFFILIATE register group index macro definition */
  1204. #define SYSCTL_AFFILIATE_CPU0 (0UL)
  1205. #define SYSCTL_AFFILIATE_CPU1 (1UL)
  1206. /* RETENTION register group index macro definition */
  1207. #define SYSCTL_RETENTION_CPU0 (0UL)
  1208. #define SYSCTL_RETENTION_CPU1 (1UL)
  1209. /* POWER register group index macro definition */
  1210. #define SYSCTL_POWER_CPU0 (0UL)
  1211. #define SYSCTL_POWER_CPU1 (1UL)
  1212. /* RESET register group index macro definition */
  1213. #define SYSCTL_RESET_SOC (0UL)
  1214. #define SYSCTL_RESET_CPU0 (1UL)
  1215. #define SYSCTL_RESET_CPU1 (2UL)
  1216. /* CLOCK_CPU register group index macro definition */
  1217. #define SYSCTL_CLOCK_CPU_CLK_TOP_CPU0 (0UL)
  1218. /* CLOCK register group index macro definition */
  1219. #define SYSCTL_CLOCK_CLK_TOP_MCT0 (0UL)
  1220. #define SYSCTL_CLOCK_CLK_TOP_MCT1 (1UL)
  1221. #define SYSCTL_CLOCK_CLK_TOP_XPI0 (2UL)
  1222. #define SYSCTL_CLOCK_CLK_TOP_TMR0 (3UL)
  1223. #define SYSCTL_CLOCK_CLK_TOP_TMR1 (4UL)
  1224. #define SYSCTL_CLOCK_CLK_TOP_TMR2 (5UL)
  1225. #define SYSCTL_CLOCK_CLK_TOP_TMR3 (6UL)
  1226. #define SYSCTL_CLOCK_CLK_TOP_URT0 (7UL)
  1227. #define SYSCTL_CLOCK_CLK_TOP_URT1 (8UL)
  1228. #define SYSCTL_CLOCK_CLK_TOP_URT2 (9UL)
  1229. #define SYSCTL_CLOCK_CLK_TOP_URT3 (10UL)
  1230. #define SYSCTL_CLOCK_CLK_TOP_URT4 (11UL)
  1231. #define SYSCTL_CLOCK_CLK_TOP_URT5 (12UL)
  1232. #define SYSCTL_CLOCK_CLK_TOP_URT6 (13UL)
  1233. #define SYSCTL_CLOCK_CLK_TOP_URT7 (14UL)
  1234. #define SYSCTL_CLOCK_CLK_TOP_I2C0 (15UL)
  1235. #define SYSCTL_CLOCK_CLK_TOP_I2C1 (16UL)
  1236. #define SYSCTL_CLOCK_CLK_TOP_I2C2 (17UL)
  1237. #define SYSCTL_CLOCK_CLK_TOP_I2C3 (18UL)
  1238. #define SYSCTL_CLOCK_CLK_TOP_SPI0 (19UL)
  1239. #define SYSCTL_CLOCK_CLK_TOP_SPI1 (20UL)
  1240. #define SYSCTL_CLOCK_CLK_TOP_SPI2 (21UL)
  1241. #define SYSCTL_CLOCK_CLK_TOP_SPI3 (22UL)
  1242. #define SYSCTL_CLOCK_CLK_TOP_CAN0 (23UL)
  1243. #define SYSCTL_CLOCK_CLK_TOP_CAN1 (24UL)
  1244. #define SYSCTL_CLOCK_CLK_TOP_CAN2 (25UL)
  1245. #define SYSCTL_CLOCK_CLK_TOP_CAN3 (26UL)
  1246. #define SYSCTL_CLOCK_CLK_TOP_PTPC (27UL)
  1247. #define SYSCTL_CLOCK_CLK_TOP_ANA0 (28UL)
  1248. #define SYSCTL_CLOCK_CLK_TOP_ANA1 (29UL)
  1249. #define SYSCTL_CLOCK_CLK_TOP_ANA2 (30UL)
  1250. #define SYSCTL_CLOCK_CLK_TOP_ANA3 (31UL)
  1251. #define SYSCTL_CLOCK_CLK_TOP_ANA4 (32UL)
  1252. #define SYSCTL_CLOCK_CLK_TOP_REF0 (33UL)
  1253. #define SYSCTL_CLOCK_CLK_TOP_REF1 (34UL)
  1254. #define SYSCTL_CLOCK_CLK_TOP_LIN0 (35UL)
  1255. #define SYSCTL_CLOCK_CLK_TOP_LIN1 (36UL)
  1256. #define SYSCTL_CLOCK_CLK_TOP_LIN2 (37UL)
  1257. #define SYSCTL_CLOCK_CLK_TOP_LIN3 (38UL)
  1258. /* ADCCLK register group index macro definition */
  1259. #define SYSCTL_ADCCLK_CLK_TOP_ADC0 (0UL)
  1260. #define SYSCTL_ADCCLK_CLK_TOP_ADC1 (1UL)
  1261. #define SYSCTL_ADCCLK_CLK_TOP_ADC2 (2UL)
  1262. /* DACCLK register group index macro definition */
  1263. #define SYSCTL_DACCLK_CLK_TOP_DAC0 (0UL)
  1264. #define SYSCTL_DACCLK_CLK_TOP_DAC1 (1UL)
  1265. /* MONITOR register group index macro definition */
  1266. #define SYSCTL_MONITOR_SLICE0 (0UL)
  1267. #define SYSCTL_MONITOR_SLICE1 (1UL)
  1268. #define SYSCTL_MONITOR_SLICE2 (2UL)
  1269. #define SYSCTL_MONITOR_SLICE3 (3UL)
  1270. /* GPR register group index macro definition */
  1271. #define SYSCTL_CPU_GPR_GPR0 (0UL)
  1272. #define SYSCTL_CPU_GPR_GPR1 (1UL)
  1273. #define SYSCTL_CPU_GPR_GPR2 (2UL)
  1274. #define SYSCTL_CPU_GPR_GPR3 (3UL)
  1275. #define SYSCTL_CPU_GPR_GPR4 (4UL)
  1276. #define SYSCTL_CPU_GPR_GPR5 (5UL)
  1277. #define SYSCTL_CPU_GPR_GPR6 (6UL)
  1278. #define SYSCTL_CPU_GPR_GPR7 (7UL)
  1279. #define SYSCTL_CPU_GPR_GPR8 (8UL)
  1280. #define SYSCTL_CPU_GPR_GPR9 (9UL)
  1281. #define SYSCTL_CPU_GPR_GPR10 (10UL)
  1282. #define SYSCTL_CPU_GPR_GPR11 (11UL)
  1283. #define SYSCTL_CPU_GPR_GPR12 (12UL)
  1284. #define SYSCTL_CPU_GPR_GPR13 (13UL)
  1285. /* WAKEUP_STATUS register group index macro definition */
  1286. #define SYSCTL_CPU_WAKEUP_STATUS_STATUS0 (0UL)
  1287. #define SYSCTL_CPU_WAKEUP_STATUS_STATUS1 (1UL)
  1288. #define SYSCTL_CPU_WAKEUP_STATUS_STATUS2 (2UL)
  1289. #define SYSCTL_CPU_WAKEUP_STATUS_STATUS3 (3UL)
  1290. /* WAKEUP_ENABLE register group index macro definition */
  1291. #define SYSCTL_CPU_WAKEUP_ENABLE_ENABLE0 (0UL)
  1292. #define SYSCTL_CPU_WAKEUP_ENABLE_ENABLE1 (1UL)
  1293. #define SYSCTL_CPU_WAKEUP_ENABLE_ENABLE2 (2UL)
  1294. #define SYSCTL_CPU_WAKEUP_ENABLE_ENABLE3 (3UL)
  1295. /* CPU register group index macro definition */
  1296. #define SYSCTL_CPU_CPU0 (0UL)
  1297. #define SYSCTL_CPU_CPU1 (1UL)
  1298. #endif /* HPM_SYSCTL_H */