hc
2023-12-11 6778948f9de86c3cfaf36725a7c87dcff9ba247f
kernel/include/linux/rockchip/cpu.h
....@@ -19,15 +19,19 @@
1919 #define ROCKCHIP_CPU_MASK 0xffff0000
2020 #define ROCKCHIP_CPU_SHIFT 16
2121 #define ROCKCHIP_CPU_PX30 0x33260000
22
+#define ROCKCHIP_CPU_RV1103 0x11030000
23
+#define ROCKCHIP_CPU_RV1106 0x11060000
2224 #define ROCKCHIP_CPU_RV1109 0x11090000
2325 #define ROCKCHIP_CPU_RV1126 0x11260000
2426 #define ROCKCHIP_CPU_RK312X 0x31260000
2527 #define ROCKCHIP_CPU_RK3288 0x32880000
2628 #define ROCKCHIP_CPU_RK3308 0x33080000
29
+#define ROCKCHIP_CPU_RK3528 0x35280000
2730 #define ROCKCHIP_CPU_RK3566 0x35660000
31
+#define ROCKCHIP_CPU_RK3567 0x35670000
2832 #define ROCKCHIP_CPU_RK3568 0x35680000
2933
30
-#if IS_ENABLED(CONFIG_ROCKCHIP_CPUINFO)
34
+#if IS_REACHABLE(CONFIG_ROCKCHIP_CPUINFO)
3135
3236 extern unsigned long rockchip_soc_id;
3337
....@@ -96,6 +100,25 @@
96100 static inline bool cpu_is_px30(void) { return false; }
97101 #endif
98102
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
+
99122 #if defined(CONFIG_CPU_RV1126) || defined(CONFIG_CPU_RV1109)
100123 static inline bool cpu_is_rv1109(void)
101124 {
....@@ -147,10 +170,23 @@
147170 if (rockchip_soc_id)
148171 return (rockchip_soc_id & ROCKCHIP_CPU_MASK) == ROCKCHIP_CPU_RK3308;
149172
150
- return of_machine_is_compatible("rockchip,rk3308");
173
+ return of_machine_is_compatible("rockchip,rk3308") ||
174
+ of_machine_is_compatible("rockchip,rk3308bs");
151175 }
152176 #else
153177 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; }
154190 #endif
155191
156192 #if defined(CONFIG_CPU_RK3568)
....@@ -161,6 +197,13 @@
161197 return of_machine_is_compatible("rockchip,rk3566");
162198 }
163199
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
+
164207 static inline bool cpu_is_rk3568(void)
165208 {
166209 if (rockchip_soc_id)
....@@ -169,12 +212,15 @@
169212 }
170213 #else
171214 static inline bool cpu_is_rk3566(void) { return false; }
215
+static inline bool cpu_is_rk3567(void) { return false; }
172216 static inline bool cpu_is_rk3568(void) { return false; }
173217 #endif
174218
175219 #define ROCKCHIP_SOC_MASK (ROCKCHIP_CPU_MASK | 0xff)
176220 #define ROCKCHIP_SOC_PX30 (ROCKCHIP_CPU_PX30 | 0x00)
177221 #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)
178224 #define ROCKCHIP_SOC_RV1109 (ROCKCHIP_CPU_RV1109 | 0x00)
179225 #define ROCKCHIP_SOC_RV1126 (ROCKCHIP_CPU_RV1126 | 0x00)
180226 #define ROCKCHIP_SOC_RK3126 (ROCKCHIP_CPU_RK312X | 0x00)
....@@ -185,30 +231,42 @@
185231 #define ROCKCHIP_SOC_RK3288W (ROCKCHIP_CPU_RK3288 | 0x01)
186232 #define ROCKCHIP_SOC_RK3308 (ROCKCHIP_CPU_RK3308 | 0x00)
187233 #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)
188237 #define ROCKCHIP_SOC_RK3566 (ROCKCHIP_CPU_RK3566 | 0x00)
238
+#define ROCKCHIP_SOC_RK3567 (ROCKCHIP_CPU_RK3567 | 0x00)
189239 #define ROCKCHIP_SOC_RK3568 (ROCKCHIP_CPU_RK3568 | 0x00)
190240
191
-#define ROCKCHIP_SOC(id, ID) \
241
+#define ROCKCHIP_SOC(CPU, id, ID) \
192242 static inline bool soc_is_##id(void) \
193243 { \
244
+ if (!IS_ENABLED(CONFIG_CPU_##CPU)) \
245
+ return false; \
194246 if (rockchip_soc_id) \
195247 return ((rockchip_soc_id & ROCKCHIP_SOC_MASK) == ROCKCHIP_SOC_ ##ID); \
196248 return of_machine_is_compatible("rockchip,"#id); \
197249 }
198250
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)
213271
214272 #endif