]> git.sur5r.net Git - u-boot/commitdiff
arm: rmobile: Update print_cpuinfo function
authorNobuhiro Iwamatsu <nobuhiro.iwamatsu.yj@renesas.com>
Fri, 28 Mar 2014 02:54:22 +0000 (11:54 +0900)
committerNobuhiro Iwamatsu <iwamatsu@nigauri.org>
Sun, 27 Apr 2014 19:35:12 +0000 (04:35 +0900)
The print_cpuinfo fucntion has same code.
It has a code of many common.  This adds a table of CPU information, duplicate
using for-loop.

Signed-off-by: Nobuhiro Iwamatsu <nobuhiro.iwamatsu.yj@renesas.com>
Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
arch/arm/cpu/armv7/rmobile/cpu_info.c

index 83d5282e3e71e2f51c23f4fbf98024ac0f658028..7a7c97d791b0e1886857373b783506cfeeca3f16 100644 (file)
@@ -44,35 +44,30 @@ static u32 __rmobile_get_cpu_rev_fraction(void)
 u32 rmobile_get_cpu_rev_fraction(void)
                __attribute__((weak, alias("__rmobile_get_cpu_rev_fraction")));
 
+/* CPU infomation table */
+static const struct {
+       u16 cpu_type;
+       u8 cpu_name[10];
+} rmobile_cpuinfo[] = {
+       { 0x37, "SH73A0" },
+       { 0x40, "R8A7740" },
+       { 0x45, "R8A7790" },
+       { 0x47, "R8A7791" },
+       { 0x0, "CPU" },
+};
+
 int print_cpuinfo(void)
 {
-       switch (rmobile_get_cpu_type()) {
-       case 0x37:
-               printf("CPU: Renesas Electronics SH73A0 rev %d.%d\n",
-                      rmobile_get_cpu_rev_integer(),
-                      rmobile_get_cpu_rev_fraction());
-               break;
-       case 0x40:
-               printf("CPU: Renesas Electronics R8A7740 rev %d.%d\n",
-                      rmobile_get_cpu_rev_integer(),
-                      rmobile_get_cpu_rev_fraction());
-               break;
-
-       case 0x45:
-               printf("CPU: Renesas Electronics R8A7790 rev %d\n",
-                      rmobile_get_cpu_rev_integer());
-               break;
-
-       case 0x47:
-               printf("CPU: Renesas Electronics R8A7791 rev %d\n",
-                       rmobile_get_cpu_rev_integer());
-               break;
-
-       default:
-               printf("CPU: Renesas Electronics CPU rev %d.%d\n",
-                      rmobile_get_cpu_rev_integer(),
-                      rmobile_get_cpu_rev_fraction());
-               break;
+       int i = 0;
+       u32 cpu_type = rmobile_get_cpu_type();
+       for (; i < ARRAY_SIZE(rmobile_cpuinfo); i++) {
+               if (rmobile_cpuinfo[i].cpu_type == cpu_type) {
+                       printf("CPU: Renesas Electronics %s rev %d.%d\n",
+                              rmobile_cpuinfo[i].cpu_name,
+                              rmobile_get_cpu_rev_integer(),
+                              rmobile_get_cpu_rev_fraction());
+                       break;
+               }
        }
        return 0;
 }