1*af1d002fSLokesh Vutla /* 2*af1d002fSLokesh Vutla * (C) Copyright 2010 3*af1d002fSLokesh Vutla * Texas Instruments, <www.ti.com> 4*af1d002fSLokesh Vutla * 5*af1d002fSLokesh Vutla * Aneesh V <aneesh@ti.com> 6*af1d002fSLokesh Vutla * Sricharan R <r.sricharan@ti.com> 7*af1d002fSLokesh Vutla * 8*af1d002fSLokesh Vutla * See file CREDITS for list of people who contributed to this 9*af1d002fSLokesh Vutla * project. 10*af1d002fSLokesh Vutla * 11*af1d002fSLokesh Vutla * This program is free software; you can redistribute it and/or 12*af1d002fSLokesh Vutla * modify it under the terms of the GNU General Public License as 13*af1d002fSLokesh Vutla * published by the Free Software Foundation; either version 2 of 14*af1d002fSLokesh Vutla * the License, or (at your option) any later version. 15*af1d002fSLokesh Vutla * 16*af1d002fSLokesh Vutla * This program is distributed in the hope that it will be useful, 17*af1d002fSLokesh Vutla * but WITHOUT ANY WARRANTY; without even the implied warranty of 18*af1d002fSLokesh Vutla * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19*af1d002fSLokesh Vutla * GNU General Public License for more details. 20*af1d002fSLokesh Vutla * 21*af1d002fSLokesh Vutla * You should have received a copy of the GNU General Public License 22*af1d002fSLokesh Vutla * along with this program; if not, write to the Free Software 23*af1d002fSLokesh Vutla * Foundation, Inc., 59 Temple Place, Suite 330, Boston, 24*af1d002fSLokesh Vutla * MA 02111-1307 USA 25*af1d002fSLokesh Vutla */ 26*af1d002fSLokesh Vutla #ifndef _CLOCKS_OMAP5_H_ 27*af1d002fSLokesh Vutla #define _CLOCKS_OMAP5_H_ 28*af1d002fSLokesh Vutla #include <common.h> 29*af1d002fSLokesh Vutla #include <asm/omap_common.h> 30*af1d002fSLokesh Vutla 31*af1d002fSLokesh Vutla /* 32*af1d002fSLokesh Vutla * Assuming a maximum of 1.5 GHz ARM speed and a minimum of 2 cycles per 33*af1d002fSLokesh Vutla * loop, allow for a minimum of 2 ms wait (in reality the wait will be 34*af1d002fSLokesh Vutla * much more than that) 35*af1d002fSLokesh Vutla */ 36*af1d002fSLokesh Vutla #define LDELAY 1000000 37*af1d002fSLokesh Vutla 38*af1d002fSLokesh Vutla /* CM_DLL_CTRL */ 39*af1d002fSLokesh Vutla #define CM_DLL_CTRL_OVERRIDE_SHIFT 0 40*af1d002fSLokesh Vutla #define CM_DLL_CTRL_OVERRIDE_MASK (1 << 0) 41*af1d002fSLokesh Vutla #define CM_DLL_CTRL_NO_OVERRIDE 0 42*af1d002fSLokesh Vutla 43*af1d002fSLokesh Vutla /* CM_CLKMODE_DPLL */ 44*af1d002fSLokesh Vutla #define CM_CLKMODE_DPLL_REGM4XEN_SHIFT 11 45*af1d002fSLokesh Vutla #define CM_CLKMODE_DPLL_REGM4XEN_MASK (1 << 11) 46*af1d002fSLokesh Vutla #define CM_CLKMODE_DPLL_LPMODE_EN_SHIFT 10 47*af1d002fSLokesh Vutla #define CM_CLKMODE_DPLL_LPMODE_EN_MASK (1 << 10) 48*af1d002fSLokesh Vutla #define CM_CLKMODE_DPLL_RELOCK_RAMP_EN_SHIFT 9 49*af1d002fSLokesh Vutla #define CM_CLKMODE_DPLL_RELOCK_RAMP_EN_MASK (1 << 9) 50*af1d002fSLokesh Vutla #define CM_CLKMODE_DPLL_DRIFTGUARD_EN_SHIFT 8 51*af1d002fSLokesh Vutla #define CM_CLKMODE_DPLL_DRIFTGUARD_EN_MASK (1 << 8) 52*af1d002fSLokesh Vutla #define CM_CLKMODE_DPLL_RAMP_RATE_SHIFT 5 53*af1d002fSLokesh Vutla #define CM_CLKMODE_DPLL_RAMP_RATE_MASK (0x7 << 5) 54*af1d002fSLokesh Vutla #define CM_CLKMODE_DPLL_EN_SHIFT 0 55*af1d002fSLokesh Vutla #define CM_CLKMODE_DPLL_EN_MASK (0x7 << 0) 56*af1d002fSLokesh Vutla 57*af1d002fSLokesh Vutla #define CM_CLKMODE_DPLL_DPLL_EN_SHIFT 0 58*af1d002fSLokesh Vutla #define CM_CLKMODE_DPLL_DPLL_EN_MASK 7 59*af1d002fSLokesh Vutla 60*af1d002fSLokesh Vutla #define DPLL_EN_STOP 1 61*af1d002fSLokesh Vutla #define DPLL_EN_MN_BYPASS 4 62*af1d002fSLokesh Vutla #define DPLL_EN_LOW_POWER_BYPASS 5 63*af1d002fSLokesh Vutla #define DPLL_EN_FAST_RELOCK_BYPASS 6 64*af1d002fSLokesh Vutla #define DPLL_EN_LOCK 7 65*af1d002fSLokesh Vutla 66*af1d002fSLokesh Vutla /* CM_IDLEST_DPLL fields */ 67*af1d002fSLokesh Vutla #define ST_DPLL_CLK_MASK 1 68*af1d002fSLokesh Vutla 69*af1d002fSLokesh Vutla /* SGX */ 70*af1d002fSLokesh Vutla #define CLKSEL_GPU_HYD_GCLK_MASK (1 << 25) 71*af1d002fSLokesh Vutla #define CLKSEL_GPU_CORE_GCLK_MASK (1 << 24) 72*af1d002fSLokesh Vutla 73*af1d002fSLokesh Vutla /* CM_CLKSEL_DPLL */ 74*af1d002fSLokesh Vutla #define CM_CLKSEL_DPLL_DPLL_SD_DIV_SHIFT 24 75*af1d002fSLokesh Vutla #define CM_CLKSEL_DPLL_DPLL_SD_DIV_MASK (0xFF << 24) 76*af1d002fSLokesh Vutla #define CM_CLKSEL_DPLL_M_SHIFT 8 77*af1d002fSLokesh Vutla #define CM_CLKSEL_DPLL_M_MASK (0x7FF << 8) 78*af1d002fSLokesh Vutla #define CM_CLKSEL_DPLL_N_SHIFT 0 79*af1d002fSLokesh Vutla #define CM_CLKSEL_DPLL_N_MASK 0x7F 80*af1d002fSLokesh Vutla #define CM_CLKSEL_DCC_EN_SHIFT 22 81*af1d002fSLokesh Vutla #define CM_CLKSEL_DCC_EN_MASK (1 << 22) 82*af1d002fSLokesh Vutla 83*af1d002fSLokesh Vutla /* CM_SYS_CLKSEL */ 84*af1d002fSLokesh Vutla #define CM_SYS_CLKSEL_SYS_CLKSEL_MASK 7 85*af1d002fSLokesh Vutla 86*af1d002fSLokesh Vutla /* CM_CLKSEL_CORE */ 87*af1d002fSLokesh Vutla #define CLKSEL_CORE_SHIFT 0 88*af1d002fSLokesh Vutla #define CLKSEL_L3_SHIFT 4 89*af1d002fSLokesh Vutla #define CLKSEL_L4_SHIFT 8 90*af1d002fSLokesh Vutla 91*af1d002fSLokesh Vutla #define CLKSEL_CORE_X2_DIV_1 0 92*af1d002fSLokesh Vutla #define CLKSEL_L3_CORE_DIV_2 1 93*af1d002fSLokesh Vutla #define CLKSEL_L4_L3_DIV_2 1 94*af1d002fSLokesh Vutla 95*af1d002fSLokesh Vutla /* CM_ABE_PLL_REF_CLKSEL */ 96*af1d002fSLokesh Vutla #define CM_ABE_PLL_REF_CLKSEL_CLKSEL_SHIFT 0 97*af1d002fSLokesh Vutla #define CM_ABE_PLL_REF_CLKSEL_CLKSEL_MASK 1 98*af1d002fSLokesh Vutla #define CM_ABE_PLL_REF_CLKSEL_CLKSEL_SYSCLK 0 99*af1d002fSLokesh Vutla #define CM_ABE_PLL_REF_CLKSEL_CLKSEL_32KCLK 1 100*af1d002fSLokesh Vutla 101*af1d002fSLokesh Vutla /* CM_BYPCLK_DPLL_IVA */ 102*af1d002fSLokesh Vutla #define CM_BYPCLK_DPLL_IVA_CLKSEL_SHIFT 0 103*af1d002fSLokesh Vutla #define CM_BYPCLK_DPLL_IVA_CLKSEL_MASK 3 104*af1d002fSLokesh Vutla 105*af1d002fSLokesh Vutla #define DPLL_IVA_CLKSEL_CORE_X2_DIV_2 1 106*af1d002fSLokesh Vutla 107*af1d002fSLokesh Vutla /* CM_SHADOW_FREQ_CONFIG1 */ 108*af1d002fSLokesh Vutla #define SHADOW_FREQ_CONFIG1_FREQ_UPDATE_MASK 1 109*af1d002fSLokesh Vutla #define SHADOW_FREQ_CONFIG1_DLL_OVERRIDE_MASK 4 110*af1d002fSLokesh Vutla #define SHADOW_FREQ_CONFIG1_DLL_RESET_MASK 8 111*af1d002fSLokesh Vutla 112*af1d002fSLokesh Vutla #define SHADOW_FREQ_CONFIG1_DPLL_EN_SHIFT 8 113*af1d002fSLokesh Vutla #define SHADOW_FREQ_CONFIG1_DPLL_EN_MASK (7 << 8) 114*af1d002fSLokesh Vutla 115*af1d002fSLokesh Vutla #define SHADOW_FREQ_CONFIG1_M2_DIV_SHIFT 11 116*af1d002fSLokesh Vutla #define SHADOW_FREQ_CONFIG1_M2_DIV_MASK (0x1F << 11) 117*af1d002fSLokesh Vutla 118*af1d002fSLokesh Vutla /*CM_<clock_domain>__CLKCTRL */ 119*af1d002fSLokesh Vutla #define CD_CLKCTRL_CLKTRCTRL_SHIFT 0 120*af1d002fSLokesh Vutla #define CD_CLKCTRL_CLKTRCTRL_MASK 3 121*af1d002fSLokesh Vutla 122*af1d002fSLokesh Vutla #define CD_CLKCTRL_CLKTRCTRL_NO_SLEEP 0 123*af1d002fSLokesh Vutla #define CD_CLKCTRL_CLKTRCTRL_SW_SLEEP 1 124*af1d002fSLokesh Vutla #define CD_CLKCTRL_CLKTRCTRL_SW_WKUP 2 125*af1d002fSLokesh Vutla #define CD_CLKCTRL_CLKTRCTRL_HW_AUTO 3 126*af1d002fSLokesh Vutla 127*af1d002fSLokesh Vutla 128*af1d002fSLokesh Vutla /* CM_<clock_domain>_<module>_CLKCTRL */ 129*af1d002fSLokesh Vutla #define MODULE_CLKCTRL_MODULEMODE_SHIFT 0 130*af1d002fSLokesh Vutla #define MODULE_CLKCTRL_MODULEMODE_MASK 3 131*af1d002fSLokesh Vutla #define MODULE_CLKCTRL_IDLEST_SHIFT 16 132*af1d002fSLokesh Vutla #define MODULE_CLKCTRL_IDLEST_MASK (3 << 16) 133*af1d002fSLokesh Vutla 134*af1d002fSLokesh Vutla #define MODULE_CLKCTRL_MODULEMODE_SW_DISABLE 0 135*af1d002fSLokesh Vutla #define MODULE_CLKCTRL_MODULEMODE_HW_AUTO 1 136*af1d002fSLokesh Vutla #define MODULE_CLKCTRL_MODULEMODE_SW_EXPLICIT_EN 2 137*af1d002fSLokesh Vutla 138*af1d002fSLokesh Vutla #define MODULE_CLKCTRL_IDLEST_FULLY_FUNCTIONAL 0 139*af1d002fSLokesh Vutla #define MODULE_CLKCTRL_IDLEST_TRANSITIONING 1 140*af1d002fSLokesh Vutla #define MODULE_CLKCTRL_IDLEST_IDLE 2 141*af1d002fSLokesh Vutla #define MODULE_CLKCTRL_IDLEST_DISABLED 3 142*af1d002fSLokesh Vutla 143*af1d002fSLokesh Vutla /* CM_L4PER_GPIO4_CLKCTRL */ 144*af1d002fSLokesh Vutla #define GPIO4_CLKCTRL_OPTFCLKEN_MASK (1 << 8) 145*af1d002fSLokesh Vutla 146*af1d002fSLokesh Vutla /* CM_L3INIT_HSMMCn_CLKCTRL */ 147*af1d002fSLokesh Vutla #define HSMMC_CLKCTRL_CLKSEL_MASK (1 << 24) 148*af1d002fSLokesh Vutla #define HSMMC_CLKCTRL_CLKSEL_DIV_MASK (1 << 25) 149*af1d002fSLokesh Vutla 150*af1d002fSLokesh Vutla /* CM_WKUP_GPTIMER1_CLKCTRL */ 151*af1d002fSLokesh Vutla #define GPTIMER1_CLKCTRL_CLKSEL_MASK (1 << 24) 152*af1d002fSLokesh Vutla 153*af1d002fSLokesh Vutla /* CM_CAM_ISS_CLKCTRL */ 154*af1d002fSLokesh Vutla #define ISS_CLKCTRL_OPTFCLKEN_MASK (1 << 8) 155*af1d002fSLokesh Vutla 156*af1d002fSLokesh Vutla /* CM_DSS_DSS_CLKCTRL */ 157*af1d002fSLokesh Vutla #define DSS_CLKCTRL_OPTFCLKEN_MASK 0xF00 158*af1d002fSLokesh Vutla 159*af1d002fSLokesh Vutla /* CM_L3INIT_USBPHY_CLKCTRL */ 160*af1d002fSLokesh Vutla #define USBPHY_CLKCTRL_OPTFCLKEN_PHY_48M_MASK 8 161*af1d002fSLokesh Vutla 162*af1d002fSLokesh Vutla /* CM_MPU_MPU_CLKCTRL */ 163*af1d002fSLokesh Vutla #define MPU_CLKCTRL_CLKSEL_EMIF_DIV_MODE_SHIFT 24 164*af1d002fSLokesh Vutla #define MPU_CLKCTRL_CLKSEL_EMIF_DIV_MODE_MASK (3 << 24) 165*af1d002fSLokesh Vutla #define MPU_CLKCTRL_CLKSEL_ABE_DIV_MODE_SHIFT 26 166*af1d002fSLokesh Vutla #define MPU_CLKCTRL_CLKSEL_ABE_DIV_MODE_MASK (1 << 26) 167*af1d002fSLokesh Vutla 168*af1d002fSLokesh Vutla /* CM_WKUPAON_SCRM_CLKCTRL */ 169*af1d002fSLokesh Vutla #define OPTFCLKEN_SCRM_PER_SHIFT 9 170*af1d002fSLokesh Vutla #define OPTFCLKEN_SCRM_PER_MASK (1 << 9) 171*af1d002fSLokesh Vutla #define OPTFCLKEN_SCRM_CORE_SHIFT 8 172*af1d002fSLokesh Vutla #define OPTFCLKEN_SCRM_CORE_MASK (1 << 8) 173*af1d002fSLokesh Vutla 174*af1d002fSLokesh Vutla /* CM_COREAON_IO_SRCOMP_CLKCTRL */ 175*af1d002fSLokesh Vutla #define OPTFCLKEN_SRCOMP_FCLK_SHIFT 8 176*af1d002fSLokesh Vutla #define OPTFCLKEN_SRCOMP_FCLK_MASK (1 << 8) 177*af1d002fSLokesh Vutla 178*af1d002fSLokesh Vutla /* PRM_RSTTIME */ 179*af1d002fSLokesh Vutla #define RSTTIME1_SHIFT 0 180*af1d002fSLokesh Vutla #define RSTTIME1_MASK (0x3ff << 0) 181*af1d002fSLokesh Vutla 182*af1d002fSLokesh Vutla /* Clock frequencies */ 183*af1d002fSLokesh Vutla #define OMAP_SYS_CLK_IND_38_4_MHZ 6 184*af1d002fSLokesh Vutla 185*af1d002fSLokesh Vutla /* PRM_VC_VAL_BYPASS */ 186*af1d002fSLokesh Vutla #define PRM_VC_I2C_CHANNEL_FREQ_KHZ 400 187*af1d002fSLokesh Vutla 188*af1d002fSLokesh Vutla /* SMPS */ 189*af1d002fSLokesh Vutla #define SMPS_I2C_SLAVE_ADDR 0x12 190*af1d002fSLokesh Vutla #define SMPS_REG_ADDR_12_MPU 0x23 191*af1d002fSLokesh Vutla #define SMPS_REG_ADDR_45_IVA 0x2B 192*af1d002fSLokesh Vutla #define SMPS_REG_ADDR_8_CORE 0x37 193*af1d002fSLokesh Vutla 194*af1d002fSLokesh Vutla /* PALMAS VOLTAGE SETTINGS in mv for OPP_NOMINAL */ 195*af1d002fSLokesh Vutla /* ES1.0 settings */ 196*af1d002fSLokesh Vutla #define VDD_MPU 1040 197*af1d002fSLokesh Vutla #define VDD_MM 1040 198*af1d002fSLokesh Vutla #define VDD_CORE 1040 199*af1d002fSLokesh Vutla 200*af1d002fSLokesh Vutla #define VDD_MPU_LOW 890 201*af1d002fSLokesh Vutla #define VDD_MM_LOW 890 202*af1d002fSLokesh Vutla #define VDD_CORE_LOW 890 203*af1d002fSLokesh Vutla 204*af1d002fSLokesh Vutla /* ES2.0 settings */ 205*af1d002fSLokesh Vutla #define VDD_MPU_ES2 1060 206*af1d002fSLokesh Vutla #define VDD_MM_ES2 1025 207*af1d002fSLokesh Vutla #define VDD_CORE_ES2 1040 208*af1d002fSLokesh Vutla 209*af1d002fSLokesh Vutla #define VDD_MPU_ES2_HIGH 1250 210*af1d002fSLokesh Vutla #define VDD_MM_ES2_OD 1120 211*af1d002fSLokesh Vutla 212*af1d002fSLokesh Vutla #define VDD_MPU_ES2_LOW 880 213*af1d002fSLokesh Vutla #define VDD_MM_ES2_LOW 880 214*af1d002fSLokesh Vutla 215*af1d002fSLokesh Vutla /* Standard offset is 0.5v expressed in uv */ 216*af1d002fSLokesh Vutla #define PALMAS_SMPS_BASE_VOLT_UV 500000 217*af1d002fSLokesh Vutla 218*af1d002fSLokesh Vutla /* TPS */ 219*af1d002fSLokesh Vutla #define TPS62361_I2C_SLAVE_ADDR 0x60 220*af1d002fSLokesh Vutla #define TPS62361_REG_ADDR_SET0 0x0 221*af1d002fSLokesh Vutla #define TPS62361_REG_ADDR_SET1 0x1 222*af1d002fSLokesh Vutla #define TPS62361_REG_ADDR_SET2 0x2 223*af1d002fSLokesh Vutla #define TPS62361_REG_ADDR_SET3 0x3 224*af1d002fSLokesh Vutla #define TPS62361_REG_ADDR_CTRL 0x4 225*af1d002fSLokesh Vutla #define TPS62361_REG_ADDR_TEMP 0x5 226*af1d002fSLokesh Vutla #define TPS62361_REG_ADDR_RMP_CTRL 0x6 227*af1d002fSLokesh Vutla #define TPS62361_REG_ADDR_CHIP_ID 0x8 228*af1d002fSLokesh Vutla #define TPS62361_REG_ADDR_CHIP_ID_2 0x9 229*af1d002fSLokesh Vutla 230*af1d002fSLokesh Vutla #define TPS62361_BASE_VOLT_MV 500 231*af1d002fSLokesh Vutla #define TPS62361_VSEL0_GPIO 7 232*af1d002fSLokesh Vutla 233*af1d002fSLokesh Vutla #define DPLL_NO_LOCK 0 234*af1d002fSLokesh Vutla #define DPLL_LOCK 1 235*af1d002fSLokesh Vutla 236*af1d002fSLokesh Vutla /* 237*af1d002fSLokesh Vutla * MAX value for PRM_RSTTIME[9:0]RSTTIME1 stored is 0x3ff. 238*af1d002fSLokesh Vutla * 0x3ff is in the no of FUNC_32K_CLK cycles. Converting cycles 239*af1d002fSLokesh Vutla * into microsec and passing the value. 240*af1d002fSLokesh Vutla */ 241*af1d002fSLokesh Vutla #define CONFIG_DEFAULT_OMAP_RESET_TIME_MAX_USEC 31219 242*af1d002fSLokesh Vutla #endif /* _CLOCKS_OMAP5_H_ */ 243