am_reg_clkgen.h 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501
  1. //*****************************************************************************
  2. //
  3. // am_reg_clkgen.h
  4. //! @file
  5. //!
  6. //! @brief Register macros for the CLKGEN 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.9 of the AmbiqSuite Development Package.
  41. //
  42. //*****************************************************************************
  43. #ifndef AM_REG_CLKGEN_H
  44. #define AM_REG_CLKGEN_H
  45. //*****************************************************************************
  46. //
  47. // Instance finder. (1 instance(s) available)
  48. //
  49. //*****************************************************************************
  50. #define AM_REG_CLKGEN_NUM_MODULES 1
  51. #define AM_REG_CLKGENn(n) \
  52. (REG_CLKGEN_BASEADDR + 0x00000000 * n)
  53. //*****************************************************************************
  54. //
  55. // Register offsets.
  56. //
  57. //*****************************************************************************
  58. #define AM_REG_CLKGEN_CALXT_O 0x00000000
  59. #define AM_REG_CLKGEN_CALRC_O 0x00000004
  60. #define AM_REG_CLKGEN_ACALCTR_O 0x00000008
  61. #define AM_REG_CLKGEN_OCTRL_O 0x0000000C
  62. #define AM_REG_CLKGEN_CLKOUT_O 0x00000010
  63. #define AM_REG_CLKGEN_CCTRL_O 0x00000018
  64. #define AM_REG_CLKGEN_STATUS_O 0x0000001C
  65. #define AM_REG_CLKGEN_HFADJ_O 0x00000020
  66. #define AM_REG_CLKGEN_HFVAL_O 0x00000024
  67. #define AM_REG_CLKGEN_CLOCKEN_O 0x00000028
  68. #define AM_REG_CLKGEN_CLOCKEN2_O 0x0000002C
  69. #define AM_REG_CLKGEN_CLOCKEN3_O 0x00000030
  70. #define AM_REG_CLKGEN_UARTEN_O 0x00000034
  71. #define AM_REG_CLKGEN_CLKKEY_O 0x00000014
  72. #define AM_REG_CLKGEN_INTEN_O 0x00000100
  73. #define AM_REG_CLKGEN_INTSTAT_O 0x00000104
  74. #define AM_REG_CLKGEN_INTCLR_O 0x00000108
  75. #define AM_REG_CLKGEN_INTSET_O 0x0000010C
  76. //*****************************************************************************
  77. //
  78. // Key values.
  79. //
  80. //*****************************************************************************
  81. #define AM_REG_CLKGEN_CLKKEY_KEYVAL 0x00000047
  82. //*****************************************************************************
  83. //
  84. // CLKGEN_INTEN - CLKGEN Interrupt Register: Enable
  85. //
  86. //*****************************************************************************
  87. // RTC Alarm interrupt
  88. #define AM_REG_CLKGEN_INTEN_ALM_S 3
  89. #define AM_REG_CLKGEN_INTEN_ALM_M 0x00000008
  90. #define AM_REG_CLKGEN_INTEN_ALM(n) (((uint32_t)(n) << 3) & 0x00000008)
  91. // XT Oscillator Fail interrupt
  92. #define AM_REG_CLKGEN_INTEN_OF_S 2
  93. #define AM_REG_CLKGEN_INTEN_OF_M 0x00000004
  94. #define AM_REG_CLKGEN_INTEN_OF(n) (((uint32_t)(n) << 2) & 0x00000004)
  95. // Autocalibration Complete interrupt
  96. #define AM_REG_CLKGEN_INTEN_ACC_S 1
  97. #define AM_REG_CLKGEN_INTEN_ACC_M 0x00000002
  98. #define AM_REG_CLKGEN_INTEN_ACC(n) (((uint32_t)(n) << 1) & 0x00000002)
  99. // Autocalibration Fail interrupt
  100. #define AM_REG_CLKGEN_INTEN_ACF_S 0
  101. #define AM_REG_CLKGEN_INTEN_ACF_M 0x00000001
  102. #define AM_REG_CLKGEN_INTEN_ACF(n) (((uint32_t)(n) << 0) & 0x00000001)
  103. //*****************************************************************************
  104. //
  105. // CLKGEN_INTSTAT - CLKGEN Interrupt Register: Status
  106. //
  107. //*****************************************************************************
  108. // RTC Alarm interrupt
  109. #define AM_REG_CLKGEN_INTSTAT_ALM_S 3
  110. #define AM_REG_CLKGEN_INTSTAT_ALM_M 0x00000008
  111. #define AM_REG_CLKGEN_INTSTAT_ALM(n) (((uint32_t)(n) << 3) & 0x00000008)
  112. // XT Oscillator Fail interrupt
  113. #define AM_REG_CLKGEN_INTSTAT_OF_S 2
  114. #define AM_REG_CLKGEN_INTSTAT_OF_M 0x00000004
  115. #define AM_REG_CLKGEN_INTSTAT_OF(n) (((uint32_t)(n) << 2) & 0x00000004)
  116. // Autocalibration Complete interrupt
  117. #define AM_REG_CLKGEN_INTSTAT_ACC_S 1
  118. #define AM_REG_CLKGEN_INTSTAT_ACC_M 0x00000002
  119. #define AM_REG_CLKGEN_INTSTAT_ACC(n) (((uint32_t)(n) << 1) & 0x00000002)
  120. // Autocalibration Fail interrupt
  121. #define AM_REG_CLKGEN_INTSTAT_ACF_S 0
  122. #define AM_REG_CLKGEN_INTSTAT_ACF_M 0x00000001
  123. #define AM_REG_CLKGEN_INTSTAT_ACF(n) (((uint32_t)(n) << 0) & 0x00000001)
  124. //*****************************************************************************
  125. //
  126. // CLKGEN_INTCLR - CLKGEN Interrupt Register: Clear
  127. //
  128. //*****************************************************************************
  129. // RTC Alarm interrupt
  130. #define AM_REG_CLKGEN_INTCLR_ALM_S 3
  131. #define AM_REG_CLKGEN_INTCLR_ALM_M 0x00000008
  132. #define AM_REG_CLKGEN_INTCLR_ALM(n) (((uint32_t)(n) << 3) & 0x00000008)
  133. // XT Oscillator Fail interrupt
  134. #define AM_REG_CLKGEN_INTCLR_OF_S 2
  135. #define AM_REG_CLKGEN_INTCLR_OF_M 0x00000004
  136. #define AM_REG_CLKGEN_INTCLR_OF(n) (((uint32_t)(n) << 2) & 0x00000004)
  137. // Autocalibration Complete interrupt
  138. #define AM_REG_CLKGEN_INTCLR_ACC_S 1
  139. #define AM_REG_CLKGEN_INTCLR_ACC_M 0x00000002
  140. #define AM_REG_CLKGEN_INTCLR_ACC(n) (((uint32_t)(n) << 1) & 0x00000002)
  141. // Autocalibration Fail interrupt
  142. #define AM_REG_CLKGEN_INTCLR_ACF_S 0
  143. #define AM_REG_CLKGEN_INTCLR_ACF_M 0x00000001
  144. #define AM_REG_CLKGEN_INTCLR_ACF(n) (((uint32_t)(n) << 0) & 0x00000001)
  145. //*****************************************************************************
  146. //
  147. // CLKGEN_INTSET - CLKGEN Interrupt Register: Set
  148. //
  149. //*****************************************************************************
  150. // RTC Alarm interrupt
  151. #define AM_REG_CLKGEN_INTSET_ALM_S 3
  152. #define AM_REG_CLKGEN_INTSET_ALM_M 0x00000008
  153. #define AM_REG_CLKGEN_INTSET_ALM(n) (((uint32_t)(n) << 3) & 0x00000008)
  154. // XT Oscillator Fail interrupt
  155. #define AM_REG_CLKGEN_INTSET_OF_S 2
  156. #define AM_REG_CLKGEN_INTSET_OF_M 0x00000004
  157. #define AM_REG_CLKGEN_INTSET_OF(n) (((uint32_t)(n) << 2) & 0x00000004)
  158. // Autocalibration Complete interrupt
  159. #define AM_REG_CLKGEN_INTSET_ACC_S 1
  160. #define AM_REG_CLKGEN_INTSET_ACC_M 0x00000002
  161. #define AM_REG_CLKGEN_INTSET_ACC(n) (((uint32_t)(n) << 1) & 0x00000002)
  162. // Autocalibration Fail interrupt
  163. #define AM_REG_CLKGEN_INTSET_ACF_S 0
  164. #define AM_REG_CLKGEN_INTSET_ACF_M 0x00000001
  165. #define AM_REG_CLKGEN_INTSET_ACF(n) (((uint32_t)(n) << 0) & 0x00000001)
  166. //*****************************************************************************
  167. //
  168. // CLKGEN_CALXT - XT Oscillator Control
  169. //
  170. //*****************************************************************************
  171. // XT Oscillator calibration value
  172. #define AM_REG_CLKGEN_CALXT_CALXT_S 0
  173. #define AM_REG_CLKGEN_CALXT_CALXT_M 0x000007FF
  174. #define AM_REG_CLKGEN_CALXT_CALXT(n) (((uint32_t)(n) << 0) & 0x000007FF)
  175. //*****************************************************************************
  176. //
  177. // CLKGEN_CALRC - RC Oscillator Control
  178. //
  179. //*****************************************************************************
  180. // LFRC Oscillator calibration value
  181. #define AM_REG_CLKGEN_CALRC_CALRC_S 0
  182. #define AM_REG_CLKGEN_CALRC_CALRC_M 0x0003FFFF
  183. #define AM_REG_CLKGEN_CALRC_CALRC(n) (((uint32_t)(n) << 0) & 0x0003FFFF)
  184. //*****************************************************************************
  185. //
  186. // CLKGEN_ACALCTR - Autocalibration Counter
  187. //
  188. //*****************************************************************************
  189. // Autocalibration Counter result.
  190. #define AM_REG_CLKGEN_ACALCTR_ACALCTR_S 0
  191. #define AM_REG_CLKGEN_ACALCTR_ACALCTR_M 0x00FFFFFF
  192. #define AM_REG_CLKGEN_ACALCTR_ACALCTR(n) (((uint32_t)(n) << 0) & 0x00FFFFFF)
  193. //*****************************************************************************
  194. //
  195. // CLKGEN_OCTRL - Oscillator Control
  196. //
  197. //*****************************************************************************
  198. // Autocalibration control
  199. #define AM_REG_CLKGEN_OCTRL_ACAL_S 8
  200. #define AM_REG_CLKGEN_OCTRL_ACAL_M 0x00000700
  201. #define AM_REG_CLKGEN_OCTRL_ACAL(n) (((uint32_t)(n) << 8) & 0x00000700)
  202. #define AM_REG_CLKGEN_OCTRL_ACAL_DIS 0x00000000
  203. #define AM_REG_CLKGEN_OCTRL_ACAL_1024SEC 0x00000200
  204. #define AM_REG_CLKGEN_OCTRL_ACAL_512SEC 0x00000300
  205. #define AM_REG_CLKGEN_OCTRL_ACAL_XTFREQ 0x00000600
  206. #define AM_REG_CLKGEN_OCTRL_ACAL_EXTFREQ 0x00000700
  207. // Selects the RTC oscillator (1 => LFRC, 0 => XT)
  208. #define AM_REG_CLKGEN_OCTRL_OSEL_S 7
  209. #define AM_REG_CLKGEN_OCTRL_OSEL_M 0x00000080
  210. #define AM_REG_CLKGEN_OCTRL_OSEL(n) (((uint32_t)(n) << 7) & 0x00000080)
  211. #define AM_REG_CLKGEN_OCTRL_OSEL_RTC_XT 0x00000000
  212. #define AM_REG_CLKGEN_OCTRL_OSEL_RTC_LFRC 0x00000080
  213. // Oscillator switch on failure function
  214. #define AM_REG_CLKGEN_OCTRL_FOS_S 6
  215. #define AM_REG_CLKGEN_OCTRL_FOS_M 0x00000040
  216. #define AM_REG_CLKGEN_OCTRL_FOS(n) (((uint32_t)(n) << 6) & 0x00000040)
  217. #define AM_REG_CLKGEN_OCTRL_FOS_DIS 0x00000000
  218. #define AM_REG_CLKGEN_OCTRL_FOS_EN 0x00000040
  219. // Stop the LFRC Oscillator to the RTC
  220. #define AM_REG_CLKGEN_OCTRL_STOPRC_S 1
  221. #define AM_REG_CLKGEN_OCTRL_STOPRC_M 0x00000002
  222. #define AM_REG_CLKGEN_OCTRL_STOPRC(n) (((uint32_t)(n) << 1) & 0x00000002)
  223. #define AM_REG_CLKGEN_OCTRL_STOPRC_EN 0x00000000
  224. #define AM_REG_CLKGEN_OCTRL_STOPRC_STOP 0x00000002
  225. // Stop the XT Oscillator to the RTC
  226. #define AM_REG_CLKGEN_OCTRL_STOPXT_S 0
  227. #define AM_REG_CLKGEN_OCTRL_STOPXT_M 0x00000001
  228. #define AM_REG_CLKGEN_OCTRL_STOPXT(n) (((uint32_t)(n) << 0) & 0x00000001)
  229. #define AM_REG_CLKGEN_OCTRL_STOPXT_EN 0x00000000
  230. #define AM_REG_CLKGEN_OCTRL_STOPXT_STOP 0x00000001
  231. //*****************************************************************************
  232. //
  233. // CLKGEN_CLKOUT - CLKOUT Frequency Select
  234. //
  235. //*****************************************************************************
  236. // Enable the CLKOUT signal
  237. #define AM_REG_CLKGEN_CLKOUT_CKEN_S 7
  238. #define AM_REG_CLKGEN_CLKOUT_CKEN_M 0x00000080
  239. #define AM_REG_CLKGEN_CLKOUT_CKEN(n) (((uint32_t)(n) << 7) & 0x00000080)
  240. #define AM_REG_CLKGEN_CLKOUT_CKEN_DIS 0x00000000
  241. #define AM_REG_CLKGEN_CLKOUT_CKEN_EN 0x00000080
  242. // CLKOUT signal select. Note that HIGH_DRIVE should be selected if any high
  243. // frequencies (such as from HFRC) are selected for CLKOUT.
  244. #define AM_REG_CLKGEN_CLKOUT_CKSEL_S 0
  245. #define AM_REG_CLKGEN_CLKOUT_CKSEL_M 0x0000003F
  246. #define AM_REG_CLKGEN_CLKOUT_CKSEL(n) (((uint32_t)(n) << 0) & 0x0000003F)
  247. #define AM_REG_CLKGEN_CLKOUT_CKSEL_LFRC 0x00000000
  248. #define AM_REG_CLKGEN_CLKOUT_CKSEL_XT_DIV2 0x00000001
  249. #define AM_REG_CLKGEN_CLKOUT_CKSEL_XT_DIV4 0x00000002
  250. #define AM_REG_CLKGEN_CLKOUT_CKSEL_XT_DIV8 0x00000003
  251. #define AM_REG_CLKGEN_CLKOUT_CKSEL_XT_DIV16 0x00000004
  252. #define AM_REG_CLKGEN_CLKOUT_CKSEL_XT_DIV32 0x00000005
  253. #define AM_REG_CLKGEN_CLKOUT_CKSEL_RTC_1Hz 0x00000010
  254. #define AM_REG_CLKGEN_CLKOUT_CKSEL_XT_DIV2M 0x00000016
  255. #define AM_REG_CLKGEN_CLKOUT_CKSEL_XT 0x00000017
  256. #define AM_REG_CLKGEN_CLKOUT_CKSEL_CG_100Hz 0x00000018
  257. #define AM_REG_CLKGEN_CLKOUT_CKSEL_HFRC 0x00000019
  258. #define AM_REG_CLKGEN_CLKOUT_CKSEL_HFRC_DIV4 0x0000001A
  259. #define AM_REG_CLKGEN_CLKOUT_CKSEL_HFRC_DIV8 0x0000001B
  260. #define AM_REG_CLKGEN_CLKOUT_CKSEL_HFRC_DIV16 0x0000001C
  261. #define AM_REG_CLKGEN_CLKOUT_CKSEL_HFRC_DIV64 0x0000001D
  262. #define AM_REG_CLKGEN_CLKOUT_CKSEL_HFRC_DIV128 0x0000001E
  263. #define AM_REG_CLKGEN_CLKOUT_CKSEL_HFRC_DIV256 0x0000001F
  264. #define AM_REG_CLKGEN_CLKOUT_CKSEL_HFRC_DIV512 0x00000020
  265. #define AM_REG_CLKGEN_CLKOUT_CKSEL_FLASH_CLK 0x00000022
  266. #define AM_REG_CLKGEN_CLKOUT_CKSEL_LFRC_DIV2 0x00000023
  267. #define AM_REG_CLKGEN_CLKOUT_CKSEL_LFRC_DIV32 0x00000024
  268. #define AM_REG_CLKGEN_CLKOUT_CKSEL_LFRC_DIV512 0x00000025
  269. #define AM_REG_CLKGEN_CLKOUT_CKSEL_LFRC_DIV32K 0x00000026
  270. #define AM_REG_CLKGEN_CLKOUT_CKSEL_XT_DIV256 0x00000027
  271. #define AM_REG_CLKGEN_CLKOUT_CKSEL_XT_DIV8K 0x00000028
  272. #define AM_REG_CLKGEN_CLKOUT_CKSEL_XT_DIV64K 0x00000029
  273. #define AM_REG_CLKGEN_CLKOUT_CKSEL_ULFRC_DIV16 0x0000002A
  274. #define AM_REG_CLKGEN_CLKOUT_CKSEL_ULFRC_DIV128 0x0000002B
  275. #define AM_REG_CLKGEN_CLKOUT_CKSEL_ULFRC_1Hz 0x0000002C
  276. #define AM_REG_CLKGEN_CLKOUT_CKSEL_ULFRC_DIV4K 0x0000002D
  277. #define AM_REG_CLKGEN_CLKOUT_CKSEL_ULFRC_DIV1M 0x0000002E
  278. #define AM_REG_CLKGEN_CLKOUT_CKSEL_HFRC_DIV64K 0x0000002F
  279. #define AM_REG_CLKGEN_CLKOUT_CKSEL_HFRC_DIV16M 0x00000030
  280. #define AM_REG_CLKGEN_CLKOUT_CKSEL_LFRC_DIV2M 0x00000031
  281. #define AM_REG_CLKGEN_CLKOUT_CKSEL_HFRCNE 0x00000032
  282. #define AM_REG_CLKGEN_CLKOUT_CKSEL_HFRCNE_DIV8 0x00000033
  283. #define AM_REG_CLKGEN_CLKOUT_CKSEL_XTNE 0x00000035
  284. #define AM_REG_CLKGEN_CLKOUT_CKSEL_XTNE_DIV16 0x00000036
  285. #define AM_REG_CLKGEN_CLKOUT_CKSEL_LFRCNE_DIV32 0x00000037
  286. #define AM_REG_CLKGEN_CLKOUT_CKSEL_LFRCNE 0x00000039
  287. //*****************************************************************************
  288. //
  289. // CLKGEN_CCTRL - HFRC Clock Control
  290. //
  291. //*****************************************************************************
  292. // Core Clock divisor
  293. #define AM_REG_CLKGEN_CCTRL_CORESEL_S 0
  294. #define AM_REG_CLKGEN_CCTRL_CORESEL_M 0x00000001
  295. #define AM_REG_CLKGEN_CCTRL_CORESEL(n) (((uint32_t)(n) << 0) & 0x00000001)
  296. #define AM_REG_CLKGEN_CCTRL_CORESEL_HFRC 0x00000000
  297. #define AM_REG_CLKGEN_CCTRL_CORESEL_HFRC_DIV2 0x00000001
  298. //*****************************************************************************
  299. //
  300. // CLKGEN_STATUS - Clock Generator Status
  301. //
  302. //*****************************************************************************
  303. // XT Oscillator is enabled but not oscillating
  304. #define AM_REG_CLKGEN_STATUS_OSCF_S 1
  305. #define AM_REG_CLKGEN_STATUS_OSCF_M 0x00000002
  306. #define AM_REG_CLKGEN_STATUS_OSCF(n) (((uint32_t)(n) << 1) & 0x00000002)
  307. // Current RTC oscillator (1 => LFRC, 0 => XT)
  308. #define AM_REG_CLKGEN_STATUS_OMODE_S 0
  309. #define AM_REG_CLKGEN_STATUS_OMODE_M 0x00000001
  310. #define AM_REG_CLKGEN_STATUS_OMODE(n) (((uint32_t)(n) << 0) & 0x00000001)
  311. //*****************************************************************************
  312. //
  313. // CLKGEN_HFADJ - HFRC Adjustment
  314. //
  315. //*****************************************************************************
  316. // Gain control for HFRC adjustment
  317. #define AM_REG_CLKGEN_HFADJ_HFADJ_GAIN_S 21
  318. #define AM_REG_CLKGEN_HFADJ_HFADJ_GAIN_M 0x00E00000
  319. #define AM_REG_CLKGEN_HFADJ_HFADJ_GAIN(n) (((uint32_t)(n) << 21) & 0x00E00000)
  320. #define AM_REG_CLKGEN_HFADJ_HFADJ_GAIN_Gain_of_1 0x00000000
  321. #define AM_REG_CLKGEN_HFADJ_HFADJ_GAIN_Gain_of_1_in_2 0x00200000
  322. #define AM_REG_CLKGEN_HFADJ_HFADJ_GAIN_Gain_of_1_in_4 0x00400000
  323. #define AM_REG_CLKGEN_HFADJ_HFADJ_GAIN_Gain_of_1_in_8 0x00600000
  324. #define AM_REG_CLKGEN_HFADJ_HFADJ_GAIN_Gain_of_1_in_16 0x00800000
  325. #define AM_REG_CLKGEN_HFADJ_HFADJ_GAIN_Gain_of_1_in_32 0x00A00000
  326. // XT warmup period for HFRC adjustment
  327. #define AM_REG_CLKGEN_HFADJ_HFWARMUP_S 20
  328. #define AM_REG_CLKGEN_HFADJ_HFWARMUP_M 0x00100000
  329. #define AM_REG_CLKGEN_HFADJ_HFWARMUP(n) (((uint32_t)(n) << 20) & 0x00100000)
  330. #define AM_REG_CLKGEN_HFADJ_HFWARMUP_1SEC 0x00000000
  331. #define AM_REG_CLKGEN_HFADJ_HFWARMUP_2SEC 0x00100000
  332. // Target HFRC adjustment value.
  333. #define AM_REG_CLKGEN_HFADJ_HFXTADJ_S 8
  334. #define AM_REG_CLKGEN_HFADJ_HFXTADJ_M 0x000FFF00
  335. #define AM_REG_CLKGEN_HFADJ_HFXTADJ(n) (((uint32_t)(n) << 8) & 0x000FFF00)
  336. // Repeat period for HFRC adjustment
  337. #define AM_REG_CLKGEN_HFADJ_HFADJCK_S 1
  338. #define AM_REG_CLKGEN_HFADJ_HFADJCK_M 0x0000000E
  339. #define AM_REG_CLKGEN_HFADJ_HFADJCK(n) (((uint32_t)(n) << 1) & 0x0000000E)
  340. #define AM_REG_CLKGEN_HFADJ_HFADJCK_4SEC 0x00000000
  341. #define AM_REG_CLKGEN_HFADJ_HFADJCK_16SEC 0x00000002
  342. #define AM_REG_CLKGEN_HFADJ_HFADJCK_32SEC 0x00000004
  343. #define AM_REG_CLKGEN_HFADJ_HFADJCK_64SEC 0x00000006
  344. #define AM_REG_CLKGEN_HFADJ_HFADJCK_128SEC 0x00000008
  345. #define AM_REG_CLKGEN_HFADJ_HFADJCK_256SEC 0x0000000A
  346. #define AM_REG_CLKGEN_HFADJ_HFADJCK_512SEC 0x0000000C
  347. #define AM_REG_CLKGEN_HFADJ_HFADJCK_1024SEC 0x0000000E
  348. // HFRC adjustment control
  349. #define AM_REG_CLKGEN_HFADJ_HFADJEN_S 0
  350. #define AM_REG_CLKGEN_HFADJ_HFADJEN_M 0x00000001
  351. #define AM_REG_CLKGEN_HFADJ_HFADJEN(n) (((uint32_t)(n) << 0) & 0x00000001)
  352. #define AM_REG_CLKGEN_HFADJ_HFADJEN_DIS 0x00000000
  353. #define AM_REG_CLKGEN_HFADJ_HFADJEN_EN 0x00000001
  354. //*****************************************************************************
  355. //
  356. // CLKGEN_HFVAL - HFADJ readback
  357. //
  358. //*****************************************************************************
  359. // Current HFTUNE value
  360. #define AM_REG_CLKGEN_HFVAL_HFTUNERB_S 0
  361. #define AM_REG_CLKGEN_HFVAL_HFTUNERB_M 0x000007FF
  362. #define AM_REG_CLKGEN_HFVAL_HFTUNERB(n) (((uint32_t)(n) << 0) & 0x000007FF)
  363. //*****************************************************************************
  364. //
  365. // CLKGEN_CLOCKEN - Clock Enable Status
  366. //
  367. //*****************************************************************************
  368. // Clock enable status
  369. #define AM_REG_CLKGEN_CLOCKEN_CLOCKEN_S 0
  370. #define AM_REG_CLKGEN_CLOCKEN_CLOCKEN_M 0xFFFFFFFF
  371. #define AM_REG_CLKGEN_CLOCKEN_CLOCKEN(n) (((uint32_t)(n) << 0) & 0xFFFFFFFF)
  372. #define AM_REG_CLKGEN_CLOCKEN_CLOCKEN_ADC_CLKEN 0x00000001
  373. #define AM_REG_CLKGEN_CLOCKEN_CLOCKEN_CTIMER_CLKEN 0x00000002
  374. #define AM_REG_CLKGEN_CLOCKEN_CLOCKEN_CTIMER0A_CLKEN 0x00000004
  375. #define AM_REG_CLKGEN_CLOCKEN_CLOCKEN_CTIMER0B_CLKEN 0x00000008
  376. #define AM_REG_CLKGEN_CLOCKEN_CLOCKEN_CTIMER1A_CLKEN 0x00000010
  377. #define AM_REG_CLKGEN_CLOCKEN_CLOCKEN_CTIMER1B_CLKEN 0x00000020
  378. #define AM_REG_CLKGEN_CLOCKEN_CLOCKEN_CTIMER2A_CLKEN 0x00000040
  379. #define AM_REG_CLKGEN_CLOCKEN_CLOCKEN_CTIMER2B_CLKEN 0x00000080
  380. #define AM_REG_CLKGEN_CLOCKEN_CLOCKEN_CTIMER3A_CLKEN 0x00000100
  381. #define AM_REG_CLKGEN_CLOCKEN_CLOCKEN_CTIMER3B_CLKEN 0x00000200
  382. #define AM_REG_CLKGEN_CLOCKEN_CLOCKEN_IOMSTR0_CLKEN 0x00000400
  383. #define AM_REG_CLKGEN_CLOCKEN_CLOCKEN_IOMSTR1_CLKEN 0x00000800
  384. #define AM_REG_CLKGEN_CLOCKEN_CLOCKEN_IOMSTR2_CLKEN 0x00001000
  385. #define AM_REG_CLKGEN_CLOCKEN_CLOCKEN_IOMSTR3_CLKEN 0x00002000
  386. #define AM_REG_CLKGEN_CLOCKEN_CLOCKEN_IOMSTR4_CLKEN 0x00004000
  387. #define AM_REG_CLKGEN_CLOCKEN_CLOCKEN_IOMSTR5_CLKEN 0x00008000
  388. #define AM_REG_CLKGEN_CLOCKEN_CLOCKEN_IOMSTRIFC0_CLKEN 0x00010000
  389. #define AM_REG_CLKGEN_CLOCKEN_CLOCKEN_IOMSTRIFC1_CLKEN 0x00020000
  390. #define AM_REG_CLKGEN_CLOCKEN_CLOCKEN_IOMSTRIFC2_CLKEN 0x00040000
  391. #define AM_REG_CLKGEN_CLOCKEN_CLOCKEN_IOMSTRIFC3_CLKEN 0x00080000
  392. #define AM_REG_CLKGEN_CLOCKEN_CLOCKEN_IOMSTRIFC4_CLKEN 0x00100000
  393. #define AM_REG_CLKGEN_CLOCKEN_CLOCKEN_IOMSTRIFC5_CLKEN 0x00200000
  394. #define AM_REG_CLKGEN_CLOCKEN_CLOCKEN_IOSLAVE_CLKEN 0x00400000
  395. #define AM_REG_CLKGEN_CLOCKEN_CLOCKEN_PDM_CLKEN 0x00800000
  396. #define AM_REG_CLKGEN_CLOCKEN_CLOCKEN_PDMIFC_CLKEN 0x01000000
  397. #define AM_REG_CLKGEN_CLOCKEN_CLOCKEN_RSTGEN_CLKEN 0x02000000
  398. #define AM_REG_CLKGEN_CLOCKEN_CLOCKEN_SRAM_WIPE_CLKEN 0x04000000
  399. #define AM_REG_CLKGEN_CLOCKEN_CLOCKEN_STIMER_CLKEN 0x08000000
  400. #define AM_REG_CLKGEN_CLOCKEN_CLOCKEN_STIMER_CNT_CLKEN 0x10000000
  401. #define AM_REG_CLKGEN_CLOCKEN_CLOCKEN_TPIU_CLKEN 0x20000000
  402. #define AM_REG_CLKGEN_CLOCKEN_CLOCKEN_UART0_HCLK_CLKEN 0x40000000
  403. #define AM_REG_CLKGEN_CLOCKEN_CLOCKEN_UART0HF_CLKEN 0x80000000
  404. //*****************************************************************************
  405. //
  406. // CLKGEN_CLOCKEN2 - Clock Enable Status
  407. //
  408. //*****************************************************************************
  409. // Clock enable status 2
  410. #define AM_REG_CLKGEN_CLOCKEN2_CLOCKEN2_S 0
  411. #define AM_REG_CLKGEN_CLOCKEN2_CLOCKEN2_M 0xFFFFFFFF
  412. #define AM_REG_CLKGEN_CLOCKEN2_CLOCKEN2(n) (((uint32_t)(n) << 0) & 0xFFFFFFFF)
  413. #define AM_REG_CLKGEN_CLOCKEN2_CLOCKEN2_UART1_HCLK_CLKEN 0x00000001
  414. #define AM_REG_CLKGEN_CLOCKEN2_CLOCKEN2_UART1HF_CLKEN 0x00000002
  415. #define AM_REG_CLKGEN_CLOCKEN2_CLOCKEN2_WDT_CLKEN 0x00000004
  416. #define AM_REG_CLKGEN_CLOCKEN2_CLOCKEN2_XT_32KHz_EN 0x40000000
  417. #define AM_REG_CLKGEN_CLOCKEN2_CLOCKEN2_FRCHFRC 0x80000000
  418. //*****************************************************************************
  419. //
  420. // CLKGEN_CLOCKEN3 - Clock Enable Status
  421. //
  422. //*****************************************************************************
  423. // Clock enable status 3
  424. #define AM_REG_CLKGEN_CLOCKEN3_CLOCKEN3_S 0
  425. #define AM_REG_CLKGEN_CLOCKEN3_CLOCKEN3_M 0xFFFFFFFF
  426. #define AM_REG_CLKGEN_CLOCKEN3_CLOCKEN3(n) (((uint32_t)(n) << 0) & 0xFFFFFFFF)
  427. #define AM_REG_CLKGEN_CLOCKEN3_CLOCKEN3_periph_all_xtal_en 0x01000000
  428. #define AM_REG_CLKGEN_CLOCKEN3_CLOCKEN3_periph_all_hfrc_en 0x02000000
  429. #define AM_REG_CLKGEN_CLOCKEN3_CLOCKEN3_HFADJEN 0x04000000
  430. #define AM_REG_CLKGEN_CLOCKEN3_CLOCKEN3_HFRC_en_out 0x08000000
  431. #define AM_REG_CLKGEN_CLOCKEN3_CLOCKEN3_RTC_SOURCE 0x10000000
  432. #define AM_REG_CLKGEN_CLOCKEN3_CLOCKEN3_XTAL_EN 0x20000000
  433. #define AM_REG_CLKGEN_CLOCKEN3_CLOCKEN3_HFRC_EN 0x40000000
  434. #define AM_REG_CLKGEN_CLOCKEN3_CLOCKEN3_FLASHCLK_EN 0x80000000
  435. //*****************************************************************************
  436. //
  437. // CLKGEN_UARTEN - UART Enable
  438. //
  439. //*****************************************************************************
  440. // UART1 system clock control
  441. #define AM_REG_CLKGEN_UARTEN_UART1EN_S 8
  442. #define AM_REG_CLKGEN_UARTEN_UART1EN_M 0x00000300
  443. #define AM_REG_CLKGEN_UARTEN_UART1EN(n) (((uint32_t)(n) << 8) & 0x00000300)
  444. #define AM_REG_CLKGEN_UARTEN_UART1EN_DIS 0x00000000
  445. #define AM_REG_CLKGEN_UARTEN_UART1EN_EN 0x00000100
  446. #define AM_REG_CLKGEN_UARTEN_UART1EN_REDUCE_FREQ 0x00000200
  447. #define AM_REG_CLKGEN_UARTEN_UART1EN_EN_POWER_SAV 0x00000300
  448. // UART0 system clock control
  449. #define AM_REG_CLKGEN_UARTEN_UART0EN_S 0
  450. #define AM_REG_CLKGEN_UARTEN_UART0EN_M 0x00000003
  451. #define AM_REG_CLKGEN_UARTEN_UART0EN(n) (((uint32_t)(n) << 0) & 0x00000003)
  452. #define AM_REG_CLKGEN_UARTEN_UART0EN_DIS 0x00000000
  453. #define AM_REG_CLKGEN_UARTEN_UART0EN_EN 0x00000001
  454. #define AM_REG_CLKGEN_UARTEN_UART0EN_REDUCE_FREQ 0x00000002
  455. #define AM_REG_CLKGEN_UARTEN_UART0EN_EN_POWER_SAV 0x00000003
  456. #endif // AM_REG_CLKGEN_H