diff --git a/arch/arm/include/asm/arch-rockchip/cpu.h b/arch/arm/include/asm/arch-rockchip/cpu.h index 110c4addfd..49cb8528ca 100644 --- a/arch/arm/include/asm/arch-rockchip/cpu.h +++ b/arch/arm/include/asm/arch-rockchip/cpu.h @@ -13,6 +13,8 @@ #define ROCKCHIP_CPU_RK312X 0x31260000 #define ROCKCHIP_CPU_RK3288 0x32880000 #define ROCKCHIP_CPU_RK3308 0x33080000 +#define ROCKCHIP_CPU_RK3566 0x35660000 +#define ROCKCHIP_CPU_RK3568 0x35680000 #define ROCKCHIP_SOC_MASK (ROCKCHIP_CPU_MASK | 0xff) #define ROCKCHIP_SOC_RK3126 (ROCKCHIP_CPU_RK312X | 0x00) @@ -23,6 +25,21 @@ #define ROCKCHIP_SOC_RK3288W (ROCKCHIP_CPU_RK3288 | 0x01) #define ROCKCHIP_SOC_RK3308 (ROCKCHIP_CPU_RK3308 | 0x00) #define ROCKCHIP_SOC_RK3308B (ROCKCHIP_CPU_RK3308 | 0x01) +#define ROCKCHIP_SOC_RK3566 (ROCKCHIP_CPU_RK3566 | 0x00) +#define ROCKCHIP_SOC_RK3568 (ROCKCHIP_CPU_RK3568 | 0x00) + +static inline unsigned long rockchip_get_cpu_version(void) +{ +#if defined(CONFIG_ROCKCHIP_RK3568) +#define PMUGRF_SOC_CON15 0xfdc20100 + if (readl(PMUGRF_SOC_CON15) & GENMASK(15, 14)) + return 1; + else + return 0; +#else + return 0; +#endif +} static inline int rockchip_soc_id(void) { @@ -43,6 +60,11 @@ static inline int rockchip_soc_id(void) return ROCKCHIP_SOC_RK3308; else return ROCKCHIP_SOC_RK3308B; +#elif defined(CONFIG_ROCKCHIP_RK3568) + if (of_machine_is_compatible("rockchip,rk3566")) + return ROCKCHIP_SOC_RK3566; + else + return ROCKCHIP_SOC_RK3568; #else return 0; #endif @@ -65,5 +87,7 @@ ROCKCHIP_SOC(rk3288, RK3288) ROCKCHIP_SOC(rk3288w, RK3288W) ROCKCHIP_SOC(rk3308, RK3308) ROCKCHIP_SOC(rk3308b, RK3308B) +ROCKCHIP_SOC(rk3566, RK3566) +ROCKCHIP_SOC(rk3568, RK3568) #endif