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#include <dt-bindings/phy/phy.h> 12#include <dt-bindings/ata/ahci.h> 13#include <dt-bindings/thermal/thermal.h> 14 15/ { 16 compatible = "rockchip,rk3588"; 17 18 interrupt-parent = <&gic>; 19 #address-cells = <2>; 20 #size-cells = <2>; 21 22 aliases { 23 gpio0 = &gpio0; 24 gpio1 = &gpio1; 25 gpio2 = &gpio2; 26 gpio3 = &gpio3; 27 gpio4 = &gpio4; 28 i2c0 = &i2c0; 29 i2c1 = &i2c1; 30 i2c2 = &i2c2; 31 i2c3 = &i2c3; 32 i2c4 = &i2c4; 33 i2c5 = &i2c5; 34 i2c6 = &i2c6; 35 i2c7 = &i2c7; 36 i2c8 = &i2c8; 37 serial0 = &uart0; 38 serial1 = &uart1; 39 serial2 = &uart2; 40 serial3 = &uart3; 41 serial4 = &uart4; 42 serial5 = &uart5; 43 serial6 = &uart6; 44 serial7 = &uart7; 45 serial8 = &uart8; 46 serial9 = &uart9; 47 spi0 = &spi0; 48 spi1 = &spi1; 49 spi2 = &spi2; 50 spi3 = &spi3; 51 spi4 = &spi4; 52 }; 53 54 cpus { 55 #address-cells = <1>; 56 #size-cells = <0>; 57 58 cpu-map { 59 cluster0 { 60 core0 { 61 cpu = <&cpu_l0>; 62 }; 63 core1 { 64 cpu = <&cpu_l1>; 65 }; 66 core2 { 67 cpu = <&cpu_l2>; 68 }; 69 core3 { 70 cpu = <&cpu_l3>; 71 }; 72 }; 73 cluster1 { 74 core0 { 75 cpu = <&cpu_b0>; 76 }; 77 core1 { 78 cpu = <&cpu_b1>; 79 }; 80 }; 81 cluster2 { 82 core0 { 83 cpu = <&cpu_b2>; 84 }; 85 core1 { 86 cpu = <&cpu_b3>; 87 }; 88 }; 89 }; 90 91 cpu_l0: cpu@0 { 92 device_type = "cpu"; 93 compatible = "arm,cortex-a55"; 94 reg = <0x0>; 95 enable-method = "psci"; 96 capacity-dmips-mhz = <530>; 97 clocks = <&scmi_clk SCMI_CLK_CPUL>; 98 assigned-clocks = <&scmi_clk SCMI_CLK_CPUL>; 99 assigned-clock-rates = <816000000>; 100 cpu-idle-states = <&CPU_SLEEP>; 101 i-cache-size = <32768>; 102 i-cache-line-size = <64>; 103 i-cache-sets = <128>; 104 d-cache-size = <32768>; 105 d-cache-line-size = <64>; 106 d-cache-sets = <128>; 107 next-level-cache = <&l2_cache_l0>; 108 dynamic-power-coefficient = <228>; 109 #cooling-cells = <2>; 110 }; 111 112 cpu_l1: cpu@100 { 113 device_type = "cpu"; 114 compatible = "arm,cortex-a55"; 115 reg = <0x100>; 116 enable-method = "psci"; 117 capacity-dmips-mhz = <530>; 118 clocks = <&scmi_clk SCMI_CLK_CPUL>; 119 cpu-idle-states = <&CPU_SLEEP>; 120 i-cache-size = <32768>; 121 i-cache-line-size = <64>; 122 i-cache-sets = <128>; 123 d-cache-size = <32768>; 124 d-cache-line-size = <64>; 125 d-cache-sets = <128>; 126 next-level-cache = <&l2_cache_l1>; 127 dynamic-power-coefficient = <228>; 128 #cooling-cells = <2>; 129 }; 130 131 cpu_l2: cpu@200 { 132 device_type = "cpu"; 133 compatible = "arm,cortex-a55"; 134 reg = <0x200>; 135 enable-method = "psci"; 136 capacity-dmips-mhz = <530>; 137 clocks = <&scmi_clk SCMI_CLK_CPUL>; 138 cpu-idle-states = <&CPU_SLEEP>; 139 i-cache-size = <32768>; 140 i-cache-line-size = <64>; 141 i-cache-sets = <128>; 142 d-cache-size = <32768>; 143 d-cache-line-size = <64>; 144 d-cache-sets = <128>; 145 next-level-cache = <&l2_cache_l2>; 146 dynamic-power-coefficient = <228>; 147 #cooling-cells = <2>; 148 }; 149 150 cpu_l3: cpu@300 { 151 device_type = "cpu"; 152 compatible = "arm,cortex-a55"; 153 reg = <0x300>; 154 enable-method = "psci"; 155 capacity-dmips-mhz = <530>; 156 clocks = <&scmi_clk SCMI_CLK_CPUL>; 157 cpu-idle-states = <&CPU_SLEEP>; 158 i-cache-size = <32768>; 159 i-cache-line-size = <64>; 160 i-cache-sets = <128>; 161 d-cache-size = <32768>; 162 d-cache-line-size = <64>; 163 d-cache-sets = <128>; 164 next-level-cache = <&l2_cache_l3>; 165 dynamic-power-coefficient = <228>; 166 #cooling-cells = <2>; 167 }; 168 169 cpu_b0: cpu@400 { 170 device_type = "cpu"; 171 compatible = "arm,cortex-a76"; 172 reg = <0x400>; 173 enable-method = "psci"; 174 capacity-dmips-mhz = <1024>; 175 clocks = <&scmi_clk SCMI_CLK_CPUB01>; 176 assigned-clocks = <&scmi_clk SCMI_CLK_CPUB01>; 177 assigned-clock-rates = <816000000>; 178 cpu-idle-states = <&CPU_SLEEP>; 179 i-cache-size = <65536>; 180 i-cache-line-size = <64>; 181 i-cache-sets = <256>; 182 d-cache-size = <65536>; 183 d-cache-line-size = <64>; 184 d-cache-sets = <256>; 185 next-level-cache = <&l2_cache_b0>; 186 dynamic-power-coefficient = <416>; 187 #cooling-cells = <2>; 188 }; 189 190 cpu_b1: cpu@500 { 191 device_type = "cpu"; 192 compatible = "arm,cortex-a76"; 193 reg = <0x500>; 194 enable-method = "psci"; 195 capacity-dmips-mhz = <1024>; 196 clocks = <&scmi_clk SCMI_CLK_CPUB01>; 197 cpu-idle-states = <&CPU_SLEEP>; 198 i-cache-size = <65536>; 199 i-cache-line-size = <64>; 200 i-cache-sets = <256>; 201 d-cache-size = <65536>; 202 d-cache-line-size = <64>; 203 d-cache-sets = <256>; 204 next-level-cache = <&l2_cache_b1>; 205 dynamic-power-coefficient = <416>; 206 #cooling-cells = <2>; 207 }; 208 209 cpu_b2: cpu@600 { 210 device_type = "cpu"; 211 compatible = "arm,cortex-a76"; 212 reg = <0x600>; 213 enable-method = "psci"; 214 capacity-dmips-mhz = <1024>; 215 clocks = <&scmi_clk SCMI_CLK_CPUB23>; 216 assigned-clocks = <&scmi_clk SCMI_CLK_CPUB23>; 217 assigned-clock-rates = <816000000>; 218 cpu-idle-states = <&CPU_SLEEP>; 219 i-cache-size = <65536>; 220 i-cache-line-size = <64>; 221 i-cache-sets = <256>; 222 d-cache-size = <65536>; 223 d-cache-line-size = <64>; 224 d-cache-sets = <256>; 225 next-level-cache = <&l2_cache_b2>; 226 dynamic-power-coefficient = <416>; 227 #cooling-cells = <2>; 228 }; 229 230 cpu_b3: cpu@700 { 231 device_type = "cpu"; 232 compatible = "arm,cortex-a76"; 233 reg = <0x700>; 234 enable-method = "psci"; 235 capacity-dmips-mhz = <1024>; 236 clocks = <&scmi_clk SCMI_CLK_CPUB23>; 237 cpu-idle-states = <&CPU_SLEEP>; 238 i-cache-size = <65536>; 239 i-cache-line-size = <64>; 240 i-cache-sets = <256>; 241 d-cache-size = <65536>; 242 d-cache-line-size = <64>; 243 d-cache-sets = <256>; 244 next-level-cache = <&l2_cache_b3>; 245 dynamic-power-coefficient = <416>; 246 #cooling-cells = <2>; 247 }; 248 249 idle-states { 250 entry-method = "psci"; 251 CPU_SLEEP: cpu-sleep { 252 compatible = "arm,idle-state"; 253 local-timer-stop; 254 arm,psci-suspend-param = <0x0010000>; 255 entry-latency-us = <100>; 256 exit-latency-us = <120>; 257 min-residency-us = <1000>; 258 }; 259 }; 260 261 l2_cache_l0: l2-cache-l0 { 262 compatible = "cache"; 263 cache-size = <131072>; 264 cache-line-size = <64>; 265 cache-sets = <512>; 266 cache-level = <2>; 267 cache-unified; 268 next-level-cache = <&l3_cache>; 269 }; 270 271 l2_cache_l1: l2-cache-l1 { 272 compatible = "cache"; 273 cache-size = <131072>; 274 cache-line-size = <64>; 275 cache-sets = <512>; 276 cache-level = <2>; 277 cache-unified; 278 next-level-cache = <&l3_cache>; 279 }; 280 281 l2_cache_l2: l2-cache-l2 { 282 compatible = "cache"; 283 cache-size = <131072>; 284 cache-line-size = <64>; 285 cache-sets = <512>; 286 cache-level = <2>; 287 cache-unified; 288 next-level-cache = <&l3_cache>; 289 }; 290 291 l2_cache_l3: l2-cache-l3 { 292 compatible = "cache"; 293 cache-size = <131072>; 294 cache-line-size = <64>; 295 cache-sets = <512>; 296 cache-level = <2>; 297 cache-unified; 298 next-level-cache = <&l3_cache>; 299 }; 300 301 l2_cache_b0: l2-cache-b0 { 302 compatible = "cache"; 303 cache-size = <524288>; 304 cache-line-size = <64>; 305 cache-sets = <1024>; 306 cache-level = <2>; 307 cache-unified; 308 next-level-cache = <&l3_cache>; 309 }; 310 311 l2_cache_b1: l2-cache-b1 { 312 compatible = "cache"; 313 cache-size = <524288>; 314 cache-line-size = <64>; 315 cache-sets = <1024>; 316 cache-level = <2>; 317 cache-unified; 318 next-level-cache = <&l3_cache>; 319 }; 320 321 l2_cache_b2: l2-cache-b2 { 322 compatible = "cache"; 323 cache-size = <524288>; 324 cache-line-size = <64>; 325 cache-sets = <1024>; 326 cache-level = <2>; 327 cache-unified; 328 next-level-cache = <&l3_cache>; 329 }; 330 331 l2_cache_b3: l2-cache-b3 { 332 compatible = "cache"; 333 cache-size = <524288>; 334 cache-line-size = <64>; 335 cache-sets = <1024>; 336 cache-level = <2>; 337 cache-unified; 338 next-level-cache = <&l3_cache>; 339 }; 340 341 l3_cache: l3-cache { 342 compatible = "cache"; 343 cache-size = <3145728>; 344 cache-line-size = <64>; 345 cache-sets = <4096>; 346 cache-level = <3>; 347 cache-unified; 348 }; 349 }; 350 351 display_subsystem: display-subsystem { 352 compatible = "rockchip,display-subsystem"; 353 ports = <&vop_out>; 354 }; 355 356 firmware { 357 optee: optee { 358 compatible = "linaro,optee-tz"; 359 method = "smc"; 360 }; 361 362 scmi: scmi { 363 compatible = "arm,scmi-smc"; 364 arm,smc-id = <0x82000010>; 365 shmem = <&scmi_shmem>; 366 #address-cells = <1>; 367 #size-cells = <0>; 368 369 scmi_clk: protocol@14 { 370 reg = <0x14>; 371 #clock-cells = <1>; 372 }; 373 374 scmi_reset: protocol@16 { 375 reg = <0x16>; 376 #reset-cells = <1>; 377 }; 378 }; 379 }; 380 381 pmu-a55 { 382 compatible = "arm,cortex-a55-pmu"; 383 interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH &ppi_partition0>; 384 }; 385 386 pmu-a76 { 387 compatible = "arm,cortex-a76-pmu"; 388 interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH &ppi_partition1>; 389 }; 390 391 psci { 392 compatible = "arm,psci-1.0"; 393 method = "smc"; 394 }; 395 396 spll: clock-0 { 397 compatible = "fixed-clock"; 398 clock-frequency = <702000000>; 399 clock-output-names = "spll"; 400 #clock-cells = <0>; 401 }; 402 403 timer { 404 compatible = "arm,armv8-timer"; 405 interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_HIGH 0>, 406 <GIC_PPI 14 IRQ_TYPE_LEVEL_HIGH 0>, 407 <GIC_PPI 11 IRQ_TYPE_LEVEL_HIGH 0>, 408 <GIC_PPI 10 IRQ_TYPE_LEVEL_HIGH 0>, 409 <GIC_PPI 12 IRQ_TYPE_LEVEL_HIGH 0>; 410 interrupt-names = "sec-phys", "phys", "virt", "hyp-phys", "hyp-virt"; 411 }; 412 413 xin24m: clock-1 { 414 compatible = "fixed-clock"; 415 clock-frequency = <24000000>; 416 clock-output-names = "xin24m"; 417 #clock-cells = <0>; 418 }; 419 420 xin32k: clock-2 { 421 compatible = "fixed-clock"; 422 clock-frequency = <32768>; 423 clock-output-names = "xin32k"; 424 #clock-cells = <0>; 425 }; 426 427 pmu_sram: sram@10f000 { 428 compatible = "mmio-sram"; 429 reg = <0x0 0x0010f000 0x0 0x100>; 430 ranges = <0 0x0 0x0010f000 0x100>; 431 #address-cells = <1>; 432 #size-cells = <1>; 433 434 scmi_shmem: sram@0 { 435 compatible = "arm,scmi-shmem"; 436 reg = <0x0 0x100>; 437 }; 438 }; 439 440 gpu: gpu@fb000000 { 441 compatible = "rockchip,rk3588-mali", "arm,mali-valhall-csf"; 442 reg = <0x0 0xfb000000 0x0 0x200000>; 443 #cooling-cells = <2>; 444 assigned-clocks = <&scmi_clk SCMI_CLK_GPU>; 445 assigned-clock-rates = <200000000>; 446 clocks = <&cru CLK_GPU>, <&cru CLK_GPU_COREGROUP>, 447 <&cru CLK_GPU_STACKS>; 448 clock-names = "core", "coregroup", "stacks"; 449 dynamic-power-coefficient = <2982>; 450 interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH 0>, 451 <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH 0>, 452 <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH 0>; 453 interrupt-names = "job", "mmu", "gpu"; 454 power-domains = <&power RK3588_PD_GPU>; 455 status = "disabled"; 456 }; 457 458 usb_host0_xhci: usb@fc000000 { 459 compatible = "rockchip,rk3588-dwc3", "snps,dwc3"; 460 reg = <0x0 0xfc000000 0x0 0x400000>; 461 interrupts = <GIC_SPI 220 IRQ_TYPE_LEVEL_HIGH 0>; 462 clocks = <&cru REF_CLK_USB3OTG0>, <&cru SUSPEND_CLK_USB3OTG0>, 463 <&cru ACLK_USB3OTG0>; 464 clock-names = "ref_clk", "suspend_clk", "bus_clk"; 465 dr_mode = "otg"; 466 phys = <&u2phy0_otg>, <&usbdp_phy0 PHY_TYPE_USB3>; 467 phy-names = "usb2-phy", "usb3-phy"; 468 phy_type = "utmi_wide"; 469 power-domains = <&power RK3588_PD_USB>; 470 resets = <&cru SRST_A_USB3OTG0>; 471 snps,dis_enblslpm_quirk; 472 snps,dis-u1-entry-quirk; 473 snps,dis-u2-entry-quirk; 474 snps,dis-u2-freeclk-exists-quirk; 475 snps,dis-del-phy-power-chg-quirk; 476 snps,dis-tx-ipgap-linecheck-quirk; 477 status = "disabled"; 478 }; 479 480 usb_host0_ehci: usb@fc800000 { 481 compatible = "rockchip,rk3588-ehci", "generic-ehci"; 482 reg = <0x0 0xfc800000 0x0 0x40000>; 483 interrupts = <GIC_SPI 215 IRQ_TYPE_LEVEL_HIGH 0>; 484 clocks = <&cru HCLK_HOST0>, <&cru HCLK_HOST_ARB0>, <&cru ACLK_USB>, <&u2phy2>; 485 phys = <&u2phy2_host>; 486 phy-names = "usb"; 487 power-domains = <&power RK3588_PD_USB>; 488 status = "disabled"; 489 }; 490 491 usb_host0_ohci: usb@fc840000 { 492 compatible = "rockchip,rk3588-ohci", "generic-ohci"; 493 reg = <0x0 0xfc840000 0x0 0x40000>; 494 interrupts = <GIC_SPI 216 IRQ_TYPE_LEVEL_HIGH 0>; 495 clocks = <&cru HCLK_HOST0>, <&cru HCLK_HOST_ARB0>, <&cru ACLK_USB>, <&u2phy2>; 496 phys = <&u2phy2_host>; 497 phy-names = "usb"; 498 power-domains = <&power RK3588_PD_USB>; 499 status = "disabled"; 500 }; 501 502 usb_host1_ehci: usb@fc880000 { 503 compatible = "rockchip,rk3588-ehci", "generic-ehci"; 504 reg = <0x0 0xfc880000 0x0 0x40000>; 505 interrupts = <GIC_SPI 218 IRQ_TYPE_LEVEL_HIGH 0>; 506 clocks = <&cru HCLK_HOST1>, <&cru HCLK_HOST_ARB1>, <&cru ACLK_USB>, <&u2phy3>; 507 phys = <&u2phy3_host>; 508 phy-names = "usb"; 509 power-domains = <&power RK3588_PD_USB>; 510 status = "disabled"; 511 }; 512 513 usb_host1_ohci: usb@fc8c0000 { 514 compatible = "rockchip,rk3588-ohci", "generic-ohci"; 515 reg = <0x0 0xfc8c0000 0x0 0x40000>; 516 interrupts = <GIC_SPI 219 IRQ_TYPE_LEVEL_HIGH 0>; 517 clocks = <&cru HCLK_HOST1>, <&cru HCLK_HOST_ARB1>, <&cru ACLK_USB>, <&u2phy3>; 518 phys = <&u2phy3_host>; 519 phy-names = "usb"; 520 power-domains = <&power RK3588_PD_USB>; 521 status = "disabled"; 522 }; 523 524 usb_host2_xhci: usb@fcd00000 { 525 compatible = "rockchip,rk3588-dwc3", "snps,dwc3"; 526 reg = <0x0 0xfcd00000 0x0 0x400000>; 527 interrupts = <GIC_SPI 222 IRQ_TYPE_LEVEL_HIGH 0>; 528 clocks = <&cru REF_CLK_USB3OTG2>, <&cru SUSPEND_CLK_USB3OTG2>, 529 <&cru ACLK_USB3OTG2>, <&cru CLK_UTMI_OTG2>, 530 <&cru CLK_PIPEPHY2_PIPE_U3_G>; 531 clock-names = "ref_clk", "suspend_clk", "bus_clk", "utmi", "pipe"; 532 dr_mode = "host"; 533 phys = <&combphy2_psu PHY_TYPE_USB3>; 534 phy-names = "usb3-phy"; 535 phy_type = "utmi_wide"; 536 resets = <&cru SRST_A_USB3OTG2>; 537 snps,dis_enblslpm_quirk; 538 snps,dis-u2-freeclk-exists-quirk; 539 snps,dis-del-phy-power-chg-quirk; 540 snps,dis-tx-ipgap-linecheck-quirk; 541 snps,dis_rxdet_inp3_quirk; 542 status = "disabled"; 543 }; 544 545 mmu600_pcie: iommu@fc900000 { 546 compatible = "arm,smmu-v3"; 547 reg = <0x0 0xfc900000 0x0 0x200000>; 548 interrupts = <GIC_SPI 369 IRQ_TYPE_LEVEL_HIGH 0>, 549 <GIC_SPI 371 IRQ_TYPE_LEVEL_HIGH 0>, 550 <GIC_SPI 374 IRQ_TYPE_LEVEL_HIGH 0>, 551 <GIC_SPI 367 IRQ_TYPE_LEVEL_HIGH 0>; 552 interrupt-names = "eventq", "gerror", "priq", "cmdq-sync"; 553 #iommu-cells = <1>; 554 status = "disabled"; 555 }; 556 557 mmu600_php: iommu@fcb00000 { 558 compatible = "arm,smmu-v3"; 559 reg = <0x0 0xfcb00000 0x0 0x200000>; 560 interrupts = <GIC_SPI 381 IRQ_TYPE_LEVEL_HIGH 0>, 561 <GIC_SPI 383 IRQ_TYPE_LEVEL_HIGH 0>, 562 <GIC_SPI 386 IRQ_TYPE_LEVEL_HIGH 0>, 563 <GIC_SPI 379 IRQ_TYPE_LEVEL_HIGH 0>; 564 interrupt-names = "eventq", "gerror", "priq", "cmdq-sync"; 565 #iommu-cells = <1>; 566 status = "disabled"; 567 }; 568 569 pmu1grf: syscon@fd58a000 { 570 compatible = "rockchip,rk3588-pmugrf", "syscon", "simple-mfd"; 571 reg = <0x0 0xfd58a000 0x0 0x10000>; 572 }; 573 574 sys_grf: syscon@fd58c000 { 575 compatible = "rockchip,rk3588-sys-grf", "syscon"; 576 reg = <0x0 0xfd58c000 0x0 0x1000>; 577 }; 578 579 vop_grf: syscon@fd5a4000 { 580 compatible = "rockchip,rk3588-vop-grf", "syscon"; 581 reg = <0x0 0xfd5a4000 0x0 0x2000>; 582 }; 583 584 vo0_grf: syscon@fd5a6000 { 585 compatible = "rockchip,rk3588-vo0-grf", "syscon"; 586 reg = <0x0 0xfd5a6000 0x0 0x2000>; 587 clocks = <&cru PCLK_VO0GRF>; 588 }; 589 590 vo1_grf: syscon@fd5a8000 { 591 compatible = "rockchip,rk3588-vo1-grf", "syscon"; 592 reg = <0x0 0xfd5a8000 0x0 0x4000>; 593 clocks = <&cru PCLK_VO1GRF>; 594 }; 595 596 usb_grf: syscon@fd5ac000 { 597 compatible = "rockchip,rk3588-usb-grf", "syscon"; 598 reg = <0x0 0xfd5ac000 0x0 0x4000>; 599 }; 600 601 php_grf: syscon@fd5b0000 { 602 compatible = "rockchip,rk3588-php-grf", "syscon"; 603 reg = <0x0 0xfd5b0000 0x0 0x1000>; 604 }; 605 606 pipe_phy0_grf: syscon@fd5bc000 { 607 compatible = "rockchip,rk3588-pipe-phy-grf", "syscon"; 608 reg = <0x0 0xfd5bc000 0x0 0x100>; 609 }; 610 611 pipe_phy2_grf: syscon@fd5c4000 { 612 compatible = "rockchip,rk3588-pipe-phy-grf", "syscon"; 613 reg = <0x0 0xfd5c4000 0x0 0x100>; 614 }; 615 616 usbdpphy0_grf: syscon@fd5c8000 { 617 compatible = "rockchip,rk3588-usbdpphy-grf", "syscon"; 618 reg = <0x0 0xfd5c8000 0x0 0x4000>; 619 }; 620 621 usb2phy0_grf: syscon@fd5d0000 { 622 compatible = "rockchip,rk3588-usb2phy-grf", "syscon", "simple-mfd"; 623 reg = <0x0 0xfd5d0000 0x0 0x4000>; 624 #address-cells = <1>; 625 #size-cells = <1>; 626 627 u2phy0: usb2phy@0 { 628 compatible = "rockchip,rk3588-usb2phy"; 629 reg = <0x0 0x10>; 630 #clock-cells = <0>; 631 clocks = <&cru CLK_USB2PHY_HDPTXRXPHY_REF>; 632 clock-names = "phyclk"; 633 clock-output-names = "usb480m_phy0"; 634 interrupts = <GIC_SPI 393 IRQ_TYPE_LEVEL_HIGH 0>; 635 resets = <&cru SRST_OTGPHY_U3_0>, <&cru SRST_P_USB2PHY_U3_0_GRF0>; 636 reset-names = "phy", "apb"; 637 status = "disabled"; 638 639 u2phy0_otg: otg-port { 640 #phy-cells = <0>; 641 status = "disabled"; 642 }; 643 }; 644 }; 645 646 usb2phy2_grf: syscon@fd5d8000 { 647 compatible = "rockchip,rk3588-usb2phy-grf", "syscon", "simple-mfd"; 648 reg = <0x0 0xfd5d8000 0x0 0x4000>; 649 #address-cells = <1>; 650 #size-cells = <1>; 651 652 u2phy2: usb2phy@8000 { 653 compatible = "rockchip,rk3588-usb2phy"; 654 reg = <0x8000 0x10>; 655 #clock-cells = <0>; 656 clocks = <&cru CLK_USB2PHY_HDPTXRXPHY_REF>; 657 clock-names = "phyclk"; 658 clock-output-names = "usb480m_phy2"; 659 interrupts = <GIC_SPI 391 IRQ_TYPE_LEVEL_HIGH 0>; 660 resets = <&cru SRST_OTGPHY_U2_0>, <&cru SRST_P_USB2PHY_U2_0_GRF0>; 661 reset-names = "phy", "apb"; 662 status = "disabled"; 663 664 u2phy2_host: host-port { 665 #phy-cells = <0>; 666 status = "disabled"; 667 }; 668 }; 669 }; 670 671 usb2phy3_grf: syscon@fd5dc000 { 672 compatible = "rockchip,rk3588-usb2phy-grf", "syscon", "simple-mfd"; 673 reg = <0x0 0xfd5dc000 0x0 0x4000>; 674 #address-cells = <1>; 675 #size-cells = <1>; 676 677 u2phy3: usb2phy@c000 { 678 compatible = "rockchip,rk3588-usb2phy"; 679 reg = <0xc000 0x10>; 680 #clock-cells = <0>; 681 clocks = <&cru CLK_USB2PHY_HDPTXRXPHY_REF>; 682 clock-names = "phyclk"; 683 clock-output-names = "usb480m_phy3"; 684 interrupts = <GIC_SPI 392 IRQ_TYPE_LEVEL_HIGH 0>; 685 resets = <&cru SRST_OTGPHY_U2_1>, <&cru SRST_P_USB2PHY_U2_1_GRF0>; 686 reset-names = "phy", "apb"; 687 status = "disabled"; 688 689 u2phy3_host: host-port { 690 #phy-cells = <0>; 691 status = "disabled"; 692 }; 693 }; 694 }; 695 696 hdptxphy0_grf: syscon@fd5e0000 { 697 compatible = "rockchip,rk3588-hdptxphy-grf", "syscon"; 698 reg = <0x0 0xfd5e0000 0x0 0x100>; 699 }; 700 701 ioc: syscon@fd5f0000 { 702 compatible = "rockchip,rk3588-ioc", "syscon"; 703 reg = <0x0 0xfd5f0000 0x0 0x10000>; 704 }; 705 706 system_sram1: sram@fd600000 { 707 compatible = "mmio-sram"; 708 reg = <0x0 0xfd600000 0x0 0x100000>; 709 ranges = <0x0 0x0 0xfd600000 0x100000>; 710 #address-cells = <1>; 711 #size-cells = <1>; 712 }; 713 714 cru: clock-controller@fd7c0000 { 715 compatible = "rockchip,rk3588-cru"; 716 reg = <0x0 0xfd7c0000 0x0 0x5c000>; 717 assigned-clocks = 718 <&cru PLL_PPLL>, <&cru PLL_AUPLL>, 719 <&cru PLL_NPLL>, <&cru PLL_GPLL>, 720 <&cru ACLK_CENTER_ROOT>, 721 <&cru HCLK_CENTER_ROOT>, <&cru ACLK_CENTER_LOW_ROOT>, 722 <&cru ACLK_TOP_ROOT>, <&cru PCLK_TOP_ROOT>, 723 <&cru ACLK_LOW_TOP_ROOT>, <&cru PCLK_PMU0_ROOT>, 724 <&cru HCLK_PMU_CM0_ROOT>, <&cru ACLK_VOP>, 725 <&cru ACLK_BUS_ROOT>, <&cru CLK_150M_SRC>, 726 <&cru CLK_GPU>; 727 assigned-clock-rates = 728 <1100000000>, <786432000>, 729 <850000000>, <1188000000>, 730 <702000000>, 731 <400000000>, <500000000>, 732 <800000000>, <100000000>, 733 <400000000>, <100000000>, 734 <200000000>, <500000000>, 735 <375000000>, <150000000>, 736 <200000000>; 737 rockchip,grf = <&php_grf>; 738 #clock-cells = <1>; 739 #reset-cells = <1>; 740 }; 741 742 i2c0: i2c@fd880000 { 743 compatible = "rockchip,rk3588-i2c", "rockchip,rk3399-i2c"; 744 reg = <0x0 0xfd880000 0x0 0x1000>; 745 interrupts = <GIC_SPI 317 IRQ_TYPE_LEVEL_HIGH 0>; 746 clocks = <&cru CLK_I2C0>, <&cru PCLK_I2C0>; 747 clock-names = "i2c", "pclk"; 748 pinctrl-0 = <&i2c0m0_xfer>; 749 pinctrl-names = "default"; 750 #address-cells = <1>; 751 #size-cells = <0>; 752 status = "disabled"; 753 }; 754 755 uart0: serial@fd890000 { 756 compatible = "rockchip,rk3588-uart", "snps,dw-apb-uart"; 757 reg = <0x0 0xfd890000 0x0 0x100>; 758 interrupts = <GIC_SPI 331 IRQ_TYPE_LEVEL_HIGH 0>; 759 clocks = <&cru SCLK_UART0>, <&cru PCLK_UART0>; 760 clock-names = "baudclk", "apb_pclk"; 761 dmas = <&dmac0 6>, <&dmac0 7>; 762 dma-names = "tx", "rx"; 763 pinctrl-0 = <&uart0m1_xfer>; 764 pinctrl-names = "default"; 765 reg-shift = <2>; 766 reg-io-width = <4>; 767 status = "disabled"; 768 }; 769 770 pwm0: pwm@fd8b0000 { 771 compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm"; 772 reg = <0x0 0xfd8b0000 0x0 0x10>; 773 clocks = <&cru CLK_PMU1PWM>, <&cru PCLK_PMU1PWM>; 774 clock-names = "pwm", "pclk"; 775 pinctrl-0 = <&pwm0m0_pins>; 776 pinctrl-names = "default"; 777 #pwm-cells = <3>; 778 status = "disabled"; 779 }; 780 781 pwm1: pwm@fd8b0010 { 782 compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm"; 783 reg = <0x0 0xfd8b0010 0x0 0x10>; 784 clocks = <&cru CLK_PMU1PWM>, <&cru PCLK_PMU1PWM>; 785 clock-names = "pwm", "pclk"; 786 pinctrl-0 = <&pwm1m0_pins>; 787 pinctrl-names = "default"; 788 #pwm-cells = <3>; 789 status = "disabled"; 790 }; 791 792 pwm2: pwm@fd8b0020 { 793 compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm"; 794 reg = <0x0 0xfd8b0020 0x0 0x10>; 795 clocks = <&cru CLK_PMU1PWM>, <&cru PCLK_PMU1PWM>; 796 clock-names = "pwm", "pclk"; 797 pinctrl-0 = <&pwm2m0_pins>; 798 pinctrl-names = "default"; 799 #pwm-cells = <3>; 800 status = "disabled"; 801 }; 802 803 pwm3: pwm@fd8b0030 { 804 compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm"; 805 reg = <0x0 0xfd8b0030 0x0 0x10>; 806 clocks = <&cru CLK_PMU1PWM>, <&cru PCLK_PMU1PWM>; 807 clock-names = "pwm", "pclk"; 808 pinctrl-0 = <&pwm3m0_pins>; 809 pinctrl-names = "default"; 810 #pwm-cells = <3>; 811 status = "disabled"; 812 }; 813 814 pmu: power-management@fd8d8000 { 815 compatible = "rockchip,rk3588-pmu", "syscon", "simple-mfd"; 816 reg = <0x0 0xfd8d8000 0x0 0x400>; 817 818 power: power-controller { 819 compatible = "rockchip,rk3588-power-controller"; 820 #address-cells = <1>; 821 #power-domain-cells = <1>; 822 #size-cells = <0>; 823 status = "okay"; 824 825 /* These power domains are grouped by VD_NPU */ 826 power-domain@RK3588_PD_NPU { 827 reg = <RK3588_PD_NPU>; 828 #power-domain-cells = <0>; 829 #address-cells = <1>; 830 #size-cells = <0>; 831 832 power-domain@RK3588_PD_NPUTOP { 833 reg = <RK3588_PD_NPUTOP>; 834 clocks = <&cru HCLK_NPU_ROOT>, 835 <&cru PCLK_NPU_ROOT>, 836 <&cru CLK_NPU_DSU0>, 837 <&cru HCLK_NPU_CM0_ROOT>; 838 pm_qos = <&qos_npu0_mwr>, 839 <&qos_npu0_mro>, 840 <&qos_mcu_npu>; 841 #power-domain-cells = <0>; 842 #address-cells = <1>; 843 #size-cells = <0>; 844 845 power-domain@RK3588_PD_NPU1 { 846 reg = <RK3588_PD_NPU1>; 847 clocks = <&cru HCLK_NPU_ROOT>, 848 <&cru PCLK_NPU_ROOT>, 849 <&cru CLK_NPU_DSU0>; 850 pm_qos = <&qos_npu1>; 851 #power-domain-cells = <0>; 852 }; 853 power-domain@RK3588_PD_NPU2 { 854 reg = <RK3588_PD_NPU2>; 855 clocks = <&cru HCLK_NPU_ROOT>, 856 <&cru PCLK_NPU_ROOT>, 857 <&cru CLK_NPU_DSU0>; 858 pm_qos = <&qos_npu2>; 859 #power-domain-cells = <0>; 860 }; 861 }; 862 }; 863 /* These power domains are grouped by VD_GPU */ 864 power-domain@RK3588_PD_GPU { 865 reg = <RK3588_PD_GPU>; 866 clocks = <&cru CLK_GPU>, 867 <&cru CLK_GPU_COREGROUP>, 868 <&cru CLK_GPU_STACKS>; 869 pm_qos = <&qos_gpu_m0>, 870 <&qos_gpu_m1>, 871 <&qos_gpu_m2>, 872 <&qos_gpu_m3>; 873 #power-domain-cells = <0>; 874 }; 875 /* These power domains are grouped by VD_VCODEC */ 876 power-domain@RK3588_PD_VCODEC { 877 reg = <RK3588_PD_VCODEC>; 878 #address-cells = <1>; 879 #size-cells = <0>; 880 #power-domain-cells = <0>; 881 882 power-domain@RK3588_PD_RKVDEC0 { 883 reg = <RK3588_PD_RKVDEC0>; 884 clocks = <&cru HCLK_RKVDEC0>, 885 <&cru HCLK_VDPU_ROOT>, 886 <&cru ACLK_VDPU_ROOT>, 887 <&cru ACLK_RKVDEC0>, 888 <&cru ACLK_RKVDEC_CCU>; 889 pm_qos = <&qos_rkvdec0>; 890 #power-domain-cells = <0>; 891 }; 892 power-domain@RK3588_PD_RKVDEC1 { 893 reg = <RK3588_PD_RKVDEC1>; 894 clocks = <&cru HCLK_RKVDEC1>, 895 <&cru HCLK_VDPU_ROOT>, 896 <&cru ACLK_VDPU_ROOT>, 897 <&cru ACLK_RKVDEC1>; 898 pm_qos = <&qos_rkvdec1>; 899 #power-domain-cells = <0>; 900 }; 901 power-domain@RK3588_PD_VENC0 { 902 reg = <RK3588_PD_VENC0>; 903 clocks = <&cru HCLK_RKVENC0>, 904 <&cru ACLK_RKVENC0>; 905 pm_qos = <&qos_rkvenc0_m0ro>, 906 <&qos_rkvenc0_m1ro>, 907 <&qos_rkvenc0_m2wo>; 908 #address-cells = <1>; 909 #size-cells = <0>; 910 #power-domain-cells = <0>; 911 912 power-domain@RK3588_PD_VENC1 { 913 reg = <RK3588_PD_VENC1>; 914 clocks = <&cru HCLK_RKVENC1>, 915 <&cru HCLK_RKVENC0>, 916 <&cru ACLK_RKVENC0>, 917 <&cru ACLK_RKVENC1>; 918 pm_qos = <&qos_rkvenc1_m0ro>, 919 <&qos_rkvenc1_m1ro>, 920 <&qos_rkvenc1_m2wo>; 921 #power-domain-cells = <0>; 922 }; 923 }; 924 }; 925 /* These power domains are grouped by VD_LOGIC */ 926 power-domain@RK3588_PD_VDPU { 927 reg = <RK3588_PD_VDPU>; 928 clocks = <&cru HCLK_VDPU_ROOT>, 929 <&cru ACLK_VDPU_LOW_ROOT>, 930 <&cru ACLK_VDPU_ROOT>, 931 <&cru ACLK_JPEG_DECODER_ROOT>, 932 <&cru ACLK_IEP2P0>, 933 <&cru HCLK_IEP2P0>, 934 <&cru ACLK_JPEG_ENCODER0>, 935 <&cru HCLK_JPEG_ENCODER0>, 936 <&cru ACLK_JPEG_ENCODER1>, 937 <&cru HCLK_JPEG_ENCODER1>, 938 <&cru ACLK_JPEG_ENCODER2>, 939 <&cru HCLK_JPEG_ENCODER2>, 940 <&cru ACLK_JPEG_ENCODER3>, 941 <&cru HCLK_JPEG_ENCODER3>, 942 <&cru ACLK_JPEG_DECODER>, 943 <&cru HCLK_JPEG_DECODER>, 944 <&cru ACLK_RGA2>, 945 <&cru HCLK_RGA2>; 946 pm_qos = <&qos_iep>, 947 <&qos_jpeg_dec>, 948 <&qos_jpeg_enc0>, 949 <&qos_jpeg_enc1>, 950 <&qos_jpeg_enc2>, 951 <&qos_jpeg_enc3>, 952 <&qos_rga2_mro>, 953 <&qos_rga2_mwo>; 954 #address-cells = <1>; 955 #size-cells = <0>; 956 #power-domain-cells = <0>; 957 958 959 power-domain@RK3588_PD_AV1 { 960 reg = <RK3588_PD_AV1>; 961 clocks = <&cru PCLK_AV1>, 962 <&cru ACLK_AV1>, 963 <&cru HCLK_VDPU_ROOT>; 964 pm_qos = <&qos_av1>; 965 #power-domain-cells = <0>; 966 }; 967 power-domain@RK3588_PD_RKVDEC0 { 968 reg = <RK3588_PD_RKVDEC0>; 969 clocks = <&cru HCLK_RKVDEC0>, 970 <&cru HCLK_VDPU_ROOT>, 971 <&cru ACLK_VDPU_ROOT>, 972 <&cru ACLK_RKVDEC0>; 973 pm_qos = <&qos_rkvdec0>; 974 #power-domain-cells = <0>; 975 }; 976 power-domain@RK3588_PD_RKVDEC1 { 977 reg = <RK3588_PD_RKVDEC1>; 978 clocks = <&cru HCLK_RKVDEC1>, 979 <&cru HCLK_VDPU_ROOT>, 980 <&cru ACLK_VDPU_ROOT>; 981 pm_qos = <&qos_rkvdec1>; 982 #power-domain-cells = <0>; 983 }; 984 power-domain@RK3588_PD_RGA30 { 985 reg = <RK3588_PD_RGA30>; 986 clocks = <&cru ACLK_RGA3_0>, 987 <&cru HCLK_RGA3_0>; 988 pm_qos = <&qos_rga3_0>; 989 #power-domain-cells = <0>; 990 }; 991 }; 992 power-domain@RK3588_PD_VOP { 993 reg = <RK3588_PD_VOP>; 994 clocks = <&cru PCLK_VOP_ROOT>, 995 <&cru HCLK_VOP_ROOT>, 996 <&cru ACLK_VOP>; 997 pm_qos = <&qos_vop_m0>, 998 <&qos_vop_m1>; 999 #address-cells = <1>; 1000 #size-cells = <0>; 1001 #power-domain-cells = <0>; 1002 1003 power-domain@RK3588_PD_VO0 { 1004 reg = <RK3588_PD_VO0>; 1005 clocks = <&cru PCLK_VO0_ROOT>, 1006 <&cru PCLK_VO0_S_ROOT>, 1007 <&cru HCLK_VO0_S_ROOT>, 1008 <&cru ACLK_VO0_ROOT>, 1009 <&cru HCLK_HDCP0>, 1010 <&cru ACLK_HDCP0>, 1011 <&cru HCLK_VOP_ROOT>; 1012 pm_qos = <&qos_hdcp0>; 1013 #power-domain-cells = <0>; 1014 }; 1015 }; 1016 power-domain@RK3588_PD_VO1 { 1017 reg = <RK3588_PD_VO1>; 1018 clocks = <&cru PCLK_VO1_ROOT>, 1019 <&cru PCLK_VO1_S_ROOT>, 1020 <&cru HCLK_VO1_S_ROOT>, 1021 <&cru HCLK_HDCP1>, 1022 <&cru ACLK_HDCP1>, 1023 <&cru ACLK_HDMIRX_ROOT>, 1024 <&cru HCLK_VO1USB_TOP_ROOT>; 1025 pm_qos = <&qos_hdcp1>, 1026 <&qos_hdmirx>; 1027 #power-domain-cells = <0>; 1028 }; 1029 power-domain@RK3588_PD_VI { 1030 reg = <RK3588_PD_VI>; 1031 clocks = <&cru HCLK_VI_ROOT>, 1032 <&cru PCLK_VI_ROOT>, 1033 <&cru HCLK_ISP0>, 1034 <&cru ACLK_ISP0>, 1035 <&cru HCLK_VICAP>, 1036 <&cru ACLK_VICAP>; 1037 pm_qos = <&qos_isp0_mro>, 1038 <&qos_isp0_mwo>, 1039 <&qos_vicap_m0>, 1040 <&qos_vicap_m1>; 1041 #address-cells = <1>; 1042 #size-cells = <0>; 1043 #power-domain-cells = <0>; 1044 1045 power-domain@RK3588_PD_ISP1 { 1046 reg = <RK3588_PD_ISP1>; 1047 clocks = <&cru HCLK_ISP1>, 1048 <&cru ACLK_ISP1>, 1049 <&cru HCLK_VI_ROOT>, 1050 <&cru PCLK_VI_ROOT>; 1051 pm_qos = <&qos_isp1_mwo>, 1052 <&qos_isp1_mro>; 1053 #power-domain-cells = <0>; 1054 }; 1055 power-domain@RK3588_PD_FEC { 1056 reg = <RK3588_PD_FEC>; 1057 clocks = <&cru HCLK_FISHEYE0>, 1058 <&cru ACLK_FISHEYE0>, 1059 <&cru HCLK_FISHEYE1>, 1060 <&cru ACLK_FISHEYE1>, 1061 <&cru PCLK_VI_ROOT>; 1062 pm_qos = <&qos_fisheye0>, 1063 <&qos_fisheye1>; 1064 #power-domain-cells = <0>; 1065 }; 1066 }; 1067 power-domain@RK3588_PD_RGA31 { 1068 reg = <RK3588_PD_RGA31>; 1069 clocks = <&cru HCLK_RGA3_1>, 1070 <&cru ACLK_RGA3_1>; 1071 pm_qos = <&qos_rga3_1>; 1072 #power-domain-cells = <0>; 1073 }; 1074 power-domain@RK3588_PD_USB { 1075 reg = <RK3588_PD_USB>; 1076 clocks = <&cru PCLK_PHP_ROOT>, 1077 <&cru ACLK_USB_ROOT>, 1078 <&cru ACLK_USB>, 1079 <&cru HCLK_USB_ROOT>, 1080 <&cru HCLK_HOST0>, 1081 <&cru HCLK_HOST_ARB0>, 1082 <&cru HCLK_HOST1>, 1083 <&cru HCLK_HOST_ARB1>; 1084 pm_qos = <&qos_usb3_0>, 1085 <&qos_usb3_1>, 1086 <&qos_usb2host_0>, 1087 <&qos_usb2host_1>; 1088 #power-domain-cells = <0>; 1089 }; 1090 power-domain@RK3588_PD_GMAC { 1091 reg = <RK3588_PD_GMAC>; 1092 clocks = <&cru PCLK_PHP_ROOT>, 1093 <&cru ACLK_PCIE_ROOT>, 1094 <&cru ACLK_PHP_ROOT>; 1095 #power-domain-cells = <0>; 1096 }; 1097 power-domain@RK3588_PD_PCIE { 1098 reg = <RK3588_PD_PCIE>; 1099 clocks = <&cru PCLK_PHP_ROOT>, 1100 <&cru ACLK_PCIE_ROOT>, 1101 <&cru ACLK_PHP_ROOT>; 1102 #power-domain-cells = <0>; 1103 }; 1104 power-domain@RK3588_PD_SDIO { 1105 reg = <RK3588_PD_SDIO>; 1106 clocks = <&cru HCLK_SDIO>, 1107 <&cru HCLK_NVM_ROOT>; 1108 pm_qos = <&qos_sdio>; 1109 #power-domain-cells = <0>; 1110 }; 1111 power-domain@RK3588_PD_AUDIO { 1112 reg = <RK3588_PD_AUDIO>; 1113 clocks = <&cru HCLK_AUDIO_ROOT>, 1114 <&cru PCLK_AUDIO_ROOT>; 1115 #power-domain-cells = <0>; 1116 }; 1117 power-domain@RK3588_PD_SDMMC { 1118 reg = <RK3588_PD_SDMMC>; 1119 pm_qos = <&qos_sdmmc>; 1120 #power-domain-cells = <0>; 1121 }; 1122 }; 1123 }; 1124 1125 vpu121: video-codec@fdb50000 { 1126 compatible = "rockchip,rk3588-vpu121", "rockchip,rk3568-vpu"; 1127 reg = <0x0 0xfdb50000 0x0 0x800>; 1128 interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH 0>; 1129 interrupt-names = "vdpu"; 1130 clocks = <&cru ACLK_VPU>, <&cru HCLK_VPU>; 1131 clock-names = "aclk", "hclk"; 1132 iommus = <&vpu121_mmu>; 1133 power-domains = <&power RK3588_PD_VDPU>; 1134 }; 1135 1136 vpu121_mmu: iommu@fdb50800 { 1137 compatible = "rockchip,rk3588-iommu", "rockchip,rk3568-iommu"; 1138 reg = <0x0 0xfdb50800 0x0 0x40>; 1139 interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH 0>; 1140 clock-names = "aclk", "iface"; 1141 clocks = <&cru ACLK_VPU>, <&cru HCLK_VPU>; 1142 power-domains = <&power RK3588_PD_VDPU>; 1143 #iommu-cells = <0>; 1144 }; 1145 1146 rga: rga@fdb80000 { 1147 compatible = "rockchip,rk3588-rga", "rockchip,rk3288-rga"; 1148 reg = <0x0 0xfdb80000 0x0 0x180>; 1149 interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH 0>; 1150 clocks = <&cru ACLK_RGA2>, <&cru HCLK_RGA2>, <&cru CLK_RGA2_CORE>; 1151 clock-names = "aclk", "hclk", "sclk"; 1152 resets = <&cru SRST_RGA2_CORE>, <&cru SRST_A_RGA2>, <&cru SRST_H_RGA2>; 1153 reset-names = "core", "axi", "ahb"; 1154 power-domains = <&power RK3588_PD_VDPU>; 1155 }; 1156 1157 vepu121_0: video-codec@fdba0000 { 1158 compatible = "rockchip,rk3588-vepu121"; 1159 reg = <0x0 0xfdba0000 0x0 0x800>; 1160 interrupts = <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH 0>; 1161 clocks = <&cru ACLK_JPEG_ENCODER0>, <&cru HCLK_JPEG_ENCODER0>; 1162 clock-names = "aclk", "hclk"; 1163 iommus = <&vepu121_0_mmu>; 1164 power-domains = <&power RK3588_PD_VDPU>; 1165 }; 1166 1167 vepu121_0_mmu: iommu@fdba0800 { 1168 compatible = "rockchip,rk3588-iommu", "rockchip,rk3568-iommu"; 1169 reg = <0x0 0xfdba0800 0x0 0x40>; 1170 interrupts = <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH 0>; 1171 clocks = <&cru ACLK_JPEG_ENCODER0>, <&cru HCLK_JPEG_ENCODER0>; 1172 clock-names = "aclk", "iface"; 1173 power-domains = <&power RK3588_PD_VDPU>; 1174 #iommu-cells = <0>; 1175 }; 1176 1177 vepu121_1: video-codec@fdba4000 { 1178 compatible = "rockchip,rk3588-vepu121"; 1179 reg = <0x0 0xfdba4000 0x0 0x800>; 1180 interrupts = <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH 0>; 1181 clocks = <&cru ACLK_JPEG_ENCODER1>, <&cru HCLK_JPEG_ENCODER1>; 1182 clock-names = "aclk", "hclk"; 1183 iommus = <&vepu121_1_mmu>; 1184 power-domains = <&power RK3588_PD_VDPU>; 1185 }; 1186 1187 vepu121_1_mmu: iommu@fdba4800 { 1188 compatible = "rockchip,rk3588-iommu", "rockchip,rk3568-iommu"; 1189 reg = <0x0 0xfdba4800 0x0 0x40>; 1190 interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH 0>; 1191 clocks = <&cru ACLK_JPEG_ENCODER1>, <&cru HCLK_JPEG_ENCODER1>; 1192 clock-names = "aclk", "iface"; 1193 power-domains = <&power RK3588_PD_VDPU>; 1194 #iommu-cells = <0>; 1195 }; 1196 1197 vepu121_2: video-codec@fdba8000 { 1198 compatible = "rockchip,rk3588-vepu121"; 1199 reg = <0x0 0xfdba8000 0x0 0x800>; 1200 interrupts = <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH 0>; 1201 clocks = <&cru ACLK_JPEG_ENCODER2>, <&cru HCLK_JPEG_ENCODER2>; 1202 clock-names = "aclk", "hclk"; 1203 iommus = <&vepu121_2_mmu>; 1204 power-domains = <&power RK3588_PD_VDPU>; 1205 }; 1206 1207 vepu121_2_mmu: iommu@fdba8800 { 1208 compatible = "rockchip,rk3588-iommu", "rockchip,rk3568-iommu"; 1209 reg = <0x0 0xfdba8800 0x0 0x40>; 1210 interrupts = <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH 0>; 1211 clocks = <&cru ACLK_JPEG_ENCODER2>, <&cru HCLK_JPEG_ENCODER2>; 1212 clock-names = "aclk", "iface"; 1213 power-domains = <&power RK3588_PD_VDPU>; 1214 #iommu-cells = <0>; 1215 }; 1216 1217 vepu121_3: video-codec@fdbac000 { 1218 compatible = "rockchip,rk3588-vepu121"; 1219 reg = <0x0 0xfdbac000 0x0 0x800>; 1220 interrupts = <GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH 0>; 1221 clocks = <&cru ACLK_JPEG_ENCODER3>, <&cru HCLK_JPEG_ENCODER3>; 1222 clock-names = "aclk", "hclk"; 1223 iommus = <&vepu121_3_mmu>; 1224 power-domains = <&power RK3588_PD_VDPU>; 1225 }; 1226 1227 vepu121_3_mmu: iommu@fdbac800 { 1228 compatible = "rockchip,rk3588-iommu", "rockchip,rk3568-iommu"; 1229 reg = <0x0 0xfdbac800 0x0 0x40>; 1230 interrupts = <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH 0>; 1231 clocks = <&cru ACLK_JPEG_ENCODER3>, <&cru HCLK_JPEG_ENCODER3>; 1232 clock-names = "aclk", "iface"; 1233 power-domains = <&power RK3588_PD_VDPU>; 1234 #iommu-cells = <0>; 1235 }; 1236 1237 av1d: video-codec@fdc70000 { 1238 compatible = "rockchip,rk3588-av1-vpu"; 1239 reg = <0x0 0xfdc70000 0x0 0x800>; 1240 interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH 0>; 1241 interrupt-names = "vdpu"; 1242 assigned-clocks = <&cru ACLK_AV1>, <&cru PCLK_AV1>; 1243 assigned-clock-rates = <400000000>, <400000000>; 1244 clocks = <&cru ACLK_AV1>, <&cru PCLK_AV1>; 1245 clock-names = "aclk", "hclk"; 1246 power-domains = <&power RK3588_PD_AV1>; 1247 resets = <&cru SRST_A_AV1>, <&cru SRST_P_AV1>, <&cru SRST_A_AV1_BIU>, <&cru SRST_P_AV1_BIU>; 1248 }; 1249 1250 vop: vop@fdd90000 { 1251 compatible = "rockchip,rk3588-vop"; 1252 reg = <0x0 0xfdd90000 0x0 0x4200>, <0x0 0xfdd95000 0x0 0x1000>; 1253 reg-names = "vop", "gamma-lut"; 1254 interrupts = <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH 0>; 1255 clocks = <&cru ACLK_VOP>, 1256 <&cru HCLK_VOP>, 1257 <&cru DCLK_VOP0>, 1258 <&cru DCLK_VOP1>, 1259 <&cru DCLK_VOP2>, 1260 <&cru DCLK_VOP3>, 1261 <&cru PCLK_VOP_ROOT>; 1262 clock-names = "aclk", 1263 "hclk", 1264 "dclk_vp0", 1265 "dclk_vp1", 1266 "dclk_vp2", 1267 "dclk_vp3", 1268 "pclk_vop"; 1269 iommus = <&vop_mmu>; 1270 power-domains = <&power RK3588_PD_VOP>; 1271 rockchip,grf = <&sys_grf>; 1272 rockchip,vop-grf = <&vop_grf>; 1273 rockchip,vo1-grf = <&vo1_grf>; 1274 rockchip,pmu = <&pmu>; 1275 status = "disabled"; 1276 1277 vop_out: ports { 1278 #address-cells = <1>; 1279 #size-cells = <0>; 1280 1281 vp0: port@0 { 1282 #address-cells = <1>; 1283 #size-cells = <0>; 1284 reg = <0>; 1285 }; 1286 1287 vp1: port@1 { 1288 #address-cells = <1>; 1289 #size-cells = <0>; 1290 reg = <1>; 1291 }; 1292 1293 vp2: port@2 { 1294 #address-cells = <1>; 1295 #size-cells = <0>; 1296 reg = <2>; 1297 }; 1298 1299 vp3: port@3 { 1300 #address-cells = <1>; 1301 #size-cells = <0>; 1302 reg = <3>; 1303 }; 1304 }; 1305 }; 1306 1307 vop_mmu: iommu@fdd97e00 { 1308 compatible = "rockchip,rk3588-iommu", "rockchip,rk3568-iommu"; 1309 reg = <0x0 0xfdd97e00 0x0 0x100>, <0x0 0xfdd97f00 0x0 0x100>; 1310 interrupts = <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH 0>; 1311 clocks = <&cru ACLK_VOP>, <&cru HCLK_VOP>; 1312 clock-names = "aclk", "iface"; 1313 #iommu-cells = <0>; 1314 power-domains = <&power RK3588_PD_VOP>; 1315 status = "disabled"; 1316 }; 1317 1318 i2s4_8ch: i2s@fddc0000 { 1319 compatible = "rockchip,rk3588-i2s-tdm"; 1320 reg = <0x0 0xfddc0000 0x0 0x1000>; 1321 interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH 0>; 1322 clocks = <&cru MCLK_I2S4_8CH_TX>, <&cru MCLK_I2S4_8CH_TX>, <&cru HCLK_I2S4_8CH>; 1323 clock-names = "mclk_tx", "mclk_rx", "hclk"; 1324 assigned-clocks = <&cru CLK_I2S4_8CH_TX_SRC>; 1325 assigned-clock-parents = <&cru PLL_AUPLL>; 1326 dmas = <&dmac2 0>; 1327 dma-names = "tx"; 1328 power-domains = <&power RK3588_PD_VO0>; 1329 resets = <&cru SRST_M_I2S4_8CH_TX>; 1330 reset-names = "tx-m"; 1331 #sound-dai-cells = <0>; 1332 status = "disabled"; 1333 }; 1334 1335 i2s5_8ch: i2s@fddf0000 { 1336 compatible = "rockchip,rk3588-i2s-tdm"; 1337 reg = <0x0 0xfddf0000 0x0 0x1000>; 1338 interrupts = <GIC_SPI 185 IRQ_TYPE_LEVEL_HIGH 0>; 1339 clocks = <&cru MCLK_I2S5_8CH_TX>, <&cru MCLK_I2S5_8CH_TX>, <&cru HCLK_I2S5_8CH>; 1340 clock-names = "mclk_tx", "mclk_rx", "hclk"; 1341 assigned-clocks = <&cru CLK_I2S5_8CH_TX_SRC>; 1342 assigned-clock-parents = <&cru PLL_AUPLL>; 1343 dmas = <&dmac2 2>; 1344 dma-names = "tx"; 1345 power-domains = <&power RK3588_PD_VO1>; 1346 resets = <&cru SRST_M_I2S5_8CH_TX>; 1347 reset-names = "tx-m"; 1348 #sound-dai-cells = <0>; 1349 status = "disabled"; 1350 }; 1351 1352 i2s9_8ch: i2s@fddfc000 { 1353 compatible = "rockchip,rk3588-i2s-tdm"; 1354 reg = <0x0 0xfddfc000 0x0 0x1000>; 1355 interrupts = <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH 0>; 1356 clocks = <&cru MCLK_I2S9_8CH_RX>, <&cru MCLK_I2S9_8CH_RX>, <&cru HCLK_I2S9_8CH>; 1357 clock-names = "mclk_tx", "mclk_rx", "hclk"; 1358 assigned-clocks = <&cru CLK_I2S9_8CH_RX_SRC>; 1359 assigned-clock-parents = <&cru PLL_AUPLL>; 1360 dmas = <&dmac2 23>; 1361 dma-names = "rx"; 1362 power-domains = <&power RK3588_PD_VO1>; 1363 resets = <&cru SRST_M_I2S9_8CH_RX>; 1364 reset-names = "rx-m"; 1365 #sound-dai-cells = <0>; 1366 status = "disabled"; 1367 }; 1368 1369 qos_gpu_m0: qos@fdf35000 { 1370 compatible = "rockchip,rk3588-qos", "syscon"; 1371 reg = <0x0 0xfdf35000 0x0 0x20>; 1372 }; 1373 1374 qos_gpu_m1: qos@fdf35200 { 1375 compatible = "rockchip,rk3588-qos", "syscon"; 1376 reg = <0x0 0xfdf35200 0x0 0x20>; 1377 }; 1378 1379 qos_gpu_m2: qos@fdf35400 { 1380 compatible = "rockchip,rk3588-qos", "syscon"; 1381 reg = <0x0 0xfdf35400 0x0 0x20>; 1382 }; 1383 1384 qos_gpu_m3: qos@fdf35600 { 1385 compatible = "rockchip,rk3588-qos", "syscon"; 1386 reg = <0x0 0xfdf35600 0x0 0x20>; 1387 }; 1388 1389 qos_rga3_1: qos@fdf36000 { 1390 compatible = "rockchip,rk3588-qos", "syscon"; 1391 reg = <0x0 0xfdf36000 0x0 0x20>; 1392 }; 1393 1394 qos_sdio: qos@fdf39000 { 1395 compatible = "rockchip,rk3588-qos", "syscon"; 1396 reg = <0x0 0xfdf39000 0x0 0x20>; 1397 }; 1398 1399 qos_sdmmc: qos@fdf3d800 { 1400 compatible = "rockchip,rk3588-qos", "syscon"; 1401 reg = <0x0 0xfdf3d800 0x0 0x20>; 1402 }; 1403 1404 qos_usb3_1: qos@fdf3e000 { 1405 compatible = "rockchip,rk3588-qos", "syscon"; 1406 reg = <0x0 0xfdf3e000 0x0 0x20>; 1407 }; 1408 1409 qos_usb3_0: qos@fdf3e200 { 1410 compatible = "rockchip,rk3588-qos", "syscon"; 1411 reg = <0x0 0xfdf3e200 0x0 0x20>; 1412 }; 1413 1414 qos_usb2host_0: qos@fdf3e400 { 1415 compatible = "rockchip,rk3588-qos", "syscon"; 1416 reg = <0x0 0xfdf3e400 0x0 0x20>; 1417 }; 1418 1419 qos_usb2host_1: qos@fdf3e600 { 1420 compatible = "rockchip,rk3588-qos", "syscon"; 1421 reg = <0x0 0xfdf3e600 0x0 0x20>; 1422 }; 1423 1424 qos_fisheye0: qos@fdf40000 { 1425 compatible = "rockchip,rk3588-qos", "syscon"; 1426 reg = <0x0 0xfdf40000 0x0 0x20>; 1427 }; 1428 1429 qos_fisheye1: qos@fdf40200 { 1430 compatible = "rockchip,rk3588-qos", "syscon"; 1431 reg = <0x0 0xfdf40200 0x0 0x20>; 1432 }; 1433 1434 qos_isp0_mro: qos@fdf40400 { 1435 compatible = "rockchip,rk3588-qos", "syscon"; 1436 reg = <0x0 0xfdf40400 0x0 0x20>; 1437 }; 1438 1439 qos_isp0_mwo: qos@fdf40500 { 1440 compatible = "rockchip,rk3588-qos", "syscon"; 1441 reg = <0x0 0xfdf40500 0x0 0x20>; 1442 }; 1443 1444 qos_vicap_m0: qos@fdf40600 { 1445 compatible = "rockchip,rk3588-qos", "syscon"; 1446 reg = <0x0 0xfdf40600 0x0 0x20>; 1447 }; 1448 1449 qos_vicap_m1: qos@fdf40800 { 1450 compatible = "rockchip,rk3588-qos", "syscon"; 1451 reg = <0x0 0xfdf40800 0x0 0x20>; 1452 }; 1453 1454 qos_isp1_mwo: qos@fdf41000 { 1455 compatible = "rockchip,rk3588-qos", "syscon"; 1456 reg = <0x0 0xfdf41000 0x0 0x20>; 1457 }; 1458 1459 qos_isp1_mro: qos@fdf41100 { 1460 compatible = "rockchip,rk3588-qos", "syscon"; 1461 reg = <0x0 0xfdf41100 0x0 0x20>; 1462 }; 1463 1464 qos_rkvenc0_m0ro: qos@fdf60000 { 1465 compatible = "rockchip,rk3588-qos", "syscon"; 1466 reg = <0x0 0xfdf60000 0x0 0x20>; 1467 }; 1468 1469 qos_rkvenc0_m1ro: qos@fdf60200 { 1470 compatible = "rockchip,rk3588-qos", "syscon"; 1471 reg = <0x0 0xfdf60200 0x0 0x20>; 1472 }; 1473 1474 qos_rkvenc0_m2wo: qos@fdf60400 { 1475 compatible = "rockchip,rk3588-qos", "syscon"; 1476 reg = <0x0 0xfdf60400 0x0 0x20>; 1477 }; 1478 1479 qos_rkvenc1_m0ro: qos@fdf61000 { 1480 compatible = "rockchip,rk3588-qos", "syscon"; 1481 reg = <0x0 0xfdf61000 0x0 0x20>; 1482 }; 1483 1484 qos_rkvenc1_m1ro: qos@fdf61200 { 1485 compatible = "rockchip,rk3588-qos", "syscon"; 1486 reg = <0x0 0xfdf61200 0x0 0x20>; 1487 }; 1488 1489 qos_rkvenc1_m2wo: qos@fdf61400 { 1490 compatible = "rockchip,rk3588-qos", "syscon"; 1491 reg = <0x0 0xfdf61400 0x0 0x20>; 1492 }; 1493 1494 qos_rkvdec0: qos@fdf62000 { 1495 compatible = "rockchip,rk3588-qos", "syscon"; 1496 reg = <0x0 0xfdf62000 0x0 0x20>; 1497 }; 1498 1499 qos_rkvdec1: qos@fdf63000 { 1500 compatible = "rockchip,rk3588-qos", "syscon"; 1501 reg = <0x0 0xfdf63000 0x0 0x20>; 1502 }; 1503 1504 qos_av1: qos@fdf64000 { 1505 compatible = "rockchip,rk3588-qos", "syscon"; 1506 reg = <0x0 0xfdf64000 0x0 0x20>; 1507 }; 1508 1509 qos_iep: qos@fdf66000 { 1510 compatible = "rockchip,rk3588-qos", "syscon"; 1511 reg = <0x0 0xfdf66000 0x0 0x20>; 1512 }; 1513 1514 qos_jpeg_dec: qos@fdf66200 { 1515 compatible = "rockchip,rk3588-qos", "syscon"; 1516 reg = <0x0 0xfdf66200 0x0 0x20>; 1517 }; 1518 1519 qos_jpeg_enc0: qos@fdf66400 { 1520 compatible = "rockchip,rk3588-qos", "syscon"; 1521 reg = <0x0 0xfdf66400 0x0 0x20>; 1522 }; 1523 1524 qos_jpeg_enc1: qos@fdf66600 { 1525 compatible = "rockchip,rk3588-qos", "syscon"; 1526 reg = <0x0 0xfdf66600 0x0 0x20>; 1527 }; 1528 1529 qos_jpeg_enc2: qos@fdf66800 { 1530 compatible = "rockchip,rk3588-qos", "syscon"; 1531 reg = <0x0 0xfdf66800 0x0 0x20>; 1532 }; 1533 1534 qos_jpeg_enc3: qos@fdf66a00 { 1535 compatible = "rockchip,rk3588-qos", "syscon"; 1536 reg = <0x0 0xfdf66a00 0x0 0x20>; 1537 }; 1538 1539 qos_rga2_mro: qos@fdf66c00 { 1540 compatible = "rockchip,rk3588-qos", "syscon"; 1541 reg = <0x0 0xfdf66c00 0x0 0x20>; 1542 }; 1543 1544 qos_rga2_mwo: qos@fdf66e00 { 1545 compatible = "rockchip,rk3588-qos", "syscon"; 1546 reg = <0x0 0xfdf66e00 0x0 0x20>; 1547 }; 1548 1549 qos_rga3_0: qos@fdf67000 { 1550 compatible = "rockchip,rk3588-qos", "syscon"; 1551 reg = <0x0 0xfdf67000 0x0 0x20>; 1552 }; 1553 1554 qos_vdpu: qos@fdf67200 { 1555 compatible = "rockchip,rk3588-qos", "syscon"; 1556 reg = <0x0 0xfdf67200 0x0 0x20>; 1557 }; 1558 1559 qos_npu1: qos@fdf70000 { 1560 compatible = "rockchip,rk3588-qos", "syscon"; 1561 reg = <0x0 0xfdf70000 0x0 0x20>; 1562 }; 1563 1564 qos_npu2: qos@fdf71000 { 1565 compatible = "rockchip,rk3588-qos", "syscon"; 1566 reg = <0x0 0xfdf71000 0x0 0x20>; 1567 }; 1568 1569 qos_npu0_mwr: qos@fdf72000 { 1570 compatible = "rockchip,rk3588-qos", "syscon"; 1571 reg = <0x0 0xfdf72000 0x0 0x20>; 1572 }; 1573 1574 qos_npu0_mro: qos@fdf72200 { 1575 compatible = "rockchip,rk3588-qos", "syscon"; 1576 reg = <0x0 0xfdf72200 0x0 0x20>; 1577 }; 1578 1579 qos_mcu_npu: qos@fdf72400 { 1580 compatible = "rockchip,rk3588-qos", "syscon"; 1581 reg = <0x0 0xfdf72400 0x0 0x20>; 1582 }; 1583 1584 qos_hdcp0: qos@fdf80000 { 1585 compatible = "rockchip,rk3588-qos", "syscon"; 1586 reg = <0x0 0xfdf80000 0x0 0x20>; 1587 }; 1588 1589 qos_hdcp1: qos@fdf81000 { 1590 compatible = "rockchip,rk3588-qos", "syscon"; 1591 reg = <0x0 0xfdf81000 0x0 0x20>; 1592 }; 1593 1594 qos_hdmirx: qos@fdf81200 { 1595 compatible = "rockchip,rk3588-qos", "syscon"; 1596 reg = <0x0 0xfdf81200 0x0 0x20>; 1597 }; 1598 1599 qos_vop_m0: qos@fdf82000 { 1600 compatible = "rockchip,rk3588-qos", "syscon"; 1601 reg = <0x0 0xfdf82000 0x0 0x20>; 1602 }; 1603 1604 qos_vop_m1: qos@fdf82200 { 1605 compatible = "rockchip,rk3588-qos", "syscon"; 1606 reg = <0x0 0xfdf82200 0x0 0x20>; 1607 }; 1608 1609 dfi: dfi@fe060000 { 1610 reg = <0x00 0xfe060000 0x00 0x10000>; 1611 compatible = "rockchip,rk3588-dfi"; 1612 interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH 0>, 1613 <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH 0>, 1614 <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH 0>, 1615 <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH 0>; 1616 rockchip,pmu = <&pmu1grf>; 1617 }; 1618 1619 pcie2x1l1: pcie@fe180000 { 1620 compatible = "rockchip,rk3588-pcie", "rockchip,rk3568-pcie"; 1621 bus-range = <0x30 0x3f>; 1622 clocks = <&cru ACLK_PCIE_1L1_MSTR>, <&cru ACLK_PCIE_1L1_SLV>, 1623 <&cru ACLK_PCIE_1L1_DBI>, <&cru PCLK_PCIE_1L1>, 1624 <&cru CLK_PCIE_AUX3>, <&cru CLK_PCIE1L1_PIPE>; 1625 clock-names = "aclk_mst", "aclk_slv", 1626 "aclk_dbi", "pclk", 1627 "aux", "pipe"; 1628 device_type = "pci"; 1629 interrupts = <GIC_SPI 248 IRQ_TYPE_LEVEL_HIGH 0>, 1630 <GIC_SPI 247 IRQ_TYPE_LEVEL_HIGH 0>, 1631 <GIC_SPI 246 IRQ_TYPE_LEVEL_HIGH 0>, 1632 <GIC_SPI 245 IRQ_TYPE_LEVEL_HIGH 0>, 1633 <GIC_SPI 244 IRQ_TYPE_LEVEL_HIGH 0>; 1634 interrupt-names = "sys", "pmc", "msg", "legacy", "err"; 1635 #interrupt-cells = <1>; 1636 interrupt-map-mask = <0 0 0 7>; 1637 interrupt-map = <0 0 0 1 &pcie2x1l1_intc 0>, 1638 <0 0 0 2 &pcie2x1l1_intc 1>, 1639 <0 0 0 3 &pcie2x1l1_intc 2>, 1640 <0 0 0 4 &pcie2x1l1_intc 3>; 1641 linux,pci-domain = <3>; 1642 max-link-speed = <2>; 1643 msi-map = <0x3000 &its0 0x3000 0x1000>; 1644 num-lanes = <1>; 1645 phys = <&combphy2_psu PHY_TYPE_PCIE>; 1646 phy-names = "pcie-phy"; 1647 power-domains = <&power RK3588_PD_PCIE>; 1648 ranges = <0x01000000 0x0 0xf3100000 0x0 0xf3100000 0x0 0x00100000>, 1649 <0x02000000 0x0 0xf3200000 0x0 0xf3200000 0x0 0x00e00000>, 1650 <0x03000000 0x0 0x40000000 0x9 0xc0000000 0x0 0x40000000>; 1651 reg = <0xa 0x40c00000 0x0 0x00400000>, 1652 <0x0 0xfe180000 0x0 0x00010000>, 1653 <0x0 0xf3000000 0x0 0x00100000>; 1654 reg-names = "dbi", "apb", "config"; 1655 resets = <&cru SRST_PCIE3_POWER_UP>, <&cru SRST_P_PCIE3>; 1656 reset-names = "pwr", "pipe"; 1657 #address-cells = <3>; 1658 #size-cells = <2>; 1659 status = "disabled"; 1660 1661 pcie2x1l1_intc: legacy-interrupt-controller { 1662 interrupt-controller; 1663 #address-cells = <0>; 1664 #interrupt-cells = <1>; 1665 interrupt-parent = <&gic>; 1666 interrupts = <GIC_SPI 245 IRQ_TYPE_EDGE_RISING 0>; 1667 }; 1668 }; 1669 1670 pcie2x1l2: pcie@fe190000 { 1671 compatible = "rockchip,rk3588-pcie", "rockchip,rk3568-pcie"; 1672 bus-range = <0x40 0x4f>; 1673 clocks = <&cru ACLK_PCIE_1L2_MSTR>, <&cru ACLK_PCIE_1L2_SLV>, 1674 <&cru ACLK_PCIE_1L2_DBI>, <&cru PCLK_PCIE_1L2>, 1675 <&cru CLK_PCIE_AUX4>, <&cru CLK_PCIE1L2_PIPE>; 1676 clock-names = "aclk_mst", "aclk_slv", 1677 "aclk_dbi", "pclk", 1678 "aux", "pipe"; 1679 device_type = "pci"; 1680 interrupts = <GIC_SPI 253 IRQ_TYPE_LEVEL_HIGH 0>, 1681 <GIC_SPI 252 IRQ_TYPE_LEVEL_HIGH 0>, 1682 <GIC_SPI 251 IRQ_TYPE_LEVEL_HIGH 0>, 1683 <GIC_SPI 250 IRQ_TYPE_LEVEL_HIGH 0>, 1684 <GIC_SPI 249 IRQ_TYPE_LEVEL_HIGH 0>; 1685 interrupt-names = "sys", "pmc", "msg", "legacy", "err"; 1686 #interrupt-cells = <1>; 1687 interrupt-map-mask = <0 0 0 7>; 1688 interrupt-map = <0 0 0 1 &pcie2x1l2_intc 0>, 1689 <0 0 0 2 &pcie2x1l2_intc 1>, 1690 <0 0 0 3 &pcie2x1l2_intc 2>, 1691 <0 0 0 4 &pcie2x1l2_intc 3>; 1692 linux,pci-domain = <4>; 1693 max-link-speed = <2>; 1694 msi-map = <0x4000 &its0 0x4000 0x1000>; 1695 num-lanes = <1>; 1696 phys = <&combphy0_ps PHY_TYPE_PCIE>; 1697 phy-names = "pcie-phy"; 1698 power-domains = <&power RK3588_PD_PCIE>; 1699 ranges = <0x01000000 0x0 0xf4100000 0x0 0xf4100000 0x0 0x00100000>, 1700 <0x02000000 0x0 0xf4200000 0x0 0xf4200000 0x0 0x00e00000>, 1701 <0x03000000 0x0 0x40000000 0xa 0x00000000 0x0 0x40000000>; 1702 reg = <0xa 0x41000000 0x0 0x00400000>, 1703 <0x0 0xfe190000 0x0 0x00010000>, 1704 <0x0 0xf4000000 0x0 0x00100000>; 1705 reg-names = "dbi", "apb", "config"; 1706 resets = <&cru SRST_PCIE4_POWER_UP>, <&cru SRST_P_PCIE4>; 1707 reset-names = "pwr", "pipe"; 1708 #address-cells = <3>; 1709 #size-cells = <2>; 1710 status = "disabled"; 1711 1712 pcie2x1l2_intc: legacy-interrupt-controller { 1713 interrupt-controller; 1714 #address-cells = <0>; 1715 #interrupt-cells = <1>; 1716 interrupt-parent = <&gic>; 1717 interrupts = <GIC_SPI 250 IRQ_TYPE_EDGE_RISING 0>; 1718 }; 1719 }; 1720 1721 gmac1: ethernet@fe1c0000 { 1722 compatible = "rockchip,rk3588-gmac", "snps,dwmac-4.20a"; 1723 reg = <0x0 0xfe1c0000 0x0 0x10000>; 1724 interrupts = <GIC_SPI 234 IRQ_TYPE_LEVEL_HIGH 0>, 1725 <GIC_SPI 233 IRQ_TYPE_LEVEL_HIGH 0>; 1726 interrupt-names = "macirq", "eth_wake_irq"; 1727 clocks = <&cru CLK_GMAC_125M>, <&cru CLK_GMAC_50M>, 1728 <&cru PCLK_GMAC1>, <&cru ACLK_GMAC1>, 1729 <&cru CLK_GMAC1_PTP_REF>; 1730 clock-names = "stmmaceth", "clk_mac_ref", 1731 "pclk_mac", "aclk_mac", 1732 "ptp_ref"; 1733 power-domains = <&power RK3588_PD_GMAC>; 1734 resets = <&cru SRST_A_GMAC1>; 1735 reset-names = "stmmaceth"; 1736 rockchip,grf = <&sys_grf>; 1737 rockchip,php-grf = <&php_grf>; 1738 snps,axi-config = <&gmac1_stmmac_axi_setup>; 1739 snps,mixed-burst; 1740 snps,mtl-rx-config = <&gmac1_mtl_rx_setup>; 1741 snps,mtl-tx-config = <&gmac1_mtl_tx_setup>; 1742 snps,tso; 1743 status = "disabled"; 1744 1745 mdio1: mdio { 1746 compatible = "snps,dwmac-mdio"; 1747 #address-cells = <0x1>; 1748 #size-cells = <0x0>; 1749 }; 1750 1751 gmac1_stmmac_axi_setup: stmmac-axi-config { 1752 snps,blen = <0 0 0 0 16 8 4>; 1753 snps,wr_osr_lmt = <4>; 1754 snps,rd_osr_lmt = <8>; 1755 }; 1756 1757 gmac1_mtl_rx_setup: rx-queues-config { 1758 snps,rx-queues-to-use = <2>; 1759 queue0 {}; 1760 queue1 {}; 1761 }; 1762 1763 gmac1_mtl_tx_setup: tx-queues-config { 1764 snps,tx-queues-to-use = <2>; 1765 queue0 {}; 1766 queue1 {}; 1767 }; 1768 }; 1769 1770 sata0: sata@fe210000 { 1771 compatible = "rockchip,rk3588-dwc-ahci", "snps,dwc-ahci"; 1772 reg = <0 0xfe210000 0 0x1000>; 1773 interrupts = <GIC_SPI 273 IRQ_TYPE_LEVEL_HIGH 0>; 1774 clocks = <&cru ACLK_SATA0>, <&cru CLK_PMALIVE0>, 1775 <&cru CLK_RXOOB0>, <&cru CLK_PIPEPHY0_REF>, 1776 <&cru CLK_PIPEPHY0_PIPE_ASIC_G>; 1777 clock-names = "sata", "pmalive", "rxoob", "ref", "asic"; 1778 ports-implemented = <0x1>; 1779 #address-cells = <1>; 1780 #size-cells = <0>; 1781 status = "disabled"; 1782 1783 sata-port@0 { 1784 reg = <0>; 1785 hba-port-cap = <HBA_PORT_FBSCP>; 1786 phys = <&combphy0_ps PHY_TYPE_SATA>; 1787 phy-names = "sata-phy"; 1788 snps,rx-ts-max = <32>; 1789 snps,tx-ts-max = <32>; 1790 }; 1791 }; 1792 1793 sata2: sata@fe230000 { 1794 compatible = "rockchip,rk3588-dwc-ahci", "snps,dwc-ahci"; 1795 reg = <0 0xfe230000 0 0x1000>; 1796 interrupts = <GIC_SPI 275 IRQ_TYPE_LEVEL_HIGH 0>; 1797 clocks = <&cru ACLK_SATA2>, <&cru CLK_PMALIVE2>, 1798 <&cru CLK_RXOOB2>, <&cru CLK_PIPEPHY2_REF>, 1799 <&cru CLK_PIPEPHY2_PIPE_ASIC_G>; 1800 clock-names = "sata", "pmalive", "rxoob", "ref", "asic"; 1801 ports-implemented = <0x1>; 1802 #address-cells = <1>; 1803 #size-cells = <0>; 1804 status = "disabled"; 1805 1806 sata-port@0 { 1807 reg = <0>; 1808 hba-port-cap = <HBA_PORT_FBSCP>; 1809 phys = <&combphy2_psu PHY_TYPE_SATA>; 1810 phy-names = "sata-phy"; 1811 snps,rx-ts-max = <32>; 1812 snps,tx-ts-max = <32>; 1813 }; 1814 }; 1815 1816 sfc: spi@fe2b0000 { 1817 compatible = "rockchip,sfc"; 1818 reg = <0x0 0xfe2b0000 0x0 0x4000>; 1819 interrupts = <GIC_SPI 206 IRQ_TYPE_LEVEL_HIGH 0>; 1820 clocks = <&cru SCLK_SFC>, <&cru HCLK_SFC>; 1821 clock-names = "clk_sfc", "hclk_sfc"; 1822 #address-cells = <1>; 1823 #size-cells = <0>; 1824 status = "disabled"; 1825 }; 1826 1827 sdmmc: mmc@fe2c0000 { 1828 compatible = "rockchip,rk3588-dw-mshc", "rockchip,rk3288-dw-mshc"; 1829 reg = <0x0 0xfe2c0000 0x0 0x4000>; 1830 interrupts = <GIC_SPI 203 IRQ_TYPE_LEVEL_HIGH 0>; 1831 clocks = <&scmi_clk SCMI_HCLK_SD>, <&scmi_clk SCMI_CCLK_SD>, 1832 <&cru SCLK_SDMMC_DRV>, <&cru SCLK_SDMMC_SAMPLE>; 1833 clock-names = "biu", "ciu", "ciu-drive", "ciu-sample"; 1834 fifo-depth = <0x100>; 1835 max-frequency = <200000000>; 1836 pinctrl-names = "default"; 1837 pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_det &sdmmc_bus4>; 1838 power-domains = <&power RK3588_PD_SDMMC>; 1839 status = "disabled"; 1840 }; 1841 1842 sdio: mmc@fe2d0000 { 1843 compatible = "rockchip,rk3588-dw-mshc", "rockchip,rk3288-dw-mshc"; 1844 reg = <0x00 0xfe2d0000 0x00 0x4000>; 1845 interrupts = <GIC_SPI 204 IRQ_TYPE_LEVEL_HIGH 0>; 1846 clocks = <&cru HCLK_SDIO>, <&cru CCLK_SRC_SDIO>, 1847 <&cru SCLK_SDIO_DRV>, <&cru SCLK_SDIO_SAMPLE>; 1848 clock-names = "biu", "ciu", "ciu-drive", "ciu-sample"; 1849 fifo-depth = <0x100>; 1850 max-frequency = <200000000>; 1851 pinctrl-names = "default"; 1852 pinctrl-0 = <&sdiom1_pins>; 1853 power-domains = <&power RK3588_PD_SDIO>; 1854 status = "disabled"; 1855 }; 1856 1857 sdhci: mmc@fe2e0000 { 1858 compatible = "rockchip,rk3588-dwcmshc"; 1859 reg = <0x0 0xfe2e0000 0x0 0x10000>; 1860 interrupts = <GIC_SPI 205 IRQ_TYPE_LEVEL_HIGH 0>; 1861 assigned-clocks = <&cru BCLK_EMMC>, <&cru TMCLK_EMMC>, <&cru CCLK_EMMC>; 1862 assigned-clock-rates = <200000000>, <24000000>, <200000000>; 1863 clocks = <&cru CCLK_EMMC>, <&cru HCLK_EMMC>, 1864 <&cru ACLK_EMMC>, <&cru BCLK_EMMC>, 1865 <&cru TMCLK_EMMC>; 1866 clock-names = "core", "bus", "axi", "block", "timer"; 1867 max-frequency = <200000000>; 1868 pinctrl-0 = <&emmc_rstnout>, <&emmc_bus8>, <&emmc_clk>, 1869 <&emmc_cmd>, <&emmc_data_strobe>; 1870 pinctrl-names = "default"; 1871 resets = <&cru SRST_C_EMMC>, <&cru SRST_H_EMMC>, 1872 <&cru SRST_A_EMMC>, <&cru SRST_B_EMMC>, 1873 <&cru SRST_T_EMMC>; 1874 reset-names = "core", "bus", "axi", "block", "timer"; 1875 status = "disabled"; 1876 }; 1877 1878 i2s0_8ch: i2s@fe470000 { 1879 compatible = "rockchip,rk3588-i2s-tdm"; 1880 reg = <0x0 0xfe470000 0x0 0x1000>; 1881 interrupts = <GIC_SPI 180 IRQ_TYPE_LEVEL_HIGH 0>; 1882 clocks = <&cru MCLK_I2S0_8CH_TX>, <&cru MCLK_I2S0_8CH_RX>, <&cru HCLK_I2S0_8CH>; 1883 clock-names = "mclk_tx", "mclk_rx", "hclk"; 1884 assigned-clocks = <&cru CLK_I2S0_8CH_TX_SRC>, <&cru CLK_I2S0_8CH_RX_SRC>; 1885 assigned-clock-parents = <&cru PLL_AUPLL>, <&cru PLL_AUPLL>; 1886 dmas = <&dmac0 0>, <&dmac0 1>; 1887 dma-names = "tx", "rx"; 1888 power-domains = <&power RK3588_PD_AUDIO>; 1889 resets = <&cru SRST_M_I2S0_8CH_TX>, <&cru SRST_M_I2S0_8CH_RX>; 1890 reset-names = "tx-m", "rx-m"; 1891 rockchip,trcm-sync-tx-only; 1892 pinctrl-names = "default"; 1893 pinctrl-0 = <&i2s0_lrck 1894 &i2s0_sclk 1895 &i2s0_sdi0 1896 &i2s0_sdi1 1897 &i2s0_sdi2 1898 &i2s0_sdi3 1899 &i2s0_sdo0 1900 &i2s0_sdo1 1901 &i2s0_sdo2 1902 &i2s0_sdo3>; 1903 #sound-dai-cells = <0>; 1904 status = "disabled"; 1905 }; 1906 1907 i2s1_8ch: i2s@fe480000 { 1908 compatible = "rockchip,rk3588-i2s-tdm"; 1909 reg = <0x0 0xfe480000 0x0 0x1000>; 1910 interrupts = <GIC_SPI 181 IRQ_TYPE_LEVEL_HIGH 0>; 1911 clocks = <&cru MCLK_I2S1_8CH_TX>, <&cru MCLK_I2S1_8CH_RX>, <&cru HCLK_I2S1_8CH>; 1912 clock-names = "mclk_tx", "mclk_rx", "hclk"; 1913 dmas = <&dmac0 2>, <&dmac0 3>; 1914 dma-names = "tx", "rx"; 1915 resets = <&cru SRST_M_I2S1_8CH_TX>, <&cru SRST_M_I2S1_8CH_RX>; 1916 reset-names = "tx-m", "rx-m"; 1917 rockchip,trcm-sync-tx-only; 1918 pinctrl-names = "default"; 1919 pinctrl-0 = <&i2s1m0_lrck 1920 &i2s1m0_sclk 1921 &i2s1m0_sdi0 1922 &i2s1m0_sdi1 1923 &i2s1m0_sdi2 1924 &i2s1m0_sdi3 1925 &i2s1m0_sdo0 1926 &i2s1m0_sdo1 1927 &i2s1m0_sdo2 1928 &i2s1m0_sdo3>; 1929 #sound-dai-cells = <0>; 1930 status = "disabled"; 1931 }; 1932 1933 i2s2_2ch: i2s@fe490000 { 1934 compatible = "rockchip,rk3588-i2s", "rockchip,rk3066-i2s"; 1935 reg = <0x0 0xfe490000 0x0 0x1000>; 1936 interrupts = <GIC_SPI 182 IRQ_TYPE_LEVEL_HIGH 0>; 1937 clocks = <&cru MCLK_I2S2_2CH>, <&cru HCLK_I2S2_2CH>; 1938 clock-names = "i2s_clk", "i2s_hclk"; 1939 assigned-clocks = <&cru CLK_I2S2_2CH_SRC>; 1940 assigned-clock-parents = <&cru PLL_AUPLL>; 1941 dmas = <&dmac1 0>, <&dmac1 1>; 1942 dma-names = "tx", "rx"; 1943 power-domains = <&power RK3588_PD_AUDIO>; 1944 pinctrl-names = "default"; 1945 pinctrl-0 = <&i2s2m1_lrck 1946 &i2s2m1_sclk 1947 &i2s2m1_sdi 1948 &i2s2m1_sdo>; 1949 #sound-dai-cells = <0>; 1950 status = "disabled"; 1951 }; 1952 1953 i2s3_2ch: i2s@fe4a0000 { 1954 compatible = "rockchip,rk3588-i2s", "rockchip,rk3066-i2s"; 1955 reg = <0x0 0xfe4a0000 0x0 0x1000>; 1956 interrupts = <GIC_SPI 183 IRQ_TYPE_LEVEL_HIGH 0>; 1957 clocks = <&cru MCLK_I2S3_2CH>, <&cru HCLK_I2S3_2CH>; 1958 clock-names = "i2s_clk", "i2s_hclk"; 1959 assigned-clocks = <&cru CLK_I2S3_2CH_SRC>; 1960 assigned-clock-parents = <&cru PLL_AUPLL>; 1961 dmas = <&dmac1 2>, <&dmac1 3>; 1962 dma-names = "tx", "rx"; 1963 power-domains = <&power RK3588_PD_AUDIO>; 1964 pinctrl-names = "default"; 1965 pinctrl-0 = <&i2s3_lrck 1966 &i2s3_sclk 1967 &i2s3_sdi 1968 &i2s3_sdo>; 1969 #sound-dai-cells = <0>; 1970 status = "disabled"; 1971 }; 1972 1973 gic: interrupt-controller@fe600000 { 1974 compatible = "arm,gic-v3"; 1975 reg = <0x0 0xfe600000 0 0x10000>, /* GICD */ 1976 <0x0 0xfe680000 0 0x100000>; /* GICR */ 1977 interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH 0>; 1978 interrupt-controller; 1979 mbi-alias = <0x0 0xfe610000>; 1980 mbi-ranges = <424 56>; 1981 msi-controller; 1982 ranges; 1983 #address-cells = <2>; 1984 #interrupt-cells = <4>; 1985 #size-cells = <2>; 1986 1987 its0: msi-controller@fe640000 { 1988 compatible = "arm,gic-v3-its"; 1989 reg = <0x0 0xfe640000 0x0 0x20000>; 1990 msi-controller; 1991 #msi-cells = <1>; 1992 }; 1993 1994 its1: msi-controller@fe660000 { 1995 compatible = "arm,gic-v3-its"; 1996 reg = <0x0 0xfe660000 0x0 0x20000>; 1997 msi-controller; 1998 #msi-cells = <1>; 1999 }; 2000 2001 ppi-partitions { 2002 ppi_partition0: interrupt-partition-0 { 2003 affinity = <&cpu_l0 &cpu_l1 &cpu_l2 &cpu_l3>; 2004 }; 2005 2006 ppi_partition1: interrupt-partition-1 { 2007 affinity = <&cpu_b0 &cpu_b1 &cpu_b2 &cpu_b3>; 2008 }; 2009 }; 2010 }; 2011 2012 dmac0: dma-controller@fea10000 { 2013 compatible = "arm,pl330", "arm,primecell"; 2014 reg = <0x0 0xfea10000 0x0 0x4000>; 2015 interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH 0>, 2016 <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH 0>; 2017 arm,pl330-periph-burst; 2018 clocks = <&cru ACLK_DMAC0>; 2019 clock-names = "apb_pclk"; 2020 #dma-cells = <1>; 2021 }; 2022 2023 dmac1: dma-controller@fea30000 { 2024 compatible = "arm,pl330", "arm,primecell"; 2025 reg = <0x0 0xfea30000 0x0 0x4000>; 2026 interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH 0>, 2027 <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH 0>; 2028 arm,pl330-periph-burst; 2029 clocks = <&cru ACLK_DMAC1>; 2030 clock-names = "apb_pclk"; 2031 #dma-cells = <1>; 2032 }; 2033 2034 i2c1: i2c@fea90000 { 2035 compatible = "rockchip,rk3588-i2c", "rockchip,rk3399-i2c"; 2036 reg = <0x0 0xfea90000 0x0 0x1000>; 2037 clocks = <&cru CLK_I2C1>, <&cru PCLK_I2C1>; 2038 clock-names = "i2c", "pclk"; 2039 interrupts = <GIC_SPI 318 IRQ_TYPE_LEVEL_HIGH 0>; 2040 pinctrl-0 = <&i2c1m0_xfer>; 2041 pinctrl-names = "default"; 2042 #address-cells = <1>; 2043 #size-cells = <0>; 2044 status = "disabled"; 2045 }; 2046 2047 i2c2: i2c@feaa0000 { 2048 compatible = "rockchip,rk3588-i2c", "rockchip,rk3399-i2c"; 2049 reg = <0x0 0xfeaa0000 0x0 0x1000>; 2050 clocks = <&cru CLK_I2C2>, <&cru PCLK_I2C2>; 2051 clock-names = "i2c", "pclk"; 2052 interrupts = <GIC_SPI 319 IRQ_TYPE_LEVEL_HIGH 0>; 2053 pinctrl-0 = <&i2c2m0_xfer>; 2054 pinctrl-names = "default"; 2055 #address-cells = <1>; 2056 #size-cells = <0>; 2057 status = "disabled"; 2058 }; 2059 2060 i2c3: i2c@feab0000 { 2061 compatible = "rockchip,rk3588-i2c", "rockchip,rk3399-i2c"; 2062 reg = <0x0 0xfeab0000 0x0 0x1000>; 2063 clocks = <&cru CLK_I2C3>, <&cru PCLK_I2C3>; 2064 clock-names = "i2c", "pclk"; 2065 interrupts = <GIC_SPI 320 IRQ_TYPE_LEVEL_HIGH 0>; 2066 pinctrl-0 = <&i2c3m0_xfer>; 2067 pinctrl-names = "default"; 2068 #address-cells = <1>; 2069 #size-cells = <0>; 2070 status = "disabled"; 2071 }; 2072 2073 i2c4: i2c@feac0000 { 2074 compatible = "rockchip,rk3588-i2c", "rockchip,rk3399-i2c"; 2075 reg = <0x0 0xfeac0000 0x0 0x1000>; 2076 clocks = <&cru CLK_I2C4>, <&cru PCLK_I2C4>; 2077 clock-names = "i2c", "pclk"; 2078 interrupts = <GIC_SPI 321 IRQ_TYPE_LEVEL_HIGH 0>; 2079 pinctrl-0 = <&i2c4m0_xfer>; 2080 pinctrl-names = "default"; 2081 #address-cells = <1>; 2082 #size-cells = <0>; 2083 status = "disabled"; 2084 }; 2085 2086 i2c5: i2c@fead0000 { 2087 compatible = "rockchip,rk3588-i2c", "rockchip,rk3399-i2c"; 2088 reg = <0x0 0xfead0000 0x0 0x1000>; 2089 clocks = <&cru CLK_I2C5>, <&cru PCLK_I2C5>; 2090 clock-names = "i2c", "pclk"; 2091 interrupts = <GIC_SPI 322 IRQ_TYPE_LEVEL_HIGH 0>; 2092 pinctrl-0 = <&i2c5m0_xfer>; 2093 pinctrl-names = "default"; 2094 #address-cells = <1>; 2095 #size-cells = <0>; 2096 status = "disabled"; 2097 }; 2098 2099 timer0: timer@feae0000 { 2100 compatible = "rockchip,rk3588-timer", "rockchip,rk3288-timer"; 2101 reg = <0x0 0xfeae0000 0x0 0x20>; 2102 interrupts = <GIC_SPI 289 IRQ_TYPE_LEVEL_HIGH 0>; 2103 clocks = <&cru PCLK_BUSTIMER0>, <&cru CLK_BUSTIMER0>; 2104 clock-names = "pclk", "timer"; 2105 }; 2106 2107 wdt: watchdog@feaf0000 { 2108 compatible = "rockchip,rk3588-wdt", "snps,dw-wdt"; 2109 reg = <0x0 0xfeaf0000 0x0 0x100>; 2110 clocks = <&cru TCLK_WDT0>, <&cru PCLK_WDT0>; 2111 clock-names = "tclk", "pclk"; 2112 interrupts = <GIC_SPI 315 IRQ_TYPE_LEVEL_HIGH 0>; 2113 }; 2114 2115 spi0: spi@feb00000 { 2116 compatible = "rockchip,rk3588-spi", "rockchip,rk3066-spi"; 2117 reg = <0x0 0xfeb00000 0x0 0x1000>; 2118 interrupts = <GIC_SPI 326 IRQ_TYPE_LEVEL_HIGH 0>; 2119 clocks = <&cru CLK_SPI0>, <&cru PCLK_SPI0>; 2120 clock-names = "spiclk", "apb_pclk"; 2121 dmas = <&dmac0 14>, <&dmac0 15>; 2122 dma-names = "tx", "rx"; 2123 num-cs = <2>; 2124 pinctrl-0 = <&spi0m0_cs0 &spi0m0_cs1 &spi0m0_pins>; 2125 pinctrl-names = "default"; 2126 #address-cells = <1>; 2127 #size-cells = <0>; 2128 status = "disabled"; 2129 }; 2130 2131 spi1: spi@feb10000 { 2132 compatible = "rockchip,rk3588-spi", "rockchip,rk3066-spi"; 2133 reg = <0x0 0xfeb10000 0x0 0x1000>; 2134 interrupts = <GIC_SPI 327 IRQ_TYPE_LEVEL_HIGH 0>; 2135 clocks = <&cru CLK_SPI1>, <&cru PCLK_SPI1>; 2136 clock-names = "spiclk", "apb_pclk"; 2137 dmas = <&dmac0 16>, <&dmac0 17>; 2138 dma-names = "tx", "rx"; 2139 num-cs = <2>; 2140 pinctrl-0 = <&spi1m1_cs0 &spi1m1_cs1 &spi1m1_pins>; 2141 pinctrl-names = "default"; 2142 #address-cells = <1>; 2143 #size-cells = <0>; 2144 status = "disabled"; 2145 }; 2146 2147 spi2: spi@feb20000 { 2148 compatible = "rockchip,rk3588-spi", "rockchip,rk3066-spi"; 2149 reg = <0x0 0xfeb20000 0x0 0x1000>; 2150 interrupts = <GIC_SPI 328 IRQ_TYPE_LEVEL_HIGH 0>; 2151 clocks = <&cru CLK_SPI2>, <&cru PCLK_SPI2>; 2152 clock-names = "spiclk", "apb_pclk"; 2153 dmas = <&dmac1 15>, <&dmac1 16>; 2154 dma-names = "tx", "rx"; 2155 num-cs = <2>; 2156 pinctrl-0 = <&spi2m2_cs0 &spi2m2_cs1 &spi2m2_pins>; 2157 pinctrl-names = "default"; 2158 #address-cells = <1>; 2159 #size-cells = <0>; 2160 status = "disabled"; 2161 }; 2162 2163 spi3: spi@feb30000 { 2164 compatible = "rockchip,rk3588-spi", "rockchip,rk3066-spi"; 2165 reg = <0x0 0xfeb30000 0x0 0x1000>; 2166 interrupts = <GIC_SPI 329 IRQ_TYPE_LEVEL_HIGH 0>; 2167 clocks = <&cru CLK_SPI3>, <&cru PCLK_SPI3>; 2168 clock-names = "spiclk", "apb_pclk"; 2169 dmas = <&dmac1 17>, <&dmac1 18>; 2170 dma-names = "tx", "rx"; 2171 num-cs = <2>; 2172 pinctrl-0 = <&spi3m1_cs0 &spi3m1_cs1 &spi3m1_pins>; 2173 pinctrl-names = "default"; 2174 #address-cells = <1>; 2175 #size-cells = <0>; 2176 status = "disabled"; 2177 }; 2178 2179 uart1: serial@feb40000 { 2180 compatible = "rockchip,rk3588-uart", "snps,dw-apb-uart"; 2181 reg = <0x0 0xfeb40000 0x0 0x100>; 2182 interrupts = <GIC_SPI 332 IRQ_TYPE_LEVEL_HIGH 0>; 2183 clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>; 2184 clock-names = "baudclk", "apb_pclk"; 2185 dmas = <&dmac0 8>, <&dmac0 9>; 2186 dma-names = "tx", "rx"; 2187 pinctrl-0 = <&uart1m1_xfer>; 2188 pinctrl-names = "default"; 2189 reg-io-width = <4>; 2190 reg-shift = <2>; 2191 status = "disabled"; 2192 }; 2193 2194 uart2: serial@feb50000 { 2195 compatible = "rockchip,rk3588-uart", "snps,dw-apb-uart"; 2196 reg = <0x0 0xfeb50000 0x0 0x100>; 2197 interrupts = <GIC_SPI 333 IRQ_TYPE_LEVEL_HIGH 0>; 2198 clocks = <&cru SCLK_UART2>, <&cru PCLK_UART2>; 2199 clock-names = "baudclk", "apb_pclk"; 2200 dmas = <&dmac0 10>, <&dmac0 11>; 2201 dma-names = "tx", "rx"; 2202 pinctrl-0 = <&uart2m1_xfer>; 2203 pinctrl-names = "default"; 2204 reg-io-width = <4>; 2205 reg-shift = <2>; 2206 status = "disabled"; 2207 }; 2208 2209 uart3: serial@feb60000 { 2210 compatible = "rockchip,rk3588-uart", "snps,dw-apb-uart"; 2211 reg = <0x0 0xfeb60000 0x0 0x100>; 2212 interrupts = <GIC_SPI 334 IRQ_TYPE_LEVEL_HIGH 0>; 2213 clocks = <&cru SCLK_UART3>, <&cru PCLK_UART3>; 2214 clock-names = "baudclk", "apb_pclk"; 2215 dmas = <&dmac0 12>, <&dmac0 13>; 2216 dma-names = "tx", "rx"; 2217 pinctrl-0 = <&uart3m1_xfer>; 2218 pinctrl-names = "default"; 2219 reg-io-width = <4>; 2220 reg-shift = <2>; 2221 status = "disabled"; 2222 }; 2223 2224 uart4: serial@feb70000 { 2225 compatible = "rockchip,rk3588-uart", "snps,dw-apb-uart"; 2226 reg = <0x0 0xfeb70000 0x0 0x100>; 2227 interrupts = <GIC_SPI 335 IRQ_TYPE_LEVEL_HIGH 0>; 2228 clocks = <&cru SCLK_UART4>, <&cru PCLK_UART4>; 2229 clock-names = "baudclk", "apb_pclk"; 2230 dmas = <&dmac1 9>, <&dmac1 10>; 2231 dma-names = "tx", "rx"; 2232 pinctrl-0 = <&uart4m1_xfer>; 2233 pinctrl-names = "default"; 2234 reg-io-width = <4>; 2235 reg-shift = <2>; 2236 status = "disabled"; 2237 }; 2238 2239 uart5: serial@feb80000 { 2240 compatible = "rockchip,rk3588-uart", "snps,dw-apb-uart"; 2241 reg = <0x0 0xfeb80000 0x0 0x100>; 2242 interrupts = <GIC_SPI 336 IRQ_TYPE_LEVEL_HIGH 0>; 2243 clocks = <&cru SCLK_UART5>, <&cru PCLK_UART5>; 2244 clock-names = "baudclk", "apb_pclk"; 2245 dmas = <&dmac1 11>, <&dmac1 12>; 2246 dma-names = "tx", "rx"; 2247 pinctrl-0 = <&uart5m1_xfer>; 2248 pinctrl-names = "default"; 2249 reg-io-width = <4>; 2250 reg-shift = <2>; 2251 status = "disabled"; 2252 }; 2253 2254 uart6: serial@feb90000 { 2255 compatible = "rockchip,rk3588-uart", "snps,dw-apb-uart"; 2256 reg = <0x0 0xfeb90000 0x0 0x100>; 2257 interrupts = <GIC_SPI 337 IRQ_TYPE_LEVEL_HIGH 0>; 2258 clocks = <&cru SCLK_UART6>, <&cru PCLK_UART6>; 2259 clock-names = "baudclk", "apb_pclk"; 2260 dmas = <&dmac1 13>, <&dmac1 14>; 2261 dma-names = "tx", "rx"; 2262 pinctrl-0 = <&uart6m1_xfer>; 2263 pinctrl-names = "default"; 2264 reg-io-width = <4>; 2265 reg-shift = <2>; 2266 status = "disabled"; 2267 }; 2268 2269 uart7: serial@feba0000 { 2270 compatible = "rockchip,rk3588-uart", "snps,dw-apb-uart"; 2271 reg = <0x0 0xfeba0000 0x0 0x100>; 2272 interrupts = <GIC_SPI 338 IRQ_TYPE_LEVEL_HIGH 0>; 2273 clocks = <&cru SCLK_UART7>, <&cru PCLK_UART7>; 2274 clock-names = "baudclk", "apb_pclk"; 2275 dmas = <&dmac2 7>, <&dmac2 8>; 2276 dma-names = "tx", "rx"; 2277 pinctrl-0 = <&uart7m1_xfer>; 2278 pinctrl-names = "default"; 2279 reg-io-width = <4>; 2280 reg-shift = <2>; 2281 status = "disabled"; 2282 }; 2283 2284 uart8: serial@febb0000 { 2285 compatible = "rockchip,rk3588-uart", "snps,dw-apb-uart"; 2286 reg = <0x0 0xfebb0000 0x0 0x100>; 2287 interrupts = <GIC_SPI 339 IRQ_TYPE_LEVEL_HIGH 0>; 2288 clocks = <&cru SCLK_UART8>, <&cru PCLK_UART8>; 2289 clock-names = "baudclk", "apb_pclk"; 2290 dmas = <&dmac2 9>, <&dmac2 10>; 2291 dma-names = "tx", "rx"; 2292 pinctrl-0 = <&uart8m1_xfer>; 2293 pinctrl-names = "default"; 2294 reg-io-width = <4>; 2295 reg-shift = <2>; 2296 status = "disabled"; 2297 }; 2298 2299 uart9: serial@febc0000 { 2300 compatible = "rockchip,rk3588-uart", "snps,dw-apb-uart"; 2301 reg = <0x0 0xfebc0000 0x0 0x100>; 2302 interrupts = <GIC_SPI 340 IRQ_TYPE_LEVEL_HIGH 0>; 2303 clocks = <&cru SCLK_UART9>, <&cru PCLK_UART9>; 2304 clock-names = "baudclk", "apb_pclk"; 2305 dmas = <&dmac2 11>, <&dmac2 12>; 2306 dma-names = "tx", "rx"; 2307 pinctrl-0 = <&uart9m1_xfer>; 2308 pinctrl-names = "default"; 2309 reg-io-width = <4>; 2310 reg-shift = <2>; 2311 status = "disabled"; 2312 }; 2313 2314 pwm4: pwm@febd0000 { 2315 compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm"; 2316 reg = <0x0 0xfebd0000 0x0 0x10>; 2317 clocks = <&cru CLK_PWM1>, <&cru PCLK_PWM1>; 2318 clock-names = "pwm", "pclk"; 2319 pinctrl-0 = <&pwm4m0_pins>; 2320 pinctrl-names = "default"; 2321 #pwm-cells = <3>; 2322 status = "disabled"; 2323 }; 2324 2325 pwm5: pwm@febd0010 { 2326 compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm"; 2327 reg = <0x0 0xfebd0010 0x0 0x10>; 2328 clocks = <&cru CLK_PWM1>, <&cru PCLK_PWM1>; 2329 clock-names = "pwm", "pclk"; 2330 pinctrl-0 = <&pwm5m0_pins>; 2331 pinctrl-names = "default"; 2332 #pwm-cells = <3>; 2333 status = "disabled"; 2334 }; 2335 2336 pwm6: pwm@febd0020 { 2337 compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm"; 2338 reg = <0x0 0xfebd0020 0x0 0x10>; 2339 clocks = <&cru CLK_PWM1>, <&cru PCLK_PWM1>; 2340 clock-names = "pwm", "pclk"; 2341 pinctrl-0 = <&pwm6m0_pins>; 2342 pinctrl-names = "default"; 2343 #pwm-cells = <3>; 2344 status = "disabled"; 2345 }; 2346 2347 pwm7: pwm@febd0030 { 2348 compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm"; 2349 reg = <0x0 0xfebd0030 0x0 0x10>; 2350 clocks = <&cru CLK_PWM1>, <&cru PCLK_PWM1>; 2351 clock-names = "pwm", "pclk"; 2352 pinctrl-0 = <&pwm7m0_pins>; 2353 pinctrl-names = "default"; 2354 #pwm-cells = <3>; 2355 status = "disabled"; 2356 }; 2357 2358 pwm8: pwm@febe0000 { 2359 compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm"; 2360 reg = <0x0 0xfebe0000 0x0 0x10>; 2361 clocks = <&cru CLK_PWM2>, <&cru PCLK_PWM2>; 2362 clock-names = "pwm", "pclk"; 2363 pinctrl-0 = <&pwm8m0_pins>; 2364 pinctrl-names = "default"; 2365 #pwm-cells = <3>; 2366 status = "disabled"; 2367 }; 2368 2369 pwm9: pwm@febe0010 { 2370 compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm"; 2371 reg = <0x0 0xfebe0010 0x0 0x10>; 2372 clocks = <&cru CLK_PWM2>, <&cru PCLK_PWM2>; 2373 clock-names = "pwm", "pclk"; 2374 pinctrl-0 = <&pwm9m0_pins>; 2375 pinctrl-names = "default"; 2376 #pwm-cells = <3>; 2377 status = "disabled"; 2378 }; 2379 2380 pwm10: pwm@febe0020 { 2381 compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm"; 2382 reg = <0x0 0xfebe0020 0x0 0x10>; 2383 clocks = <&cru CLK_PWM2>, <&cru PCLK_PWM2>; 2384 clock-names = "pwm", "pclk"; 2385 pinctrl-0 = <&pwm10m0_pins>; 2386 pinctrl-names = "default"; 2387 #pwm-cells = <3>; 2388 status = "disabled"; 2389 }; 2390 2391 pwm11: pwm@febe0030 { 2392 compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm"; 2393 reg = <0x0 0xfebe0030 0x0 0x10>; 2394 clocks = <&cru CLK_PWM2>, <&cru PCLK_PWM2>; 2395 clock-names = "pwm", "pclk"; 2396 pinctrl-0 = <&pwm11m0_pins>; 2397 pinctrl-names = "default"; 2398 #pwm-cells = <3>; 2399 status = "disabled"; 2400 }; 2401 2402 pwm12: pwm@febf0000 { 2403 compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm"; 2404 reg = <0x0 0xfebf0000 0x0 0x10>; 2405 clocks = <&cru CLK_PWM3>, <&cru PCLK_PWM3>; 2406 clock-names = "pwm", "pclk"; 2407 pinctrl-0 = <&pwm12m0_pins>; 2408 pinctrl-names = "default"; 2409 #pwm-cells = <3>; 2410 status = "disabled"; 2411 }; 2412 2413 pwm13: pwm@febf0010 { 2414 compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm"; 2415 reg = <0x0 0xfebf0010 0x0 0x10>; 2416 clocks = <&cru CLK_PWM3>, <&cru PCLK_PWM3>; 2417 clock-names = "pwm", "pclk"; 2418 pinctrl-0 = <&pwm13m0_pins>; 2419 pinctrl-names = "default"; 2420 #pwm-cells = <3>; 2421 status = "disabled"; 2422 }; 2423 2424 pwm14: pwm@febf0020 { 2425 compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm"; 2426 reg = <0x0 0xfebf0020 0x0 0x10>; 2427 clocks = <&cru CLK_PWM3>, <&cru PCLK_PWM3>; 2428 clock-names = "pwm", "pclk"; 2429 pinctrl-0 = <&pwm14m0_pins>; 2430 pinctrl-names = "default"; 2431 #pwm-cells = <3>; 2432 status = "disabled"; 2433 }; 2434 2435 pwm15: pwm@febf0030 { 2436 compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm"; 2437 reg = <0x0 0xfebf0030 0x0 0x10>; 2438 clocks = <&cru CLK_PWM3>, <&cru PCLK_PWM3>; 2439 clock-names = "pwm", "pclk"; 2440 pinctrl-0 = <&pwm15m0_pins>; 2441 pinctrl-names = "default"; 2442 #pwm-cells = <3>; 2443 status = "disabled"; 2444 }; 2445 2446 thermal_zones: thermal-zones { 2447 /* sensor near the center of the SoC */ 2448 package_thermal: package-thermal { 2449 polling-delay-passive = <0>; 2450 polling-delay = <0>; 2451 thermal-sensors = <&tsadc 0>; 2452 2453 trips { 2454 package_crit: package-crit { 2455 temperature = <115000>; 2456 hysteresis = <0>; 2457 type = "critical"; 2458 }; 2459 }; 2460 }; 2461 2462 /* sensor between A76 cores 0 and 1 */ 2463 bigcore0_thermal: bigcore0-thermal { 2464 polling-delay-passive = <100>; 2465 polling-delay = <0>; 2466 thermal-sensors = <&tsadc 1>; 2467 2468 trips { 2469 bigcore0_alert: bigcore0-alert { 2470 temperature = <85000>; 2471 hysteresis = <2000>; 2472 type = "passive"; 2473 }; 2474 2475 bigcore0_crit: bigcore0-crit { 2476 temperature = <115000>; 2477 hysteresis = <0>; 2478 type = "critical"; 2479 }; 2480 }; 2481 2482 cooling-maps { 2483 map0 { 2484 trip = <&bigcore0_alert>; 2485 cooling-device = 2486 <&cpu_b0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 2487 <&cpu_b1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; 2488 }; 2489 }; 2490 }; 2491 2492 /* sensor between A76 cores 2 and 3 */ 2493 bigcore2_thermal: bigcore2-thermal { 2494 polling-delay-passive = <100>; 2495 polling-delay = <0>; 2496 thermal-sensors = <&tsadc 2>; 2497 2498 trips { 2499 bigcore2_alert: bigcore2-alert { 2500 temperature = <85000>; 2501 hysteresis = <2000>; 2502 type = "passive"; 2503 }; 2504 2505 bigcore2_crit: bigcore2-crit { 2506 temperature = <115000>; 2507 hysteresis = <0>; 2508 type = "critical"; 2509 }; 2510 }; 2511 2512 cooling-maps { 2513 map0 { 2514 trip = <&bigcore2_alert>; 2515 cooling-device = 2516 <&cpu_b2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 2517 <&cpu_b3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; 2518 }; 2519 }; 2520 }; 2521 2522 /* sensor between the four A55 cores */ 2523 little_core_thermal: littlecore-thermal { 2524 polling-delay-passive = <100>; 2525 polling-delay = <0>; 2526 thermal-sensors = <&tsadc 3>; 2527 2528 trips { 2529 littlecore_alert: littlecore-alert { 2530 temperature = <85000>; 2531 hysteresis = <2000>; 2532 type = "passive"; 2533 }; 2534 2535 littlecore_crit: littlecore-crit { 2536 temperature = <115000>; 2537 hysteresis = <0>; 2538 type = "critical"; 2539 }; 2540 }; 2541 2542 cooling-maps { 2543 map0 { 2544 trip = <&littlecore_alert>; 2545 cooling-device = 2546 <&cpu_l0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 2547 <&cpu_l1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 2548 <&cpu_l2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 2549 <&cpu_l3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; 2550 }; 2551 }; 2552 }; 2553 2554 /* sensor near the PD_CENTER power domain */ 2555 center_thermal: center-thermal { 2556 polling-delay-passive = <0>; 2557 polling-delay = <0>; 2558 thermal-sensors = <&tsadc 4>; 2559 2560 trips { 2561 center_crit: center-crit { 2562 temperature = <115000>; 2563 hysteresis = <0>; 2564 type = "critical"; 2565 }; 2566 }; 2567 }; 2568 2569 gpu_thermal: gpu-thermal { 2570 polling-delay-passive = <100>; 2571 polling-delay = <0>; 2572 thermal-sensors = <&tsadc 5>; 2573 2574 trips { 2575 gpu_alert: gpu-alert { 2576 temperature = <85000>; 2577 hysteresis = <2000>; 2578 type = "passive"; 2579 }; 2580 2581 gpu_crit: gpu-crit { 2582 temperature = <115000>; 2583 hysteresis = <0>; 2584 type = "critical"; 2585 }; 2586 }; 2587 2588 cooling-maps { 2589 map0 { 2590 trip = <&gpu_alert>; 2591 cooling-device = 2592 <&gpu THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; 2593 }; 2594 }; 2595 }; 2596 2597 npu_thermal: npu-thermal { 2598 polling-delay-passive = <0>; 2599 polling-delay = <0>; 2600 thermal-sensors = <&tsadc 6>; 2601 2602 trips { 2603 npu_crit: npu-crit { 2604 temperature = <115000>; 2605 hysteresis = <0>; 2606 type = "critical"; 2607 }; 2608 }; 2609 }; 2610 }; 2611 2612 tsadc: tsadc@fec00000 { 2613 compatible = "rockchip,rk3588-tsadc"; 2614 reg = <0x0 0xfec00000 0x0 0x400>; 2615 interrupts = <GIC_SPI 397 IRQ_TYPE_LEVEL_HIGH 0>; 2616 clocks = <&cru CLK_TSADC>, <&cru PCLK_TSADC>; 2617 clock-names = "tsadc", "apb_pclk"; 2618 assigned-clocks = <&cru CLK_TSADC>; 2619 assigned-clock-rates = <2000000>; 2620 resets = <&cru SRST_P_TSADC>, <&cru SRST_TSADC>; 2621 reset-names = "tsadc-apb", "tsadc"; 2622 rockchip,hw-tshut-temp = <120000>; 2623 rockchip,hw-tshut-mode = <0>; /* tshut mode 0:CRU 1:GPIO */ 2624 rockchip,hw-tshut-polarity = <0>; /* tshut polarity 0:LOW 1:HIGH */ 2625 pinctrl-0 = <&tsadc_gpio_func>; 2626 pinctrl-1 = <&tsadc_shut>; 2627 pinctrl-names = "gpio", "otpout"; 2628 #thermal-sensor-cells = <1>; 2629 status = "disabled"; 2630 }; 2631 2632 saradc: adc@fec10000 { 2633 compatible = "rockchip,rk3588-saradc"; 2634 reg = <0x0 0xfec10000 0x0 0x10000>; 2635 interrupts = <GIC_SPI 398 IRQ_TYPE_LEVEL_HIGH 0>; 2636 #io-channel-cells = <1>; 2637 clocks = <&cru CLK_SARADC>, <&cru PCLK_SARADC>; 2638 clock-names = "saradc", "apb_pclk"; 2639 resets = <&cru SRST_P_SARADC>; 2640 reset-names = "saradc-apb"; 2641 status = "disabled"; 2642 }; 2643 2644 i2c6: i2c@fec80000 { 2645 compatible = "rockchip,rk3588-i2c", "rockchip,rk3399-i2c"; 2646 reg = <0x0 0xfec80000 0x0 0x1000>; 2647 clocks = <&cru CLK_I2C6>, <&cru PCLK_I2C6>; 2648 clock-names = "i2c", "pclk"; 2649 interrupts = <GIC_SPI 323 IRQ_TYPE_LEVEL_HIGH 0>; 2650 pinctrl-0 = <&i2c6m0_xfer>; 2651 pinctrl-names = "default"; 2652 #address-cells = <1>; 2653 #size-cells = <0>; 2654 status = "disabled"; 2655 }; 2656 2657 i2c7: i2c@fec90000 { 2658 compatible = "rockchip,rk3588-i2c", "rockchip,rk3399-i2c"; 2659 reg = <0x0 0xfec90000 0x0 0x1000>; 2660 clocks = <&cru CLK_I2C7>, <&cru PCLK_I2C7>; 2661 clock-names = "i2c", "pclk"; 2662 interrupts = <GIC_SPI 324 IRQ_TYPE_LEVEL_HIGH 0>; 2663 pinctrl-0 = <&i2c7m0_xfer>; 2664 pinctrl-names = "default"; 2665 #address-cells = <1>; 2666 #size-cells = <0>; 2667 status = "disabled"; 2668 }; 2669 2670 i2c8: i2c@feca0000 { 2671 compatible = "rockchip,rk3588-i2c", "rockchip,rk3399-i2c"; 2672 reg = <0x0 0xfeca0000 0x0 0x1000>; 2673 clocks = <&cru CLK_I2C8>, <&cru PCLK_I2C8>; 2674 clock-names = "i2c", "pclk"; 2675 interrupts = <GIC_SPI 325 IRQ_TYPE_LEVEL_HIGH 0>; 2676 pinctrl-0 = <&i2c8m0_xfer>; 2677 pinctrl-names = "default"; 2678 #address-cells = <1>; 2679 #size-cells = <0>; 2680 status = "disabled"; 2681 }; 2682 2683 spi4: spi@fecb0000 { 2684 compatible = "rockchip,rk3588-spi", "rockchip,rk3066-spi"; 2685 reg = <0x0 0xfecb0000 0x0 0x1000>; 2686 interrupts = <GIC_SPI 330 IRQ_TYPE_LEVEL_HIGH 0>; 2687 clocks = <&cru CLK_SPI4>, <&cru PCLK_SPI4>; 2688 clock-names = "spiclk", "apb_pclk"; 2689 dmas = <&dmac2 13>, <&dmac2 14>; 2690 dma-names = "tx", "rx"; 2691 num-cs = <2>; 2692 pinctrl-0 = <&spi4m0_cs0 &spi4m0_cs1 &spi4m0_pins>; 2693 pinctrl-names = "default"; 2694 #address-cells = <1>; 2695 #size-cells = <0>; 2696 status = "disabled"; 2697 }; 2698 2699 otp: efuse@fecc0000 { 2700 compatible = "rockchip,rk3588-otp"; 2701 reg = <0x0 0xfecc0000 0x0 0x400>; 2702 clocks = <&cru CLK_OTPC_NS>, <&cru PCLK_OTPC_NS>, 2703 <&cru CLK_OTP_PHY_G>, <&cru CLK_OTPC_ARB>; 2704 clock-names = "otp", "apb_pclk", "phy", "arb"; 2705 resets = <&cru SRST_OTPC_NS>, <&cru SRST_P_OTPC_NS>, 2706 <&cru SRST_OTPC_ARB>; 2707 reset-names = "otp", "apb", "arb"; 2708 #address-cells = <1>; 2709 #size-cells = <1>; 2710 2711 cpu_code: cpu-code@2 { 2712 reg = <0x02 0x2>; 2713 }; 2714 2715 otp_id: id@7 { 2716 reg = <0x07 0x10>; 2717 }; 2718 2719 cpub0_leakage: cpu-leakage@17 { 2720 reg = <0x17 0x1>; 2721 }; 2722 2723 cpub1_leakage: cpu-leakage@18 { 2724 reg = <0x18 0x1>; 2725 }; 2726 2727 cpul_leakage: cpu-leakage@19 { 2728 reg = <0x19 0x1>; 2729 }; 2730 2731 log_leakage: log-leakage@1a { 2732 reg = <0x1a 0x1>; 2733 }; 2734 2735 gpu_leakage: gpu-leakage@1b { 2736 reg = <0x1b 0x1>; 2737 }; 2738 2739 otp_cpu_version: cpu-version@1c { 2740 reg = <0x1c 0x1>; 2741 bits = <3 3>; 2742 }; 2743 2744 npu_leakage: npu-leakage@28 { 2745 reg = <0x28 0x1>; 2746 }; 2747 2748 codec_leakage: codec-leakage@29 { 2749 reg = <0x29 0x1>; 2750 }; 2751 }; 2752 2753 dmac2: dma-controller@fed10000 { 2754 compatible = "arm,pl330", "arm,primecell"; 2755 reg = <0x0 0xfed10000 0x0 0x4000>; 2756 interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH 0>, 2757 <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH 0>; 2758 arm,pl330-periph-burst; 2759 clocks = <&cru ACLK_DMAC2>; 2760 clock-names = "apb_pclk"; 2761 #dma-cells = <1>; 2762 }; 2763 2764 hdptxphy_hdmi0: phy@fed60000 { 2765 compatible = "rockchip,rk3588-hdptx-phy"; 2766 reg = <0x0 0xfed60000 0x0 0x2000>; 2767 clocks = <&cru CLK_USB2PHY_HDPTXRXPHY_REF>, <&cru PCLK_HDPTX0>; 2768 clock-names = "ref", "apb"; 2769 #phy-cells = <0>; 2770 resets = <&cru SRST_HDPTX0>, <&cru SRST_P_HDPTX0>, 2771 <&cru SRST_HDPTX0_INIT>, <&cru SRST_HDPTX0_CMN>, 2772 <&cru SRST_HDPTX0_LANE>, <&cru SRST_HDPTX0_ROPLL>, 2773 <&cru SRST_HDPTX0_LCPLL>; 2774 reset-names = "phy", "apb", "init", "cmn", "lane", "ropll", 2775 "lcpll"; 2776 rockchip,grf = <&hdptxphy0_grf>; 2777 status = "disabled"; 2778 }; 2779 2780 usbdp_phy0: phy@fed80000 { 2781 compatible = "rockchip,rk3588-usbdp-phy"; 2782 reg = <0x0 0xfed80000 0x0 0x10000>; 2783 #phy-cells = <1>; 2784 clocks = <&cru CLK_USBDPPHY_MIPIDCPPHY_REF>, 2785 <&cru CLK_USBDP_PHY0_IMMORTAL>, 2786 <&cru PCLK_USBDPPHY0>, 2787 <&u2phy0>; 2788 clock-names = "refclk", "immortal", "pclk", "utmi"; 2789 resets = <&cru SRST_USBDP_COMBO_PHY0_INIT>, 2790 <&cru SRST_USBDP_COMBO_PHY0_CMN>, 2791 <&cru SRST_USBDP_COMBO_PHY0_LANE>, 2792 <&cru SRST_USBDP_COMBO_PHY0_PCS>, 2793 <&cru SRST_P_USBDPPHY0>; 2794 reset-names = "init", "cmn", "lane", "pcs_apb", "pma_apb"; 2795 rockchip,u2phy-grf = <&usb2phy0_grf>; 2796 rockchip,usb-grf = <&usb_grf>; 2797 rockchip,usbdpphy-grf = <&usbdpphy0_grf>; 2798 rockchip,vo-grf = <&vo0_grf>; 2799 status = "disabled"; 2800 }; 2801 2802 combphy0_ps: phy@fee00000 { 2803 compatible = "rockchip,rk3588-naneng-combphy"; 2804 reg = <0x0 0xfee00000 0x0 0x100>; 2805 clocks = <&cru CLK_REF_PIPE_PHY0>, <&cru PCLK_PCIE_COMBO_PIPE_PHY0>, 2806 <&cru PCLK_PHP_ROOT>; 2807 clock-names = "ref", "apb", "pipe"; 2808 assigned-clocks = <&cru CLK_REF_PIPE_PHY0>; 2809 assigned-clock-rates = <100000000>; 2810 #phy-cells = <1>; 2811 resets = <&cru SRST_REF_PIPE_PHY0>, <&cru SRST_P_PCIE2_PHY0>; 2812 reset-names = "phy", "apb"; 2813 rockchip,pipe-grf = <&php_grf>; 2814 rockchip,pipe-phy-grf = <&pipe_phy0_grf>; 2815 status = "disabled"; 2816 }; 2817 2818 combphy2_psu: phy@fee20000 { 2819 compatible = "rockchip,rk3588-naneng-combphy"; 2820 reg = <0x0 0xfee20000 0x0 0x100>; 2821 clocks = <&cru CLK_REF_PIPE_PHY2>, <&cru PCLK_PCIE_COMBO_PIPE_PHY2>, 2822 <&cru PCLK_PHP_ROOT>; 2823 clock-names = "ref", "apb", "pipe"; 2824 assigned-clocks = <&cru CLK_REF_PIPE_PHY2>; 2825 assigned-clock-rates = <100000000>; 2826 #phy-cells = <1>; 2827 resets = <&cru SRST_REF_PIPE_PHY2>, <&cru SRST_P_PCIE2_PHY2>; 2828 reset-names = "phy", "apb"; 2829 rockchip,pipe-grf = <&php_grf>; 2830 rockchip,pipe-phy-grf = <&pipe_phy2_grf>; 2831 status = "disabled"; 2832 }; 2833 2834 system_sram2: sram@ff001000 { 2835 compatible = "mmio-sram"; 2836 reg = <0x0 0xff001000 0x0 0xef000>; 2837 ranges = <0x0 0x0 0xff001000 0xef000>; 2838 #address-cells = <1>; 2839 #size-cells = <1>; 2840 }; 2841 2842 pinctrl: pinctrl { 2843 compatible = "rockchip,rk3588-pinctrl"; 2844 ranges; 2845 rockchip,grf = <&ioc>; 2846 #address-cells = <2>; 2847 #size-cells = <2>; 2848 2849 gpio0: gpio@fd8a0000 { 2850 compatible = "rockchip,gpio-bank"; 2851 reg = <0x0 0xfd8a0000 0x0 0x100>; 2852 interrupts = <GIC_SPI 277 IRQ_TYPE_LEVEL_HIGH 0>; 2853 clocks = <&cru PCLK_GPIO0>, <&cru DBCLK_GPIO0>; 2854 gpio-controller; 2855 gpio-ranges = <&pinctrl 0 0 32>; 2856 interrupt-controller; 2857 #gpio-cells = <2>; 2858 #interrupt-cells = <2>; 2859 }; 2860 2861 gpio1: gpio@fec20000 { 2862 compatible = "rockchip,gpio-bank"; 2863 reg = <0x0 0xfec20000 0x0 0x100>; 2864 interrupts = <GIC_SPI 278 IRQ_TYPE_LEVEL_HIGH 0>; 2865 clocks = <&cru PCLK_GPIO1>, <&cru DBCLK_GPIO1>; 2866 gpio-controller; 2867 gpio-ranges = <&pinctrl 0 32 32>; 2868 interrupt-controller; 2869 #gpio-cells = <2>; 2870 #interrupt-cells = <2>; 2871 }; 2872 2873 gpio2: gpio@fec30000 { 2874 compatible = "rockchip,gpio-bank"; 2875 reg = <0x0 0xfec30000 0x0 0x100>; 2876 interrupts = <GIC_SPI 279 IRQ_TYPE_LEVEL_HIGH 0>; 2877 clocks = <&cru PCLK_GPIO2>, <&cru DBCLK_GPIO2>; 2878 gpio-controller; 2879 gpio-ranges = <&pinctrl 0 64 32>; 2880 interrupt-controller; 2881 #gpio-cells = <2>; 2882 #interrupt-cells = <2>; 2883 }; 2884 2885 gpio3: gpio@fec40000 { 2886 compatible = "rockchip,gpio-bank"; 2887 reg = <0x0 0xfec40000 0x0 0x100>; 2888 interrupts = <GIC_SPI 280 IRQ_TYPE_LEVEL_HIGH 0>; 2889 clocks = <&cru PCLK_GPIO3>, <&cru DBCLK_GPIO3>; 2890 gpio-controller; 2891 gpio-ranges = <&pinctrl 0 96 32>; 2892 interrupt-controller; 2893 #gpio-cells = <2>; 2894 #interrupt-cells = <2>; 2895 }; 2896 2897 gpio4: gpio@fec50000 { 2898 compatible = "rockchip,gpio-bank"; 2899 reg = <0x0 0xfec50000 0x0 0x100>; 2900 interrupts = <GIC_SPI 281 IRQ_TYPE_LEVEL_HIGH 0>; 2901 clocks = <&cru PCLK_GPIO4>, <&cru DBCLK_GPIO4>; 2902 gpio-controller; 2903 gpio-ranges = <&pinctrl 0 128 32>; 2904 interrupt-controller; 2905 #gpio-cells = <2>; 2906 #interrupt-cells = <2>; 2907 }; 2908 }; 2909}; 2910 2911#include "rk3588-base-pinctrl.dtsi" 2912