diff options
| -rw-r--r-- | arch/arm/mach-omap2/id.c | 28 | ||||
| -rw-r--r-- | arch/arm/plat-omap/include/plat/cpu.h | 15 |
2 files changed, 36 insertions, 7 deletions
diff --git a/arch/arm/mach-omap2/id.c b/arch/arm/mach-omap2/id.c index fd1904b013fa..e8256a2ed8e7 100644 --- a/arch/arm/mach-omap2/id.c +++ b/arch/arm/mach-omap2/id.c | |||
| @@ -269,11 +269,27 @@ static void __init omap3_check_revision(void) | |||
| 269 | omap_chip.oc |= CHIP_IS_OMAP3430ES3_1; | 269 | omap_chip.oc |= CHIP_IS_OMAP3430ES3_1; |
| 270 | break; | 270 | break; |
| 271 | case 0xb891: | 271 | case 0xb891: |
| 272 | /* FALLTHROUGH */ | 272 | /* Handle 36xx devices */ |
| 273 | omap_chip.oc |= CHIP_IS_OMAP3630ES1; | ||
| 274 | |||
| 275 | switch(rev) { | ||
| 276 | case 0: /* Take care of early samples */ | ||
| 277 | omap_revision = OMAP3630_REV_ES1_0; | ||
| 278 | break; | ||
| 279 | case 1: | ||
| 280 | omap_revision = OMAP3630_REV_ES1_1; | ||
| 281 | omap_chip.oc |= CHIP_IS_OMAP3630ES1_1; | ||
| 282 | break; | ||
| 283 | case 2: | ||
| 284 | default: | ||
| 285 | omap_revision = OMAP3630_REV_ES1_2; | ||
| 286 | omap_chip.oc |= CHIP_IS_OMAP3630ES1_2; | ||
| 287 | break; | ||
| 288 | } | ||
| 273 | default: | 289 | default: |
| 274 | /* Unknown default to latest silicon rev as default*/ | 290 | /* Unknown default to latest silicon rev as default*/ |
| 275 | omap_revision = OMAP3630_REV_ES1_0; | 291 | omap_revision = OMAP3630_REV_ES1_2; |
| 276 | omap_chip.oc |= CHIP_IS_OMAP3630ES1; | 292 | omap_chip.oc |= CHIP_IS_OMAP3630ES1_2; |
| 277 | } | 293 | } |
| 278 | } | 294 | } |
| 279 | 295 | ||
| @@ -349,6 +365,12 @@ static void __init omap3_cpuinfo(void) | |||
| 349 | case OMAP_REVBITS_00: | 365 | case OMAP_REVBITS_00: |
| 350 | strcpy(cpu_rev, "1.0"); | 366 | strcpy(cpu_rev, "1.0"); |
| 351 | break; | 367 | break; |
| 368 | case OMAP_REVBITS_01: | ||
| 369 | strcpy(cpu_rev, "1.1"); | ||
| 370 | break; | ||
| 371 | case OMAP_REVBITS_02: | ||
| 372 | strcpy(cpu_rev, "1.2"); | ||
| 373 | break; | ||
| 352 | case OMAP_REVBITS_10: | 374 | case OMAP_REVBITS_10: |
| 353 | strcpy(cpu_rev, "2.0"); | 375 | strcpy(cpu_rev, "2.0"); |
| 354 | break; | 376 | break; |
diff --git a/arch/arm/plat-omap/include/plat/cpu.h b/arch/arm/plat-omap/include/plat/cpu.h index aa2f4f079f57..2e2ae530fced 100644 --- a/arch/arm/plat-omap/include/plat/cpu.h +++ b/arch/arm/plat-omap/include/plat/cpu.h | |||
| @@ -66,6 +66,8 @@ unsigned int omap_rev(void); | |||
| 66 | * family. This difference can be handled separately. | 66 | * family. This difference can be handled separately. |
| 67 | */ | 67 | */ |
| 68 | #define OMAP_REVBITS_00 0x00 | 68 | #define OMAP_REVBITS_00 0x00 |
| 69 | #define OMAP_REVBITS_01 0x01 | ||
| 70 | #define OMAP_REVBITS_02 0x02 | ||
| 69 | #define OMAP_REVBITS_10 0x10 | 71 | #define OMAP_REVBITS_10 0x10 |
| 70 | #define OMAP_REVBITS_20 0x20 | 72 | #define OMAP_REVBITS_20 0x20 |
| 71 | #define OMAP_REVBITS_30 0x30 | 73 | #define OMAP_REVBITS_30 0x30 |
| @@ -376,6 +378,8 @@ IS_OMAP_TYPE(3517, 0x3517) | |||
| 376 | #define OMAP3430_REV_ES3_1_2 0x34305034 | 378 | #define OMAP3430_REV_ES3_1_2 0x34305034 |
| 377 | 379 | ||
| 378 | #define OMAP3630_REV_ES1_0 0x36300034 | 380 | #define OMAP3630_REV_ES1_0 0x36300034 |
| 381 | #define OMAP3630_REV_ES1_1 0x36300134 | ||
| 382 | #define OMAP3630_REV_ES1_2 0x36300234 | ||
| 379 | 383 | ||
| 380 | #define OMAP35XX_CLASS 0x35000034 | 384 | #define OMAP35XX_CLASS 0x35000034 |
| 381 | #define OMAP3503_REV(v) (OMAP35XX_CLASS | (0x3503 << 16) | (v << 8)) | 385 | #define OMAP3503_REV(v) (OMAP35XX_CLASS | (0x3503 << 16) | (v << 8)) |
| @@ -411,6 +415,8 @@ IS_OMAP_TYPE(3517, 0x3517) | |||
| 411 | #define CHIP_IS_OMAP3430ES3_1 (1 << 6) | 415 | #define CHIP_IS_OMAP3430ES3_1 (1 << 6) |
| 412 | #define CHIP_IS_OMAP3630ES1 (1 << 7) | 416 | #define CHIP_IS_OMAP3630ES1 (1 << 7) |
| 413 | #define CHIP_IS_OMAP4430ES1 (1 << 8) | 417 | #define CHIP_IS_OMAP4430ES1 (1 << 8) |
| 418 | #define CHIP_IS_OMAP3630ES1_1 (1 << 9) | ||
| 419 | #define CHIP_IS_OMAP3630ES1_2 (1 << 10) | ||
| 414 | 420 | ||
| 415 | #define CHIP_IS_OMAP24XX (CHIP_IS_OMAP2420 | CHIP_IS_OMAP2430) | 421 | #define CHIP_IS_OMAP24XX (CHIP_IS_OMAP2420 | CHIP_IS_OMAP2430) |
| 416 | 422 | ||
| @@ -424,11 +430,12 @@ IS_OMAP_TYPE(3517, 0x3517) | |||
| 424 | */ | 430 | */ |
| 425 | #define CHIP_GE_OMAP3430ES2 (CHIP_IS_OMAP3430ES2 | \ | 431 | #define CHIP_GE_OMAP3430ES2 (CHIP_IS_OMAP3430ES2 | \ |
| 426 | CHIP_IS_OMAP3430ES3_0 | \ | 432 | CHIP_IS_OMAP3430ES3_0 | \ |
| 427 | CHIP_IS_OMAP3430ES3_1 | \ | 433 | CHIP_GE_OMAP3430ES3_1) |
| 428 | CHIP_IS_OMAP3630ES1) | ||
| 429 | #define CHIP_GE_OMAP3430ES3_1 (CHIP_IS_OMAP3430ES3_1 | \ | 434 | #define CHIP_GE_OMAP3430ES3_1 (CHIP_IS_OMAP3430ES3_1 | \ |
| 430 | CHIP_IS_OMAP3630ES1) | 435 | CHIP_IS_OMAP3630ES1 | \ |
| 431 | 436 | CHIP_GE_OMAP3630ES1_1) | |
| 437 | #define CHIP_GE_OMAP3630ES1_1 (CHIP_IS_OMAP3630ES1_1 | \ | ||
| 438 | CHIP_IS_OMAP3630ES1_2) | ||
| 432 | 439 | ||
| 433 | int omap_chip_is(struct omap_chip_id oci); | 440 | int omap_chip_is(struct omap_chip_id oci); |
| 434 | void omap2_check_revision(void); | 441 | void omap2_check_revision(void); |
