From: Tetsuyuki Kobayashi <[email protected]>

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 <[email protected]>
---
 arch/arm/cpu/armv7/rmobile/cpu_info-sh73a0.c |   16 ++++++++++++++--
 arch/arm/cpu/armv7/rmobile/cpu_info.c        |   23 ++++++++++++++++-------
 2 files changed, 30 insertions(+), 9 deletions(-)

diff --git a/arch/arm/cpu/armv7/rmobile/cpu_info-sh73a0.c 
b/arch/arm/cpu/armv7/rmobile/cpu_info-sh73a0.c
index a715efa..8239155 100644
--- a/arch/arm/cpu/armv7/rmobile/cpu_info-sh73a0.c
+++ b/arch/arm/cpu/armv7/rmobile/cpu_info-sh73a0.c
@@ -36,14 +36,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;
 }
diff --git a/arch/arm/cpu/armv7/rmobile/cpu_info.c 
b/arch/arm/cpu/armv7/rmobile/cpu_info.c
index 957a4fc..87287ce 100644
--- a/arch/arm/cpu/armv7/rmobile/cpu_info.c
+++ b/arch/arm/cpu/armv7/rmobile/cpu_info.c
@@ -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;
-- 
1.7.9.5

_______________________________________________
U-Boot mailing list
[email protected]
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to