arm: rmobile: kzm9g: separate cpu_rev to integer and fraction
authorTetsuyuki Kobayashi <koba@kmckk.co.jp>
Wed, 25 Jul 2012 18:24:21 +0000 (18:24 +0000)
committerAlbert ARIBAUD <albert.u.boot@aribaud.net>
Wed, 3 Oct 2012 00:04:24 +0000 (02:04 +0200)
According to SoC document, revision info is separated to integer part and
fracton part.
So I separete rmobile_get_cpu_rev() to rmobile_get_cpu_rev_integer() and
rmobile_get_cpu_rev_fraction().

Signed-off-by: Tetsuyuki Kobayashi <koba@kmckk.co.jp>
Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
arch/arm/cpu/armv7/rmobile/cpu_info-sh73a0.c
arch/arm/cpu/armv7/rmobile/cpu_info.c

index 13ad7424c0829e575f6756f18d830a61c7a6bd2a..2e7ed4931fd676f427c80f90423a4a9d65974cd3 100644 (file)
@@ -35,14 +35,26 @@ u32 rmobile_get_cpu_type(void)
        return type;
 }
 
-u32 rmobile_get_cpu_rev(void)
+u32 rmobile_get_cpu_rev_integer(void)
 {
        u32 id;
        u32 rev;
        struct sh73a0_hpb *hpb = (struct sh73a0_hpb *)HPB_BASE;
 
        id = readl(&hpb->cccr);
-       rev = (id >> 4) & 0xF;
+       rev = ((id >> 4) & 0xF) + 1;
+
+       return rev;
+}
+
+u32 rmobile_get_cpu_rev_fraction(void)
+{
+       u32 id;
+       u32 rev;
+       struct sh73a0_hpb *hpb = (struct sh73a0_hpb *)HPB_BASE;
+
+       id = readl(&hpb->cccr);
+       rev = id & 0xF;
 
        return rev;
 }
index 957a4fc9dfcee12ea6b1c573f976a4a6d7b87482..87287ce1965faa1b134b4ade36a86f5f8e9c9ddb 100644 (file)
@@ -46,23 +46,32 @@ static u32 __rmobile_get_cpu_type(void)
 u32 rmobile_get_cpu_type(void)
                __attribute__((weak, alias("__rmobile_get_cpu_type")));
 
-static u32 __rmobile_get_cpu_rev(void)
+static u32 __rmobile_get_cpu_rev_integer(void)
 {
        return 0;
 }
-u32 rmobile_get_cpu_rev(void)
-               __attribute__((weak, alias("__rmobile_get_cpu_rev")));
+u32 rmobile_get_cpu_rev_integer(void)
+               __attribute__((weak, alias("__rmobile_get_cpu_rev_integer")));
+
+static u32 __rmobile_get_cpu_rev_fraction(void)
+{
+       return 0;
+}
+u32 rmobile_get_cpu_rev_fraction(void)
+               __attribute__((weak, alias("__rmobile_get_cpu_rev_fraction")));
 
 int print_cpuinfo(void)
 {
        switch (rmobile_get_cpu_type()) {
        case 0x37:
-               printf("CPU: Renesas Electronics SH73A0 rev %d\n",
-                               rmobile_get_cpu_rev());
+               printf("CPU: Renesas Electronics SH73A0 rev %d.%d\n",
+                      rmobile_get_cpu_rev_integer(),
+                      rmobile_get_cpu_rev_fraction());
                break;
        default:
-               printf("CPU: Renesas Electronics CPU rev %d\n",
-                               rmobile_get_cpu_rev());
+               printf("CPU: Renesas Electronics CPU rev %d.%d\n",
+                      rmobile_get_cpu_rev_integer(),
+                      rmobile_get_cpu_rev_fraction());
                break;
        }
        return 0;