diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2011-07-26 20:09:31 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-07-26 20:09:31 -0400 |
commit | 4b30b6f23a1a59cda29cc12566eb4f32a22a8069 (patch) | |
tree | 69e262a5065ce8be21c919febd29d5d9660f3e97 /arch/arm/plat-omap | |
parent | 38da590bef19f23d4b610aecaad4f32de483890d (diff) | |
parent | 6c59c115b0f295434cc4f917d180fecd84d39f81 (diff) |
Merge branch 'next/soc' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/linux-arm-soc
* 'next/soc' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/linux-arm-soc:
MAINTAINERS: add maintainer of CSR SiRFprimaII machine
ARM: CSR: initializing L2 cache
ARM: CSR: mapping early DEBUG_LL uart
ARM: CSR: Adding CSR SiRFprimaII board support
OMAP4: clocks: Update the clock tree with 4460 clock nodes
OMAP4: PRCM: OMAP4460 specific PRM and CM register bitshifts
OMAP4: ID: add omap_has_feature for max freq supported
OMAP: ID: introduce chip detection for OMAP4460
ARM: Xilinx: merge board file into main platform code
ARM: Xilinx: Adding Xilinx board support
Fix up conflicts in arch/arm/mach-omap2/cm-regbits-44xx.h
Diffstat (limited to 'arch/arm/plat-omap')
-rw-r--r-- | arch/arm/plat-omap/include/plat/clkdev_omap.h | 1 | ||||
-rw-r--r-- | arch/arm/plat-omap/include/plat/clock.h | 2 | ||||
-rw-r--r-- | arch/arm/plat-omap/include/plat/cpu.h | 35 |
3 files changed, 35 insertions, 3 deletions
diff --git a/arch/arm/plat-omap/include/plat/clkdev_omap.h b/arch/arm/plat-omap/include/plat/clkdev_omap.h index f1899a3e4174..387a9638991b 100644 --- a/arch/arm/plat-omap/include/plat/clkdev_omap.h +++ b/arch/arm/plat-omap/include/plat/clkdev_omap.h | |||
@@ -39,6 +39,7 @@ struct omap_clk { | |||
39 | #define CK_36XX (1 << 10) /* 36xx/37xx-specific clocks */ | 39 | #define CK_36XX (1 << 10) /* 36xx/37xx-specific clocks */ |
40 | #define CK_443X (1 << 11) | 40 | #define CK_443X (1 << 11) |
41 | #define CK_TI816X (1 << 12) | 41 | #define CK_TI816X (1 << 12) |
42 | #define CK_446X (1 << 13) | ||
42 | 43 | ||
43 | 44 | ||
44 | #define CK_34XX (CK_3430ES1 | CK_3430ES2PLUS) | 45 | #define CK_34XX (CK_3430ES1 | CK_3430ES2PLUS) |
diff --git a/arch/arm/plat-omap/include/plat/clock.h b/arch/arm/plat-omap/include/plat/clock.h index f57e0649ab30..df4b9683f17f 100644 --- a/arch/arm/plat-omap/include/plat/clock.h +++ b/arch/arm/plat-omap/include/plat/clock.h | |||
@@ -58,10 +58,12 @@ struct clkops { | |||
58 | #define RATE_IN_36XX (1 << 4) | 58 | #define RATE_IN_36XX (1 << 4) |
59 | #define RATE_IN_4430 (1 << 5) | 59 | #define RATE_IN_4430 (1 << 5) |
60 | #define RATE_IN_TI816X (1 << 6) | 60 | #define RATE_IN_TI816X (1 << 6) |
61 | #define RATE_IN_4460 (1 << 7) | ||
61 | 62 | ||
62 | #define RATE_IN_24XX (RATE_IN_242X | RATE_IN_243X) | 63 | #define RATE_IN_24XX (RATE_IN_242X | RATE_IN_243X) |
63 | #define RATE_IN_34XX (RATE_IN_3430ES1 | RATE_IN_3430ES2PLUS) | 64 | #define RATE_IN_34XX (RATE_IN_3430ES1 | RATE_IN_3430ES2PLUS) |
64 | #define RATE_IN_3XXX (RATE_IN_34XX | RATE_IN_36XX) | 65 | #define RATE_IN_3XXX (RATE_IN_34XX | RATE_IN_36XX) |
66 | #define RATE_IN_44XX (RATE_IN_4430 | RATE_IN_4460) | ||
65 | 67 | ||
66 | /* RATE_IN_3430ES2PLUS_36XX includes 34xx/35xx with ES >=2, and all 36xx/37xx */ | 68 | /* RATE_IN_3430ES2PLUS_36XX includes 34xx/35xx with ES >=2, and all 36xx/37xx */ |
67 | #define RATE_IN_3430ES2PLUS_36XX (RATE_IN_3430ES2PLUS | RATE_IN_36XX) | 69 | #define RATE_IN_3430ES2PLUS_36XX (RATE_IN_3430ES2PLUS | RATE_IN_36XX) |
diff --git a/arch/arm/plat-omap/include/plat/cpu.h b/arch/arm/plat-omap/include/plat/cpu.h index 8198bb6cdb5e..67b3d75884cd 100644 --- a/arch/arm/plat-omap/include/plat/cpu.h +++ b/arch/arm/plat-omap/include/plat/cpu.h | |||
@@ -88,6 +88,7 @@ unsigned int omap_rev(void); | |||
88 | * cpu_is_omap243x(): True for OMAP2430 | 88 | * cpu_is_omap243x(): True for OMAP2430 |
89 | * cpu_is_omap343x(): True for OMAP3430 | 89 | * cpu_is_omap343x(): True for OMAP3430 |
90 | * cpu_is_omap443x(): True for OMAP4430 | 90 | * cpu_is_omap443x(): True for OMAP4430 |
91 | * cpu_is_omap446x(): True for OMAP4460 | ||
91 | */ | 92 | */ |
92 | #define GET_OMAP_CLASS (omap_rev() & 0xff) | 93 | #define GET_OMAP_CLASS (omap_rev() & 0xff) |
93 | 94 | ||
@@ -123,6 +124,7 @@ IS_OMAP_SUBCLASS(243x, 0x243) | |||
123 | IS_OMAP_SUBCLASS(343x, 0x343) | 124 | IS_OMAP_SUBCLASS(343x, 0x343) |
124 | IS_OMAP_SUBCLASS(363x, 0x363) | 125 | IS_OMAP_SUBCLASS(363x, 0x363) |
125 | IS_OMAP_SUBCLASS(443x, 0x443) | 126 | IS_OMAP_SUBCLASS(443x, 0x443) |
127 | IS_OMAP_SUBCLASS(446x, 0x446) | ||
126 | 128 | ||
127 | IS_TI_SUBCLASS(816x, 0x816) | 129 | IS_TI_SUBCLASS(816x, 0x816) |
128 | 130 | ||
@@ -137,6 +139,7 @@ IS_TI_SUBCLASS(816x, 0x816) | |||
137 | #define cpu_is_ti816x() 0 | 139 | #define cpu_is_ti816x() 0 |
138 | #define cpu_is_omap44xx() 0 | 140 | #define cpu_is_omap44xx() 0 |
139 | #define cpu_is_omap443x() 0 | 141 | #define cpu_is_omap443x() 0 |
142 | #define cpu_is_omap446x() 0 | ||
140 | 143 | ||
141 | #if defined(MULTI_OMAP1) | 144 | #if defined(MULTI_OMAP1) |
142 | # if defined(CONFIG_ARCH_OMAP730) | 145 | # if defined(CONFIG_ARCH_OMAP730) |
@@ -361,8 +364,10 @@ IS_OMAP_TYPE(3517, 0x3517) | |||
361 | # if defined(CONFIG_ARCH_OMAP4) | 364 | # if defined(CONFIG_ARCH_OMAP4) |
362 | # undef cpu_is_omap44xx | 365 | # undef cpu_is_omap44xx |
363 | # undef cpu_is_omap443x | 366 | # undef cpu_is_omap443x |
367 | # undef cpu_is_omap446x | ||
364 | # define cpu_is_omap44xx() is_omap44xx() | 368 | # define cpu_is_omap44xx() is_omap44xx() |
365 | # define cpu_is_omap443x() is_omap443x() | 369 | # define cpu_is_omap443x() is_omap443x() |
370 | # define cpu_is_omap446x() is_omap446x() | ||
366 | # endif | 371 | # endif |
367 | 372 | ||
368 | /* Macros to detect if we have OMAP1 or OMAP2 */ | 373 | /* Macros to detect if we have OMAP1 or OMAP2 */ |
@@ -410,6 +415,9 @@ IS_OMAP_TYPE(3517, 0x3517) | |||
410 | #define OMAP4430_REV_ES2_1 (OMAP443X_CLASS | (0x21 << 8)) | 415 | #define OMAP4430_REV_ES2_1 (OMAP443X_CLASS | (0x21 << 8)) |
411 | #define OMAP4430_REV_ES2_2 (OMAP443X_CLASS | (0x22 << 8)) | 416 | #define OMAP4430_REV_ES2_2 (OMAP443X_CLASS | (0x22 << 8)) |
412 | 417 | ||
418 | #define OMAP446X_CLASS 0x44600044 | ||
419 | #define OMAP4460_REV_ES1_0 (OMAP446X_CLASS | (0x10 << 8)) | ||
420 | |||
413 | /* | 421 | /* |
414 | * omap_chip bits | 422 | * omap_chip bits |
415 | * | 423 | * |
@@ -439,13 +447,15 @@ IS_OMAP_TYPE(3517, 0x3517) | |||
439 | #define CHIP_IS_OMAP4430ES2_1 (1 << 12) | 447 | #define CHIP_IS_OMAP4430ES2_1 (1 << 12) |
440 | #define CHIP_IS_OMAP4430ES2_2 (1 << 13) | 448 | #define CHIP_IS_OMAP4430ES2_2 (1 << 13) |
441 | #define CHIP_IS_TI816X (1 << 14) | 449 | #define CHIP_IS_TI816X (1 << 14) |
450 | #define CHIP_IS_OMAP4460ES1_0 (1 << 15) | ||
442 | 451 | ||
443 | #define CHIP_IS_OMAP24XX (CHIP_IS_OMAP2420 | CHIP_IS_OMAP2430) | 452 | #define CHIP_IS_OMAP24XX (CHIP_IS_OMAP2420 | CHIP_IS_OMAP2430) |
444 | 453 | ||
445 | #define CHIP_IS_OMAP4430 (CHIP_IS_OMAP4430ES1 | \ | 454 | #define CHIP_IS_OMAP4430 (CHIP_IS_OMAP4430ES1 | \ |
446 | CHIP_IS_OMAP4430ES2 | \ | 455 | CHIP_IS_OMAP4430ES2 | \ |
447 | CHIP_IS_OMAP4430ES2_1 | \ | 456 | CHIP_IS_OMAP4430ES2_1 | \ |
448 | CHIP_IS_OMAP4430ES2_2) | 457 | CHIP_IS_OMAP4430ES2_2 | \ |
458 | CHIP_IS_OMAP4460ES1_0) | ||
449 | 459 | ||
450 | /* | 460 | /* |
451 | * "GE" here represents "greater than or equal to" in terms of ES | 461 | * "GE" here represents "greater than or equal to" in terms of ES |
@@ -468,7 +478,7 @@ void omap2_check_revision(void); | |||
468 | /* | 478 | /* |
469 | * Runtime detection of OMAP3 features | 479 | * Runtime detection of OMAP3 features |
470 | */ | 480 | */ |
471 | extern u32 omap3_features; | 481 | extern u32 omap_features; |
472 | 482 | ||
473 | #define OMAP3_HAS_L2CACHE BIT(0) | 483 | #define OMAP3_HAS_L2CACHE BIT(0) |
474 | #define OMAP3_HAS_IVA BIT(1) | 484 | #define OMAP3_HAS_IVA BIT(1) |
@@ -478,11 +488,15 @@ extern u32 omap3_features; | |||
478 | #define OMAP3_HAS_192MHZ_CLK BIT(5) | 488 | #define OMAP3_HAS_192MHZ_CLK BIT(5) |
479 | #define OMAP3_HAS_IO_WAKEUP BIT(6) | 489 | #define OMAP3_HAS_IO_WAKEUP BIT(6) |
480 | #define OMAP3_HAS_SDRC BIT(7) | 490 | #define OMAP3_HAS_SDRC BIT(7) |
491 | #define OMAP4_HAS_MPU_1GHZ BIT(8) | ||
492 | #define OMAP4_HAS_MPU_1_2GHZ BIT(9) | ||
493 | #define OMAP4_HAS_MPU_1_5GHZ BIT(10) | ||
494 | |||
481 | 495 | ||
482 | #define OMAP3_HAS_FEATURE(feat,flag) \ | 496 | #define OMAP3_HAS_FEATURE(feat,flag) \ |
483 | static inline unsigned int omap3_has_ ##feat(void) \ | 497 | static inline unsigned int omap3_has_ ##feat(void) \ |
484 | { \ | 498 | { \ |
485 | return (omap3_features & OMAP3_HAS_ ##flag); \ | 499 | return omap_features & OMAP3_HAS_ ##flag; \ |
486 | } \ | 500 | } \ |
487 | 501 | ||
488 | OMAP3_HAS_FEATURE(l2cache, L2CACHE) | 502 | OMAP3_HAS_FEATURE(l2cache, L2CACHE) |
@@ -494,4 +508,19 @@ OMAP3_HAS_FEATURE(192mhz_clk, 192MHZ_CLK) | |||
494 | OMAP3_HAS_FEATURE(io_wakeup, IO_WAKEUP) | 508 | OMAP3_HAS_FEATURE(io_wakeup, IO_WAKEUP) |
495 | OMAP3_HAS_FEATURE(sdrc, SDRC) | 509 | OMAP3_HAS_FEATURE(sdrc, SDRC) |
496 | 510 | ||
511 | /* | ||
512 | * Runtime detection of OMAP4 features | ||
513 | */ | ||
514 | extern u32 omap_features; | ||
515 | |||
516 | #define OMAP4_HAS_FEATURE(feat, flag) \ | ||
517 | static inline unsigned int omap4_has_ ##feat(void) \ | ||
518 | { \ | ||
519 | return omap_features & OMAP4_HAS_ ##flag; \ | ||
520 | } \ | ||
521 | |||
522 | OMAP4_HAS_FEATURE(mpu_1ghz, MPU_1GHZ) | ||
523 | OMAP4_HAS_FEATURE(mpu_1_2ghz, MPU_1_2GHZ) | ||
524 | OMAP4_HAS_FEATURE(mpu_1_5ghz, MPU_1_5GHZ) | ||
525 | |||
497 | #endif | 526 | #endif |