| .. | .. |
|---|
| 19 | 19 | #define ROCKCHIP_CPU_MASK 0xffff0000 |
|---|
| 20 | 20 | #define ROCKCHIP_CPU_SHIFT 16 |
|---|
| 21 | 21 | #define ROCKCHIP_CPU_PX30 0x33260000 |
|---|
| 22 | +#define ROCKCHIP_CPU_RV1103 0x11030000 |
|---|
| 23 | +#define ROCKCHIP_CPU_RV1106 0x11060000 |
|---|
| 22 | 24 | #define ROCKCHIP_CPU_RV1109 0x11090000 |
|---|
| 23 | 25 | #define ROCKCHIP_CPU_RV1126 0x11260000 |
|---|
| 24 | 26 | #define ROCKCHIP_CPU_RK312X 0x31260000 |
|---|
| 25 | 27 | #define ROCKCHIP_CPU_RK3288 0x32880000 |
|---|
| 26 | 28 | #define ROCKCHIP_CPU_RK3308 0x33080000 |
|---|
| 29 | +#define ROCKCHIP_CPU_RK3528 0x35280000 |
|---|
| 27 | 30 | #define ROCKCHIP_CPU_RK3566 0x35660000 |
|---|
| 28 | 31 | #define ROCKCHIP_CPU_RK3568 0x35680000 |
|---|
| 29 | 32 | |
|---|
| 30 | | -#if IS_ENABLED(CONFIG_ROCKCHIP_CPUINFO) |
|---|
| 33 | +#if IS_REACHABLE(CONFIG_ROCKCHIP_CPUINFO) |
|---|
| 31 | 34 | |
|---|
| 32 | 35 | extern unsigned long rockchip_soc_id; |
|---|
| 33 | 36 | |
|---|
| .. | .. |
|---|
| 96 | 99 | static inline bool cpu_is_px30(void) { return false; } |
|---|
| 97 | 100 | #endif |
|---|
| 98 | 101 | |
|---|
| 102 | +#if defined(CONFIG_CPU_RV1106) |
|---|
| 103 | +static inline bool cpu_is_rv1103(void) |
|---|
| 104 | +{ |
|---|
| 105 | + if (rockchip_soc_id) |
|---|
| 106 | + return (rockchip_soc_id & ROCKCHIP_CPU_MASK) == ROCKCHIP_CPU_RV1103; |
|---|
| 107 | + return of_machine_is_compatible("rockchip,rv1103"); |
|---|
| 108 | +} |
|---|
| 109 | + |
|---|
| 110 | +static inline bool cpu_is_rv1106(void) |
|---|
| 111 | +{ |
|---|
| 112 | + if (rockchip_soc_id) |
|---|
| 113 | + return (rockchip_soc_id & ROCKCHIP_CPU_MASK) == ROCKCHIP_CPU_RV1106; |
|---|
| 114 | + return of_machine_is_compatible("rockchip,rv1106"); |
|---|
| 115 | +} |
|---|
| 116 | +#else |
|---|
| 117 | +static inline bool cpu_is_rv1103(void) { return false; } |
|---|
| 118 | +static inline bool cpu_is_rv1106(void) { return false; } |
|---|
| 119 | +#endif |
|---|
| 120 | + |
|---|
| 99 | 121 | #if defined(CONFIG_CPU_RV1126) || defined(CONFIG_CPU_RV1109) |
|---|
| 100 | 122 | static inline bool cpu_is_rv1109(void) |
|---|
| 101 | 123 | { |
|---|
| .. | .. |
|---|
| 147 | 169 | if (rockchip_soc_id) |
|---|
| 148 | 170 | return (rockchip_soc_id & ROCKCHIP_CPU_MASK) == ROCKCHIP_CPU_RK3308; |
|---|
| 149 | 171 | |
|---|
| 150 | | - return of_machine_is_compatible("rockchip,rk3308"); |
|---|
| 172 | + return of_machine_is_compatible("rockchip,rk3308") || |
|---|
| 173 | + of_machine_is_compatible("rockchip,rk3308bs"); |
|---|
| 151 | 174 | } |
|---|
| 152 | 175 | #else |
|---|
| 153 | 176 | static inline bool cpu_is_rk3308(void) { return false; } |
|---|
| 177 | +#endif |
|---|
| 178 | + |
|---|
| 179 | +#if defined(CONFIG_CPU_RK3528) |
|---|
| 180 | +static inline bool cpu_is_rk3528(void) |
|---|
| 181 | +{ |
|---|
| 182 | + if (rockchip_soc_id) |
|---|
| 183 | + return (rockchip_soc_id & ROCKCHIP_CPU_MASK) == ROCKCHIP_CPU_RK3528; |
|---|
| 184 | + return of_machine_is_compatible("rockchip,rk3528"); |
|---|
| 185 | +} |
|---|
| 186 | +#else |
|---|
| 187 | +static inline bool cpu_is_rk3528(void) { return false; } |
|---|
| 154 | 188 | #endif |
|---|
| 155 | 189 | |
|---|
| 156 | 190 | #if defined(CONFIG_CPU_RK3568) |
|---|
| .. | .. |
|---|
| 175 | 209 | #define ROCKCHIP_SOC_MASK (ROCKCHIP_CPU_MASK | 0xff) |
|---|
| 176 | 210 | #define ROCKCHIP_SOC_PX30 (ROCKCHIP_CPU_PX30 | 0x00) |
|---|
| 177 | 211 | #define ROCKCHIP_SOC_PX30S (ROCKCHIP_CPU_PX30 | 0x01) |
|---|
| 212 | +#define ROCKCHIP_SOC_RV1103 (ROCKCHIP_CPU_RV1103 | 0x00) |
|---|
| 213 | +#define ROCKCHIP_SOC_RV1106 (ROCKCHIP_CPU_RV1106 | 0x00) |
|---|
| 178 | 214 | #define ROCKCHIP_SOC_RV1109 (ROCKCHIP_CPU_RV1109 | 0x00) |
|---|
| 179 | 215 | #define ROCKCHIP_SOC_RV1126 (ROCKCHIP_CPU_RV1126 | 0x00) |
|---|
| 180 | 216 | #define ROCKCHIP_SOC_RK3126 (ROCKCHIP_CPU_RK312X | 0x00) |
|---|
| .. | .. |
|---|
| 185 | 221 | #define ROCKCHIP_SOC_RK3288W (ROCKCHIP_CPU_RK3288 | 0x01) |
|---|
| 186 | 222 | #define ROCKCHIP_SOC_RK3308 (ROCKCHIP_CPU_RK3308 | 0x00) |
|---|
| 187 | 223 | #define ROCKCHIP_SOC_RK3308B (ROCKCHIP_CPU_RK3308 | 0x01) |
|---|
| 224 | +#define ROCKCHIP_SOC_RK3308BS (ROCKCHIP_CPU_RK3308 | 0x02) |
|---|
| 225 | +#define ROCKCHIP_SOC_RK3528 (ROCKCHIP_CPU_RK3528 | 0x00) |
|---|
| 188 | 226 | #define ROCKCHIP_SOC_RK3566 (ROCKCHIP_CPU_RK3566 | 0x00) |
|---|
| 189 | 227 | #define ROCKCHIP_SOC_RK3568 (ROCKCHIP_CPU_RK3568 | 0x00) |
|---|
| 190 | 228 | |
|---|
| 191 | | -#define ROCKCHIP_SOC(id, ID) \ |
|---|
| 229 | +#define ROCKCHIP_SOC(CPU, id, ID) \ |
|---|
| 192 | 230 | static inline bool soc_is_##id(void) \ |
|---|
| 193 | 231 | { \ |
|---|
| 232 | + if (!IS_ENABLED(CONFIG_CPU_##CPU)) \ |
|---|
| 233 | + return false; \ |
|---|
| 194 | 234 | if (rockchip_soc_id) \ |
|---|
| 195 | 235 | return ((rockchip_soc_id & ROCKCHIP_SOC_MASK) == ROCKCHIP_SOC_ ##ID); \ |
|---|
| 196 | 236 | return of_machine_is_compatible("rockchip,"#id); \ |
|---|
| 197 | 237 | } |
|---|
| 198 | 238 | |
|---|
| 199 | | -ROCKCHIP_SOC(px30, PX30) |
|---|
| 200 | | -ROCKCHIP_SOC(px30s, PX30S) |
|---|
| 201 | | -ROCKCHIP_SOC(rv1109, RV1109) |
|---|
| 202 | | -ROCKCHIP_SOC(rv1126, RV1126) |
|---|
| 203 | | -ROCKCHIP_SOC(rk3126, RK3126) |
|---|
| 204 | | -ROCKCHIP_SOC(rk3126b, RK3126B) |
|---|
| 205 | | -ROCKCHIP_SOC(rk3126c, RK3126C) |
|---|
| 206 | | -ROCKCHIP_SOC(rk3128, RK3128) |
|---|
| 207 | | -ROCKCHIP_SOC(rk3288, RK3288) |
|---|
| 208 | | -ROCKCHIP_SOC(rk3288w, RK3288W) |
|---|
| 209 | | -ROCKCHIP_SOC(rk3308, RK3308) |
|---|
| 210 | | -ROCKCHIP_SOC(rk3308b, RK3308B) |
|---|
| 211 | | -ROCKCHIP_SOC(rk3566, RK3566) |
|---|
| 212 | | -ROCKCHIP_SOC(rk3568, RK3568) |
|---|
| 239 | +ROCKCHIP_SOC(PX30, px30, PX30) |
|---|
| 240 | +ROCKCHIP_SOC(PX30, px30s, PX30S) |
|---|
| 241 | +ROCKCHIP_SOC(RV1106, rv1103, RV1103) |
|---|
| 242 | +ROCKCHIP_SOC(RV1106, rv1106, RV1106) |
|---|
| 243 | +ROCKCHIP_SOC(RV1126, rv1109, RV1109) |
|---|
| 244 | +ROCKCHIP_SOC(RV1126, rv1126, RV1126) |
|---|
| 245 | +ROCKCHIP_SOC(RK312X, rk3126, RK3126) |
|---|
| 246 | +ROCKCHIP_SOC(RK312X, rk3126b, RK3126B) |
|---|
| 247 | +ROCKCHIP_SOC(RK312X, rk3126c, RK3126C) |
|---|
| 248 | +ROCKCHIP_SOC(RK312X, rk3128, RK3128) |
|---|
| 249 | +ROCKCHIP_SOC(RK3288, rk3288, RK3288) |
|---|
| 250 | +ROCKCHIP_SOC(RK3288, rk3288w, RK3288W) |
|---|
| 251 | +ROCKCHIP_SOC(RK3308, rk3308, RK3308) |
|---|
| 252 | +ROCKCHIP_SOC(RK3308, rk3308b, RK3308B) |
|---|
| 253 | +ROCKCHIP_SOC(RK3308, rk3308bs, RK3308BS) |
|---|
| 254 | +ROCKCHIP_SOC(RK3528, rk3528, RK3528) |
|---|
| 255 | +ROCKCHIP_SOC(RK3568, rk3566, RK3566) |
|---|
| 256 | +ROCKCHIP_SOC(RK3568, rk3568, RK3568) |
|---|
| 213 | 257 | |
|---|
| 214 | 258 | #endif |
|---|