am_reg_clkgen.h 25 KB

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