diff options
Diffstat (limited to 'arch/arm/mach-ux500')
-rw-r--r-- | arch/arm/mach-ux500/cache-l2x0.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-ux500/cpu-db8500.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-ux500/cpu.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-ux500/include/mach/id.h | 44 | ||||
-rw-r--r-- | arch/arm/mach-ux500/platsmp.c | 4 | ||||
-rw-r--r-- | arch/arm/mach-ux500/timer.c | 2 |
6 files changed, 21 insertions, 35 deletions
diff --git a/arch/arm/mach-ux500/cache-l2x0.c b/arch/arm/mach-ux500/cache-l2x0.c index dc12394295d5..75d5b512a3d5 100644 --- a/arch/arm/mach-ux500/cache-l2x0.c +++ b/arch/arm/mach-ux500/cache-l2x0.c | |||
@@ -38,7 +38,7 @@ static int __init ux500_l2x0_init(void) | |||
38 | { | 38 | { |
39 | u32 aux_val = 0x3e000000; | 39 | u32 aux_val = 0x3e000000; |
40 | 40 | ||
41 | if (cpu_is_u8500_family()) | 41 | if (cpu_is_u8500_family() || cpu_is_ux540_family()) |
42 | l2x0_base = __io_address(U8500_L2CC_BASE); | 42 | l2x0_base = __io_address(U8500_L2CC_BASE); |
43 | else | 43 | else |
44 | ux500_unknown_soc(); | 44 | ux500_unknown_soc(); |
diff --git a/arch/arm/mach-ux500/cpu-db8500.c b/arch/arm/mach-ux500/cpu-db8500.c index 7e6c384881a6..3ce7d940fc3c 100644 --- a/arch/arm/mach-ux500/cpu-db8500.c +++ b/arch/arm/mach-ux500/cpu-db8500.c | |||
@@ -80,7 +80,7 @@ void __init u8500_map_io(void) | |||
80 | 80 | ||
81 | iotable_init(u8500_common_io_desc, ARRAY_SIZE(u8500_common_io_desc)); | 81 | iotable_init(u8500_common_io_desc, ARRAY_SIZE(u8500_common_io_desc)); |
82 | 82 | ||
83 | if (cpu_is_u9540()) | 83 | if (cpu_is_ux540_family()) |
84 | iotable_init(u9540_io_desc, ARRAY_SIZE(u9540_io_desc)); | 84 | iotable_init(u9540_io_desc, ARRAY_SIZE(u9540_io_desc)); |
85 | else | 85 | else |
86 | iotable_init(u8500_io_desc, ARRAY_SIZE(u8500_io_desc)); | 86 | iotable_init(u8500_io_desc, ARRAY_SIZE(u8500_io_desc)); |
diff --git a/arch/arm/mach-ux500/cpu.c b/arch/arm/mach-ux500/cpu.c index 8e755638aa76..2236cbd03cd7 100644 --- a/arch/arm/mach-ux500/cpu.c +++ b/arch/arm/mach-ux500/cpu.c | |||
@@ -51,7 +51,7 @@ void __init ux500_init_irq(void) | |||
51 | 51 | ||
52 | gic_arch_extn.flags = IRQCHIP_SKIP_SET_WAKE | IRQCHIP_MASK_ON_SUSPEND; | 52 | gic_arch_extn.flags = IRQCHIP_SKIP_SET_WAKE | IRQCHIP_MASK_ON_SUSPEND; |
53 | 53 | ||
54 | if (cpu_is_u8500_family()) { | 54 | if (cpu_is_u8500_family() || cpu_is_ux540_family()) { |
55 | dist_base = __io_address(U8500_GIC_DIST_BASE); | 55 | dist_base = __io_address(U8500_GIC_DIST_BASE); |
56 | cpu_base = __io_address(U8500_GIC_CPU_BASE); | 56 | cpu_base = __io_address(U8500_GIC_CPU_BASE); |
57 | } else | 57 | } else |
diff --git a/arch/arm/mach-ux500/include/mach/id.h b/arch/arm/mach-ux500/include/mach/id.h index c6e2db9e9e51..9c42642ab168 100644 --- a/arch/arm/mach-ux500/include/mach/id.h +++ b/arch/arm/mach-ux500/include/mach/id.h | |||
@@ -41,43 +41,29 @@ static inline bool __attribute_const__ cpu_is_u8500(void) | |||
41 | return dbx500_partnumber() == 0x8500; | 41 | return dbx500_partnumber() == 0x8500; |
42 | } | 42 | } |
43 | 43 | ||
44 | static inline bool __attribute_const__ cpu_is_u9540(void) | 44 | static inline bool __attribute_const__ cpu_is_u8520(void) |
45 | { | 45 | { |
46 | return dbx500_partnumber() == 0x9540; | 46 | return dbx500_partnumber() == 0x8520; |
47 | } | 47 | } |
48 | 48 | ||
49 | static inline bool cpu_is_u8500_family(void) | 49 | static inline bool cpu_is_u8500_family(void) |
50 | { | 50 | { |
51 | return cpu_is_u8500() || cpu_is_u9540(); | 51 | return cpu_is_u8500() || cpu_is_u8520(); |
52 | } | ||
53 | |||
54 | static inline bool __attribute_const__ cpu_is_u5500(void) | ||
55 | { | ||
56 | return dbx500_partnumber() == 0x5500; | ||
57 | } | ||
58 | |||
59 | /* | ||
60 | * 5500 revisions | ||
61 | */ | ||
62 | |||
63 | static inline bool __attribute_const__ cpu_is_u5500v1(void) | ||
64 | { | ||
65 | return cpu_is_u5500() && (dbx500_revision() & 0xf0) == 0xA0; | ||
66 | } | 52 | } |
67 | 53 | ||
68 | static inline bool __attribute_const__ cpu_is_u5500v2(void) | 54 | static inline bool __attribute_const__ cpu_is_u9540(void) |
69 | { | 55 | { |
70 | return (dbx500_id.revision & 0xf0) == 0xB0; | 56 | return dbx500_partnumber() == 0x9540; |
71 | } | 57 | } |
72 | 58 | ||
73 | static inline bool __attribute_const__ cpu_is_u5500v20(void) | 59 | static inline bool __attribute_const__ cpu_is_u8540(void) |
74 | { | 60 | { |
75 | return cpu_is_u5500() && ((dbx500_revision() & 0xf0) == 0xB0); | 61 | return dbx500_partnumber() == 0x8540; |
76 | } | 62 | } |
77 | 63 | ||
78 | static inline bool __attribute_const__ cpu_is_u5500v21(void) | 64 | static inline bool cpu_is_ux540_family(void) |
79 | { | 65 | { |
80 | return cpu_is_u5500() && (dbx500_revision() == 0xB1); | 66 | return cpu_is_u9540() || cpu_is_u8540(); |
81 | } | 67 | } |
82 | 68 | ||
83 | /* | 69 | /* |
@@ -119,14 +105,14 @@ static inline bool cpu_is_u8500v21(void) | |||
119 | return cpu_is_u8500() && (dbx500_revision() == 0xB1); | 105 | return cpu_is_u8500() && (dbx500_revision() == 0xB1); |
120 | } | 106 | } |
121 | 107 | ||
108 | static inline bool cpu_is_u8500v22(void) | ||
109 | { | ||
110 | return cpu_is_u8500() && (dbx500_revision() == 0xB2); | ||
111 | } | ||
112 | |||
122 | static inline bool cpu_is_u8500v20_or_later(void) | 113 | static inline bool cpu_is_u8500v20_or_later(void) |
123 | { | 114 | { |
124 | /* | 115 | return (cpu_is_u8500() && !cpu_is_u8500v10() && !cpu_is_u8500v11()); |
125 | * U9540 has so much in common with U8500 that is is considered a | ||
126 | * U8500 variant. | ||
127 | */ | ||
128 | return cpu_is_u9540() || | ||
129 | (cpu_is_u8500() && !cpu_is_u8500v10() && !cpu_is_u8500v11()); | ||
130 | } | 116 | } |
131 | 117 | ||
132 | static inline bool ux500_is_svp(void) | 118 | static inline bool ux500_is_svp(void) |
diff --git a/arch/arm/mach-ux500/platsmp.c b/arch/arm/mach-ux500/platsmp.c index da1d5ad5bd45..a5dda68444db 100644 --- a/arch/arm/mach-ux500/platsmp.c +++ b/arch/arm/mach-ux500/platsmp.c | |||
@@ -48,7 +48,7 @@ static void write_pen_release(int val) | |||
48 | 48 | ||
49 | static void __iomem *scu_base_addr(void) | 49 | static void __iomem *scu_base_addr(void) |
50 | { | 50 | { |
51 | if (cpu_is_u8500_family()) | 51 | if (cpu_is_u8500_family() || cpu_is_ux540_family()) |
52 | return __io_address(U8500_SCU_BASE); | 52 | return __io_address(U8500_SCU_BASE); |
53 | else | 53 | else |
54 | ux500_unknown_soc(); | 54 | ux500_unknown_soc(); |
@@ -118,7 +118,7 @@ static void __init wakeup_secondary(void) | |||
118 | { | 118 | { |
119 | void __iomem *backupram; | 119 | void __iomem *backupram; |
120 | 120 | ||
121 | if (cpu_is_u8500_family()) | 121 | if (cpu_is_u8500_family() || cpu_is_ux540_family()) |
122 | backupram = __io_address(U8500_BACKUPRAM0_BASE); | 122 | backupram = __io_address(U8500_BACKUPRAM0_BASE); |
123 | else | 123 | else |
124 | ux500_unknown_soc(); | 124 | ux500_unknown_soc(); |
diff --git a/arch/arm/mach-ux500/timer.c b/arch/arm/mach-ux500/timer.c index 66e7f00884ab..6f39731951b0 100644 --- a/arch/arm/mach-ux500/timer.c +++ b/arch/arm/mach-ux500/timer.c | |||
@@ -54,7 +54,7 @@ static void __init ux500_timer_init(void) | |||
54 | void __iomem *tmp_base; | 54 | void __iomem *tmp_base; |
55 | struct device_node *np; | 55 | struct device_node *np; |
56 | 56 | ||
57 | if (cpu_is_u8500_family()) { | 57 | if (cpu_is_u8500_family() || cpu_is_ux540_family()) { |
58 | mtu_timer_base = __io_address(U8500_MTU0_BASE); | 58 | mtu_timer_base = __io_address(U8500_MTU0_BASE); |
59 | prcmu_timer_base = __io_address(U8500_PRCMU_TIMER_4_BASE); | 59 | prcmu_timer_base = __io_address(U8500_PRCMU_TIMER_4_BASE); |
60 | } else { | 60 | } else { |