All of lore.kernel.org
 help / color / mirror / Atom feed
From: Koen Martens <linuxarm@metro.cx>
To: linux-arm-kernel@lists.arm.linux.org.uk, ben@simtec.co.uk,
	linux-kernel@vger.kernel.org
Subject: [patch 1/14] s3c2412/s3c2413 support
Date: Fri, 03 Mar 2006 11:58:52 +0100	[thread overview]
Message-ID: <4408216C.4020205@metro.cx> (raw)

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/


                 reply	other threads:[~2006-03-03 10:59 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4408216C.4020205@metro.cx \
    --to=linuxarm@metro.cx \
    --cc=ben@simtec.co.uk \
    --cc=linux-arm-kernel@lists.arm.linux.org.uk \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.