diff options
| -rw-r--r-- | arch/arm/mach-omap2/id.c | 61 |
1 files changed, 21 insertions, 40 deletions
diff --git a/arch/arm/mach-omap2/id.c b/arch/arm/mach-omap2/id.c index 49846601fe77..f48a4b2654dd 100644 --- a/arch/arm/mach-omap2/id.c +++ b/arch/arm/mach-omap2/id.c | |||
| @@ -53,11 +53,11 @@ int omap_type(void) | |||
| 53 | { | 53 | { |
| 54 | u32 val = 0; | 54 | u32 val = 0; |
| 55 | 55 | ||
| 56 | if (cpu_is_omap24xx()) | 56 | if (cpu_is_omap24xx()) { |
| 57 | val = omap_ctrl_readl(OMAP24XX_CONTROL_STATUS); | 57 | val = omap_ctrl_readl(OMAP24XX_CONTROL_STATUS); |
| 58 | else if (cpu_is_omap34xx()) | 58 | } else if (cpu_is_omap34xx()) { |
| 59 | val = omap_ctrl_readl(OMAP343X_CONTROL_STATUS); | 59 | val = omap_ctrl_readl(OMAP343X_CONTROL_STATUS); |
| 60 | else { | 60 | } else { |
| 61 | pr_err("Cannot detect omap type!\n"); | 61 | pr_err("Cannot detect omap type!\n"); |
| 62 | goto out; | 62 | goto out; |
| 63 | } | 63 | } |
| @@ -224,24 +224,12 @@ void __init omap3_check_revision(void) | |||
| 224 | omap_revision = OMAP3430_REV_ES3_0; | 224 | omap_revision = OMAP3430_REV_ES3_0; |
| 225 | break; | 225 | break; |
| 226 | case 4: | 226 | case 4: |
| 227 | omap_revision = OMAP3430_REV_ES3_1; | 227 | /* FALLTHROUGH */ |
| 228 | break; | ||
| 229 | default: | 228 | default: |
| 230 | /* Use the latest known revision as default */ | 229 | /* Use the latest known revision as default */ |
| 231 | omap_revision = OMAP3430_REV_ES3_1; | 230 | omap_revision = OMAP3430_REV_ES3_1; |
| 232 | } | 231 | } |
| 233 | break; | 232 | break; |
| 234 | case 0xb891: | ||
| 235 | /* Handle 36xx devices */ | ||
| 236 | switch (rev) { | ||
| 237 | case 0: | ||
| 238 | omap_revision = OMAP3630_REV_ES1_0; | ||
| 239 | break; | ||
| 240 | default: | ||
| 241 | /* Use the latest known revision as default */ | ||
| 242 | omap_revision = OMAP3630_REV_ES1_0; | ||
| 243 | } | ||
| 244 | break; | ||
| 245 | case 0xb868: | 233 | case 0xb868: |
| 246 | /* Handle OMAP35xx/AM35xx devices | 234 | /* Handle OMAP35xx/AM35xx devices |
| 247 | * | 235 | * |
| @@ -250,6 +238,8 @@ void __init omap3_check_revision(void) | |||
| 250 | */ | 238 | */ |
| 251 | omap_revision = OMAP3505_REV(rev); | 239 | omap_revision = OMAP3505_REV(rev); |
| 252 | break; | 240 | break; |
| 241 | case 0xb891: | ||
| 242 | /* FALLTHROUGH */ | ||
| 253 | default: | 243 | default: |
| 254 | /* Unknown default to latest silicon rev as default*/ | 244 | /* Unknown default to latest silicon rev as default*/ |
| 255 | omap_revision = OMAP3630_REV_ES1_0; | 245 | omap_revision = OMAP3630_REV_ES1_0; |
| @@ -271,35 +261,29 @@ void __init omap3_cpuinfo(void) | |||
| 271 | * on available features. Upon detection, update the CPU id | 261 | * on available features. Upon detection, update the CPU id |
| 272 | * and CPU class bits. | 262 | * and CPU class bits. |
| 273 | */ | 263 | */ |
| 274 | if (cpu_is_omap3630()) | 264 | if (cpu_is_omap3630()) { |
| 275 | strcpy(cpu_name, "OMAP3630"); | 265 | strcpy(cpu_name, "OMAP3630"); |
| 276 | else if (cpu_is_omap3505()) { | 266 | } else if (cpu_is_omap3505()) { |
| 277 | /* | 267 | /* |
| 278 | * AM35xx devices | 268 | * AM35xx devices |
| 279 | */ | 269 | */ |
| 280 | if (omap3_has_sgx()) { | 270 | if (omap3_has_sgx()) { |
| 281 | omap_revision = OMAP3517_REV(rev); | 271 | omap_revision = OMAP3517_REV(rev); |
| 282 | strcpy(cpu_name, "AM3517"); | 272 | strcpy(cpu_name, "AM3517"); |
| 283 | } | 273 | } else { |
| 284 | else { | ||
| 285 | /* Already set in omap3_check_revision() */ | 274 | /* Already set in omap3_check_revision() */ |
| 286 | strcpy(cpu_name, "AM3505"); | 275 | strcpy(cpu_name, "AM3505"); |
| 287 | } | 276 | } |
| 288 | } | 277 | } else if (omap3_has_iva() && omap3_has_sgx()) { |
| 289 | /* | 278 | /* OMAP3430, OMAP3525, OMAP3515, OMAP3503 devices */ |
| 290 | * OMAP3430, OMAP3525, OMAP3515, OMAP3503 devices | ||
| 291 | */ | ||
| 292 | else if (omap3_has_iva() && omap3_has_sgx()) | ||
| 293 | strcpy(cpu_name, "OMAP3430/3530"); | 279 | strcpy(cpu_name, "OMAP3430/3530"); |
| 294 | else if (omap3_has_sgx()) { | 280 | } else if (omap3_has_sgx()) { |
| 295 | omap_revision = OMAP3525_REV(rev); | 281 | omap_revision = OMAP3525_REV(rev); |
| 296 | strcpy(cpu_name, "OMAP3525"); | 282 | strcpy(cpu_name, "OMAP3525"); |
| 297 | } | 283 | } else if (omap3_has_iva()) { |
| 298 | else if (omap3_has_iva()) { | ||
| 299 | omap_revision = OMAP3515_REV(rev); | 284 | omap_revision = OMAP3515_REV(rev); |
| 300 | strcpy(cpu_name, "OMAP3515"); | 285 | strcpy(cpu_name, "OMAP3515"); |
| 301 | } | 286 | } else { |
| 302 | else { | ||
| 303 | omap_revision = OMAP3503_REV(rev); | 287 | omap_revision = OMAP3503_REV(rev); |
| 304 | strcpy(cpu_name, "OMAP3503"); | 288 | strcpy(cpu_name, "OMAP3503"); |
| 305 | } | 289 | } |
| @@ -318,16 +302,13 @@ void __init omap3_cpuinfo(void) | |||
| 318 | strcpy(cpu_rev, "3.0"); | 302 | strcpy(cpu_rev, "3.0"); |
| 319 | break; | 303 | break; |
| 320 | case OMAP_REVBITS_40: | 304 | case OMAP_REVBITS_40: |
| 321 | strcpy(cpu_rev, "3.1"); | 305 | /* FALLTHROUGH */ |
| 322 | break; | ||
| 323 | default: | 306 | default: |
| 324 | /* Use the latest known revision as default */ | 307 | /* Use the latest known revision as default */ |
| 325 | strcpy(cpu_rev, "3.1"); | 308 | strcpy(cpu_rev, "3.1"); |
| 326 | } | 309 | } |
| 327 | 310 | ||
| 328 | /* | 311 | /* Print verbose information */ |
| 329 | * Print verbose information | ||
| 330 | */ | ||
| 331 | pr_info("%s ES%s (", cpu_name, cpu_rev); | 312 | pr_info("%s ES%s (", cpu_name, cpu_rev); |
| 332 | 313 | ||
| 333 | OMAP3_SHOW_FEATURE(l2cache); | 314 | OMAP3_SHOW_FEATURE(l2cache); |
| @@ -348,18 +329,18 @@ void __init omap2_check_revision(void) | |||
| 348 | * At this point we have an idea about the processor revision set | 329 | * At this point we have an idea about the processor revision set |
| 349 | * earlier with omap2_set_globals_tap(). | 330 | * earlier with omap2_set_globals_tap(). |
| 350 | */ | 331 | */ |
| 351 | if (cpu_is_omap24xx()) | 332 | if (cpu_is_omap24xx()) { |
| 352 | omap24xx_check_revision(); | 333 | omap24xx_check_revision(); |
| 353 | else if (cpu_is_omap34xx()) { | 334 | } else if (cpu_is_omap34xx()) { |
| 354 | omap3_check_revision(); | 335 | omap3_check_revision(); |
| 355 | omap3_check_features(); | 336 | omap3_check_features(); |
| 356 | omap3_cpuinfo(); | 337 | omap3_cpuinfo(); |
| 357 | } | 338 | } else if (cpu_is_omap44xx()) { |
| 358 | else if (cpu_is_omap44xx()) { | ||
| 359 | printk(KERN_INFO "FIXME: CPU revision = OMAP4430\n"); | 339 | printk(KERN_INFO "FIXME: CPU revision = OMAP4430\n"); |
| 360 | return; | 340 | return; |
| 361 | } else | 341 | } else { |
| 362 | pr_err("OMAP revision unknown, please fix!\n"); | 342 | pr_err("OMAP revision unknown, please fix!\n"); |
| 343 | } | ||
| 363 | 344 | ||
| 364 | /* | 345 | /* |
| 365 | * OK, now we know the exact revision. Initialize omap_chip bits | 346 | * OK, now we know the exact revision. Initialize omap_chip bits |
