blob: c373eef73d46244b6f8ecb2898af809f4a1e457d [file] [log] [blame]
Nobuhiro Iwamatsu1d0e9272013-11-21 17:06:45 +09001/*
Nobuhiro Iwamatsu9b7fa2f2014-03-28 11:07:39 +09002 * arch/arm/cpu/armv7/rmobile/cpu_info-rcar.c
Nobuhiro Iwamatsu1d0e9272013-11-21 17:06:45 +09003 *
Nobuhiro Iwamatsu9b7fa2f2014-03-28 11:07:39 +09004 * Copyright (C) 2013,2014 Renesas Electronics Corporation
Nobuhiro Iwamatsu1d0e9272013-11-21 17:06:45 +09005 *
6 * SPDX-License-Identifier: GPL-2.0
7 */
8#include <common.h>
9#include <asm/io.h>
10
Marek Vasute965c892017-05-13 15:57:38 +020011#define PRR 0xFF000044
12#define PRR_MASK 0x7fff
13#define R8A7796_REV_1_0 0x5200
14#define R8A7796_REV_1_1 0x5210
Nobuhiro Iwamatsu1d0e9272013-11-21 17:06:45 +090015
16u32 rmobile_get_cpu_type(void)
17{
18 return (readl(PRR) & 0x00007F00) >> 8;
19}
20
21u32 rmobile_get_cpu_rev_integer(void)
22{
Marek Vasute965c892017-05-13 15:57:38 +020023 const u32 prr = readl(PRR);
24
25 if ((prr & PRR_MASK) == R8A7796_REV_1_1)
26 return 1;
27 else
28 return ((prr & 0x000000F0) >> 4) + 1;
Nobuhiro Iwamatsu1d0e9272013-11-21 17:06:45 +090029}
Nobuhiro Iwamatsua028abe2014-03-28 11:15:59 +090030
31u32 rmobile_get_cpu_rev_fraction(void)
32{
Marek Vasute965c892017-05-13 15:57:38 +020033 const u32 prr = readl(PRR);
34
35 if ((prr & PRR_MASK) == R8A7796_REV_1_1)
36 return 1;
37 else
38 return prr & 0x0000000F;
Nobuhiro Iwamatsua028abe2014-03-28 11:15:59 +090039}