16e01478aSPaul Walmsley /* 26e01478aSPaul Walmsley * OMAP4 Power domains framework 36e01478aSPaul Walmsley * 46e01478aSPaul Walmsley * Copyright (C) 2009-2010 Texas Instruments, Inc. 56e01478aSPaul Walmsley * Copyright (C) 2009-2010 Nokia Corporation 66e01478aSPaul Walmsley * 76e01478aSPaul Walmsley * Abhijit Pagare (abhijitpagare@ti.com) 86e01478aSPaul Walmsley * Benoit Cousson (b-cousson@ti.com) 96e01478aSPaul Walmsley * Paul Walmsley (paul@pwsan.com) 106e01478aSPaul Walmsley * 116e01478aSPaul Walmsley * This file is automatically generated from the OMAP hardware databases. 126e01478aSPaul Walmsley * We respectfully ask that any modifications to this file be coordinated 136e01478aSPaul Walmsley * with the public linux-omap@vger.kernel.org mailing list and the 146e01478aSPaul Walmsley * authors above to ensure that the autogeneration scripts are kept 156e01478aSPaul Walmsley * up-to-date with the file contents. 166e01478aSPaul Walmsley * 176e01478aSPaul Walmsley * This program is free software; you can redistribute it and/or modify 186e01478aSPaul Walmsley * it under the terms of the GNU General Public License version 2 as 196e01478aSPaul Walmsley * published by the Free Software Foundation. 206e01478aSPaul Walmsley */ 216e01478aSPaul Walmsley 226e01478aSPaul Walmsley #include <linux/kernel.h> 236e01478aSPaul Walmsley #include <linux/init.h> 246e01478aSPaul Walmsley 256e01478aSPaul Walmsley #include <plat/powerdomain.h> 266e01478aSPaul Walmsley #include "powerdomains.h" 276e01478aSPaul Walmsley 286e01478aSPaul Walmsley #include "prcm-common.h" 296e01478aSPaul Walmsley #include "prm.h" 306e01478aSPaul Walmsley #include "prm-regbits-44xx.h" 31d198b514SPaul Walmsley #include "prm44xx.h" 32d198b514SPaul Walmsley #include "prcm_mpu44xx.h" 336e01478aSPaul Walmsley 346e01478aSPaul Walmsley /* core_44xx_pwrdm: CORE power domain */ 356e01478aSPaul Walmsley static struct powerdomain core_44xx_pwrdm = { 366e01478aSPaul Walmsley .name = "core_pwrdm", 37cdb54c44SPaul Walmsley .prcm_offs = OMAP4430_PRM_CORE_INST, 386e01478aSPaul Walmsley .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), 396e01478aSPaul Walmsley .pwrsts = PWRSTS_RET_ON, 406e01478aSPaul Walmsley .pwrsts_logic_ret = PWRSTS_OFF_RET, 416e01478aSPaul Walmsley .banks = 5, 426e01478aSPaul Walmsley .pwrsts_mem_ret = { 436e01478aSPaul Walmsley [0] = PWRDM_POWER_OFF, /* core_nret_bank */ 446e01478aSPaul Walmsley [1] = PWRSTS_OFF_RET, /* core_ocmram */ 456e01478aSPaul Walmsley [2] = PWRDM_POWER_RET, /* core_other_bank */ 466e01478aSPaul Walmsley [3] = PWRSTS_OFF_RET, /* ducati_l2ram */ 476e01478aSPaul Walmsley [4] = PWRSTS_OFF_RET, /* ducati_unicache */ 486e01478aSPaul Walmsley }, 496e01478aSPaul Walmsley .pwrsts_mem_on = { 506e01478aSPaul Walmsley [0] = PWRDM_POWER_ON, /* core_nret_bank */ 516e01478aSPaul Walmsley [1] = PWRSTS_OFF_RET, /* core_ocmram */ 526e01478aSPaul Walmsley [2] = PWRDM_POWER_ON, /* core_other_bank */ 536e01478aSPaul Walmsley [3] = PWRDM_POWER_ON, /* ducati_l2ram */ 546e01478aSPaul Walmsley [4] = PWRDM_POWER_ON, /* ducati_unicache */ 556e01478aSPaul Walmsley }, 566e01478aSPaul Walmsley .flags = PWRDM_HAS_LOWPOWERSTATECHANGE, 576e01478aSPaul Walmsley }; 586e01478aSPaul Walmsley 596e01478aSPaul Walmsley /* gfx_44xx_pwrdm: 3D accelerator power domain */ 606e01478aSPaul Walmsley static struct powerdomain gfx_44xx_pwrdm = { 616e01478aSPaul Walmsley .name = "gfx_pwrdm", 62cdb54c44SPaul Walmsley .prcm_offs = OMAP4430_PRM_GFX_INST, 636e01478aSPaul Walmsley .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), 646e01478aSPaul Walmsley .pwrsts = PWRSTS_OFF_ON, 656e01478aSPaul Walmsley .banks = 1, 666e01478aSPaul Walmsley .pwrsts_mem_ret = { 676e01478aSPaul Walmsley [0] = PWRDM_POWER_OFF, /* gfx_mem */ 686e01478aSPaul Walmsley }, 696e01478aSPaul Walmsley .pwrsts_mem_on = { 706e01478aSPaul Walmsley [0] = PWRDM_POWER_ON, /* gfx_mem */ 716e01478aSPaul Walmsley }, 726e01478aSPaul Walmsley .flags = PWRDM_HAS_LOWPOWERSTATECHANGE, 736e01478aSPaul Walmsley }; 746e01478aSPaul Walmsley 756e01478aSPaul Walmsley /* abe_44xx_pwrdm: Audio back end power domain */ 766e01478aSPaul Walmsley static struct powerdomain abe_44xx_pwrdm = { 776e01478aSPaul Walmsley .name = "abe_pwrdm", 78cdb54c44SPaul Walmsley .prcm_offs = OMAP4430_PRM_ABE_INST, 796e01478aSPaul Walmsley .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), 806e01478aSPaul Walmsley .pwrsts = PWRSTS_OFF_RET_ON, 816e01478aSPaul Walmsley .pwrsts_logic_ret = PWRDM_POWER_OFF, 826e01478aSPaul Walmsley .banks = 2, 836e01478aSPaul Walmsley .pwrsts_mem_ret = { 846e01478aSPaul Walmsley [0] = PWRDM_POWER_RET, /* aessmem */ 856e01478aSPaul Walmsley [1] = PWRDM_POWER_OFF, /* periphmem */ 866e01478aSPaul Walmsley }, 876e01478aSPaul Walmsley .pwrsts_mem_on = { 886e01478aSPaul Walmsley [0] = PWRDM_POWER_ON, /* aessmem */ 896e01478aSPaul Walmsley [1] = PWRDM_POWER_ON, /* periphmem */ 906e01478aSPaul Walmsley }, 916e01478aSPaul Walmsley .flags = PWRDM_HAS_LOWPOWERSTATECHANGE, 926e01478aSPaul Walmsley }; 936e01478aSPaul Walmsley 946e01478aSPaul Walmsley /* dss_44xx_pwrdm: Display subsystem power domain */ 956e01478aSPaul Walmsley static struct powerdomain dss_44xx_pwrdm = { 966e01478aSPaul Walmsley .name = "dss_pwrdm", 97cdb54c44SPaul Walmsley .prcm_offs = OMAP4430_PRM_DSS_INST, 986e01478aSPaul Walmsley .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), 996e01478aSPaul Walmsley .pwrsts = PWRSTS_OFF_RET_ON, 1006e01478aSPaul Walmsley .pwrsts_logic_ret = PWRSTS_OFF, 1016e01478aSPaul Walmsley .banks = 1, 1026e01478aSPaul Walmsley .pwrsts_mem_ret = { 1036e01478aSPaul Walmsley [0] = PWRDM_POWER_OFF, /* dss_mem */ 1046e01478aSPaul Walmsley }, 1056e01478aSPaul Walmsley .pwrsts_mem_on = { 1066e01478aSPaul Walmsley [0] = PWRDM_POWER_ON, /* dss_mem */ 1076e01478aSPaul Walmsley }, 1086e01478aSPaul Walmsley .flags = PWRDM_HAS_LOWPOWERSTATECHANGE, 1096e01478aSPaul Walmsley }; 1106e01478aSPaul Walmsley 1116e01478aSPaul Walmsley /* tesla_44xx_pwrdm: Tesla processor power domain */ 1126e01478aSPaul Walmsley static struct powerdomain tesla_44xx_pwrdm = { 1136e01478aSPaul Walmsley .name = "tesla_pwrdm", 114cdb54c44SPaul Walmsley .prcm_offs = OMAP4430_PRM_TESLA_INST, 1156e01478aSPaul Walmsley .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), 1166e01478aSPaul Walmsley .pwrsts = PWRSTS_OFF_RET_ON, 1176e01478aSPaul Walmsley .pwrsts_logic_ret = PWRSTS_OFF_RET, 1186e01478aSPaul Walmsley .banks = 3, 1196e01478aSPaul Walmsley .pwrsts_mem_ret = { 1206e01478aSPaul Walmsley [0] = PWRDM_POWER_RET, /* tesla_edma */ 1216e01478aSPaul Walmsley [1] = PWRSTS_OFF_RET, /* tesla_l1 */ 1226e01478aSPaul Walmsley [2] = PWRSTS_OFF_RET, /* tesla_l2 */ 1236e01478aSPaul Walmsley }, 1246e01478aSPaul Walmsley .pwrsts_mem_on = { 1256e01478aSPaul Walmsley [0] = PWRDM_POWER_ON, /* tesla_edma */ 1266e01478aSPaul Walmsley [1] = PWRDM_POWER_ON, /* tesla_l1 */ 1276e01478aSPaul Walmsley [2] = PWRDM_POWER_ON, /* tesla_l2 */ 1286e01478aSPaul Walmsley }, 1296e01478aSPaul Walmsley .flags = PWRDM_HAS_LOWPOWERSTATECHANGE, 1306e01478aSPaul Walmsley }; 1316e01478aSPaul Walmsley 1326e01478aSPaul Walmsley /* wkup_44xx_pwrdm: Wake-up power domain */ 1336e01478aSPaul Walmsley static struct powerdomain wkup_44xx_pwrdm = { 1346e01478aSPaul Walmsley .name = "wkup_pwrdm", 135cdb54c44SPaul Walmsley .prcm_offs = OMAP4430_PRM_WKUP_INST, 1366e01478aSPaul Walmsley .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), 1376e01478aSPaul Walmsley .pwrsts = PWRSTS_ON, 1386e01478aSPaul Walmsley .banks = 1, 1396e01478aSPaul Walmsley .pwrsts_mem_ret = { 1406e01478aSPaul Walmsley [0] = PWRDM_POWER_OFF, /* wkup_bank */ 1416e01478aSPaul Walmsley }, 1426e01478aSPaul Walmsley .pwrsts_mem_on = { 1436e01478aSPaul Walmsley [0] = PWRDM_POWER_ON, /* wkup_bank */ 1446e01478aSPaul Walmsley }, 1456e01478aSPaul Walmsley }; 1466e01478aSPaul Walmsley 1476e01478aSPaul Walmsley /* cpu0_44xx_pwrdm: MPU0 processor and Neon coprocessor power domain */ 1486e01478aSPaul Walmsley static struct powerdomain cpu0_44xx_pwrdm = { 1496e01478aSPaul Walmsley .name = "cpu0_pwrdm", 150cdb54c44SPaul Walmsley .prcm_offs = OMAP4430_PRCM_MPU_CPU0_INST, 1516e01478aSPaul Walmsley .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), 1526e01478aSPaul Walmsley .pwrsts = PWRSTS_OFF_RET_ON, 1536e01478aSPaul Walmsley .pwrsts_logic_ret = PWRSTS_OFF_RET, 1546e01478aSPaul Walmsley .banks = 1, 1556e01478aSPaul Walmsley .pwrsts_mem_ret = { 1566e01478aSPaul Walmsley [0] = PWRSTS_OFF_RET, /* cpu0_l1 */ 1576e01478aSPaul Walmsley }, 1586e01478aSPaul Walmsley .pwrsts_mem_on = { 1596e01478aSPaul Walmsley [0] = PWRDM_POWER_ON, /* cpu0_l1 */ 1606e01478aSPaul Walmsley }, 1616e01478aSPaul Walmsley }; 1626e01478aSPaul Walmsley 1636e01478aSPaul Walmsley /* cpu1_44xx_pwrdm: MPU1 processor and Neon coprocessor power domain */ 1646e01478aSPaul Walmsley static struct powerdomain cpu1_44xx_pwrdm = { 1656e01478aSPaul Walmsley .name = "cpu1_pwrdm", 166cdb54c44SPaul Walmsley .prcm_offs = OMAP4430_PRCM_MPU_CPU1_INST, 1676e01478aSPaul Walmsley .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), 1686e01478aSPaul Walmsley .pwrsts = PWRSTS_OFF_RET_ON, 1696e01478aSPaul Walmsley .pwrsts_logic_ret = PWRSTS_OFF_RET, 1706e01478aSPaul Walmsley .banks = 1, 1716e01478aSPaul Walmsley .pwrsts_mem_ret = { 1726e01478aSPaul Walmsley [0] = PWRSTS_OFF_RET, /* cpu1_l1 */ 1736e01478aSPaul Walmsley }, 1746e01478aSPaul Walmsley .pwrsts_mem_on = { 1756e01478aSPaul Walmsley [0] = PWRDM_POWER_ON, /* cpu1_l1 */ 1766e01478aSPaul Walmsley }, 1776e01478aSPaul Walmsley }; 1786e01478aSPaul Walmsley 1796e01478aSPaul Walmsley /* emu_44xx_pwrdm: Emulation power domain */ 1806e01478aSPaul Walmsley static struct powerdomain emu_44xx_pwrdm = { 1816e01478aSPaul Walmsley .name = "emu_pwrdm", 182cdb54c44SPaul Walmsley .prcm_offs = OMAP4430_PRM_EMU_INST, 1836e01478aSPaul Walmsley .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), 1846e01478aSPaul Walmsley .pwrsts = PWRSTS_OFF_ON, 1856e01478aSPaul Walmsley .banks = 1, 1866e01478aSPaul Walmsley .pwrsts_mem_ret = { 1876e01478aSPaul Walmsley [0] = PWRDM_POWER_OFF, /* emu_bank */ 1886e01478aSPaul Walmsley }, 1896e01478aSPaul Walmsley .pwrsts_mem_on = { 1906e01478aSPaul Walmsley [0] = PWRDM_POWER_ON, /* emu_bank */ 1916e01478aSPaul Walmsley }, 1926e01478aSPaul Walmsley }; 1936e01478aSPaul Walmsley 1946e01478aSPaul Walmsley /* mpu_44xx_pwrdm: Modena processor and the Neon coprocessor power domain */ 1956e01478aSPaul Walmsley static struct powerdomain mpu_44xx_pwrdm = { 1966e01478aSPaul Walmsley .name = "mpu_pwrdm", 197cdb54c44SPaul Walmsley .prcm_offs = OMAP4430_PRM_MPU_INST, 1986e01478aSPaul Walmsley .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), 1996e01478aSPaul Walmsley .pwrsts = PWRSTS_OFF_RET_ON, 2006e01478aSPaul Walmsley .pwrsts_logic_ret = PWRSTS_OFF_RET, 2016e01478aSPaul Walmsley .banks = 3, 2026e01478aSPaul Walmsley .pwrsts_mem_ret = { 2036e01478aSPaul Walmsley [0] = PWRSTS_OFF_RET, /* mpu_l1 */ 2046e01478aSPaul Walmsley [1] = PWRSTS_OFF_RET, /* mpu_l2 */ 2056e01478aSPaul Walmsley [2] = PWRDM_POWER_RET, /* mpu_ram */ 2066e01478aSPaul Walmsley }, 2076e01478aSPaul Walmsley .pwrsts_mem_on = { 2086e01478aSPaul Walmsley [0] = PWRDM_POWER_ON, /* mpu_l1 */ 2096e01478aSPaul Walmsley [1] = PWRDM_POWER_ON, /* mpu_l2 */ 2106e01478aSPaul Walmsley [2] = PWRDM_POWER_ON, /* mpu_ram */ 2116e01478aSPaul Walmsley }, 2126e01478aSPaul Walmsley }; 2136e01478aSPaul Walmsley 2146e01478aSPaul Walmsley /* ivahd_44xx_pwrdm: IVA-HD power domain */ 2156e01478aSPaul Walmsley static struct powerdomain ivahd_44xx_pwrdm = { 2166e01478aSPaul Walmsley .name = "ivahd_pwrdm", 217cdb54c44SPaul Walmsley .prcm_offs = OMAP4430_PRM_IVAHD_INST, 2186e01478aSPaul Walmsley .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), 2196e01478aSPaul Walmsley .pwrsts = PWRSTS_OFF_RET_ON, 2206e01478aSPaul Walmsley .pwrsts_logic_ret = PWRDM_POWER_OFF, 2216e01478aSPaul Walmsley .banks = 4, 2226e01478aSPaul Walmsley .pwrsts_mem_ret = { 2236e01478aSPaul Walmsley [0] = PWRDM_POWER_OFF, /* hwa_mem */ 2246e01478aSPaul Walmsley [1] = PWRSTS_OFF_RET, /* sl2_mem */ 2256e01478aSPaul Walmsley [2] = PWRSTS_OFF_RET, /* tcm1_mem */ 2266e01478aSPaul Walmsley [3] = PWRSTS_OFF_RET, /* tcm2_mem */ 2276e01478aSPaul Walmsley }, 2286e01478aSPaul Walmsley .pwrsts_mem_on = { 2296e01478aSPaul Walmsley [0] = PWRDM_POWER_ON, /* hwa_mem */ 2306e01478aSPaul Walmsley [1] = PWRDM_POWER_ON, /* sl2_mem */ 2316e01478aSPaul Walmsley [2] = PWRDM_POWER_ON, /* tcm1_mem */ 2326e01478aSPaul Walmsley [3] = PWRDM_POWER_ON, /* tcm2_mem */ 2336e01478aSPaul Walmsley }, 2346e01478aSPaul Walmsley .flags = PWRDM_HAS_LOWPOWERSTATECHANGE, 2356e01478aSPaul Walmsley }; 2366e01478aSPaul Walmsley 2376e01478aSPaul Walmsley /* cam_44xx_pwrdm: Camera subsystem power domain */ 2386e01478aSPaul Walmsley static struct powerdomain cam_44xx_pwrdm = { 2396e01478aSPaul Walmsley .name = "cam_pwrdm", 240cdb54c44SPaul Walmsley .prcm_offs = OMAP4430_PRM_CAM_INST, 2416e01478aSPaul Walmsley .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), 2426e01478aSPaul Walmsley .pwrsts = PWRSTS_OFF_ON, 2436e01478aSPaul Walmsley .banks = 1, 2446e01478aSPaul Walmsley .pwrsts_mem_ret = { 2456e01478aSPaul Walmsley [0] = PWRDM_POWER_OFF, /* cam_mem */ 2466e01478aSPaul Walmsley }, 2476e01478aSPaul Walmsley .pwrsts_mem_on = { 2486e01478aSPaul Walmsley [0] = PWRDM_POWER_ON, /* cam_mem */ 2496e01478aSPaul Walmsley }, 2506e01478aSPaul Walmsley .flags = PWRDM_HAS_LOWPOWERSTATECHANGE, 2516e01478aSPaul Walmsley }; 2526e01478aSPaul Walmsley 2536e01478aSPaul Walmsley /* l3init_44xx_pwrdm: L3 initators pheripherals power domain */ 2546e01478aSPaul Walmsley static struct powerdomain l3init_44xx_pwrdm = { 2556e01478aSPaul Walmsley .name = "l3init_pwrdm", 256cdb54c44SPaul Walmsley .prcm_offs = OMAP4430_PRM_L3INIT_INST, 2576e01478aSPaul Walmsley .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), 2586e01478aSPaul Walmsley .pwrsts = PWRSTS_OFF_RET_ON, 2596e01478aSPaul Walmsley .pwrsts_logic_ret = PWRSTS_OFF_RET, 2606e01478aSPaul Walmsley .banks = 1, 2616e01478aSPaul Walmsley .pwrsts_mem_ret = { 2626e01478aSPaul Walmsley [0] = PWRDM_POWER_OFF, /* l3init_bank1 */ 2636e01478aSPaul Walmsley }, 2646e01478aSPaul Walmsley .pwrsts_mem_on = { 2656e01478aSPaul Walmsley [0] = PWRDM_POWER_ON, /* l3init_bank1 */ 2666e01478aSPaul Walmsley }, 2676e01478aSPaul Walmsley .flags = PWRDM_HAS_LOWPOWERSTATECHANGE, 2686e01478aSPaul Walmsley }; 2696e01478aSPaul Walmsley 2706e01478aSPaul Walmsley /* l4per_44xx_pwrdm: Target peripherals power domain */ 2716e01478aSPaul Walmsley static struct powerdomain l4per_44xx_pwrdm = { 2726e01478aSPaul Walmsley .name = "l4per_pwrdm", 273cdb54c44SPaul Walmsley .prcm_offs = OMAP4430_PRM_L4PER_INST, 2746e01478aSPaul Walmsley .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), 2756e01478aSPaul Walmsley .pwrsts = PWRSTS_OFF_RET_ON, 2766e01478aSPaul Walmsley .pwrsts_logic_ret = PWRSTS_OFF_RET, 2776e01478aSPaul Walmsley .banks = 2, 2786e01478aSPaul Walmsley .pwrsts_mem_ret = { 2796e01478aSPaul Walmsley [0] = PWRDM_POWER_OFF, /* nonretained_bank */ 2806e01478aSPaul Walmsley [1] = PWRDM_POWER_RET, /* retained_bank */ 2816e01478aSPaul Walmsley }, 2826e01478aSPaul Walmsley .pwrsts_mem_on = { 2836e01478aSPaul Walmsley [0] = PWRDM_POWER_ON, /* nonretained_bank */ 2846e01478aSPaul Walmsley [1] = PWRDM_POWER_ON, /* retained_bank */ 2856e01478aSPaul Walmsley }, 2866e01478aSPaul Walmsley .flags = PWRDM_HAS_LOWPOWERSTATECHANGE, 2876e01478aSPaul Walmsley }; 2886e01478aSPaul Walmsley 2896e01478aSPaul Walmsley /* 2906e01478aSPaul Walmsley * always_on_core_44xx_pwrdm: Always ON logic that sits in VDD_CORE voltage 2916e01478aSPaul Walmsley * domain 2926e01478aSPaul Walmsley */ 2936e01478aSPaul Walmsley static struct powerdomain always_on_core_44xx_pwrdm = { 2946e01478aSPaul Walmsley .name = "always_on_core_pwrdm", 295cdb54c44SPaul Walmsley .prcm_offs = OMAP4430_PRM_ALWAYS_ON_INST, 2966e01478aSPaul Walmsley .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), 2976e01478aSPaul Walmsley .pwrsts = PWRSTS_ON, 2986e01478aSPaul Walmsley }; 2996e01478aSPaul Walmsley 3006e01478aSPaul Walmsley /* cefuse_44xx_pwrdm: Customer efuse controller power domain */ 3016e01478aSPaul Walmsley static struct powerdomain cefuse_44xx_pwrdm = { 3026e01478aSPaul Walmsley .name = "cefuse_pwrdm", 303cdb54c44SPaul Walmsley .prcm_offs = OMAP4430_PRM_CEFUSE_INST, 3046e01478aSPaul Walmsley .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), 3056e01478aSPaul Walmsley .pwrsts = PWRSTS_OFF_ON, 3066e01478aSPaul Walmsley }; 3076e01478aSPaul Walmsley 3086e01478aSPaul Walmsley /* 3096e01478aSPaul Walmsley * The following power domains are not under SW control 3106e01478aSPaul Walmsley * 3116e01478aSPaul Walmsley * always_on_iva 3126e01478aSPaul Walmsley * always_on_mpu 3136e01478aSPaul Walmsley * stdefuse 3146e01478aSPaul Walmsley */ 3156e01478aSPaul Walmsley 3166e01478aSPaul Walmsley /* As powerdomains are added or removed above, this list must also be changed */ 3176e01478aSPaul Walmsley static struct powerdomain *powerdomains_omap44xx[] __initdata = { 3186e01478aSPaul Walmsley &core_44xx_pwrdm, 3196e01478aSPaul Walmsley &gfx_44xx_pwrdm, 3206e01478aSPaul Walmsley &abe_44xx_pwrdm, 3216e01478aSPaul Walmsley &dss_44xx_pwrdm, 3226e01478aSPaul Walmsley &tesla_44xx_pwrdm, 3236e01478aSPaul Walmsley &wkup_44xx_pwrdm, 3246e01478aSPaul Walmsley &cpu0_44xx_pwrdm, 3256e01478aSPaul Walmsley &cpu1_44xx_pwrdm, 3266e01478aSPaul Walmsley &emu_44xx_pwrdm, 3276e01478aSPaul Walmsley &mpu_44xx_pwrdm, 3286e01478aSPaul Walmsley &ivahd_44xx_pwrdm, 3296e01478aSPaul Walmsley &cam_44xx_pwrdm, 3306e01478aSPaul Walmsley &l3init_44xx_pwrdm, 3316e01478aSPaul Walmsley &l4per_44xx_pwrdm, 3326e01478aSPaul Walmsley &always_on_core_44xx_pwrdm, 3336e01478aSPaul Walmsley &cefuse_44xx_pwrdm, 3346e01478aSPaul Walmsley NULL 3356e01478aSPaul Walmsley }; 3366e01478aSPaul Walmsley 3376e01478aSPaul Walmsley void __init omap44xx_powerdomains_init(void) 3386e01478aSPaul Walmsley { 3396e01478aSPaul Walmsley pwrdm_init(powerdomains_omap44xx, &omap4_pwrdm_operations); 3406e01478aSPaul Walmsley } 341