aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-ux500/cpu-u8500.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-ux500/cpu-u8500.c')
-rw-r--r--arch/arm/mach-ux500/cpu-u8500.c44
1 files changed, 2 insertions, 42 deletions
diff --git a/arch/arm/mach-ux500/cpu-u8500.c b/arch/arm/mach-ux500/cpu-u8500.c
index 8919af4eeeb5..2c8aa93dca6e 100644
--- a/arch/arm/mach-ux500/cpu-u8500.c
+++ b/arch/arm/mach-ux500/cpu-u8500.c
@@ -18,9 +18,7 @@
18#include <linux/io.h> 18#include <linux/io.h>
19 19
20#include <asm/localtimer.h> 20#include <asm/localtimer.h>
21#include <asm/hardware/gic.h>
22#include <asm/mach/map.h> 21#include <asm/mach/map.h>
23#include <asm/hardware/cache-l2x0.h>
24#include <plat/mtu.h> 22#include <plat/mtu.h>
25#include <mach/hardware.h> 23#include <mach/hardware.h>
26#include <mach/setup.h> 24#include <mach/setup.h>
@@ -103,32 +101,13 @@ static struct platform_device *platform_devs[] __initdata = {
103 &u8500_gpio_devs[8], 101 &u8500_gpio_devs[8],
104}; 102};
105 103
106#define __IO_DEV_DESC(x, sz) { \
107 .virtual = IO_ADDRESS(x), \
108 .pfn = __phys_to_pfn(x), \
109 .length = sz, \
110 .type = MT_DEVICE, \
111}
112
113/* minimum static i/o mapping required to boot U8500 platforms */ 104/* minimum static i/o mapping required to boot U8500 platforms */
114static struct map_desc u8500_io_desc[] __initdata = { 105static struct map_desc u8500_io_desc[] __initdata = {
115 __IO_DEV_DESC(U8500_UART2_BASE, SZ_4K),
116 __IO_DEV_DESC(U8500_GIC_CPU_BASE, SZ_4K),
117 __IO_DEV_DESC(U8500_GIC_DIST_BASE, SZ_4K),
118 __IO_DEV_DESC(U8500_TWD_BASE, SZ_4K),
119 __IO_DEV_DESC(U8500_SCU_BASE, SZ_4K),
120 __IO_DEV_DESC(U8500_BACKUPRAM0_BASE, SZ_8K),
121 __IO_DEV_DESC(U8500_PRCMU_BASE, SZ_4K), 106 __IO_DEV_DESC(U8500_PRCMU_BASE, SZ_4K),
122 __IO_DEV_DESC(U8500_CLKRST1_BASE, SZ_4K),
123 __IO_DEV_DESC(U8500_CLKRST2_BASE, SZ_4K),
124 __IO_DEV_DESC(U8500_CLKRST3_BASE, SZ_4K),
125 __IO_DEV_DESC(U8500_CLKRST5_BASE, SZ_4K),
126 __IO_DEV_DESC(U8500_CLKRST6_BASE, SZ_4K),
127 __IO_DEV_DESC(U8500_GPIO0_BASE, SZ_4K), 107 __IO_DEV_DESC(U8500_GPIO0_BASE, SZ_4K),
128 __IO_DEV_DESC(U8500_GPIO1_BASE, SZ_4K), 108 __IO_DEV_DESC(U8500_GPIO1_BASE, SZ_4K),
129 __IO_DEV_DESC(U8500_GPIO2_BASE, SZ_4K), 109 __IO_DEV_DESC(U8500_GPIO2_BASE, SZ_4K),
130 __IO_DEV_DESC(U8500_GPIO3_BASE, SZ_4K), 110 __IO_DEV_DESC(U8500_GPIO3_BASE, SZ_4K),
131 __IO_DEV_DESC(U8500_L2CC_BASE, SZ_4K),
132}; 111};
133 112
134static struct map_desc u8500ed_io_desc[] __initdata = { 113static struct map_desc u8500ed_io_desc[] __initdata = {
@@ -142,6 +121,8 @@ static struct map_desc u8500v1_io_desc[] __initdata = {
142 121
143void __init u8500_map_io(void) 122void __init u8500_map_io(void)
144{ 123{
124 ux500_map_io();
125
145 iotable_init(u8500_io_desc, ARRAY_SIZE(u8500_io_desc)); 126 iotable_init(u8500_io_desc, ARRAY_SIZE(u8500_io_desc));
146 127
147 if (cpu_is_u8500ed()) 128 if (cpu_is_u8500ed())
@@ -150,12 +131,6 @@ void __init u8500_map_io(void)
150 iotable_init(u8500v1_io_desc, ARRAY_SIZE(u8500v1_io_desc)); 131 iotable_init(u8500v1_io_desc, ARRAY_SIZE(u8500v1_io_desc));
151} 132}
152 133
153void __init u8500_init_irq(void)
154{
155 gic_dist_init(0, __io_address(U8500_GIC_DIST_BASE), 29);
156 gic_cpu_init(0, __io_address(U8500_GIC_CPU_BASE));
157}
158
159/* 134/*
160 * This function is called from the board init 135 * This function is called from the board init
161 */ 136 */
@@ -185,18 +160,3 @@ static void __init u8500_timer_init(void)
185struct sys_timer u8500_timer = { 160struct sys_timer u8500_timer = {
186 .init = u8500_timer_init, 161 .init = u8500_timer_init,
187}; 162};
188
189#ifdef CONFIG_CACHE_L2X0
190static int u8500_l2x0_init(void)
191{
192 void __iomem *l2x0_base;
193
194 l2x0_base = __io_address(U8500_L2CC_BASE);
195
196 /* 64KB way size, 8 way associativity, force WA */
197 l2x0_init(l2x0_base, 0x3e060000, 0xc0000fff);
198
199 return 0;
200}
201early_initcall(u8500_l2x0_init);
202#endif