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