diff --git a/drivers/soc/rockchip/rockchip-cpuinfo.c b/drivers/soc/rockchip/rockchip-cpuinfo.c index 9eea6f32a576..36af00ea8794 100644 --- a/drivers/soc/rockchip/rockchip-cpuinfo.c +++ b/drivers/soc/rockchip/rockchip-cpuinfo.c @@ -214,7 +214,10 @@ static void rk3308_init(void) static void rk3528_init(void) { - rockchip_soc_id = ROCKCHIP_SOC_RK3528; + if (of_machine_is_compatible("rockchip,rk3528")) + rockchip_soc_id = ROCKCHIP_SOC_RK3528; + else if (of_machine_is_compatible("rockchip,rk3528a")) + rockchip_soc_id = ROCKCHIP_SOC_RK3528A; } #define RK356X_PMU_GRF_PHYS 0xfdc20000 diff --git a/include/linux/rockchip/cpu.h b/include/linux/rockchip/cpu.h index 7cf949cd9ac4..dc3b9381e1ad 100644 --- a/include/linux/rockchip/cpu.h +++ b/include/linux/rockchip/cpu.h @@ -181,7 +181,8 @@ static inline bool cpu_is_rk3528(void) { if (rockchip_soc_id) return (rockchip_soc_id & ROCKCHIP_CPU_MASK) == ROCKCHIP_CPU_RK3528; - return of_machine_is_compatible("rockchip,rk3528"); + return of_machine_is_compatible("rockchip,rk3528") || + of_machine_is_compatible("rockchip,rk3528a"); } #else static inline bool cpu_is_rk3528(void) { return false; } @@ -223,6 +224,7 @@ static inline bool cpu_is_rk3568(void) { return false; } #define ROCKCHIP_SOC_RK3308B (ROCKCHIP_CPU_RK3308 | 0x01) #define ROCKCHIP_SOC_RK3308BS (ROCKCHIP_CPU_RK3308 | 0x02) #define ROCKCHIP_SOC_RK3528 (ROCKCHIP_CPU_RK3528 | 0x00) +#define ROCKCHIP_SOC_RK3528A (ROCKCHIP_CPU_RK3528 | 0x01) #define ROCKCHIP_SOC_RK3566 (ROCKCHIP_CPU_RK3566 | 0x00) #define ROCKCHIP_SOC_RK3568 (ROCKCHIP_CPU_RK3568 | 0x00) @@ -252,6 +254,7 @@ ROCKCHIP_SOC(RK3308, rk3308, RK3308) ROCKCHIP_SOC(RK3308, rk3308b, RK3308B) ROCKCHIP_SOC(RK3308, rk3308bs, RK3308BS) ROCKCHIP_SOC(RK3528, rk3528, RK3528) +ROCKCHIP_SOC(RK3528, rk3528a, RK3528A) ROCKCHIP_SOC(RK3568, rk3566, RK3566) ROCKCHIP_SOC(RK3568, rk3568, RK3568)