1*4882a593Smuzhiyun /* 2*4882a593Smuzhiyun * AM33XX PRM instance offset macros 3*4882a593Smuzhiyun * 4*4882a593Smuzhiyun * Copyright (C) 2011-2012 Texas Instruments Incorporated - https://www.ti.com/ 5*4882a593Smuzhiyun * 6*4882a593Smuzhiyun * This program is free software; you can redistribute it and/or 7*4882a593Smuzhiyun * modify it under the terms of the GNU General Public License as 8*4882a593Smuzhiyun * published by the Free Software Foundation version 2. 9*4882a593Smuzhiyun * 10*4882a593Smuzhiyun * This program is distributed "as is" WITHOUT ANY WARRANTY of any 11*4882a593Smuzhiyun * kind, whether express or implied; without even the implied warranty 12*4882a593Smuzhiyun * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13*4882a593Smuzhiyun * GNU General Public License for more details. 14*4882a593Smuzhiyun */ 15*4882a593Smuzhiyun 16*4882a593Smuzhiyun #ifndef __ARCH_ARM_MACH_OMAP2_PRM33XX_H 17*4882a593Smuzhiyun #define __ARCH_ARM_MACH_OMAP2_PRM33XX_H 18*4882a593Smuzhiyun 19*4882a593Smuzhiyun #include "prcm-common.h" 20*4882a593Smuzhiyun #include "prm.h" 21*4882a593Smuzhiyun 22*4882a593Smuzhiyun #define AM33XX_PRM_BASE 0x44E00000 23*4882a593Smuzhiyun 24*4882a593Smuzhiyun #define AM33XX_PRM_REGADDR(inst, reg) \ 25*4882a593Smuzhiyun AM33XX_L4_WK_IO_ADDRESS(AM33XX_PRM_BASE + (inst) + (reg)) 26*4882a593Smuzhiyun 27*4882a593Smuzhiyun 28*4882a593Smuzhiyun /* PRM instances */ 29*4882a593Smuzhiyun #define AM33XX_PRM_OCP_SOCKET_MOD 0x0B00 30*4882a593Smuzhiyun #define AM33XX_PRM_PER_MOD 0x0C00 31*4882a593Smuzhiyun #define AM33XX_PRM_WKUP_MOD 0x0D00 32*4882a593Smuzhiyun #define AM33XX_PRM_MPU_MOD 0x0E00 33*4882a593Smuzhiyun #define AM33XX_PRM_DEVICE_MOD 0x0F00 34*4882a593Smuzhiyun #define AM33XX_PRM_RTC_MOD 0x1000 35*4882a593Smuzhiyun #define AM33XX_PRM_GFX_MOD 0x1100 36*4882a593Smuzhiyun #define AM33XX_PRM_CEFUSE_MOD 0x1200 37*4882a593Smuzhiyun 38*4882a593Smuzhiyun /* PRM */ 39*4882a593Smuzhiyun 40*4882a593Smuzhiyun /* PRM.OCP_SOCKET_PRM register offsets */ 41*4882a593Smuzhiyun #define AM33XX_REVISION_PRM_OFFSET 0x0000 42*4882a593Smuzhiyun #define AM33XX_REVISION_PRM AM33XX_PRM_REGADDR(AM33XX_PRM_OCP_SOCKET_MOD, 0x0000) 43*4882a593Smuzhiyun #define AM33XX_PRM_IRQSTATUS_MPU_OFFSET 0x0004 44*4882a593Smuzhiyun #define AM33XX_PRM_IRQSTATUS_MPU AM33XX_PRM_REGADDR(AM33XX_PRM_OCP_SOCKET_MOD, 0x0004) 45*4882a593Smuzhiyun #define AM33XX_PRM_IRQENABLE_MPU_OFFSET 0x0008 46*4882a593Smuzhiyun #define AM33XX_PRM_IRQENABLE_MPU AM33XX_PRM_REGADDR(AM33XX_PRM_OCP_SOCKET_MOD, 0x0008) 47*4882a593Smuzhiyun #define AM33XX_PRM_IRQSTATUS_M3_OFFSET 0x000c 48*4882a593Smuzhiyun #define AM33XX_PRM_IRQSTATUS_M3 AM33XX_PRM_REGADDR(AM33XX_PRM_OCP_SOCKET_MOD, 0x000c) 49*4882a593Smuzhiyun #define AM33XX_PRM_IRQENABLE_M3_OFFSET 0x0010 50*4882a593Smuzhiyun #define AM33XX_PRM_IRQENABLE_M3 AM33XX_PRM_REGADDR(AM33XX_PRM_OCP_SOCKET_MOD, 0x0010) 51*4882a593Smuzhiyun 52*4882a593Smuzhiyun /* PRM.PER_PRM register offsets */ 53*4882a593Smuzhiyun #define AM33XX_RM_PER_RSTCTRL_OFFSET 0x0000 54*4882a593Smuzhiyun #define AM33XX_RM_PER_RSTCTRL AM33XX_PRM_REGADDR(AM33XX_PRM_PER_MOD, 0x0000) 55*4882a593Smuzhiyun #define AM33XX_PM_PER_PWRSTST_OFFSET 0x0008 56*4882a593Smuzhiyun #define AM33XX_PM_PER_PWRSTST AM33XX_PRM_REGADDR(AM33XX_PRM_PER_MOD, 0x0008) 57*4882a593Smuzhiyun #define AM33XX_PM_PER_PWRSTCTRL_OFFSET 0x000c 58*4882a593Smuzhiyun #define AM33XX_PM_PER_PWRSTCTRL AM33XX_PRM_REGADDR(AM33XX_PRM_PER_MOD, 0x000c) 59*4882a593Smuzhiyun 60*4882a593Smuzhiyun /* PRM.WKUP_PRM register offsets */ 61*4882a593Smuzhiyun #define AM33XX_RM_WKUP_RSTCTRL_OFFSET 0x0000 62*4882a593Smuzhiyun #define AM33XX_RM_WKUP_RSTCTRL AM33XX_PRM_REGADDR(AM33XX_PRM_WKUP_MOD, 0x0000) 63*4882a593Smuzhiyun #define AM33XX_PM_WKUP_PWRSTCTRL_OFFSET 0x0004 64*4882a593Smuzhiyun #define AM33XX_PM_WKUP_PWRSTCTRL AM33XX_PRM_REGADDR(AM33XX_PRM_WKUP_MOD, 0x0004) 65*4882a593Smuzhiyun #define AM33XX_PM_WKUP_PWRSTST_OFFSET 0x0008 66*4882a593Smuzhiyun #define AM33XX_PM_WKUP_PWRSTST AM33XX_PRM_REGADDR(AM33XX_PRM_WKUP_MOD, 0x0008) 67*4882a593Smuzhiyun #define AM33XX_RM_WKUP_RSTST_OFFSET 0x000c 68*4882a593Smuzhiyun #define AM33XX_RM_WKUP_RSTST AM33XX_PRM_REGADDR(AM33XX_PRM_WKUP_MOD, 0x000c) 69*4882a593Smuzhiyun 70*4882a593Smuzhiyun /* PRM.MPU_PRM register offsets */ 71*4882a593Smuzhiyun #define AM33XX_PM_MPU_PWRSTCTRL_OFFSET 0x0000 72*4882a593Smuzhiyun #define AM33XX_PM_MPU_PWRSTCTRL AM33XX_PRM_REGADDR(AM33XX_PRM_MPU_MOD, 0x0000) 73*4882a593Smuzhiyun #define AM33XX_PM_MPU_PWRSTST_OFFSET 0x0004 74*4882a593Smuzhiyun #define AM33XX_PM_MPU_PWRSTST AM33XX_PRM_REGADDR(AM33XX_PRM_MPU_MOD, 0x0004) 75*4882a593Smuzhiyun #define AM33XX_RM_MPU_RSTST_OFFSET 0x0008 76*4882a593Smuzhiyun #define AM33XX_RM_MPU_RSTST AM33XX_PRM_REGADDR(AM33XX_PRM_MPU_MOD, 0x0008) 77*4882a593Smuzhiyun 78*4882a593Smuzhiyun /* PRM.DEVICE_PRM register offsets */ 79*4882a593Smuzhiyun #define AM33XX_PRM_RSTCTRL_OFFSET 0x0000 80*4882a593Smuzhiyun #define AM33XX_PRM_RSTCTRL AM33XX_PRM_REGADDR(AM33XX_PRM_DEVICE_MOD, 0x0000) 81*4882a593Smuzhiyun #define AM33XX_PRM_RSTTIME_OFFSET 0x0004 82*4882a593Smuzhiyun #define AM33XX_PRM_RSTTIME AM33XX_PRM_REGADDR(AM33XX_PRM_DEVICE_MOD, 0x0004) 83*4882a593Smuzhiyun #define AM33XX_PRM_RSTST_OFFSET 0x0008 84*4882a593Smuzhiyun #define AM33XX_PRM_RSTST AM33XX_PRM_REGADDR(AM33XX_PRM_DEVICE_MOD, 0x0008) 85*4882a593Smuzhiyun #define AM33XX_PRM_SRAM_COUNT_OFFSET 0x000c 86*4882a593Smuzhiyun #define AM33XX_PRM_SRAM_COUNT AM33XX_PRM_REGADDR(AM33XX_PRM_DEVICE_MOD, 0x000c) 87*4882a593Smuzhiyun #define AM33XX_PRM_LDO_SRAM_CORE_SETUP_OFFSET 0x0010 88*4882a593Smuzhiyun #define AM33XX_PRM_LDO_SRAM_CORE_SETUP AM33XX_PRM_REGADDR(AM33XX_PRM_DEVICE_MOD, 0x0010) 89*4882a593Smuzhiyun #define AM33XX_PRM_LDO_SRAM_CORE_CTRL_OFFSET 0x0014 90*4882a593Smuzhiyun #define AM33XX_PRM_LDO_SRAM_CORE_CTRL AM33XX_PRM_REGADDR(AM33XX_PRM_DEVICE_MOD, 0x0014) 91*4882a593Smuzhiyun #define AM33XX_PRM_LDO_SRAM_MPU_SETUP_OFFSET 0x0018 92*4882a593Smuzhiyun #define AM33XX_PRM_LDO_SRAM_MPU_SETUP AM33XX_PRM_REGADDR(AM33XX_PRM_DEVICE_MOD, 0x0018) 93*4882a593Smuzhiyun #define AM33XX_PRM_LDO_SRAM_MPU_CTRL_OFFSET 0x001c 94*4882a593Smuzhiyun #define AM33XX_PRM_LDO_SRAM_MPU_CTRL AM33XX_PRM_REGADDR(AM33XX_PRM_DEVICE_MOD, 0x001c) 95*4882a593Smuzhiyun 96*4882a593Smuzhiyun /* PRM.RTC_PRM register offsets */ 97*4882a593Smuzhiyun #define AM33XX_PM_RTC_PWRSTCTRL_OFFSET 0x0000 98*4882a593Smuzhiyun #define AM33XX_PM_RTC_PWRSTCTRL AM33XX_PRM_REGADDR(AM33XX_PRM_RTC_MOD, 0x0000) 99*4882a593Smuzhiyun #define AM33XX_PM_RTC_PWRSTST_OFFSET 0x0004 100*4882a593Smuzhiyun #define AM33XX_PM_RTC_PWRSTST AM33XX_PRM_REGADDR(AM33XX_PRM_RTC_MOD, 0x0004) 101*4882a593Smuzhiyun 102*4882a593Smuzhiyun /* PRM.GFX_PRM register offsets */ 103*4882a593Smuzhiyun #define AM33XX_PM_GFX_PWRSTCTRL_OFFSET 0x0000 104*4882a593Smuzhiyun #define AM33XX_PM_GFX_PWRSTCTRL AM33XX_PRM_REGADDR(AM33XX_PRM_GFX_MOD, 0x0000) 105*4882a593Smuzhiyun #define AM33XX_RM_GFX_RSTCTRL_OFFSET 0x0004 106*4882a593Smuzhiyun #define AM33XX_RM_GFX_RSTCTRL AM33XX_PRM_REGADDR(AM33XX_PRM_GFX_MOD, 0x0004) 107*4882a593Smuzhiyun #define AM33XX_PM_GFX_PWRSTST_OFFSET 0x0010 108*4882a593Smuzhiyun #define AM33XX_PM_GFX_PWRSTST AM33XX_PRM_REGADDR(AM33XX_PRM_GFX_MOD, 0x0010) 109*4882a593Smuzhiyun #define AM33XX_RM_GFX_RSTST_OFFSET 0x0014 110*4882a593Smuzhiyun #define AM33XX_RM_GFX_RSTST AM33XX_PRM_REGADDR(AM33XX_PRM_GFX_MOD, 0x0014) 111*4882a593Smuzhiyun 112*4882a593Smuzhiyun /* PRM.CEFUSE_PRM register offsets */ 113*4882a593Smuzhiyun #define AM33XX_PM_CEFUSE_PWRSTCTRL_OFFSET 0x0000 114*4882a593Smuzhiyun #define AM33XX_PM_CEFUSE_PWRSTCTRL AM33XX_PRM_REGADDR(AM33XX_PRM_CEFUSE_MOD, 0x0000) 115*4882a593Smuzhiyun #define AM33XX_PM_CEFUSE_PWRSTST_OFFSET 0x0004 116*4882a593Smuzhiyun #define AM33XX_PM_CEFUSE_PWRSTST AM33XX_PRM_REGADDR(AM33XX_PRM_CEFUSE_MOD, 0x0004) 117*4882a593Smuzhiyun 118*4882a593Smuzhiyun #ifndef __ASSEMBLER__ 119*4882a593Smuzhiyun int am33xx_prm_init(const struct omap_prcm_init_data *data); 120*4882a593Smuzhiyun 121*4882a593Smuzhiyun #endif /* ASSEMBLER */ 122*4882a593Smuzhiyun #endif 123