From: Tetsuyuki Kobayashi <koba@kmckk.co.jp>
Date: Wed, 25 Jul 2012 18:24:21 +0000 (+0000)
Subject: arm: rmobile: kzm9g: separate cpu_rev to integer and fraction
X-Git-Tag: v2025.01-rc5-pxa1908~17169^2~34
X-Git-Url: http://git.dujemihanovic.xyz/img/html/static/login.html?a=commitdiff_plain;h=4f007b8334b9ed7170254cc784ad4f23f10192d0;p=u-boot.git

arm: rmobile: kzm9g: separate cpu_rev to integer and fraction

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>
---

diff --git a/arch/arm/cpu/armv7/rmobile/cpu_info-sh73a0.c b/arch/arm/cpu/armv7/rmobile/cpu_info-sh73a0.c
index 13ad7424c0..2e7ed4931f 100644
--- a/arch/arm/cpu/armv7/rmobile/cpu_info-sh73a0.c
+++ b/arch/arm/cpu/armv7/rmobile/cpu_info-sh73a0.c
@@ -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;
 }
diff --git a/arch/arm/cpu/armv7/rmobile/cpu_info.c b/arch/arm/cpu/armv7/rmobile/cpu_info.c
index 957a4fc9df..87287ce196 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;