Merge tag 'soc-dt-6.4' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
[linux-block.git] / arch / arm64 / boot / dts / rockchip / rk3588s.dtsi
1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2 /*
3  * Copyright (c) 2021 Rockchip Electronics Co., Ltd.
4  */
5
6 #include <dt-bindings/clock/rockchip,rk3588-cru.h>
7 #include <dt-bindings/interrupt-controller/arm-gic.h>
8 #include <dt-bindings/interrupt-controller/irq.h>
9 #include <dt-bindings/power/rk3588-power.h>
10 #include <dt-bindings/reset/rockchip,rk3588-cru.h>
11
12 / {
13         compatible = "rockchip,rk3588";
14
15         interrupt-parent = <&gic>;
16         #address-cells = <2>;
17         #size-cells = <2>;
18
19         cpus {
20                 #address-cells = <1>;
21                 #size-cells = <0>;
22
23                 cpu-map {
24                         cluster0 {
25                                 core0 {
26                                         cpu = <&cpu_l0>;
27                                 };
28                                 core1 {
29                                         cpu = <&cpu_l1>;
30                                 };
31                                 core2 {
32                                         cpu = <&cpu_l2>;
33                                 };
34                                 core3 {
35                                         cpu = <&cpu_l3>;
36                                 };
37                         };
38                         cluster1 {
39                                 core0 {
40                                         cpu = <&cpu_b0>;
41                                 };
42                                 core1 {
43                                         cpu = <&cpu_b1>;
44                                 };
45                         };
46                         cluster2 {
47                                 core0 {
48                                         cpu = <&cpu_b2>;
49                                 };
50                                 core1 {
51                                         cpu = <&cpu_b3>;
52                                 };
53                         };
54                 };
55
56                 cpu_l0: cpu@0 {
57                         device_type = "cpu";
58                         compatible = "arm,cortex-a55";
59                         reg = <0x0>;
60                         enable-method = "psci";
61                         capacity-dmips-mhz = <530>;
62                         clocks = <&scmi_clk SCMI_CLK_CPUL>;
63                         assigned-clocks = <&scmi_clk SCMI_CLK_CPUL>;
64                         assigned-clock-rates = <816000000>;
65                         cpu-idle-states = <&CPU_SLEEP>;
66                         i-cache-size = <32768>;
67                         i-cache-line-size = <64>;
68                         i-cache-sets = <128>;
69                         d-cache-size = <32768>;
70                         d-cache-line-size = <64>;
71                         d-cache-sets = <128>;
72                         next-level-cache = <&l2_cache_l0>;
73                         dynamic-power-coefficient = <228>;
74                         #cooling-cells = <2>;
75                 };
76
77                 cpu_l1: cpu@100 {
78                         device_type = "cpu";
79                         compatible = "arm,cortex-a55";
80                         reg = <0x100>;
81                         enable-method = "psci";
82                         capacity-dmips-mhz = <530>;
83                         clocks = <&scmi_clk SCMI_CLK_CPUL>;
84                         cpu-idle-states = <&CPU_SLEEP>;
85                         i-cache-size = <32768>;
86                         i-cache-line-size = <64>;
87                         i-cache-sets = <128>;
88                         d-cache-size = <32768>;
89                         d-cache-line-size = <64>;
90                         d-cache-sets = <128>;
91                         next-level-cache = <&l2_cache_l1>;
92                         dynamic-power-coefficient = <228>;
93                         #cooling-cells = <2>;
94                 };
95
96                 cpu_l2: cpu@200 {
97                         device_type = "cpu";
98                         compatible = "arm,cortex-a55";
99                         reg = <0x200>;
100                         enable-method = "psci";
101                         capacity-dmips-mhz = <530>;
102                         clocks = <&scmi_clk SCMI_CLK_CPUL>;
103                         cpu-idle-states = <&CPU_SLEEP>;
104                         i-cache-size = <32768>;
105                         i-cache-line-size = <64>;
106                         i-cache-sets = <128>;
107                         d-cache-size = <32768>;
108                         d-cache-line-size = <64>;
109                         d-cache-sets = <128>;
110                         next-level-cache = <&l2_cache_l2>;
111                         dynamic-power-coefficient = <228>;
112                         #cooling-cells = <2>;
113                 };
114
115                 cpu_l3: cpu@300 {
116                         device_type = "cpu";
117                         compatible = "arm,cortex-a55";
118                         reg = <0x300>;
119                         enable-method = "psci";
120                         capacity-dmips-mhz = <530>;
121                         clocks = <&scmi_clk SCMI_CLK_CPUL>;
122                         cpu-idle-states = <&CPU_SLEEP>;
123                         i-cache-size = <32768>;
124                         i-cache-line-size = <64>;
125                         i-cache-sets = <128>;
126                         d-cache-size = <32768>;
127                         d-cache-line-size = <64>;
128                         d-cache-sets = <128>;
129                         next-level-cache = <&l2_cache_l3>;
130                         dynamic-power-coefficient = <228>;
131                         #cooling-cells = <2>;
132                 };
133
134                 cpu_b0: cpu@400 {
135                         device_type = "cpu";
136                         compatible = "arm,cortex-a76";
137                         reg = <0x400>;
138                         enable-method = "psci";
139                         capacity-dmips-mhz = <1024>;
140                         clocks = <&scmi_clk SCMI_CLK_CPUB01>;
141                         assigned-clocks = <&scmi_clk SCMI_CLK_CPUB01>;
142                         assigned-clock-rates = <816000000>;
143                         cpu-idle-states = <&CPU_SLEEP>;
144                         i-cache-size = <65536>;
145                         i-cache-line-size = <64>;
146                         i-cache-sets = <256>;
147                         d-cache-size = <65536>;
148                         d-cache-line-size = <64>;
149                         d-cache-sets = <256>;
150                         next-level-cache = <&l2_cache_b0>;
151                         dynamic-power-coefficient = <416>;
152                         #cooling-cells = <2>;
153                 };
154
155                 cpu_b1: cpu@500 {
156                         device_type = "cpu";
157                         compatible = "arm,cortex-a76";
158                         reg = <0x500>;
159                         enable-method = "psci";
160                         capacity-dmips-mhz = <1024>;
161                         clocks = <&scmi_clk SCMI_CLK_CPUB01>;
162                         cpu-idle-states = <&CPU_SLEEP>;
163                         i-cache-size = <65536>;
164                         i-cache-line-size = <64>;
165                         i-cache-sets = <256>;
166                         d-cache-size = <65536>;
167                         d-cache-line-size = <64>;
168                         d-cache-sets = <256>;
169                         next-level-cache = <&l2_cache_b1>;
170                         dynamic-power-coefficient = <416>;
171                         #cooling-cells = <2>;
172                 };
173
174                 cpu_b2: cpu@600 {
175                         device_type = "cpu";
176                         compatible = "arm,cortex-a76";
177                         reg = <0x600>;
178                         enable-method = "psci";
179                         capacity-dmips-mhz = <1024>;
180                         clocks = <&scmi_clk SCMI_CLK_CPUB23>;
181                         assigned-clocks = <&scmi_clk SCMI_CLK_CPUB23>;
182                         assigned-clock-rates = <816000000>;
183                         cpu-idle-states = <&CPU_SLEEP>;
184                         i-cache-size = <65536>;
185                         i-cache-line-size = <64>;
186                         i-cache-sets = <256>;
187                         d-cache-size = <65536>;
188                         d-cache-line-size = <64>;
189                         d-cache-sets = <256>;
190                         next-level-cache = <&l2_cache_b2>;
191                         dynamic-power-coefficient = <416>;
192                         #cooling-cells = <2>;
193                 };
194
195                 cpu_b3: cpu@700 {
196                         device_type = "cpu";
197                         compatible = "arm,cortex-a76";
198                         reg = <0x700>;
199                         enable-method = "psci";
200                         capacity-dmips-mhz = <1024>;
201                         clocks = <&scmi_clk SCMI_CLK_CPUB23>;
202                         cpu-idle-states = <&CPU_SLEEP>;
203                         i-cache-size = <65536>;
204                         i-cache-line-size = <64>;
205                         i-cache-sets = <256>;
206                         d-cache-size = <65536>;
207                         d-cache-line-size = <64>;
208                         d-cache-sets = <256>;
209                         next-level-cache = <&l2_cache_b3>;
210                         dynamic-power-coefficient = <416>;
211                         #cooling-cells = <2>;
212                 };
213
214                 idle-states {
215                         entry-method = "psci";
216                         CPU_SLEEP: cpu-sleep {
217                                 compatible = "arm,idle-state";
218                                 local-timer-stop;
219                                 arm,psci-suspend-param = <0x0010000>;
220                                 entry-latency-us = <100>;
221                                 exit-latency-us = <120>;
222                                 min-residency-us = <1000>;
223                         };
224                 };
225
226                 l2_cache_l0: l2-cache-l0 {
227                         compatible = "cache";
228                         cache-size = <131072>;
229                         cache-line-size = <64>;
230                         cache-sets = <512>;
231                         cache-level = <2>;
232                         next-level-cache = <&l3_cache>;
233                 };
234
235                 l2_cache_l1: l2-cache-l1 {
236                         compatible = "cache";
237                         cache-size = <131072>;
238                         cache-line-size = <64>;
239                         cache-sets = <512>;
240                         cache-level = <2>;
241                         next-level-cache = <&l3_cache>;
242                 };
243
244                 l2_cache_l2: l2-cache-l2 {
245                         compatible = "cache";
246                         cache-size = <131072>;
247                         cache-line-size = <64>;
248                         cache-sets = <512>;
249                         cache-level = <2>;
250                         next-level-cache = <&l3_cache>;
251                 };
252
253                 l2_cache_l3: l2-cache-l3 {
254                         compatible = "cache";
255                         cache-size = <131072>;
256                         cache-line-size = <64>;
257                         cache-sets = <512>;
258                         cache-level = <2>;
259                         next-level-cache = <&l3_cache>;
260                 };
261
262                 l2_cache_b0: l2-cache-b0 {
263                         compatible = "cache";
264                         cache-size = <524288>;
265                         cache-line-size = <64>;
266                         cache-sets = <1024>;
267                         cache-level = <2>;
268                         next-level-cache = <&l3_cache>;
269                 };
270
271                 l2_cache_b1: l2-cache-b1 {
272                         compatible = "cache";
273                         cache-size = <524288>;
274                         cache-line-size = <64>;
275                         cache-sets = <1024>;
276                         cache-level = <2>;
277                         next-level-cache = <&l3_cache>;
278                 };
279
280                 l2_cache_b2: l2-cache-b2 {
281                         compatible = "cache";
282                         cache-size = <524288>;
283                         cache-line-size = <64>;
284                         cache-sets = <1024>;
285                         cache-level = <2>;
286                         next-level-cache = <&l3_cache>;
287                 };
288
289                 l2_cache_b3: l2-cache-b3 {
290                         compatible = "cache";
291                         cache-size = <524288>;
292                         cache-line-size = <64>;
293                         cache-sets = <1024>;
294                         cache-level = <2>;
295                         next-level-cache = <&l3_cache>;
296                 };
297
298                 l3_cache: l3-cache {
299                         compatible = "cache";
300                         cache-size = <3145728>;
301                         cache-line-size = <64>;
302                         cache-sets = <4096>;
303                         cache-level = <3>;
304                 };
305         };
306
307         firmware {
308                 optee: optee {
309                         compatible = "linaro,optee-tz";
310                         method = "smc";
311                 };
312
313                 scmi: scmi {
314                         compatible = "arm,scmi-smc";
315                         arm,smc-id = <0x82000010>;
316                         shmem = <&scmi_shmem>;
317                         #address-cells = <1>;
318                         #size-cells = <0>;
319
320                         scmi_clk: protocol@14 {
321                                 reg = <0x14>;
322                                 #clock-cells = <1>;
323                         };
324
325                         scmi_reset: protocol@16 {
326                                 reg = <0x16>;
327                                 #reset-cells = <1>;
328                         };
329                 };
330         };
331
332         pmu-a55 {
333                 compatible = "arm,cortex-a55-pmu";
334                 interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH &ppi_partition0>;
335         };
336
337         pmu-a76 {
338                 compatible = "arm,cortex-a76-pmu";
339                 interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH &ppi_partition1>;
340         };
341
342         psci {
343                 compatible = "arm,psci-1.0";
344                 method = "smc";
345         };
346
347         spll: clock-0 {
348                 compatible = "fixed-clock";
349                 clock-frequency = <702000000>;
350                 clock-output-names = "spll";
351                 #clock-cells = <0>;
352         };
353
354         timer {
355                 compatible = "arm,armv8-timer";
356                 interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_HIGH 0>,
357                              <GIC_PPI 14 IRQ_TYPE_LEVEL_HIGH 0>,
358                              <GIC_PPI 11 IRQ_TYPE_LEVEL_HIGH 0>,
359                              <GIC_PPI 10 IRQ_TYPE_LEVEL_HIGH 0>,
360                              <GIC_PPI 12 IRQ_TYPE_LEVEL_HIGH 0>;
361                 interrupt-names = "sec-phys", "phys", "virt", "hyp-phys", "hyp-virt";
362         };
363
364         xin24m: clock-1 {
365                 compatible = "fixed-clock";
366                 clock-frequency = <24000000>;
367                 clock-output-names = "xin24m";
368                 #clock-cells = <0>;
369         };
370
371         xin32k: clock-2 {
372                 compatible = "fixed-clock";
373                 clock-frequency = <32768>;
374                 clock-output-names = "xin32k";
375                 #clock-cells = <0>;
376         };
377
378         pmu_sram: sram@10f000 {
379                 compatible = "mmio-sram";
380                 reg = <0x0 0x0010f000 0x0 0x100>;
381                 ranges = <0 0x0 0x0010f000 0x100>;
382                 #address-cells = <1>;
383                 #size-cells = <1>;
384
385                 scmi_shmem: sram@0 {
386                         compatible = "arm,scmi-shmem";
387                         reg = <0x0 0x100>;
388                 };
389         };
390
391         sys_grf: syscon@fd58c000 {
392                 compatible = "rockchip,rk3588-sys-grf", "syscon";
393                 reg = <0x0 0xfd58c000 0x0 0x1000>;
394         };
395
396         php_grf: syscon@fd5b0000 {
397                 compatible = "rockchip,rk3588-php-grf", "syscon";
398                 reg = <0x0 0xfd5b0000 0x0 0x1000>;
399         };
400
401         ioc: syscon@fd5f0000 {
402                 compatible = "rockchip,rk3588-ioc", "syscon";
403                 reg = <0x0 0xfd5f0000 0x0 0x10000>;
404         };
405
406         system_sram1: sram@fd600000 {
407                 compatible = "mmio-sram";
408                 reg = <0x0 0xfd600000 0x0 0x100000>;
409                 ranges = <0x0 0x0 0xfd600000 0x100000>;
410                 #address-cells = <1>;
411                 #size-cells = <1>;
412         };
413
414         cru: clock-controller@fd7c0000 {
415                 compatible = "rockchip,rk3588-cru";
416                 reg = <0x0 0xfd7c0000 0x0 0x5c000>;
417                 assigned-clocks =
418                         <&cru PLL_PPLL>, <&cru PLL_AUPLL>,
419                         <&cru PLL_NPLL>, <&cru PLL_GPLL>,
420                         <&cru ACLK_CENTER_ROOT>,
421                         <&cru HCLK_CENTER_ROOT>, <&cru ACLK_CENTER_LOW_ROOT>,
422                         <&cru ACLK_TOP_ROOT>, <&cru PCLK_TOP_ROOT>,
423                         <&cru ACLK_LOW_TOP_ROOT>, <&cru PCLK_PMU0_ROOT>,
424                         <&cru HCLK_PMU_CM0_ROOT>, <&cru ACLK_VOP>,
425                         <&cru ACLK_BUS_ROOT>, <&cru CLK_150M_SRC>,
426                         <&cru CLK_GPU>;
427                 assigned-clock-rates =
428                         <1100000000>, <786432000>,
429                         <850000000>, <1188000000>,
430                         <702000000>,
431                         <400000000>, <500000000>,
432                         <800000000>, <100000000>,
433                         <400000000>, <100000000>,
434                         <200000000>, <500000000>,
435                         <375000000>, <150000000>,
436                         <200000000>;
437                 rockchip,grf = <&php_grf>;
438                 #clock-cells = <1>;
439                 #reset-cells = <1>;
440         };
441
442         i2c0: i2c@fd880000 {
443                 compatible = "rockchip,rk3588-i2c", "rockchip,rk3399-i2c";
444                 reg = <0x0 0xfd880000 0x0 0x1000>;
445                 interrupts = <GIC_SPI 317 IRQ_TYPE_LEVEL_HIGH 0>;
446                 clocks = <&cru CLK_I2C0>, <&cru PCLK_I2C0>;
447                 clock-names = "i2c", "pclk";
448                 pinctrl-0 = <&i2c0m0_xfer>;
449                 pinctrl-names = "default";
450                 #address-cells = <1>;
451                 #size-cells = <0>;
452                 status = "disabled";
453         };
454
455         uart0: serial@fd890000 {
456                 compatible = "rockchip,rk3588-uart", "snps,dw-apb-uart";
457                 reg = <0x0 0xfd890000 0x0 0x100>;
458                 interrupts = <GIC_SPI 331 IRQ_TYPE_LEVEL_HIGH 0>;
459                 clocks = <&cru SCLK_UART0>, <&cru PCLK_UART0>;
460                 clock-names = "baudclk", "apb_pclk";
461                 dmas = <&dmac0 6>, <&dmac0 7>;
462                 dma-names = "tx", "rx";
463                 pinctrl-0 = <&uart0m1_xfer>;
464                 pinctrl-names = "default";
465                 reg-shift = <2>;
466                 reg-io-width = <4>;
467                 status = "disabled";
468         };
469
470         pwm0: pwm@fd8b0000 {
471                 compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm";
472                 reg = <0x0 0xfd8b0000 0x0 0x10>;
473                 clocks = <&cru CLK_PMU1PWM>, <&cru PCLK_PMU1PWM>;
474                 clock-names = "pwm", "pclk";
475                 pinctrl-0 = <&pwm0m0_pins>;
476                 pinctrl-names = "default";
477                 #pwm-cells = <3>;
478                 status = "disabled";
479         };
480
481         pwm1: pwm@fd8b0010 {
482                 compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm";
483                 reg = <0x0 0xfd8b0010 0x0 0x10>;
484                 clocks = <&cru CLK_PMU1PWM>, <&cru PCLK_PMU1PWM>;
485                 clock-names = "pwm", "pclk";
486                 pinctrl-0 = <&pwm1m0_pins>;
487                 pinctrl-names = "default";
488                 #pwm-cells = <3>;
489                 status = "disabled";
490         };
491
492         pwm2: pwm@fd8b0020 {
493                 compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm";
494                 reg = <0x0 0xfd8b0020 0x0 0x10>;
495                 clocks = <&cru CLK_PMU1PWM>, <&cru PCLK_PMU1PWM>;
496                 clock-names = "pwm", "pclk";
497                 pinctrl-0 = <&pwm2m0_pins>;
498                 pinctrl-names = "default";
499                 #pwm-cells = <3>;
500                 status = "disabled";
501         };
502
503         pwm3: pwm@fd8b0030 {
504                 compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm";
505                 reg = <0x0 0xfd8b0030 0x0 0x10>;
506                 clocks = <&cru CLK_PMU1PWM>, <&cru PCLK_PMU1PWM>;
507                 clock-names = "pwm", "pclk";
508                 pinctrl-0 = <&pwm3m0_pins>;
509                 pinctrl-names = "default";
510                 #pwm-cells = <3>;
511                 status = "disabled";
512         };
513
514         pmu: power-management@fd8d8000 {
515                 compatible = "rockchip,rk3588-pmu", "syscon", "simple-mfd";
516                 reg = <0x0 0xfd8d8000 0x0 0x400>;
517
518                 power: power-controller {
519                         compatible = "rockchip,rk3588-power-controller";
520                         #address-cells = <1>;
521                         #power-domain-cells = <1>;
522                         #size-cells = <0>;
523                         status = "okay";
524
525                         /* These power domains are grouped by VD_NPU */
526                         power-domain@RK3588_PD_NPU {
527                                 reg = <RK3588_PD_NPU>;
528                                 #power-domain-cells = <0>;
529                                 #address-cells = <1>;
530                                 #size-cells = <0>;
531
532                                 power-domain@RK3588_PD_NPUTOP {
533                                         reg = <RK3588_PD_NPUTOP>;
534                                         clocks = <&cru HCLK_NPU_ROOT>,
535                                                  <&cru PCLK_NPU_ROOT>,
536                                                  <&cru CLK_NPU_DSU0>,
537                                                  <&cru HCLK_NPU_CM0_ROOT>;
538                                         pm_qos = <&qos_npu0_mwr>,
539                                                  <&qos_npu0_mro>,
540                                                  <&qos_mcu_npu>;
541                                         #power-domain-cells = <0>;
542                                         #address-cells = <1>;
543                                         #size-cells = <0>;
544
545                                         power-domain@RK3588_PD_NPU1 {
546                                                 reg = <RK3588_PD_NPU1>;
547                                                 clocks = <&cru HCLK_NPU_ROOT>,
548                                                          <&cru PCLK_NPU_ROOT>,
549                                                          <&cru CLK_NPU_DSU0>;
550                                                 pm_qos = <&qos_npu1>;
551                                                 #power-domain-cells = <0>;
552                                         };
553                                         power-domain@RK3588_PD_NPU2 {
554                                                 reg = <RK3588_PD_NPU2>;
555                                                 clocks = <&cru HCLK_NPU_ROOT>,
556                                                          <&cru PCLK_NPU_ROOT>,
557                                                          <&cru CLK_NPU_DSU0>;
558                                                 pm_qos = <&qos_npu2>;
559                                                 #power-domain-cells = <0>;
560                                         };
561                                 };
562                         };
563                         /* These power domains are grouped by VD_GPU */
564                         power-domain@RK3588_PD_GPU {
565                                 reg = <RK3588_PD_GPU>;
566                                 clocks = <&cru CLK_GPU>,
567                                          <&cru CLK_GPU_COREGROUP>,
568                                          <&cru CLK_GPU_STACKS>;
569                                 pm_qos = <&qos_gpu_m0>,
570                                          <&qos_gpu_m1>,
571                                          <&qos_gpu_m2>,
572                                          <&qos_gpu_m3>;
573                                 #power-domain-cells = <0>;
574                         };
575                         /* These power domains are grouped by VD_VCODEC */
576                         power-domain@RK3588_PD_VCODEC {
577                                 reg = <RK3588_PD_VCODEC>;
578                                 #address-cells = <1>;
579                                 #size-cells = <0>;
580                                 #power-domain-cells = <0>;
581
582                                 power-domain@RK3588_PD_RKVDEC0 {
583                                         reg = <RK3588_PD_RKVDEC0>;
584                                         clocks = <&cru HCLK_RKVDEC0>,
585                                                  <&cru HCLK_VDPU_ROOT>,
586                                                  <&cru ACLK_VDPU_ROOT>,
587                                                  <&cru ACLK_RKVDEC0>,
588                                                  <&cru ACLK_RKVDEC_CCU>;
589                                         pm_qos = <&qos_rkvdec0>;
590                                         #power-domain-cells = <0>;
591                                 };
592                                 power-domain@RK3588_PD_RKVDEC1 {
593                                         reg = <RK3588_PD_RKVDEC1>;
594                                         clocks = <&cru HCLK_RKVDEC1>,
595                                                  <&cru HCLK_VDPU_ROOT>,
596                                                  <&cru ACLK_VDPU_ROOT>,
597                                                  <&cru ACLK_RKVDEC1>;
598                                         pm_qos = <&qos_rkvdec1>;
599                                         #power-domain-cells = <0>;
600                                 };
601                                 power-domain@RK3588_PD_VENC0 {
602                                         reg = <RK3588_PD_VENC0>;
603                                         clocks = <&cru HCLK_RKVENC0>,
604                                                  <&cru ACLK_RKVENC0>;
605                                         pm_qos = <&qos_rkvenc0_m0ro>,
606                                                  <&qos_rkvenc0_m1ro>,
607                                                  <&qos_rkvenc0_m2wo>;
608                                         #address-cells = <1>;
609                                         #size-cells = <0>;
610                                         #power-domain-cells = <0>;
611
612                                         power-domain@RK3588_PD_VENC1 {
613                                                 reg = <RK3588_PD_VENC1>;
614                                                 clocks = <&cru HCLK_RKVENC1>,
615                                                          <&cru HCLK_RKVENC0>,
616                                                          <&cru ACLK_RKVENC0>,
617                                                          <&cru ACLK_RKVENC1>;
618                                                 pm_qos = <&qos_rkvenc1_m0ro>,
619                                                          <&qos_rkvenc1_m1ro>,
620                                                          <&qos_rkvenc1_m2wo>;
621                                                 #power-domain-cells = <0>;
622                                         };
623                                 };
624                         };
625                         /* These power domains are grouped by VD_LOGIC */
626                         power-domain@RK3588_PD_VDPU {
627                                 reg = <RK3588_PD_VDPU>;
628                                 clocks = <&cru HCLK_VDPU_ROOT>,
629                                          <&cru ACLK_VDPU_LOW_ROOT>,
630                                          <&cru ACLK_VDPU_ROOT>,
631                                          <&cru ACLK_JPEG_DECODER_ROOT>,
632                                          <&cru ACLK_IEP2P0>,
633                                          <&cru HCLK_IEP2P0>,
634                                          <&cru ACLK_JPEG_ENCODER0>,
635                                          <&cru HCLK_JPEG_ENCODER0>,
636                                          <&cru ACLK_JPEG_ENCODER1>,
637                                          <&cru HCLK_JPEG_ENCODER1>,
638                                          <&cru ACLK_JPEG_ENCODER2>,
639                                          <&cru HCLK_JPEG_ENCODER2>,
640                                          <&cru ACLK_JPEG_ENCODER3>,
641                                          <&cru HCLK_JPEG_ENCODER3>,
642                                          <&cru ACLK_JPEG_DECODER>,
643                                          <&cru HCLK_JPEG_DECODER>,
644                                          <&cru ACLK_RGA2>,
645                                          <&cru HCLK_RGA2>;
646                                 pm_qos = <&qos_iep>,
647                                          <&qos_jpeg_dec>,
648                                          <&qos_jpeg_enc0>,
649                                          <&qos_jpeg_enc1>,
650                                          <&qos_jpeg_enc2>,
651                                          <&qos_jpeg_enc3>,
652                                          <&qos_rga2_mro>,
653                                          <&qos_rga2_mwo>;
654                                 #address-cells = <1>;
655                                 #size-cells = <0>;
656                                 #power-domain-cells = <0>;
657
658
659                                 power-domain@RK3588_PD_AV1 {
660                                         reg = <RK3588_PD_AV1>;
661                                         clocks = <&cru PCLK_AV1>,
662                                                  <&cru ACLK_AV1>,
663                                                  <&cru HCLK_VDPU_ROOT>;
664                                         pm_qos = <&qos_av1>;
665                                         #power-domain-cells = <0>;
666                                 };
667                                 power-domain@RK3588_PD_RKVDEC0 {
668                                         reg = <RK3588_PD_RKVDEC0>;
669                                         clocks = <&cru HCLK_RKVDEC0>,
670                                                  <&cru HCLK_VDPU_ROOT>,
671                                                  <&cru ACLK_VDPU_ROOT>,
672                                                  <&cru ACLK_RKVDEC0>;
673                                         pm_qos = <&qos_rkvdec0>;
674                                         #power-domain-cells = <0>;
675                                 };
676                                 power-domain@RK3588_PD_RKVDEC1 {
677                                         reg = <RK3588_PD_RKVDEC1>;
678                                         clocks = <&cru HCLK_RKVDEC1>,
679                                                  <&cru HCLK_VDPU_ROOT>,
680                                                  <&cru ACLK_VDPU_ROOT>;
681                                         pm_qos = <&qos_rkvdec1>;
682                                         #power-domain-cells = <0>;
683                                 };
684                                 power-domain@RK3588_PD_RGA30 {
685                                         reg = <RK3588_PD_RGA30>;
686                                         clocks = <&cru ACLK_RGA3_0>,
687                                                  <&cru HCLK_RGA3_0>;
688                                         pm_qos = <&qos_rga3_0>;
689                                         #power-domain-cells = <0>;
690                                 };
691                         };
692                         power-domain@RK3588_PD_VOP {
693                                 reg = <RK3588_PD_VOP>;
694                                 clocks = <&cru PCLK_VOP_ROOT>,
695                                          <&cru HCLK_VOP_ROOT>,
696                                          <&cru ACLK_VOP>;
697                                 pm_qos = <&qos_vop_m0>,
698                                          <&qos_vop_m1>;
699                                 #address-cells = <1>;
700                                 #size-cells = <0>;
701                                 #power-domain-cells = <0>;
702
703                                 power-domain@RK3588_PD_VO0 {
704                                         reg = <RK3588_PD_VO0>;
705                                         clocks = <&cru PCLK_VO0_ROOT>,
706                                                  <&cru PCLK_VO0_S_ROOT>,
707                                                  <&cru HCLK_VO0_S_ROOT>,
708                                                  <&cru ACLK_VO0_ROOT>,
709                                                  <&cru HCLK_HDCP0>,
710                                                  <&cru ACLK_HDCP0>,
711                                                  <&cru HCLK_VOP_ROOT>;
712                                         pm_qos = <&qos_hdcp0>;
713                                         #power-domain-cells = <0>;
714                                 };
715                         };
716                         power-domain@RK3588_PD_VO1 {
717                                 reg = <RK3588_PD_VO1>;
718                                 clocks = <&cru PCLK_VO1_ROOT>,
719                                          <&cru PCLK_VO1_S_ROOT>,
720                                          <&cru HCLK_VO1_S_ROOT>,
721                                          <&cru HCLK_HDCP1>,
722                                          <&cru ACLK_HDCP1>,
723                                          <&cru ACLK_HDMIRX_ROOT>,
724                                          <&cru HCLK_VO1USB_TOP_ROOT>;
725                                 pm_qos = <&qos_hdcp1>,
726                                          <&qos_hdmirx>;
727                                 #power-domain-cells = <0>;
728                         };
729                         power-domain@RK3588_PD_VI {
730                                 reg = <RK3588_PD_VI>;
731                                 clocks = <&cru HCLK_VI_ROOT>,
732                                          <&cru PCLK_VI_ROOT>,
733                                          <&cru HCLK_ISP0>,
734                                          <&cru ACLK_ISP0>,
735                                          <&cru HCLK_VICAP>,
736                                          <&cru ACLK_VICAP>;
737                                 pm_qos = <&qos_isp0_mro>,
738                                          <&qos_isp0_mwo>,
739                                          <&qos_vicap_m0>,
740                                          <&qos_vicap_m1>;
741                                 #address-cells = <1>;
742                                 #size-cells = <0>;
743                                 #power-domain-cells = <0>;
744
745                                 power-domain@RK3588_PD_ISP1 {
746                                         reg = <RK3588_PD_ISP1>;
747                                         clocks = <&cru HCLK_ISP1>,
748                                                  <&cru ACLK_ISP1>,
749                                                  <&cru HCLK_VI_ROOT>,
750                                                  <&cru PCLK_VI_ROOT>;
751                                         pm_qos = <&qos_isp1_mwo>,
752                                                  <&qos_isp1_mro>;
753                                         #power-domain-cells = <0>;
754                                 };
755                                 power-domain@RK3588_PD_FEC {
756                                         reg = <RK3588_PD_FEC>;
757                                         clocks = <&cru HCLK_FISHEYE0>,
758                                                  <&cru ACLK_FISHEYE0>,
759                                                  <&cru HCLK_FISHEYE1>,
760                                                  <&cru ACLK_FISHEYE1>,
761                                                  <&cru PCLK_VI_ROOT>;
762                                         pm_qos = <&qos_fisheye0>,
763                                                  <&qos_fisheye1>;
764                                         #power-domain-cells = <0>;
765                                 };
766                         };
767                         power-domain@RK3588_PD_RGA31 {
768                                 reg = <RK3588_PD_RGA31>;
769                                 clocks = <&cru HCLK_RGA3_1>,
770                                          <&cru ACLK_RGA3_1>;
771                                 pm_qos = <&qos_rga3_1>;
772                                 #power-domain-cells = <0>;
773                         };
774                         power-domain@RK3588_PD_USB {
775                                 reg = <RK3588_PD_USB>;
776                                 clocks = <&cru PCLK_PHP_ROOT>,
777                                          <&cru ACLK_USB_ROOT>,
778                                          <&cru HCLK_USB_ROOT>,
779                                          <&cru HCLK_HOST0>,
780                                          <&cru HCLK_HOST_ARB0>,
781                                          <&cru HCLK_HOST1>,
782                                          <&cru HCLK_HOST_ARB1>;
783                                 pm_qos = <&qos_usb3_0>,
784                                          <&qos_usb3_1>,
785                                          <&qos_usb2host_0>,
786                                          <&qos_usb2host_1>;
787                                 #power-domain-cells = <0>;
788                         };
789                         power-domain@RK3588_PD_GMAC {
790                                 reg = <RK3588_PD_GMAC>;
791                                 clocks = <&cru PCLK_PHP_ROOT>,
792                                          <&cru ACLK_PCIE_ROOT>,
793                                          <&cru ACLK_PHP_ROOT>;
794                                 #power-domain-cells = <0>;
795                         };
796                         power-domain@RK3588_PD_PCIE {
797                                 reg = <RK3588_PD_PCIE>;
798                                 clocks = <&cru PCLK_PHP_ROOT>,
799                                          <&cru ACLK_PCIE_ROOT>,
800                                          <&cru ACLK_PHP_ROOT>;
801                                 #power-domain-cells = <0>;
802                         };
803                         power-domain@RK3588_PD_SDIO {
804                                 reg = <RK3588_PD_SDIO>;
805                                 clocks = <&cru HCLK_SDIO>,
806                                          <&cru HCLK_NVM_ROOT>;
807                                 pm_qos = <&qos_sdio>;
808                                 #power-domain-cells = <0>;
809                         };
810                         power-domain@RK3588_PD_AUDIO {
811                                 reg = <RK3588_PD_AUDIO>;
812                                 clocks = <&cru HCLK_AUDIO_ROOT>,
813                                          <&cru PCLK_AUDIO_ROOT>;
814                                 #power-domain-cells = <0>;
815                         };
816                         power-domain@RK3588_PD_SDMMC {
817                                 reg = <RK3588_PD_SDMMC>;
818                                 pm_qos = <&qos_sdmmc>;
819                                 #power-domain-cells = <0>;
820                         };
821                 };
822         };
823
824         i2s4_8ch: i2s@fddc0000 {
825                 compatible = "rockchip,rk3588-i2s-tdm";
826                 reg = <0x0 0xfddc0000 0x0 0x1000>;
827                 interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH 0>;
828                 clocks = <&cru MCLK_I2S4_8CH_TX>, <&cru MCLK_I2S4_8CH_TX>, <&cru HCLK_I2S4_8CH>;
829                 clock-names = "mclk_tx", "mclk_rx", "hclk";
830                 assigned-clocks = <&cru CLK_I2S4_8CH_TX_SRC>;
831                 assigned-clock-parents = <&cru PLL_AUPLL>;
832                 dmas = <&dmac2 0>;
833                 dma-names = "tx";
834                 power-domains = <&power RK3588_PD_VO0>;
835                 resets = <&cru SRST_M_I2S4_8CH_TX>;
836                 reset-names = "tx-m";
837                 #sound-dai-cells = <0>;
838                 status = "disabled";
839         };
840
841         i2s5_8ch: i2s@fddf0000 {
842                 compatible = "rockchip,rk3588-i2s-tdm";
843                 reg = <0x0 0xfddf0000 0x0 0x1000>;
844                 interrupts = <GIC_SPI 185 IRQ_TYPE_LEVEL_HIGH 0>;
845                 clocks = <&cru MCLK_I2S5_8CH_TX>, <&cru MCLK_I2S5_8CH_TX>, <&cru HCLK_I2S5_8CH>;
846                 clock-names = "mclk_tx", "mclk_rx", "hclk";
847                 assigned-clocks = <&cru CLK_I2S5_8CH_TX_SRC>;
848                 assigned-clock-parents = <&cru PLL_AUPLL>;
849                 dmas = <&dmac2 2>;
850                 dma-names = "tx";
851                 power-domains = <&power RK3588_PD_VO1>;
852                 resets = <&cru SRST_M_I2S5_8CH_TX>;
853                 reset-names = "tx-m";
854                 #sound-dai-cells = <0>;
855                 status = "disabled";
856         };
857
858         i2s9_8ch: i2s@fddfc000 {
859                 compatible = "rockchip,rk3588-i2s-tdm";
860                 reg = <0x0 0xfddfc000 0x0 0x1000>;
861                 interrupts = <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH 0>;
862                 clocks = <&cru MCLK_I2S9_8CH_RX>, <&cru MCLK_I2S9_8CH_RX>, <&cru HCLK_I2S9_8CH>;
863                 clock-names = "mclk_tx", "mclk_rx", "hclk";
864                 assigned-clocks = <&cru CLK_I2S9_8CH_RX_SRC>;
865                 assigned-clock-parents = <&cru PLL_AUPLL>;
866                 dmas = <&dmac2 23>;
867                 dma-names = "rx";
868                 power-domains = <&power RK3588_PD_VO1>;
869                 resets = <&cru SRST_M_I2S9_8CH_RX>;
870                 reset-names = "rx-m";
871                 #sound-dai-cells = <0>;
872                 status = "disabled";
873         };
874
875         qos_gpu_m0: qos@fdf35000 {
876                 compatible = "rockchip,rk3588-qos", "syscon";
877                 reg = <0x0 0xfdf35000 0x0 0x20>;
878         };
879
880         qos_gpu_m1: qos@fdf35200 {
881                 compatible = "rockchip,rk3588-qos", "syscon";
882                 reg = <0x0 0xfdf35200 0x0 0x20>;
883         };
884
885         qos_gpu_m2: qos@fdf35400 {
886                 compatible = "rockchip,rk3588-qos", "syscon";
887                 reg = <0x0 0xfdf35400 0x0 0x20>;
888         };
889
890         qos_gpu_m3: qos@fdf35600 {
891                 compatible = "rockchip,rk3588-qos", "syscon";
892                 reg = <0x0 0xfdf35600 0x0 0x20>;
893         };
894
895         qos_rga3_1: qos@fdf36000 {
896                 compatible = "rockchip,rk3588-qos", "syscon";
897                 reg = <0x0 0xfdf36000 0x0 0x20>;
898         };
899
900         qos_sdio: qos@fdf39000 {
901                 compatible = "rockchip,rk3588-qos", "syscon";
902                 reg = <0x0 0xfdf39000 0x0 0x20>;
903         };
904
905         qos_sdmmc: qos@fdf3d800 {
906                 compatible = "rockchip,rk3588-qos", "syscon";
907                 reg = <0x0 0xfdf3d800 0x0 0x20>;
908         };
909
910         qos_usb3_1: qos@fdf3e000 {
911                 compatible = "rockchip,rk3588-qos", "syscon";
912                 reg = <0x0 0xfdf3e000 0x0 0x20>;
913         };
914
915         qos_usb3_0: qos@fdf3e200 {
916                 compatible = "rockchip,rk3588-qos", "syscon";
917                 reg = <0x0 0xfdf3e200 0x0 0x20>;
918         };
919
920         qos_usb2host_0: qos@fdf3e400 {
921                 compatible = "rockchip,rk3588-qos", "syscon";
922                 reg = <0x0 0xfdf3e400 0x0 0x20>;
923         };
924
925         qos_usb2host_1: qos@fdf3e600 {
926                 compatible = "rockchip,rk3588-qos", "syscon";
927                 reg = <0x0 0xfdf3e600 0x0 0x20>;
928         };
929
930         qos_fisheye0: qos@fdf40000 {
931                 compatible = "rockchip,rk3588-qos", "syscon";
932                 reg = <0x0 0xfdf40000 0x0 0x20>;
933         };
934
935         qos_fisheye1: qos@fdf40200 {
936                 compatible = "rockchip,rk3588-qos", "syscon";
937                 reg = <0x0 0xfdf40200 0x0 0x20>;
938         };
939
940         qos_isp0_mro: qos@fdf40400 {
941                 compatible = "rockchip,rk3588-qos", "syscon";
942                 reg = <0x0 0xfdf40400 0x0 0x20>;
943         };
944
945         qos_isp0_mwo: qos@fdf40500 {
946                 compatible = "rockchip,rk3588-qos", "syscon";
947                 reg = <0x0 0xfdf40500 0x0 0x20>;
948         };
949
950         qos_vicap_m0: qos@fdf40600 {
951                 compatible = "rockchip,rk3588-qos", "syscon";
952                 reg = <0x0 0xfdf40600 0x0 0x20>;
953         };
954
955         qos_vicap_m1: qos@fdf40800 {
956                 compatible = "rockchip,rk3588-qos", "syscon";
957                 reg = <0x0 0xfdf40800 0x0 0x20>;
958         };
959
960         qos_isp1_mwo: qos@fdf41000 {
961                 compatible = "rockchip,rk3588-qos", "syscon";
962                 reg = <0x0 0xfdf41000 0x0 0x20>;
963         };
964
965         qos_isp1_mro: qos@fdf41100 {
966                 compatible = "rockchip,rk3588-qos", "syscon";
967                 reg = <0x0 0xfdf41100 0x0 0x20>;
968         };
969
970         qos_rkvenc0_m0ro: qos@fdf60000 {
971                 compatible = "rockchip,rk3588-qos", "syscon";
972                 reg = <0x0 0xfdf60000 0x0 0x20>;
973         };
974
975         qos_rkvenc0_m1ro: qos@fdf60200 {
976                 compatible = "rockchip,rk3588-qos", "syscon";
977                 reg = <0x0 0xfdf60200 0x0 0x20>;
978         };
979
980         qos_rkvenc0_m2wo: qos@fdf60400 {
981                 compatible = "rockchip,rk3588-qos", "syscon";
982                 reg = <0x0 0xfdf60400 0x0 0x20>;
983         };
984
985         qos_rkvenc1_m0ro: qos@fdf61000 {
986                 compatible = "rockchip,rk3588-qos", "syscon";
987                 reg = <0x0 0xfdf61000 0x0 0x20>;
988         };
989
990         qos_rkvenc1_m1ro: qos@fdf61200 {
991                 compatible = "rockchip,rk3588-qos", "syscon";
992                 reg = <0x0 0xfdf61200 0x0 0x20>;
993         };
994
995         qos_rkvenc1_m2wo: qos@fdf61400 {
996                 compatible = "rockchip,rk3588-qos", "syscon";
997                 reg = <0x0 0xfdf61400 0x0 0x20>;
998         };
999
1000         qos_rkvdec0: qos@fdf62000 {
1001                 compatible = "rockchip,rk3588-qos", "syscon";
1002                 reg = <0x0 0xfdf62000 0x0 0x20>;
1003         };
1004
1005         qos_rkvdec1: qos@fdf63000 {
1006                 compatible = "rockchip,rk3588-qos", "syscon";
1007                 reg = <0x0 0xfdf63000 0x0 0x20>;
1008         };
1009
1010         qos_av1: qos@fdf64000 {
1011                 compatible = "rockchip,rk3588-qos", "syscon";
1012                 reg = <0x0 0xfdf64000 0x0 0x20>;
1013         };
1014
1015         qos_iep: qos@fdf66000 {
1016                 compatible = "rockchip,rk3588-qos", "syscon";
1017                 reg = <0x0 0xfdf66000 0x0 0x20>;
1018         };
1019
1020         qos_jpeg_dec: qos@fdf66200 {
1021                 compatible = "rockchip,rk3588-qos", "syscon";
1022                 reg = <0x0 0xfdf66200 0x0 0x20>;
1023         };
1024
1025         qos_jpeg_enc0: qos@fdf66400 {
1026                 compatible = "rockchip,rk3588-qos", "syscon";
1027                 reg = <0x0 0xfdf66400 0x0 0x20>;
1028         };
1029
1030         qos_jpeg_enc1: qos@fdf66600 {
1031                 compatible = "rockchip,rk3588-qos", "syscon";
1032                 reg = <0x0 0xfdf66600 0x0 0x20>;
1033         };
1034
1035         qos_jpeg_enc2: qos@fdf66800 {
1036                 compatible = "rockchip,rk3588-qos", "syscon";
1037                 reg = <0x0 0xfdf66800 0x0 0x20>;
1038         };
1039
1040         qos_jpeg_enc3: qos@fdf66a00 {
1041                 compatible = "rockchip,rk3588-qos", "syscon";
1042                 reg = <0x0 0xfdf66a00 0x0 0x20>;
1043         };
1044
1045         qos_rga2_mro: qos@fdf66c00 {
1046                 compatible = "rockchip,rk3588-qos", "syscon";
1047                 reg = <0x0 0xfdf66c00 0x0 0x20>;
1048         };
1049
1050         qos_rga2_mwo: qos@fdf66e00 {
1051                 compatible = "rockchip,rk3588-qos", "syscon";
1052                 reg = <0x0 0xfdf66e00 0x0 0x20>;
1053         };
1054
1055         qos_rga3_0: qos@fdf67000 {
1056                 compatible = "rockchip,rk3588-qos", "syscon";
1057                 reg = <0x0 0xfdf67000 0x0 0x20>;
1058         };
1059
1060         qos_vdpu: qos@fdf67200 {
1061                 compatible = "rockchip,rk3588-qos", "syscon";
1062                 reg = <0x0 0xfdf67200 0x0 0x20>;
1063         };
1064
1065         qos_npu1: qos@fdf70000 {
1066                 compatible = "rockchip,rk3588-qos", "syscon";
1067                 reg = <0x0 0xfdf70000 0x0 0x20>;
1068         };
1069
1070         qos_npu2: qos@fdf71000 {
1071                 compatible = "rockchip,rk3588-qos", "syscon";
1072                 reg = <0x0 0xfdf71000 0x0 0x20>;
1073         };
1074
1075         qos_npu0_mwr: qos@fdf72000 {
1076                 compatible = "rockchip,rk3588-qos", "syscon";
1077                 reg = <0x0 0xfdf72000 0x0 0x20>;
1078         };
1079
1080         qos_npu0_mro: qos@fdf72200 {
1081                 compatible = "rockchip,rk3588-qos", "syscon";
1082                 reg = <0x0 0xfdf72200 0x0 0x20>;
1083         };
1084
1085         qos_mcu_npu: qos@fdf72400 {
1086                 compatible = "rockchip,rk3588-qos", "syscon";
1087                 reg = <0x0 0xfdf72400 0x0 0x20>;
1088         };
1089
1090         qos_hdcp0: qos@fdf80000 {
1091                 compatible = "rockchip,rk3588-qos", "syscon";
1092                 reg = <0x0 0xfdf80000 0x0 0x20>;
1093         };
1094
1095         qos_hdcp1: qos@fdf81000 {
1096                 compatible = "rockchip,rk3588-qos", "syscon";
1097                 reg = <0x0 0xfdf81000 0x0 0x20>;
1098         };
1099
1100         qos_hdmirx: qos@fdf81200 {
1101                 compatible = "rockchip,rk3588-qos", "syscon";
1102                 reg = <0x0 0xfdf81200 0x0 0x20>;
1103         };
1104
1105         qos_vop_m0: qos@fdf82000 {
1106                 compatible = "rockchip,rk3588-qos", "syscon";
1107                 reg = <0x0 0xfdf82000 0x0 0x20>;
1108         };
1109
1110         qos_vop_m1: qos@fdf82200 {
1111                 compatible = "rockchip,rk3588-qos", "syscon";
1112                 reg = <0x0 0xfdf82200 0x0 0x20>;
1113         };
1114
1115         gmac1: ethernet@fe1c0000 {
1116                 compatible = "rockchip,rk3588-gmac", "snps,dwmac-4.20a";
1117                 reg = <0x0 0xfe1c0000 0x0 0x10000>;
1118                 interrupts = <GIC_SPI 234 IRQ_TYPE_LEVEL_HIGH 0>,
1119                              <GIC_SPI 233 IRQ_TYPE_LEVEL_HIGH 0>;
1120                 interrupt-names = "macirq", "eth_wake_irq";
1121                 clocks = <&cru CLK_GMAC_125M>, <&cru CLK_GMAC_50M>,
1122                          <&cru PCLK_GMAC1>, <&cru ACLK_GMAC1>,
1123                          <&cru CLK_GMAC1_PTP_REF>;
1124                 clock-names = "stmmaceth", "clk_mac_ref",
1125                               "pclk_mac", "aclk_mac",
1126                               "ptp_ref";
1127                 power-domains = <&power RK3588_PD_GMAC>;
1128                 resets = <&cru SRST_A_GMAC1>;
1129                 reset-names = "stmmaceth";
1130                 rockchip,grf = <&sys_grf>;
1131                 rockchip,php-grf = <&php_grf>;
1132                 snps,axi-config = <&gmac1_stmmac_axi_setup>;
1133                 snps,mixed-burst;
1134                 snps,mtl-rx-config = <&gmac1_mtl_rx_setup>;
1135                 snps,mtl-tx-config = <&gmac1_mtl_tx_setup>;
1136                 snps,tso;
1137                 status = "disabled";
1138
1139                 mdio1: mdio {
1140                         compatible = "snps,dwmac-mdio";
1141                         #address-cells = <0x1>;
1142                         #size-cells = <0x0>;
1143                 };
1144
1145                 gmac1_stmmac_axi_setup: stmmac-axi-config {
1146                         snps,blen = <0 0 0 0 16 8 4>;
1147                         snps,wr_osr_lmt = <4>;
1148                         snps,rd_osr_lmt = <8>;
1149                 };
1150
1151                 gmac1_mtl_rx_setup: rx-queues-config {
1152                         snps,rx-queues-to-use = <2>;
1153                         queue0 {};
1154                         queue1 {};
1155                 };
1156
1157                 gmac1_mtl_tx_setup: tx-queues-config {
1158                         snps,tx-queues-to-use = <2>;
1159                         queue0 {};
1160                         queue1 {};
1161                 };
1162         };
1163
1164         sdmmc: mmc@fe2c0000 {
1165                 compatible = "rockchip,rk3588-dw-mshc", "rockchip,rk3288-dw-mshc";
1166                 reg = <0x0 0xfe2c0000 0x0 0x4000>;
1167                 interrupts = <GIC_SPI 203 IRQ_TYPE_LEVEL_HIGH 0>;
1168                 clocks = <&scmi_clk SCMI_HCLK_SD>, <&scmi_clk SCMI_CCLK_SD>,
1169                          <&cru SCLK_SDMMC_DRV>, <&cru SCLK_SDMMC_SAMPLE>;
1170                 clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
1171                 fifo-depth = <0x100>;
1172                 max-frequency = <200000000>;
1173                 pinctrl-names = "default";
1174                 pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_det &sdmmc_bus4>;
1175                 power-domains = <&power RK3588_PD_SDMMC>;
1176                 status = "disabled";
1177         };
1178
1179         sdhci: mmc@fe2e0000 {
1180                 compatible = "rockchip,rk3588-dwcmshc";
1181                 reg = <0x0 0xfe2e0000 0x0 0x10000>;
1182                 interrupts = <GIC_SPI 205 IRQ_TYPE_LEVEL_HIGH 0>;
1183                 assigned-clocks = <&cru BCLK_EMMC>, <&cru TMCLK_EMMC>, <&cru CCLK_EMMC>;
1184                 assigned-clock-rates = <200000000>, <24000000>, <200000000>;
1185                 clocks = <&cru CCLK_EMMC>, <&cru HCLK_EMMC>,
1186                          <&cru ACLK_EMMC>, <&cru BCLK_EMMC>,
1187                          <&cru TMCLK_EMMC>;
1188                 clock-names = "core", "bus", "axi", "block", "timer";
1189                 max-frequency = <200000000>;
1190                 resets = <&cru SRST_C_EMMC>, <&cru SRST_H_EMMC>,
1191                          <&cru SRST_A_EMMC>, <&cru SRST_B_EMMC>,
1192                          <&cru SRST_T_EMMC>;
1193                 reset-names = "core", "bus", "axi", "block", "timer";
1194                 status = "disabled";
1195         };
1196
1197         i2s0_8ch: i2s@fe470000 {
1198                 compatible = "rockchip,rk3588-i2s-tdm";
1199                 reg = <0x0 0xfe470000 0x0 0x1000>;
1200                 interrupts = <GIC_SPI 180 IRQ_TYPE_LEVEL_HIGH 0>;
1201                 clocks = <&cru MCLK_I2S0_8CH_TX>, <&cru MCLK_I2S0_8CH_RX>, <&cru HCLK_I2S0_8CH>;
1202                 clock-names = "mclk_tx", "mclk_rx", "hclk";
1203                 assigned-clocks = <&cru CLK_I2S0_8CH_TX_SRC>, <&cru CLK_I2S0_8CH_RX_SRC>;
1204                 assigned-clock-parents = <&cru PLL_AUPLL>, <&cru PLL_AUPLL>;
1205                 dmas = <&dmac0 0>, <&dmac0 1>;
1206                 dma-names = "tx", "rx";
1207                 power-domains = <&power RK3588_PD_AUDIO>;
1208                 resets = <&cru SRST_M_I2S0_8CH_TX>, <&cru SRST_M_I2S0_8CH_RX>;
1209                 reset-names = "tx-m", "rx-m";
1210                 rockchip,trcm-sync-tx-only;
1211                 pinctrl-names = "default";
1212                 pinctrl-0 = <&i2s0_lrck
1213                              &i2s0_sclk
1214                              &i2s0_sdi0
1215                              &i2s0_sdi1
1216                              &i2s0_sdi2
1217                              &i2s0_sdi3
1218                              &i2s0_sdo0
1219                              &i2s0_sdo1
1220                              &i2s0_sdo2
1221                              &i2s0_sdo3>;
1222                 #sound-dai-cells = <0>;
1223                 status = "disabled";
1224         };
1225
1226         i2s1_8ch: i2s@fe480000 {
1227                 compatible = "rockchip,rk3588-i2s-tdm";
1228                 reg = <0x0 0xfe480000 0x0 0x1000>;
1229                 interrupts = <GIC_SPI 181 IRQ_TYPE_LEVEL_HIGH 0>;
1230                 clocks = <&cru MCLK_I2S1_8CH_TX>, <&cru MCLK_I2S1_8CH_RX>, <&cru HCLK_I2S1_8CH>;
1231                 clock-names = "mclk_tx", "mclk_rx", "hclk";
1232                 dmas = <&dmac0 2>, <&dmac0 3>;
1233                 dma-names = "tx", "rx";
1234                 resets = <&cru SRST_M_I2S1_8CH_TX>, <&cru SRST_M_I2S1_8CH_RX>;
1235                 reset-names = "tx-m", "rx-m";
1236                 rockchip,trcm-sync-tx-only;
1237                 pinctrl-names = "default";
1238                 pinctrl-0 = <&i2s1m0_lrck
1239                              &i2s1m0_sclk
1240                              &i2s1m0_sdi0
1241                              &i2s1m0_sdi1
1242                              &i2s1m0_sdi2
1243                              &i2s1m0_sdi3
1244                              &i2s1m0_sdo0
1245                              &i2s1m0_sdo1
1246                              &i2s1m0_sdo2
1247                              &i2s1m0_sdo3>;
1248                 #sound-dai-cells = <0>;
1249                 status = "disabled";
1250         };
1251
1252         i2s2_2ch: i2s@fe490000 {
1253                 compatible = "rockchip,rk3588-i2s", "rockchip,rk3066-i2s";
1254                 reg = <0x0 0xfe490000 0x0 0x1000>;
1255                 interrupts = <GIC_SPI 182 IRQ_TYPE_LEVEL_HIGH 0>;
1256                 clocks = <&cru MCLK_I2S2_2CH>, <&cru HCLK_I2S2_2CH>;
1257                 clock-names = "i2s_clk", "i2s_hclk";
1258                 assigned-clocks = <&cru CLK_I2S2_2CH_SRC>;
1259                 assigned-clock-parents = <&cru PLL_AUPLL>;
1260                 dmas = <&dmac1 0>, <&dmac1 1>;
1261                 dma-names = "tx", "rx";
1262                 power-domains = <&power RK3588_PD_AUDIO>;
1263                 rockchip,trcm-sync-tx-only;
1264                 pinctrl-names = "default";
1265                 pinctrl-0 = <&i2s2m1_lrck
1266                              &i2s2m1_sclk
1267                              &i2s2m1_sdi
1268                              &i2s2m1_sdo>;
1269                 #sound-dai-cells = <0>;
1270                 status = "disabled";
1271         };
1272
1273         i2s3_2ch: i2s@fe4a0000 {
1274                 compatible = "rockchip,rk3588-i2s", "rockchip,rk3066-i2s";
1275                 reg = <0x0 0xfe4a0000 0x0 0x1000>;
1276                 interrupts = <GIC_SPI 183 IRQ_TYPE_LEVEL_HIGH 0>;
1277                 clocks = <&cru MCLK_I2S3_2CH>, <&cru HCLK_I2S3_2CH>;
1278                 clock-names = "i2s_clk", "i2s_hclk";
1279                 assigned-clocks = <&cru CLK_I2S3_2CH_SRC>;
1280                 assigned-clock-parents = <&cru PLL_AUPLL>;
1281                 dmas = <&dmac1 2>, <&dmac1 3>;
1282                 dma-names = "tx", "rx";
1283                 power-domains = <&power RK3588_PD_AUDIO>;
1284                 rockchip,trcm-sync-tx-only;
1285                 pinctrl-names = "default";
1286                 pinctrl-0 = <&i2s3_lrck
1287                              &i2s3_sclk
1288                              &i2s3_sdi
1289                              &i2s3_sdo>;
1290                 #sound-dai-cells = <0>;
1291                 status = "disabled";
1292         };
1293
1294         gic: interrupt-controller@fe600000 {
1295                 compatible = "arm,gic-v3";
1296                 reg = <0x0 0xfe600000 0 0x10000>, /* GICD */
1297                       <0x0 0xfe680000 0 0x100000>; /* GICR */
1298                 interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH 0>;
1299                 interrupt-controller;
1300                 mbi-alias = <0x0 0xfe610000>;
1301                 mbi-ranges = <424 56>;
1302                 msi-controller;
1303                 #interrupt-cells = <4>;
1304
1305                 ppi-partitions {
1306                         ppi_partition0: interrupt-partition-0 {
1307                                 affinity = <&cpu_l0 &cpu_l1 &cpu_l2 &cpu_l3>;
1308                         };
1309
1310                         ppi_partition1: interrupt-partition-1 {
1311                                 affinity = <&cpu_b0 &cpu_b1 &cpu_b2 &cpu_b3>;
1312                         };
1313                 };
1314         };
1315
1316         dmac0: dma-controller@fea10000 {
1317                 compatible = "arm,pl330", "arm,primecell";
1318                 reg = <0x0 0xfea10000 0x0 0x4000>;
1319                 interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH 0>,
1320                              <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH 0>;
1321                 arm,pl330-periph-burst;
1322                 clocks = <&cru ACLK_DMAC0>;
1323                 clock-names = "apb_pclk";
1324                 #dma-cells = <1>;
1325         };
1326
1327         dmac1: dma-controller@fea30000 {
1328                 compatible = "arm,pl330", "arm,primecell";
1329                 reg = <0x0 0xfea30000 0x0 0x4000>;
1330                 interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH 0>,
1331                              <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH 0>;
1332                 arm,pl330-periph-burst;
1333                 clocks = <&cru ACLK_DMAC1>;
1334                 clock-names = "apb_pclk";
1335                 #dma-cells = <1>;
1336         };
1337
1338         i2c1: i2c@fea90000 {
1339                 compatible = "rockchip,rk3588-i2c", "rockchip,rk3399-i2c";
1340                 reg = <0x0 0xfea90000 0x0 0x1000>;
1341                 clocks = <&cru CLK_I2C1>, <&cru PCLK_I2C1>;
1342                 clock-names = "i2c", "pclk";
1343                 interrupts = <GIC_SPI 318 IRQ_TYPE_LEVEL_HIGH 0>;
1344                 pinctrl-0 = <&i2c1m0_xfer>;
1345                 pinctrl-names = "default";
1346                 #address-cells = <1>;
1347                 #size-cells = <0>;
1348                 status = "disabled";
1349         };
1350
1351         i2c2: i2c@feaa0000 {
1352                 compatible = "rockchip,rk3588-i2c", "rockchip,rk3399-i2c";
1353                 reg = <0x0 0xfeaa0000 0x0 0x1000>;
1354                 clocks = <&cru CLK_I2C2>, <&cru PCLK_I2C2>;
1355                 clock-names = "i2c", "pclk";
1356                 interrupts = <GIC_SPI 319 IRQ_TYPE_LEVEL_HIGH 0>;
1357                 pinctrl-0 = <&i2c2m0_xfer>;
1358                 pinctrl-names = "default";
1359                 #address-cells = <1>;
1360                 #size-cells = <0>;
1361                 status = "disabled";
1362         };
1363
1364         i2c3: i2c@feab0000 {
1365                 compatible = "rockchip,rk3588-i2c", "rockchip,rk3399-i2c";
1366                 reg = <0x0 0xfeab0000 0x0 0x1000>;
1367                 clocks = <&cru CLK_I2C3>, <&cru PCLK_I2C3>;
1368                 clock-names = "i2c", "pclk";
1369                 interrupts = <GIC_SPI 320 IRQ_TYPE_LEVEL_HIGH 0>;
1370                 pinctrl-0 = <&i2c3m0_xfer>;
1371                 pinctrl-names = "default";
1372                 #address-cells = <1>;
1373                 #size-cells = <0>;
1374                 status = "disabled";
1375         };
1376
1377         i2c4: i2c@feac0000 {
1378                 compatible = "rockchip,rk3588-i2c", "rockchip,rk3399-i2c";
1379                 reg = <0x0 0xfeac0000 0x0 0x1000>;
1380                 clocks = <&cru CLK_I2C4>, <&cru PCLK_I2C4>;
1381                 clock-names = "i2c", "pclk";
1382                 interrupts = <GIC_SPI 321 IRQ_TYPE_LEVEL_HIGH 0>;
1383                 pinctrl-0 = <&i2c4m0_xfer>;
1384                 pinctrl-names = "default";
1385                 #address-cells = <1>;
1386                 #size-cells = <0>;
1387                 status = "disabled";
1388         };
1389
1390         i2c5: i2c@fead0000 {
1391                 compatible = "rockchip,rk3588-i2c", "rockchip,rk3399-i2c";
1392                 reg = <0x0 0xfead0000 0x0 0x1000>;
1393                 clocks = <&cru CLK_I2C5>, <&cru PCLK_I2C5>;
1394                 clock-names = "i2c", "pclk";
1395                 interrupts = <GIC_SPI 322 IRQ_TYPE_LEVEL_HIGH 0>;
1396                 pinctrl-0 = <&i2c5m0_xfer>;
1397                 pinctrl-names = "default";
1398                 #address-cells = <1>;
1399                 #size-cells = <0>;
1400                 status = "disabled";
1401         };
1402
1403         wdt: watchdog@feaf0000 {
1404                 compatible = "rockchip,rk3588-wdt", "snps,dw-wdt";
1405                 reg = <0x0 0xfeaf0000 0x0 0x100>;
1406                 clocks = <&cru TCLK_WDT0>, <&cru PCLK_WDT0>;
1407                 clock-names = "tclk", "pclk";
1408                 interrupts = <GIC_SPI 315 IRQ_TYPE_LEVEL_HIGH 0>;
1409         };
1410
1411         spi0: spi@feb00000 {
1412                 compatible = "rockchip,rk3588-spi", "rockchip,rk3066-spi";
1413                 reg = <0x0 0xfeb00000 0x0 0x1000>;
1414                 interrupts = <GIC_SPI 326 IRQ_TYPE_LEVEL_HIGH 0>;
1415                 clocks = <&cru CLK_SPI0>, <&cru PCLK_SPI0>;
1416                 clock-names = "spiclk", "apb_pclk";
1417                 dmas = <&dmac0 14>, <&dmac0 15>;
1418                 dma-names = "tx", "rx";
1419                 num-cs = <2>;
1420                 pinctrl-0 = <&spi0m0_cs0 &spi0m0_cs1 &spi0m0_pins>;
1421                 pinctrl-names = "default";
1422                 #address-cells = <1>;
1423                 #size-cells = <0>;
1424                 status = "disabled";
1425         };
1426
1427         spi1: spi@feb10000 {
1428                 compatible = "rockchip,rk3588-spi", "rockchip,rk3066-spi";
1429                 reg = <0x0 0xfeb10000 0x0 0x1000>;
1430                 interrupts = <GIC_SPI 327 IRQ_TYPE_LEVEL_HIGH 0>;
1431                 clocks = <&cru CLK_SPI1>, <&cru PCLK_SPI1>;
1432                 clock-names = "spiclk", "apb_pclk";
1433                 dmas = <&dmac0 16>, <&dmac0 17>;
1434                 dma-names = "tx", "rx";
1435                 num-cs = <2>;
1436                 pinctrl-0 = <&spi1m1_cs0 &spi1m1_cs1 &spi1m1_pins>;
1437                 pinctrl-names = "default";
1438                 #address-cells = <1>;
1439                 #size-cells = <0>;
1440                 status = "disabled";
1441         };
1442
1443         spi2: spi@feb20000 {
1444                 compatible = "rockchip,rk3588-spi", "rockchip,rk3066-spi";
1445                 reg = <0x0 0xfeb20000 0x0 0x1000>;
1446                 interrupts = <GIC_SPI 328 IRQ_TYPE_LEVEL_HIGH 0>;
1447                 clocks = <&cru CLK_SPI2>, <&cru PCLK_SPI2>;
1448                 clock-names = "spiclk", "apb_pclk";
1449                 dmas = <&dmac1 15>, <&dmac1 16>;
1450                 dma-names = "tx", "rx";
1451                 num-cs = <2>;
1452                 pinctrl-0 = <&spi2m2_cs0 &spi2m2_cs1 &spi2m2_pins>;
1453                 pinctrl-names = "default";
1454                 #address-cells = <1>;
1455                 #size-cells = <0>;
1456                 status = "disabled";
1457         };
1458
1459         spi3: spi@feb30000 {
1460                 compatible = "rockchip,rk3588-spi", "rockchip,rk3066-spi";
1461                 reg = <0x0 0xfeb30000 0x0 0x1000>;
1462                 interrupts = <GIC_SPI 329 IRQ_TYPE_LEVEL_HIGH 0>;
1463                 clocks = <&cru CLK_SPI3>, <&cru PCLK_SPI3>;
1464                 clock-names = "spiclk", "apb_pclk";
1465                 dmas = <&dmac1 17>, <&dmac1 18>;
1466                 dma-names = "tx", "rx";
1467                 num-cs = <2>;
1468                 pinctrl-0 = <&spi3m1_cs0 &spi3m1_cs1 &spi3m1_pins>;
1469                 pinctrl-names = "default";
1470                 #address-cells = <1>;
1471                 #size-cells = <0>;
1472                 status = "disabled";
1473         };
1474
1475         uart1: serial@feb40000 {
1476                 compatible = "rockchip,rk3588-uart", "snps,dw-apb-uart";
1477                 reg = <0x0 0xfeb40000 0x0 0x100>;
1478                 interrupts = <GIC_SPI 332 IRQ_TYPE_LEVEL_HIGH 0>;
1479                 clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>;
1480                 clock-names = "baudclk", "apb_pclk";
1481                 dmas = <&dmac0 8>, <&dmac0 9>;
1482                 dma-names = "tx", "rx";
1483                 pinctrl-0 = <&uart1m1_xfer>;
1484                 pinctrl-names = "default";
1485                 reg-io-width = <4>;
1486                 reg-shift = <2>;
1487                 status = "disabled";
1488         };
1489
1490         uart2: serial@feb50000 {
1491                 compatible = "rockchip,rk3588-uart", "snps,dw-apb-uart";
1492                 reg = <0x0 0xfeb50000 0x0 0x100>;
1493                 interrupts = <GIC_SPI 333 IRQ_TYPE_LEVEL_HIGH 0>;
1494                 clocks = <&cru SCLK_UART2>, <&cru PCLK_UART2>;
1495                 clock-names = "baudclk", "apb_pclk";
1496                 dmas = <&dmac0 10>, <&dmac0 11>;
1497                 dma-names = "tx", "rx";
1498                 pinctrl-0 = <&uart2m1_xfer>;
1499                 pinctrl-names = "default";
1500                 reg-io-width = <4>;
1501                 reg-shift = <2>;
1502                 status = "disabled";
1503         };
1504
1505         uart3: serial@feb60000 {
1506                 compatible = "rockchip,rk3588-uart", "snps,dw-apb-uart";
1507                 reg = <0x0 0xfeb60000 0x0 0x100>;
1508                 interrupts = <GIC_SPI 334 IRQ_TYPE_LEVEL_HIGH 0>;
1509                 clocks = <&cru SCLK_UART3>, <&cru PCLK_UART3>;
1510                 clock-names = "baudclk", "apb_pclk";
1511                 dmas = <&dmac0 12>, <&dmac0 13>;
1512                 dma-names = "tx", "rx";
1513                 pinctrl-0 = <&uart3m1_xfer>;
1514                 pinctrl-names = "default";
1515                 reg-io-width = <4>;
1516                 reg-shift = <2>;
1517                 status = "disabled";
1518         };
1519
1520         uart4: serial@feb70000 {
1521                 compatible = "rockchip,rk3588-uart", "snps,dw-apb-uart";
1522                 reg = <0x0 0xfeb70000 0x0 0x100>;
1523                 interrupts = <GIC_SPI 335 IRQ_TYPE_LEVEL_HIGH 0>;
1524                 clocks = <&cru SCLK_UART4>, <&cru PCLK_UART4>;
1525                 clock-names = "baudclk", "apb_pclk";
1526                 dmas = <&dmac1 9>, <&dmac1 10>;
1527                 dma-names = "tx", "rx";
1528                 pinctrl-0 = <&uart4m1_xfer>;
1529                 pinctrl-names = "default";
1530                 reg-io-width = <4>;
1531                 reg-shift = <2>;
1532                 status = "disabled";
1533         };
1534
1535         uart5: serial@feb80000 {
1536                 compatible = "rockchip,rk3588-uart", "snps,dw-apb-uart";
1537                 reg = <0x0 0xfeb80000 0x0 0x100>;
1538                 interrupts = <GIC_SPI 336 IRQ_TYPE_LEVEL_HIGH 0>;
1539                 clocks = <&cru SCLK_UART5>, <&cru PCLK_UART5>;
1540                 clock-names = "baudclk", "apb_pclk";
1541                 dmas = <&dmac1 11>, <&dmac1 12>;
1542                 dma-names = "tx", "rx";
1543                 pinctrl-0 = <&uart5m1_xfer>;
1544                 pinctrl-names = "default";
1545                 reg-io-width = <4>;
1546                 reg-shift = <2>;
1547                 status = "disabled";
1548         };
1549
1550         uart6: serial@feb90000 {
1551                 compatible = "rockchip,rk3588-uart", "snps,dw-apb-uart";
1552                 reg = <0x0 0xfeb90000 0x0 0x100>;
1553                 interrupts = <GIC_SPI 337 IRQ_TYPE_LEVEL_HIGH 0>;
1554                 clocks = <&cru SCLK_UART6>, <&cru PCLK_UART6>;
1555                 clock-names = "baudclk", "apb_pclk";
1556                 dmas = <&dmac1 13>, <&dmac1 14>;
1557                 dma-names = "tx", "rx";
1558                 pinctrl-0 = <&uart6m1_xfer>;
1559                 pinctrl-names = "default";
1560                 reg-io-width = <4>;
1561                 reg-shift = <2>;
1562                 status = "disabled";
1563         };
1564
1565         uart7: serial@feba0000 {
1566                 compatible = "rockchip,rk3588-uart", "snps,dw-apb-uart";
1567                 reg = <0x0 0xfeba0000 0x0 0x100>;
1568                 interrupts = <GIC_SPI 338 IRQ_TYPE_LEVEL_HIGH 0>;
1569                 clocks = <&cru SCLK_UART7>, <&cru PCLK_UART7>;
1570                 clock-names = "baudclk", "apb_pclk";
1571                 dmas = <&dmac2 7>, <&dmac2 8>;
1572                 dma-names = "tx", "rx";
1573                 pinctrl-0 = <&uart7m1_xfer>;
1574                 pinctrl-names = "default";
1575                 reg-io-width = <4>;
1576                 reg-shift = <2>;
1577                 status = "disabled";
1578         };
1579
1580         uart8: serial@febb0000 {
1581                 compatible = "rockchip,rk3588-uart", "snps,dw-apb-uart";
1582                 reg = <0x0 0xfebb0000 0x0 0x100>;
1583                 interrupts = <GIC_SPI 339 IRQ_TYPE_LEVEL_HIGH 0>;
1584                 clocks = <&cru SCLK_UART8>, <&cru PCLK_UART8>;
1585                 clock-names = "baudclk", "apb_pclk";
1586                 dmas = <&dmac2 9>, <&dmac2 10>;
1587                 dma-names = "tx", "rx";
1588                 pinctrl-0 = <&uart8m1_xfer>;
1589                 pinctrl-names = "default";
1590                 reg-io-width = <4>;
1591                 reg-shift = <2>;
1592                 status = "disabled";
1593         };
1594
1595         uart9: serial@febc0000 {
1596                 compatible = "rockchip,rk3588-uart", "snps,dw-apb-uart";
1597                 reg = <0x0 0xfebc0000 0x0 0x100>;
1598                 interrupts = <GIC_SPI 340 IRQ_TYPE_LEVEL_HIGH 0>;
1599                 clocks = <&cru SCLK_UART9>, <&cru PCLK_UART9>;
1600                 clock-names = "baudclk", "apb_pclk";
1601                 dmas = <&dmac2 11>, <&dmac2 12>;
1602                 dma-names = "tx", "rx";
1603                 pinctrl-0 = <&uart9m1_xfer>;
1604                 pinctrl-names = "default";
1605                 reg-io-width = <4>;
1606                 reg-shift = <2>;
1607                 status = "disabled";
1608         };
1609
1610         pwm4: pwm@febd0000 {
1611                 compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm";
1612                 reg = <0x0 0xfebd0000 0x0 0x10>;
1613                 clocks = <&cru CLK_PWM1>, <&cru PCLK_PWM1>;
1614                 clock-names = "pwm", "pclk";
1615                 pinctrl-0 = <&pwm4m0_pins>;
1616                 pinctrl-names = "default";
1617                 #pwm-cells = <3>;
1618                 status = "disabled";
1619         };
1620
1621         pwm5: pwm@febd0010 {
1622                 compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm";
1623                 reg = <0x0 0xfebd0010 0x0 0x10>;
1624                 clocks = <&cru CLK_PWM1>, <&cru PCLK_PWM1>;
1625                 clock-names = "pwm", "pclk";
1626                 pinctrl-0 = <&pwm5m0_pins>;
1627                 pinctrl-names = "default";
1628                 #pwm-cells = <3>;
1629                 status = "disabled";
1630         };
1631
1632         pwm6: pwm@febd0020 {
1633                 compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm";
1634                 reg = <0x0 0xfebd0020 0x0 0x10>;
1635                 clocks = <&cru CLK_PWM1>, <&cru PCLK_PWM1>;
1636                 clock-names = "pwm", "pclk";
1637                 pinctrl-0 = <&pwm6m0_pins>;
1638                 pinctrl-names = "default";
1639                 #pwm-cells = <3>;
1640                 status = "disabled";
1641         };
1642
1643         pwm7: pwm@febd0030 {
1644                 compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm";
1645                 reg = <0x0 0xfebd0030 0x0 0x10>;
1646                 clocks = <&cru CLK_PWM1>, <&cru PCLK_PWM1>;
1647                 clock-names = "pwm", "pclk";
1648                 pinctrl-0 = <&pwm7m0_pins>;
1649                 pinctrl-names = "default";
1650                 #pwm-cells = <3>;
1651                 status = "disabled";
1652         };
1653
1654         pwm8: pwm@febe0000 {
1655                 compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm";
1656                 reg = <0x0 0xfebe0000 0x0 0x10>;
1657                 clocks = <&cru CLK_PWM2>, <&cru PCLK_PWM2>;
1658                 clock-names = "pwm", "pclk";
1659                 pinctrl-0 = <&pwm8m0_pins>;
1660                 pinctrl-names = "default";
1661                 #pwm-cells = <3>;
1662                 status = "disabled";
1663         };
1664
1665         pwm9: pwm@febe0010 {
1666                 compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm";
1667                 reg = <0x0 0xfebe0010 0x0 0x10>;
1668                 clocks = <&cru CLK_PWM2>, <&cru PCLK_PWM2>;
1669                 clock-names = "pwm", "pclk";
1670                 pinctrl-0 = <&pwm9m0_pins>;
1671                 pinctrl-names = "default";
1672                 #pwm-cells = <3>;
1673                 status = "disabled";
1674         };
1675
1676         pwm10: pwm@febe0020 {
1677                 compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm";
1678                 reg = <0x0 0xfebe0020 0x0 0x10>;
1679                 clocks = <&cru CLK_PWM2>, <&cru PCLK_PWM2>;
1680                 clock-names = "pwm", "pclk";
1681                 pinctrl-0 = <&pwm10m0_pins>;
1682                 pinctrl-names = "default";
1683                 #pwm-cells = <3>;
1684                 status = "disabled";
1685         };
1686
1687         pwm11: pwm@febe0030 {
1688                 compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm";
1689                 reg = <0x0 0xfebe0030 0x0 0x10>;
1690                 clocks = <&cru CLK_PWM2>, <&cru PCLK_PWM2>;
1691                 clock-names = "pwm", "pclk";
1692                 pinctrl-0 = <&pwm11m0_pins>;
1693                 pinctrl-names = "default";
1694                 #pwm-cells = <3>;
1695                 status = "disabled";
1696         };
1697
1698         pwm12: pwm@febf0000 {
1699                 compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm";
1700                 reg = <0x0 0xfebf0000 0x0 0x10>;
1701                 clocks = <&cru CLK_PWM3>, <&cru PCLK_PWM3>;
1702                 clock-names = "pwm", "pclk";
1703                 pinctrl-0 = <&pwm12m0_pins>;
1704                 pinctrl-names = "default";
1705                 #pwm-cells = <3>;
1706                 status = "disabled";
1707         };
1708
1709         pwm13: pwm@febf0010 {
1710                 compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm";
1711                 reg = <0x0 0xfebf0010 0x0 0x10>;
1712                 clocks = <&cru CLK_PWM3>, <&cru PCLK_PWM3>;
1713                 clock-names = "pwm", "pclk";
1714                 pinctrl-0 = <&pwm13m0_pins>;
1715                 pinctrl-names = "default";
1716                 #pwm-cells = <3>;
1717                 status = "disabled";
1718         };
1719
1720         pwm14: pwm@febf0020 {
1721                 compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm";
1722                 reg = <0x0 0xfebf0020 0x0 0x10>;
1723                 clocks = <&cru CLK_PWM3>, <&cru PCLK_PWM3>;
1724                 clock-names = "pwm", "pclk";
1725                 pinctrl-0 = <&pwm14m0_pins>;
1726                 pinctrl-names = "default";
1727                 #pwm-cells = <3>;
1728                 status = "disabled";
1729         };
1730
1731         pwm15: pwm@febf0030 {
1732                 compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm";
1733                 reg = <0x0 0xfebf0030 0x0 0x10>;
1734                 clocks = <&cru CLK_PWM3>, <&cru PCLK_PWM3>;
1735                 clock-names = "pwm", "pclk";
1736                 pinctrl-0 = <&pwm15m0_pins>;
1737                 pinctrl-names = "default";
1738                 #pwm-cells = <3>;
1739                 status = "disabled";
1740         };
1741
1742         tsadc: tsadc@fec00000 {
1743                 compatible = "rockchip,rk3588-tsadc";
1744                 reg = <0x0 0xfec00000 0x0 0x400>;
1745                 interrupts = <GIC_SPI 397 IRQ_TYPE_LEVEL_HIGH 0>;
1746                 clocks = <&cru CLK_TSADC>, <&cru PCLK_TSADC>;
1747                 clock-names = "tsadc", "apb_pclk";
1748                 assigned-clocks = <&cru CLK_TSADC>;
1749                 assigned-clock-rates = <2000000>;
1750                 resets = <&cru SRST_P_TSADC>, <&cru SRST_TSADC>;
1751                 reset-names = "tsadc-apb", "tsadc";
1752                 rockchip,hw-tshut-temp = <120000>;
1753                 rockchip,hw-tshut-mode = <0>; /* tshut mode 0:CRU 1:GPIO */
1754                 rockchip,hw-tshut-polarity = <0>; /* tshut polarity 0:LOW 1:HIGH */
1755                 pinctrl-0 = <&tsadc_gpio_func>;
1756                 pinctrl-1 = <&tsadc_shut>;
1757                 pinctrl-names = "gpio", "otpout";
1758                 #thermal-sensor-cells = <1>;
1759                 status = "disabled";
1760         };
1761
1762         i2c6: i2c@fec80000 {
1763                 compatible = "rockchip,rk3588-i2c", "rockchip,rk3399-i2c";
1764                 reg = <0x0 0xfec80000 0x0 0x1000>;
1765                 clocks = <&cru CLK_I2C6>, <&cru PCLK_I2C6>;
1766                 clock-names = "i2c", "pclk";
1767                 interrupts = <GIC_SPI 323 IRQ_TYPE_LEVEL_HIGH 0>;
1768                 pinctrl-0 = <&i2c6m0_xfer>;
1769                 pinctrl-names = "default";
1770                 #address-cells = <1>;
1771                 #size-cells = <0>;
1772                 status = "disabled";
1773         };
1774
1775         i2c7: i2c@fec90000 {
1776                 compatible = "rockchip,rk3588-i2c", "rockchip,rk3399-i2c";
1777                 reg = <0x0 0xfec90000 0x0 0x1000>;
1778                 clocks = <&cru CLK_I2C7>, <&cru PCLK_I2C7>;
1779                 clock-names = "i2c", "pclk";
1780                 interrupts = <GIC_SPI 324 IRQ_TYPE_LEVEL_HIGH 0>;
1781                 pinctrl-0 = <&i2c7m0_xfer>;
1782                 pinctrl-names = "default";
1783                 #address-cells = <1>;
1784                 #size-cells = <0>;
1785                 status = "disabled";
1786         };
1787
1788         i2c8: i2c@feca0000 {
1789                 compatible = "rockchip,rk3588-i2c", "rockchip,rk3399-i2c";
1790                 reg = <0x0 0xfeca0000 0x0 0x1000>;
1791                 clocks = <&cru CLK_I2C8>, <&cru PCLK_I2C8>;
1792                 clock-names = "i2c", "pclk";
1793                 interrupts = <GIC_SPI 325 IRQ_TYPE_LEVEL_HIGH 0>;
1794                 pinctrl-0 = <&i2c8m0_xfer>;
1795                 pinctrl-names = "default";
1796                 #address-cells = <1>;
1797                 #size-cells = <0>;
1798                 status = "disabled";
1799         };
1800
1801         spi4: spi@fecb0000 {
1802                 compatible = "rockchip,rk3588-spi", "rockchip,rk3066-spi";
1803                 reg = <0x0 0xfecb0000 0x0 0x1000>;
1804                 interrupts = <GIC_SPI 330 IRQ_TYPE_LEVEL_HIGH 0>;
1805                 clocks = <&cru CLK_SPI4>, <&cru PCLK_SPI4>;
1806                 clock-names = "spiclk", "apb_pclk";
1807                 dmas = <&dmac2 13>, <&dmac2 14>;
1808                 dma-names = "tx", "rx";
1809                 num-cs = <2>;
1810                 pinctrl-0 = <&spi4m0_cs0 &spi4m0_cs1 &spi4m0_pins>;
1811                 pinctrl-names = "default";
1812                 #address-cells = <1>;
1813                 #size-cells = <0>;
1814                 status = "disabled";
1815         };
1816
1817         dmac2: dma-controller@fed10000 {
1818                 compatible = "arm,pl330", "arm,primecell";
1819                 reg = <0x0 0xfed10000 0x0 0x4000>;
1820                 interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH 0>,
1821                              <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH 0>;
1822                 arm,pl330-periph-burst;
1823                 clocks = <&cru ACLK_DMAC2>;
1824                 clock-names = "apb_pclk";
1825                 #dma-cells = <1>;
1826         };
1827
1828         system_sram2: sram@ff001000 {
1829                 compatible = "mmio-sram";
1830                 reg = <0x0 0xff001000 0x0 0xef000>;
1831                 ranges = <0x0 0x0 0xff001000 0xef000>;
1832                 #address-cells = <1>;
1833                 #size-cells = <1>;
1834         };
1835
1836         pinctrl: pinctrl {
1837                 compatible = "rockchip,rk3588-pinctrl";
1838                 ranges;
1839                 rockchip,grf = <&ioc>;
1840                 #address-cells = <2>;
1841                 #size-cells = <2>;
1842
1843                 gpio0: gpio@fd8a0000 {
1844                         compatible = "rockchip,gpio-bank";
1845                         reg = <0x0 0xfd8a0000 0x0 0x100>;
1846                         interrupts = <GIC_SPI 277 IRQ_TYPE_LEVEL_HIGH 0>;
1847                         clocks = <&cru PCLK_GPIO0>, <&cru DBCLK_GPIO0>;
1848                         gpio-controller;
1849                         gpio-ranges = <&pinctrl 0 0 32>;
1850                         interrupt-controller;
1851                         #gpio-cells = <2>;
1852                         #interrupt-cells = <2>;
1853                 };
1854
1855                 gpio1: gpio@fec20000 {
1856                         compatible = "rockchip,gpio-bank";
1857                         reg = <0x0 0xfec20000 0x0 0x100>;
1858                         interrupts = <GIC_SPI 278 IRQ_TYPE_LEVEL_HIGH 0>;
1859                         clocks = <&cru PCLK_GPIO1>, <&cru DBCLK_GPIO1>;
1860                         gpio-controller;
1861                         gpio-ranges = <&pinctrl 0 32 32>;
1862                         interrupt-controller;
1863                         #gpio-cells = <2>;
1864                         #interrupt-cells = <2>;
1865                 };
1866
1867                 gpio2: gpio@fec30000 {
1868                         compatible = "rockchip,gpio-bank";
1869                         reg = <0x0 0xfec30000 0x0 0x100>;
1870                         interrupts = <GIC_SPI 279 IRQ_TYPE_LEVEL_HIGH 0>;
1871                         clocks = <&cru PCLK_GPIO2>, <&cru DBCLK_GPIO2>;
1872                         gpio-controller;
1873                         gpio-ranges = <&pinctrl 0 64 32>;
1874                         interrupt-controller;
1875                         #gpio-cells = <2>;
1876                         #interrupt-cells = <2>;
1877                 };
1878
1879                 gpio3: gpio@fec40000 {
1880                         compatible = "rockchip,gpio-bank";
1881                         reg = <0x0 0xfec40000 0x0 0x100>;
1882                         interrupts = <GIC_SPI 280 IRQ_TYPE_LEVEL_HIGH 0>;
1883                         clocks = <&cru PCLK_GPIO3>, <&cru DBCLK_GPIO3>;
1884                         gpio-controller;
1885                         gpio-ranges = <&pinctrl 0 96 32>;
1886                         interrupt-controller;
1887                         #gpio-cells = <2>;
1888                         #interrupt-cells = <2>;
1889                 };
1890
1891                 gpio4: gpio@fec50000 {
1892                         compatible = "rockchip,gpio-bank";
1893                         reg = <0x0 0xfec50000 0x0 0x100>;
1894                         interrupts = <GIC_SPI 281 IRQ_TYPE_LEVEL_HIGH 0>;
1895                         clocks = <&cru PCLK_GPIO4>, <&cru DBCLK_GPIO4>;
1896                         gpio-controller;
1897                         gpio-ranges = <&pinctrl 0 128 32>;
1898                         interrupt-controller;
1899                         #gpio-cells = <2>;
1900                         #interrupt-cells = <2>;
1901                 };
1902         };
1903 };
1904
1905 #include "rk3588s-pinctrl.dtsi"