xref: /openbmc/u-boot/arch/arm/mach-rmobile/cpu_info-r8a7740.c (revision 83d290c56fab2d38cd1ab4c4cc7099559c1d5046)
1*83d290c5STom Rini // SPDX-License-Identifier: GPL-2.0+
2badbb63cSNobuhiro Iwamatsu /*
3badbb63cSNobuhiro Iwamatsu  * (C) Copyright 2012 Nobuhiro Iwamatsu <nobuhiro.iwamatsu.yj@renesas.com>
4badbb63cSNobuhiro Iwamatsu  * (C) Copyright 2012 Renesas Solutions Corp.
5badbb63cSNobuhiro Iwamatsu  */
6badbb63cSNobuhiro Iwamatsu #include <common.h>
7badbb63cSNobuhiro Iwamatsu #include <asm/io.h>
8badbb63cSNobuhiro Iwamatsu 
rmobile_get_cpu_type(void)9badbb63cSNobuhiro Iwamatsu u32 rmobile_get_cpu_type(void)
10badbb63cSNobuhiro Iwamatsu {
11badbb63cSNobuhiro Iwamatsu 	u32 id;
12badbb63cSNobuhiro Iwamatsu 	u32 type;
13badbb63cSNobuhiro Iwamatsu 	struct r8a7740_hpb *hpb = (struct r8a7740_hpb *)HPB_BASE;
14badbb63cSNobuhiro Iwamatsu 
15badbb63cSNobuhiro Iwamatsu 	id = readl(hpb->cccr);
16badbb63cSNobuhiro Iwamatsu 	type = (id >> 8) & 0xFF;
17badbb63cSNobuhiro Iwamatsu 
18badbb63cSNobuhiro Iwamatsu 	return type;
19badbb63cSNobuhiro Iwamatsu }
20badbb63cSNobuhiro Iwamatsu 
rmobile_get_cpu_rev(void)21badbb63cSNobuhiro Iwamatsu u32 rmobile_get_cpu_rev(void)
22badbb63cSNobuhiro Iwamatsu {
23badbb63cSNobuhiro Iwamatsu 	u32 id;
24badbb63cSNobuhiro Iwamatsu 	u32 rev;
25badbb63cSNobuhiro Iwamatsu 	struct r8a7740_hpb *hpb = (struct r8a7740_hpb *)HPB_BASE;
26badbb63cSNobuhiro Iwamatsu 
27badbb63cSNobuhiro Iwamatsu 	id = readl(hpb->cccr);
28badbb63cSNobuhiro Iwamatsu 	rev = (id >> 4) & 0xF;
29badbb63cSNobuhiro Iwamatsu 
30badbb63cSNobuhiro Iwamatsu 	return rev;
31badbb63cSNobuhiro Iwamatsu }
32