diff options
Diffstat (limited to 'arch/arm/mach-s3c2410/cpu.c')
| -rw-r--r-- | arch/arm/mach-s3c2410/cpu.c | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/arch/arm/mach-s3c2410/cpu.c b/arch/arm/mach-s3c2410/cpu.c index 687fe371369d..00a379334b60 100644 --- a/arch/arm/mach-s3c2410/cpu.c +++ b/arch/arm/mach-s3c2410/cpu.c | |||
| @@ -40,6 +40,7 @@ | |||
| 40 | 40 | ||
| 41 | #include "cpu.h" | 41 | #include "cpu.h" |
| 42 | #include "clock.h" | 42 | #include "clock.h" |
| 43 | #include "s3c2400.h" | ||
| 43 | #include "s3c2410.h" | 44 | #include "s3c2410.h" |
| 44 | #include "s3c2440.h" | 45 | #include "s3c2440.h" |
| 45 | 46 | ||
| @@ -55,6 +56,7 @@ struct cpu_table { | |||
| 55 | 56 | ||
| 56 | /* table of supported CPUs */ | 57 | /* table of supported CPUs */ |
| 57 | 58 | ||
| 59 | static const char name_s3c2400[] = "S3C2400"; | ||
| 58 | static const char name_s3c2410[] = "S3C2410"; | 60 | static const char name_s3c2410[] = "S3C2410"; |
| 59 | static const char name_s3c2440[] = "S3C2440"; | 61 | static const char name_s3c2440[] = "S3C2440"; |
| 60 | static const char name_s3c2410a[] = "S3C2410A"; | 62 | static const char name_s3c2410a[] = "S3C2410A"; |
| @@ -96,7 +98,16 @@ static struct cpu_table cpu_ids[] __initdata = { | |||
| 96 | .init_uarts = s3c2440_init_uarts, | 98 | .init_uarts = s3c2440_init_uarts, |
| 97 | .init = s3c2440_init, | 99 | .init = s3c2440_init, |
| 98 | .name = name_s3c2440a | 100 | .name = name_s3c2440a |
| 99 | } | 101 | }, |
| 102 | { | ||
| 103 | .idcode = 0x0, /* S3C2400 doesn't have an idcode */ | ||
| 104 | .idmask = 0xffffffff, | ||
| 105 | .map_io = s3c2400_map_io, | ||
| 106 | .init_clocks = s3c2400_init_clocks, | ||
| 107 | .init_uarts = s3c2400_init_uarts, | ||
| 108 | .init = s3c2400_init, | ||
| 109 | .name = name_s3c2400 | ||
| 110 | }, | ||
| 100 | }; | 111 | }; |
| 101 | 112 | ||
| 102 | /* minimal IO mapping */ | 113 | /* minimal IO mapping */ |
| @@ -148,12 +159,15 @@ static struct cpu_table *cpu; | |||
| 148 | 159 | ||
| 149 | void __init s3c24xx_init_io(struct map_desc *mach_desc, int size) | 160 | void __init s3c24xx_init_io(struct map_desc *mach_desc, int size) |
| 150 | { | 161 | { |
| 151 | unsigned long idcode; | 162 | unsigned long idcode = 0x0; |
| 152 | 163 | ||
| 153 | /* initialise the io descriptors we need for initialisation */ | 164 | /* initialise the io descriptors we need for initialisation */ |
| 154 | iotable_init(s3c_iodesc, ARRAY_SIZE(s3c_iodesc)); | 165 | iotable_init(s3c_iodesc, ARRAY_SIZE(s3c_iodesc)); |
| 155 | 166 | ||
| 167 | #ifndef CONFIG_CPU_S3C2400 | ||
| 156 | idcode = __raw_readl(S3C2410_GSTATUS1); | 168 | idcode = __raw_readl(S3C2410_GSTATUS1); |
| 169 | #endif | ||
| 170 | |||
| 157 | cpu = s3c_lookup_cpu(idcode); | 171 | cpu = s3c_lookup_cpu(idcode); |
| 158 | 172 | ||
| 159 | if (cpu == NULL) { | 173 | if (cpu == NULL) { |
