1411f968fSBenoit Cousson /* 2411f968fSBenoit Cousson * OMAP54XX Power domains framework 3411f968fSBenoit Cousson * 4411f968fSBenoit Cousson * Copyright (C) 2013 Texas Instruments, Inc. 5411f968fSBenoit Cousson * 6411f968fSBenoit Cousson * Abhijit Pagare (abhijitpagare@ti.com) 7411f968fSBenoit Cousson * Benoit Cousson (b-cousson@ti.com) 8411f968fSBenoit Cousson * Paul Walmsley (paul@pwsan.com) 9411f968fSBenoit Cousson * 10411f968fSBenoit Cousson * This file is automatically generated from the OMAP hardware databases. 11411f968fSBenoit Cousson * We respectfully ask that any modifications to this file be coordinated 12411f968fSBenoit Cousson * with the public linux-omap@vger.kernel.org mailing list and the 13411f968fSBenoit Cousson * authors above to ensure that the autogeneration scripts are kept 14411f968fSBenoit Cousson * up-to-date with the file contents. 15411f968fSBenoit Cousson * 16411f968fSBenoit Cousson * This program is free software; you can redistribute it and/or modify 17411f968fSBenoit Cousson * it under the terms of the GNU General Public License version 2 as 18411f968fSBenoit Cousson * published by the Free Software Foundation. 19411f968fSBenoit Cousson */ 20411f968fSBenoit Cousson 21411f968fSBenoit Cousson #include <linux/kernel.h> 22411f968fSBenoit Cousson #include <linux/init.h> 23411f968fSBenoit Cousson 24411f968fSBenoit Cousson #include "powerdomain.h" 25411f968fSBenoit Cousson 26411f968fSBenoit Cousson #include "prcm-common.h" 27411f968fSBenoit Cousson #include "prcm44xx.h" 28411f968fSBenoit Cousson #include "prm-regbits-54xx.h" 29411f968fSBenoit Cousson #include "prm54xx.h" 30411f968fSBenoit Cousson #include "prcm_mpu54xx.h" 31411f968fSBenoit Cousson 32411f968fSBenoit Cousson /* core_54xx_pwrdm: CORE power domain */ 33411f968fSBenoit Cousson static struct powerdomain core_54xx_pwrdm = { 34411f968fSBenoit Cousson .name = "core_pwrdm", 35411f968fSBenoit Cousson .voltdm = { .name = "core" }, 36411f968fSBenoit Cousson .prcm_offs = OMAP54XX_PRM_CORE_INST, 37411f968fSBenoit Cousson .prcm_partition = OMAP54XX_PRM_PARTITION, 38411f968fSBenoit Cousson .pwrsts = PWRSTS_RET_ON, 39411f968fSBenoit Cousson .pwrsts_logic_ret = PWRSTS_OFF_RET, 40411f968fSBenoit Cousson .banks = 5, 41411f968fSBenoit Cousson .pwrsts_mem_ret = { 42411f968fSBenoit Cousson [0] = PWRSTS_OFF_RET, /* core_nret_bank */ 43411f968fSBenoit Cousson [1] = PWRSTS_OFF_RET, /* core_ocmram */ 44411f968fSBenoit Cousson [2] = PWRSTS_OFF_RET, /* core_other_bank */ 45411f968fSBenoit Cousson [3] = PWRSTS_OFF_RET, /* ipu_l2ram */ 46411f968fSBenoit Cousson [4] = PWRSTS_OFF_RET, /* ipu_unicache */ 47411f968fSBenoit Cousson }, 48411f968fSBenoit Cousson .pwrsts_mem_on = { 49411f968fSBenoit Cousson [0] = PWRSTS_OFF_RET, /* core_nret_bank */ 50411f968fSBenoit Cousson [1] = PWRSTS_OFF_RET, /* core_ocmram */ 51411f968fSBenoit Cousson [2] = PWRSTS_OFF_RET, /* core_other_bank */ 52411f968fSBenoit Cousson [3] = PWRSTS_OFF_RET, /* ipu_l2ram */ 53411f968fSBenoit Cousson [4] = PWRSTS_OFF_RET, /* ipu_unicache */ 54411f968fSBenoit Cousson }, 55411f968fSBenoit Cousson .flags = PWRDM_HAS_LOWPOWERSTATECHANGE, 56411f968fSBenoit Cousson }; 57411f968fSBenoit Cousson 58411f968fSBenoit Cousson /* abe_54xx_pwrdm: Audio back end power domain */ 59411f968fSBenoit Cousson static struct powerdomain abe_54xx_pwrdm = { 60411f968fSBenoit Cousson .name = "abe_pwrdm", 61411f968fSBenoit Cousson .voltdm = { .name = "core" }, 62411f968fSBenoit Cousson .prcm_offs = OMAP54XX_PRM_ABE_INST, 63411f968fSBenoit Cousson .prcm_partition = OMAP54XX_PRM_PARTITION, 64411f968fSBenoit Cousson .pwrsts = PWRSTS_OFF_RET_ON, 65411f968fSBenoit Cousson .pwrsts_logic_ret = PWRSTS_OFF, 66411f968fSBenoit Cousson .banks = 2, 67411f968fSBenoit Cousson .pwrsts_mem_ret = { 68411f968fSBenoit Cousson [0] = PWRSTS_OFF_RET, /* aessmem */ 69411f968fSBenoit Cousson [1] = PWRSTS_OFF_RET, /* periphmem */ 70411f968fSBenoit Cousson }, 71411f968fSBenoit Cousson .pwrsts_mem_on = { 72411f968fSBenoit Cousson [0] = PWRSTS_OFF_RET, /* aessmem */ 73411f968fSBenoit Cousson [1] = PWRSTS_OFF_RET, /* periphmem */ 74411f968fSBenoit Cousson }, 75411f968fSBenoit Cousson .flags = PWRDM_HAS_LOWPOWERSTATECHANGE, 76411f968fSBenoit Cousson }; 77411f968fSBenoit Cousson 78411f968fSBenoit Cousson /* coreaon_54xx_pwrdm: Always ON logic that sits in VDD_CORE voltage domain */ 79411f968fSBenoit Cousson static struct powerdomain coreaon_54xx_pwrdm = { 80411f968fSBenoit Cousson .name = "coreaon_pwrdm", 81411f968fSBenoit Cousson .voltdm = { .name = "core" }, 82411f968fSBenoit Cousson .prcm_offs = OMAP54XX_PRM_COREAON_INST, 83411f968fSBenoit Cousson .prcm_partition = OMAP54XX_PRM_PARTITION, 84411f968fSBenoit Cousson .pwrsts = PWRSTS_ON, 85411f968fSBenoit Cousson }; 86411f968fSBenoit Cousson 87411f968fSBenoit Cousson /* dss_54xx_pwrdm: Display subsystem power domain */ 88411f968fSBenoit Cousson static struct powerdomain dss_54xx_pwrdm = { 89411f968fSBenoit Cousson .name = "dss_pwrdm", 90411f968fSBenoit Cousson .voltdm = { .name = "core" }, 91411f968fSBenoit Cousson .prcm_offs = OMAP54XX_PRM_DSS_INST, 92411f968fSBenoit Cousson .prcm_partition = OMAP54XX_PRM_PARTITION, 93411f968fSBenoit Cousson .pwrsts = PWRSTS_OFF_RET_ON, 94411f968fSBenoit Cousson .pwrsts_logic_ret = PWRSTS_OFF, 95411f968fSBenoit Cousson .banks = 1, 96411f968fSBenoit Cousson .pwrsts_mem_ret = { 97411f968fSBenoit Cousson [0] = PWRSTS_OFF_RET, /* dss_mem */ 98411f968fSBenoit Cousson }, 99411f968fSBenoit Cousson .pwrsts_mem_on = { 100411f968fSBenoit Cousson [0] = PWRSTS_OFF_RET, /* dss_mem */ 101411f968fSBenoit Cousson }, 102411f968fSBenoit Cousson .flags = PWRDM_HAS_LOWPOWERSTATECHANGE, 103411f968fSBenoit Cousson }; 104411f968fSBenoit Cousson 105411f968fSBenoit Cousson /* cpu0_54xx_pwrdm: MPU0 processor and Neon coprocessor power domain */ 106411f968fSBenoit Cousson static struct powerdomain cpu0_54xx_pwrdm = { 107411f968fSBenoit Cousson .name = "cpu0_pwrdm", 108411f968fSBenoit Cousson .voltdm = { .name = "mpu" }, 109411f968fSBenoit Cousson .prcm_offs = OMAP54XX_PRCM_MPU_PRM_C0_INST, 110411f968fSBenoit Cousson .prcm_partition = OMAP54XX_PRCM_MPU_PARTITION, 111411f968fSBenoit Cousson .pwrsts = PWRSTS_OFF_RET_ON, 112411f968fSBenoit Cousson .pwrsts_logic_ret = PWRSTS_OFF_RET, 113411f968fSBenoit Cousson .banks = 1, 114411f968fSBenoit Cousson .pwrsts_mem_ret = { 115411f968fSBenoit Cousson [0] = PWRSTS_OFF_RET, /* cpu0_l1 */ 116411f968fSBenoit Cousson }, 117411f968fSBenoit Cousson .pwrsts_mem_on = { 118411f968fSBenoit Cousson [0] = PWRSTS_ON, /* cpu0_l1 */ 119411f968fSBenoit Cousson }, 120411f968fSBenoit Cousson }; 121411f968fSBenoit Cousson 122411f968fSBenoit Cousson /* cpu1_54xx_pwrdm: MPU1 processor and Neon coprocessor power domain */ 123411f968fSBenoit Cousson static struct powerdomain cpu1_54xx_pwrdm = { 124411f968fSBenoit Cousson .name = "cpu1_pwrdm", 125411f968fSBenoit Cousson .voltdm = { .name = "mpu" }, 126411f968fSBenoit Cousson .prcm_offs = OMAP54XX_PRCM_MPU_PRM_C1_INST, 127411f968fSBenoit Cousson .prcm_partition = OMAP54XX_PRCM_MPU_PARTITION, 128411f968fSBenoit Cousson .pwrsts = PWRSTS_OFF_RET_ON, 129411f968fSBenoit Cousson .pwrsts_logic_ret = PWRSTS_OFF_RET, 130411f968fSBenoit Cousson .banks = 1, 131411f968fSBenoit Cousson .pwrsts_mem_ret = { 132411f968fSBenoit Cousson [0] = PWRSTS_OFF_RET, /* cpu1_l1 */ 133411f968fSBenoit Cousson }, 134411f968fSBenoit Cousson .pwrsts_mem_on = { 135411f968fSBenoit Cousson [0] = PWRSTS_ON, /* cpu1_l1 */ 136411f968fSBenoit Cousson }, 137411f968fSBenoit Cousson }; 138411f968fSBenoit Cousson 139411f968fSBenoit Cousson /* emu_54xx_pwrdm: Emulation power domain */ 140411f968fSBenoit Cousson static struct powerdomain emu_54xx_pwrdm = { 141411f968fSBenoit Cousson .name = "emu_pwrdm", 142411f968fSBenoit Cousson .voltdm = { .name = "wkup" }, 143411f968fSBenoit Cousson .prcm_offs = OMAP54XX_PRM_EMU_INST, 144411f968fSBenoit Cousson .prcm_partition = OMAP54XX_PRM_PARTITION, 145411f968fSBenoit Cousson .pwrsts = PWRSTS_OFF_ON, 146411f968fSBenoit Cousson .banks = 1, 147411f968fSBenoit Cousson .pwrsts_mem_ret = { 148411f968fSBenoit Cousson [0] = PWRSTS_OFF_RET, /* emu_bank */ 149411f968fSBenoit Cousson }, 150411f968fSBenoit Cousson .pwrsts_mem_on = { 151411f968fSBenoit Cousson [0] = PWRSTS_OFF_RET, /* emu_bank */ 152411f968fSBenoit Cousson }, 153411f968fSBenoit Cousson }; 154411f968fSBenoit Cousson 155411f968fSBenoit Cousson /* mpu_54xx_pwrdm: Modena processor and the Neon coprocessor power domain */ 156411f968fSBenoit Cousson static struct powerdomain mpu_54xx_pwrdm = { 157411f968fSBenoit Cousson .name = "mpu_pwrdm", 158411f968fSBenoit Cousson .voltdm = { .name = "mpu" }, 159411f968fSBenoit Cousson .prcm_offs = OMAP54XX_PRM_MPU_INST, 160411f968fSBenoit Cousson .prcm_partition = OMAP54XX_PRM_PARTITION, 161411f968fSBenoit Cousson .pwrsts = PWRSTS_RET_ON, 162411f968fSBenoit Cousson .pwrsts_logic_ret = PWRSTS_OFF_RET, 163411f968fSBenoit Cousson .banks = 2, 164411f968fSBenoit Cousson .pwrsts_mem_ret = { 165411f968fSBenoit Cousson [0] = PWRSTS_OFF_RET, /* mpu_l2 */ 166411f968fSBenoit Cousson [1] = PWRSTS_RET, /* mpu_ram */ 167411f968fSBenoit Cousson }, 168411f968fSBenoit Cousson .pwrsts_mem_on = { 169411f968fSBenoit Cousson [0] = PWRSTS_OFF_RET, /* mpu_l2 */ 170411f968fSBenoit Cousson [1] = PWRSTS_OFF_RET, /* mpu_ram */ 171411f968fSBenoit Cousson }, 172411f968fSBenoit Cousson }; 173411f968fSBenoit Cousson 174411f968fSBenoit Cousson /* custefuse_54xx_pwrdm: Customer efuse controller power domain */ 175411f968fSBenoit Cousson static struct powerdomain custefuse_54xx_pwrdm = { 176411f968fSBenoit Cousson .name = "custefuse_pwrdm", 177411f968fSBenoit Cousson .voltdm = { .name = "core" }, 178411f968fSBenoit Cousson .prcm_offs = OMAP54XX_PRM_CUSTEFUSE_INST, 179411f968fSBenoit Cousson .prcm_partition = OMAP54XX_PRM_PARTITION, 180411f968fSBenoit Cousson .pwrsts = PWRSTS_OFF_ON, 181411f968fSBenoit Cousson .flags = PWRDM_HAS_LOWPOWERSTATECHANGE, 182411f968fSBenoit Cousson }; 183411f968fSBenoit Cousson 184411f968fSBenoit Cousson /* dsp_54xx_pwrdm: Tesla processor power domain */ 185411f968fSBenoit Cousson static struct powerdomain dsp_54xx_pwrdm = { 186411f968fSBenoit Cousson .name = "dsp_pwrdm", 187411f968fSBenoit Cousson .voltdm = { .name = "mm" }, 188411f968fSBenoit Cousson .prcm_offs = OMAP54XX_PRM_DSP_INST, 189411f968fSBenoit Cousson .prcm_partition = OMAP54XX_PRM_PARTITION, 190411f968fSBenoit Cousson .pwrsts = PWRSTS_OFF_RET_ON, 191411f968fSBenoit Cousson .pwrsts_logic_ret = PWRSTS_OFF_RET, 192411f968fSBenoit Cousson .banks = 3, 193411f968fSBenoit Cousson .pwrsts_mem_ret = { 194411f968fSBenoit Cousson [0] = PWRSTS_OFF_RET, /* dsp_edma */ 195411f968fSBenoit Cousson [1] = PWRSTS_OFF_RET, /* dsp_l1 */ 196411f968fSBenoit Cousson [2] = PWRSTS_OFF_RET, /* dsp_l2 */ 197411f968fSBenoit Cousson }, 198411f968fSBenoit Cousson .pwrsts_mem_on = { 199411f968fSBenoit Cousson [0] = PWRSTS_OFF_RET, /* dsp_edma */ 200411f968fSBenoit Cousson [1] = PWRSTS_OFF_RET, /* dsp_l1 */ 201411f968fSBenoit Cousson [2] = PWRSTS_OFF_RET, /* dsp_l2 */ 202411f968fSBenoit Cousson }, 203411f968fSBenoit Cousson .flags = PWRDM_HAS_LOWPOWERSTATECHANGE, 204411f968fSBenoit Cousson }; 205411f968fSBenoit Cousson 206411f968fSBenoit Cousson /* cam_54xx_pwrdm: Camera subsystem power domain */ 207411f968fSBenoit Cousson static struct powerdomain cam_54xx_pwrdm = { 208411f968fSBenoit Cousson .name = "cam_pwrdm", 209411f968fSBenoit Cousson .voltdm = { .name = "core" }, 210411f968fSBenoit Cousson .prcm_offs = OMAP54XX_PRM_CAM_INST, 211411f968fSBenoit Cousson .prcm_partition = OMAP54XX_PRM_PARTITION, 212411f968fSBenoit Cousson .pwrsts = PWRSTS_OFF_ON, 213411f968fSBenoit Cousson .banks = 1, 214411f968fSBenoit Cousson .pwrsts_mem_ret = { 215411f968fSBenoit Cousson [0] = PWRSTS_OFF_RET, /* cam_mem */ 216411f968fSBenoit Cousson }, 217411f968fSBenoit Cousson .pwrsts_mem_on = { 218411f968fSBenoit Cousson [0] = PWRSTS_OFF_RET, /* cam_mem */ 219411f968fSBenoit Cousson }, 220411f968fSBenoit Cousson .flags = PWRDM_HAS_LOWPOWERSTATECHANGE, 221411f968fSBenoit Cousson }; 222411f968fSBenoit Cousson 223411f968fSBenoit Cousson /* l3init_54xx_pwrdm: L3 initators pheripherals power domain */ 224411f968fSBenoit Cousson static struct powerdomain l3init_54xx_pwrdm = { 225411f968fSBenoit Cousson .name = "l3init_pwrdm", 226411f968fSBenoit Cousson .voltdm = { .name = "core" }, 227411f968fSBenoit Cousson .prcm_offs = OMAP54XX_PRM_L3INIT_INST, 228411f968fSBenoit Cousson .prcm_partition = OMAP54XX_PRM_PARTITION, 229411f968fSBenoit Cousson .pwrsts = PWRSTS_RET_ON, 230411f968fSBenoit Cousson .pwrsts_logic_ret = PWRSTS_OFF_RET, 231411f968fSBenoit Cousson .banks = 2, 232411f968fSBenoit Cousson .pwrsts_mem_ret = { 233411f968fSBenoit Cousson [0] = PWRSTS_OFF_RET, /* l3init_bank1 */ 234411f968fSBenoit Cousson [1] = PWRSTS_OFF_RET, /* l3init_bank2 */ 235411f968fSBenoit Cousson }, 236411f968fSBenoit Cousson .pwrsts_mem_on = { 237411f968fSBenoit Cousson [0] = PWRSTS_OFF_RET, /* l3init_bank1 */ 238411f968fSBenoit Cousson [1] = PWRSTS_OFF_RET, /* l3init_bank2 */ 239411f968fSBenoit Cousson }, 240411f968fSBenoit Cousson .flags = PWRDM_HAS_LOWPOWERSTATECHANGE, 241411f968fSBenoit Cousson }; 242411f968fSBenoit Cousson 243411f968fSBenoit Cousson /* gpu_54xx_pwrdm: 3D accelerator power domain */ 244411f968fSBenoit Cousson static struct powerdomain gpu_54xx_pwrdm = { 245411f968fSBenoit Cousson .name = "gpu_pwrdm", 246411f968fSBenoit Cousson .voltdm = { .name = "mm" }, 247411f968fSBenoit Cousson .prcm_offs = OMAP54XX_PRM_GPU_INST, 248411f968fSBenoit Cousson .prcm_partition = OMAP54XX_PRM_PARTITION, 249411f968fSBenoit Cousson .pwrsts = PWRSTS_OFF_ON, 250411f968fSBenoit Cousson .banks = 1, 251411f968fSBenoit Cousson .pwrsts_mem_ret = { 252411f968fSBenoit Cousson [0] = PWRSTS_OFF_RET, /* gpu_mem */ 253411f968fSBenoit Cousson }, 254411f968fSBenoit Cousson .pwrsts_mem_on = { 255411f968fSBenoit Cousson [0] = PWRSTS_OFF_RET, /* gpu_mem */ 256411f968fSBenoit Cousson }, 257411f968fSBenoit Cousson .flags = PWRDM_HAS_LOWPOWERSTATECHANGE, 258411f968fSBenoit Cousson }; 259411f968fSBenoit Cousson 260411f968fSBenoit Cousson /* wkupaon_54xx_pwrdm: Wake-up power domain */ 261411f968fSBenoit Cousson static struct powerdomain wkupaon_54xx_pwrdm = { 262411f968fSBenoit Cousson .name = "wkupaon_pwrdm", 263411f968fSBenoit Cousson .voltdm = { .name = "wkup" }, 264411f968fSBenoit Cousson .prcm_offs = OMAP54XX_PRM_WKUPAON_INST, 265411f968fSBenoit Cousson .prcm_partition = OMAP54XX_PRM_PARTITION, 266411f968fSBenoit Cousson .pwrsts = PWRSTS_ON, 267411f968fSBenoit Cousson .banks = 1, 268411f968fSBenoit Cousson .pwrsts_mem_ret = { 269411f968fSBenoit Cousson }, 270411f968fSBenoit Cousson .pwrsts_mem_on = { 271411f968fSBenoit Cousson [0] = PWRSTS_ON, /* wkup_bank */ 272411f968fSBenoit Cousson }, 273411f968fSBenoit Cousson }; 274411f968fSBenoit Cousson 275411f968fSBenoit Cousson /* iva_54xx_pwrdm: IVA-HD power domain */ 276411f968fSBenoit Cousson static struct powerdomain iva_54xx_pwrdm = { 277411f968fSBenoit Cousson .name = "iva_pwrdm", 278411f968fSBenoit Cousson .voltdm = { .name = "mm" }, 279411f968fSBenoit Cousson .prcm_offs = OMAP54XX_PRM_IVA_INST, 280411f968fSBenoit Cousson .prcm_partition = OMAP54XX_PRM_PARTITION, 281411f968fSBenoit Cousson .pwrsts = PWRSTS_OFF_RET_ON, 282411f968fSBenoit Cousson .pwrsts_logic_ret = PWRSTS_OFF, 283411f968fSBenoit Cousson .banks = 4, 284411f968fSBenoit Cousson .pwrsts_mem_ret = { 285411f968fSBenoit Cousson [0] = PWRSTS_OFF_RET, /* hwa_mem */ 286411f968fSBenoit Cousson [1] = PWRSTS_OFF_RET, /* sl2_mem */ 287411f968fSBenoit Cousson [2] = PWRSTS_OFF_RET, /* tcm1_mem */ 288411f968fSBenoit Cousson [3] = PWRSTS_OFF_RET, /* tcm2_mem */ 289411f968fSBenoit Cousson }, 290411f968fSBenoit Cousson .pwrsts_mem_on = { 291411f968fSBenoit Cousson [0] = PWRSTS_OFF_RET, /* hwa_mem */ 292411f968fSBenoit Cousson [1] = PWRSTS_OFF_RET, /* sl2_mem */ 293411f968fSBenoit Cousson [2] = PWRSTS_OFF_RET, /* tcm1_mem */ 294411f968fSBenoit Cousson [3] = PWRSTS_OFF_RET, /* tcm2_mem */ 295411f968fSBenoit Cousson }, 296411f968fSBenoit Cousson .flags = PWRDM_HAS_LOWPOWERSTATECHANGE, 297411f968fSBenoit Cousson }; 298411f968fSBenoit Cousson 299411f968fSBenoit Cousson /* 300411f968fSBenoit Cousson * The following power domains are not under SW control 301411f968fSBenoit Cousson * 302411f968fSBenoit Cousson * mpuaon 303411f968fSBenoit Cousson * mmaon 304411f968fSBenoit Cousson */ 305411f968fSBenoit Cousson 306411f968fSBenoit Cousson /* As powerdomains are added or removed above, this list must also be changed */ 307411f968fSBenoit Cousson static struct powerdomain *powerdomains_omap54xx[] __initdata = { 308411f968fSBenoit Cousson &core_54xx_pwrdm, 309411f968fSBenoit Cousson &abe_54xx_pwrdm, 310411f968fSBenoit Cousson &coreaon_54xx_pwrdm, 311411f968fSBenoit Cousson &dss_54xx_pwrdm, 312411f968fSBenoit Cousson &cpu0_54xx_pwrdm, 313411f968fSBenoit Cousson &cpu1_54xx_pwrdm, 314411f968fSBenoit Cousson &emu_54xx_pwrdm, 315411f968fSBenoit Cousson &mpu_54xx_pwrdm, 316411f968fSBenoit Cousson &custefuse_54xx_pwrdm, 317411f968fSBenoit Cousson &dsp_54xx_pwrdm, 318411f968fSBenoit Cousson &cam_54xx_pwrdm, 319411f968fSBenoit Cousson &l3init_54xx_pwrdm, 320411f968fSBenoit Cousson &gpu_54xx_pwrdm, 321411f968fSBenoit Cousson &wkupaon_54xx_pwrdm, 322411f968fSBenoit Cousson &iva_54xx_pwrdm, 323411f968fSBenoit Cousson NULL 324411f968fSBenoit Cousson }; 325411f968fSBenoit Cousson 326411f968fSBenoit Cousson void __init omap54xx_powerdomains_init(void) 327411f968fSBenoit Cousson { 328411f968fSBenoit Cousson pwrdm_register_platform_funcs(&omap4_pwrdm_operations); 329411f968fSBenoit Cousson pwrdm_register_pwrdms(powerdomains_omap54xx); 330411f968fSBenoit Cousson pwrdm_complete_init(); 331411f968fSBenoit Cousson } 332