1 /* SPDX-License-Identifier: GPL-2.0+ */ 2 /* 3 * Rockchip Electronics Co., Ltd. 4 */ 5 6 #ifndef __ASM_ARCH_CPU_RK3288_H 7 #define __ASM_ARCH_CPU_RK3288_H 8 9 #include <asm/io.h> 10 11 #define ROCKCHIP_CPU_MASK 0xffff0000 12 #define ROCKCHIP_CPU_RK3288 0x32880000 13 14 #define ROCKCHIP_SOC_MASK (ROCKCHIP_CPU_MASK | 0xff) 15 #define ROCKCHIP_SOC_RK3288 (ROCKCHIP_CPU_RK3288 | 0x00) 16 #define ROCKCHIP_SOC_RK3288W (ROCKCHIP_CPU_RK3288 | 0x01) 17 18 #define RK3288_HDMI_PHYS 0xff980000 19 #define HDMI_CONFIG0_ID 0x4 20 #define RK3288W_HDMI_REVID 0x1a 21 rockchip_soc_id(void)22static inline int rockchip_soc_id(void) 23 { 24 u8 reg; 25 26 #if defined(CONFIG_ROCKCHIP_RK3288) 27 reg = readb(RK3288_HDMI_PHYS + HDMI_CONFIG0_ID); 28 if (reg == RK3288W_HDMI_REVID) 29 return ROCKCHIP_SOC_RK3288W; 30 else 31 return ROCKCHIP_SOC_RK3288; 32 #else 33 return 0; 34 #endif 35 } 36 37 #define ROCKCHIP_SOC(id, ID) \ 38 static inline bool soc_is_##id(void) \ 39 { \ 40 int soc_id = rockchip_soc_id(); \ 41 if (soc_id) \ 42 return ((soc_id & ROCKCHIP_SOC_MASK) == ROCKCHIP_SOC_ ##ID); \ 43 return false; \ 44 } 45 46 ROCKCHIP_SOC(rk3288, RK3288) 47 ROCKCHIP_SOC(rk3288w, RK3288W) 48 49 #endif /* __ASM_ARCH_CPU_RK3288_H */ 50