All of lore.kernel.org
 help / color / mirror / Atom feed
* [patch 1/14] s3c2412/s3c2413 support
@ 2006-03-03 10:58 Koen Martens
  0 siblings, 0 replies; only message in thread
From: Koen Martens @ 2006-03-03 10:58 UTC (permalink / raw)
  To: linux-arm-kernel, ben, linux-kernel

Added s3c2412 detection.

Signed-off-by: Koen Martens <gmc@sonologic.nl>


--- linux-2.6.15.4/arch/arm/mach-s3c2410/cpu.c    2006-02-10 
08:22:48.000000000 +0100
+++ golinux/arch/arm/mach-s3c2410/cpu.c    2006-03-03 11:30:43.000000000 
+0100
@@ -41,6 +41,7 @@
 #include "cpu.h"
 #include "clock.h"
 #include "s3c2410.h"
+#include "s3c2412.h"
 #include "s3c2440.h"
 
 struct cpu_table {
@@ -58,6 +59,7 @@
 static const char name_s3c2410[]  = "S3C2410";
 static const char name_s3c2440[]  = "S3C2440";
 static const char name_s3c2410a[] = "S3C2410A";
+static const char name_s3c2412[]  = "S3C2412";
 static const char name_s3c2440a[] = "S3C2440A";
 
 static struct cpu_table cpu_ids[] __initdata = {
@@ -99,6 +101,19 @@
     }
 };
 
+static struct cpu_table alternative_cpu_ids[] __initdata = {
+       {
+               .idcode         = 0x32410002,
+               .idmask         = 0xffffffff,
+               .map_io         = s3c2412_map_io,
+               .init_clocks    = s3c2412_init_clocks,
+               .init_uarts     = s3c2412_init_uarts,
+               .init           = s3c2412_init,
+               .name           = name_s3c2412
+        }
+};
+
+
 /* minimal IO mapping */
 
 static struct map_desc s3c_iodesc[] __initdata = {
@@ -110,13 +125,16 @@
 
 
 static struct cpu_table *
-s3c_lookup_cpu(unsigned long idcode)
+s3c_lookup_cpu(unsigned long idcode,int alt)
 {
     struct cpu_table *tab;
     int count;
+    int size;
 
-    tab = cpu_ids;
-    for (count = 0; count < ARRAY_SIZE(cpu_ids); count++, tab++) {
+    tab = alt?alternative_cpu_ids:cpu_ids;
+    size = alt?ARRAY_SIZE(alternative_cpu_ids):ARRAY_SIZE(cpu_ids);
+
+    for (count = 0; count < size; count++, tab++) {
         if ((idcode & tab->idmask) == tab->idcode)
             return tab;
     }
@@ -154,7 +172,11 @@
     iotable_init(s3c_iodesc, ARRAY_SIZE(s3c_iodesc));
 
     idcode = __raw_readl(S3C2410_GSTATUS1);
-    cpu = s3c_lookup_cpu(idcode);
+    cpu = s3c_lookup_cpu(idcode,0);
+    if (cpu == NULL) {
+        idcode = __raw_readl(S3C2412_GSTATUS1);
+        cpu = s3c_lookup_cpu(idcode,1);
+    }
 
     if (cpu == NULL) {
         printk(KERN_ERR "Unknown CPU type 0x%08lx\n", idcode);

-- 
K.F.J. Martens, Sonologic, http://www.sonologic.nl/
Networking, hosting, embedded systems, unix, artificial intelligence.
Public PGP key: http://www.metro.cx/pubkey-gmc.asc
Wondering about the funny attachment your mail program
can't read? Visit http://www.openpgp.org/


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2006-03-03 10:59 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-03-03 10:58 [patch 1/14] s3c2412/s3c2413 support Koen Martens

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.