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