diff options
Diffstat (limited to 'arch/arm/plat-s5p/cpu.c')
-rw-r--r-- | arch/arm/plat-s5p/cpu.c | 39 |
1 files changed, 31 insertions, 8 deletions
diff --git a/arch/arm/plat-s5p/cpu.c b/arch/arm/plat-s5p/cpu.c index 0895a77a2835..f92e5de3a755 100644 --- a/arch/arm/plat-s5p/cpu.c +++ b/arch/arm/plat-s5p/cpu.c | |||
@@ -18,10 +18,14 @@ | |||
18 | #include <mach/regs-clock.h> | 18 | #include <mach/regs-clock.h> |
19 | #include <plat/cpu.h> | 19 | #include <plat/cpu.h> |
20 | #include <plat/s5p6440.h> | 20 | #include <plat/s5p6440.h> |
21 | #include <plat/s5p6442.h> | ||
22 | #include <plat/s5pv210.h> | ||
21 | 23 | ||
22 | /* table of supported CPUs */ | 24 | /* table of supported CPUs */ |
23 | 25 | ||
24 | static const char name_s5p6440[] = "S5P6440"; | 26 | static const char name_s5p6440[] = "S5P6440"; |
27 | static const char name_s5p6442[] = "S5P6442"; | ||
28 | static const char name_s5pv210[] = "S5PV210/S5PC110"; | ||
25 | 29 | ||
26 | static struct cpu_table cpu_ids[] __initdata = { | 30 | static struct cpu_table cpu_ids[] __initdata = { |
27 | { | 31 | { |
@@ -32,36 +36,55 @@ static struct cpu_table cpu_ids[] __initdata = { | |||
32 | .init_uarts = s5p6440_init_uarts, | 36 | .init_uarts = s5p6440_init_uarts, |
33 | .init = s5p6440_init, | 37 | .init = s5p6440_init, |
34 | .name = name_s5p6440, | 38 | .name = name_s5p6440, |
39 | }, { | ||
40 | .idcode = 0x36442000, | ||
41 | .idmask = 0xffffff00, | ||
42 | .map_io = s5p6442_map_io, | ||
43 | .init_clocks = s5p6442_init_clocks, | ||
44 | .init_uarts = s5p6442_init_uarts, | ||
45 | .init = s5p6442_init, | ||
46 | .name = name_s5p6442, | ||
47 | }, { | ||
48 | .idcode = 0x43110000, | ||
49 | .idmask = 0xfffff000, | ||
50 | .map_io = s5pv210_map_io, | ||
51 | .init_clocks = s5pv210_init_clocks, | ||
52 | .init_uarts = s5pv210_init_uarts, | ||
53 | .init = s5pv210_init, | ||
54 | .name = name_s5pv210, | ||
35 | }, | 55 | }, |
36 | }; | 56 | }; |
37 | 57 | ||
38 | /* minimal IO mapping */ | 58 | /* minimal IO mapping */ |
39 | 59 | ||
40 | #define UART_OFFS (S5P_PA_UART & 0xfffff) | ||
41 | |||
42 | static struct map_desc s5p_iodesc[] __initdata = { | 60 | static struct map_desc s5p_iodesc[] __initdata = { |
43 | { | 61 | { |
44 | .virtual = (unsigned long)S5P_VA_SYSCON, | 62 | .virtual = (unsigned long)S5P_VA_CHIPID, |
63 | .pfn = __phys_to_pfn(S5P_PA_CHIPID), | ||
64 | .length = SZ_4K, | ||
65 | .type = MT_DEVICE, | ||
66 | }, { | ||
67 | .virtual = (unsigned long)S3C_VA_SYS, | ||
45 | .pfn = __phys_to_pfn(S5P_PA_SYSCON), | 68 | .pfn = __phys_to_pfn(S5P_PA_SYSCON), |
46 | .length = SZ_64K, | 69 | .length = SZ_64K, |
47 | .type = MT_DEVICE, | 70 | .type = MT_DEVICE, |
48 | }, { | 71 | }, { |
49 | .virtual = (unsigned long)(S5P_VA_UART + UART_OFFS), | 72 | .virtual = (unsigned long)S3C_VA_UART, |
50 | .pfn = __phys_to_pfn(S5P_PA_UART), | 73 | .pfn = __phys_to_pfn(S3C_PA_UART), |
51 | .length = SZ_4K, | 74 | .length = SZ_4K, |
52 | .type = MT_DEVICE, | 75 | .type = MT_DEVICE, |
53 | }, { | 76 | }, { |
54 | .virtual = (unsigned long)S5P_VA_VIC0, | 77 | .virtual = (unsigned long)VA_VIC0, |
55 | .pfn = __phys_to_pfn(S5P_PA_VIC0), | 78 | .pfn = __phys_to_pfn(S5P_PA_VIC0), |
56 | .length = SZ_16K, | 79 | .length = SZ_16K, |
57 | .type = MT_DEVICE, | 80 | .type = MT_DEVICE, |
58 | }, { | 81 | }, { |
59 | .virtual = (unsigned long)S5P_VA_VIC1, | 82 | .virtual = (unsigned long)VA_VIC1, |
60 | .pfn = __phys_to_pfn(S5P_PA_VIC1), | 83 | .pfn = __phys_to_pfn(S5P_PA_VIC1), |
61 | .length = SZ_16K, | 84 | .length = SZ_16K, |
62 | .type = MT_DEVICE, | 85 | .type = MT_DEVICE, |
63 | }, { | 86 | }, { |
64 | .virtual = (unsigned long)S5P_VA_TIMER, | 87 | .virtual = (unsigned long)S3C_VA_TIMER, |
65 | .pfn = __phys_to_pfn(S5P_PA_TIMER), | 88 | .pfn = __phys_to_pfn(S5P_PA_TIMER), |
66 | .length = SZ_16K, | 89 | .length = SZ_16K, |
67 | .type = MT_DEVICE, | 90 | .type = MT_DEVICE, |