aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-at91/at91cap9.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-at91/at91cap9.c')
-rw-r--r--arch/arm/mach-at91/at91cap9.c45
1 files changed, 10 insertions, 35 deletions
diff --git a/arch/arm/mach-at91/at91cap9.c b/arch/arm/mach-at91/at91cap9.c
index f1013d08bb5..bfc684441ef 100644
--- a/arch/arm/mach-at91/at91cap9.c
+++ b/arch/arm/mach-at91/at91cap9.c
@@ -25,23 +25,10 @@
25#include <mach/at91_rstc.h> 25#include <mach/at91_rstc.h>
26#include <mach/at91_shdwc.h> 26#include <mach/at91_shdwc.h>
27 27
28#include "soc.h"
28#include "generic.h" 29#include "generic.h"
29#include "clock.h" 30#include "clock.h"
30 31
31static struct map_desc at91cap9_io_desc[] __initdata = {
32 {
33 .virtual = AT91_VA_BASE_SYS,
34 .pfn = __phys_to_pfn(AT91_BASE_SYS),
35 .length = SZ_16K,
36 .type = MT_DEVICE,
37 }, {
38 .virtual = AT91_IO_VIRT_BASE - AT91CAP9_SRAM_SIZE,
39 .pfn = __phys_to_pfn(AT91CAP9_SRAM_BASE),
40 .length = AT91CAP9_SRAM_SIZE,
41 .type = MT_DEVICE,
42 },
43};
44
45/* -------------------------------------------------------------------- 32/* --------------------------------------------------------------------
46 * Clocks 33 * Clocks
47 * -------------------------------------------------------------------- */ 34 * -------------------------------------------------------------------- */
@@ -339,24 +326,17 @@ static void at91cap9_poweroff(void)
339 * AT91CAP9 processor initialization 326 * AT91CAP9 processor initialization
340 * -------------------------------------------------------------------- */ 327 * -------------------------------------------------------------------- */
341 328
342void __init at91cap9_map_io(void) 329static void __init at91cap9_map_io(void)
343{ 330{
344 /* Map peripherals */ 331 at91_init_sram(0, AT91CAP9_SRAM_BASE, AT91CAP9_SRAM_SIZE);
345 iotable_init(at91cap9_io_desc, ARRAY_SIZE(at91cap9_io_desc));
346} 332}
347 333
348void __init at91cap9_initialize(unsigned long main_clock) 334static void __init at91cap9_initialize(void)
349{ 335{
350 at91_arch_reset = at91cap9_reset; 336 at91_arch_reset = at91cap9_reset;
351 pm_power_off = at91cap9_poweroff; 337 pm_power_off = at91cap9_poweroff;
352 at91_extern_irq = (1 << AT91CAP9_ID_IRQ0) | (1 << AT91CAP9_ID_IRQ1); 338 at91_extern_irq = (1 << AT91CAP9_ID_IRQ0) | (1 << AT91CAP9_ID_IRQ1);
353 339
354 /* Init clock subsystem */
355 at91_clock_init(main_clock);
356
357 /* Register the processor-specific clocks */
358 at91cap9_register_clocks();
359
360 /* Register GPIO subsystem */ 340 /* Register GPIO subsystem */
361 at91_gpio_init(at91cap9_gpio, 4); 341 at91_gpio_init(at91cap9_gpio, 4);
362 342
@@ -409,14 +389,9 @@ static unsigned int at91cap9_default_irq_priority[NR_AIC_IRQS] __initdata = {
409 0, /* Advanced Interrupt Controller (IRQ1) */ 389 0, /* Advanced Interrupt Controller (IRQ1) */
410}; 390};
411 391
412void __init at91cap9_init_interrupts(unsigned int priority[NR_AIC_IRQS]) 392struct at91_init_soc __initdata at91cap9_soc = {
413{ 393 .map_io = at91cap9_map_io,
414 if (!priority) 394 .default_irq_priority = at91cap9_default_irq_priority,
415 priority = at91cap9_default_irq_priority; 395 .register_clocks = at91cap9_register_clocks,
416 396 .init = at91cap9_initialize,
417 /* Initialize the AIC interrupt controller */ 397};
418 at91_aic_init(priority);
419
420 /* Enable GPIO interrupts */
421 at91_gpio_irq_setup();
422}