.. | .. |
---|
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 |
---|
| 31 | +#define ROCKCHIP_CPU_RK3567 0x35670000 |
---|
28 | 32 | #define ROCKCHIP_CPU_RK3568 0x35680000 |
---|
29 | 33 | |
---|
30 | | -#if IS_ENABLED(CONFIG_ROCKCHIP_CPUINFO) |
---|
| 34 | +#if IS_REACHABLE(CONFIG_ROCKCHIP_CPUINFO) |
---|
31 | 35 | |
---|
32 | 36 | extern unsigned long rockchip_soc_id; |
---|
33 | 37 | |
---|
.. | .. |
---|
96 | 100 | static inline bool cpu_is_px30(void) { return false; } |
---|
97 | 101 | #endif |
---|
98 | 102 | |
---|
| 103 | +#if defined(CONFIG_CPU_RV1106) |
---|
| 104 | +static inline bool cpu_is_rv1103(void) |
---|
| 105 | +{ |
---|
| 106 | + if (rockchip_soc_id) |
---|
| 107 | + return (rockchip_soc_id & ROCKCHIP_CPU_MASK) == ROCKCHIP_CPU_RV1103; |
---|
| 108 | + return of_machine_is_compatible("rockchip,rv1103"); |
---|
| 109 | +} |
---|
| 110 | + |
---|
| 111 | +static inline bool cpu_is_rv1106(void) |
---|
| 112 | +{ |
---|
| 113 | + if (rockchip_soc_id) |
---|
| 114 | + return (rockchip_soc_id & ROCKCHIP_CPU_MASK) == ROCKCHIP_CPU_RV1106; |
---|
| 115 | + return of_machine_is_compatible("rockchip,rv1106"); |
---|
| 116 | +} |
---|
| 117 | +#else |
---|
| 118 | +static inline bool cpu_is_rv1103(void) { return false; } |
---|
| 119 | +static inline bool cpu_is_rv1106(void) { return false; } |
---|
| 120 | +#endif |
---|
| 121 | + |
---|
99 | 122 | #if defined(CONFIG_CPU_RV1126) || defined(CONFIG_CPU_RV1109) |
---|
100 | 123 | static inline bool cpu_is_rv1109(void) |
---|
101 | 124 | { |
---|
.. | .. |
---|
147 | 170 | if (rockchip_soc_id) |
---|
148 | 171 | return (rockchip_soc_id & ROCKCHIP_CPU_MASK) == ROCKCHIP_CPU_RK3308; |
---|
149 | 172 | |
---|
150 | | - return of_machine_is_compatible("rockchip,rk3308"); |
---|
| 173 | + return of_machine_is_compatible("rockchip,rk3308") || |
---|
| 174 | + of_machine_is_compatible("rockchip,rk3308bs"); |
---|
151 | 175 | } |
---|
152 | 176 | #else |
---|
153 | 177 | static inline bool cpu_is_rk3308(void) { return false; } |
---|
| 178 | +#endif |
---|
| 179 | + |
---|
| 180 | +#if defined(CONFIG_CPU_RK3528) |
---|
| 181 | +static inline bool cpu_is_rk3528(void) |
---|
| 182 | +{ |
---|
| 183 | + if (rockchip_soc_id) |
---|
| 184 | + return (rockchip_soc_id & ROCKCHIP_CPU_MASK) == ROCKCHIP_CPU_RK3528; |
---|
| 185 | + return of_machine_is_compatible("rockchip,rk3528") || |
---|
| 186 | + of_machine_is_compatible("rockchip,rk3528a"); |
---|
| 187 | +} |
---|
| 188 | +#else |
---|
| 189 | +static inline bool cpu_is_rk3528(void) { return false; } |
---|
154 | 190 | #endif |
---|
155 | 191 | |
---|
156 | 192 | #if defined(CONFIG_CPU_RK3568) |
---|
.. | .. |
---|
161 | 197 | return of_machine_is_compatible("rockchip,rk3566"); |
---|
162 | 198 | } |
---|
163 | 199 | |
---|
| 200 | +static inline bool cpu_is_rk3567(void) |
---|
| 201 | +{ |
---|
| 202 | + if (rockchip_soc_id) |
---|
| 203 | + return (rockchip_soc_id & ROCKCHIP_CPU_MASK) == ROCKCHIP_CPU_RK3567; |
---|
| 204 | + return of_machine_is_compatible("rockchip,rk3567"); |
---|
| 205 | +} |
---|
| 206 | + |
---|
164 | 207 | static inline bool cpu_is_rk3568(void) |
---|
165 | 208 | { |
---|
166 | 209 | if (rockchip_soc_id) |
---|
.. | .. |
---|
169 | 212 | } |
---|
170 | 213 | #else |
---|
171 | 214 | static inline bool cpu_is_rk3566(void) { return false; } |
---|
| 215 | +static inline bool cpu_is_rk3567(void) { return false; } |
---|
172 | 216 | static inline bool cpu_is_rk3568(void) { return false; } |
---|
173 | 217 | #endif |
---|
174 | 218 | |
---|
175 | 219 | #define ROCKCHIP_SOC_MASK (ROCKCHIP_CPU_MASK | 0xff) |
---|
176 | 220 | #define ROCKCHIP_SOC_PX30 (ROCKCHIP_CPU_PX30 | 0x00) |
---|
177 | 221 | #define ROCKCHIP_SOC_PX30S (ROCKCHIP_CPU_PX30 | 0x01) |
---|
| 222 | +#define ROCKCHIP_SOC_RV1103 (ROCKCHIP_CPU_RV1103 | 0x00) |
---|
| 223 | +#define ROCKCHIP_SOC_RV1106 (ROCKCHIP_CPU_RV1106 | 0x00) |
---|
178 | 224 | #define ROCKCHIP_SOC_RV1109 (ROCKCHIP_CPU_RV1109 | 0x00) |
---|
179 | 225 | #define ROCKCHIP_SOC_RV1126 (ROCKCHIP_CPU_RV1126 | 0x00) |
---|
180 | 226 | #define ROCKCHIP_SOC_RK3126 (ROCKCHIP_CPU_RK312X | 0x00) |
---|
.. | .. |
---|
185 | 231 | #define ROCKCHIP_SOC_RK3288W (ROCKCHIP_CPU_RK3288 | 0x01) |
---|
186 | 232 | #define ROCKCHIP_SOC_RK3308 (ROCKCHIP_CPU_RK3308 | 0x00) |
---|
187 | 233 | #define ROCKCHIP_SOC_RK3308B (ROCKCHIP_CPU_RK3308 | 0x01) |
---|
| 234 | +#define ROCKCHIP_SOC_RK3308BS (ROCKCHIP_CPU_RK3308 | 0x02) |
---|
| 235 | +#define ROCKCHIP_SOC_RK3528 (ROCKCHIP_CPU_RK3528 | 0x00) |
---|
| 236 | +#define ROCKCHIP_SOC_RK3528A (ROCKCHIP_CPU_RK3528 | 0x01) |
---|
188 | 237 | #define ROCKCHIP_SOC_RK3566 (ROCKCHIP_CPU_RK3566 | 0x00) |
---|
| 238 | +#define ROCKCHIP_SOC_RK3567 (ROCKCHIP_CPU_RK3567 | 0x00) |
---|
189 | 239 | #define ROCKCHIP_SOC_RK3568 (ROCKCHIP_CPU_RK3568 | 0x00) |
---|
190 | 240 | |
---|
191 | | -#define ROCKCHIP_SOC(id, ID) \ |
---|
| 241 | +#define ROCKCHIP_SOC(CPU, id, ID) \ |
---|
192 | 242 | static inline bool soc_is_##id(void) \ |
---|
193 | 243 | { \ |
---|
| 244 | + if (!IS_ENABLED(CONFIG_CPU_##CPU)) \ |
---|
| 245 | + return false; \ |
---|
194 | 246 | if (rockchip_soc_id) \ |
---|
195 | 247 | return ((rockchip_soc_id & ROCKCHIP_SOC_MASK) == ROCKCHIP_SOC_ ##ID); \ |
---|
196 | 248 | return of_machine_is_compatible("rockchip,"#id); \ |
---|
197 | 249 | } |
---|
198 | 250 | |
---|
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) |
---|
| 251 | +ROCKCHIP_SOC(PX30, px30, PX30) |
---|
| 252 | +ROCKCHIP_SOC(PX30, px30s, PX30S) |
---|
| 253 | +ROCKCHIP_SOC(RV1106, rv1103, RV1103) |
---|
| 254 | +ROCKCHIP_SOC(RV1106, rv1106, RV1106) |
---|
| 255 | +ROCKCHIP_SOC(RV1126, rv1109, RV1109) |
---|
| 256 | +ROCKCHIP_SOC(RV1126, rv1126, RV1126) |
---|
| 257 | +ROCKCHIP_SOC(RK312X, rk3126, RK3126) |
---|
| 258 | +ROCKCHIP_SOC(RK312X, rk3126b, RK3126B) |
---|
| 259 | +ROCKCHIP_SOC(RK312X, rk3126c, RK3126C) |
---|
| 260 | +ROCKCHIP_SOC(RK312X, rk3128, RK3128) |
---|
| 261 | +ROCKCHIP_SOC(RK3288, rk3288, RK3288) |
---|
| 262 | +ROCKCHIP_SOC(RK3288, rk3288w, RK3288W) |
---|
| 263 | +ROCKCHIP_SOC(RK3308, rk3308, RK3308) |
---|
| 264 | +ROCKCHIP_SOC(RK3308, rk3308b, RK3308B) |
---|
| 265 | +ROCKCHIP_SOC(RK3308, rk3308bs, RK3308BS) |
---|
| 266 | +ROCKCHIP_SOC(RK3528, rk3528, RK3528) |
---|
| 267 | +ROCKCHIP_SOC(RK3528, rk3528a, RK3528A) |
---|
| 268 | +ROCKCHIP_SOC(RK3568, rk3566, RK3566) |
---|
| 269 | +ROCKCHIP_SOC(RK3567, rk3567, RK3567) |
---|
| 270 | +ROCKCHIP_SOC(RK3568, rk3568, RK3568) |
---|
213 | 271 | |
---|
214 | 272 | #endif |
---|