aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/arm/plat-s3c64xx/cpu.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/arch/arm/plat-s3c64xx/cpu.c b/arch/arm/plat-s3c64xx/cpu.c
index f9fdaab32ab4..19f68b5f0d36 100644
--- a/arch/arm/plat-s3c64xx/cpu.c
+++ b/arch/arm/plat-s3c64xx/cpu.c
@@ -126,6 +126,14 @@ void __init s3c64xx_init_io(struct map_desc *mach_desc, int size)
126 iotable_init(mach_desc, size); 126 iotable_init(mach_desc, size);
127 127
128 idcode = __raw_readl(S3C_VA_SYS + 0x118); 128 idcode = __raw_readl(S3C_VA_SYS + 0x118);
129 if (!idcode) {
130 /* S3C6400 has the ID register in a different place,
131 * and needs a write before it can be read. */
132
133 __raw_writel(0x0, S3C_VA_SYS + 0xA1C);
134 idcode = __raw_readl(S3C_VA_SYS + 0xA1C);
135 }
136
129 s3c_init_cpu(idcode, cpu_ids, ARRAY_SIZE(cpu_ids)); 137 s3c_init_cpu(idcode, cpu_ids, ARRAY_SIZE(cpu_ids));
130} 138}
131 139