powerdomains3xxx_data.c revision 72e06d087204f3bc9acf281717b90ebf0b9731f7
1ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley/* 298fa3d8aeabf7a039cc920a9c2ffebc6b4648e2bPaul Walmsley * OMAP3 powerdomain definitions 3ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley * 4ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley * Copyright (C) 2007-2008 Texas Instruments, Inc. 598fa3d8aeabf7a039cc920a9c2ffebc6b4648e2bPaul Walmsley * Copyright (C) 2007-2010 Nokia Corporation 6ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley * 76e01478ae8a4322c9a2b2d6efed50196265ed5f2Paul Walmsley * Paul Walmsley, Jouni Högander 8ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley * 9ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley * This program is free software; you can redistribute it and/or modify 10ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley * it under the terms of the GNU General Public License version 2 as 11ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley * published by the Free Software Foundation. 12ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley */ 13ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley 146e01478ae8a4322c9a2b2d6efed50196265ed5f2Paul Walmsley#include <linux/kernel.h> 156e01478ae8a4322c9a2b2d6efed50196265ed5f2Paul Walmsley#include <linux/init.h> 16ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley 1772e06d087204f3bc9acf281717b90ebf0b9731f7Paul Walmsley#include "powerdomain.h" 186e01478ae8a4322c9a2b2d6efed50196265ed5f2Paul Walmsley#include "powerdomains2xxx_3xxx_data.h" 19ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley 20ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley#include "prcm-common.h" 2159fb659b065f52fcc2deed293cfbfc58f890376cPaul Walmsley#include "prm2xxx_3xxx.h" 22ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley#include "prm-regbits-34xx.h" 2359fb659b065f52fcc2deed293cfbfc58f890376cPaul Walmsley#include "cm2xxx_3xxx.h" 24ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley#include "cm-regbits-34xx.h" 25ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley 26ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley/* 27ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley * 34XX-specific powerdomains, dependencies 28ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley */ 29ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley 3098fa3d8aeabf7a039cc920a9c2ffebc6b4648e2bPaul Walmsley#ifdef CONFIG_ARCH_OMAP3 31ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley 32ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley/* 33ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley * Powerdomains 34ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley */ 35ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley 36ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsleystatic struct powerdomain iva2_pwrdm = { 37ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley .name = "iva2_pwrdm", 38ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley .prcm_offs = OMAP3430_IVA2_MOD, 39ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430), 40ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley .pwrsts = PWRSTS_OFF_RET_ON, 41ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley .pwrsts_logic_ret = PWRSTS_OFF_RET, 42ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley .banks = 4, 43ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley .pwrsts_mem_ret = { 44ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley [0] = PWRSTS_OFF_RET, 45ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley [1] = PWRSTS_OFF_RET, 46ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley [2] = PWRSTS_OFF_RET, 47ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley [3] = PWRSTS_OFF_RET, 48ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley }, 49ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley .pwrsts_mem_on = { 50ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley [0] = PWRDM_POWER_ON, 51ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley [1] = PWRDM_POWER_ON, 52ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley [2] = PWRSTS_OFF_ON, 53ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley [3] = PWRDM_POWER_ON, 54ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley }, 55ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley}; 56ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley 5798fa3d8aeabf7a039cc920a9c2ffebc6b4648e2bPaul Walmsleystatic struct powerdomain mpu_3xxx_pwrdm = { 58ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley .name = "mpu_pwrdm", 59ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley .prcm_offs = MPU_MOD, 60ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430), 61ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley .pwrsts = PWRSTS_OFF_RET_ON, 62ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley .pwrsts_logic_ret = PWRSTS_OFF_RET, 633863c74b512c1afd3ce6b2f81d8dea9f1d860968Thara Gopinath .flags = PWRDM_HAS_MPU_QUIRK, 64ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley .banks = 1, 65ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley .pwrsts_mem_ret = { 66ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley [0] = PWRSTS_OFF_RET, 67ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley }, 68ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley .pwrsts_mem_on = { 69ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley [0] = PWRSTS_OFF_ON, 70ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley }, 71ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley}; 72ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley 7358dcfb3a0f5eb0a882f7b696d4d2dc49b709ce5cAnand Gadiyar/* 7458dcfb3a0f5eb0a882f7b696d4d2dc49b709ce5cAnand Gadiyar * The USBTLL Save-and-Restore mechanism is broken on 7558dcfb3a0f5eb0a882f7b696d4d2dc49b709ce5cAnand Gadiyar * 3430s upto ES3.0 and 3630ES1.0. Hence this feature 7658dcfb3a0f5eb0a882f7b696d4d2dc49b709ce5cAnand Gadiyar * needs to be disabled on these chips. 7758dcfb3a0f5eb0a882f7b696d4d2dc49b709ce5cAnand Gadiyar * Refer: 3430 errata ID i459 and 3630 errata ID i579 78447b8da5d78ac8f2815a7824c0eb4ad66ba3e11eJean Pihet * 79447b8da5d78ac8f2815a7824c0eb4ad66ba3e11eJean Pihet * Note: setting the SAR flag could help for errata ID i478 80447b8da5d78ac8f2815a7824c0eb4ad66ba3e11eJean Pihet * which applies to 3430 <= ES3.1, but since the SAR feature 81447b8da5d78ac8f2815a7824c0eb4ad66ba3e11eJean Pihet * is broken, do not use it. 8258dcfb3a0f5eb0a882f7b696d4d2dc49b709ce5cAnand Gadiyar */ 8398fa3d8aeabf7a039cc920a9c2ffebc6b4648e2bPaul Walmsleystatic struct powerdomain core_3xxx_pre_es3_1_pwrdm = { 84ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley .name = "core_pwrdm", 85ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley .prcm_offs = CORE_MOD, 867eb1afc9765d07c9036b1ad9e7c03e5bd1a58a2bPaul Walmsley .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430ES1 | 877eb1afc9765d07c9036b1ad9e7c03e5bd1a58a2bPaul Walmsley CHIP_IS_OMAP3430ES2 | 8858dcfb3a0f5eb0a882f7b696d4d2dc49b709ce5cAnand Gadiyar CHIP_IS_OMAP3430ES3_0 | 8958dcfb3a0f5eb0a882f7b696d4d2dc49b709ce5cAnand Gadiyar CHIP_IS_OMAP3630ES1), 907eb1afc9765d07c9036b1ad9e7c03e5bd1a58a2bPaul Walmsley .pwrsts = PWRSTS_OFF_RET_ON, 914133a44e28cb65c380903ca69806eec039401f46Thara Gopinath .pwrsts_logic_ret = PWRSTS_OFF_RET, 927eb1afc9765d07c9036b1ad9e7c03e5bd1a58a2bPaul Walmsley .banks = 2, 937eb1afc9765d07c9036b1ad9e7c03e5bd1a58a2bPaul Walmsley .pwrsts_mem_ret = { 947eb1afc9765d07c9036b1ad9e7c03e5bd1a58a2bPaul Walmsley [0] = PWRSTS_OFF_RET, /* MEM1RETSTATE */ 957eb1afc9765d07c9036b1ad9e7c03e5bd1a58a2bPaul Walmsley [1] = PWRSTS_OFF_RET, /* MEM2RETSTATE */ 967eb1afc9765d07c9036b1ad9e7c03e5bd1a58a2bPaul Walmsley }, 977eb1afc9765d07c9036b1ad9e7c03e5bd1a58a2bPaul Walmsley .pwrsts_mem_on = { 987eb1afc9765d07c9036b1ad9e7c03e5bd1a58a2bPaul Walmsley [0] = PWRSTS_OFF_RET_ON, /* MEM1ONSTATE */ 997eb1afc9765d07c9036b1ad9e7c03e5bd1a58a2bPaul Walmsley [1] = PWRSTS_OFF_RET_ON, /* MEM2ONSTATE */ 1007eb1afc9765d07c9036b1ad9e7c03e5bd1a58a2bPaul Walmsley }, 1017eb1afc9765d07c9036b1ad9e7c03e5bd1a58a2bPaul Walmsley}; 1027eb1afc9765d07c9036b1ad9e7c03e5bd1a58a2bPaul Walmsley 10398fa3d8aeabf7a039cc920a9c2ffebc6b4648e2bPaul Walmsleystatic struct powerdomain core_3xxx_es3_1_pwrdm = { 1047eb1afc9765d07c9036b1ad9e7c03e5bd1a58a2bPaul Walmsley .name = "core_pwrdm", 1057eb1afc9765d07c9036b1ad9e7c03e5bd1a58a2bPaul Walmsley .prcm_offs = CORE_MOD, 10658dcfb3a0f5eb0a882f7b696d4d2dc49b709ce5cAnand Gadiyar .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430ES3_1 | 10758dcfb3a0f5eb0a882f7b696d4d2dc49b709ce5cAnand Gadiyar CHIP_GE_OMAP3630ES1_1), 108ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley .pwrsts = PWRSTS_OFF_RET_ON, 1094133a44e28cb65c380903ca69806eec039401f46Thara Gopinath .pwrsts_logic_ret = PWRSTS_OFF_RET, 110447b8da5d78ac8f2815a7824c0eb4ad66ba3e11eJean Pihet /* 111447b8da5d78ac8f2815a7824c0eb4ad66ba3e11eJean Pihet * Setting the SAR flag for errata ID i478 which applies 112447b8da5d78ac8f2815a7824c0eb4ad66ba3e11eJean Pihet * to 3430 <= ES3.1 113447b8da5d78ac8f2815a7824c0eb4ad66ba3e11eJean Pihet */ 1147eb1afc9765d07c9036b1ad9e7c03e5bd1a58a2bPaul Walmsley .flags = PWRDM_HAS_HDWR_SAR, /* for USBTLL only */ 115ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley .banks = 2, 116ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley .pwrsts_mem_ret = { 117ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley [0] = PWRSTS_OFF_RET, /* MEM1RETSTATE */ 118ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley [1] = PWRSTS_OFF_RET, /* MEM2RETSTATE */ 119ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley }, 120ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley .pwrsts_mem_on = { 121ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley [0] = PWRSTS_OFF_RET_ON, /* MEM1ONSTATE */ 122ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley [1] = PWRSTS_OFF_RET_ON, /* MEM2ONSTATE */ 123ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley }, 124ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley}; 125ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley 126ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsleystatic struct powerdomain dss_pwrdm = { 127ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley .name = "dss_pwrdm", 128ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430), 129ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley .prcm_offs = OMAP3430_DSS_MOD, 130ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley .pwrsts = PWRSTS_OFF_RET_ON, 131ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley .pwrsts_logic_ret = PWRDM_POWER_RET, 132ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley .banks = 1, 133ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley .pwrsts_mem_ret = { 134ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley [0] = PWRDM_POWER_RET, /* MEMRETSTATE */ 135ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley }, 136ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley .pwrsts_mem_on = { 137ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley [0] = PWRDM_POWER_ON, /* MEMONSTATE */ 138ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley }, 139ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley}; 140ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley 141be48ea74d49408c5c4f999c730d35eaf0034f273Paul Walmsley/* 142be48ea74d49408c5c4f999c730d35eaf0034f273Paul Walmsley * Although the 34XX TRM Rev K Table 4-371 notes that retention is a 143be48ea74d49408c5c4f999c730d35eaf0034f273Paul Walmsley * possible SGX powerstate, the SGX device itself does not support 144be48ea74d49408c5c4f999c730d35eaf0034f273Paul Walmsley * retention. 145be48ea74d49408c5c4f999c730d35eaf0034f273Paul Walmsley */ 146ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsleystatic struct powerdomain sgx_pwrdm = { 147ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley .name = "sgx_pwrdm", 148ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley .prcm_offs = OMAP3430ES2_SGX_MOD, 149d41ad52040dee5043ce6b1d49a1c8864706d2bfdPaul Walmsley .omap_chip = OMAP_CHIP_INIT(CHIP_GE_OMAP3430ES2), 150ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley /* XXX This is accurate for 3430 SGX, but what about GFX? */ 151be48ea74d49408c5c4f999c730d35eaf0034f273Paul Walmsley .pwrsts = PWRSTS_OFF_ON, 152ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley .pwrsts_logic_ret = PWRDM_POWER_RET, 153ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley .banks = 1, 154ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley .pwrsts_mem_ret = { 155ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley [0] = PWRDM_POWER_RET, /* MEMRETSTATE */ 156ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley }, 157ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley .pwrsts_mem_on = { 158ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley [0] = PWRDM_POWER_ON, /* MEMONSTATE */ 159ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley }, 160ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley}; 161ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley 162ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsleystatic struct powerdomain cam_pwrdm = { 163ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley .name = "cam_pwrdm", 164ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430), 165ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley .prcm_offs = OMAP3430_CAM_MOD, 166ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley .pwrsts = PWRSTS_OFF_RET_ON, 167ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley .pwrsts_logic_ret = PWRDM_POWER_RET, 168ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley .banks = 1, 169ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley .pwrsts_mem_ret = { 170ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley [0] = PWRDM_POWER_RET, /* MEMRETSTATE */ 171ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley }, 172ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley .pwrsts_mem_on = { 173ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley [0] = PWRDM_POWER_ON, /* MEMONSTATE */ 174ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley }, 175ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley}; 176ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley 177ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsleystatic struct powerdomain per_pwrdm = { 178ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley .name = "per_pwrdm", 179ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley .prcm_offs = OMAP3430_PER_MOD, 180ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430), 181ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley .pwrsts = PWRSTS_OFF_RET_ON, 182ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley .pwrsts_logic_ret = PWRSTS_OFF_RET, 183ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley .banks = 1, 184ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley .pwrsts_mem_ret = { 185ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley [0] = PWRDM_POWER_RET, /* MEMRETSTATE */ 186ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley }, 187ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley .pwrsts_mem_on = { 188ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley [0] = PWRDM_POWER_ON, /* MEMONSTATE */ 189ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley }, 190ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley}; 191ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley 192ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsleystatic struct powerdomain emu_pwrdm = { 193ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley .name = "emu_pwrdm", 194ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley .prcm_offs = OMAP3430_EMU_MOD, 195ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430), 196ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley}; 197ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley 198ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsleystatic struct powerdomain neon_pwrdm = { 199ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley .name = "neon_pwrdm", 200ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley .prcm_offs = OMAP3430_NEON_MOD, 201ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430), 202ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley .pwrsts = PWRSTS_OFF_RET_ON, 203ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley .pwrsts_logic_ret = PWRDM_POWER_RET, 204ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley}; 205ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley 206ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsleystatic struct powerdomain usbhost_pwrdm = { 207ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley .name = "usbhost_pwrdm", 208ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley .prcm_offs = OMAP3430ES2_USBHOST_MOD, 209d41ad52040dee5043ce6b1d49a1c8864706d2bfdPaul Walmsley .omap_chip = OMAP_CHIP_INIT(CHIP_GE_OMAP3430ES2), 210ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley .pwrsts = PWRSTS_OFF_RET_ON, 211ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley .pwrsts_logic_ret = PWRDM_POWER_RET, 212867d320b6c30d2478358eafeca0e1a6c60cf06c3Kalle Jokiniemi /* 213867d320b6c30d2478358eafeca0e1a6c60cf06c3Kalle Jokiniemi * REVISIT: Enabling usb host save and restore mechanism seems to 214867d320b6c30d2478358eafeca0e1a6c60cf06c3Kalle Jokiniemi * leave the usb host domain permanently in ACTIVE mode after 215867d320b6c30d2478358eafeca0e1a6c60cf06c3Kalle Jokiniemi * changing the usb host power domain state from OFF to active once. 216867d320b6c30d2478358eafeca0e1a6c60cf06c3Kalle Jokiniemi * Disabling for now. 217867d320b6c30d2478358eafeca0e1a6c60cf06c3Kalle Jokiniemi */ 218867d320b6c30d2478358eafeca0e1a6c60cf06c3Kalle Jokiniemi /*.flags = PWRDM_HAS_HDWR_SAR,*/ /* for USBHOST ctrlr only */ 219ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley .banks = 1, 220ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley .pwrsts_mem_ret = { 221ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley [0] = PWRDM_POWER_RET, /* MEMRETSTATE */ 222ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley }, 223ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley .pwrsts_mem_on = { 224ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley [0] = PWRDM_POWER_ON, /* MEMONSTATE */ 225ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley }, 226ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley}; 227ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley 22846e0ccf8ae32e53dc34a274977e2c6256b2deddcPaul Walmsleystatic struct powerdomain dpll1_pwrdm = { 22946e0ccf8ae32e53dc34a274977e2c6256b2deddcPaul Walmsley .name = "dpll1_pwrdm", 23046e0ccf8ae32e53dc34a274977e2c6256b2deddcPaul Walmsley .prcm_offs = MPU_MOD, 23146e0ccf8ae32e53dc34a274977e2c6256b2deddcPaul Walmsley .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430), 23246e0ccf8ae32e53dc34a274977e2c6256b2deddcPaul Walmsley}; 23346e0ccf8ae32e53dc34a274977e2c6256b2deddcPaul Walmsley 23446e0ccf8ae32e53dc34a274977e2c6256b2deddcPaul Walmsleystatic struct powerdomain dpll2_pwrdm = { 23546e0ccf8ae32e53dc34a274977e2c6256b2deddcPaul Walmsley .name = "dpll2_pwrdm", 23646e0ccf8ae32e53dc34a274977e2c6256b2deddcPaul Walmsley .prcm_offs = OMAP3430_IVA2_MOD, 23746e0ccf8ae32e53dc34a274977e2c6256b2deddcPaul Walmsley .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430), 23846e0ccf8ae32e53dc34a274977e2c6256b2deddcPaul Walmsley}; 23946e0ccf8ae32e53dc34a274977e2c6256b2deddcPaul Walmsley 24046e0ccf8ae32e53dc34a274977e2c6256b2deddcPaul Walmsleystatic struct powerdomain dpll3_pwrdm = { 24146e0ccf8ae32e53dc34a274977e2c6256b2deddcPaul Walmsley .name = "dpll3_pwrdm", 24246e0ccf8ae32e53dc34a274977e2c6256b2deddcPaul Walmsley .prcm_offs = PLL_MOD, 24346e0ccf8ae32e53dc34a274977e2c6256b2deddcPaul Walmsley .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430), 24446e0ccf8ae32e53dc34a274977e2c6256b2deddcPaul Walmsley}; 24546e0ccf8ae32e53dc34a274977e2c6256b2deddcPaul Walmsley 24646e0ccf8ae32e53dc34a274977e2c6256b2deddcPaul Walmsleystatic struct powerdomain dpll4_pwrdm = { 24746e0ccf8ae32e53dc34a274977e2c6256b2deddcPaul Walmsley .name = "dpll4_pwrdm", 24846e0ccf8ae32e53dc34a274977e2c6256b2deddcPaul Walmsley .prcm_offs = PLL_MOD, 24946e0ccf8ae32e53dc34a274977e2c6256b2deddcPaul Walmsley .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430), 25046e0ccf8ae32e53dc34a274977e2c6256b2deddcPaul Walmsley}; 25146e0ccf8ae32e53dc34a274977e2c6256b2deddcPaul Walmsley 25246e0ccf8ae32e53dc34a274977e2c6256b2deddcPaul Walmsleystatic struct powerdomain dpll5_pwrdm = { 25346e0ccf8ae32e53dc34a274977e2c6256b2deddcPaul Walmsley .name = "dpll5_pwrdm", 25446e0ccf8ae32e53dc34a274977e2c6256b2deddcPaul Walmsley .prcm_offs = PLL_MOD, 255d41ad52040dee5043ce6b1d49a1c8864706d2bfdPaul Walmsley .omap_chip = OMAP_CHIP_INIT(CHIP_GE_OMAP3430ES2), 25646e0ccf8ae32e53dc34a274977e2c6256b2deddcPaul Walmsley}; 25746e0ccf8ae32e53dc34a274977e2c6256b2deddcPaul Walmsley 2586e01478ae8a4322c9a2b2d6efed50196265ed5f2Paul Walmsley/* As powerdomains are added or removed above, this list must also be changed */ 2596e01478ae8a4322c9a2b2d6efed50196265ed5f2Paul Walmsleystatic struct powerdomain *powerdomains_omap3xxx[] __initdata = { 26046e0ccf8ae32e53dc34a274977e2c6256b2deddcPaul Walmsley 2616e01478ae8a4322c9a2b2d6efed50196265ed5f2Paul Walmsley &wkup_omap2_pwrdm, 2626e01478ae8a4322c9a2b2d6efed50196265ed5f2Paul Walmsley &gfx_omap2_pwrdm, 2636e01478ae8a4322c9a2b2d6efed50196265ed5f2Paul Walmsley &iva2_pwrdm, 2646e01478ae8a4322c9a2b2d6efed50196265ed5f2Paul Walmsley &mpu_3xxx_pwrdm, 2656e01478ae8a4322c9a2b2d6efed50196265ed5f2Paul Walmsley &neon_pwrdm, 2666e01478ae8a4322c9a2b2d6efed50196265ed5f2Paul Walmsley &core_3xxx_pre_es3_1_pwrdm, 2676e01478ae8a4322c9a2b2d6efed50196265ed5f2Paul Walmsley &core_3xxx_es3_1_pwrdm, 2686e01478ae8a4322c9a2b2d6efed50196265ed5f2Paul Walmsley &cam_pwrdm, 2696e01478ae8a4322c9a2b2d6efed50196265ed5f2Paul Walmsley &dss_pwrdm, 2706e01478ae8a4322c9a2b2d6efed50196265ed5f2Paul Walmsley &per_pwrdm, 2716e01478ae8a4322c9a2b2d6efed50196265ed5f2Paul Walmsley &emu_pwrdm, 2726e01478ae8a4322c9a2b2d6efed50196265ed5f2Paul Walmsley &sgx_pwrdm, 2736e01478ae8a4322c9a2b2d6efed50196265ed5f2Paul Walmsley &usbhost_pwrdm, 2746e01478ae8a4322c9a2b2d6efed50196265ed5f2Paul Walmsley &dpll1_pwrdm, 2756e01478ae8a4322c9a2b2d6efed50196265ed5f2Paul Walmsley &dpll2_pwrdm, 2766e01478ae8a4322c9a2b2d6efed50196265ed5f2Paul Walmsley &dpll3_pwrdm, 2776e01478ae8a4322c9a2b2d6efed50196265ed5f2Paul Walmsley &dpll4_pwrdm, 2786e01478ae8a4322c9a2b2d6efed50196265ed5f2Paul Walmsley &dpll5_pwrdm, 2796e01478ae8a4322c9a2b2d6efed50196265ed5f2Paul Walmsley#endif 2806e01478ae8a4322c9a2b2d6efed50196265ed5f2Paul Walmsley NULL 2816e01478ae8a4322c9a2b2d6efed50196265ed5f2Paul Walmsley}; 282ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley 283ecb24aa129c6d4b2152571f856320aa7dea41676Paul Walmsley 2846e01478ae8a4322c9a2b2d6efed50196265ed5f2Paul Walmsleyvoid __init omap3xxx_powerdomains_init(void) 2856e01478ae8a4322c9a2b2d6efed50196265ed5f2Paul Walmsley{ 2866e01478ae8a4322c9a2b2d6efed50196265ed5f2Paul Walmsley pwrdm_init(powerdomains_omap3xxx, &omap3_pwrdm_operations); 2876e01478ae8a4322c9a2b2d6efed50196265ed5f2Paul Walmsley} 288