powerdomains24xx.h 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. /*
  2. * OMAP24XX 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. #ifndef ARCH_ARM_MACH_OMAP2_POWERDOMAINS24XX
  15. #define ARCH_ARM_MACH_OMAP2_POWERDOMAINS24XX
  16. /*
  17. * N.B. If powerdomains are added or removed from this file, update
  18. * the array in mach-omap2/powerdomains.h.
  19. */
  20. #include <plat/powerdomain.h>
  21. #include "prcm-common.h"
  22. #include "prm.h"
  23. #include "prm-regbits-24xx.h"
  24. #include "cm.h"
  25. #include "cm-regbits-24xx.h"
  26. /* 24XX powerdomains and dependencies */
  27. #ifdef CONFIG_ARCH_OMAP2
  28. /* Powerdomains */
  29. static struct powerdomain dsp_pwrdm = {
  30. .name = "dsp_pwrdm",
  31. .prcm_offs = OMAP24XX_DSP_MOD,
  32. .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP24XX),
  33. .pwrsts = PWRSTS_OFF_RET_ON,
  34. .pwrsts_logic_ret = PWRDM_POWER_RET,
  35. .banks = 1,
  36. .pwrsts_mem_ret = {
  37. [0] = PWRDM_POWER_RET,
  38. },
  39. .pwrsts_mem_on = {
  40. [0] = PWRDM_POWER_ON,
  41. },
  42. };
  43. static struct powerdomain mpu_24xx_pwrdm = {
  44. .name = "mpu_pwrdm",
  45. .prcm_offs = MPU_MOD,
  46. .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP24XX),
  47. .pwrsts = PWRSTS_OFF_RET_ON,
  48. .pwrsts_logic_ret = PWRSTS_OFF_RET,
  49. .banks = 1,
  50. .pwrsts_mem_ret = {
  51. [0] = PWRDM_POWER_RET,
  52. },
  53. .pwrsts_mem_on = {
  54. [0] = PWRDM_POWER_ON,
  55. },
  56. };
  57. static struct powerdomain core_24xx_pwrdm = {
  58. .name = "core_pwrdm",
  59. .prcm_offs = CORE_MOD,
  60. .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP24XX),
  61. .pwrsts = PWRSTS_OFF_RET_ON,
  62. .banks = 3,
  63. .pwrsts_mem_ret = {
  64. [0] = PWRSTS_OFF_RET, /* MEM1RETSTATE */
  65. [1] = PWRSTS_OFF_RET, /* MEM2RETSTATE */
  66. [2] = PWRSTS_OFF_RET, /* MEM3RETSTATE */
  67. },
  68. .pwrsts_mem_on = {
  69. [0] = PWRSTS_OFF_RET_ON, /* MEM1ONSTATE */
  70. [1] = PWRSTS_OFF_RET_ON, /* MEM2ONSTATE */
  71. [2] = PWRSTS_OFF_RET_ON, /* MEM3ONSTATE */
  72. },
  73. };
  74. #endif /* CONFIG_ARCH_OMAP2 */
  75. /*
  76. * 2430-specific powerdomains
  77. */
  78. #ifdef CONFIG_ARCH_OMAP2430
  79. /* XXX 2430 KILLDOMAINWKUP bit? No current users apparently */
  80. static struct powerdomain mdm_pwrdm = {
  81. .name = "mdm_pwrdm",
  82. .prcm_offs = OMAP2430_MDM_MOD,
  83. .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2430),
  84. .pwrsts = PWRSTS_OFF_RET_ON,
  85. .pwrsts_logic_ret = PWRDM_POWER_RET,
  86. .banks = 1,
  87. .pwrsts_mem_ret = {
  88. [0] = PWRDM_POWER_RET, /* MEMRETSTATE */
  89. },
  90. .pwrsts_mem_on = {
  91. [0] = PWRDM_POWER_ON, /* MEMONSTATE */
  92. },
  93. };
  94. #endif /* CONFIG_ARCH_OMAP2430 */
  95. #endif