16e01478aSPaul Walmsley /* 26e01478aSPaul Walmsley * OMAP4 Power domains framework 36e01478aSPaul Walmsley * 49a2a3603SBenoit Cousson * Copyright (C) 2009-2011 Texas Instruments, Inc. 54cb49fecSPaul Walmsley * Copyright (C) 2009-2011 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", 367e1b9405SBenoit Cousson .voltdm = { .name = "core" }, 37cdb54c44SPaul Walmsley .prcm_offs = OMAP4430_PRM_CORE_INST, 38a64bb9cdSPaul Walmsley .prcm_partition = OMAP4430_PRM_PARTITION, 396e01478aSPaul Walmsley .pwrsts = PWRSTS_RET_ON, 406e01478aSPaul Walmsley .pwrsts_logic_ret = PWRSTS_OFF_RET, 416e01478aSPaul Walmsley .banks = 5, 426e01478aSPaul Walmsley .pwrsts_mem_ret = { 434cb49fecSPaul Walmsley [0] = PWRSTS_OFF, /* core_nret_bank */ 449a2a3603SBenoit Cousson [1] = PWRSTS_RET, /* core_ocmram */ 454cb49fecSPaul Walmsley [2] = PWRSTS_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 = { 504cb49fecSPaul Walmsley [0] = PWRSTS_ON, /* core_nret_bank */ 519a2a3603SBenoit Cousson [1] = PWRSTS_ON, /* core_ocmram */ 524cb49fecSPaul Walmsley [2] = PWRSTS_ON, /* core_other_bank */ 534cb49fecSPaul Walmsley [3] = PWRSTS_ON, /* ducati_l2ram */ 544cb49fecSPaul Walmsley [4] = PWRSTS_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", 627e1b9405SBenoit Cousson .voltdm = { .name = "core" }, 63cdb54c44SPaul Walmsley .prcm_offs = OMAP4430_PRM_GFX_INST, 64a64bb9cdSPaul Walmsley .prcm_partition = OMAP4430_PRM_PARTITION, 656e01478aSPaul Walmsley .pwrsts = PWRSTS_OFF_ON, 666e01478aSPaul Walmsley .banks = 1, 676e01478aSPaul Walmsley .pwrsts_mem_ret = { 684cb49fecSPaul Walmsley [0] = PWRSTS_OFF, /* gfx_mem */ 696e01478aSPaul Walmsley }, 706e01478aSPaul Walmsley .pwrsts_mem_on = { 714cb49fecSPaul Walmsley [0] = PWRSTS_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", 797e1b9405SBenoit Cousson .voltdm = { .name = "iva" }, 80cdb54c44SPaul Walmsley .prcm_offs = OMAP4430_PRM_ABE_INST, 81a64bb9cdSPaul Walmsley .prcm_partition = OMAP4430_PRM_PARTITION, 826e01478aSPaul Walmsley .pwrsts = PWRSTS_OFF_RET_ON, 833ed4566eSSantosh Shilimkar .pwrsts_logic_ret = PWRSTS_OFF, 846e01478aSPaul Walmsley .banks = 2, 856e01478aSPaul Walmsley .pwrsts_mem_ret = { 864cb49fecSPaul Walmsley [0] = PWRSTS_RET, /* aessmem */ 874cb49fecSPaul Walmsley [1] = PWRSTS_OFF, /* periphmem */ 886e01478aSPaul Walmsley }, 896e01478aSPaul Walmsley .pwrsts_mem_on = { 904cb49fecSPaul Walmsley [0] = PWRSTS_ON, /* aessmem */ 914cb49fecSPaul Walmsley [1] = PWRSTS_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", 997e1b9405SBenoit Cousson .voltdm = { .name = "core" }, 100cdb54c44SPaul Walmsley .prcm_offs = OMAP4430_PRM_DSS_INST, 101a64bb9cdSPaul Walmsley .prcm_partition = OMAP4430_PRM_PARTITION, 1026e01478aSPaul Walmsley .pwrsts = PWRSTS_OFF_RET_ON, 1036e01478aSPaul Walmsley .pwrsts_logic_ret = PWRSTS_OFF, 1046e01478aSPaul Walmsley .banks = 1, 1056e01478aSPaul Walmsley .pwrsts_mem_ret = { 1064cb49fecSPaul Walmsley [0] = PWRSTS_OFF, /* dss_mem */ 1076e01478aSPaul Walmsley }, 1086e01478aSPaul Walmsley .pwrsts_mem_on = { 1094cb49fecSPaul Walmsley [0] = PWRSTS_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", 1177e1b9405SBenoit Cousson .voltdm = { .name = "iva" }, 118cdb54c44SPaul Walmsley .prcm_offs = OMAP4430_PRM_TESLA_INST, 119a64bb9cdSPaul Walmsley .prcm_partition = OMAP4430_PRM_PARTITION, 1206e01478aSPaul Walmsley .pwrsts = PWRSTS_OFF_RET_ON, 1216e01478aSPaul Walmsley .pwrsts_logic_ret = PWRSTS_OFF_RET, 1226e01478aSPaul Walmsley .banks = 3, 1236e01478aSPaul Walmsley .pwrsts_mem_ret = { 1244cb49fecSPaul Walmsley [0] = PWRSTS_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 = { 1294cb49fecSPaul Walmsley [0] = PWRSTS_ON, /* tesla_edma */ 1304cb49fecSPaul Walmsley [1] = PWRSTS_ON, /* tesla_l1 */ 1314cb49fecSPaul Walmsley [2] = PWRSTS_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", 1397e1b9405SBenoit Cousson .voltdm = { .name = "wakeup" }, 140cdb54c44SPaul Walmsley .prcm_offs = OMAP4430_PRM_WKUP_INST, 141a64bb9cdSPaul Walmsley .prcm_partition = OMAP4430_PRM_PARTITION, 1426e01478aSPaul Walmsley .pwrsts = PWRSTS_ON, 1436e01478aSPaul Walmsley .banks = 1, 1446e01478aSPaul Walmsley .pwrsts_mem_ret = { 1454cb49fecSPaul Walmsley [0] = PWRSTS_OFF, /* wkup_bank */ 1466e01478aSPaul Walmsley }, 1476e01478aSPaul Walmsley .pwrsts_mem_on = { 1484cb49fecSPaul Walmsley [0] = PWRSTS_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", 1557e1b9405SBenoit Cousson .voltdm = { .name = "mpu" }, 156cdb54c44SPaul Walmsley .prcm_offs = OMAP4430_PRCM_MPU_CPU0_INST, 157a64bb9cdSPaul Walmsley .prcm_partition = OMAP4430_PRCM_MPU_PARTITION, 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 = { 1654cb49fecSPaul Walmsley [0] = PWRSTS_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", 1727e1b9405SBenoit Cousson .voltdm = { .name = "mpu" }, 173cdb54c44SPaul Walmsley .prcm_offs = OMAP4430_PRCM_MPU_CPU1_INST, 174a64bb9cdSPaul Walmsley .prcm_partition = OMAP4430_PRCM_MPU_PARTITION, 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 = { 1824cb49fecSPaul Walmsley [0] = PWRSTS_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", 1897e1b9405SBenoit Cousson .voltdm = { .name = "wakeup" }, 190cdb54c44SPaul Walmsley .prcm_offs = OMAP4430_PRM_EMU_INST, 191a64bb9cdSPaul Walmsley .prcm_partition = OMAP4430_PRM_PARTITION, 1926e01478aSPaul Walmsley .pwrsts = PWRSTS_OFF_ON, 1936e01478aSPaul Walmsley .banks = 1, 1946e01478aSPaul Walmsley .pwrsts_mem_ret = { 1954cb49fecSPaul Walmsley [0] = PWRSTS_OFF, /* emu_bank */ 1966e01478aSPaul Walmsley }, 1976e01478aSPaul Walmsley .pwrsts_mem_on = { 1984cb49fecSPaul Walmsley [0] = PWRSTS_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", 2057e1b9405SBenoit Cousson .voltdm = { .name = "mpu" }, 206cdb54c44SPaul Walmsley .prcm_offs = OMAP4430_PRM_MPU_INST, 207a64bb9cdSPaul Walmsley .prcm_partition = OMAP4430_PRM_PARTITION, 208a57341f7SSantosh Shilimkar .pwrsts = PWRSTS_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 */ 2144cb49fecSPaul Walmsley [2] = PWRSTS_RET, /* mpu_ram */ 2156e01478aSPaul Walmsley }, 2166e01478aSPaul Walmsley .pwrsts_mem_on = { 2174cb49fecSPaul Walmsley [0] = PWRSTS_ON, /* mpu_l1 */ 2184cb49fecSPaul Walmsley [1] = PWRSTS_ON, /* mpu_l2 */ 2194cb49fecSPaul Walmsley [2] = PWRSTS_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", 2267e1b9405SBenoit Cousson .voltdm = { .name = "iva" }, 227cdb54c44SPaul Walmsley .prcm_offs = OMAP4430_PRM_IVAHD_INST, 228a64bb9cdSPaul Walmsley .prcm_partition = OMAP4430_PRM_PARTITION, 2296e01478aSPaul Walmsley .pwrsts = PWRSTS_OFF_RET_ON, 2303ed4566eSSantosh Shilimkar .pwrsts_logic_ret = PWRSTS_OFF, 2316e01478aSPaul Walmsley .banks = 4, 2326e01478aSPaul Walmsley .pwrsts_mem_ret = { 2334cb49fecSPaul Walmsley [0] = PWRSTS_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 = { 2394cb49fecSPaul Walmsley [0] = PWRSTS_ON, /* hwa_mem */ 2404cb49fecSPaul Walmsley [1] = PWRSTS_ON, /* sl2_mem */ 2414cb49fecSPaul Walmsley [2] = PWRSTS_ON, /* tcm1_mem */ 2424cb49fecSPaul Walmsley [3] = PWRSTS_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", 2507e1b9405SBenoit Cousson .voltdm = { .name = "core" }, 251cdb54c44SPaul Walmsley .prcm_offs = OMAP4430_PRM_CAM_INST, 252a64bb9cdSPaul Walmsley .prcm_partition = OMAP4430_PRM_PARTITION, 2536e01478aSPaul Walmsley .pwrsts = PWRSTS_OFF_ON, 2546e01478aSPaul Walmsley .banks = 1, 2556e01478aSPaul Walmsley .pwrsts_mem_ret = { 2564cb49fecSPaul Walmsley [0] = PWRSTS_OFF, /* cam_mem */ 2576e01478aSPaul Walmsley }, 2586e01478aSPaul Walmsley .pwrsts_mem_on = { 2594cb49fecSPaul Walmsley [0] = PWRSTS_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", 2677e1b9405SBenoit Cousson .voltdm = { .name = "core" }, 268cdb54c44SPaul Walmsley .prcm_offs = OMAP4430_PRM_L3INIT_INST, 269a64bb9cdSPaul Walmsley .prcm_partition = OMAP4430_PRM_PARTITION, 27080f09365SSantosh Shilimkar .pwrsts = PWRSTS_RET_ON, 2716e01478aSPaul Walmsley .pwrsts_logic_ret = PWRSTS_OFF_RET, 2726e01478aSPaul Walmsley .banks = 1, 2736e01478aSPaul Walmsley .pwrsts_mem_ret = { 2744cb49fecSPaul Walmsley [0] = PWRSTS_OFF, /* l3init_bank1 */ 2756e01478aSPaul Walmsley }, 2766e01478aSPaul Walmsley .pwrsts_mem_on = { 2774cb49fecSPaul Walmsley [0] = PWRSTS_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", 2857e1b9405SBenoit Cousson .voltdm = { .name = "core" }, 286cdb54c44SPaul Walmsley .prcm_offs = OMAP4430_PRM_L4PER_INST, 287a64bb9cdSPaul Walmsley .prcm_partition = OMAP4430_PRM_PARTITION, 288474e7aebSRajendra Nayak .pwrsts = PWRSTS_RET_ON, 2896e01478aSPaul Walmsley .pwrsts_logic_ret = PWRSTS_OFF_RET, 2906e01478aSPaul Walmsley .banks = 2, 2916e01478aSPaul Walmsley .pwrsts_mem_ret = { 2924cb49fecSPaul Walmsley [0] = PWRSTS_OFF, /* nonretained_bank */ 2934cb49fecSPaul Walmsley [1] = PWRSTS_RET, /* retained_bank */ 2946e01478aSPaul Walmsley }, 2956e01478aSPaul Walmsley .pwrsts_mem_on = { 2964cb49fecSPaul Walmsley [0] = PWRSTS_ON, /* nonretained_bank */ 2974cb49fecSPaul Walmsley [1] = PWRSTS_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", 3087e1b9405SBenoit Cousson .voltdm = { .name = "core" }, 309cdb54c44SPaul Walmsley .prcm_offs = OMAP4430_PRM_ALWAYS_ON_INST, 310a64bb9cdSPaul Walmsley .prcm_partition = OMAP4430_PRM_PARTITION, 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", 3177e1b9405SBenoit Cousson .voltdm = { .name = "core" }, 318cdb54c44SPaul Walmsley .prcm_offs = OMAP4430_PRM_CEFUSE_INST, 319a64bb9cdSPaul Walmsley .prcm_partition = OMAP4430_PRM_PARTITION, 3206e01478aSPaul Walmsley .pwrsts = PWRSTS_OFF_ON, 3219a2a3603SBenoit Cousson .flags = PWRDM_HAS_LOWPOWERSTATECHANGE, 3226e01478aSPaul Walmsley }; 3236e01478aSPaul Walmsley 3246e01478aSPaul Walmsley /* 3256e01478aSPaul Walmsley * The following power domains are not under SW control 3266e01478aSPaul Walmsley * 3276e01478aSPaul Walmsley * always_on_iva 3286e01478aSPaul Walmsley * always_on_mpu 3296e01478aSPaul Walmsley * stdefuse 3306e01478aSPaul Walmsley */ 3316e01478aSPaul Walmsley 3326e01478aSPaul Walmsley /* As powerdomains are added or removed above, this list must also be changed */ 3336e01478aSPaul Walmsley static struct powerdomain *powerdomains_omap44xx[] __initdata = { 3346e01478aSPaul Walmsley &core_44xx_pwrdm, 3356e01478aSPaul Walmsley &gfx_44xx_pwrdm, 3366e01478aSPaul Walmsley &abe_44xx_pwrdm, 3376e01478aSPaul Walmsley &dss_44xx_pwrdm, 3386e01478aSPaul Walmsley &tesla_44xx_pwrdm, 3396e01478aSPaul Walmsley &wkup_44xx_pwrdm, 3406e01478aSPaul Walmsley &cpu0_44xx_pwrdm, 3416e01478aSPaul Walmsley &cpu1_44xx_pwrdm, 3426e01478aSPaul Walmsley &emu_44xx_pwrdm, 3436e01478aSPaul Walmsley &mpu_44xx_pwrdm, 3446e01478aSPaul Walmsley &ivahd_44xx_pwrdm, 3456e01478aSPaul Walmsley &cam_44xx_pwrdm, 3466e01478aSPaul Walmsley &l3init_44xx_pwrdm, 3476e01478aSPaul Walmsley &l4per_44xx_pwrdm, 3486e01478aSPaul Walmsley &always_on_core_44xx_pwrdm, 3496e01478aSPaul Walmsley &cefuse_44xx_pwrdm, 3506e01478aSPaul Walmsley NULL 3516e01478aSPaul Walmsley }; 3526e01478aSPaul Walmsley 3536e01478aSPaul Walmsley void __init omap44xx_powerdomains_init(void) 3546e01478aSPaul Walmsley { 355129c65eeSPaul Walmsley pwrdm_register_platform_funcs(&omap4_pwrdm_operations); 356129c65eeSPaul Walmsley pwrdm_register_pwrdms(powerdomains_omap44xx); 357129c65eeSPaul Walmsley pwrdm_complete_init(); 3586e01478aSPaul Walmsley } 359