File Index
Files and directories
Sign in
FILE

rk3588-base.dtsi

File preview with syntax highlighting.

linux-6.19.14/arch/arm64/boot/dts/rockchip/rk3588-base.dtsi DEVICETREE
   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@fdaca000 {
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@fdada000 {
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 0x9 0xc0000000 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 0xa 0x00000000 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		supports-cqe;
2185		status = "disabled";
2186	};
2187
2188	rng@fe378000 {
2189		compatible = "rockchip,rk3588-rng";
2190		reg = <0x0 0xfe378000 0x0 0x200>;
2191		interrupts = <GIC_SPI 400 IRQ_TYPE_LEVEL_HIGH 0>;
2192		clocks = <&scmi_clk SCMI_HCLK_SECURE_NS>;
2193		resets = <&scmi_reset SCMI_SRST_H_TRNG_NS>;
2194	};
2195
2196	i2s0_8ch: i2s@fe470000 {
2197		compatible = "rockchip,rk3588-i2s-tdm";
2198		reg = <0x0 0xfe470000 0x0 0x1000>;
2199		interrupts = <GIC_SPI 180 IRQ_TYPE_LEVEL_HIGH 0>;
2200		clocks = <&cru MCLK_I2S0_8CH_TX>, <&cru MCLK_I2S0_8CH_RX>, <&cru HCLK_I2S0_8CH>;
2201		clock-names = "mclk_tx", "mclk_rx", "hclk";
2202		assigned-clocks = <&cru CLK_I2S0_8CH_TX_SRC>, <&cru CLK_I2S0_8CH_RX_SRC>;
2203		assigned-clock-parents = <&cru PLL_AUPLL>, <&cru PLL_AUPLL>;
2204		dmas = <&dmac0 0>, <&dmac0 1>;
2205		dma-names = "tx", "rx";
2206		power-domains = <&power RK3588_PD_AUDIO>;
2207		resets = <&cru SRST_M_I2S0_8CH_TX>, <&cru SRST_M_I2S0_8CH_RX>;
2208		reset-names = "tx-m", "rx-m";
2209		rockchip,trcm-sync-tx-only;
2210		pinctrl-names = "default";
2211		pinctrl-0 = <&i2s0_lrck
2212			     &i2s0_sclk
2213			     &i2s0_sdi0
2214			     &i2s0_sdi1
2215			     &i2s0_sdi2
2216			     &i2s0_sdi3
2217			     &i2s0_sdo0
2218			     &i2s0_sdo1
2219			     &i2s0_sdo2
2220			     &i2s0_sdo3>;
2221		#sound-dai-cells = <0>;
2222		status = "disabled";
2223	};
2224
2225	i2s1_8ch: i2s@fe480000 {
2226		compatible = "rockchip,rk3588-i2s-tdm";
2227		reg = <0x0 0xfe480000 0x0 0x1000>;
2228		interrupts = <GIC_SPI 181 IRQ_TYPE_LEVEL_HIGH 0>;
2229		clocks = <&cru MCLK_I2S1_8CH_TX>, <&cru MCLK_I2S1_8CH_RX>, <&cru HCLK_I2S1_8CH>;
2230		clock-names = "mclk_tx", "mclk_rx", "hclk";
2231		dmas = <&dmac0 2>, <&dmac0 3>;
2232		dma-names = "tx", "rx";
2233		resets = <&cru SRST_M_I2S1_8CH_TX>, <&cru SRST_M_I2S1_8CH_RX>;
2234		reset-names = "tx-m", "rx-m";
2235		rockchip,trcm-sync-tx-only;
2236		pinctrl-names = "default";
2237		pinctrl-0 = <&i2s1m0_lrck
2238			     &i2s1m0_sclk
2239			     &i2s1m0_sdi0
2240			     &i2s1m0_sdi1
2241			     &i2s1m0_sdi2
2242			     &i2s1m0_sdi3
2243			     &i2s1m0_sdo0
2244			     &i2s1m0_sdo1
2245			     &i2s1m0_sdo2
2246			     &i2s1m0_sdo3>;
2247		#sound-dai-cells = <0>;
2248		status = "disabled";
2249	};
2250
2251	i2s2_2ch: i2s@fe490000 {
2252		compatible = "rockchip,rk3588-i2s", "rockchip,rk3066-i2s";
2253		reg = <0x0 0xfe490000 0x0 0x1000>;
2254		interrupts = <GIC_SPI 182 IRQ_TYPE_LEVEL_HIGH 0>;
2255		clocks = <&cru MCLK_I2S2_2CH>, <&cru HCLK_I2S2_2CH>;
2256		clock-names = "i2s_clk", "i2s_hclk";
2257		assigned-clocks = <&cru CLK_I2S2_2CH_SRC>;
2258		assigned-clock-parents = <&cru PLL_AUPLL>;
2259		dmas = <&dmac1 0>, <&dmac1 1>;
2260		dma-names = "tx", "rx";
2261		power-domains = <&power RK3588_PD_AUDIO>;
2262		pinctrl-names = "default";
2263		pinctrl-0 = <&i2s2m1_lrck
2264			     &i2s2m1_sclk
2265			     &i2s2m1_sdi
2266			     &i2s2m1_sdo>;
2267		#sound-dai-cells = <0>;
2268		status = "disabled";
2269	};
2270
2271	i2s3_2ch: i2s@fe4a0000 {
2272		compatible = "rockchip,rk3588-i2s", "rockchip,rk3066-i2s";
2273		reg = <0x0 0xfe4a0000 0x0 0x1000>;
2274		interrupts = <GIC_SPI 183 IRQ_TYPE_LEVEL_HIGH 0>;
2275		clocks = <&cru MCLK_I2S3_2CH>, <&cru HCLK_I2S3_2CH>;
2276		clock-names = "i2s_clk", "i2s_hclk";
2277		assigned-clocks = <&cru CLK_I2S3_2CH_SRC>;
2278		assigned-clock-parents = <&cru PLL_AUPLL>;
2279		dmas = <&dmac1 2>, <&dmac1 3>;
2280		dma-names = "tx", "rx";
2281		power-domains = <&power RK3588_PD_AUDIO>;
2282		pinctrl-names = "default";
2283		pinctrl-0 = <&i2s3_lrck
2284			     &i2s3_sclk
2285			     &i2s3_sdi
2286			     &i2s3_sdo>;
2287		#sound-dai-cells = <0>;
2288		status = "disabled";
2289	};
2290
2291	spdif_tx0: spdif-tx@fe4e0000 {
2292		compatible = "rockchip,rk3588-spdif", "rockchip,rk3568-spdif";
2293		reg = <0x0 0xfe4e0000 0x0 0x1000>;
2294		assigned-clock-parents = <&cru PLL_AUPLL>;
2295		assigned-clocks = <&cru CLK_SPDIF0_SRC>;
2296		clock-names = "mclk", "hclk";
2297		clocks = <&cru MCLK_SPDIF0>, <&cru HCLK_SPDIF0>;
2298		dma-names = "tx";
2299		dmas = <&dmac0 5>;
2300		interrupts = <GIC_SPI 193 IRQ_TYPE_LEVEL_HIGH 0>;
2301		pinctrl-0 = <&spdif0m0_tx>;
2302		pinctrl-names = "default";
2303		power-domains = <&power RK3588_PD_AUDIO>;
2304		#sound-dai-cells = <0>;
2305		status = "disabled";
2306	};
2307
2308	spdif_tx1: spdif-tx@fe4f0000 {
2309		compatible = "rockchip,rk3588-spdif", "rockchip,rk3568-spdif";
2310		reg = <0x0 0xfe4f0000 0x0 0x1000>;
2311		assigned-clock-parents = <&cru PLL_AUPLL>;
2312		assigned-clocks = <&cru CLK_SPDIF1_SRC>;
2313		clock-names = "mclk", "hclk";
2314		clocks = <&cru MCLK_SPDIF1>, <&cru HCLK_SPDIF1>;
2315		dma-names = "tx";
2316		dmas = <&dmac1 5>;
2317		interrupts = <GIC_SPI 194 IRQ_TYPE_LEVEL_HIGH 0>;
2318		pinctrl-0 = <&spdif1m0_tx>;
2319		pinctrl-names = "default";
2320		power-domains = <&power RK3588_PD_AUDIO>;
2321		#sound-dai-cells = <0>;
2322		status = "disabled";
2323	};
2324
2325	gic: interrupt-controller@fe600000 {
2326		compatible = "arm,gic-v3";
2327		reg = <0x0 0xfe600000 0 0x10000>, /* GICD */
2328		      <0x0 0xfe680000 0 0x100000>; /* GICR */
2329		interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH 0>;
2330		interrupt-controller;
2331		dma-noncoherent;
2332		mbi-alias = <0x0 0xfe610000>;
2333		mbi-ranges = <424 56>;
2334		msi-controller;
2335		ranges;
2336		#address-cells = <2>;
2337		#interrupt-cells = <4>;
2338		#size-cells = <2>;
2339
2340		its0: msi-controller@fe640000 {
2341			compatible = "arm,gic-v3-its";
2342			reg = <0x0 0xfe640000 0x0 0x20000>;
2343			dma-noncoherent;
2344			msi-controller;
2345			#msi-cells = <1>;
2346		};
2347
2348		its1: msi-controller@fe660000 {
2349			compatible = "arm,gic-v3-its";
2350			reg = <0x0 0xfe660000 0x0 0x20000>;
2351			dma-noncoherent;
2352			msi-controller;
2353			#msi-cells = <1>;
2354		};
2355
2356		ppi-partitions {
2357			ppi_partition0: interrupt-partition-0 {
2358				affinity = <&cpu_l0 &cpu_l1 &cpu_l2 &cpu_l3>;
2359			};
2360
2361			ppi_partition1: interrupt-partition-1 {
2362				affinity = <&cpu_b0 &cpu_b1 &cpu_b2 &cpu_b3>;
2363			};
2364		};
2365	};
2366
2367	dmac0: dma-controller@fea10000 {
2368		compatible = "arm,pl330", "arm,primecell";
2369		reg = <0x0 0xfea10000 0x0 0x4000>;
2370		interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH 0>,
2371			     <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH 0>;
2372		arm,pl330-periph-burst;
2373		clocks = <&cru ACLK_DMAC0>;
2374		clock-names = "apb_pclk";
2375		#dma-cells = <1>;
2376	};
2377
2378	dmac1: dma-controller@fea30000 {
2379		compatible = "arm,pl330", "arm,primecell";
2380		reg = <0x0 0xfea30000 0x0 0x4000>;
2381		interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH 0>,
2382			     <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH 0>;
2383		arm,pl330-periph-burst;
2384		clocks = <&cru ACLK_DMAC1>;
2385		clock-names = "apb_pclk";
2386		#dma-cells = <1>;
2387	};
2388
2389	i2c1: i2c@fea90000 {
2390		compatible = "rockchip,rk3588-i2c", "rockchip,rk3399-i2c";
2391		reg = <0x0 0xfea90000 0x0 0x1000>;
2392		clocks = <&cru CLK_I2C1>, <&cru PCLK_I2C1>;
2393		clock-names = "i2c", "pclk";
2394		interrupts = <GIC_SPI 318 IRQ_TYPE_LEVEL_HIGH 0>;
2395		pinctrl-0 = <&i2c1m0_xfer>;
2396		pinctrl-names = "default";
2397		#address-cells = <1>;
2398		#size-cells = <0>;
2399		status = "disabled";
2400	};
2401
2402	i2c2: i2c@feaa0000 {
2403		compatible = "rockchip,rk3588-i2c", "rockchip,rk3399-i2c";
2404		reg = <0x0 0xfeaa0000 0x0 0x1000>;
2405		clocks = <&cru CLK_I2C2>, <&cru PCLK_I2C2>;
2406		clock-names = "i2c", "pclk";
2407		interrupts = <GIC_SPI 319 IRQ_TYPE_LEVEL_HIGH 0>;
2408		pinctrl-0 = <&i2c2m0_xfer>;
2409		pinctrl-names = "default";
2410		#address-cells = <1>;
2411		#size-cells = <0>;
2412		status = "disabled";
2413	};
2414
2415	i2c3: i2c@feab0000 {
2416		compatible = "rockchip,rk3588-i2c", "rockchip,rk3399-i2c";
2417		reg = <0x0 0xfeab0000 0x0 0x1000>;
2418		clocks = <&cru CLK_I2C3>, <&cru PCLK_I2C3>;
2419		clock-names = "i2c", "pclk";
2420		interrupts = <GIC_SPI 320 IRQ_TYPE_LEVEL_HIGH 0>;
2421		pinctrl-0 = <&i2c3m0_xfer>;
2422		pinctrl-names = "default";
2423		#address-cells = <1>;
2424		#size-cells = <0>;
2425		status = "disabled";
2426	};
2427
2428	i2c4: i2c@feac0000 {
2429		compatible = "rockchip,rk3588-i2c", "rockchip,rk3399-i2c";
2430		reg = <0x0 0xfeac0000 0x0 0x1000>;
2431		clocks = <&cru CLK_I2C4>, <&cru PCLK_I2C4>;
2432		clock-names = "i2c", "pclk";
2433		interrupts = <GIC_SPI 321 IRQ_TYPE_LEVEL_HIGH 0>;
2434		pinctrl-0 = <&i2c4m0_xfer>;
2435		pinctrl-names = "default";
2436		#address-cells = <1>;
2437		#size-cells = <0>;
2438		status = "disabled";
2439	};
2440
2441	i2c5: i2c@fead0000 {
2442		compatible = "rockchip,rk3588-i2c", "rockchip,rk3399-i2c";
2443		reg = <0x0 0xfead0000 0x0 0x1000>;
2444		clocks = <&cru CLK_I2C5>, <&cru PCLK_I2C5>;
2445		clock-names = "i2c", "pclk";
2446		interrupts = <GIC_SPI 322 IRQ_TYPE_LEVEL_HIGH 0>;
2447		pinctrl-0 = <&i2c5m0_xfer>;
2448		pinctrl-names = "default";
2449		#address-cells = <1>;
2450		#size-cells = <0>;
2451		status = "disabled";
2452	};
2453
2454	timer0: timer@feae0000 {
2455		compatible = "rockchip,rk3588-timer", "rockchip,rk3288-timer";
2456		reg = <0x0 0xfeae0000 0x0 0x20>;
2457		interrupts = <GIC_SPI 289 IRQ_TYPE_LEVEL_HIGH 0>;
2458		clocks = <&cru PCLK_BUSTIMER0>, <&cru CLK_BUSTIMER0>;
2459		clock-names = "pclk", "timer";
2460	};
2461
2462	wdt: watchdog@feaf0000 {
2463		compatible = "rockchip,rk3588-wdt", "snps,dw-wdt";
2464		reg = <0x0 0xfeaf0000 0x0 0x100>;
2465		clocks = <&cru TCLK_WDT0>, <&cru PCLK_WDT0>;
2466		clock-names = "tclk", "pclk";
2467		interrupts = <GIC_SPI 315 IRQ_TYPE_LEVEL_HIGH 0>;
2468	};
2469
2470	spi0: spi@feb00000 {
2471		compatible = "rockchip,rk3588-spi", "rockchip,rk3066-spi";
2472		reg = <0x0 0xfeb00000 0x0 0x1000>;
2473		interrupts = <GIC_SPI 326 IRQ_TYPE_LEVEL_HIGH 0>;
2474		clocks = <&cru CLK_SPI0>, <&cru PCLK_SPI0>;
2475		clock-names = "spiclk", "apb_pclk";
2476		dmas = <&dmac0 14>, <&dmac0 15>;
2477		dma-names = "tx", "rx";
2478		num-cs = <2>;
2479		pinctrl-0 = <&spi0m0_cs0 &spi0m0_cs1 &spi0m0_pins>;
2480		pinctrl-names = "default";
2481		#address-cells = <1>;
2482		#size-cells = <0>;
2483		status = "disabled";
2484	};
2485
2486	spi1: spi@feb10000 {
2487		compatible = "rockchip,rk3588-spi", "rockchip,rk3066-spi";
2488		reg = <0x0 0xfeb10000 0x0 0x1000>;
2489		interrupts = <GIC_SPI 327 IRQ_TYPE_LEVEL_HIGH 0>;
2490		clocks = <&cru CLK_SPI1>, <&cru PCLK_SPI1>;
2491		clock-names = "spiclk", "apb_pclk";
2492		dmas = <&dmac0 16>, <&dmac0 17>;
2493		dma-names = "tx", "rx";
2494		num-cs = <2>;
2495		pinctrl-0 = <&spi1m1_cs0 &spi1m1_cs1 &spi1m1_pins>;
2496		pinctrl-names = "default";
2497		#address-cells = <1>;
2498		#size-cells = <0>;
2499		status = "disabled";
2500	};
2501
2502	spi2: spi@feb20000 {
2503		compatible = "rockchip,rk3588-spi", "rockchip,rk3066-spi";
2504		reg = <0x0 0xfeb20000 0x0 0x1000>;
2505		interrupts = <GIC_SPI 328 IRQ_TYPE_LEVEL_HIGH 0>;
2506		clocks = <&cru CLK_SPI2>, <&cru PCLK_SPI2>;
2507		clock-names = "spiclk", "apb_pclk";
2508		dmas = <&dmac1 15>, <&dmac1 16>;
2509		dma-names = "tx", "rx";
2510		num-cs = <2>;
2511		pinctrl-0 = <&spi2m2_cs0 &spi2m2_cs1 &spi2m2_pins>;
2512		pinctrl-names = "default";
2513		#address-cells = <1>;
2514		#size-cells = <0>;
2515		status = "disabled";
2516	};
2517
2518	spi3: spi@feb30000 {
2519		compatible = "rockchip,rk3588-spi", "rockchip,rk3066-spi";
2520		reg = <0x0 0xfeb30000 0x0 0x1000>;
2521		interrupts = <GIC_SPI 329 IRQ_TYPE_LEVEL_HIGH 0>;
2522		clocks = <&cru CLK_SPI3>, <&cru PCLK_SPI3>;
2523		clock-names = "spiclk", "apb_pclk";
2524		dmas = <&dmac1 17>, <&dmac1 18>;
2525		dma-names = "tx", "rx";
2526		num-cs = <2>;
2527		pinctrl-0 = <&spi3m1_cs0 &spi3m1_cs1 &spi3m1_pins>;
2528		pinctrl-names = "default";
2529		#address-cells = <1>;
2530		#size-cells = <0>;
2531		status = "disabled";
2532	};
2533
2534	uart1: serial@feb40000 {
2535		compatible = "rockchip,rk3588-uart", "snps,dw-apb-uart";
2536		reg = <0x0 0xfeb40000 0x0 0x100>;
2537		interrupts = <GIC_SPI 332 IRQ_TYPE_LEVEL_HIGH 0>;
2538		clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>;
2539		clock-names = "baudclk", "apb_pclk";
2540		dmas = <&dmac0 8>, <&dmac0 9>;
2541		dma-names = "tx", "rx";
2542		pinctrl-0 = <&uart1m1_xfer>;
2543		pinctrl-names = "default";
2544		reg-io-width = <4>;
2545		reg-shift = <2>;
2546		status = "disabled";
2547	};
2548
2549	uart2: serial@feb50000 {
2550		compatible = "rockchip,rk3588-uart", "snps,dw-apb-uart";
2551		reg = <0x0 0xfeb50000 0x0 0x100>;
2552		interrupts = <GIC_SPI 333 IRQ_TYPE_LEVEL_HIGH 0>;
2553		clocks = <&cru SCLK_UART2>, <&cru PCLK_UART2>;
2554		clock-names = "baudclk", "apb_pclk";
2555		dmas = <&dmac0 10>, <&dmac0 11>;
2556		dma-names = "tx", "rx";
2557		pinctrl-0 = <&uart2m1_xfer>;
2558		pinctrl-names = "default";
2559		reg-io-width = <4>;
2560		reg-shift = <2>;
2561		status = "disabled";
2562	};
2563
2564	uart3: serial@feb60000 {
2565		compatible = "rockchip,rk3588-uart", "snps,dw-apb-uart";
2566		reg = <0x0 0xfeb60000 0x0 0x100>;
2567		interrupts = <GIC_SPI 334 IRQ_TYPE_LEVEL_HIGH 0>;
2568		clocks = <&cru SCLK_UART3>, <&cru PCLK_UART3>;
2569		clock-names = "baudclk", "apb_pclk";
2570		dmas = <&dmac0 12>, <&dmac0 13>;
2571		dma-names = "tx", "rx";
2572		pinctrl-0 = <&uart3m1_xfer>;
2573		pinctrl-names = "default";
2574		reg-io-width = <4>;
2575		reg-shift = <2>;
2576		status = "disabled";
2577	};
2578
2579	uart4: serial@feb70000 {
2580		compatible = "rockchip,rk3588-uart", "snps,dw-apb-uart";
2581		reg = <0x0 0xfeb70000 0x0 0x100>;
2582		interrupts = <GIC_SPI 335 IRQ_TYPE_LEVEL_HIGH 0>;
2583		clocks = <&cru SCLK_UART4>, <&cru PCLK_UART4>;
2584		clock-names = "baudclk", "apb_pclk";
2585		dmas = <&dmac1 9>, <&dmac1 10>;
2586		dma-names = "tx", "rx";
2587		pinctrl-0 = <&uart4m1_xfer>;
2588		pinctrl-names = "default";
2589		reg-io-width = <4>;
2590		reg-shift = <2>;
2591		status = "disabled";
2592	};
2593
2594	uart5: serial@feb80000 {
2595		compatible = "rockchip,rk3588-uart", "snps,dw-apb-uart";
2596		reg = <0x0 0xfeb80000 0x0 0x100>;
2597		interrupts = <GIC_SPI 336 IRQ_TYPE_LEVEL_HIGH 0>;
2598		clocks = <&cru SCLK_UART5>, <&cru PCLK_UART5>;
2599		clock-names = "baudclk", "apb_pclk";
2600		dmas = <&dmac1 11>, <&dmac1 12>;
2601		dma-names = "tx", "rx";
2602		pinctrl-0 = <&uart5m1_xfer>;
2603		pinctrl-names = "default";
2604		reg-io-width = <4>;
2605		reg-shift = <2>;
2606		status = "disabled";
2607	};
2608
2609	uart6: serial@feb90000 {
2610		compatible = "rockchip,rk3588-uart", "snps,dw-apb-uart";
2611		reg = <0x0 0xfeb90000 0x0 0x100>;
2612		interrupts = <GIC_SPI 337 IRQ_TYPE_LEVEL_HIGH 0>;
2613		clocks = <&cru SCLK_UART6>, <&cru PCLK_UART6>;
2614		clock-names = "baudclk", "apb_pclk";
2615		dmas = <&dmac1 13>, <&dmac1 14>;
2616		dma-names = "tx", "rx";
2617		pinctrl-0 = <&uart6m1_xfer>;
2618		pinctrl-names = "default";
2619		reg-io-width = <4>;
2620		reg-shift = <2>;
2621		status = "disabled";
2622	};
2623
2624	uart7: serial@feba0000 {
2625		compatible = "rockchip,rk3588-uart", "snps,dw-apb-uart";
2626		reg = <0x0 0xfeba0000 0x0 0x100>;
2627		interrupts = <GIC_SPI 338 IRQ_TYPE_LEVEL_HIGH 0>;
2628		clocks = <&cru SCLK_UART7>, <&cru PCLK_UART7>;
2629		clock-names = "baudclk", "apb_pclk";
2630		dmas = <&dmac2 7>, <&dmac2 8>;
2631		dma-names = "tx", "rx";
2632		pinctrl-0 = <&uart7m1_xfer>;
2633		pinctrl-names = "default";
2634		reg-io-width = <4>;
2635		reg-shift = <2>;
2636		status = "disabled";
2637	};
2638
2639	uart8: serial@febb0000 {
2640		compatible = "rockchip,rk3588-uart", "snps,dw-apb-uart";
2641		reg = <0x0 0xfebb0000 0x0 0x100>;
2642		interrupts = <GIC_SPI 339 IRQ_TYPE_LEVEL_HIGH 0>;
2643		clocks = <&cru SCLK_UART8>, <&cru PCLK_UART8>;
2644		clock-names = "baudclk", "apb_pclk";
2645		dmas = <&dmac2 9>, <&dmac2 10>;
2646		dma-names = "tx", "rx";
2647		pinctrl-0 = <&uart8m1_xfer>;
2648		pinctrl-names = "default";
2649		reg-io-width = <4>;
2650		reg-shift = <2>;
2651		status = "disabled";
2652	};
2653
2654	uart9: serial@febc0000 {
2655		compatible = "rockchip,rk3588-uart", "snps,dw-apb-uart";
2656		reg = <0x0 0xfebc0000 0x0 0x100>;
2657		interrupts = <GIC_SPI 340 IRQ_TYPE_LEVEL_HIGH 0>;
2658		clocks = <&cru SCLK_UART9>, <&cru PCLK_UART9>;
2659		clock-names = "baudclk", "apb_pclk";
2660		dmas = <&dmac2 11>, <&dmac2 12>;
2661		dma-names = "tx", "rx";
2662		pinctrl-0 = <&uart9m1_xfer>;
2663		pinctrl-names = "default";
2664		reg-io-width = <4>;
2665		reg-shift = <2>;
2666		status = "disabled";
2667	};
2668
2669	pwm4: pwm@febd0000 {
2670		compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm";
2671		reg = <0x0 0xfebd0000 0x0 0x10>;
2672		clocks = <&cru CLK_PWM1>, <&cru PCLK_PWM1>;
2673		clock-names = "pwm", "pclk";
2674		pinctrl-0 = <&pwm4m0_pins>;
2675		pinctrl-names = "default";
2676		#pwm-cells = <3>;
2677		status = "disabled";
2678	};
2679
2680	pwm5: pwm@febd0010 {
2681		compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm";
2682		reg = <0x0 0xfebd0010 0x0 0x10>;
2683		clocks = <&cru CLK_PWM1>, <&cru PCLK_PWM1>;
2684		clock-names = "pwm", "pclk";
2685		pinctrl-0 = <&pwm5m0_pins>;
2686		pinctrl-names = "default";
2687		#pwm-cells = <3>;
2688		status = "disabled";
2689	};
2690
2691	pwm6: pwm@febd0020 {
2692		compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm";
2693		reg = <0x0 0xfebd0020 0x0 0x10>;
2694		clocks = <&cru CLK_PWM1>, <&cru PCLK_PWM1>;
2695		clock-names = "pwm", "pclk";
2696		pinctrl-0 = <&pwm6m0_pins>;
2697		pinctrl-names = "default";
2698		#pwm-cells = <3>;
2699		status = "disabled";
2700	};
2701
2702	pwm7: pwm@febd0030 {
2703		compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm";
2704		reg = <0x0 0xfebd0030 0x0 0x10>;
2705		clocks = <&cru CLK_PWM1>, <&cru PCLK_PWM1>;
2706		clock-names = "pwm", "pclk";
2707		pinctrl-0 = <&pwm7m0_pins>;
2708		pinctrl-names = "default";
2709		#pwm-cells = <3>;
2710		status = "disabled";
2711	};
2712
2713	pwm8: pwm@febe0000 {
2714		compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm";
2715		reg = <0x0 0xfebe0000 0x0 0x10>;
2716		clocks = <&cru CLK_PWM2>, <&cru PCLK_PWM2>;
2717		clock-names = "pwm", "pclk";
2718		pinctrl-0 = <&pwm8m0_pins>;
2719		pinctrl-names = "default";
2720		#pwm-cells = <3>;
2721		status = "disabled";
2722	};
2723
2724	pwm9: pwm@febe0010 {
2725		compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm";
2726		reg = <0x0 0xfebe0010 0x0 0x10>;
2727		clocks = <&cru CLK_PWM2>, <&cru PCLK_PWM2>;
2728		clock-names = "pwm", "pclk";
2729		pinctrl-0 = <&pwm9m0_pins>;
2730		pinctrl-names = "default";
2731		#pwm-cells = <3>;
2732		status = "disabled";
2733	};
2734
2735	pwm10: pwm@febe0020 {
2736		compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm";
2737		reg = <0x0 0xfebe0020 0x0 0x10>;
2738		clocks = <&cru CLK_PWM2>, <&cru PCLK_PWM2>;
2739		clock-names = "pwm", "pclk";
2740		pinctrl-0 = <&pwm10m0_pins>;
2741		pinctrl-names = "default";
2742		#pwm-cells = <3>;
2743		status = "disabled";
2744	};
2745
2746	pwm11: pwm@febe0030 {
2747		compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm";
2748		reg = <0x0 0xfebe0030 0x0 0x10>;
2749		clocks = <&cru CLK_PWM2>, <&cru PCLK_PWM2>;
2750		clock-names = "pwm", "pclk";
2751		pinctrl-0 = <&pwm11m0_pins>;
2752		pinctrl-names = "default";
2753		#pwm-cells = <3>;
2754		status = "disabled";
2755	};
2756
2757	pwm12: pwm@febf0000 {
2758		compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm";
2759		reg = <0x0 0xfebf0000 0x0 0x10>;
2760		clocks = <&cru CLK_PWM3>, <&cru PCLK_PWM3>;
2761		clock-names = "pwm", "pclk";
2762		pinctrl-0 = <&pwm12m0_pins>;
2763		pinctrl-names = "default";
2764		#pwm-cells = <3>;
2765		status = "disabled";
2766	};
2767
2768	pwm13: pwm@febf0010 {
2769		compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm";
2770		reg = <0x0 0xfebf0010 0x0 0x10>;
2771		clocks = <&cru CLK_PWM3>, <&cru PCLK_PWM3>;
2772		clock-names = "pwm", "pclk";
2773		pinctrl-0 = <&pwm13m0_pins>;
2774		pinctrl-names = "default";
2775		#pwm-cells = <3>;
2776		status = "disabled";
2777	};
2778
2779	pwm14: pwm@febf0020 {
2780		compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm";
2781		reg = <0x0 0xfebf0020 0x0 0x10>;
2782		clocks = <&cru CLK_PWM3>, <&cru PCLK_PWM3>;
2783		clock-names = "pwm", "pclk";
2784		pinctrl-0 = <&pwm14m0_pins>;
2785		pinctrl-names = "default";
2786		#pwm-cells = <3>;
2787		status = "disabled";
2788	};
2789
2790	pwm15: pwm@febf0030 {
2791		compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm";
2792		reg = <0x0 0xfebf0030 0x0 0x10>;
2793		clocks = <&cru CLK_PWM3>, <&cru PCLK_PWM3>;
2794		clock-names = "pwm", "pclk";
2795		pinctrl-0 = <&pwm15m0_pins>;
2796		pinctrl-names = "default";
2797		#pwm-cells = <3>;
2798		status = "disabled";
2799	};
2800
2801	thermal_zones: thermal-zones {
2802		/* sensor near the center of the SoC */
2803		package_thermal: package-thermal {
2804			polling-delay-passive = <0>;
2805			polling-delay = <0>;
2806			thermal-sensors = <&tsadc 0>;
2807
2808			trips {
2809				package_crit: package-crit {
2810					temperature = <115000>;
2811					hysteresis = <0>;
2812					type = "critical";
2813				};
2814			};
2815		};
2816
2817		/* sensor between A76 cores 0 and 1 */
2818		bigcore0_thermal: bigcore0-thermal {
2819			polling-delay-passive = <100>;
2820			polling-delay = <0>;
2821			thermal-sensors = <&tsadc 1>;
2822
2823			trips {
2824				bigcore0_alert: bigcore0-alert {
2825					temperature = <85000>;
2826					hysteresis = <2000>;
2827					type = "passive";
2828				};
2829
2830				bigcore0_crit: bigcore0-crit {
2831					temperature = <115000>;
2832					hysteresis = <0>;
2833					type = "critical";
2834				};
2835			};
2836
2837			cooling-maps {
2838				map0 {
2839					trip = <&bigcore0_alert>;
2840					cooling-device =
2841						<&cpu_b0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
2842						<&cpu_b1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
2843				};
2844			};
2845		};
2846
2847		/* sensor between A76 cores 2 and 3 */
2848		bigcore2_thermal: bigcore2-thermal {
2849			polling-delay-passive = <100>;
2850			polling-delay = <0>;
2851			thermal-sensors = <&tsadc 2>;
2852
2853			trips {
2854				bigcore2_alert: bigcore2-alert {
2855					temperature = <85000>;
2856					hysteresis = <2000>;
2857					type = "passive";
2858				};
2859
2860				bigcore2_crit: bigcore2-crit {
2861					temperature = <115000>;
2862					hysteresis = <0>;
2863					type = "critical";
2864				};
2865			};
2866
2867			cooling-maps {
2868				map0 {
2869					trip = <&bigcore2_alert>;
2870					cooling-device =
2871						<&cpu_b2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
2872						<&cpu_b3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
2873				};
2874			};
2875		};
2876
2877		/* sensor between the four A55 cores */
2878		little_core_thermal: littlecore-thermal {
2879			polling-delay-passive = <100>;
2880			polling-delay = <0>;
2881			thermal-sensors = <&tsadc 3>;
2882
2883			trips {
2884				littlecore_alert: littlecore-alert {
2885					temperature = <85000>;
2886					hysteresis = <2000>;
2887					type = "passive";
2888				};
2889
2890				littlecore_crit: littlecore-crit {
2891					temperature = <115000>;
2892					hysteresis = <0>;
2893					type = "critical";
2894				};
2895			};
2896
2897			cooling-maps {
2898				map0 {
2899					trip = <&littlecore_alert>;
2900					cooling-device =
2901						<&cpu_l0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
2902						<&cpu_l1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
2903						<&cpu_l2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
2904						<&cpu_l3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
2905				};
2906			};
2907		};
2908
2909		/* sensor near the PD_CENTER power domain */
2910		center_thermal: center-thermal {
2911			polling-delay-passive = <0>;
2912			polling-delay = <0>;
2913			thermal-sensors = <&tsadc 4>;
2914
2915			trips {
2916				center_crit: center-crit {
2917					temperature = <115000>;
2918					hysteresis = <0>;
2919					type = "critical";
2920				};
2921			};
2922		};
2923
2924		gpu_thermal: gpu-thermal {
2925			polling-delay-passive = <100>;
2926			polling-delay = <0>;
2927			thermal-sensors = <&tsadc 5>;
2928
2929			trips {
2930				gpu_alert: gpu-alert {
2931					temperature = <85000>;
2932					hysteresis = <2000>;
2933					type = "passive";
2934				};
2935
2936				gpu_crit: gpu-crit {
2937					temperature = <115000>;
2938					hysteresis = <0>;
2939					type = "critical";
2940				};
2941			};
2942
2943			cooling-maps {
2944				map0 {
2945					trip = <&gpu_alert>;
2946					cooling-device =
2947						<&gpu THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
2948				};
2949			};
2950		};
2951
2952		npu_thermal: npu-thermal {
2953			polling-delay-passive = <0>;
2954			polling-delay = <0>;
2955			thermal-sensors = <&tsadc 6>;
2956
2957			trips {
2958				npu_crit: npu-crit {
2959					temperature = <115000>;
2960					hysteresis = <0>;
2961					type = "critical";
2962				};
2963			};
2964		};
2965	};
2966
2967	tsadc: tsadc@fec00000 {
2968		compatible = "rockchip,rk3588-tsadc";
2969		reg = <0x0 0xfec00000 0x0 0x400>;
2970		interrupts = <GIC_SPI 397 IRQ_TYPE_LEVEL_HIGH 0>;
2971		clocks = <&cru CLK_TSADC>, <&cru PCLK_TSADC>;
2972		clock-names = "tsadc", "apb_pclk";
2973		assigned-clocks = <&cru CLK_TSADC>;
2974		assigned-clock-rates = <2000000>;
2975		resets = <&cru SRST_P_TSADC>, <&cru SRST_TSADC>;
2976		reset-names = "tsadc-apb", "tsadc";
2977		rockchip,hw-tshut-temp = <120000>;
2978		rockchip,hw-tshut-mode = <0>; /* tshut mode 0:CRU 1:GPIO */
2979		rockchip,hw-tshut-polarity = <0>; /* tshut polarity 0:LOW 1:HIGH */
2980		pinctrl-0 = <&tsadc_shut_org>;
2981		pinctrl-1 = <&tsadc_gpio_func>;
2982		pinctrl-names = "default", "sleep";
2983		#thermal-sensor-cells = <1>;
2984		status = "disabled";
2985	};
2986
2987	saradc: adc@fec10000 {
2988		compatible = "rockchip,rk3588-saradc";
2989		reg = <0x0 0xfec10000 0x0 0x10000>;
2990		interrupts = <GIC_SPI 398 IRQ_TYPE_LEVEL_HIGH 0>;
2991		#io-channel-cells = <1>;
2992		clocks = <&cru CLK_SARADC>, <&cru PCLK_SARADC>;
2993		clock-names = "saradc", "apb_pclk";
2994		resets = <&cru SRST_P_SARADC>;
2995		reset-names = "saradc-apb";
2996		status = "disabled";
2997	};
2998
2999	i2c6: i2c@fec80000 {
3000		compatible = "rockchip,rk3588-i2c", "rockchip,rk3399-i2c";
3001		reg = <0x0 0xfec80000 0x0 0x1000>;
3002		clocks = <&cru CLK_I2C6>, <&cru PCLK_I2C6>;
3003		clock-names = "i2c", "pclk";
3004		interrupts = <GIC_SPI 323 IRQ_TYPE_LEVEL_HIGH 0>;
3005		pinctrl-0 = <&i2c6m0_xfer>;
3006		pinctrl-names = "default";
3007		#address-cells = <1>;
3008		#size-cells = <0>;
3009		status = "disabled";
3010	};
3011
3012	i2c7: i2c@fec90000 {
3013		compatible = "rockchip,rk3588-i2c", "rockchip,rk3399-i2c";
3014		reg = <0x0 0xfec90000 0x0 0x1000>;
3015		clocks = <&cru CLK_I2C7>, <&cru PCLK_I2C7>;
3016		clock-names = "i2c", "pclk";
3017		interrupts = <GIC_SPI 324 IRQ_TYPE_LEVEL_HIGH 0>;
3018		pinctrl-0 = <&i2c7m0_xfer>;
3019		pinctrl-names = "default";
3020		#address-cells = <1>;
3021		#size-cells = <0>;
3022		status = "disabled";
3023	};
3024
3025	i2c8: i2c@feca0000 {
3026		compatible = "rockchip,rk3588-i2c", "rockchip,rk3399-i2c";
3027		reg = <0x0 0xfeca0000 0x0 0x1000>;
3028		clocks = <&cru CLK_I2C8>, <&cru PCLK_I2C8>;
3029		clock-names = "i2c", "pclk";
3030		interrupts = <GIC_SPI 325 IRQ_TYPE_LEVEL_HIGH 0>;
3031		pinctrl-0 = <&i2c8m0_xfer>;
3032		pinctrl-names = "default";
3033		#address-cells = <1>;
3034		#size-cells = <0>;
3035		status = "disabled";
3036	};
3037
3038	spi4: spi@fecb0000 {
3039		compatible = "rockchip,rk3588-spi", "rockchip,rk3066-spi";
3040		reg = <0x0 0xfecb0000 0x0 0x1000>;
3041		interrupts = <GIC_SPI 330 IRQ_TYPE_LEVEL_HIGH 0>;
3042		clocks = <&cru CLK_SPI4>, <&cru PCLK_SPI4>;
3043		clock-names = "spiclk", "apb_pclk";
3044		dmas = <&dmac2 13>, <&dmac2 14>;
3045		dma-names = "tx", "rx";
3046		num-cs = <2>;
3047		pinctrl-0 = <&spi4m0_cs0 &spi4m0_cs1 &spi4m0_pins>;
3048		pinctrl-names = "default";
3049		#address-cells = <1>;
3050		#size-cells = <0>;
3051		status = "disabled";
3052	};
3053
3054	otp: efuse@fecc0000 {
3055		compatible = "rockchip,rk3588-otp";
3056		reg = <0x0 0xfecc0000 0x0 0x400>;
3057		clocks = <&cru CLK_OTPC_NS>, <&cru PCLK_OTPC_NS>,
3058			 <&cru CLK_OTP_PHY_G>, <&cru CLK_OTPC_ARB>;
3059		clock-names = "otp", "apb_pclk", "phy", "arb";
3060		resets = <&cru SRST_OTPC_NS>, <&cru SRST_P_OTPC_NS>,
3061			 <&cru SRST_OTPC_ARB>;
3062		reset-names = "otp", "apb", "arb";
3063		#address-cells = <1>;
3064		#size-cells = <1>;
3065
3066		cpu_code: cpu-code@2 {
3067			reg = <0x02 0x2>;
3068		};
3069
3070		otp_id: id@7 {
3071			reg = <0x07 0x10>;
3072		};
3073
3074		cpub0_leakage: cpu-leakage@17 {
3075			reg = <0x17 0x1>;
3076		};
3077
3078		cpub1_leakage: cpu-leakage@18 {
3079			reg = <0x18 0x1>;
3080		};
3081
3082		cpul_leakage: cpu-leakage@19 {
3083			reg = <0x19 0x1>;
3084		};
3085
3086		log_leakage: log-leakage@1a {
3087			reg = <0x1a 0x1>;
3088		};
3089
3090		gpu_leakage: gpu-leakage@1b {
3091			reg = <0x1b 0x1>;
3092		};
3093
3094		otp_cpu_version: cpu-version@1c {
3095			reg = <0x1c 0x1>;
3096			bits = <3 3>;
3097		};
3098
3099		npu_leakage: npu-leakage@28 {
3100			reg = <0x28 0x1>;
3101		};
3102
3103		codec_leakage: codec-leakage@29 {
3104			reg = <0x29 0x1>;
3105		};
3106	};
3107
3108	dmac2: dma-controller@fed10000 {
3109		compatible = "arm,pl330", "arm,primecell";
3110		reg = <0x0 0xfed10000 0x0 0x4000>;
3111		interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH 0>,
3112			     <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH 0>;
3113		arm,pl330-periph-burst;
3114		clocks = <&cru ACLK_DMAC2>;
3115		clock-names = "apb_pclk";
3116		#dma-cells = <1>;
3117	};
3118
3119	hdptxphy0: phy@fed60000 {
3120		compatible = "rockchip,rk3588-hdptx-phy";
3121		reg = <0x0 0xfed60000 0x0 0x2000>;
3122		clocks = <&cru CLK_USB2PHY_HDPTXRXPHY_REF>, <&cru PCLK_HDPTX0>;
3123		clock-names = "ref", "apb";
3124		#clock-cells = <0>;
3125		#phy-cells = <0>;
3126		resets = <&cru SRST_HDPTX0>, <&cru SRST_P_HDPTX0>,
3127			 <&cru SRST_HDPTX0_INIT>, <&cru SRST_HDPTX0_CMN>,
3128			 <&cru SRST_HDPTX0_LANE>, <&cru SRST_HDPTX0_ROPLL>,
3129			 <&cru SRST_HDPTX0_LCPLL>;
3130		reset-names = "phy", "apb", "init", "cmn", "lane", "ropll",
3131			      "lcpll";
3132		rockchip,grf = <&hdptxphy0_grf>;
3133		status = "disabled";
3134	};
3135
3136	usbdp_phy0: phy@fed80000 {
3137		compatible = "rockchip,rk3588-usbdp-phy";
3138		reg = <0x0 0xfed80000 0x0 0x10000>;
3139		#phy-cells = <1>;
3140		clocks = <&cru CLK_USBDPPHY_MIPIDCPPHY_REF>,
3141			 <&cru CLK_USBDP_PHY0_IMMORTAL>,
3142			 <&cru PCLK_USBDPPHY0>,
3143			 <&u2phy0>;
3144		clock-names = "refclk", "immortal", "pclk", "utmi";
3145		resets = <&cru SRST_USBDP_COMBO_PHY0_INIT>,
3146			 <&cru SRST_USBDP_COMBO_PHY0_CMN>,
3147			 <&cru SRST_USBDP_COMBO_PHY0_LANE>,
3148			 <&cru SRST_USBDP_COMBO_PHY0_PCS>,
3149			 <&cru SRST_P_USBDPPHY0>;
3150		reset-names = "init", "cmn", "lane", "pcs_apb", "pma_apb";
3151		rockchip,u2phy-grf = <&usb2phy0_grf>;
3152		rockchip,usb-grf = <&usb_grf>;
3153		rockchip,usbdpphy-grf = <&usbdpphy0_grf>;
3154		rockchip,vo-grf = <&vo0_grf>;
3155		status = "disabled";
3156	};
3157
3158	mipidcphy0: phy@feda0000 {
3159		compatible = "rockchip,rk3588-mipi-dcphy";
3160		reg = <0x0 0xfeda0000 0x0 0x10000>;
3161		rockchip,grf = <&mipidcphy0_grf>;
3162		clocks = <&cru PCLK_MIPI_DCPHY0>,
3163			 <&cru CLK_USBDPPHY_MIPIDCPPHY_REF>;
3164		clock-names = "pclk", "ref";
3165		resets = <&cru SRST_M_MIPI_DCPHY0>,
3166			 <&cru SRST_P_MIPI_DCPHY0>,
3167			 <&cru SRST_P_MIPI_DCPHY0_GRF>,
3168			 <&cru SRST_S_MIPI_DCPHY0>;
3169		reset-names = "m_phy", "apb", "grf", "s_phy";
3170		#phy-cells = <1>;
3171		status = "disabled";
3172	};
3173
3174	mipidcphy1: phy@fedb0000 {
3175		compatible = "rockchip,rk3588-mipi-dcphy";
3176		reg = <0x0 0xfedb0000 0x0 0x10000>;
3177		rockchip,grf = <&mipidcphy1_grf>;
3178		clocks = <&cru PCLK_MIPI_DCPHY1>,
3179			 <&cru CLK_USBDPPHY_MIPIDCPPHY_REF>;
3180		clock-names = "pclk", "ref";
3181		resets = <&cru SRST_M_MIPI_DCPHY1>,
3182			 <&cru SRST_P_MIPI_DCPHY1>,
3183			 <&cru SRST_P_MIPI_DCPHY1_GRF>,
3184			 <&cru SRST_S_MIPI_DCPHY1>;
3185		reset-names = "m_phy", "apb", "grf", "s_phy";
3186		#phy-cells = <1>;
3187		status = "disabled";
3188	};
3189
3190	csi_dphy0: phy@fedc0000 {
3191		compatible = "rockchip,rk3588-csi-dphy";
3192		reg = <0x0 0xfedc0000 0x0 0x8000>;
3193		clocks = <&cru PCLK_CSIPHY0>;
3194		clock-names = "pclk";
3195		#phy-cells = <0>;
3196		resets = <&cru SRST_P_CSIPHY0>, <&cru SRST_CSIPHY0>;
3197		reset-names = "apb", "phy";
3198		rockchip,grf = <&csidphy0_grf>;
3199		status = "disabled";
3200	};
3201
3202	csi_dphy1: phy@fedc8000 {
3203		compatible = "rockchip,rk3588-csi-dphy";
3204		reg = <0x0 0xfedc8000 0x0 0x8000>;
3205		clocks = <&cru PCLK_CSIPHY1>;
3206		clock-names = "pclk";
3207		#phy-cells = <0>;
3208		resets = <&cru SRST_P_CSIPHY1>, <&cru SRST_CSIPHY1>;
3209		reset-names = "apb", "phy";
3210		rockchip,grf = <&csidphy1_grf>;
3211		status = "disabled";
3212	};
3213
3214	combphy0_ps: phy@fee00000 {
3215		compatible = "rockchip,rk3588-naneng-combphy";
3216		reg = <0x0 0xfee00000 0x0 0x100>;
3217		clocks = <&cru CLK_REF_PIPE_PHY0>, <&cru PCLK_PCIE_COMBO_PIPE_PHY0>,
3218			 <&cru PCLK_PHP_ROOT>;
3219		clock-names = "ref", "apb", "pipe";
3220		assigned-clocks = <&cru CLK_REF_PIPE_PHY0>;
3221		assigned-clock-rates = <100000000>;
3222		#phy-cells = <1>;
3223		resets = <&cru SRST_REF_PIPE_PHY0>, <&cru SRST_P_PCIE2_PHY0>;
3224		reset-names = "phy", "apb";
3225		rockchip,pipe-grf = <&php_grf>;
3226		rockchip,pipe-phy-grf = <&pipe_phy0_grf>;
3227		status = "disabled";
3228	};
3229
3230	combphy2_psu: phy@fee20000 {
3231		compatible = "rockchip,rk3588-naneng-combphy";
3232		reg = <0x0 0xfee20000 0x0 0x100>;
3233		clocks = <&cru CLK_REF_PIPE_PHY2>, <&cru PCLK_PCIE_COMBO_PIPE_PHY2>,
3234			 <&cru PCLK_PHP_ROOT>;
3235		clock-names = "ref", "apb", "pipe";
3236		assigned-clocks = <&cru CLK_REF_PIPE_PHY2>;
3237		assigned-clock-rates = <100000000>;
3238		#phy-cells = <1>;
3239		resets = <&cru SRST_REF_PIPE_PHY2>, <&cru SRST_P_PCIE2_PHY2>;
3240		reset-names = "phy", "apb";
3241		rockchip,pipe-grf = <&php_grf>;
3242		rockchip,pipe-phy-grf = <&pipe_phy2_grf>;
3243		status = "disabled";
3244	};
3245
3246	system_sram2: sram@ff001000 {
3247		compatible = "mmio-sram";
3248		reg = <0x0 0xff001000 0x0 0xef000>;
3249		ranges = <0x0 0x0 0xff001000 0xef000>;
3250		#address-cells = <1>;
3251		#size-cells = <1>;
3252	};
3253
3254	pinctrl: pinctrl {
3255		compatible = "rockchip,rk3588-pinctrl";
3256		ranges;
3257		rockchip,grf = <&ioc>;
3258		#address-cells = <2>;
3259		#size-cells = <2>;
3260
3261		gpio0: gpio@fd8a0000 {
3262			compatible = "rockchip,gpio-bank";
3263			reg = <0x0 0xfd8a0000 0x0 0x100>;
3264			interrupts = <GIC_SPI 277 IRQ_TYPE_LEVEL_HIGH 0>;
3265			clocks = <&cru PCLK_GPIO0>, <&cru DBCLK_GPIO0>;
3266			gpio-controller;
3267			gpio-ranges = <&pinctrl 0 0 32>;
3268			interrupt-controller;
3269			#gpio-cells = <2>;
3270			#interrupt-cells = <2>;
3271		};
3272
3273		gpio1: gpio@fec20000 {
3274			compatible = "rockchip,gpio-bank";
3275			reg = <0x0 0xfec20000 0x0 0x100>;
3276			interrupts = <GIC_SPI 278 IRQ_TYPE_LEVEL_HIGH 0>;
3277			clocks = <&cru PCLK_GPIO1>, <&cru DBCLK_GPIO1>;
3278			gpio-controller;
3279			gpio-ranges = <&pinctrl 0 32 32>;
3280			interrupt-controller;
3281			#gpio-cells = <2>;
3282			#interrupt-cells = <2>;
3283		};
3284
3285		gpio2: gpio@fec30000 {
3286			compatible = "rockchip,gpio-bank";
3287			reg = <0x0 0xfec30000 0x0 0x100>;
3288			interrupts = <GIC_SPI 279 IRQ_TYPE_LEVEL_HIGH 0>;
3289			clocks = <&cru PCLK_GPIO2>, <&cru DBCLK_GPIO2>;
3290			gpio-controller;
3291			gpio-ranges = <&pinctrl 0 64 32>;
3292			interrupt-controller;
3293			#gpio-cells = <2>;
3294			#interrupt-cells = <2>;
3295		};
3296
3297		gpio3: gpio@fec40000 {
3298			compatible = "rockchip,gpio-bank";
3299			reg = <0x0 0xfec40000 0x0 0x100>;
3300			interrupts = <GIC_SPI 280 IRQ_TYPE_LEVEL_HIGH 0>;
3301			clocks = <&cru PCLK_GPIO3>, <&cru DBCLK_GPIO3>;
3302			gpio-controller;
3303			gpio-ranges = <&pinctrl 0 96 32>;
3304			interrupt-controller;
3305			#gpio-cells = <2>;
3306			#interrupt-cells = <2>;
3307		};
3308
3309		gpio4: gpio@fec50000 {
3310			compatible = "rockchip,gpio-bank";
3311			reg = <0x0 0xfec50000 0x0 0x100>;
3312			interrupts = <GIC_SPI 281 IRQ_TYPE_LEVEL_HIGH 0>;
3313			clocks = <&cru PCLK_GPIO4>, <&cru DBCLK_GPIO4>;
3314			gpio-controller;
3315			gpio-ranges = <&pinctrl 0 128 32>;
3316			interrupt-controller;
3317			#gpio-cells = <2>;
3318			#interrupt-cells = <2>;
3319		};
3320	};
3321};
3322
3323#include "rk3588-base-pinctrl.dtsi"
~/ Read-only file preview.