diff options
Diffstat (limited to 'arch/arm/mach-shmobile/setup-r8a7740.c')
-rw-r--r-- | arch/arm/mach-shmobile/setup-r8a7740.c | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/arch/arm/mach-shmobile/setup-r8a7740.c b/arch/arm/mach-shmobile/setup-r8a7740.c index 986dca6b3fad..74e52341dd1b 100644 --- a/arch/arm/mach-shmobile/setup-r8a7740.c +++ b/arch/arm/mach-shmobile/setup-r8a7740.c | |||
@@ -25,8 +25,41 @@ | |||
25 | #include <linux/serial_sci.h> | 25 | #include <linux/serial_sci.h> |
26 | #include <linux/sh_timer.h> | 26 | #include <linux/sh_timer.h> |
27 | #include <mach/r8a7740.h> | 27 | #include <mach/r8a7740.h> |
28 | #include <mach/common.h> | ||
28 | #include <asm/mach-types.h> | 29 | #include <asm/mach-types.h> |
30 | #include <asm/mach/map.h> | ||
29 | #include <asm/mach/arch.h> | 31 | #include <asm/mach/arch.h> |
32 | #include <asm/mach/time.h> | ||
33 | |||
34 | static struct map_desc r8a7740_io_desc[] __initdata = { | ||
35 | /* | ||
36 | * for CPGA/INTC/PFC | ||
37 | * 0xe6000000-0xefffffff -> 0xe6000000-0xefffffff | ||
38 | */ | ||
39 | { | ||
40 | .virtual = 0xe6000000, | ||
41 | .pfn = __phys_to_pfn(0xe6000000), | ||
42 | .length = 160 << 20, | ||
43 | .type = MT_DEVICE_NONSHARED | ||
44 | }, | ||
45 | #ifdef CONFIG_CACHE_L2X0 | ||
46 | /* | ||
47 | * for l2x0_init() | ||
48 | * 0xf0100000-0xf0101000 -> 0xf0002000-0xf0003000 | ||
49 | */ | ||
50 | { | ||
51 | .virtual = 0xf0002000, | ||
52 | .pfn = __phys_to_pfn(0xf0100000), | ||
53 | .length = PAGE_SIZE, | ||
54 | .type = MT_DEVICE_NONSHARED | ||
55 | }, | ||
56 | #endif | ||
57 | }; | ||
58 | |||
59 | void __init r8a7740_map_io(void) | ||
60 | { | ||
61 | iotable_init(r8a7740_io_desc, ARRAY_SIZE(r8a7740_io_desc)); | ||
62 | } | ||
30 | 63 | ||
31 | /* SCIFA0 */ | 64 | /* SCIFA0 */ |
32 | static struct plat_sci_port scif0_platform_data = { | 65 | static struct plat_sci_port scif0_platform_data = { |
@@ -345,8 +378,20 @@ void __init r8a7740_add_standard_devices(void) | |||
345 | ARRAY_SIZE(r8a7740_late_devices)); | 378 | ARRAY_SIZE(r8a7740_late_devices)); |
346 | } | 379 | } |
347 | 380 | ||
381 | static void __init r8a7740_earlytimer_init(void) | ||
382 | { | ||
383 | r8a7740_clock_init(0); | ||
384 | shmobile_earlytimer_init(); | ||
385 | } | ||
386 | |||
348 | void __init r8a7740_add_early_devices(void) | 387 | void __init r8a7740_add_early_devices(void) |
349 | { | 388 | { |
350 | early_platform_add_devices(r8a7740_early_devices, | 389 | early_platform_add_devices(r8a7740_early_devices, |
351 | ARRAY_SIZE(r8a7740_early_devices)); | 390 | ARRAY_SIZE(r8a7740_early_devices)); |
391 | |||
392 | /* setup early console here as well */ | ||
393 | shmobile_setup_console(); | ||
394 | |||
395 | /* override timer setup with soc-specific code */ | ||
396 | shmobile_timer.init = r8a7740_earlytimer_init; | ||
352 | } | 397 | } |