blob: 186b4b5cbb8ca75fdd960b65e5c86a09165d2bca [file] [log] [blame]
Nobuhiro Iwamatsu1cdf2482012-08-19 04:40:05 +00001/*
2 * (C) Copyright 2012 Nobuhiro Iwamatsu <nobuhiro.iwamatsu.yj@renesas.com>
3 * (C) Copyright 2012 Renesas Solutions Corp.
4 *
Wolfgang Denk1a459662013-07-08 09:37:19 +02005 * SPDX-License-Identifier: GPL-2.0+
Nobuhiro Iwamatsu1cdf2482012-08-19 04:40:05 +00006 */
7#include <common.h>
8#include <asm/io.h>
9
10u32 rmobile_get_cpu_type(void)
11{
12 u32 id;
13 u32 type;
14 struct sh73a0_hpb *hpb = (struct sh73a0_hpb *)HPB_BASE;
15
Tetsuyuki Kobayashi170cc962012-07-25 18:24:20 +000016 id = readl(&hpb->cccr);
Nobuhiro Iwamatsu1cdf2482012-08-19 04:40:05 +000017 type = (id >> 8) & 0xFF;
18
19 return type;
20}
21
Tetsuyuki Kobayashi4f007b82012-07-25 18:24:21 +000022u32 rmobile_get_cpu_rev_integer(void)
Nobuhiro Iwamatsu1cdf2482012-08-19 04:40:05 +000023{
24 u32 id;
25 u32 rev;
26 struct sh73a0_hpb *hpb = (struct sh73a0_hpb *)HPB_BASE;
27
Tetsuyuki Kobayashi170cc962012-07-25 18:24:20 +000028 id = readl(&hpb->cccr);
Tetsuyuki Kobayashi4f007b82012-07-25 18:24:21 +000029 rev = ((id >> 4) & 0xF) + 1;
30
31 return rev;
32}
33
34u32 rmobile_get_cpu_rev_fraction(void)
35{
36 u32 id;
37 u32 rev;
38 struct sh73a0_hpb *hpb = (struct sh73a0_hpb *)HPB_BASE;
39
40 id = readl(&hpb->cccr);
41 rev = id & 0xF;
Nobuhiro Iwamatsu1cdf2482012-08-19 04:40:05 +000042
43 return rev;
44}