| Paul Walmsley | d8a9445 | 2009-12-08 16:21:29 -0700 | [diff] [blame] | 1 | /* | 
|  | 2 | * opp2xxx.h - macros for old-style OMAP2xxx "OPP" definitions | 
|  | 3 | * | 
|  | 4 | * Copyright (C) 2005-2009 Texas Instruments, Inc. | 
|  | 5 | * Copyright (C) 2004-2009 Nokia Corporation | 
|  | 6 | * | 
|  | 7 | * Richard Woodruff <r-woodruff2@ti.com> | 
|  | 8 | * | 
|  | 9 | * The OMAP2 processor can be run at several discrete 'PRCM configurations'. | 
|  | 10 | * These configurations are characterized by voltage and speed for clocks. | 
|  | 11 | * The device is only validated for certain combinations. One way to express | 
|  | 12 | * these combinations is via the 'ratio's' which the clocks operate with | 
|  | 13 | * respect to each other. These ratio sets are for a given voltage/DPLL | 
|  | 14 | * setting. All configurations can be described by a DPLL setting and a ratio | 
|  | 15 | * There are 3 ratio sets for the 2430 and X ratio sets for 2420. | 
|  | 16 | * | 
|  | 17 | * 2430 differs from 2420 in that there are no more phase synchronizers used. | 
|  | 18 | * They both have a slightly different clock domain setup. 2420(iva1,dsp) vs | 
|  | 19 | * 2430 (iva2.1, NOdsp, mdm) | 
|  | 20 | * | 
|  | 21 | * XXX Missing voltage data. | 
|  | 22 | * | 
|  | 23 | * THe format described in this file is deprecated.  Once a reasonable | 
|  | 24 | * OPP API exists, the data in this file should be converted to use it. | 
|  | 25 | * | 
|  | 26 | * This is technically part of the OMAP2xxx clock code. | 
|  | 27 | */ | 
|  | 28 |  | 
|  | 29 | #ifndef __ARCH_ARM_MACH_OMAP2_OPP2XXX_H | 
|  | 30 | #define __ARCH_ARM_MACH_OMAP2_OPP2XXX_H | 
|  | 31 |  | 
|  | 32 | /** | 
|  | 33 | * struct prcm_config - define clock rates on a per-OPP basis (24xx) | 
|  | 34 | * | 
|  | 35 | * Key dividers which make up a PRCM set. Ratio's for a PRCM are mandated. | 
|  | 36 | * xtal_speed, dpll_speed, mpu_speed, CM_CLKSEL_MPU,CM_CLKSEL_DSP | 
|  | 37 | * CM_CLKSEL_GFX, CM_CLKSEL1_CORE, CM_CLKSEL1_PLL CM_CLKSEL2_PLL, CM_CLKSEL_MDM | 
|  | 38 | * | 
|  | 39 | * This is deprecated.  As soon as we have a decent OPP API, we should | 
|  | 40 | * move all this stuff to it. | 
|  | 41 | */ | 
|  | 42 | struct prcm_config { | 
|  | 43 | unsigned long xtal_speed;	/* crystal rate */ | 
|  | 44 | unsigned long dpll_speed;	/* dpll: out*xtal*M/(N-1)table_recalc */ | 
|  | 45 | unsigned long mpu_speed;	/* speed of MPU */ | 
|  | 46 | unsigned long cm_clksel_mpu;	/* mpu divider */ | 
|  | 47 | unsigned long cm_clksel_dsp;	/* dsp+iva1 div(2420), iva2.1(2430) */ | 
|  | 48 | unsigned long cm_clksel_gfx;	/* gfx dividers */ | 
|  | 49 | unsigned long cm_clksel1_core;	/* major subsystem dividers */ | 
|  | 50 | unsigned long cm_clksel1_pll;	/* m,n */ | 
|  | 51 | unsigned long cm_clksel2_pll;	/* dpllx1 or x2 out */ | 
|  | 52 | unsigned long cm_clksel_mdm;	/* modem dividers 2430 only */ | 
|  | 53 | unsigned long base_sdrc_rfr;	/* base refresh timing for a set */ | 
|  | 54 | unsigned char flags; | 
|  | 55 | }; | 
|  | 56 |  | 
|  | 57 |  | 
|  | 58 | /* Core fields for cm_clksel, not ratio governed */ | 
|  | 59 | #define RX_CLKSEL_DSS1			(0x10 << 8) | 
|  | 60 | #define RX_CLKSEL_DSS2			(0x0 << 13) | 
|  | 61 | #define RX_CLKSEL_SSI			(0x5 << 20) | 
|  | 62 |  | 
|  | 63 | /*------------------------------------------------------------------------- | 
|  | 64 | * Voltage/DPLL ratios | 
|  | 65 | *-------------------------------------------------------------------------*/ | 
|  | 66 |  | 
|  | 67 | /* 2430 Ratio's, 2430-Ratio Config 1 */ | 
|  | 68 | #define R1_CLKSEL_L3			(4 << 0) | 
|  | 69 | #define R1_CLKSEL_L4			(2 << 5) | 
|  | 70 | #define R1_CLKSEL_USB			(4 << 25) | 
|  | 71 | #define R1_CM_CLKSEL1_CORE_VAL		(R1_CLKSEL_USB | RX_CLKSEL_SSI | \ | 
|  | 72 | RX_CLKSEL_DSS2 | RX_CLKSEL_DSS1 | \ | 
|  | 73 | R1_CLKSEL_L4 | R1_CLKSEL_L3) | 
|  | 74 | #define R1_CLKSEL_MPU			(2 << 0) | 
|  | 75 | #define R1_CM_CLKSEL_MPU_VAL		R1_CLKSEL_MPU | 
|  | 76 | #define R1_CLKSEL_DSP			(2 << 0) | 
|  | 77 | #define R1_CLKSEL_DSP_IF		(2 << 5) | 
|  | 78 | #define R1_CM_CLKSEL_DSP_VAL		(R1_CLKSEL_DSP | R1_CLKSEL_DSP_IF) | 
|  | 79 | #define R1_CLKSEL_GFX			(2 << 0) | 
|  | 80 | #define R1_CM_CLKSEL_GFX_VAL		R1_CLKSEL_GFX | 
|  | 81 | #define R1_CLKSEL_MDM			(4 << 0) | 
|  | 82 | #define R1_CM_CLKSEL_MDM_VAL		R1_CLKSEL_MDM | 
|  | 83 |  | 
|  | 84 | /* 2430-Ratio Config 2 */ | 
|  | 85 | #define R2_CLKSEL_L3			(6 << 0) | 
|  | 86 | #define R2_CLKSEL_L4			(2 << 5) | 
|  | 87 | #define R2_CLKSEL_USB			(2 << 25) | 
|  | 88 | #define R2_CM_CLKSEL1_CORE_VAL		(R2_CLKSEL_USB | RX_CLKSEL_SSI | \ | 
|  | 89 | RX_CLKSEL_DSS2 | RX_CLKSEL_DSS1 | \ | 
|  | 90 | R2_CLKSEL_L4 | R2_CLKSEL_L3) | 
|  | 91 | #define R2_CLKSEL_MPU			(2 << 0) | 
|  | 92 | #define R2_CM_CLKSEL_MPU_VAL		R2_CLKSEL_MPU | 
|  | 93 | #define R2_CLKSEL_DSP			(2 << 0) | 
|  | 94 | #define R2_CLKSEL_DSP_IF		(3 << 5) | 
|  | 95 | #define R2_CM_CLKSEL_DSP_VAL		(R2_CLKSEL_DSP | R2_CLKSEL_DSP_IF) | 
|  | 96 | #define R2_CLKSEL_GFX			(2 << 0) | 
|  | 97 | #define R2_CM_CLKSEL_GFX_VAL		R2_CLKSEL_GFX | 
|  | 98 | #define R2_CLKSEL_MDM			(6 << 0) | 
|  | 99 | #define R2_CM_CLKSEL_MDM_VAL		R2_CLKSEL_MDM | 
|  | 100 |  | 
|  | 101 | /* 2430-Ratio Bootm (BYPASS) */ | 
|  | 102 | #define RB_CLKSEL_L3			(1 << 0) | 
|  | 103 | #define RB_CLKSEL_L4			(1 << 5) | 
|  | 104 | #define RB_CLKSEL_USB			(1 << 25) | 
|  | 105 | #define RB_CM_CLKSEL1_CORE_VAL		(RB_CLKSEL_USB | RX_CLKSEL_SSI | \ | 
|  | 106 | RX_CLKSEL_DSS2 | RX_CLKSEL_DSS1 | \ | 
|  | 107 | RB_CLKSEL_L4 | RB_CLKSEL_L3) | 
|  | 108 | #define RB_CLKSEL_MPU			(1 << 0) | 
|  | 109 | #define RB_CM_CLKSEL_MPU_VAL		RB_CLKSEL_MPU | 
|  | 110 | #define RB_CLKSEL_DSP			(1 << 0) | 
|  | 111 | #define RB_CLKSEL_DSP_IF		(1 << 5) | 
|  | 112 | #define RB_CM_CLKSEL_DSP_VAL		(RB_CLKSEL_DSP | RB_CLKSEL_DSP_IF) | 
|  | 113 | #define RB_CLKSEL_GFX			(1 << 0) | 
|  | 114 | #define RB_CM_CLKSEL_GFX_VAL		RB_CLKSEL_GFX | 
|  | 115 | #define RB_CLKSEL_MDM			(1 << 0) | 
|  | 116 | #define RB_CM_CLKSEL_MDM_VAL		RB_CLKSEL_MDM | 
|  | 117 |  | 
|  | 118 | /* 2420 Ratio Equivalents */ | 
|  | 119 | #define RXX_CLKSEL_VLYNQ		(0x12 << 15) | 
|  | 120 | #define RXX_CLKSEL_SSI			(0x8 << 20) | 
|  | 121 |  | 
|  | 122 | /* 2420-PRCM III 532MHz core */ | 
|  | 123 | #define RIII_CLKSEL_L3			(4 << 0)	/* 133MHz */ | 
|  | 124 | #define RIII_CLKSEL_L4			(2 << 5)	/* 66.5MHz */ | 
|  | 125 | #define RIII_CLKSEL_USB			(4 << 25)	/* 33.25MHz */ | 
|  | 126 | #define RIII_CM_CLKSEL1_CORE_VAL	(RIII_CLKSEL_USB | RXX_CLKSEL_SSI | \ | 
|  | 127 | RXX_CLKSEL_VLYNQ | RX_CLKSEL_DSS2 | \ | 
|  | 128 | RX_CLKSEL_DSS1 | RIII_CLKSEL_L4 | \ | 
|  | 129 | RIII_CLKSEL_L3) | 
|  | 130 | #define RIII_CLKSEL_MPU			(2 << 0)	/* 266MHz */ | 
|  | 131 | #define RIII_CM_CLKSEL_MPU_VAL		RIII_CLKSEL_MPU | 
|  | 132 | #define RIII_CLKSEL_DSP			(3 << 0)	/* c5x - 177.3MHz */ | 
|  | 133 | #define RIII_CLKSEL_DSP_IF		(2 << 5)	/* c5x - 88.67MHz */ | 
|  | 134 | #define RIII_SYNC_DSP			(1 << 7)	/* Enable sync */ | 
|  | 135 | #define RIII_CLKSEL_IVA			(6 << 8)	/* iva1 - 88.67MHz */ | 
|  | 136 | #define RIII_SYNC_IVA			(1 << 13)	/* Enable sync */ | 
|  | 137 | #define RIII_CM_CLKSEL_DSP_VAL		(RIII_SYNC_IVA | RIII_CLKSEL_IVA | \ | 
|  | 138 | RIII_SYNC_DSP | RIII_CLKSEL_DSP_IF | \ | 
|  | 139 | RIII_CLKSEL_DSP) | 
|  | 140 | #define RIII_CLKSEL_GFX			(2 << 0)	/* 66.5MHz */ | 
|  | 141 | #define RIII_CM_CLKSEL_GFX_VAL		RIII_CLKSEL_GFX | 
|  | 142 |  | 
|  | 143 | /* 2420-PRCM II 600MHz core */ | 
|  | 144 | #define RII_CLKSEL_L3			(6 << 0)	/* 100MHz */ | 
|  | 145 | #define RII_CLKSEL_L4			(2 << 5)	/* 50MHz */ | 
|  | 146 | #define RII_CLKSEL_USB			(2 << 25)	/* 50MHz */ | 
|  | 147 | #define RII_CM_CLKSEL1_CORE_VAL		(RII_CLKSEL_USB | RXX_CLKSEL_SSI | \ | 
|  | 148 | RXX_CLKSEL_VLYNQ | RX_CLKSEL_DSS2 | \ | 
|  | 149 | RX_CLKSEL_DSS1 | RII_CLKSEL_L4 | \ | 
|  | 150 | RII_CLKSEL_L3) | 
|  | 151 | #define RII_CLKSEL_MPU			(2 << 0)	/* 300MHz */ | 
|  | 152 | #define RII_CM_CLKSEL_MPU_VAL		RII_CLKSEL_MPU | 
|  | 153 | #define RII_CLKSEL_DSP			(3 << 0)	/* c5x - 200MHz */ | 
|  | 154 | #define RII_CLKSEL_DSP_IF		(2 << 5)	/* c5x - 100MHz */ | 
|  | 155 | #define RII_SYNC_DSP			(0 << 7)	/* Bypass sync */ | 
|  | 156 | #define RII_CLKSEL_IVA			(3 << 8)	/* iva1 - 200MHz */ | 
|  | 157 | #define RII_SYNC_IVA			(0 << 13)	/* Bypass sync */ | 
|  | 158 | #define RII_CM_CLKSEL_DSP_VAL		(RII_SYNC_IVA | RII_CLKSEL_IVA | \ | 
|  | 159 | RII_SYNC_DSP | RII_CLKSEL_DSP_IF | \ | 
|  | 160 | RII_CLKSEL_DSP) | 
|  | 161 | #define RII_CLKSEL_GFX			(2 << 0)	/* 50MHz */ | 
|  | 162 | #define RII_CM_CLKSEL_GFX_VAL		RII_CLKSEL_GFX | 
|  | 163 |  | 
|  | 164 | /* 2420-PRCM I 660MHz core */ | 
|  | 165 | #define RI_CLKSEL_L3			(4 << 0)	/* 165MHz */ | 
|  | 166 | #define RI_CLKSEL_L4			(2 << 5)	/* 82.5MHz */ | 
|  | 167 | #define RI_CLKSEL_USB			(4 << 25)	/* 41.25MHz */ | 
|  | 168 | #define RI_CM_CLKSEL1_CORE_VAL		(RI_CLKSEL_USB |		\ | 
|  | 169 | RXX_CLKSEL_SSI | RXX_CLKSEL_VLYNQ | \ | 
|  | 170 | RX_CLKSEL_DSS2 | RX_CLKSEL_DSS1 | \ | 
|  | 171 | RI_CLKSEL_L4 | RI_CLKSEL_L3) | 
|  | 172 | #define RI_CLKSEL_MPU			(2 << 0)	/* 330MHz */ | 
|  | 173 | #define RI_CM_CLKSEL_MPU_VAL		RI_CLKSEL_MPU | 
|  | 174 | #define RI_CLKSEL_DSP			(3 << 0)	/* c5x - 220MHz */ | 
|  | 175 | #define RI_CLKSEL_DSP_IF		(2 << 5)	/* c5x - 110MHz */ | 
|  | 176 | #define RI_SYNC_DSP			(1 << 7)	/* Activate sync */ | 
|  | 177 | #define RI_CLKSEL_IVA			(4 << 8)	/* iva1 - 165MHz */ | 
|  | 178 | #define RI_SYNC_IVA			(0 << 13)	/* Bypass sync */ | 
|  | 179 | #define RI_CM_CLKSEL_DSP_VAL		(RI_SYNC_IVA | RI_CLKSEL_IVA |	\ | 
|  | 180 | RI_SYNC_DSP | RI_CLKSEL_DSP_IF | \ | 
|  | 181 | RI_CLKSEL_DSP) | 
|  | 182 | #define RI_CLKSEL_GFX			(1 << 0)	/* 165MHz */ | 
|  | 183 | #define RI_CM_CLKSEL_GFX_VAL		RI_CLKSEL_GFX | 
|  | 184 |  | 
|  | 185 | /* 2420-PRCM VII (boot) */ | 
|  | 186 | #define RVII_CLKSEL_L3			(1 << 0) | 
|  | 187 | #define RVII_CLKSEL_L4			(1 << 5) | 
|  | 188 | #define RVII_CLKSEL_DSS1		(1 << 8) | 
|  | 189 | #define RVII_CLKSEL_DSS2		(0 << 13) | 
|  | 190 | #define RVII_CLKSEL_VLYNQ		(1 << 15) | 
|  | 191 | #define RVII_CLKSEL_SSI			(1 << 20) | 
|  | 192 | #define RVII_CLKSEL_USB			(1 << 25) | 
|  | 193 |  | 
|  | 194 | #define RVII_CM_CLKSEL1_CORE_VAL	(RVII_CLKSEL_USB | RVII_CLKSEL_SSI | \ | 
|  | 195 | RVII_CLKSEL_VLYNQ | \ | 
|  | 196 | RVII_CLKSEL_DSS2 | RVII_CLKSEL_DSS1 | \ | 
|  | 197 | RVII_CLKSEL_L4 | RVII_CLKSEL_L3) | 
|  | 198 |  | 
|  | 199 | #define RVII_CLKSEL_MPU			(1 << 0) /* all divide by 1 */ | 
|  | 200 | #define RVII_CM_CLKSEL_MPU_VAL		RVII_CLKSEL_MPU | 
|  | 201 |  | 
|  | 202 | #define RVII_CLKSEL_DSP			(1 << 0) | 
|  | 203 | #define RVII_CLKSEL_DSP_IF		(1 << 5) | 
|  | 204 | #define RVII_SYNC_DSP			(0 << 7) | 
|  | 205 | #define RVII_CLKSEL_IVA			(1 << 8) | 
|  | 206 | #define RVII_SYNC_IVA			(0 << 13) | 
|  | 207 | #define RVII_CM_CLKSEL_DSP_VAL		(RVII_SYNC_IVA | RVII_CLKSEL_IVA | \ | 
|  | 208 | RVII_SYNC_DSP | RVII_CLKSEL_DSP_IF | \ | 
|  | 209 | RVII_CLKSEL_DSP) | 
|  | 210 |  | 
|  | 211 | #define RVII_CLKSEL_GFX			(1 << 0) | 
|  | 212 | #define RVII_CM_CLKSEL_GFX_VAL		RVII_CLKSEL_GFX | 
|  | 213 |  | 
|  | 214 | /*------------------------------------------------------------------------- | 
|  | 215 | * 2430 Target modes: Along with each configuration the CPU has several | 
|  | 216 | * modes which goes along with them. Modes mainly are the addition of | 
|  | 217 | * describe DPLL combinations to go along with a ratio. | 
|  | 218 | *-------------------------------------------------------------------------*/ | 
|  | 219 |  | 
|  | 220 | /* Hardware governed */ | 
|  | 221 | #define MX_48M_SRC			(0 << 3) | 
|  | 222 | #define MX_54M_SRC			(0 << 5) | 
|  | 223 | #define MX_APLLS_CLIKIN_12		(3 << 23) | 
|  | 224 | #define MX_APLLS_CLIKIN_13		(2 << 23) | 
|  | 225 | #define MX_APLLS_CLIKIN_19_2		(0 << 23) | 
|  | 226 |  | 
|  | 227 | /* | 
|  | 228 | * 2430 - standalone, 2*ref*M/(n+1), M/N is for exactness not relock speed | 
|  | 229 | * #5a	(ratio1) baseport-target, target DPLL = 266*2 = 532MHz | 
|  | 230 | */ | 
|  | 231 | #define M5A_DPLL_MULT_12		(133 << 12) | 
|  | 232 | #define M5A_DPLL_DIV_12			(5 << 8) | 
|  | 233 | #define M5A_CM_CLKSEL1_PLL_12_VAL	(MX_48M_SRC | MX_54M_SRC | \ | 
|  | 234 | M5A_DPLL_DIV_12 | M5A_DPLL_MULT_12 | \ | 
|  | 235 | MX_APLLS_CLIKIN_12) | 
|  | 236 | #define M5A_DPLL_MULT_13		(61 << 12) | 
|  | 237 | #define M5A_DPLL_DIV_13			(2 << 8) | 
|  | 238 | #define M5A_CM_CLKSEL1_PLL_13_VAL	(MX_48M_SRC | MX_54M_SRC | \ | 
|  | 239 | M5A_DPLL_DIV_13 | M5A_DPLL_MULT_13 | \ | 
|  | 240 | MX_APLLS_CLIKIN_13) | 
|  | 241 | #define M5A_DPLL_MULT_19		(55 << 12) | 
|  | 242 | #define M5A_DPLL_DIV_19			(3 << 8) | 
|  | 243 | #define M5A_CM_CLKSEL1_PLL_19_VAL	(MX_48M_SRC | MX_54M_SRC | \ | 
|  | 244 | M5A_DPLL_DIV_19 | M5A_DPLL_MULT_19 | \ | 
|  | 245 | MX_APLLS_CLIKIN_19_2) | 
|  | 246 | /* #5b	(ratio1) target DPLL = 200*2 = 400MHz */ | 
|  | 247 | #define M5B_DPLL_MULT_12		(50 << 12) | 
|  | 248 | #define M5B_DPLL_DIV_12			(2 << 8) | 
|  | 249 | #define M5B_CM_CLKSEL1_PLL_12_VAL	(MX_48M_SRC | MX_54M_SRC | \ | 
|  | 250 | M5B_DPLL_DIV_12 | M5B_DPLL_MULT_12 | \ | 
|  | 251 | MX_APLLS_CLIKIN_12) | 
|  | 252 | #define M5B_DPLL_MULT_13		(200 << 12) | 
|  | 253 | #define M5B_DPLL_DIV_13			(12 << 8) | 
|  | 254 |  | 
|  | 255 | #define M5B_CM_CLKSEL1_PLL_13_VAL	(MX_48M_SRC | MX_54M_SRC | \ | 
|  | 256 | M5B_DPLL_DIV_13 | M5B_DPLL_MULT_13 | \ | 
|  | 257 | MX_APLLS_CLIKIN_13) | 
|  | 258 | #define M5B_DPLL_MULT_19		(125 << 12) | 
|  | 259 | #define M5B_DPLL_DIV_19			(31 << 8) | 
|  | 260 | #define M5B_CM_CLKSEL1_PLL_19_VAL	(MX_48M_SRC | MX_54M_SRC | \ | 
|  | 261 | M5B_DPLL_DIV_19 | M5B_DPLL_MULT_19 | \ | 
|  | 262 | MX_APLLS_CLIKIN_19_2) | 
|  | 263 | /* | 
|  | 264 | * #4	(ratio2), DPLL = 399*2 = 798MHz, L3=133MHz | 
|  | 265 | */ | 
|  | 266 | #define M4_DPLL_MULT_12			(133 << 12) | 
|  | 267 | #define M4_DPLL_DIV_12			(3 << 8) | 
|  | 268 | #define M4_CM_CLKSEL1_PLL_12_VAL	(MX_48M_SRC | MX_54M_SRC | \ | 
|  | 269 | M4_DPLL_DIV_12 | M4_DPLL_MULT_12 | \ | 
|  | 270 | MX_APLLS_CLIKIN_12) | 
|  | 271 |  | 
|  | 272 | #define M4_DPLL_MULT_13			(399 << 12) | 
|  | 273 | #define M4_DPLL_DIV_13			(12 << 8) | 
|  | 274 | #define M4_CM_CLKSEL1_PLL_13_VAL	(MX_48M_SRC | MX_54M_SRC | \ | 
|  | 275 | M4_DPLL_DIV_13 | M4_DPLL_MULT_13 | \ | 
|  | 276 | MX_APLLS_CLIKIN_13) | 
|  | 277 |  | 
|  | 278 | #define M4_DPLL_MULT_19			(145 << 12) | 
|  | 279 | #define M4_DPLL_DIV_19			(6 << 8) | 
|  | 280 | #define M4_CM_CLKSEL1_PLL_19_VAL	(MX_48M_SRC | MX_54M_SRC | \ | 
|  | 281 | M4_DPLL_DIV_19 | M4_DPLL_MULT_19 | \ | 
|  | 282 | MX_APLLS_CLIKIN_19_2) | 
|  | 283 |  | 
|  | 284 | /* | 
|  | 285 | * #3	(ratio2) baseport-target, target DPLL = 330*2 = 660MHz | 
|  | 286 | */ | 
|  | 287 | #define M3_DPLL_MULT_12			(55 << 12) | 
|  | 288 | #define M3_DPLL_DIV_12			(1 << 8) | 
|  | 289 | #define M3_CM_CLKSEL1_PLL_12_VAL	(MX_48M_SRC | MX_54M_SRC | \ | 
|  | 290 | M3_DPLL_DIV_12 | M3_DPLL_MULT_12 | \ | 
|  | 291 | MX_APLLS_CLIKIN_12) | 
|  | 292 | #define M3_DPLL_MULT_13			(76 << 12) | 
|  | 293 | #define M3_DPLL_DIV_13			(2 << 8) | 
|  | 294 | #define M3_CM_CLKSEL1_PLL_13_VAL	(MX_48M_SRC | MX_54M_SRC | \ | 
|  | 295 | M3_DPLL_DIV_13 | M3_DPLL_MULT_13 | \ | 
|  | 296 | MX_APLLS_CLIKIN_13) | 
|  | 297 | #define M3_DPLL_MULT_19			(17 << 12) | 
|  | 298 | #define M3_DPLL_DIV_19			(0 << 8) | 
|  | 299 | #define M3_CM_CLKSEL1_PLL_19_VAL	(MX_48M_SRC | MX_54M_SRC | \ | 
|  | 300 | M3_DPLL_DIV_19 | M3_DPLL_MULT_19 | \ | 
|  | 301 | MX_APLLS_CLIKIN_19_2) | 
|  | 302 |  | 
|  | 303 | /* | 
|  | 304 | * #2   (ratio1) DPLL = 330*2 = 660MHz, L3=165MHz | 
|  | 305 | */ | 
|  | 306 | #define M2_DPLL_MULT_12		        (55 << 12) | 
|  | 307 | #define M2_DPLL_DIV_12		        (1 << 8) | 
|  | 308 | #define M2_CM_CLKSEL1_PLL_12_VAL	(MX_48M_SRC | MX_54M_SRC | \ | 
|  | 309 | M2_DPLL_DIV_12 | M2_DPLL_MULT_12 | \ | 
|  | 310 | MX_APLLS_CLIKIN_12) | 
|  | 311 |  | 
|  | 312 | /* Speed changes - Used 658.7MHz instead of 660MHz for LP-Refresh M=76 N=2, | 
|  | 313 | * relock time issue */ | 
|  | 314 | /* Core frequency changed from 330/165 to 329/164 MHz*/ | 
|  | 315 | #define M2_DPLL_MULT_13		        (76 << 12) | 
|  | 316 | #define M2_DPLL_DIV_13		        (2 << 8) | 
|  | 317 | #define M2_CM_CLKSEL1_PLL_13_VAL	(MX_48M_SRC | MX_54M_SRC | \ | 
|  | 318 | M2_DPLL_DIV_13 | M2_DPLL_MULT_13 | \ | 
|  | 319 | MX_APLLS_CLIKIN_13) | 
|  | 320 |  | 
|  | 321 | #define M2_DPLL_MULT_19		        (17 << 12) | 
|  | 322 | #define M2_DPLL_DIV_19		        (0 << 8) | 
|  | 323 | #define M2_CM_CLKSEL1_PLL_19_VAL	(MX_48M_SRC | MX_54M_SRC | \ | 
|  | 324 | M2_DPLL_DIV_19 | M2_DPLL_MULT_19 | \ | 
|  | 325 | MX_APLLS_CLIKIN_19_2) | 
|  | 326 |  | 
|  | 327 | /* boot (boot) */ | 
|  | 328 | #define MB_DPLL_MULT			(1 << 12) | 
|  | 329 | #define MB_DPLL_DIV			(0 << 8) | 
|  | 330 | #define MB_CM_CLKSEL1_PLL_12_VAL	(MX_48M_SRC | MX_54M_SRC | \ | 
|  | 331 | MB_DPLL_DIV | MB_DPLL_MULT | \ | 
|  | 332 | MX_APLLS_CLIKIN_12) | 
|  | 333 |  | 
|  | 334 | #define MB_CM_CLKSEL1_PLL_13_VAL	(MX_48M_SRC | MX_54M_SRC | \ | 
|  | 335 | MB_DPLL_DIV | MB_DPLL_MULT | \ | 
|  | 336 | MX_APLLS_CLIKIN_13) | 
|  | 337 |  | 
|  | 338 | #define MB_CM_CLKSEL1_PLL_19_VAL	(MX_48M_SRC | MX_54M_SRC | \ | 
|  | 339 | MB_DPLL_DIV | MB_DPLL_MULT | \ | 
|  | 340 | MX_APLLS_CLIKIN_19) | 
|  | 341 |  | 
|  | 342 | /* | 
|  | 343 | * 2430 - chassis (sedna) | 
|  | 344 | * 165 (ratio1) same as above #2 | 
|  | 345 | * 150 (ratio1) | 
|  | 346 | * 133 (ratio2) same as above #4 | 
|  | 347 | * 110 (ratio2) same as above #3 | 
|  | 348 | * 104 (ratio2) | 
|  | 349 | * boot (boot) | 
|  | 350 | */ | 
|  | 351 |  | 
|  | 352 | /* PRCM I target DPLL = 2*330MHz = 660MHz */ | 
|  | 353 | #define MI_DPLL_MULT_12			(55 << 12) | 
|  | 354 | #define MI_DPLL_DIV_12			(1 << 8) | 
|  | 355 | #define MI_CM_CLKSEL1_PLL_12_VAL	(MX_48M_SRC | MX_54M_SRC | \ | 
|  | 356 | MI_DPLL_DIV_12 | MI_DPLL_MULT_12 | \ | 
|  | 357 | MX_APLLS_CLIKIN_12) | 
|  | 358 |  | 
|  | 359 | /* | 
|  | 360 | * 2420 Equivalent - mode registers | 
|  | 361 | * PRCM II , target DPLL = 2*300MHz = 600MHz | 
|  | 362 | */ | 
|  | 363 | #define MII_DPLL_MULT_12		(50 << 12) | 
|  | 364 | #define MII_DPLL_DIV_12			(1 << 8) | 
|  | 365 | #define MII_CM_CLKSEL1_PLL_12_VAL	(MX_48M_SRC | MX_54M_SRC |	\ | 
|  | 366 | MII_DPLL_DIV_12 | MII_DPLL_MULT_12 | \ | 
|  | 367 | MX_APLLS_CLIKIN_12) | 
|  | 368 | #define MII_DPLL_MULT_13		(300 << 12) | 
|  | 369 | #define MII_DPLL_DIV_13			(12 << 8) | 
|  | 370 | #define MII_CM_CLKSEL1_PLL_13_VAL	(MX_48M_SRC | MX_54M_SRC |	\ | 
|  | 371 | MII_DPLL_DIV_13 | MII_DPLL_MULT_13 | \ | 
|  | 372 | MX_APLLS_CLIKIN_13) | 
|  | 373 |  | 
|  | 374 | /* PRCM III target DPLL = 2*266 = 532MHz*/ | 
|  | 375 | #define MIII_DPLL_MULT_12		(133 << 12) | 
|  | 376 | #define MIII_DPLL_DIV_12		(5 << 8) | 
|  | 377 | #define MIII_CM_CLKSEL1_PLL_12_VAL	(MX_48M_SRC | MX_54M_SRC |	\ | 
|  | 378 | MIII_DPLL_DIV_12 | \ | 
|  | 379 | MIII_DPLL_MULT_12 | MX_APLLS_CLIKIN_12) | 
|  | 380 | #define MIII_DPLL_MULT_13		(266 << 12) | 
|  | 381 | #define MIII_DPLL_DIV_13		(12 << 8) | 
|  | 382 | #define MIII_CM_CLKSEL1_PLL_13_VAL	(MX_48M_SRC | MX_54M_SRC |	\ | 
|  | 383 | MIII_DPLL_DIV_13 | \ | 
|  | 384 | MIII_DPLL_MULT_13 | MX_APLLS_CLIKIN_13) | 
|  | 385 |  | 
|  | 386 | /* PRCM VII (boot bypass) */ | 
|  | 387 | #define MVII_CM_CLKSEL1_PLL_12_VAL	MB_CM_CLKSEL1_PLL_12_VAL | 
|  | 388 | #define MVII_CM_CLKSEL1_PLL_13_VAL	MB_CM_CLKSEL1_PLL_13_VAL | 
|  | 389 |  | 
|  | 390 | /* High and low operation value */ | 
|  | 391 | #define MX_CLKSEL2_PLL_2x_VAL		(2 << 0) | 
|  | 392 | #define MX_CLKSEL2_PLL_1x_VAL		(1 << 0) | 
|  | 393 |  | 
|  | 394 | /* MPU speed defines */ | 
|  | 395 | #define S12M	12000000 | 
|  | 396 | #define S13M	13000000 | 
|  | 397 | #define S19M	19200000 | 
|  | 398 | #define S26M	26000000 | 
|  | 399 | #define S100M	100000000 | 
|  | 400 | #define S133M	133000000 | 
|  | 401 | #define S150M	150000000 | 
|  | 402 | #define S164M	164000000 | 
|  | 403 | #define S165M	165000000 | 
|  | 404 | #define S199M	199000000 | 
|  | 405 | #define S200M	200000000 | 
|  | 406 | #define S266M	266000000 | 
|  | 407 | #define S300M	300000000 | 
|  | 408 | #define S329M	329000000 | 
|  | 409 | #define S330M	330000000 | 
|  | 410 | #define S399M	399000000 | 
|  | 411 | #define S400M	400000000 | 
|  | 412 | #define S532M	532000000 | 
|  | 413 | #define S600M	600000000 | 
|  | 414 | #define S658M	658000000 | 
|  | 415 | #define S660M	660000000 | 
|  | 416 | #define S798M	798000000 | 
|  | 417 |  | 
|  | 418 |  | 
|  | 419 | extern const struct prcm_config omap2420_rate_table[]; | 
| Tony Lindgren | 56213ca | 2010-02-12 12:26:46 -0800 | [diff] [blame] | 420 |  | 
| Tony Lindgren | 59b479e | 2011-01-27 16:39:40 -0800 | [diff] [blame] | 421 | #ifdef CONFIG_SOC_OMAP2430 | 
| Paul Walmsley | d8a9445 | 2009-12-08 16:21:29 -0700 | [diff] [blame] | 422 | extern const struct prcm_config omap2430_rate_table[]; | 
| Tony Lindgren | 56213ca | 2010-02-12 12:26:46 -0800 | [diff] [blame] | 423 | #else | 
|  | 424 | #define omap2430_rate_table	NULL | 
|  | 425 | #endif | 
| Paul Walmsley | d8a9445 | 2009-12-08 16:21:29 -0700 | [diff] [blame] | 426 | extern const struct prcm_config *rate_table; | 
|  | 427 | extern const struct prcm_config *curr_prcm_set; | 
|  | 428 |  | 
|  | 429 | #endif |