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