diff options
Diffstat (limited to 'arch/arm/mach-realview/realview_pb1176.c')
-rw-r--r-- | arch/arm/mach-realview/realview_pb1176.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/arch/arm/mach-realview/realview_pb1176.c b/arch/arm/mach-realview/realview_pb1176.c index 2817fe099319..7fb726d5f8b9 100644 --- a/arch/arm/mach-realview/realview_pb1176.c +++ b/arch/arm/mach-realview/realview_pb1176.c | |||
@@ -290,6 +290,28 @@ static struct sys_timer realview_pb1176_timer = { | |||
290 | .init = realview_pb1176_timer_init, | 290 | .init = realview_pb1176_timer_init, |
291 | }; | 291 | }; |
292 | 292 | ||
293 | static void realview_pb1176_reset(char mode) | ||
294 | { | ||
295 | void __iomem *hdr_ctrl = __io_address(REALVIEW_SYS_BASE) + | ||
296 | REALVIEW_SYS_RESETCTL_OFFSET; | ||
297 | void __iomem *rst_hdr_ctrl = __io_address(REALVIEW_SYS_BASE) + | ||
298 | REALVIEW_SYS_LOCK_OFFSET; | ||
299 | __raw_writel(REALVIEW_SYS_LOCKVAL_MASK, rst_hdr_ctrl); | ||
300 | __raw_writel(REALVIEW_PB1176_SYS_LOCKVAL_RSTCTL, hdr_ctrl); | ||
301 | } | ||
302 | |||
303 | static void realview_pb1176_fixup(struct machine_desc *mdesc, | ||
304 | struct tag *tags, char **from, | ||
305 | struct meminfo *meminfo) | ||
306 | { | ||
307 | /* | ||
308 | * RealView PB1176 only has 128MB of RAM mapped at 0. | ||
309 | */ | ||
310 | meminfo->bank[0].start = 0; | ||
311 | meminfo->bank[0].size = SZ_128M; | ||
312 | meminfo->nr_banks = 1; | ||
313 | } | ||
314 | |||
293 | static void __init realview_pb1176_init(void) | 315 | static void __init realview_pb1176_init(void) |
294 | { | 316 | { |
295 | int i; | 317 | int i; |
@@ -313,6 +335,7 @@ static void __init realview_pb1176_init(void) | |||
313 | #ifdef CONFIG_LEDS | 335 | #ifdef CONFIG_LEDS |
314 | leds_event = realview_leds_event; | 336 | leds_event = realview_leds_event; |
315 | #endif | 337 | #endif |
338 | realview_reset = realview_pb1176_reset; | ||
316 | } | 339 | } |
317 | 340 | ||
318 | MACHINE_START(REALVIEW_PB1176, "ARM-RealView PB1176") | 341 | MACHINE_START(REALVIEW_PB1176, "ARM-RealView PB1176") |
@@ -320,6 +343,7 @@ MACHINE_START(REALVIEW_PB1176, "ARM-RealView PB1176") | |||
320 | .phys_io = REALVIEW_PB1176_UART0_BASE, | 343 | .phys_io = REALVIEW_PB1176_UART0_BASE, |
321 | .io_pg_offst = (IO_ADDRESS(REALVIEW_PB1176_UART0_BASE) >> 18) & 0xfffc, | 344 | .io_pg_offst = (IO_ADDRESS(REALVIEW_PB1176_UART0_BASE) >> 18) & 0xfffc, |
322 | .boot_params = PHYS_OFFSET + 0x00000100, | 345 | .boot_params = PHYS_OFFSET + 0x00000100, |
346 | .fixup = realview_pb1176_fixup, | ||
323 | .map_io = realview_pb1176_map_io, | 347 | .map_io = realview_pb1176_map_io, |
324 | .init_irq = gic_init_irq, | 348 | .init_irq = gic_init_irq, |
325 | .timer = &realview_pb1176_timer, | 349 | .timer = &realview_pb1176_timer, |