1 // SPDX-License-Identifier: GPL-2.0
3 * arch/arm/mach-renesas/cpu_info-rcar.c
5 * Copyright (C) 2013,2014 Renesas Electronics Corporation
10 #define PRR_MASK 0x7fff
11 #define R8A7796_REV_1_0 0x5200
12 #define R8A7796_REV_1_1 0x5210
13 #define R8A7796_REV_1_3 0x5211
14 #define R8A77995_REV_1_1 0x5810
16 static u32 renesas_get_prr(void)
18 if (IS_ENABLED(CONFIG_RCAR_64))
19 return readl(0xFFF00044);
21 return readl(0xFF000044);
24 u32 renesas_get_cpu_type(void)
26 return (renesas_get_prr() & 0x00007F00) >> 8;
29 u32 renesas_get_cpu_rev_integer(void)
31 const u32 prr = renesas_get_prr();
32 const u32 rev = prr & PRR_MASK;
34 if (rev == R8A7796_REV_1_1 || rev == R8A7796_REV_1_3 ||
35 rev == R8A77995_REV_1_1)
38 return ((prr & 0x000000F0) >> 4) + 1;
41 u32 renesas_get_cpu_rev_fraction(void)
43 const u32 prr = renesas_get_prr();
44 const u32 rev = prr & PRR_MASK;
46 if (rev == R8A7796_REV_1_1 || rev == R8A77995_REV_1_1)
48 else if (rev == R8A7796_REV_1_3)
51 return prr & 0x0000000F;