powerdomains.h 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. /*
  2. * OMAP2/3 common powerdomain definitions
  3. *
  4. * Copyright (C) 2007-2008 Texas Instruments, Inc.
  5. * Copyright (C) 2007-2009 Nokia Corporation
  6. *
  7. * Written by Paul Walmsley
  8. * Debugging and integration fixes by Jouni Högander
  9. *
  10. * This program is free software; you can redistribute it and/or modify
  11. * it under the terms of the GNU General Public License version 2 as
  12. * published by the Free Software Foundation.
  13. */
  14. /*
  15. * To Do List
  16. * -> Move the Sleep/Wakeup dependencies from Power Domain framework to
  17. * Clock Domain Framework
  18. */
  19. #ifndef ARCH_ARM_MACH_OMAP2_POWERDOMAINS
  20. #define ARCH_ARM_MACH_OMAP2_POWERDOMAINS
  21. /*
  22. * This file contains all of the powerdomains that have some element
  23. * of software control for the OMAP24xx and OMAP34xx chips.
  24. *
  25. * This is not an exhaustive listing of powerdomains on the chips; only
  26. * powerdomains that can be controlled in software.
  27. */
  28. /*
  29. * The names for the DSP/IVA2 powerdomains are confusing.
  30. *
  31. * Most OMAP chips have an on-board DSP.
  32. *
  33. * On the 2420, this is a 'C55 DSP called, simply, the DSP. Its
  34. * powerdomain is called the "DSP power domain." On the 2430, the
  35. * on-board DSP is a 'C64 DSP, now called (along with its hardware
  36. * accelerators) the IVA2 or IVA2.1. Its powerdomain is still called
  37. * the "DSP power domain." On the 3430, the DSP is a 'C64 DSP like the
  38. * 2430, also known as the IVA2; but its powerdomain is now called the
  39. * "IVA2 power domain."
  40. *
  41. * The 2420 also has something called the IVA, which is a separate ARM
  42. * core, and has nothing to do with the DSP/IVA2.
  43. *
  44. * Ideally the DSP/IVA2 could just be the same powerdomain, but the PRCM
  45. * address offset is different between the C55 and C64 DSPs.
  46. */
  47. #include <plat/powerdomain.h>
  48. #include "prcm-common.h"
  49. #include "prm.h"
  50. #include "cm.h"
  51. #include "powerdomains24xx.h"
  52. #include "powerdomains34xx.h"
  53. #include "powerdomains44xx.h"
  54. /* OMAP2/3-common powerdomains */
  55. #if defined(CONFIG_ARCH_OMAP2) || defined(CONFIG_ARCH_OMAP3)
  56. /*
  57. * The GFX powerdomain is not present on 3430ES2, but currently we do not
  58. * have a macro to filter it out at compile-time.
  59. */
  60. static struct powerdomain gfx_omap2_pwrdm = {
  61. .name = "gfx_pwrdm",
  62. .prcm_offs = GFX_MOD,
  63. .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP24XX |
  64. CHIP_IS_OMAP3430ES1),
  65. .pwrsts = PWRSTS_OFF_RET_ON,
  66. .pwrsts_logic_ret = PWRDM_POWER_RET,
  67. .banks = 1,
  68. .pwrsts_mem_ret = {
  69. [0] = PWRDM_POWER_RET, /* MEMRETSTATE */
  70. },
  71. .pwrsts_mem_on = {
  72. [0] = PWRDM_POWER_ON, /* MEMONSTATE */
  73. },
  74. };
  75. static struct powerdomain wkup_omap2_pwrdm = {
  76. .name = "wkup_pwrdm",
  77. .prcm_offs = WKUP_MOD,
  78. .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP24XX | CHIP_IS_OMAP3430),
  79. };
  80. #endif
  81. /* As powerdomains are added or removed above, this list must also be changed */
  82. static struct powerdomain *powerdomains_omap[] __initdata = {
  83. #if defined(CONFIG_ARCH_OMAP2) || defined(CONFIG_ARCH_OMAP3)
  84. &wkup_omap2_pwrdm,
  85. &gfx_omap2_pwrdm,
  86. #endif
  87. #ifdef CONFIG_ARCH_OMAP2
  88. &dsp_pwrdm,
  89. &mpu_24xx_pwrdm,
  90. &core_24xx_pwrdm,
  91. #endif
  92. #ifdef CONFIG_ARCH_OMAP2430
  93. &mdm_pwrdm,
  94. #endif
  95. #ifdef CONFIG_ARCH_OMAP3
  96. &iva2_pwrdm,
  97. &mpu_3xxx_pwrdm,
  98. &neon_pwrdm,
  99. &core_3xxx_pre_es3_1_pwrdm,
  100. &core_3xxx_es3_1_pwrdm,
  101. &cam_pwrdm,
  102. &dss_pwrdm,
  103. &per_pwrdm,
  104. &emu_pwrdm,
  105. &sgx_pwrdm,
  106. &usbhost_pwrdm,
  107. &dpll1_pwrdm,
  108. &dpll2_pwrdm,
  109. &dpll3_pwrdm,
  110. &dpll4_pwrdm,
  111. &dpll5_pwrdm,
  112. #endif
  113. #ifdef CONFIG_ARCH_OMAP4
  114. &core_44xx_pwrdm,
  115. &gfx_44xx_pwrdm,
  116. &abe_44xx_pwrdm,
  117. &dss_44xx_pwrdm,
  118. &tesla_44xx_pwrdm,
  119. &wkup_44xx_pwrdm,
  120. &cpu0_44xx_pwrdm,
  121. &cpu1_44xx_pwrdm,
  122. &emu_44xx_pwrdm,
  123. &mpu_44xx_pwrdm,
  124. &ivahd_44xx_pwrdm,
  125. &cam_44xx_pwrdm,
  126. &l3init_44xx_pwrdm,
  127. &l4per_44xx_pwrdm,
  128. &always_on_core_44xx_pwrdm,
  129. &cefuse_44xx_pwrdm,
  130. #endif
  131. NULL
  132. };
  133. #endif