0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030 #ifndef __ARCH_ARM_MACH_OMAP2_OPP2XXX_H
0031 #define __ARCH_ARM_MACH_OMAP2_OPP2XXX_H
0032
0033
0034
0035
0036
0037
0038
0039
0040
0041
0042
0043 struct prcm_config {
0044 unsigned long xtal_speed;
0045 unsigned long dpll_speed;
0046 unsigned long mpu_speed;
0047 unsigned long cm_clksel_mpu;
0048 unsigned long cm_clksel_dsp;
0049 unsigned long cm_clksel_gfx;
0050 unsigned long cm_clksel1_core;
0051 unsigned long cm_clksel1_pll;
0052 unsigned long cm_clksel2_pll;
0053 unsigned long cm_clksel_mdm;
0054 unsigned long base_sdrc_rfr;
0055 unsigned short flags;
0056 };
0057
0058
0059
0060 #define RX_CLKSEL_DSS1 (0x10 << 8)
0061 #define RX_CLKSEL_DSS2 (0x0 << 13)
0062 #define RX_CLKSEL_SSI (0x5 << 20)
0063
0064
0065
0066
0067
0068
0069 #define R1_CLKSEL_L3 (4 << 0)
0070 #define R1_CLKSEL_L4 (2 << 5)
0071 #define R1_CLKSEL_USB (4 << 25)
0072 #define R1_CM_CLKSEL1_CORE_VAL (R1_CLKSEL_USB | RX_CLKSEL_SSI | \
0073 RX_CLKSEL_DSS2 | RX_CLKSEL_DSS1 | \
0074 R1_CLKSEL_L4 | R1_CLKSEL_L3)
0075 #define R1_CLKSEL_MPU (2 << 0)
0076 #define R1_CM_CLKSEL_MPU_VAL R1_CLKSEL_MPU
0077 #define R1_CLKSEL_DSP (2 << 0)
0078 #define R1_CLKSEL_DSP_IF (2 << 5)
0079 #define R1_CM_CLKSEL_DSP_VAL (R1_CLKSEL_DSP | R1_CLKSEL_DSP_IF)
0080 #define R1_CLKSEL_GFX (2 << 0)
0081 #define R1_CM_CLKSEL_GFX_VAL R1_CLKSEL_GFX
0082 #define R1_CLKSEL_MDM (4 << 0)
0083 #define R1_CM_CLKSEL_MDM_VAL R1_CLKSEL_MDM
0084
0085
0086 #define R2_CLKSEL_L3 (6 << 0)
0087 #define R2_CLKSEL_L4 (2 << 5)
0088 #define R2_CLKSEL_USB (2 << 25)
0089 #define R2_CM_CLKSEL1_CORE_VAL (R2_CLKSEL_USB | RX_CLKSEL_SSI | \
0090 RX_CLKSEL_DSS2 | RX_CLKSEL_DSS1 | \
0091 R2_CLKSEL_L4 | R2_CLKSEL_L3)
0092 #define R2_CLKSEL_MPU (2 << 0)
0093 #define R2_CM_CLKSEL_MPU_VAL R2_CLKSEL_MPU
0094 #define R2_CLKSEL_DSP (2 << 0)
0095 #define R2_CLKSEL_DSP_IF (3 << 5)
0096 #define R2_CM_CLKSEL_DSP_VAL (R2_CLKSEL_DSP | R2_CLKSEL_DSP_IF)
0097 #define R2_CLKSEL_GFX (2 << 0)
0098 #define R2_CM_CLKSEL_GFX_VAL R2_CLKSEL_GFX
0099 #define R2_CLKSEL_MDM (6 << 0)
0100 #define R2_CM_CLKSEL_MDM_VAL R2_CLKSEL_MDM
0101
0102
0103 #define RB_CLKSEL_L3 (1 << 0)
0104 #define RB_CLKSEL_L4 (1 << 5)
0105 #define RB_CLKSEL_USB (1 << 25)
0106 #define RB_CM_CLKSEL1_CORE_VAL (RB_CLKSEL_USB | RX_CLKSEL_SSI | \
0107 RX_CLKSEL_DSS2 | RX_CLKSEL_DSS1 | \
0108 RB_CLKSEL_L4 | RB_CLKSEL_L3)
0109 #define RB_CLKSEL_MPU (1 << 0)
0110 #define RB_CM_CLKSEL_MPU_VAL RB_CLKSEL_MPU
0111 #define RB_CLKSEL_DSP (1 << 0)
0112 #define RB_CLKSEL_DSP_IF (1 << 5)
0113 #define RB_CM_CLKSEL_DSP_VAL (RB_CLKSEL_DSP | RB_CLKSEL_DSP_IF)
0114 #define RB_CLKSEL_GFX (1 << 0)
0115 #define RB_CM_CLKSEL_GFX_VAL RB_CLKSEL_GFX
0116 #define RB_CLKSEL_MDM (1 << 0)
0117 #define RB_CM_CLKSEL_MDM_VAL RB_CLKSEL_MDM
0118
0119
0120 #define RXX_CLKSEL_VLYNQ (0x12 << 15)
0121 #define RXX_CLKSEL_SSI (0x8 << 20)
0122
0123
0124 #define RIII_CLKSEL_L3 (4 << 0)
0125 #define RIII_CLKSEL_L4 (2 << 5)
0126 #define RIII_CLKSEL_USB (4 << 25)
0127 #define RIII_CM_CLKSEL1_CORE_VAL (RIII_CLKSEL_USB | RXX_CLKSEL_SSI | \
0128 RXX_CLKSEL_VLYNQ | RX_CLKSEL_DSS2 | \
0129 RX_CLKSEL_DSS1 | RIII_CLKSEL_L4 | \
0130 RIII_CLKSEL_L3)
0131 #define RIII_CLKSEL_MPU (2 << 0)
0132 #define RIII_CM_CLKSEL_MPU_VAL RIII_CLKSEL_MPU
0133 #define RIII_CLKSEL_DSP (3 << 0)
0134 #define RIII_CLKSEL_DSP_IF (2 << 5)
0135 #define RIII_SYNC_DSP (1 << 7)
0136 #define RIII_CLKSEL_IVA (6 << 8)
0137 #define RIII_SYNC_IVA (1 << 13)
0138 #define RIII_CM_CLKSEL_DSP_VAL (RIII_SYNC_IVA | RIII_CLKSEL_IVA | \
0139 RIII_SYNC_DSP | RIII_CLKSEL_DSP_IF | \
0140 RIII_CLKSEL_DSP)
0141 #define RIII_CLKSEL_GFX (2 << 0)
0142 #define RIII_CM_CLKSEL_GFX_VAL RIII_CLKSEL_GFX
0143
0144
0145 #define RII_CLKSEL_L3 (6 << 0)
0146 #define RII_CLKSEL_L4 (2 << 5)
0147 #define RII_CLKSEL_USB (2 << 25)
0148 #define RII_CM_CLKSEL1_CORE_VAL (RII_CLKSEL_USB | RXX_CLKSEL_SSI | \
0149 RXX_CLKSEL_VLYNQ | RX_CLKSEL_DSS2 | \
0150 RX_CLKSEL_DSS1 | RII_CLKSEL_L4 | \
0151 RII_CLKSEL_L3)
0152 #define RII_CLKSEL_MPU (2 << 0)
0153 #define RII_CM_CLKSEL_MPU_VAL RII_CLKSEL_MPU
0154 #define RII_CLKSEL_DSP (3 << 0)
0155 #define RII_CLKSEL_DSP_IF (2 << 5)
0156 #define RII_SYNC_DSP (0 << 7)
0157 #define RII_CLKSEL_IVA (3 << 8)
0158 #define RII_SYNC_IVA (0 << 13)
0159 #define RII_CM_CLKSEL_DSP_VAL (RII_SYNC_IVA | RII_CLKSEL_IVA | \
0160 RII_SYNC_DSP | RII_CLKSEL_DSP_IF | \
0161 RII_CLKSEL_DSP)
0162 #define RII_CLKSEL_GFX (2 << 0)
0163 #define RII_CM_CLKSEL_GFX_VAL RII_CLKSEL_GFX
0164
0165
0166 #define RI_CLKSEL_L3 (4 << 0)
0167 #define RI_CLKSEL_L4 (2 << 5)
0168 #define RI_CLKSEL_USB (4 << 25)
0169 #define RI_CM_CLKSEL1_CORE_VAL (RI_CLKSEL_USB | \
0170 RXX_CLKSEL_SSI | RXX_CLKSEL_VLYNQ | \
0171 RX_CLKSEL_DSS2 | RX_CLKSEL_DSS1 | \
0172 RI_CLKSEL_L4 | RI_CLKSEL_L3)
0173 #define RI_CLKSEL_MPU (2 << 0)
0174 #define RI_CM_CLKSEL_MPU_VAL RI_CLKSEL_MPU
0175 #define RI_CLKSEL_DSP (3 << 0)
0176 #define RI_CLKSEL_DSP_IF (2 << 5)
0177 #define RI_SYNC_DSP (1 << 7)
0178 #define RI_CLKSEL_IVA (4 << 8)
0179 #define RI_SYNC_IVA (0 << 13)
0180 #define RI_CM_CLKSEL_DSP_VAL (RI_SYNC_IVA | RI_CLKSEL_IVA | \
0181 RI_SYNC_DSP | RI_CLKSEL_DSP_IF | \
0182 RI_CLKSEL_DSP)
0183 #define RI_CLKSEL_GFX (1 << 0)
0184 #define RI_CM_CLKSEL_GFX_VAL RI_CLKSEL_GFX
0185
0186
0187 #define RVII_CLKSEL_L3 (1 << 0)
0188 #define RVII_CLKSEL_L4 (1 << 5)
0189 #define RVII_CLKSEL_DSS1 (1 << 8)
0190 #define RVII_CLKSEL_DSS2 (0 << 13)
0191 #define RVII_CLKSEL_VLYNQ (1 << 15)
0192 #define RVII_CLKSEL_SSI (1 << 20)
0193 #define RVII_CLKSEL_USB (1 << 25)
0194
0195 #define RVII_CM_CLKSEL1_CORE_VAL (RVII_CLKSEL_USB | RVII_CLKSEL_SSI | \
0196 RVII_CLKSEL_VLYNQ | \
0197 RVII_CLKSEL_DSS2 | RVII_CLKSEL_DSS1 | \
0198 RVII_CLKSEL_L4 | RVII_CLKSEL_L3)
0199
0200 #define RVII_CLKSEL_MPU (1 << 0)
0201 #define RVII_CM_CLKSEL_MPU_VAL RVII_CLKSEL_MPU
0202
0203 #define RVII_CLKSEL_DSP (1 << 0)
0204 #define RVII_CLKSEL_DSP_IF (1 << 5)
0205 #define RVII_SYNC_DSP (0 << 7)
0206 #define RVII_CLKSEL_IVA (1 << 8)
0207 #define RVII_SYNC_IVA (0 << 13)
0208 #define RVII_CM_CLKSEL_DSP_VAL (RVII_SYNC_IVA | RVII_CLKSEL_IVA | \
0209 RVII_SYNC_DSP | RVII_CLKSEL_DSP_IF | \
0210 RVII_CLKSEL_DSP)
0211
0212 #define RVII_CLKSEL_GFX (1 << 0)
0213 #define RVII_CM_CLKSEL_GFX_VAL RVII_CLKSEL_GFX
0214
0215
0216
0217
0218
0219
0220
0221
0222 #define MX_48M_SRC (0 << 3)
0223 #define MX_54M_SRC (0 << 5)
0224 #define MX_APLLS_CLIKIN_12 (3 << 23)
0225 #define MX_APLLS_CLIKIN_13 (2 << 23)
0226 #define MX_APLLS_CLIKIN_19_2 (0 << 23)
0227
0228
0229
0230
0231
0232 #define M5A_DPLL_MULT_12 (133 << 12)
0233 #define M5A_DPLL_DIV_12 (5 << 8)
0234 #define M5A_CM_CLKSEL1_PLL_12_VAL (MX_48M_SRC | MX_54M_SRC | \
0235 M5A_DPLL_DIV_12 | M5A_DPLL_MULT_12 | \
0236 MX_APLLS_CLIKIN_12)
0237 #define M5A_DPLL_MULT_13 (61 << 12)
0238 #define M5A_DPLL_DIV_13 (2 << 8)
0239 #define M5A_CM_CLKSEL1_PLL_13_VAL (MX_48M_SRC | MX_54M_SRC | \
0240 M5A_DPLL_DIV_13 | M5A_DPLL_MULT_13 | \
0241 MX_APLLS_CLIKIN_13)
0242 #define M5A_DPLL_MULT_19 (55 << 12)
0243 #define M5A_DPLL_DIV_19 (3 << 8)
0244 #define M5A_CM_CLKSEL1_PLL_19_VAL (MX_48M_SRC | MX_54M_SRC | \
0245 M5A_DPLL_DIV_19 | M5A_DPLL_MULT_19 | \
0246 MX_APLLS_CLIKIN_19_2)
0247
0248 #define M5B_DPLL_MULT_12 (50 << 12)
0249 #define M5B_DPLL_DIV_12 (2 << 8)
0250 #define M5B_CM_CLKSEL1_PLL_12_VAL (MX_48M_SRC | MX_54M_SRC | \
0251 M5B_DPLL_DIV_12 | M5B_DPLL_MULT_12 | \
0252 MX_APLLS_CLIKIN_12)
0253 #define M5B_DPLL_MULT_13 (200 << 12)
0254 #define M5B_DPLL_DIV_13 (12 << 8)
0255
0256 #define M5B_CM_CLKSEL1_PLL_13_VAL (MX_48M_SRC | MX_54M_SRC | \
0257 M5B_DPLL_DIV_13 | M5B_DPLL_MULT_13 | \
0258 MX_APLLS_CLIKIN_13)
0259 #define M5B_DPLL_MULT_19 (125 << 12)
0260 #define M5B_DPLL_DIV_19 (31 << 8)
0261 #define M5B_CM_CLKSEL1_PLL_19_VAL (MX_48M_SRC | MX_54M_SRC | \
0262 M5B_DPLL_DIV_19 | M5B_DPLL_MULT_19 | \
0263 MX_APLLS_CLIKIN_19_2)
0264
0265
0266
0267 #define M4_DPLL_MULT_12 (133 << 12)
0268 #define M4_DPLL_DIV_12 (3 << 8)
0269 #define M4_CM_CLKSEL1_PLL_12_VAL (MX_48M_SRC | MX_54M_SRC | \
0270 M4_DPLL_DIV_12 | M4_DPLL_MULT_12 | \
0271 MX_APLLS_CLIKIN_12)
0272
0273 #define M4_DPLL_MULT_13 (399 << 12)
0274 #define M4_DPLL_DIV_13 (12 << 8)
0275 #define M4_CM_CLKSEL1_PLL_13_VAL (MX_48M_SRC | MX_54M_SRC | \
0276 M4_DPLL_DIV_13 | M4_DPLL_MULT_13 | \
0277 MX_APLLS_CLIKIN_13)
0278
0279 #define M4_DPLL_MULT_19 (145 << 12)
0280 #define M4_DPLL_DIV_19 (6 << 8)
0281 #define M4_CM_CLKSEL1_PLL_19_VAL (MX_48M_SRC | MX_54M_SRC | \
0282 M4_DPLL_DIV_19 | M4_DPLL_MULT_19 | \
0283 MX_APLLS_CLIKIN_19_2)
0284
0285
0286
0287
0288 #define M3_DPLL_MULT_12 (55 << 12)
0289 #define M3_DPLL_DIV_12 (1 << 8)
0290 #define M3_CM_CLKSEL1_PLL_12_VAL (MX_48M_SRC | MX_54M_SRC | \
0291 M3_DPLL_DIV_12 | M3_DPLL_MULT_12 | \
0292 MX_APLLS_CLIKIN_12)
0293 #define M3_DPLL_MULT_13 (76 << 12)
0294 #define M3_DPLL_DIV_13 (2 << 8)
0295 #define M3_CM_CLKSEL1_PLL_13_VAL (MX_48M_SRC | MX_54M_SRC | \
0296 M3_DPLL_DIV_13 | M3_DPLL_MULT_13 | \
0297 MX_APLLS_CLIKIN_13)
0298 #define M3_DPLL_MULT_19 (17 << 12)
0299 #define M3_DPLL_DIV_19 (0 << 8)
0300 #define M3_CM_CLKSEL1_PLL_19_VAL (MX_48M_SRC | MX_54M_SRC | \
0301 M3_DPLL_DIV_19 | M3_DPLL_MULT_19 | \
0302 MX_APLLS_CLIKIN_19_2)
0303
0304
0305
0306
0307 #define M2_DPLL_MULT_12 (55 << 12)
0308 #define M2_DPLL_DIV_12 (1 << 8)
0309 #define M2_CM_CLKSEL1_PLL_12_VAL (MX_48M_SRC | MX_54M_SRC | \
0310 M2_DPLL_DIV_12 | M2_DPLL_MULT_12 | \
0311 MX_APLLS_CLIKIN_12)
0312
0313
0314
0315
0316 #define M2_DPLL_MULT_13 (76 << 12)
0317 #define M2_DPLL_DIV_13 (2 << 8)
0318 #define M2_CM_CLKSEL1_PLL_13_VAL (MX_48M_SRC | MX_54M_SRC | \
0319 M2_DPLL_DIV_13 | M2_DPLL_MULT_13 | \
0320 MX_APLLS_CLIKIN_13)
0321
0322 #define M2_DPLL_MULT_19 (17 << 12)
0323 #define M2_DPLL_DIV_19 (0 << 8)
0324 #define M2_CM_CLKSEL1_PLL_19_VAL (MX_48M_SRC | MX_54M_SRC | \
0325 M2_DPLL_DIV_19 | M2_DPLL_MULT_19 | \
0326 MX_APLLS_CLIKIN_19_2)
0327
0328
0329 #define MB_DPLL_MULT (1 << 12)
0330 #define MB_DPLL_DIV (0 << 8)
0331 #define MB_CM_CLKSEL1_PLL_12_VAL (MX_48M_SRC | MX_54M_SRC | \
0332 MB_DPLL_DIV | MB_DPLL_MULT | \
0333 MX_APLLS_CLIKIN_12)
0334
0335 #define MB_CM_CLKSEL1_PLL_13_VAL (MX_48M_SRC | MX_54M_SRC | \
0336 MB_DPLL_DIV | MB_DPLL_MULT | \
0337 MX_APLLS_CLIKIN_13)
0338
0339 #define MB_CM_CLKSEL1_PLL_19_VAL (MX_48M_SRC | MX_54M_SRC | \
0340 MB_DPLL_DIV | MB_DPLL_MULT | \
0341 MX_APLLS_CLIKIN_19)
0342
0343
0344
0345
0346
0347
0348
0349
0350
0351
0352
0353
0354 #define MI_DPLL_MULT_12 (55 << 12)
0355 #define MI_DPLL_DIV_12 (1 << 8)
0356 #define MI_CM_CLKSEL1_PLL_12_VAL (MX_48M_SRC | MX_54M_SRC | \
0357 MI_DPLL_DIV_12 | MI_DPLL_MULT_12 | \
0358 MX_APLLS_CLIKIN_12)
0359
0360
0361
0362
0363
0364 #define MII_DPLL_MULT_12 (50 << 12)
0365 #define MII_DPLL_DIV_12 (1 << 8)
0366 #define MII_CM_CLKSEL1_PLL_12_VAL (MX_48M_SRC | MX_54M_SRC | \
0367 MII_DPLL_DIV_12 | MII_DPLL_MULT_12 | \
0368 MX_APLLS_CLIKIN_12)
0369 #define MII_DPLL_MULT_13 (300 << 12)
0370 #define MII_DPLL_DIV_13 (12 << 8)
0371 #define MII_CM_CLKSEL1_PLL_13_VAL (MX_48M_SRC | MX_54M_SRC | \
0372 MII_DPLL_DIV_13 | MII_DPLL_MULT_13 | \
0373 MX_APLLS_CLIKIN_13)
0374
0375
0376 #define MIII_DPLL_MULT_12 (133 << 12)
0377 #define MIII_DPLL_DIV_12 (5 << 8)
0378 #define MIII_CM_CLKSEL1_PLL_12_VAL (MX_48M_SRC | MX_54M_SRC | \
0379 MIII_DPLL_DIV_12 | \
0380 MIII_DPLL_MULT_12 | MX_APLLS_CLIKIN_12)
0381 #define MIII_DPLL_MULT_13 (266 << 12)
0382 #define MIII_DPLL_DIV_13 (12 << 8)
0383 #define MIII_CM_CLKSEL1_PLL_13_VAL (MX_48M_SRC | MX_54M_SRC | \
0384 MIII_DPLL_DIV_13 | \
0385 MIII_DPLL_MULT_13 | MX_APLLS_CLIKIN_13)
0386
0387
0388 #define MVII_CM_CLKSEL1_PLL_12_VAL MB_CM_CLKSEL1_PLL_12_VAL
0389 #define MVII_CM_CLKSEL1_PLL_13_VAL MB_CM_CLKSEL1_PLL_13_VAL
0390
0391
0392 #define MX_CLKSEL2_PLL_2x_VAL (2 << 0)
0393 #define MX_CLKSEL2_PLL_1x_VAL (1 << 0)
0394
0395
0396 #define S12M 12000000
0397 #define S13M 13000000
0398 #define S19M 19200000
0399 #define S26M 26000000
0400 #define S100M 100000000
0401 #define S133M 133000000
0402 #define S150M 150000000
0403 #define S164M 164000000
0404 #define S165M 165000000
0405 #define S199M 199000000
0406 #define S200M 200000000
0407 #define S266M 266000000
0408 #define S300M 300000000
0409 #define S329M 329000000
0410 #define S330M 330000000
0411 #define S399M 399000000
0412 #define S400M 400000000
0413 #define S532M 532000000
0414 #define S600M 600000000
0415 #define S658M 658000000
0416 #define S660M 660000000
0417 #define S798M 798000000
0418
0419
0420 extern const struct prcm_config omap2420_rate_table[];
0421
0422 #ifdef CONFIG_SOC_OMAP2430
0423 extern const struct prcm_config omap2430_rate_table[];
0424 #else
0425 #define omap2430_rate_table NULL
0426 #endif
0427 extern const struct prcm_config *rate_table;
0428 extern const struct prcm_config *curr_prcm_set;
0429
0430 #endif