am_reg_pwrctrl.h 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485
  1. //*****************************************************************************
  2. //
  3. // am_reg_pwrctrl.h
  4. //! @file
  5. //!
  6. //! @brief Register macros for the PWRCTRL module
  7. //
  8. //*****************************************************************************
  9. //*****************************************************************************
  10. //
  11. // Copyright (c) 2017, Ambiq Micro
  12. // All rights reserved.
  13. //
  14. // Redistribution and use in source and binary forms, with or without
  15. // modification, are permitted provided that the following conditions are met:
  16. //
  17. // 1. Redistributions of source code must retain the above copyright notice,
  18. // this list of conditions and the following disclaimer.
  19. //
  20. // 2. Redistributions in binary form must reproduce the above copyright
  21. // notice, this list of conditions and the following disclaimer in the
  22. // documentation and/or other materials provided with the distribution.
  23. //
  24. // 3. Neither the name of the copyright holder nor the names of its
  25. // contributors may be used to endorse or promote products derived from this
  26. // software without specific prior written permission.
  27. //
  28. // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
  29. // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  30. // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  31. // ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
  32. // LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
  33. // CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
  34. // SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
  35. // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
  36. // CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
  37. // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  38. // POSSIBILITY OF SUCH DAMAGE.
  39. //
  40. // This is part of revision 1.2.11 of the AmbiqSuite Development Package.
  41. //
  42. //*****************************************************************************
  43. #ifndef AM_REG_PWRCTRL_H
  44. #define AM_REG_PWRCTRL_H
  45. //*****************************************************************************
  46. //
  47. // Instance finder. (1 instance(s) available)
  48. //
  49. //*****************************************************************************
  50. #define AM_REG_PWRCTRL_NUM_MODULES 1
  51. #define AM_REG_PWRCTRLn(n) \
  52. (REG_PWRCTRL_BASEADDR + 0x00000000 * n)
  53. //*****************************************************************************
  54. //
  55. // Register offsets.
  56. //
  57. //*****************************************************************************
  58. #define AM_REG_PWRCTRL_SUPPLYSRC_O 0x00000000
  59. #define AM_REG_PWRCTRL_POWERSTATUS_O 0x00000004
  60. #define AM_REG_PWRCTRL_DEVICEEN_O 0x00000008
  61. #define AM_REG_PWRCTRL_SRAMPWDINSLEEP_O 0x0000000C
  62. #define AM_REG_PWRCTRL_MEMEN_O 0x00000010
  63. #define AM_REG_PWRCTRL_PWRONSTATUS_O 0x00000014
  64. #define AM_REG_PWRCTRL_SRAMCTRL_O 0x00000018
  65. #define AM_REG_PWRCTRL_ADCSTATUS_O 0x0000001C
  66. #define AM_REG_PWRCTRL_MISCOPT_O 0x00000020
  67. //*****************************************************************************
  68. //
  69. // PWRCTRL_SUPPLYSRC - Memory and Core Voltage Supply Source Select Register
  70. //
  71. //*****************************************************************************
  72. // Switches the CORE DOMAIN from BUCK mode (if enabled) to LDO when CPU is in
  73. // DEEP SLEEP. If all the devices are off then this does not matter and LDO (low
  74. // power mode) is used
  75. #define AM_REG_PWRCTRL_SUPPLYSRC_SWITCH_LDO_IN_SLEEP_S 2
  76. #define AM_REG_PWRCTRL_SUPPLYSRC_SWITCH_LDO_IN_SLEEP_M 0x00000004
  77. #define AM_REG_PWRCTRL_SUPPLYSRC_SWITCH_LDO_IN_SLEEP(n) (((uint32_t)(n) << 2) & 0x00000004)
  78. #define AM_REG_PWRCTRL_SUPPLYSRC_SWITCH_LDO_IN_SLEEP_EN 0x00000004
  79. // Enables and Selects the Core Buck as the supply for the low-voltage power
  80. // domain.
  81. #define AM_REG_PWRCTRL_SUPPLYSRC_COREBUCKEN_S 1
  82. #define AM_REG_PWRCTRL_SUPPLYSRC_COREBUCKEN_M 0x00000002
  83. #define AM_REG_PWRCTRL_SUPPLYSRC_COREBUCKEN(n) (((uint32_t)(n) << 1) & 0x00000002)
  84. #define AM_REG_PWRCTRL_SUPPLYSRC_COREBUCKEN_EN 0x00000002
  85. // Enables and select the Memory Buck as the supply for the Flash and SRAM power
  86. // domain.
  87. #define AM_REG_PWRCTRL_SUPPLYSRC_MEMBUCKEN_S 0
  88. #define AM_REG_PWRCTRL_SUPPLYSRC_MEMBUCKEN_M 0x00000001
  89. #define AM_REG_PWRCTRL_SUPPLYSRC_MEMBUCKEN(n) (((uint32_t)(n) << 0) & 0x00000001)
  90. #define AM_REG_PWRCTRL_SUPPLYSRC_MEMBUCKEN_EN 0x00000001
  91. //*****************************************************************************
  92. //
  93. // PWRCTRL_POWERSTATUS - Power Status Register for MCU supplies and peripherals
  94. //
  95. //*****************************************************************************
  96. // Indicates whether the Core low-voltage domain is supplied from the LDO or the
  97. // Buck.
  98. #define AM_REG_PWRCTRL_POWERSTATUS_COREBUCKON_S 1
  99. #define AM_REG_PWRCTRL_POWERSTATUS_COREBUCKON_M 0x00000002
  100. #define AM_REG_PWRCTRL_POWERSTATUS_COREBUCKON(n) (((uint32_t)(n) << 1) & 0x00000002)
  101. #define AM_REG_PWRCTRL_POWERSTATUS_COREBUCKON_LDO 0x00000000
  102. #define AM_REG_PWRCTRL_POWERSTATUS_COREBUCKON_BUCK 0x00000002
  103. // Indicate whether the Memory power domain is supplied from the LDO or the
  104. // Buck.
  105. #define AM_REG_PWRCTRL_POWERSTATUS_MEMBUCKON_S 0
  106. #define AM_REG_PWRCTRL_POWERSTATUS_MEMBUCKON_M 0x00000001
  107. #define AM_REG_PWRCTRL_POWERSTATUS_MEMBUCKON(n) (((uint32_t)(n) << 0) & 0x00000001)
  108. #define AM_REG_PWRCTRL_POWERSTATUS_MEMBUCKON_LDO 0x00000000
  109. #define AM_REG_PWRCTRL_POWERSTATUS_MEMBUCKON_BUCK 0x00000001
  110. //*****************************************************************************
  111. //
  112. // PWRCTRL_DEVICEEN - DEVICE ENABLES for SHELBY
  113. //
  114. //*****************************************************************************
  115. // Enable PDM Digital Block
  116. #define AM_REG_PWRCTRL_DEVICEEN_PDM_S 10
  117. #define AM_REG_PWRCTRL_DEVICEEN_PDM_M 0x00000400
  118. #define AM_REG_PWRCTRL_DEVICEEN_PDM(n) (((uint32_t)(n) << 10) & 0x00000400)
  119. #define AM_REG_PWRCTRL_DEVICEEN_PDM_EN 0x00000400
  120. #define AM_REG_PWRCTRL_DEVICEEN_PDM_DIS 0x00000000
  121. // Enable ADC Digital Block
  122. #define AM_REG_PWRCTRL_DEVICEEN_ADC_S 9
  123. #define AM_REG_PWRCTRL_DEVICEEN_ADC_M 0x00000200
  124. #define AM_REG_PWRCTRL_DEVICEEN_ADC(n) (((uint32_t)(n) << 9) & 0x00000200)
  125. #define AM_REG_PWRCTRL_DEVICEEN_ADC_EN 0x00000200
  126. #define AM_REG_PWRCTRL_DEVICEEN_ADC_DIS 0x00000000
  127. // Enable UART 1
  128. #define AM_REG_PWRCTRL_DEVICEEN_UART1_S 8
  129. #define AM_REG_PWRCTRL_DEVICEEN_UART1_M 0x00000100
  130. #define AM_REG_PWRCTRL_DEVICEEN_UART1(n) (((uint32_t)(n) << 8) & 0x00000100)
  131. #define AM_REG_PWRCTRL_DEVICEEN_UART1_EN 0x00000100
  132. #define AM_REG_PWRCTRL_DEVICEEN_UART1_DIS 0x00000000
  133. // Enable UART 0
  134. #define AM_REG_PWRCTRL_DEVICEEN_UART0_S 7
  135. #define AM_REG_PWRCTRL_DEVICEEN_UART0_M 0x00000080
  136. #define AM_REG_PWRCTRL_DEVICEEN_UART0(n) (((uint32_t)(n) << 7) & 0x00000080)
  137. #define AM_REG_PWRCTRL_DEVICEEN_UART0_EN 0x00000080
  138. #define AM_REG_PWRCTRL_DEVICEEN_UART0_DIS 0x00000000
  139. // Enable IO MASTER 5
  140. #define AM_REG_PWRCTRL_DEVICEEN_IO_MASTER5_S 6
  141. #define AM_REG_PWRCTRL_DEVICEEN_IO_MASTER5_M 0x00000040
  142. #define AM_REG_PWRCTRL_DEVICEEN_IO_MASTER5(n) (((uint32_t)(n) << 6) & 0x00000040)
  143. #define AM_REG_PWRCTRL_DEVICEEN_IO_MASTER5_EN 0x00000040
  144. #define AM_REG_PWRCTRL_DEVICEEN_IO_MASTER5_DIS 0x00000000
  145. // Enable IO MASTER 4
  146. #define AM_REG_PWRCTRL_DEVICEEN_IO_MASTER4_S 5
  147. #define AM_REG_PWRCTRL_DEVICEEN_IO_MASTER4_M 0x00000020
  148. #define AM_REG_PWRCTRL_DEVICEEN_IO_MASTER4(n) (((uint32_t)(n) << 5) & 0x00000020)
  149. #define AM_REG_PWRCTRL_DEVICEEN_IO_MASTER4_EN 0x00000020
  150. #define AM_REG_PWRCTRL_DEVICEEN_IO_MASTER4_DIS 0x00000000
  151. // Enable IO MASTER 3
  152. #define AM_REG_PWRCTRL_DEVICEEN_IO_MASTER3_S 4
  153. #define AM_REG_PWRCTRL_DEVICEEN_IO_MASTER3_M 0x00000010
  154. #define AM_REG_PWRCTRL_DEVICEEN_IO_MASTER3(n) (((uint32_t)(n) << 4) & 0x00000010)
  155. #define AM_REG_PWRCTRL_DEVICEEN_IO_MASTER3_EN 0x00000010
  156. #define AM_REG_PWRCTRL_DEVICEEN_IO_MASTER3_DIS 0x00000000
  157. // Enable IO MASTER 2
  158. #define AM_REG_PWRCTRL_DEVICEEN_IO_MASTER2_S 3
  159. #define AM_REG_PWRCTRL_DEVICEEN_IO_MASTER2_M 0x00000008
  160. #define AM_REG_PWRCTRL_DEVICEEN_IO_MASTER2(n) (((uint32_t)(n) << 3) & 0x00000008)
  161. #define AM_REG_PWRCTRL_DEVICEEN_IO_MASTER2_EN 0x00000008
  162. #define AM_REG_PWRCTRL_DEVICEEN_IO_MASTER2_DIS 0x00000000
  163. // Enable IO MASTER 1
  164. #define AM_REG_PWRCTRL_DEVICEEN_IO_MASTER1_S 2
  165. #define AM_REG_PWRCTRL_DEVICEEN_IO_MASTER1_M 0x00000004
  166. #define AM_REG_PWRCTRL_DEVICEEN_IO_MASTER1(n) (((uint32_t)(n) << 2) & 0x00000004)
  167. #define AM_REG_PWRCTRL_DEVICEEN_IO_MASTER1_EN 0x00000004
  168. #define AM_REG_PWRCTRL_DEVICEEN_IO_MASTER1_DIS 0x00000000
  169. // Enable IO MASTER 0
  170. #define AM_REG_PWRCTRL_DEVICEEN_IO_MASTER0_S 1
  171. #define AM_REG_PWRCTRL_DEVICEEN_IO_MASTER0_M 0x00000002
  172. #define AM_REG_PWRCTRL_DEVICEEN_IO_MASTER0(n) (((uint32_t)(n) << 1) & 0x00000002)
  173. #define AM_REG_PWRCTRL_DEVICEEN_IO_MASTER0_EN 0x00000002
  174. #define AM_REG_PWRCTRL_DEVICEEN_IO_MASTER0_DIS 0x00000000
  175. // Enable IO SLAVE
  176. #define AM_REG_PWRCTRL_DEVICEEN_IO_SLAVE_S 0
  177. #define AM_REG_PWRCTRL_DEVICEEN_IO_SLAVE_M 0x00000001
  178. #define AM_REG_PWRCTRL_DEVICEEN_IO_SLAVE(n) (((uint32_t)(n) << 0) & 0x00000001)
  179. #define AM_REG_PWRCTRL_DEVICEEN_IO_SLAVE_EN 0x00000001
  180. #define AM_REG_PWRCTRL_DEVICEEN_IO_SLAVE_DIS 0x00000000
  181. //*****************************************************************************
  182. //
  183. // PWRCTRL_SRAMPWDINSLEEP - Powerdown an SRAM Banks in Deep Sleep mode
  184. //
  185. //*****************************************************************************
  186. // Enable CACHE BANKS to power down in deep sleep
  187. #define AM_REG_PWRCTRL_SRAMPWDINSLEEP_CACHE_PWD_SLP_S 31
  188. #define AM_REG_PWRCTRL_SRAMPWDINSLEEP_CACHE_PWD_SLP_M 0x80000000
  189. #define AM_REG_PWRCTRL_SRAMPWDINSLEEP_CACHE_PWD_SLP(n) (((uint32_t)(n) << 31) & 0x80000000)
  190. #define AM_REG_PWRCTRL_SRAMPWDINSLEEP_CACHE_PWD_SLP_EN 0x80000000
  191. #define AM_REG_PWRCTRL_SRAMPWDINSLEEP_CACHE_PWD_SLP_DIS 0x00000000
  192. // Selects which SRAM banks are powered down in deep sleep mode, causing the
  193. // contents of the bank to be lost.
  194. #define AM_REG_PWRCTRL_SRAMPWDINSLEEP_SRAMSLEEPPOWERDOWN_S 0
  195. #define AM_REG_PWRCTRL_SRAMPWDINSLEEP_SRAMSLEEPPOWERDOWN_M 0x000007FF
  196. #define AM_REG_PWRCTRL_SRAMPWDINSLEEP_SRAMSLEEPPOWERDOWN(n) (((uint32_t)(n) << 0) & 0x000007FF)
  197. #define AM_REG_PWRCTRL_SRAMPWDINSLEEP_SRAMSLEEPPOWERDOWN_NONE 0x00000000
  198. #define AM_REG_PWRCTRL_SRAMPWDINSLEEP_SRAMSLEEPPOWERDOWN_GROUP0_SRAM0 0x00000001
  199. #define AM_REG_PWRCTRL_SRAMPWDINSLEEP_SRAMSLEEPPOWERDOWN_GROUP0_SRAM1 0x00000002
  200. #define AM_REG_PWRCTRL_SRAMPWDINSLEEP_SRAMSLEEPPOWERDOWN_GROUP0_SRAM2 0x00000004
  201. #define AM_REG_PWRCTRL_SRAMPWDINSLEEP_SRAMSLEEPPOWERDOWN_GROUP0_SRAM3 0x00000008
  202. #define AM_REG_PWRCTRL_SRAMPWDINSLEEP_SRAMSLEEPPOWERDOWN_GROUP1 0x00000010
  203. #define AM_REG_PWRCTRL_SRAMPWDINSLEEP_SRAMSLEEPPOWERDOWN_GROUP2 0x00000020
  204. #define AM_REG_PWRCTRL_SRAMPWDINSLEEP_SRAMSLEEPPOWERDOWN_GROUP3 0x00000040
  205. #define AM_REG_PWRCTRL_SRAMPWDINSLEEP_SRAMSLEEPPOWERDOWN_GROUP4 0x00000080
  206. #define AM_REG_PWRCTRL_SRAMPWDINSLEEP_SRAMSLEEPPOWERDOWN_GROUP5 0x00000100
  207. #define AM_REG_PWRCTRL_SRAMPWDINSLEEP_SRAMSLEEPPOWERDOWN_GROUP6 0x00000200
  208. #define AM_REG_PWRCTRL_SRAMPWDINSLEEP_SRAMSLEEPPOWERDOWN_GROUP7 0x00000400
  209. #define AM_REG_PWRCTRL_SRAMPWDINSLEEP_SRAMSLEEPPOWERDOWN_SRAM8K 0x00000001
  210. #define AM_REG_PWRCTRL_SRAMPWDINSLEEP_SRAMSLEEPPOWERDOWN_SRAM16K 0x00000003
  211. #define AM_REG_PWRCTRL_SRAMPWDINSLEEP_SRAMSLEEPPOWERDOWN_SRAM32K 0x0000000F
  212. #define AM_REG_PWRCTRL_SRAMPWDINSLEEP_SRAMSLEEPPOWERDOWN_SRAM64K 0x0000001F
  213. #define AM_REG_PWRCTRL_SRAMPWDINSLEEP_SRAMSLEEPPOWERDOWN_SRAM128K 0x0000007F
  214. #define AM_REG_PWRCTRL_SRAMPWDINSLEEP_SRAMSLEEPPOWERDOWN_ALLBUTLOWER8K 0x000007FE
  215. #define AM_REG_PWRCTRL_SRAMPWDINSLEEP_SRAMSLEEPPOWERDOWN_ALLBUTLOWER16K 0x000007FC
  216. #define AM_REG_PWRCTRL_SRAMPWDINSLEEP_SRAMSLEEPPOWERDOWN_ALLBUTLOWER24K 0x000007F8
  217. #define AM_REG_PWRCTRL_SRAMPWDINSLEEP_SRAMSLEEPPOWERDOWN_ALLBUTLOWER32K 0x000007F0
  218. #define AM_REG_PWRCTRL_SRAMPWDINSLEEP_SRAMSLEEPPOWERDOWN_ALLBUTLOWER64K 0x000007E0
  219. #define AM_REG_PWRCTRL_SRAMPWDINSLEEP_SRAMSLEEPPOWERDOWN_ALLBUTLOWER128K 0x00000780
  220. #define AM_REG_PWRCTRL_SRAMPWDINSLEEP_SRAMSLEEPPOWERDOWN_ALL 0x000007FF
  221. //*****************************************************************************
  222. //
  223. // PWRCTRL_MEMEN - Disables individual banks of the MEMORY array
  224. //
  225. //*****************************************************************************
  226. // Enable CACHE BANK 2
  227. #define AM_REG_PWRCTRL_MEMEN_CACHEB2_S 31
  228. #define AM_REG_PWRCTRL_MEMEN_CACHEB2_M 0x80000000
  229. #define AM_REG_PWRCTRL_MEMEN_CACHEB2(n) (((uint32_t)(n) << 31) & 0x80000000)
  230. #define AM_REG_PWRCTRL_MEMEN_CACHEB2_EN 0x80000000
  231. #define AM_REG_PWRCTRL_MEMEN_CACHEB2_DIS 0x00000000
  232. // Enable CACHE BANK 0
  233. #define AM_REG_PWRCTRL_MEMEN_CACHEB0_S 29
  234. #define AM_REG_PWRCTRL_MEMEN_CACHEB0_M 0x20000000
  235. #define AM_REG_PWRCTRL_MEMEN_CACHEB0(n) (((uint32_t)(n) << 29) & 0x20000000)
  236. #define AM_REG_PWRCTRL_MEMEN_CACHEB0_EN 0x20000000
  237. #define AM_REG_PWRCTRL_MEMEN_CACHEB0_DIS 0x00000000
  238. // Enable FLASH1
  239. #define AM_REG_PWRCTRL_MEMEN_FLASH1_S 12
  240. #define AM_REG_PWRCTRL_MEMEN_FLASH1_M 0x00001000
  241. #define AM_REG_PWRCTRL_MEMEN_FLASH1(n) (((uint32_t)(n) << 12) & 0x00001000)
  242. #define AM_REG_PWRCTRL_MEMEN_FLASH1_EN 0x00001000
  243. #define AM_REG_PWRCTRL_MEMEN_FLASH1_DIS 0x00000000
  244. // Enable FLASH 0
  245. #define AM_REG_PWRCTRL_MEMEN_FLASH0_S 11
  246. #define AM_REG_PWRCTRL_MEMEN_FLASH0_M 0x00000800
  247. #define AM_REG_PWRCTRL_MEMEN_FLASH0(n) (((uint32_t)(n) << 11) & 0x00000800)
  248. #define AM_REG_PWRCTRL_MEMEN_FLASH0_EN 0x00000800
  249. #define AM_REG_PWRCTRL_MEMEN_FLASH0_DIS 0x00000000
  250. // Enables power for selected SRAM banks (else an access to its address space to
  251. // generate a Hard Fault).
  252. #define AM_REG_PWRCTRL_MEMEN_SRAMEN_S 0
  253. #define AM_REG_PWRCTRL_MEMEN_SRAMEN_M 0x000007FF
  254. #define AM_REG_PWRCTRL_MEMEN_SRAMEN(n) (((uint32_t)(n) << 0) & 0x000007FF)
  255. #define AM_REG_PWRCTRL_MEMEN_SRAMEN_NONE 0x00000000
  256. #define AM_REG_PWRCTRL_MEMEN_SRAMEN_GROUP0_SRAM0 0x00000001
  257. #define AM_REG_PWRCTRL_MEMEN_SRAMEN_GROUP0_SRAM1 0x00000002
  258. #define AM_REG_PWRCTRL_MEMEN_SRAMEN_GROUP0_SRAM2 0x00000004
  259. #define AM_REG_PWRCTRL_MEMEN_SRAMEN_GROUP0_SRAM3 0x00000008
  260. #define AM_REG_PWRCTRL_MEMEN_SRAMEN_GROUP1 0x00000010
  261. #define AM_REG_PWRCTRL_MEMEN_SRAMEN_GROUP2 0x00000020
  262. #define AM_REG_PWRCTRL_MEMEN_SRAMEN_GROUP3 0x00000040
  263. #define AM_REG_PWRCTRL_MEMEN_SRAMEN_GROUP4 0x00000080
  264. #define AM_REG_PWRCTRL_MEMEN_SRAMEN_GROUP5 0x00000100
  265. #define AM_REG_PWRCTRL_MEMEN_SRAMEN_GROUP6 0x00000200
  266. #define AM_REG_PWRCTRL_MEMEN_SRAMEN_GROUP7 0x00000400
  267. #define AM_REG_PWRCTRL_MEMEN_SRAMEN_SRAM8K 0x00000001
  268. #define AM_REG_PWRCTRL_MEMEN_SRAMEN_SRAM16K 0x00000003
  269. #define AM_REG_PWRCTRL_MEMEN_SRAMEN_SRAM32K 0x0000000F
  270. #define AM_REG_PWRCTRL_MEMEN_SRAMEN_SRAM64K 0x0000001F
  271. #define AM_REG_PWRCTRL_MEMEN_SRAMEN_SRAM128K 0x0000007F
  272. #define AM_REG_PWRCTRL_MEMEN_SRAMEN_SRAM256K 0x000007FF
  273. #define AM_REG_PWRCTRL_MEMEN_SRAMEN_ALL 0x000007FF
  274. //*****************************************************************************
  275. //
  276. // PWRCTRL_PWRONSTATUS - POWER ON Status
  277. //
  278. //*****************************************************************************
  279. // This bit is 1 if power is supplied to CACHE BANK 2
  280. #define AM_REG_PWRCTRL_PWRONSTATUS_PD_CACHEB2_S 21
  281. #define AM_REG_PWRCTRL_PWRONSTATUS_PD_CACHEB2_M 0x00200000
  282. #define AM_REG_PWRCTRL_PWRONSTATUS_PD_CACHEB2(n) (((uint32_t)(n) << 21) & 0x00200000)
  283. // This bit is 1 if power is supplied to CACHE BANK 0
  284. #define AM_REG_PWRCTRL_PWRONSTATUS_PD_CACHEB0_S 19
  285. #define AM_REG_PWRCTRL_PWRONSTATUS_PD_CACHEB0_M 0x00080000
  286. #define AM_REG_PWRCTRL_PWRONSTATUS_PD_CACHEB0(n) (((uint32_t)(n) << 19) & 0x00080000)
  287. // This bit is 1 if power is supplied to SRAM domain PD_GRP7
  288. #define AM_REG_PWRCTRL_PWRONSTATUS_PD_GRP7_SRAM_S 18
  289. #define AM_REG_PWRCTRL_PWRONSTATUS_PD_GRP7_SRAM_M 0x00040000
  290. #define AM_REG_PWRCTRL_PWRONSTATUS_PD_GRP7_SRAM(n) (((uint32_t)(n) << 18) & 0x00040000)
  291. // This bit is 1 if power is supplied to SRAM domain PD_GRP6
  292. #define AM_REG_PWRCTRL_PWRONSTATUS_PD_GRP6_SRAM_S 17
  293. #define AM_REG_PWRCTRL_PWRONSTATUS_PD_GRP6_SRAM_M 0x00020000
  294. #define AM_REG_PWRCTRL_PWRONSTATUS_PD_GRP6_SRAM(n) (((uint32_t)(n) << 17) & 0x00020000)
  295. // This bit is 1 if power is supplied to SRAM domain PD_GRP5
  296. #define AM_REG_PWRCTRL_PWRONSTATUS_PD_GRP5_SRAM_S 16
  297. #define AM_REG_PWRCTRL_PWRONSTATUS_PD_GRP5_SRAM_M 0x00010000
  298. #define AM_REG_PWRCTRL_PWRONSTATUS_PD_GRP5_SRAM(n) (((uint32_t)(n) << 16) & 0x00010000)
  299. // This bit is 1 if power is supplied to SRAM domain PD_GRP4
  300. #define AM_REG_PWRCTRL_PWRONSTATUS_PD_GRP4_SRAM_S 15
  301. #define AM_REG_PWRCTRL_PWRONSTATUS_PD_GRP4_SRAM_M 0x00008000
  302. #define AM_REG_PWRCTRL_PWRONSTATUS_PD_GRP4_SRAM(n) (((uint32_t)(n) << 15) & 0x00008000)
  303. // This bit is 1 if power is supplied to SRAM domain PD_GRP3
  304. #define AM_REG_PWRCTRL_PWRONSTATUS_PD_GRP3_SRAM_S 14
  305. #define AM_REG_PWRCTRL_PWRONSTATUS_PD_GRP3_SRAM_M 0x00004000
  306. #define AM_REG_PWRCTRL_PWRONSTATUS_PD_GRP3_SRAM(n) (((uint32_t)(n) << 14) & 0x00004000)
  307. // This bit is 1 if power is supplied to SRAM domain PD_GRP2
  308. #define AM_REG_PWRCTRL_PWRONSTATUS_PD_GRP2_SRAM_S 13
  309. #define AM_REG_PWRCTRL_PWRONSTATUS_PD_GRP2_SRAM_M 0x00002000
  310. #define AM_REG_PWRCTRL_PWRONSTATUS_PD_GRP2_SRAM(n) (((uint32_t)(n) << 13) & 0x00002000)
  311. // This bit is 1 if power is supplied to SRAM domain PD_GRP1
  312. #define AM_REG_PWRCTRL_PWRONSTATUS_PD_GRP1_SRAM_S 12
  313. #define AM_REG_PWRCTRL_PWRONSTATUS_PD_GRP1_SRAM_M 0x00001000
  314. #define AM_REG_PWRCTRL_PWRONSTATUS_PD_GRP1_SRAM(n) (((uint32_t)(n) << 12) & 0x00001000)
  315. // This bit is 1 if power is supplied to SRAM domain PD_SRAM0_3
  316. #define AM_REG_PWRCTRL_PWRONSTATUS_PD_GRP0_SRAM3_S 11
  317. #define AM_REG_PWRCTRL_PWRONSTATUS_PD_GRP0_SRAM3_M 0x00000800
  318. #define AM_REG_PWRCTRL_PWRONSTATUS_PD_GRP0_SRAM3(n) (((uint32_t)(n) << 11) & 0x00000800)
  319. // This bit is 1 if power is supplied to SRAM domain PD_SRAM0_2
  320. #define AM_REG_PWRCTRL_PWRONSTATUS_PD_GRP0_SRAM2_S 10
  321. #define AM_REG_PWRCTRL_PWRONSTATUS_PD_GRP0_SRAM2_M 0x00000400
  322. #define AM_REG_PWRCTRL_PWRONSTATUS_PD_GRP0_SRAM2(n) (((uint32_t)(n) << 10) & 0x00000400)
  323. // This bit is 1 if power is supplied to SRAM domain SRAM0_1
  324. #define AM_REG_PWRCTRL_PWRONSTATUS_PD_GRP0_SRAM1_S 9
  325. #define AM_REG_PWRCTRL_PWRONSTATUS_PD_GRP0_SRAM1_M 0x00000200
  326. #define AM_REG_PWRCTRL_PWRONSTATUS_PD_GRP0_SRAM1(n) (((uint32_t)(n) << 9) & 0x00000200)
  327. // This bit is 1 if power is supplied to SRAM domain SRAM0_0
  328. #define AM_REG_PWRCTRL_PWRONSTATUS_PD_GRP0_SRAM0_S 8
  329. #define AM_REG_PWRCTRL_PWRONSTATUS_PD_GRP0_SRAM0_M 0x00000100
  330. #define AM_REG_PWRCTRL_PWRONSTATUS_PD_GRP0_SRAM0(n) (((uint32_t)(n) << 8) & 0x00000100)
  331. // This bit is 1 if power is supplied to domain PD_ADC
  332. #define AM_REG_PWRCTRL_PWRONSTATUS_PDADC_S 7
  333. #define AM_REG_PWRCTRL_PWRONSTATUS_PDADC_M 0x00000080
  334. #define AM_REG_PWRCTRL_PWRONSTATUS_PDADC(n) (((uint32_t)(n) << 7) & 0x00000080)
  335. // This bit is 1 if power is supplied to domain PD_FLAM1
  336. #define AM_REG_PWRCTRL_PWRONSTATUS_PD_FLAM1_S 6
  337. #define AM_REG_PWRCTRL_PWRONSTATUS_PD_FLAM1_M 0x00000040
  338. #define AM_REG_PWRCTRL_PWRONSTATUS_PD_FLAM1(n) (((uint32_t)(n) << 6) & 0x00000040)
  339. // This bit is 1 if power is supplied to domain PD_FLAM0
  340. #define AM_REG_PWRCTRL_PWRONSTATUS_PD_FLAM0_S 5
  341. #define AM_REG_PWRCTRL_PWRONSTATUS_PD_FLAM0_M 0x00000020
  342. #define AM_REG_PWRCTRL_PWRONSTATUS_PD_FLAM0(n) (((uint32_t)(n) << 5) & 0x00000020)
  343. // This bit is 1 if power is supplied to domain PD_PDM
  344. #define AM_REG_PWRCTRL_PWRONSTATUS_PD_PDM_S 4
  345. #define AM_REG_PWRCTRL_PWRONSTATUS_PD_PDM_M 0x00000010
  346. #define AM_REG_PWRCTRL_PWRONSTATUS_PD_PDM(n) (((uint32_t)(n) << 4) & 0x00000010)
  347. // This bit is 1 if power is supplied to power domain C, which supplies IOM3-5.
  348. #define AM_REG_PWRCTRL_PWRONSTATUS_PDC_S 3
  349. #define AM_REG_PWRCTRL_PWRONSTATUS_PDC_M 0x00000008
  350. #define AM_REG_PWRCTRL_PWRONSTATUS_PDC(n) (((uint32_t)(n) << 3) & 0x00000008)
  351. // This bit is 1 if power is supplied to power domain B, which supplies IOM0-2.
  352. #define AM_REG_PWRCTRL_PWRONSTATUS_PDB_S 2
  353. #define AM_REG_PWRCTRL_PWRONSTATUS_PDB_M 0x00000004
  354. #define AM_REG_PWRCTRL_PWRONSTATUS_PDB(n) (((uint32_t)(n) << 2) & 0x00000004)
  355. // This bit is 1 if power is supplied to power domain A, which supplies IOS and
  356. // UART0,1.
  357. #define AM_REG_PWRCTRL_PWRONSTATUS_PDA_S 1
  358. #define AM_REG_PWRCTRL_PWRONSTATUS_PDA_M 0x00000002
  359. #define AM_REG_PWRCTRL_PWRONSTATUS_PDA(n) (((uint32_t)(n) << 1) & 0x00000002)
  360. //*****************************************************************************
  361. //
  362. // PWRCTRL_SRAMCTRL - SRAM Control register
  363. //
  364. //*****************************************************************************
  365. // Enables top-level clock gating in the SRAM block. This bit should be enabled
  366. // for lowest power operation.
  367. #define AM_REG_PWRCTRL_SRAMCTRL_SRAM_MASTER_CLKGATE_S 2
  368. #define AM_REG_PWRCTRL_SRAMCTRL_SRAM_MASTER_CLKGATE_M 0x00000004
  369. #define AM_REG_PWRCTRL_SRAMCTRL_SRAM_MASTER_CLKGATE(n) (((uint32_t)(n) << 2) & 0x00000004)
  370. #define AM_REG_PWRCTRL_SRAMCTRL_SRAM_MASTER_CLKGATE_EN 0x00000004
  371. #define AM_REG_PWRCTRL_SRAMCTRL_SRAM_MASTER_CLKGATE_DIS 0x00000000
  372. // Enables individual per-RAM clock gating in the SRAM block. This bit should
  373. // be enabled for lowest power operation.
  374. #define AM_REG_PWRCTRL_SRAMCTRL_SRAM_CLKGATE_S 1
  375. #define AM_REG_PWRCTRL_SRAMCTRL_SRAM_CLKGATE_M 0x00000002
  376. #define AM_REG_PWRCTRL_SRAMCTRL_SRAM_CLKGATE(n) (((uint32_t)(n) << 1) & 0x00000002)
  377. #define AM_REG_PWRCTRL_SRAMCTRL_SRAM_CLKGATE_EN 0x00000002
  378. #define AM_REG_PWRCTRL_SRAMCTRL_SRAM_CLKGATE_DIS 0x00000000
  379. // Enable LS (light sleep) of cache RAMs. When this bit is set, the RAMS will
  380. // be put into light sleep mode while inactive. NOTE: if the SRAM is actively
  381. // used, this may have an adverse affect on power since entering/exiting LS mode
  382. // may consume more power than would be saved.
  383. #define AM_REG_PWRCTRL_SRAMCTRL_SRAM_LIGHT_SLEEP_S 0
  384. #define AM_REG_PWRCTRL_SRAMCTRL_SRAM_LIGHT_SLEEP_M 0x00000001
  385. #define AM_REG_PWRCTRL_SRAMCTRL_SRAM_LIGHT_SLEEP(n) (((uint32_t)(n) << 0) & 0x00000001)
  386. #define AM_REG_PWRCTRL_SRAMCTRL_SRAM_LIGHT_SLEEP_EN 0x00000001
  387. #define AM_REG_PWRCTRL_SRAMCTRL_SRAM_LIGHT_SLEEP_DIS 0x00000000
  388. //*****************************************************************************
  389. //
  390. // PWRCTRL_ADCSTATUS - Power Status Register for ADC Block
  391. //
  392. //*****************************************************************************
  393. // This bit indicates that the ADC REFBUF is powered down
  394. #define AM_REG_PWRCTRL_ADCSTATUS_ADC_REFBUF_PWD_S 5
  395. #define AM_REG_PWRCTRL_ADCSTATUS_ADC_REFBUF_PWD_M 0x00000020
  396. #define AM_REG_PWRCTRL_ADCSTATUS_ADC_REFBUF_PWD(n) (((uint32_t)(n) << 5) & 0x00000020)
  397. // This bit indicates that the ADC REFKEEP is powered down
  398. #define AM_REG_PWRCTRL_ADCSTATUS_ADC_REFKEEP_PWD_S 4
  399. #define AM_REG_PWRCTRL_ADCSTATUS_ADC_REFKEEP_PWD_M 0x00000010
  400. #define AM_REG_PWRCTRL_ADCSTATUS_ADC_REFKEEP_PWD(n) (((uint32_t)(n) << 4) & 0x00000010)
  401. // This bit indicates that the ADC VBAT resistor divider is powered down
  402. #define AM_REG_PWRCTRL_ADCSTATUS_ADC_VBAT_PWD_S 3
  403. #define AM_REG_PWRCTRL_ADCSTATUS_ADC_VBAT_PWD_M 0x00000008
  404. #define AM_REG_PWRCTRL_ADCSTATUS_ADC_VBAT_PWD(n) (((uint32_t)(n) << 3) & 0x00000008)
  405. // This bit indicates that the ADC temperature sensor input buffer is powered
  406. // down
  407. #define AM_REG_PWRCTRL_ADCSTATUS_ADC_VPTAT_PWD_S 2
  408. #define AM_REG_PWRCTRL_ADCSTATUS_ADC_VPTAT_PWD_M 0x00000004
  409. #define AM_REG_PWRCTRL_ADCSTATUS_ADC_VPTAT_PWD(n) (((uint32_t)(n) << 2) & 0x00000004)
  410. // This bit indicates that the ADC Band Gap is powered down
  411. #define AM_REG_PWRCTRL_ADCSTATUS_ADC_BGT_PWD_S 1
  412. #define AM_REG_PWRCTRL_ADCSTATUS_ADC_BGT_PWD_M 0x00000002
  413. #define AM_REG_PWRCTRL_ADCSTATUS_ADC_BGT_PWD(n) (((uint32_t)(n) << 1) & 0x00000002)
  414. // This bit indicates that the ADC is powered down
  415. #define AM_REG_PWRCTRL_ADCSTATUS_ADC_PWD_S 0
  416. #define AM_REG_PWRCTRL_ADCSTATUS_ADC_PWD_M 0x00000001
  417. #define AM_REG_PWRCTRL_ADCSTATUS_ADC_PWD(n) (((uint32_t)(n) << 0) & 0x00000001)
  418. //*****************************************************************************
  419. //
  420. // PWRCTRL_MISCOPT - Power Optimization Control Bits
  421. //
  422. //*****************************************************************************
  423. // Setting this bit will enable the MEM LDO to be in LPMODE during deep sleep
  424. // even when the ctimers or stimers are running
  425. #define AM_REG_PWRCTRL_MISCOPT_DIS_LDOLPMODE_TIMERS_S 2
  426. #define AM_REG_PWRCTRL_MISCOPT_DIS_LDOLPMODE_TIMERS_M 0x00000004
  427. #define AM_REG_PWRCTRL_MISCOPT_DIS_LDOLPMODE_TIMERS(n) (((uint32_t)(n) << 2) & 0x00000004)
  428. #endif // AM_REG_PWRCTRL_H