xref: /OK3568_Linux_fs/u-boot/arch/arm/include/asm/arch-rockchip/grf_rk3568.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1 /*
2  * (C) Copyright 2020 Rockchip Electronics Co., Ltd.
3  *
4  * SPDX-License-Identifier:     GPL-2.0+
5  */
6 #ifndef _ASM_ARCH_GRF_RK3568_H
7 #define _ASM_ARCH_GRF_RK3568_H
8 
9 #include <common.h>
10 
11 struct rk3568_grf {
12 	unsigned int gpio1a_iomux_l;
13 	unsigned int gpio1a_iomux_h;
14 	unsigned int gpio1b_iomux_l;
15 	unsigned int gpio1b_iomux_h;
16 	unsigned int gpio1c_iomux_l;
17 	unsigned int gpio1c_iomux_h;
18 	unsigned int gpio1d_iomux_l;
19 	unsigned int gpio1d_iomux_h;
20 	unsigned int gpio2a_iomux_l;
21 	unsigned int gpio2a_iomux_h;
22 	unsigned int gpio2b_iomux_l;
23 	unsigned int gpio2b_iomux_h;
24 	unsigned int gpio2c_iomux_l;
25 	unsigned int gpio2c_iomux_h;
26 	unsigned int gpio2d_iomux_l;
27 	unsigned int gpio2d_iomux_h;
28 	unsigned int gpio3a_iomux_l;
29 	unsigned int gpio3a_iomux_h;
30 	unsigned int gpio3b_iomux_l;
31 	unsigned int gpio3b_iomux_h;
32 	unsigned int gpio3c_iomux_l;
33 	unsigned int gpio3c_iomux_h;
34 	unsigned int gpio3d_iomux_l;
35 	unsigned int gpio3d_iomux_h;
36 	unsigned int gpio4a_iomux_l;
37 	unsigned int gpio4a_iomux_h;
38 	unsigned int gpio4b_iomux_l;
39 	unsigned int gpio4b_iomux_h;
40 	unsigned int gpio4c_iomux_l;
41 	unsigned int gpio4c_iomux_h;
42 	unsigned int gpio4d_iomux_l;
43 	unsigned int reserved0[(0x0080 - 0x0078) / 4 - 1];
44 	unsigned int gpio1a_p;
45 	unsigned int gpio1b_p;
46 	unsigned int gpio1c_p;
47 	unsigned int gpio1d_p;
48 	unsigned int gpio2a_p;
49 	unsigned int gpio2b_p;
50 	unsigned int gpio2c_p;
51 	unsigned int gpio2d_p;
52 	unsigned int gpio3a_p;
53 	unsigned int gpio3b_p;
54 	unsigned int gpio3c_p;
55 	unsigned int gpio3d_p;
56 	unsigned int gpio4a_p;
57 	unsigned int gpio4b_p;
58 	unsigned int gpio4c_p;
59 	unsigned int gpio4d_p;
60 	unsigned int gpio1a_ie;
61 	unsigned int gpio1b_ie;
62 	unsigned int gpio1c_ie;
63 	unsigned int gpio1d_ie;
64 	unsigned int gpio2a_ie;
65 	unsigned int gpio2b_ie;
66 	unsigned int gpio2c_ie;
67 	unsigned int gpio2d_ie;
68 	unsigned int gpio3a_ie;
69 	unsigned int gpio3b_ie;
70 	unsigned int gpio3c_ie;
71 	unsigned int gpio3d_ie;
72 	unsigned int gpio4a_ie;
73 	unsigned int gpio4b_ie;
74 	unsigned int gpio4c_ie;
75 	unsigned int gpio4d_ie;
76 	unsigned int gpio1a_opd;
77 	unsigned int gpio1b_opd;
78 	unsigned int gpio1c_opd;
79 	unsigned int gpio1d_opd;
80 	unsigned int gpio2a_opd;
81 	unsigned int gpio2b_opd;
82 	unsigned int gpio2c_opd;
83 	unsigned int gpio2d_opd;
84 	unsigned int gpio3a_opd;
85 	unsigned int gpio3b_opd;
86 	unsigned int gpio3c_opd;
87 	unsigned int gpio3d_opd;
88 	unsigned int gpio4a_opd;
89 	unsigned int gpio4b_opd;
90 	unsigned int gpio4c_opd;
91 	unsigned int gpio4d_opd;
92 	unsigned int gpio1a_sus;
93 	unsigned int gpio1b_sus;
94 	unsigned int gpio1c_sus;
95 	unsigned int gpio1d_sus;
96 	unsigned int gpio2a_sus;
97 	unsigned int gpio2b_sus;
98 	unsigned int gpio2c_sus;
99 	unsigned int gpio2d_sus;
100 	unsigned int gpio3a_sus;
101 	unsigned int gpio3b_sus;
102 	unsigned int gpio3c_sus;
103 	unsigned int gpio3d_sus;
104 	unsigned int gpio4a_sus;
105 	unsigned int gpio4b_sus;
106 	unsigned int gpio4c_sus;
107 	unsigned int gpio4d_sus;
108 	unsigned int gpio1a_sl;
109 	unsigned int gpio1b_sl;
110 	unsigned int gpio1c_sl;
111 	unsigned int gpio1d_sl;
112 	unsigned int gpio2a_sl;
113 	unsigned int gpio2b_sl;
114 	unsigned int gpio2c_sl;
115 	unsigned int gpio2d_sl;
116 	unsigned int gpio3a_sl;
117 	unsigned int gpio3b_sl;
118 	unsigned int gpio3c_sl;
119 	unsigned int gpio3d_sl;
120 	unsigned int gpio4a_sl;
121 	unsigned int gpio4b_sl;
122 	unsigned int gpio4c_sl;
123 	unsigned int gpio4d_sl;
124 	unsigned int reserved1[(0x0200 - 0x01bc) / 4 - 1];
125 	unsigned int gpio1a_ds_0;
126 	unsigned int gpio1a_ds_1;
127 	unsigned int gpio1a_ds_2;
128 	unsigned int gpio1a_ds_3;
129 	unsigned int gpio1b_ds_0;
130 	unsigned int gpio1b_ds_1;
131 	unsigned int gpio1b_ds_2;
132 	unsigned int gpio1b_ds_3;
133 	unsigned int gpio1c_ds_0;
134 	unsigned int gpio1c_ds_1;
135 	unsigned int gpio1c_ds_2;
136 	unsigned int gpio1c_ds_3;
137 	unsigned int gpio1d_ds_0;
138 	unsigned int gpio1d_ds_1;
139 	unsigned int gpio1d_ds_2;
140 	unsigned int gpio1d_ds_3;
141 	unsigned int gpio2a_ds_0;
142 	unsigned int gpio2a_ds_1;
143 	unsigned int gpio2a_ds_2;
144 	unsigned int gpio2a_ds_3;
145 	unsigned int gpio2b_ds_0;
146 	unsigned int gpio2b_ds_1;
147 	unsigned int gpio2b_ds_2;
148 	unsigned int gpio2b_ds_3;
149 	unsigned int gpio2c_ds_0;
150 	unsigned int gpio2c_ds_1;
151 	unsigned int gpio2c_ds_2;
152 	unsigned int gpio2c_ds_3;
153 	unsigned int gpio2d_ds_0;
154 	unsigned int gpio2d_ds_1;
155 	unsigned int gpio2d_ds_2;
156 	unsigned int gpio2d_ds_3;
157 	unsigned int gpio3a_ds_0;
158 	unsigned int gpio3a_ds_1;
159 	unsigned int gpio3a_ds_2;
160 	unsigned int gpio3a_ds_3;
161 	unsigned int gpio3b_ds_0;
162 	unsigned int gpio3b_ds_1;
163 	unsigned int gpio3b_ds_2;
164 	unsigned int gpio3b_ds_3;
165 	unsigned int gpio3c_ds_0;
166 	unsigned int gpio3c_ds_1;
167 	unsigned int gpio3c_ds_2;
168 	unsigned int gpio3c_ds_3;
169 	unsigned int gpio3d_ds_0;
170 	unsigned int gpio3d_ds_1;
171 	unsigned int gpio3d_ds_2;
172 	unsigned int gpio3d_ds_3;
173 	unsigned int gpio4a_ds_0;
174 	unsigned int gpio4a_ds_1;
175 	unsigned int gpio4a_ds_2;
176 	unsigned int gpio4a_ds_3;
177 	unsigned int gpio4b_ds_0;
178 	unsigned int gpio4b_ds_1;
179 	unsigned int gpio4b_ds_2;
180 	unsigned int gpio4b_ds_3;
181 	unsigned int gpio4c_ds_0;
182 	unsigned int gpio4c_ds_1;
183 	unsigned int gpio4c_ds_2;
184 	unsigned int gpio4c_ds_3;
185 	unsigned int gpio4d_ds_0;
186 	unsigned int gpio4d_ds_1;
187 	unsigned int gpio4d_ds_2;
188 	unsigned int gpio4d_ds_3;
189 	unsigned int iofunc_sel0;
190 	unsigned int iofunc_sel1;
191 	unsigned int iofunc_sel2;
192 	unsigned int iofunc_sel3;
193 	unsigned int iofunc_sel4;
194 	unsigned int iofunc_sel5;
195 	unsigned int reserved2[(0x0340 - 0x0314) / 4 - 1];
196 	unsigned int vi_con0;
197 	unsigned int vi_con1;
198 	unsigned int vi_status0;
199 	unsigned int reserved3[(0x0360 - 0x0348) / 4 - 1];
200 	unsigned int vo_con0;
201 	unsigned int vo_con1;
202 	unsigned int vo_con2;
203 	unsigned int vo_con3;
204 	unsigned int reserved4[(0x0380 - 0x036c) / 4 - 1];
205 	unsigned int mac0_con0;
206 	unsigned int mac0_con1;
207 	unsigned int mac1_con0;
208 	unsigned int mac1_con1;
209 	unsigned int reserved5[(0x03a0 - 0x038c) / 4 - 1];
210 	unsigned int biu_con0;
211 	unsigned int biu_con1;
212 	unsigned int biu_con2;
213 	unsigned int reserved6[(0x03c0 - 0x03a8) / 4 - 1];
214 	unsigned int gic_con0;
215 	unsigned int gic_con1;
216 	unsigned int gic_con2;
217 	unsigned int reserved7[(0x03f0 - 0x03c8) / 4 - 1];
218 	unsigned int gpu_con0;
219 	unsigned int gpu_con1;
220 	unsigned int reserved8[(0x0400 - 0x03f4) / 4 - 1];
221 	unsigned int cpu_con0;
222 	unsigned int reserved9[(0x0420 - 0x0400) / 4 - 1];
223 	unsigned int cpu_status0;
224 	unsigned int reserved10[(0x0500 - 0x0420) / 4 - 1];
225 	unsigned int soc_con0;
226 	unsigned int soc_con1;
227 	unsigned int soc_con2;
228 	unsigned int soc_con3;
229 	unsigned int reserved11[(0x0514 - 0x050c) / 4 - 1];
230 	unsigned int soc_con5;
231 	unsigned int soc_con6;
232 	unsigned int reserved12[(0x0580 - 0x0518) / 4 - 1];
233 	unsigned int soc_status0;
234 	unsigned int reserved13[(0x05c0 - 0x0580) / 4 - 1];
235 	unsigned int ram_con;
236 	unsigned int core_ram_con;
237 	unsigned int reserved14[(0x0600 - 0x05c4) / 4 - 1];
238 	unsigned int tsadc_con;
239 	unsigned int reserved15[(0x0610 - 0x0600) / 4 - 1];
240 	unsigned int saradc_con;
241 	unsigned int reserved16[(0x0700 - 0x0610) / 4 - 1];
242 	unsigned int gpupvtpll_con0;
243 	unsigned int gpupvtpll_con1;
244 	unsigned int gpupvtpll_con2;
245 	unsigned int gpupvtpll_con3;
246 	unsigned int reserved17[(0x0740 - 0x070c) / 4 - 1];
247 	unsigned int npupvtpll_con0;
248 	unsigned int npupvtpll_con1;
249 	unsigned int npupvtpll_con2;
250 	unsigned int npupvtpll_con3;
251 	unsigned int reserved18[(0x0800 - 0x074c) / 4 - 1];
252 	unsigned int chip_id;
253 	unsigned int reserved19[(0x0840 - 0x0800) / 4 - 1];
254 	unsigned int gpio1c5_ds;
255 	unsigned int gpio2a2_ds;
256 	unsigned int gpio2b0_ds;
257 	unsigned int gpio3a0_ds;
258 	unsigned int gpio3a6_ds;
259 	unsigned int gpio4a0_ds;
260 	unsigned int reserved20[(0x0900 - 0x0854) / 4 - 1];
261 	unsigned int dmac0_con0;
262 	unsigned int dmac0_con1;
263 	unsigned int dmac0_con2;
264 	unsigned int dmac0_con3;
265 	unsigned int dmac0_con4;
266 	unsigned int dmac0_con5;
267 	unsigned int dmac0_con6;
268 	unsigned int dmac0_con7;
269 	unsigned int dmac0_con8;
270 	unsigned int dmac0_con9;
271 	unsigned int reserved21[(0x0940 - 0x0924) / 4 - 1];
272 	unsigned int dmac1_con0;
273 	unsigned int dmac1_con1;
274 	unsigned int dmac1_con2;
275 	unsigned int dmac1_con3;
276 	unsigned int dmac1_con4;
277 	unsigned int dmac1_con5;
278 	unsigned int dmac1_con6;
279 	unsigned int dmac1_con7;
280 	unsigned int dmac1_con8;
281 	unsigned int dmac1_con9;
282 };
283 
284 check_member(rk3568_grf, dmac1_con9, 0x0964);
285 
286 struct rk3568_pmugrf {
287 	unsigned int pmu_gpio0a_iomux_l;
288 	unsigned int pmu_gpio0a_iomux_h;
289 	unsigned int pmu_gpio0b_iomux_l;
290 	unsigned int pmu_gpio0b_iomux_h;
291 	unsigned int pmu_gpio0c_iomux_l;
292 	unsigned int pmu_gpio0c_iomux_h;
293 	unsigned int pmu_gpio0d_iomux_l;
294 	unsigned int reserved0[(0x0020 - 0x0018) / 4 - 1];
295 	unsigned int pmu_gpio0a_p;
296 	unsigned int pmu_gpio0b_p;
297 	unsigned int pmu_gpio0c_p;
298 	unsigned int pmu_gpio0d_p;
299 	unsigned int pmu_gpio0a_ie;
300 	unsigned int pmu_gpio0b_ie;
301 	unsigned int pmu_gpio0c_ie;
302 	unsigned int pmu_gpio0d_ie;
303 	unsigned int pmu_gpio0a_opd;
304 	unsigned int pmu_gpio0b_opd;
305 	unsigned int pmu_gpio0c_opd;
306 	unsigned int pmu_gpio0d_opd;
307 	unsigned int pmu_gpio0a_sus;
308 	unsigned int pmu_gpio0b_sus;
309 	unsigned int pmu_gpio0c_sus;
310 	unsigned int pmu_gpio0d_sus;
311 	unsigned int pmu_gpio0a_sl;
312 	unsigned int pmu_gpio0b_sl;
313 	unsigned int pmu_gpio0c_sl;
314 	unsigned int pmu_gpio0d_sl;
315 	unsigned int pmu_gpio0a_ds_0;
316 	unsigned int pmu_gpio0a_ds_1;
317 	unsigned int pmu_gpio0a_ds_2;
318 	unsigned int pmu_gpio0a_ds_3;
319 	unsigned int pmu_gpio0b_ds_0;
320 	unsigned int pmu_gpio0b_ds_1;
321 	unsigned int pmu_gpio0b_ds_2;
322 	unsigned int pmu_gpio0b_ds_3;
323 	unsigned int pmu_gpio0c_ds_0;
324 	unsigned int pmu_gpio0c_ds_1;
325 	unsigned int pmu_gpio0c_ds_2;
326 	unsigned int pmu_gpio0c_ds_3;
327 	unsigned int pmu_gpio0d_ds_0;
328 	unsigned int pmu_gpio0d_ds_1;
329 	unsigned int pmu_gpio0d_ds_2;
330 	unsigned int pmu_gpio0d_ds_3;
331 	unsigned int reserved1[(0x0100 - 0x00ac) / 4 - 1];
332 	unsigned int pmu_soc_con0;
333 	unsigned int pmu_soc_con1;
334 	unsigned int pmu_soc_con2;
335 	unsigned int pmu_soc_con3;
336 	unsigned int pmu_soc_con4;
337 	unsigned int pmu_soc_con5;
338 	unsigned int reserved2[(0x0124 - 0x0114) / 4 - 1];
339 	unsigned int pmu_io_vsel0;
340 	unsigned int pmu_io_vsel1;
341 	unsigned int pmu_io_vsel2;
342 	unsigned int reserved3[(0x0180 - 0x012c) / 4 - 1];
343 	unsigned int pmu_dll_con0;
344 	unsigned int reserved4[(0x0200 - 0x0180) / 4 - 1];
345 	unsigned int pmu_os_reg0;
346 	unsigned int pmu_os_reg1;
347 	unsigned int pmu_os_reg2;
348 	unsigned int pmu_os_reg3;
349 	unsigned int pmu_os_reg4;
350 	unsigned int pmu_os_reg5;
351 	unsigned int pmu_os_reg6;
352 	unsigned int pmu_os_reg7;
353 	unsigned int pmu_os_reg8;
354 	unsigned int pmu_os_reg9;
355 	unsigned int pmu_os_reg10;
356 	unsigned int pmu_os_reg11;
357 	unsigned int pmu_reset_function_status;
358 	unsigned int pmu_reset_function_clr;
359 	unsigned int reserved5[(0x0380 - 0x0234) / 4 - 1];
360 	unsigned int pmu_sig_detect_con;
361 	unsigned int reserved6[(0x0390 - 0x0380) / 4 - 1];
362 	unsigned int pmu_sig_detect_status;
363 	unsigned int reserved7[(0x03a0 - 0x0390) / 4 - 1];
364 	unsigned int pmu_sig_detect_status_clear;
365 	unsigned int reserved8[(0x03b0 - 0x03a0) / 4 - 1];
366 	unsigned int pmu_sdmmc_det_counter;
367 };
368 
369 check_member(rk3568_pmugrf, pmu_sdmmc_det_counter, 0x03b0);
370 
371 struct rk3568_ddrgrf {
372 	unsigned int ddr_con0;
373 	unsigned int ddr_con1;
374 	unsigned int ddr_con2;
375 	unsigned int ddr_con3;
376 	unsigned int ddr_con4;
377 	unsigned int ddr_split_con;
378 	unsigned int reserved0[(0x0020 - 0x0014) / 4 - 1];
379 	unsigned int ddr_lp_con;
380 	unsigned int reserved1[(0x0100 - 0x0020) / 4 - 1];
381 	unsigned int ddr_status0;
382 	unsigned int ddr_status1;
383 	unsigned int ddr_status2;
384 	unsigned int ddr_status3;
385 	unsigned int ddr_status4;
386 	unsigned int ddr_status5;
387 	unsigned int ddr_status6;
388 	unsigned int ddr_status7;
389 	unsigned int ddr_status8;
390 	unsigned int ddr_status9;
391 	unsigned int reserved2[(0x0130 - 0x0124) / 4 - 1];
392 	unsigned int ddr_status10;
393 	unsigned int ddr_status11;
394 	unsigned int ddr_status12;
395 };
396 
397 check_member(rk3568_ddrgrf, ddr_status12, 0x0138);
398 
399 #endif
400