tegra234-clock.h 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278
  1. /* SPDX-License-Identifier: GPL-2.0 */
  2. /* Copyright (c) 2018-2022, NVIDIA CORPORATION. All rights reserved. */
  3. #ifndef DT_BINDINGS_CLOCK_TEGRA234_CLOCK_H
  4. #define DT_BINDINGS_CLOCK_TEGRA234_CLOCK_H
  5. /**
  6. * @file
  7. * @defgroup bpmp_clock_ids Clock ID's
  8. * @{
  9. */
  10. /** output of mux controlled by CLK_RST_CONTROLLER_CLK_SOURCE_AHUB */
  11. #define TEGRA234_CLK_AHUB 4U
  12. /** @brief output of gate CLK_ENB_APB2APE */
  13. #define TEGRA234_CLK_APB2APE 5U
  14. /** @brief output of mux controlled by CLK_RST_CONTROLLER_CLK_SOURCE_APE */
  15. #define TEGRA234_CLK_APE 6U
  16. /** @brief output of mux controlled by CLK_RST_CONTROLLER_CLK_SOURCE_AUD_MCLK */
  17. #define TEGRA234_CLK_AUD_MCLK 7U
  18. /** @brief output of mux controlled by CLK_RST_CONTROLLER_CLK_SOURCE_DMIC1 */
  19. #define TEGRA234_CLK_DMIC1 15U
  20. /** @brief output of mux controlled by CLK_RST_CONTROLLER_CLK_SOURCE_DMIC2 */
  21. #define TEGRA234_CLK_DMIC2 16U
  22. /** @brief output of mux controlled by CLK_RST_CONTROLLER_CLK_SOURCE_DMIC3 */
  23. #define TEGRA234_CLK_DMIC3 17U
  24. /** @brief output of mux controlled by CLK_RST_CONTROLLER_CLK_SOURCE_DMIC4 */
  25. #define TEGRA234_CLK_DMIC4 18U
  26. /** @brief output of mux controlled by CLK_RST_CONTROLLER_CLK_SOURCE_DSPK1 */
  27. #define TEGRA234_CLK_DSPK1 29U
  28. /** @brief output of mux controlled by CLK_RST_CONTROLLER_CLK_SOURCE_DSPK2 */
  29. #define TEGRA234_CLK_DSPK2 30U
  30. /**
  31. * @brief controls the EMC clock frequency.
  32. * @details Doing a clk_set_rate on this clock will select the
  33. * appropriate clock source, program the source rate and execute a
  34. * specific sequence to switch to the new clock source for both memory
  35. * controllers. This can be used to control the balance between memory
  36. * throughput and memory controller power.
  37. */
  38. #define TEGRA234_CLK_EMC 31U
  39. /** @brief output of mux controlled by CLK_RST_CONTROLLER_CLK_SOURCE_HOST1X */
  40. #define TEGRA234_CLK_HOST1X 46U
  41. /** @brief output of gate CLK_ENB_FUSE */
  42. #define TEGRA234_CLK_FUSE 40U
  43. /** @brief output of mux controlled by CLK_RST_CONTROLLER_CLK_SOURCE_I2C1 */
  44. #define TEGRA234_CLK_I2C1 48U
  45. /** @brief output of mux controlled by CLK_RST_CONTROLLER_CLK_SOURCE_I2C2 */
  46. #define TEGRA234_CLK_I2C2 49U
  47. /** @brief output of mux controlled by CLK_RST_CONTROLLER_CLK_SOURCE_I2C3 */
  48. #define TEGRA234_CLK_I2C3 50U
  49. /** output of mux controlled by CLK_RST_CONTROLLER_CLK_SOURCE_I2C4 */
  50. #define TEGRA234_CLK_I2C4 51U
  51. /** @brief output of mux controlled by CLK_RST_CONTROLLER_CLK_SOURCE_I2C6 */
  52. #define TEGRA234_CLK_I2C6 52U
  53. /** @brief output of mux controlled by CLK_RST_CONTROLLER_CLK_SOURCE_I2C7 */
  54. #define TEGRA234_CLK_I2C7 53U
  55. /** @brief output of mux controlled by CLK_RST_CONTROLLER_CLK_SOURCE_I2C8 */
  56. #define TEGRA234_CLK_I2C8 54U
  57. /** @brief output of mux controlled by CLK_RST_CONTROLLER_CLK_SOURCE_I2C9 */
  58. #define TEGRA234_CLK_I2C9 55U
  59. /** output of mux controlled by CLK_RST_CONTROLLER_CLK_SOURCE_I2S1 */
  60. #define TEGRA234_CLK_I2S1 56U
  61. /** @brief clock recovered from I2S1 input */
  62. #define TEGRA234_CLK_I2S1_SYNC_INPUT 57U
  63. /** @brief output of mux controlled by CLK_RST_CONTROLLER_CLK_SOURCE_I2S2 */
  64. #define TEGRA234_CLK_I2S2 58U
  65. /** @brief clock recovered from I2S2 input */
  66. #define TEGRA234_CLK_I2S2_SYNC_INPUT 59U
  67. /** @brief output of mux controlled by CLK_RST_CONTROLLER_CLK_SOURCE_I2S3 */
  68. #define TEGRA234_CLK_I2S3 60U
  69. /** @brief clock recovered from I2S3 input */
  70. #define TEGRA234_CLK_I2S3_SYNC_INPUT 61U
  71. /** output of mux controlled by CLK_RST_CONTROLLER_CLK_SOURCE_I2S4 */
  72. #define TEGRA234_CLK_I2S4 62U
  73. /** @brief clock recovered from I2S4 input */
  74. #define TEGRA234_CLK_I2S4_SYNC_INPUT 63U
  75. /** output of mux controlled by CLK_RST_CONTROLLER_CLK_SOURCE_I2S5 */
  76. #define TEGRA234_CLK_I2S5 64U
  77. /** @brief clock recovered from I2S5 input */
  78. #define TEGRA234_CLK_I2S5_SYNC_INPUT 65U
  79. /** @brief output of mux controlled by CLK_RST_CONTROLLER_CLK_SOURCE_I2S6 */
  80. #define TEGRA234_CLK_I2S6 66U
  81. /** @brief clock recovered from I2S6 input */
  82. #define TEGRA234_CLK_I2S6_SYNC_INPUT 67U
  83. /** PLL controlled by CLK_RST_CONTROLLER_PLLA_BASE for use by audio clocks */
  84. #define TEGRA234_CLK_PLLA 93U
  85. /** @brief PLLP clk output */
  86. #define TEGRA234_CLK_PLLP_OUT0 102U
  87. /** @brief output of the divider CLK_RST_CONTROLLER_PLLA_OUT */
  88. #define TEGRA234_CLK_PLLA_OUT0 104U
  89. /** @brief output of mux controlled by CLK_RST_CONTROLLER_CLK_SOURCE_PWM1 */
  90. #define TEGRA234_CLK_PWM1 105U
  91. /** @brief output of mux controlled by CLK_RST_CONTROLLER_CLK_SOURCE_PWM2 */
  92. #define TEGRA234_CLK_PWM2 106U
  93. /** @brief output of mux controlled by CLK_RST_CONTROLLER_CLK_SOURCE_PWM3 */
  94. #define TEGRA234_CLK_PWM3 107U
  95. /** @brief output of mux controlled by CLK_RST_CONTROLLER_CLK_SOURCE_PWM4 */
  96. #define TEGRA234_CLK_PWM4 108U
  97. /** @brief output of mux controlled by CLK_RST_CONTROLLER_CLK_SOURCE_PWM5 */
  98. #define TEGRA234_CLK_PWM5 109U
  99. /** @brief output of mux controlled by CLK_RST_CONTROLLER_CLK_SOURCE_PWM6 */
  100. #define TEGRA234_CLK_PWM6 110U
  101. /** @brief output of mux controlled by CLK_RST_CONTROLLER_CLK_SOURCE_PWM7 */
  102. #define TEGRA234_CLK_PWM7 111U
  103. /** @brief output of mux controlled by CLK_RST_CONTROLLER_CLK_SOURCE_PWM8 */
  104. #define TEGRA234_CLK_PWM8 112U
  105. /** @brief output of mux controlled by CLK_RST_CONTROLLER_CLK_SOURCE_SDMMC4 */
  106. #define TEGRA234_CLK_SDMMC4 123U
  107. /** @brief output of mux controlled by CLK_RST_CONTROLLER_AUDIO_SYNC_CLK_DMIC1 */
  108. #define TEGRA234_CLK_SYNC_DMIC1 139U
  109. /** @brief output of mux controlled by CLK_RST_CONTROLLER_AUDIO_SYNC_CLK_DMIC2 */
  110. #define TEGRA234_CLK_SYNC_DMIC2 140U
  111. /** @brief output of mux controlled by CLK_RST_CONTROLLER_AUDIO_SYNC_CLK_DMIC3 */
  112. #define TEGRA234_CLK_SYNC_DMIC3 141U
  113. /** @brief output of mux controlled by CLK_RST_CONTROLLER_AUDIO_SYNC_CLK_DMIC4 */
  114. #define TEGRA234_CLK_SYNC_DMIC4 142U
  115. /** @brief output of mux controlled by CLK_RST_CONTROLLER_AUDIO_SYNC_CLK_DSPK1 */
  116. #define TEGRA234_CLK_SYNC_DSPK1 143U
  117. /** @brief output of mux controlled by CLK_RST_CONTROLLER_AUDIO_SYNC_CLK_DSPK2 */
  118. #define TEGRA234_CLK_SYNC_DSPK2 144U
  119. /** @brief output of mux controlled by CLK_RST_CONTROLLER_AUDIO_SYNC_CLK_I2S1 */
  120. #define TEGRA234_CLK_SYNC_I2S1 145U
  121. /** @brief output of mux controlled by CLK_RST_CONTROLLER_AUDIO_SYNC_CLK_I2S2 */
  122. #define TEGRA234_CLK_SYNC_I2S2 146U
  123. /** @brief output of mux controlled by CLK_RST_CONTROLLER_AUDIO_SYNC_CLK_I2S3 */
  124. #define TEGRA234_CLK_SYNC_I2S3 147U
  125. /** @brief output of mux controlled by CLK_RST_CONTROLLER_AUDIO_SYNC_CLK_I2S4 */
  126. #define TEGRA234_CLK_SYNC_I2S4 148U
  127. /** @brief output of mux controlled by CLK_RST_CONTROLLER_AUDIO_SYNC_CLK_I2S5 */
  128. #define TEGRA234_CLK_SYNC_I2S5 149U
  129. /** @brief output of mux controlled by CLK_RST_CONTROLLER_AUDIO_SYNC_CLK_I2S6 */
  130. #define TEGRA234_CLK_SYNC_I2S6 150U
  131. /** @brief output of mux controlled by CLK_RST_CONTROLLER_CLK_SOURCE_UARTA */
  132. #define TEGRA234_CLK_UARTA 155U
  133. /** @brief output of gate CLK_ENB_PEX1_CORE_6 */
  134. #define TEGRA234_CLK_PEX1_C6_CORE 161U
  135. /** @brief output of mux controlled by CLK_RST_CONTROLLER_CLK_SOURCE_VIC */
  136. #define TEGRA234_CLK_VIC 167U
  137. /** @brief output of gate CLK_ENB_PEX2_CORE_7 */
  138. #define TEGRA234_CLK_PEX2_C7_CORE 171U
  139. /** @brief output of gate CLK_ENB_PEX2_CORE_8 */
  140. #define TEGRA234_CLK_PEX2_C8_CORE 172U
  141. /** @brief output of gate CLK_ENB_PEX2_CORE_9 */
  142. #define TEGRA234_CLK_PEX2_C9_CORE 173U
  143. /** @brief output of gate CLK_ENB_PEX2_CORE_10 */
  144. #define TEGRA234_CLK_PEX2_C10_CORE 187U
  145. /** @brief CLK_RST_CONTROLLER_CLK_SOURCE_QSPI0 switch divider output */
  146. #define TEGRA234_CLK_QSPI0_2X_PM 192U
  147. /** @brief CLK_RST_CONTROLLER_CLK_SOURCE_QSPI1 switch divider output */
  148. #define TEGRA234_CLK_QSPI1_2X_PM 193U
  149. /** @brief output of the divider QSPI_CLK_DIV2_SEL in CLK_RST_CONTROLLER_CLK_SOURCE_QSPI0 */
  150. #define TEGRA234_CLK_QSPI0_PM 194U
  151. /** @brief output of the divider QSPI_CLK_DIV2_SEL in CLK_RST_CONTROLLER_CLK_SOURCE_QSPI1 */
  152. #define TEGRA234_CLK_QSPI1_PM 195U
  153. /** @brief CLK_RST_CONTROLLER_CLK_SOURCE_SDMMC_LEGACY_TM switch divider output */
  154. #define TEGRA234_CLK_SDMMC_LEGACY_TM 219U
  155. /** @brief output of gate CLK_ENB_PEX0_CORE_0 */
  156. #define TEGRA234_CLK_PEX0_C0_CORE 220U
  157. /** @brief output of gate CLK_ENB_PEX0_CORE_1 */
  158. #define TEGRA234_CLK_PEX0_C1_CORE 221U
  159. /** @brief output of gate CLK_ENB_PEX0_CORE_2 */
  160. #define TEGRA234_CLK_PEX0_C2_CORE 222U
  161. /** @brief output of gate CLK_ENB_PEX0_CORE_3 */
  162. #define TEGRA234_CLK_PEX0_C3_CORE 223U
  163. /** @brief output of gate CLK_ENB_PEX0_CORE_4 */
  164. #define TEGRA234_CLK_PEX0_C4_CORE 224U
  165. /** @brief output of gate CLK_ENB_PEX1_CORE_5 */
  166. #define TEGRA234_CLK_PEX1_C5_CORE 225U
  167. /** @brief PLL controlled by CLK_RST_CONTROLLER_PLLC4_BASE */
  168. #define TEGRA234_CLK_PLLC4 237U
  169. /** @brief RX clock recovered from MGBE0 lane input */
  170. #define TEGRA234_CLK_MGBE0_RX_INPUT 248U
  171. /** @brief RX clock recovered from MGBE1 lane input */
  172. #define TEGRA234_CLK_MGBE1_RX_INPUT 249U
  173. /** @brief RX clock recovered from MGBE2 lane input */
  174. #define TEGRA234_CLK_MGBE2_RX_INPUT 250U
  175. /** @brief RX clock recovered from MGBE3 lane input */
  176. #define TEGRA234_CLK_MGBE3_RX_INPUT 251U
  177. /** @brief 32K input clock provided by PMIC */
  178. #define TEGRA234_CLK_CLK_32K 289U
  179. /** @brief Monitored branch of MBGE0 RX input clock */
  180. #define TEGRA234_CLK_MGBE0_RX_INPUT_M 357U
  181. /** @brief Monitored branch of MBGE1 RX input clock */
  182. #define TEGRA234_CLK_MGBE1_RX_INPUT_M 358U
  183. /** @brief Monitored branch of MBGE2 RX input clock */
  184. #define TEGRA234_CLK_MGBE2_RX_INPUT_M 359U
  185. /** @brief Monitored branch of MBGE3 RX input clock */
  186. #define TEGRA234_CLK_MGBE3_RX_INPUT_M 360U
  187. /** @brief Monitored branch of MGBE0 RX PCS mux output */
  188. #define TEGRA234_CLK_MGBE0_RX_PCS_M 361U
  189. /** @brief Monitored branch of MGBE1 RX PCS mux output */
  190. #define TEGRA234_CLK_MGBE1_RX_PCS_M 362U
  191. /** @brief Monitored branch of MGBE2 RX PCS mux output */
  192. #define TEGRA234_CLK_MGBE2_RX_PCS_M 363U
  193. /** @brief Monitored branch of MGBE3 RX PCS mux output */
  194. #define TEGRA234_CLK_MGBE3_RX_PCS_M 364U
  195. /** @brief RX PCS clock recovered from MGBE0 lane input */
  196. #define TEGRA234_CLK_MGBE0_RX_PCS_INPUT 369U
  197. /** @brief RX PCS clock recovered from MGBE1 lane input */
  198. #define TEGRA234_CLK_MGBE1_RX_PCS_INPUT 370U
  199. /** @brief RX PCS clock recovered from MGBE2 lane input */
  200. #define TEGRA234_CLK_MGBE2_RX_PCS_INPUT 371U
  201. /** @brief RX PCS clock recovered from MGBE3 lane input */
  202. #define TEGRA234_CLK_MGBE3_RX_PCS_INPUT 372U
  203. /** @brief output of mux controlled by GBE_UPHY_MGBE0_RX_PCS_CLK_SRC_SEL */
  204. #define TEGRA234_CLK_MGBE0_RX_PCS 373U
  205. /** @brief GBE_UPHY_MGBE0_TX_CLK divider gated output */
  206. #define TEGRA234_CLK_MGBE0_TX 374U
  207. /** @brief GBE_UPHY_MGBE0_TX_PCS_CLK divider gated output */
  208. #define TEGRA234_CLK_MGBE0_TX_PCS 375U
  209. /** @brief GBE_UPHY_MGBE0_MAC_CLK divider output */
  210. #define TEGRA234_CLK_MGBE0_MAC_DIVIDER 376U
  211. /** @brief GBE_UPHY_MGBE0_MAC_CLK gate output */
  212. #define TEGRA234_CLK_MGBE0_MAC 377U
  213. /** @brief GBE_UPHY_MGBE0_MACSEC_CLK gate output */
  214. #define TEGRA234_CLK_MGBE0_MACSEC 378U
  215. /** @brief GBE_UPHY_MGBE0_EEE_PCS_CLK gate output */
  216. #define TEGRA234_CLK_MGBE0_EEE_PCS 379U
  217. /** @brief GBE_UPHY_MGBE0_APP_CLK gate output */
  218. #define TEGRA234_CLK_MGBE0_APP 380U
  219. /** @brief GBE_UPHY_MGBE0_PTP_REF_CLK divider gated output */
  220. #define TEGRA234_CLK_MGBE0_PTP_REF 381U
  221. /** @brief output of mux controlled by GBE_UPHY_MGBE1_RX_PCS_CLK_SRC_SEL */
  222. #define TEGRA234_CLK_MGBE1_RX_PCS 382U
  223. /** @brief GBE_UPHY_MGBE1_TX_CLK divider gated output */
  224. #define TEGRA234_CLK_MGBE1_TX 383U
  225. /** @brief GBE_UPHY_MGBE1_TX_PCS_CLK divider gated output */
  226. #define TEGRA234_CLK_MGBE1_TX_PCS 384U
  227. /** @brief GBE_UPHY_MGBE1_MAC_CLK divider output */
  228. #define TEGRA234_CLK_MGBE1_MAC_DIVIDER 385U
  229. /** @brief GBE_UPHY_MGBE1_MAC_CLK gate output */
  230. #define TEGRA234_CLK_MGBE1_MAC 386U
  231. /** @brief GBE_UPHY_MGBE1_EEE_PCS_CLK gate output */
  232. #define TEGRA234_CLK_MGBE1_EEE_PCS 388U
  233. /** @brief GBE_UPHY_MGBE1_APP_CLK gate output */
  234. #define TEGRA234_CLK_MGBE1_APP 389U
  235. /** @brief GBE_UPHY_MGBE1_PTP_REF_CLK divider gated output */
  236. #define TEGRA234_CLK_MGBE1_PTP_REF 390U
  237. /** @brief output of mux controlled by GBE_UPHY_MGBE2_RX_PCS_CLK_SRC_SEL */
  238. #define TEGRA234_CLK_MGBE2_RX_PCS 391U
  239. /** @brief GBE_UPHY_MGBE2_TX_CLK divider gated output */
  240. #define TEGRA234_CLK_MGBE2_TX 392U
  241. /** @brief GBE_UPHY_MGBE2_TX_PCS_CLK divider gated output */
  242. #define TEGRA234_CLK_MGBE2_TX_PCS 393U
  243. /** @brief GBE_UPHY_MGBE2_MAC_CLK divider output */
  244. #define TEGRA234_CLK_MGBE2_MAC_DIVIDER 394U
  245. /** @brief GBE_UPHY_MGBE2_MAC_CLK gate output */
  246. #define TEGRA234_CLK_MGBE2_MAC 395U
  247. /** @brief GBE_UPHY_MGBE2_EEE_PCS_CLK gate output */
  248. #define TEGRA234_CLK_MGBE2_EEE_PCS 397U
  249. /** @brief GBE_UPHY_MGBE2_APP_CLK gate output */
  250. #define TEGRA234_CLK_MGBE2_APP 398U
  251. /** @brief GBE_UPHY_MGBE2_PTP_REF_CLK divider gated output */
  252. #define TEGRA234_CLK_MGBE2_PTP_REF 399U
  253. /** @brief output of mux controlled by GBE_UPHY_MGBE3_RX_PCS_CLK_SRC_SEL */
  254. #define TEGRA234_CLK_MGBE3_RX_PCS 400U
  255. /** @brief GBE_UPHY_MGBE3_TX_CLK divider gated output */
  256. #define TEGRA234_CLK_MGBE3_TX 401U
  257. /** @brief GBE_UPHY_MGBE3_TX_PCS_CLK divider gated output */
  258. #define TEGRA234_CLK_MGBE3_TX_PCS 402U
  259. /** @brief GBE_UPHY_MGBE3_MAC_CLK divider output */
  260. #define TEGRA234_CLK_MGBE3_MAC_DIVIDER 403U
  261. /** @brief GBE_UPHY_MGBE3_MAC_CLK gate output */
  262. #define TEGRA234_CLK_MGBE3_MAC 404U
  263. /** @brief GBE_UPHY_MGBE3_MACSEC_CLK gate output */
  264. #define TEGRA234_CLK_MGBE3_MACSEC 405U
  265. /** @brief GBE_UPHY_MGBE3_EEE_PCS_CLK gate output */
  266. #define TEGRA234_CLK_MGBE3_EEE_PCS 406U
  267. /** @brief GBE_UPHY_MGBE3_APP_CLK gate output */
  268. #define TEGRA234_CLK_MGBE3_APP 407U
  269. /** @brief GBE_UPHY_MGBE3_PTP_REF_CLK divider gated output */
  270. #define TEGRA234_CLK_MGBE3_PTP_REF 408U
  271. /** @brief CLK_RST_CONTROLLER_AZA2XBITCLK_OUT_SWITCH_DIVIDER switch divider output (aza_2xbitclk) */
  272. #define TEGRA234_CLK_AZA_2XBIT 457U
  273. /** @brief aza_2xbitclk / 2 (aza_bitclk) */
  274. #define TEGRA234_CLK_AZA_BIT 458U
  275. #endif