soc: rockchip: add cpuid for px30/px30s

The value of bit[15:14] in DDR_GRF_BASE1 define px30/px30s.
px30:  bit[15:14]=0x00
px30s: bit[15:14]=0x03

Change-Id: I07e31e8fd56ee2eea7883a5f5de012740ec0e98a
Signed-off-by: Liang Chen <cl@rock-chips.com>
This commit is contained in:
Liang Chen
2021-08-15 15:59:38 +08:00
committed by Tao Huang
parent 13a543e8cc
commit d9b0208167
2 changed files with 38 additions and 0 deletions

View File

@@ -105,6 +105,23 @@ static struct platform_driver rockchip_cpuinfo_driver = {
},
};
static void px30_init(void)
{
void __iomem *base;
rockchip_soc_id = ROCKCHIP_SOC_PX30;
#define PX30_DDR_GRF_BASE 0xFF630000
#define PX30_DDR_GRF_CON1 0x04
base = ioremap(PX30_DDR_GRF_BASE, SZ_4K);
if (base) {
unsigned int val = readl_relaxed(base + PX30_DDR_GRF_CON1);
if (((val >> 14) & 0x03) == 0x03)
rockchip_soc_id = ROCKCHIP_SOC_PX30S;
iounmap(base);
}
}
static void rv1109_init(void)
{
rockchip_soc_id = ROCKCHIP_SOC_RV1109;
@@ -214,6 +231,8 @@ int __init rockchip_soc_id_init(void)
rk3566_init();
} else if (cpu_is_rk3568()) {
rk3568_init();
} else if (cpu_is_px30()) {
px30_init();
}
return 0;

View File

@@ -18,6 +18,7 @@
#define ROCKCHIP_CPU_MASK 0xffff0000
#define ROCKCHIP_CPU_SHIFT 16
#define ROCKCHIP_CPU_PX30 0x33260000
#define ROCKCHIP_CPU_RV1109 0x11090000
#define ROCKCHIP_CPU_RV1126 0x11260000
#define ROCKCHIP_CPU_RK312X 0x31260000
@@ -81,6 +82,20 @@ static inline int rockchip_soc_id_init(void)
#endif
#ifdef CONFIG_CPU_PX30
static inline bool cpu_is_px30(void)
{
if (rockchip_soc_id)
return (rockchip_soc_id & ROCKCHIP_CPU_MASK) == ROCKCHIP_CPU_PX30;
return of_machine_is_compatible("rockchip,px30") ||
of_machine_is_compatible("rockchip,px30s") ||
of_machine_is_compatible("rockchip,rk3326") ||
of_machine_is_compatible("rockchip,rk3326s");
}
#else
static inline bool cpu_is_px30(void) { return false; }
#endif
#if defined(CONFIG_CPU_RV1126) || defined(CONFIG_CPU_RV1109)
static inline bool cpu_is_rv1109(void)
{
@@ -158,6 +173,8 @@ static inline bool cpu_is_rk3568(void) { return false; }
#endif
#define ROCKCHIP_SOC_MASK (ROCKCHIP_CPU_MASK | 0xff)
#define ROCKCHIP_SOC_PX30 (ROCKCHIP_CPU_PX30 | 0x00)
#define ROCKCHIP_SOC_PX30S (ROCKCHIP_CPU_PX30 | 0x01)
#define ROCKCHIP_SOC_RV1109 (ROCKCHIP_CPU_RV1109 | 0x00)
#define ROCKCHIP_SOC_RV1126 (ROCKCHIP_CPU_RV1126 | 0x00)
#define ROCKCHIP_SOC_RK3126 (ROCKCHIP_CPU_RK312X | 0x00)
@@ -179,6 +196,8 @@ static inline bool soc_is_##id(void) \
return of_machine_is_compatible("rockchip,"#id); \
}
ROCKCHIP_SOC(px30, PX30)
ROCKCHIP_SOC(px30s, PX30S)
ROCKCHIP_SOC(rv1109, RV1109)
ROCKCHIP_SOC(rv1126, RV1126)
ROCKCHIP_SOC(rk3126, RK3126)