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 2572e06d08SPaul Walmsley #include "powerdomain.h" 266e01478aSPaul Walmsley 276e01478aSPaul Walmsley #include "prcm-common.h" 28a64bb9cdSPaul Walmsley #include "prcm44xx.h" 296e01478aSPaul Walmsley #include "prm-regbits-44xx.h" 30d198b514SPaul Walmsley #include "prm44xx.h" 31d198b514SPaul Walmsley #include "prcm_mpu44xx.h" 326e01478aSPaul Walmsley 336e01478aSPaul Walmsley /* core_44xx_pwrdm: CORE power domain */ 346e01478aSPaul Walmsley static struct powerdomain core_44xx_pwrdm = { 356e01478aSPaul Walmsley .name = "core_pwrdm", 36cdb54c44SPaul Walmsley .prcm_offs = OMAP4430_PRM_CORE_INST, 37a64bb9cdSPaul Walmsley .prcm_partition = OMAP4430_PRM_PARTITION, 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, 63a64bb9cdSPaul Walmsley .prcm_partition = OMAP4430_PRM_PARTITION, 646e01478aSPaul Walmsley .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), 656e01478aSPaul Walmsley .pwrsts = PWRSTS_OFF_ON, 666e01478aSPaul Walmsley .banks = 1, 676e01478aSPaul Walmsley .pwrsts_mem_ret = { 686e01478aSPaul Walmsley [0] = PWRDM_POWER_OFF, /* gfx_mem */ 696e01478aSPaul Walmsley }, 706e01478aSPaul Walmsley .pwrsts_mem_on = { 716e01478aSPaul Walmsley [0] = PWRDM_POWER_ON, /* gfx_mem */ 726e01478aSPaul Walmsley }, 736e01478aSPaul Walmsley .flags = PWRDM_HAS_LOWPOWERSTATECHANGE, 746e01478aSPaul Walmsley }; 756e01478aSPaul Walmsley 766e01478aSPaul Walmsley /* abe_44xx_pwrdm: Audio back end power domain */ 776e01478aSPaul Walmsley static struct powerdomain abe_44xx_pwrdm = { 786e01478aSPaul Walmsley .name = "abe_pwrdm", 79cdb54c44SPaul Walmsley .prcm_offs = OMAP4430_PRM_ABE_INST, 80a64bb9cdSPaul Walmsley .prcm_partition = OMAP4430_PRM_PARTITION, 816e01478aSPaul Walmsley .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), 826e01478aSPaul Walmsley .pwrsts = PWRSTS_OFF_RET_ON, 836e01478aSPaul Walmsley .pwrsts_logic_ret = PWRDM_POWER_OFF, 846e01478aSPaul Walmsley .banks = 2, 856e01478aSPaul Walmsley .pwrsts_mem_ret = { 866e01478aSPaul Walmsley [0] = PWRDM_POWER_RET, /* aessmem */ 876e01478aSPaul Walmsley [1] = PWRDM_POWER_OFF, /* periphmem */ 886e01478aSPaul Walmsley }, 896e01478aSPaul Walmsley .pwrsts_mem_on = { 906e01478aSPaul Walmsley [0] = PWRDM_POWER_ON, /* aessmem */ 916e01478aSPaul Walmsley [1] = PWRDM_POWER_ON, /* periphmem */ 926e01478aSPaul Walmsley }, 936e01478aSPaul Walmsley .flags = PWRDM_HAS_LOWPOWERSTATECHANGE, 946e01478aSPaul Walmsley }; 956e01478aSPaul Walmsley 966e01478aSPaul Walmsley /* dss_44xx_pwrdm: Display subsystem power domain */ 976e01478aSPaul Walmsley static struct powerdomain dss_44xx_pwrdm = { 986e01478aSPaul Walmsley .name = "dss_pwrdm", 99cdb54c44SPaul Walmsley .prcm_offs = OMAP4430_PRM_DSS_INST, 100a64bb9cdSPaul Walmsley .prcm_partition = OMAP4430_PRM_PARTITION, 1016e01478aSPaul Walmsley .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), 1026e01478aSPaul Walmsley .pwrsts = PWRSTS_OFF_RET_ON, 1036e01478aSPaul Walmsley .pwrsts_logic_ret = PWRSTS_OFF, 1046e01478aSPaul Walmsley .banks = 1, 1056e01478aSPaul Walmsley .pwrsts_mem_ret = { 1066e01478aSPaul Walmsley [0] = PWRDM_POWER_OFF, /* dss_mem */ 1076e01478aSPaul Walmsley }, 1086e01478aSPaul Walmsley .pwrsts_mem_on = { 1096e01478aSPaul Walmsley [0] = PWRDM_POWER_ON, /* dss_mem */ 1106e01478aSPaul Walmsley }, 1116e01478aSPaul Walmsley .flags = PWRDM_HAS_LOWPOWERSTATECHANGE, 1126e01478aSPaul Walmsley }; 1136e01478aSPaul Walmsley 1146e01478aSPaul Walmsley /* tesla_44xx_pwrdm: Tesla processor power domain */ 1156e01478aSPaul Walmsley static struct powerdomain tesla_44xx_pwrdm = { 1166e01478aSPaul Walmsley .name = "tesla_pwrdm", 117cdb54c44SPaul Walmsley .prcm_offs = OMAP4430_PRM_TESLA_INST, 118a64bb9cdSPaul Walmsley .prcm_partition = OMAP4430_PRM_PARTITION, 1196e01478aSPaul Walmsley .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), 1206e01478aSPaul Walmsley .pwrsts = PWRSTS_OFF_RET_ON, 1216e01478aSPaul Walmsley .pwrsts_logic_ret = PWRSTS_OFF_RET, 1226e01478aSPaul Walmsley .banks = 3, 1236e01478aSPaul Walmsley .pwrsts_mem_ret = { 1246e01478aSPaul Walmsley [0] = PWRDM_POWER_RET, /* tesla_edma */ 1256e01478aSPaul Walmsley [1] = PWRSTS_OFF_RET, /* tesla_l1 */ 1266e01478aSPaul Walmsley [2] = PWRSTS_OFF_RET, /* tesla_l2 */ 1276e01478aSPaul Walmsley }, 1286e01478aSPaul Walmsley .pwrsts_mem_on = { 1296e01478aSPaul Walmsley [0] = PWRDM_POWER_ON, /* tesla_edma */ 1306e01478aSPaul Walmsley [1] = PWRDM_POWER_ON, /* tesla_l1 */ 1316e01478aSPaul Walmsley [2] = PWRDM_POWER_ON, /* tesla_l2 */ 1326e01478aSPaul Walmsley }, 1336e01478aSPaul Walmsley .flags = PWRDM_HAS_LOWPOWERSTATECHANGE, 1346e01478aSPaul Walmsley }; 1356e01478aSPaul Walmsley 1366e01478aSPaul Walmsley /* wkup_44xx_pwrdm: Wake-up power domain */ 1376e01478aSPaul Walmsley static struct powerdomain wkup_44xx_pwrdm = { 1386e01478aSPaul Walmsley .name = "wkup_pwrdm", 139cdb54c44SPaul Walmsley .prcm_offs = OMAP4430_PRM_WKUP_INST, 140a64bb9cdSPaul Walmsley .prcm_partition = OMAP4430_PRM_PARTITION, 1416e01478aSPaul Walmsley .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), 1426e01478aSPaul Walmsley .pwrsts = PWRSTS_ON, 1436e01478aSPaul Walmsley .banks = 1, 1446e01478aSPaul Walmsley .pwrsts_mem_ret = { 1456e01478aSPaul Walmsley [0] = PWRDM_POWER_OFF, /* wkup_bank */ 1466e01478aSPaul Walmsley }, 1476e01478aSPaul Walmsley .pwrsts_mem_on = { 1486e01478aSPaul Walmsley [0] = PWRDM_POWER_ON, /* wkup_bank */ 1496e01478aSPaul Walmsley }, 1506e01478aSPaul Walmsley }; 1516e01478aSPaul Walmsley 1526e01478aSPaul Walmsley /* cpu0_44xx_pwrdm: MPU0 processor and Neon coprocessor power domain */ 1536e01478aSPaul Walmsley static struct powerdomain cpu0_44xx_pwrdm = { 1546e01478aSPaul Walmsley .name = "cpu0_pwrdm", 155cdb54c44SPaul Walmsley .prcm_offs = OMAP4430_PRCM_MPU_CPU0_INST, 156a64bb9cdSPaul Walmsley .prcm_partition = OMAP4430_PRCM_MPU_PARTITION, 1576e01478aSPaul Walmsley .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), 1586e01478aSPaul Walmsley .pwrsts = PWRSTS_OFF_RET_ON, 1596e01478aSPaul Walmsley .pwrsts_logic_ret = PWRSTS_OFF_RET, 1606e01478aSPaul Walmsley .banks = 1, 1616e01478aSPaul Walmsley .pwrsts_mem_ret = { 1626e01478aSPaul Walmsley [0] = PWRSTS_OFF_RET, /* cpu0_l1 */ 1636e01478aSPaul Walmsley }, 1646e01478aSPaul Walmsley .pwrsts_mem_on = { 1656e01478aSPaul Walmsley [0] = PWRDM_POWER_ON, /* cpu0_l1 */ 1666e01478aSPaul Walmsley }, 1676e01478aSPaul Walmsley }; 1686e01478aSPaul Walmsley 1696e01478aSPaul Walmsley /* cpu1_44xx_pwrdm: MPU1 processor and Neon coprocessor power domain */ 1706e01478aSPaul Walmsley static struct powerdomain cpu1_44xx_pwrdm = { 1716e01478aSPaul Walmsley .name = "cpu1_pwrdm", 172cdb54c44SPaul Walmsley .prcm_offs = OMAP4430_PRCM_MPU_CPU1_INST, 173a64bb9cdSPaul Walmsley .prcm_partition = OMAP4430_PRCM_MPU_PARTITION, 1746e01478aSPaul Walmsley .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), 1756e01478aSPaul Walmsley .pwrsts = PWRSTS_OFF_RET_ON, 1766e01478aSPaul Walmsley .pwrsts_logic_ret = PWRSTS_OFF_RET, 1776e01478aSPaul Walmsley .banks = 1, 1786e01478aSPaul Walmsley .pwrsts_mem_ret = { 1796e01478aSPaul Walmsley [0] = PWRSTS_OFF_RET, /* cpu1_l1 */ 1806e01478aSPaul Walmsley }, 1816e01478aSPaul Walmsley .pwrsts_mem_on = { 1826e01478aSPaul Walmsley [0] = PWRDM_POWER_ON, /* cpu1_l1 */ 1836e01478aSPaul Walmsley }, 1846e01478aSPaul Walmsley }; 1856e01478aSPaul Walmsley 1866e01478aSPaul Walmsley /* emu_44xx_pwrdm: Emulation power domain */ 1876e01478aSPaul Walmsley static struct powerdomain emu_44xx_pwrdm = { 1886e01478aSPaul Walmsley .name = "emu_pwrdm", 189cdb54c44SPaul Walmsley .prcm_offs = OMAP4430_PRM_EMU_INST, 190a64bb9cdSPaul Walmsley .prcm_partition = OMAP4430_PRM_PARTITION, 1916e01478aSPaul Walmsley .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), 1926e01478aSPaul Walmsley .pwrsts = PWRSTS_OFF_ON, 1936e01478aSPaul Walmsley .banks = 1, 1946e01478aSPaul Walmsley .pwrsts_mem_ret = { 1956e01478aSPaul Walmsley [0] = PWRDM_POWER_OFF, /* emu_bank */ 1966e01478aSPaul Walmsley }, 1976e01478aSPaul Walmsley .pwrsts_mem_on = { 1986e01478aSPaul Walmsley [0] = PWRDM_POWER_ON, /* emu_bank */ 1996e01478aSPaul Walmsley }, 2006e01478aSPaul Walmsley }; 2016e01478aSPaul Walmsley 2026e01478aSPaul Walmsley /* mpu_44xx_pwrdm: Modena processor and the Neon coprocessor power domain */ 2036e01478aSPaul Walmsley static struct powerdomain mpu_44xx_pwrdm = { 2046e01478aSPaul Walmsley .name = "mpu_pwrdm", 205cdb54c44SPaul Walmsley .prcm_offs = OMAP4430_PRM_MPU_INST, 206a64bb9cdSPaul Walmsley .prcm_partition = OMAP4430_PRM_PARTITION, 2076e01478aSPaul Walmsley .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), 2086e01478aSPaul Walmsley .pwrsts = PWRSTS_OFF_RET_ON, 2096e01478aSPaul Walmsley .pwrsts_logic_ret = PWRSTS_OFF_RET, 2106e01478aSPaul Walmsley .banks = 3, 2116e01478aSPaul Walmsley .pwrsts_mem_ret = { 2126e01478aSPaul Walmsley [0] = PWRSTS_OFF_RET, /* mpu_l1 */ 2136e01478aSPaul Walmsley [1] = PWRSTS_OFF_RET, /* mpu_l2 */ 2146e01478aSPaul Walmsley [2] = PWRDM_POWER_RET, /* mpu_ram */ 2156e01478aSPaul Walmsley }, 2166e01478aSPaul Walmsley .pwrsts_mem_on = { 2176e01478aSPaul Walmsley [0] = PWRDM_POWER_ON, /* mpu_l1 */ 2186e01478aSPaul Walmsley [1] = PWRDM_POWER_ON, /* mpu_l2 */ 2196e01478aSPaul Walmsley [2] = PWRDM_POWER_ON, /* mpu_ram */ 2206e01478aSPaul Walmsley }, 2216e01478aSPaul Walmsley }; 2226e01478aSPaul Walmsley 2236e01478aSPaul Walmsley /* ivahd_44xx_pwrdm: IVA-HD power domain */ 2246e01478aSPaul Walmsley static struct powerdomain ivahd_44xx_pwrdm = { 2256e01478aSPaul Walmsley .name = "ivahd_pwrdm", 226cdb54c44SPaul Walmsley .prcm_offs = OMAP4430_PRM_IVAHD_INST, 227a64bb9cdSPaul Walmsley .prcm_partition = OMAP4430_PRM_PARTITION, 2286e01478aSPaul Walmsley .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), 2296e01478aSPaul Walmsley .pwrsts = PWRSTS_OFF_RET_ON, 2306e01478aSPaul Walmsley .pwrsts_logic_ret = PWRDM_POWER_OFF, 2316e01478aSPaul Walmsley .banks = 4, 2326e01478aSPaul Walmsley .pwrsts_mem_ret = { 2336e01478aSPaul Walmsley [0] = PWRDM_POWER_OFF, /* hwa_mem */ 2346e01478aSPaul Walmsley [1] = PWRSTS_OFF_RET, /* sl2_mem */ 2356e01478aSPaul Walmsley [2] = PWRSTS_OFF_RET, /* tcm1_mem */ 2366e01478aSPaul Walmsley [3] = PWRSTS_OFF_RET, /* tcm2_mem */ 2376e01478aSPaul Walmsley }, 2386e01478aSPaul Walmsley .pwrsts_mem_on = { 2396e01478aSPaul Walmsley [0] = PWRDM_POWER_ON, /* hwa_mem */ 2406e01478aSPaul Walmsley [1] = PWRDM_POWER_ON, /* sl2_mem */ 2416e01478aSPaul Walmsley [2] = PWRDM_POWER_ON, /* tcm1_mem */ 2426e01478aSPaul Walmsley [3] = PWRDM_POWER_ON, /* tcm2_mem */ 2436e01478aSPaul Walmsley }, 2446e01478aSPaul Walmsley .flags = PWRDM_HAS_LOWPOWERSTATECHANGE, 2456e01478aSPaul Walmsley }; 2466e01478aSPaul Walmsley 2476e01478aSPaul Walmsley /* cam_44xx_pwrdm: Camera subsystem power domain */ 2486e01478aSPaul Walmsley static struct powerdomain cam_44xx_pwrdm = { 2496e01478aSPaul Walmsley .name = "cam_pwrdm", 250cdb54c44SPaul Walmsley .prcm_offs = OMAP4430_PRM_CAM_INST, 251a64bb9cdSPaul Walmsley .prcm_partition = OMAP4430_PRM_PARTITION, 2526e01478aSPaul Walmsley .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), 2536e01478aSPaul Walmsley .pwrsts = PWRSTS_OFF_ON, 2546e01478aSPaul Walmsley .banks = 1, 2556e01478aSPaul Walmsley .pwrsts_mem_ret = { 2566e01478aSPaul Walmsley [0] = PWRDM_POWER_OFF, /* cam_mem */ 2576e01478aSPaul Walmsley }, 2586e01478aSPaul Walmsley .pwrsts_mem_on = { 2596e01478aSPaul Walmsley [0] = PWRDM_POWER_ON, /* cam_mem */ 2606e01478aSPaul Walmsley }, 2616e01478aSPaul Walmsley .flags = PWRDM_HAS_LOWPOWERSTATECHANGE, 2626e01478aSPaul Walmsley }; 2636e01478aSPaul Walmsley 2646e01478aSPaul Walmsley /* l3init_44xx_pwrdm: L3 initators pheripherals power domain */ 2656e01478aSPaul Walmsley static struct powerdomain l3init_44xx_pwrdm = { 2666e01478aSPaul Walmsley .name = "l3init_pwrdm", 267cdb54c44SPaul Walmsley .prcm_offs = OMAP4430_PRM_L3INIT_INST, 268a64bb9cdSPaul Walmsley .prcm_partition = OMAP4430_PRM_PARTITION, 2696e01478aSPaul Walmsley .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), 2706e01478aSPaul Walmsley .pwrsts = PWRSTS_OFF_RET_ON, 2716e01478aSPaul Walmsley .pwrsts_logic_ret = PWRSTS_OFF_RET, 2726e01478aSPaul Walmsley .banks = 1, 2736e01478aSPaul Walmsley .pwrsts_mem_ret = { 2746e01478aSPaul Walmsley [0] = PWRDM_POWER_OFF, /* l3init_bank1 */ 2756e01478aSPaul Walmsley }, 2766e01478aSPaul Walmsley .pwrsts_mem_on = { 2776e01478aSPaul Walmsley [0] = PWRDM_POWER_ON, /* l3init_bank1 */ 2786e01478aSPaul Walmsley }, 2796e01478aSPaul Walmsley .flags = PWRDM_HAS_LOWPOWERSTATECHANGE, 2806e01478aSPaul Walmsley }; 2816e01478aSPaul Walmsley 2826e01478aSPaul Walmsley /* l4per_44xx_pwrdm: Target peripherals power domain */ 2836e01478aSPaul Walmsley static struct powerdomain l4per_44xx_pwrdm = { 2846e01478aSPaul Walmsley .name = "l4per_pwrdm", 285cdb54c44SPaul Walmsley .prcm_offs = OMAP4430_PRM_L4PER_INST, 286a64bb9cdSPaul Walmsley .prcm_partition = OMAP4430_PRM_PARTITION, 2876e01478aSPaul Walmsley .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), 288474e7aebSRajendra Nayak .pwrsts = PWRSTS_RET_ON, 2896e01478aSPaul Walmsley .pwrsts_logic_ret = PWRSTS_OFF_RET, 2906e01478aSPaul Walmsley .banks = 2, 2916e01478aSPaul Walmsley .pwrsts_mem_ret = { 2926e01478aSPaul Walmsley [0] = PWRDM_POWER_OFF, /* nonretained_bank */ 2936e01478aSPaul Walmsley [1] = PWRDM_POWER_RET, /* retained_bank */ 2946e01478aSPaul Walmsley }, 2956e01478aSPaul Walmsley .pwrsts_mem_on = { 2966e01478aSPaul Walmsley [0] = PWRDM_POWER_ON, /* nonretained_bank */ 2976e01478aSPaul Walmsley [1] = PWRDM_POWER_ON, /* retained_bank */ 2986e01478aSPaul Walmsley }, 2996e01478aSPaul Walmsley .flags = PWRDM_HAS_LOWPOWERSTATECHANGE, 3006e01478aSPaul Walmsley }; 3016e01478aSPaul Walmsley 3026e01478aSPaul Walmsley /* 3036e01478aSPaul Walmsley * always_on_core_44xx_pwrdm: Always ON logic that sits in VDD_CORE voltage 3046e01478aSPaul Walmsley * domain 3056e01478aSPaul Walmsley */ 3066e01478aSPaul Walmsley static struct powerdomain always_on_core_44xx_pwrdm = { 3076e01478aSPaul Walmsley .name = "always_on_core_pwrdm", 308cdb54c44SPaul Walmsley .prcm_offs = OMAP4430_PRM_ALWAYS_ON_INST, 309a64bb9cdSPaul Walmsley .prcm_partition = OMAP4430_PRM_PARTITION, 3106e01478aSPaul Walmsley .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), 3116e01478aSPaul Walmsley .pwrsts = PWRSTS_ON, 3126e01478aSPaul Walmsley }; 3136e01478aSPaul Walmsley 3146e01478aSPaul Walmsley /* cefuse_44xx_pwrdm: Customer efuse controller power domain */ 3156e01478aSPaul Walmsley static struct powerdomain cefuse_44xx_pwrdm = { 3166e01478aSPaul Walmsley .name = "cefuse_pwrdm", 317cdb54c44SPaul Walmsley .prcm_offs = OMAP4430_PRM_CEFUSE_INST, 318a64bb9cdSPaul Walmsley .prcm_partition = OMAP4430_PRM_PARTITION, 3196e01478aSPaul Walmsley .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), 3206e01478aSPaul Walmsley .pwrsts = PWRSTS_OFF_ON, 3216e01478aSPaul Walmsley }; 3226e01478aSPaul Walmsley 3236e01478aSPaul Walmsley /* 3246e01478aSPaul Walmsley * The following power domains are not under SW control 3256e01478aSPaul Walmsley * 3266e01478aSPaul Walmsley * always_on_iva 3276e01478aSPaul Walmsley * always_on_mpu 3286e01478aSPaul Walmsley * stdefuse 3296e01478aSPaul Walmsley */ 3306e01478aSPaul Walmsley 3316e01478aSPaul Walmsley /* As powerdomains are added or removed above, this list must also be changed */ 3326e01478aSPaul Walmsley static struct powerdomain *powerdomains_omap44xx[] __initdata = { 3336e01478aSPaul Walmsley &core_44xx_pwrdm, 3346e01478aSPaul Walmsley &gfx_44xx_pwrdm, 3356e01478aSPaul Walmsley &abe_44xx_pwrdm, 3366e01478aSPaul Walmsley &dss_44xx_pwrdm, 3376e01478aSPaul Walmsley &tesla_44xx_pwrdm, 3386e01478aSPaul Walmsley &wkup_44xx_pwrdm, 3396e01478aSPaul Walmsley &cpu0_44xx_pwrdm, 3406e01478aSPaul Walmsley &cpu1_44xx_pwrdm, 3416e01478aSPaul Walmsley &emu_44xx_pwrdm, 3426e01478aSPaul Walmsley &mpu_44xx_pwrdm, 3436e01478aSPaul Walmsley &ivahd_44xx_pwrdm, 3446e01478aSPaul Walmsley &cam_44xx_pwrdm, 3456e01478aSPaul Walmsley &l3init_44xx_pwrdm, 3466e01478aSPaul Walmsley &l4per_44xx_pwrdm, 3476e01478aSPaul Walmsley &always_on_core_44xx_pwrdm, 3486e01478aSPaul Walmsley &cefuse_44xx_pwrdm, 3496e01478aSPaul Walmsley NULL 3506e01478aSPaul Walmsley }; 3516e01478aSPaul Walmsley 3526e01478aSPaul Walmsley void __init omap44xx_powerdomains_init(void) 3536e01478aSPaul Walmsley { 3546e01478aSPaul Walmsley pwrdm_init(powerdomains_omap44xx, &omap4_pwrdm_operations); 3556e01478aSPaul Walmsley } 356