clockdomains44xx_data.c 8.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284
  1. /*
  2. * OMAP4 Clock domains framework
  3. *
  4. * Copyright (C) 2009 Texas Instruments, Inc.
  5. * Copyright (C) 2009 Nokia Corporation
  6. *
  7. * Abhijit Pagare (abhijitpagare@ti.com)
  8. * Benoit Cousson (b-cousson@ti.com)
  9. *
  10. * This file is automatically generated from the OMAP hardware databases.
  11. * We respectfully ask that any modifications to this file be coordinated
  12. * with the public linux-omap@vger.kernel.org mailing list and the
  13. * authors above to ensure that the autogeneration scripts are kept
  14. * up-to-date with the file contents.
  15. *
  16. * This program is free software; you can redistribute it and/or modify
  17. * it under the terms of the GNU General Public License version 2 as
  18. * published by the Free Software Foundation.
  19. */
  20. /*
  21. * To-Do List
  22. * -> Populate the Sleep/Wakeup dependencies for the domains
  23. */
  24. #include <linux/kernel.h>
  25. #include <linux/io.h>
  26. #include <plat/clockdomain.h>
  27. #include "cm1_44xx.h"
  28. #include "cm2_44xx.h"
  29. #include "cm-regbits-44xx.h"
  30. #include "prm44xx.h"
  31. #include "prcm_mpu44xx.h"
  32. static struct clockdomain l4_cefuse_44xx_clkdm = {
  33. .name = "l4_cefuse_clkdm",
  34. .pwrdm = { .name = "cefuse_pwrdm" },
  35. .clkstctrl_reg = OMAP4430_CM_CEFUSE_CLKSTCTRL,
  36. .clktrctrl_mask = OMAP4430_CLKTRCTRL_MASK,
  37. .flags = CLKDM_CAN_FORCE_WAKEUP | CLKDM_CAN_HWSUP,
  38. .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
  39. };
  40. static struct clockdomain l4_cfg_44xx_clkdm = {
  41. .name = "l4_cfg_clkdm",
  42. .pwrdm = { .name = "core_pwrdm" },
  43. .clkstctrl_reg = OMAP4430_CM_L4CFG_CLKSTCTRL,
  44. .clktrctrl_mask = OMAP4430_CLKTRCTRL_MASK,
  45. .flags = CLKDM_CAN_HWSUP,
  46. .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
  47. };
  48. static struct clockdomain tesla_44xx_clkdm = {
  49. .name = "tesla_clkdm",
  50. .pwrdm = { .name = "tesla_pwrdm" },
  51. .clkstctrl_reg = OMAP4430_CM_TESLA_CLKSTCTRL,
  52. .clktrctrl_mask = OMAP4430_CLKTRCTRL_MASK,
  53. .flags = CLKDM_CAN_HWSUP_SWSUP,
  54. .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
  55. };
  56. static struct clockdomain l3_gfx_44xx_clkdm = {
  57. .name = "l3_gfx_clkdm",
  58. .pwrdm = { .name = "gfx_pwrdm" },
  59. .clkstctrl_reg = OMAP4430_CM_GFX_CLKSTCTRL,
  60. .clktrctrl_mask = OMAP4430_CLKTRCTRL_MASK,
  61. .flags = CLKDM_CAN_HWSUP_SWSUP,
  62. .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
  63. };
  64. static struct clockdomain ivahd_44xx_clkdm = {
  65. .name = "ivahd_clkdm",
  66. .pwrdm = { .name = "ivahd_pwrdm" },
  67. .clkstctrl_reg = OMAP4430_CM_IVAHD_CLKSTCTRL,
  68. .clktrctrl_mask = OMAP4430_CLKTRCTRL_MASK,
  69. .flags = CLKDM_CAN_HWSUP_SWSUP,
  70. .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
  71. };
  72. static struct clockdomain l4_secure_44xx_clkdm = {
  73. .name = "l4_secure_clkdm",
  74. .pwrdm = { .name = "l4per_pwrdm" },
  75. .clkstctrl_reg = OMAP4430_CM_L4SEC_CLKSTCTRL,
  76. .clktrctrl_mask = OMAP4430_CLKTRCTRL_MASK,
  77. .flags = CLKDM_CAN_HWSUP_SWSUP,
  78. .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
  79. };
  80. static struct clockdomain l4_per_44xx_clkdm = {
  81. .name = "l4_per_clkdm",
  82. .pwrdm = { .name = "l4per_pwrdm" },
  83. .clkstctrl_reg = OMAP4430_CM_L4PER_CLKSTCTRL,
  84. .clktrctrl_mask = OMAP4430_CLKTRCTRL_MASK,
  85. .flags = CLKDM_CAN_HWSUP_SWSUP,
  86. .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
  87. };
  88. static struct clockdomain abe_44xx_clkdm = {
  89. .name = "abe_clkdm",
  90. .pwrdm = { .name = "abe_pwrdm" },
  91. .clkstctrl_reg = OMAP4430_CM1_ABE_CLKSTCTRL,
  92. .clktrctrl_mask = OMAP4430_CLKTRCTRL_MASK,
  93. .flags = CLKDM_CAN_HWSUP_SWSUP,
  94. .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
  95. };
  96. static struct clockdomain l3_instr_44xx_clkdm = {
  97. .name = "l3_instr_clkdm",
  98. .pwrdm = { .name = "core_pwrdm" },
  99. .clkstctrl_reg = OMAP4430_CM_L3INSTR_CLKSTCTRL,
  100. .clktrctrl_mask = OMAP4430_CLKTRCTRL_MASK,
  101. .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
  102. };
  103. static struct clockdomain l3_init_44xx_clkdm = {
  104. .name = "l3_init_clkdm",
  105. .pwrdm = { .name = "l3init_pwrdm" },
  106. .clkstctrl_reg = OMAP4430_CM_L3INIT_CLKSTCTRL,
  107. .clktrctrl_mask = OMAP4430_CLKTRCTRL_MASK,
  108. .flags = CLKDM_CAN_HWSUP_SWSUP,
  109. .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
  110. };
  111. static struct clockdomain mpuss_44xx_clkdm = {
  112. .name = "mpuss_clkdm",
  113. .pwrdm = { .name = "mpu_pwrdm" },
  114. .clkstctrl_reg = OMAP4430_CM_MPU_CLKSTCTRL,
  115. .clktrctrl_mask = OMAP4430_CLKTRCTRL_MASK,
  116. .flags = CLKDM_CAN_FORCE_WAKEUP | CLKDM_CAN_HWSUP,
  117. .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
  118. };
  119. static struct clockdomain mpu0_44xx_clkdm = {
  120. .name = "mpu0_clkdm",
  121. .pwrdm = { .name = "cpu0_pwrdm" },
  122. .clkstctrl_reg = OMAP4430_CM_CPU0_CLKSTCTRL,
  123. .clktrctrl_mask = OMAP4430_CLKTRCTRL_MASK,
  124. .flags = CLKDM_CAN_FORCE_WAKEUP | CLKDM_CAN_HWSUP,
  125. .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
  126. };
  127. static struct clockdomain mpu1_44xx_clkdm = {
  128. .name = "mpu1_clkdm",
  129. .pwrdm = { .name = "cpu1_pwrdm" },
  130. .clkstctrl_reg = OMAP4430_CM_CPU1_CLKSTCTRL,
  131. .clktrctrl_mask = OMAP4430_CLKTRCTRL_MASK,
  132. .flags = CLKDM_CAN_FORCE_WAKEUP | CLKDM_CAN_HWSUP,
  133. .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
  134. };
  135. static struct clockdomain l3_emif_44xx_clkdm = {
  136. .name = "l3_emif_clkdm",
  137. .pwrdm = { .name = "core_pwrdm" },
  138. .clkstctrl_reg = OMAP4430_CM_MEMIF_CLKSTCTRL,
  139. .clktrctrl_mask = OMAP4430_CLKTRCTRL_MASK,
  140. .flags = CLKDM_CAN_FORCE_WAKEUP | CLKDM_CAN_HWSUP,
  141. .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
  142. };
  143. static struct clockdomain l4_ao_44xx_clkdm = {
  144. .name = "l4_ao_clkdm",
  145. .pwrdm = { .name = "always_on_core_pwrdm" },
  146. .clkstctrl_reg = OMAP4430_CM_ALWON_CLKSTCTRL,
  147. .clktrctrl_mask = OMAP4430_CLKTRCTRL_MASK,
  148. .flags = CLKDM_CAN_FORCE_WAKEUP | CLKDM_CAN_HWSUP,
  149. .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
  150. };
  151. static struct clockdomain ducati_44xx_clkdm = {
  152. .name = "ducati_clkdm",
  153. .pwrdm = { .name = "core_pwrdm" },
  154. .clkstctrl_reg = OMAP4430_CM_DUCATI_CLKSTCTRL,
  155. .clktrctrl_mask = OMAP4430_CLKTRCTRL_MASK,
  156. .flags = CLKDM_CAN_HWSUP_SWSUP,
  157. .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
  158. };
  159. static struct clockdomain l3_2_44xx_clkdm = {
  160. .name = "l3_2_clkdm",
  161. .pwrdm = { .name = "core_pwrdm" },
  162. .clkstctrl_reg = OMAP4430_CM_L3_2_CLKSTCTRL,
  163. .clktrctrl_mask = OMAP4430_CLKTRCTRL_MASK,
  164. .flags = CLKDM_CAN_HWSUP,
  165. .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
  166. };
  167. static struct clockdomain l3_1_44xx_clkdm = {
  168. .name = "l3_1_clkdm",
  169. .pwrdm = { .name = "core_pwrdm" },
  170. .clkstctrl_reg = OMAP4430_CM_L3_1_CLKSTCTRL,
  171. .clktrctrl_mask = OMAP4430_CLKTRCTRL_MASK,
  172. .flags = CLKDM_CAN_HWSUP,
  173. .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
  174. };
  175. static struct clockdomain l3_d2d_44xx_clkdm = {
  176. .name = "l3_d2d_clkdm",
  177. .pwrdm = { .name = "core_pwrdm" },
  178. .clkstctrl_reg = OMAP4430_CM_D2D_CLKSTCTRL,
  179. .clktrctrl_mask = OMAP4430_CLKTRCTRL_MASK,
  180. .flags = CLKDM_CAN_FORCE_WAKEUP | CLKDM_CAN_HWSUP,
  181. .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
  182. };
  183. static struct clockdomain iss_44xx_clkdm = {
  184. .name = "iss_clkdm",
  185. .pwrdm = { .name = "cam_pwrdm" },
  186. .clkstctrl_reg = OMAP4430_CM_CAM_CLKSTCTRL,
  187. .clktrctrl_mask = OMAP4430_CLKTRCTRL_MASK,
  188. .flags = CLKDM_CAN_HWSUP_SWSUP,
  189. .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
  190. };
  191. static struct clockdomain l3_dss_44xx_clkdm = {
  192. .name = "l3_dss_clkdm",
  193. .pwrdm = { .name = "dss_pwrdm" },
  194. .clkstctrl_reg = OMAP4430_CM_DSS_CLKSTCTRL,
  195. .clktrctrl_mask = OMAP4430_CLKTRCTRL_MASK,
  196. .flags = CLKDM_CAN_HWSUP_SWSUP,
  197. .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
  198. };
  199. static struct clockdomain l4_wkup_44xx_clkdm = {
  200. .name = "l4_wkup_clkdm",
  201. .pwrdm = { .name = "wkup_pwrdm" },
  202. .clkstctrl_reg = OMAP4430_CM_WKUP_CLKSTCTRL,
  203. .clktrctrl_mask = OMAP4430_CLKTRCTRL_MASK,
  204. .flags = CLKDM_CAN_HWSUP,
  205. .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
  206. };
  207. static struct clockdomain emu_sys_44xx_clkdm = {
  208. .name = "emu_sys_clkdm",
  209. .pwrdm = { .name = "emu_pwrdm" },
  210. .clkstctrl_reg = OMAP4430_CM_EMU_CLKSTCTRL,
  211. .clktrctrl_mask = OMAP4430_CLKTRCTRL_MASK,
  212. .flags = CLKDM_CAN_HWSUP,
  213. .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
  214. };
  215. static struct clockdomain l3_dma_44xx_clkdm = {
  216. .name = "l3_dma_clkdm",
  217. .pwrdm = { .name = "core_pwrdm" },
  218. .clkstctrl_reg = OMAP4430_CM_SDMA_CLKSTCTRL,
  219. .clktrctrl_mask = OMAP4430_CLKTRCTRL_MASK,
  220. .flags = CLKDM_CAN_FORCE_WAKEUP | CLKDM_CAN_HWSUP,
  221. .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
  222. };
  223. static struct clockdomain *clockdomains_omap44xx[] __initdata = {
  224. &l4_cefuse_44xx_clkdm,
  225. &l4_cfg_44xx_clkdm,
  226. &tesla_44xx_clkdm,
  227. &l3_gfx_44xx_clkdm,
  228. &ivahd_44xx_clkdm,
  229. &l4_secure_44xx_clkdm,
  230. &l4_per_44xx_clkdm,
  231. &abe_44xx_clkdm,
  232. &l3_instr_44xx_clkdm,
  233. &l3_init_44xx_clkdm,
  234. &mpuss_44xx_clkdm,
  235. &mpu0_44xx_clkdm,
  236. &mpu1_44xx_clkdm,
  237. &l3_emif_44xx_clkdm,
  238. &l4_ao_44xx_clkdm,
  239. &ducati_44xx_clkdm,
  240. &l3_2_44xx_clkdm,
  241. &l3_1_44xx_clkdm,
  242. &l3_d2d_44xx_clkdm,
  243. &iss_44xx_clkdm,
  244. &l3_dss_44xx_clkdm,
  245. &l4_wkup_44xx_clkdm,
  246. &emu_sys_44xx_clkdm,
  247. &l3_dma_44xx_clkdm,
  248. NULL,
  249. };
  250. void __init omap44xx_clockdomains_init(void)
  251. {
  252. clkdm_init(clockdomains_omap44xx, NULL);
  253. }