]> git.ipfire.org Git - people/ms/u-boot.git/commitdiff
ARM: rmobile: Handle R8A7796 r1.1 in the PRR code
authorMarek Vasut <marek.vasut@gmail.com>
Sat, 13 May 2017 13:57:38 +0000 (15:57 +0200)
committerNobuhiro Iwamatsu <iwamatsu@nigauri.org>
Sun, 21 May 2017 19:38:26 +0000 (04:38 +0900)
The R8A7796 r1.1 reports itself as r2.0 , add quirk into the
PRR code to fix this report.

Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
Cc: Hiroyuki Yokoyama <hiroyuki.yokoyama.vx@renesas.com>
Cc: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
arch/arm/mach-rmobile/cpu_info-rcar.c

index 42ee30fbe7acf29ac423ac966f8490aaf13ff0a8..c373eef73d46244b6f8ecb2898af809f4a1e457d 100644 (file)
@@ -8,7 +8,10 @@
 #include <common.h>
 #include <asm/io.h>
 
-#define PRR 0xFF000044
+#define PRR                    0xFF000044
+#define PRR_MASK               0x7fff
+#define R8A7796_REV_1_0                0x5200
+#define R8A7796_REV_1_1                0x5210
 
 u32 rmobile_get_cpu_type(void)
 {
@@ -17,10 +20,20 @@ u32 rmobile_get_cpu_type(void)
 
 u32 rmobile_get_cpu_rev_integer(void)
 {
-       return ((readl(PRR) & 0x000000F0) >> 4) + 1;
+       const u32 prr = readl(PRR);
+
+       if ((prr & PRR_MASK) == R8A7796_REV_1_1)
+               return 1;
+       else
+               return ((prr & 0x000000F0) >> 4) + 1;
 }
 
 u32 rmobile_get_cpu_rev_fraction(void)
 {
-       return readl(PRR) & 0x0000000F;
+       const u32 prr = readl(PRR);
+
+       if ((prr & PRR_MASK) == R8A7796_REV_1_1)
+               return 1;
+       else
+               return prr & 0x0000000F;
 }