summaryrefslogtreecommitdiff
path: root/arch/arm/mach-rmobile/cpu_info-sh73a0.c
blob: 0c7ee8acf5a71998bde29b762a3b4ed98b215e7a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
// SPDX-License-Identifier: GPL-2.0+
/*
 * (C) Copyright 2012 Nobuhiro Iwamatsu <nobuhiro.iwamatsu.yj@renesas.com>
 * (C) Copyright 2012 Renesas Solutions Corp.
 */
#include <common.h>
#include <asm/io.h>

u32 rmobile_get_cpu_type(void)
{
	u32 id;
	u32 type;
	struct sh73a0_hpb *hpb = (struct sh73a0_hpb *)HPB_BASE;

	id = readl(&hpb->cccr);
	type = (id >> 8) & 0xFF;

	return type;
}

u32 rmobile_get_cpu_rev_integer(void)
{
	u32 id;
	u32 rev;
	struct sh73a0_hpb *hpb = (struct sh73a0_hpb *)HPB_BASE;

	id = readl(&hpb->cccr);
	rev = ((id >> 4) & 0xF) + 1;

	return rev;
}

u32 rmobile_get_cpu_rev_fraction(void)
{
	u32 id;
	u32 rev;
	struct sh73a0_hpb *hpb = (struct sh73a0_hpb *)HPB_BASE;

	id = readl(&hpb->cccr);
	rev = id & 0xF;

	return rev;
}