diff options
author | Olof Johansson <olof@lixom.net> | 2012-09-21 00:27:41 -0400 |
---|---|---|
committer | Olof Johansson <olof@lixom.net> | 2012-09-21 00:27:41 -0400 |
commit | b612a85792192b70e6497619521772c38ace758e (patch) | |
tree | 0405e78c23b600153bee5a0e19a5129ddca832f9 /arch/arm/mach-ux500 | |
parent | ea832c41dacbc4a5f3888d9ef7c38213914aba2a (diff) | |
parent | 3aec092eed5d8d2b19a62b0aeed3acea9471099a (diff) |
Merge branch 'next/soc' into next/multiplatform
* next/soc: (50 commits)
ARM: OMAP: AM33xx hwmod: fixup SPI after platform_data move
MAINTAINERS: add an entry for the BCM2835 ARM sub-architecture
ARM: bcm2835: instantiate console UART
ARM: bcm2835: add stub clock driver
ARM: bcm2835: add system timer
ARM: bcm2835: add interrupt controller driver
ARM: add infra-structure for BCM2835 and Raspberry Pi
ARM: tegra20: add CPU hotplug support
ARM: tegra30: add CPU hotplug support
ARM: tegra: clean up the common assembly macros into sleep.h
ARM: tegra: replace the CPU CAR access code by tegra_cpu_car_ops
ARM: tegra: introduce tegra_cpu_car_ops structures
ARM: Tegra: Add smp_twd clock for Tegra20
ARM: AM33XX: clock: Add dcan clock aliases for device-tree
ARM: OMAP2+: dpll: Add missing soc_is_am33xx() check for common functions
ARM: OMAP: omap_device: idle devices with no driver bound
ARM: OMAP: omap_device: don't attempt late suspend if no driver bound
ARM: OMAP: omap_device: keep track of driver bound status
ARM: OMAP3+: hwmod: Add AM33XX HWMOD data
ARM: OMAP2+: hwmod: Hook-up am33xx support in omap_hwmod framework
...
Change/remove conflict in arch/arm/mach-ux500/clock.c resolved.
Signed-off-by: Olof Johansson <olof@lixom.net>
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 3ee761d3a86f..8169f2c72d6c 100644 --- a/arch/arm/mach-ux500/cpu-db8500.c +++ b/arch/arm/mach-ux500/cpu-db8500.c | |||
@@ -79,7 +79,7 @@ void __init u8500_map_io(void) | |||
79 | 79 | ||
80 | iotable_init(u8500_common_io_desc, ARRAY_SIZE(u8500_common_io_desc)); | 80 | iotable_init(u8500_common_io_desc, ARRAY_SIZE(u8500_common_io_desc)); |
81 | 81 | ||
82 | if (cpu_is_u9540()) | 82 | if (cpu_is_ux540_family()) |
83 | iotable_init(u9540_io_desc, ARRAY_SIZE(u9540_io_desc)); | 83 | iotable_init(u9540_io_desc, ARRAY_SIZE(u9540_io_desc)); |
84 | else | 84 | else |
85 | iotable_init(u8500_io_desc, ARRAY_SIZE(u8500_io_desc)); | 85 | 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 17a78ec516ff..3d62c64c84c4 100644 --- a/arch/arm/mach-ux500/cpu.c +++ b/arch/arm/mach-ux500/cpu.c | |||
@@ -49,7 +49,7 @@ void __init ux500_init_irq(void) | |||
49 | void __iomem *dist_base; | 49 | void __iomem *dist_base; |
50 | void __iomem *cpu_base; | 50 | void __iomem *cpu_base; |
51 | 51 | ||
52 | if (cpu_is_u8500_family()) { | 52 | if (cpu_is_u8500_family() || cpu_is_ux540_family()) { |
53 | dist_base = __io_address(U8500_GIC_DIST_BASE); | 53 | dist_base = __io_address(U8500_GIC_DIST_BASE); |
54 | cpu_base = __io_address(U8500_GIC_CPU_BASE); | 54 | cpu_base = __io_address(U8500_GIC_CPU_BASE); |
55 | } else | 55 | } 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 { |