diff options
author | Linus Walleij <linus.walleij@linaro.org> | 2011-12-15 05:41:09 -0500 |
---|---|---|
committer | Linus Walleij <linus.walleij@linaro.org> | 2011-12-18 18:35:06 -0500 |
commit | d5608bbf81987375ced3802374b145e148140b33 (patch) | |
tree | 6e30225c268a6907dbd4cd6b5ba1847a0bef841b /arch/arm/mach-ux500 | |
parent | 41c34ae49ec3e48b22591a83386dfd2bfdb45ff6 (diff) |
ARM: ux500: update ASIC detection for U5500
This adds a few CPU identification functions for the U5500 variants.
Contains portions of code written by Rabin Vincent.
Cc: Rabin Vincent <rabin.vincent@stericsson.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Diffstat (limited to 'arch/arm/mach-ux500')
-rw-r--r-- | arch/arm/mach-ux500/include/mach/hardware.h | 10 | ||||
-rw-r--r-- | arch/arm/mach-ux500/include/mach/id.h | 24 |
2 files changed, 29 insertions, 5 deletions
diff --git a/arch/arm/mach-ux500/include/mach/hardware.h b/arch/arm/mach-ux500/include/mach/hardware.h index 470ac52663d6..b6ba26a1367d 100644 --- a/arch/arm/mach-ux500/include/mach/hardware.h +++ b/arch/arm/mach-ux500/include/mach/hardware.h | |||
@@ -10,20 +10,21 @@ | |||
10 | #ifndef __MACH_HARDWARE_H | 10 | #ifndef __MACH_HARDWARE_H |
11 | #define __MACH_HARDWARE_H | 11 | #define __MACH_HARDWARE_H |
12 | 12 | ||
13 | /* macros to get at IO space when running virtually | 13 | /* |
14 | * Macros to get at IO space when running virtually | ||
14 | * We dont map all the peripherals, let ioremap do | 15 | * We dont map all the peripherals, let ioremap do |
15 | * this for us. We map only very basic peripherals here. | 16 | * this for us. We map only very basic peripherals here. |
16 | */ | 17 | */ |
17 | #define U8500_IO_VIRTUAL 0xf0000000 | 18 | #define U8500_IO_VIRTUAL 0xf0000000 |
18 | #define U8500_IO_PHYSICAL 0xa0000000 | 19 | #define U8500_IO_PHYSICAL 0xa0000000 |
19 | 20 | ||
20 | /* this macro is used in assembly, so no cast */ | 21 | /* This macro is used in assembly, so no cast */ |
21 | #define IO_ADDRESS(x) \ | 22 | #define IO_ADDRESS(x) \ |
22 | (((x) & 0x0fffffff) + (((x) >> 4) & 0x0f000000) + U8500_IO_VIRTUAL) | 23 | (((x) & 0x0fffffff) + (((x) >> 4) & 0x0f000000) + U8500_IO_VIRTUAL) |
23 | 24 | ||
24 | /* typesafe io address */ | 25 | /* typesafe io address */ |
25 | #define __io_address(n) __io(IO_ADDRESS(n)) | 26 | #define __io_address(n) __io(IO_ADDRESS(n)) |
26 | /* used by some plat-nomadik code */ | 27 | /* Used by some plat-nomadik code */ |
27 | #define io_p2v(n) __io_address(n) | 28 | #define io_p2v(n) __io_address(n) |
28 | 29 | ||
29 | #include <mach/db8500-regs.h> | 30 | #include <mach/db8500-regs.h> |
@@ -36,6 +37,5 @@ extern void __iomem *_PRCMU_BASE; | |||
36 | 37 | ||
37 | #define ARRAY_AND_SIZE(x) (x), ARRAY_SIZE(x) | 38 | #define ARRAY_AND_SIZE(x) (x), ARRAY_SIZE(x) |
38 | 39 | ||
39 | #endif | 40 | #endif /* __ASSEMBLY__ */ |
40 | |||
41 | #endif /* __MACH_HARDWARE_H */ | 41 | #endif /* __MACH_HARDWARE_H */ |
diff --git a/arch/arm/mach-ux500/include/mach/id.h b/arch/arm/mach-ux500/include/mach/id.h index 02b541a37ee5..833d6a6edc9b 100644 --- a/arch/arm/mach-ux500/include/mach/id.h +++ b/arch/arm/mach-ux500/include/mach/id.h | |||
@@ -47,6 +47,30 @@ static inline bool __attribute_const__ cpu_is_u5500(void) | |||
47 | } | 47 | } |
48 | 48 | ||
49 | /* | 49 | /* |
50 | * 5500 revisions | ||
51 | */ | ||
52 | |||
53 | static inline bool __attribute_const__ cpu_is_u5500v1(void) | ||
54 | { | ||
55 | return cpu_is_u5500() && (dbx500_revision() & 0xf0) == 0xA0; | ||
56 | } | ||
57 | |||
58 | static inline bool __attribute_const__ cpu_is_u5500v2(void) | ||
59 | { | ||
60 | return (dbx500_id.revision & 0xf0) == 0xB0; | ||
61 | } | ||
62 | |||
63 | static inline bool __attribute_const__ cpu_is_u5500v20(void) | ||
64 | { | ||
65 | return cpu_is_u5500() && ((dbx500_revision() & 0xf0) == 0xB0); | ||
66 | } | ||
67 | |||
68 | static inline bool __attribute_const__ cpu_is_u5500v21(void) | ||
69 | { | ||
70 | return cpu_is_u5500() && (dbx500_revision() == 0xB1); | ||
71 | } | ||
72 | |||
73 | /* | ||
50 | * 8500 revisions | 74 | * 8500 revisions |
51 | */ | 75 | */ |
52 | 76 | ||