[ARM] S3C64XX: Add S3C6400 CPU detection.
authorBen Dooks <ben-linux@fluff.org>
Tue, 24 Mar 2009 17:31:42 +0000 (17:31 +0000)
committerBen Dooks <ben-linux@fluff.org>
Thu, 7 May 2009 10:04:57 +0000 (11:04 +0100)
Add detection support for the S3C6400 SoC which has it's
id register in a different place to the S3C6410.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
arch/arm/plat-s3c64xx/cpu.c

index f9fdaab32ab48ff368e657acc22f286256c743f2..19f68b5f0d36e494afaa58d900af3f8ed2778b8b 100644 (file)
@@ -126,6 +126,14 @@ void __init s3c64xx_init_io(struct map_desc *mach_desc, int size)
        iotable_init(mach_desc, size);
 
        idcode = __raw_readl(S3C_VA_SYS + 0x118);
+       if (!idcode) {
+               /* S3C6400 has the ID register in a different place,
+                * and needs a write before it can be read. */
+
+               __raw_writel(0x0, S3C_VA_SYS + 0xA1C);
+               idcode = __raw_readl(S3C_VA_SYS + 0xA1C);
+       }
+
        s3c_init_cpu(idcode, cpu_ids, ARRAY_SIZE(cpu_ids));
 }