1// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2/* 3 * Copyright (c) 2019 Fuzhou Rockchip Electronics Co., Ltd. 4 */ 5 6#include <dt-bindings/clock/rv1126-cru.h> 7#include <dt-bindings/power/rv1126-power.h> 8#include <dt-bindings/gpio/gpio.h> 9#include <dt-bindings/interrupt-controller/irq.h> 10#include <dt-bindings/interrupt-controller/arm-gic.h> 11#include <dt-bindings/pinctrl/rockchip.h> 12#include <dt-bindings/soc/rockchip,boot-mode.h> 13#include <dt-bindings/soc/rockchip-system-status.h> 14#include <dt-bindings/suspend/rockchip-rv1126.h> 15#include "rv1126-dram-default-timing.dtsi" 16 17/ { 18 #address-cells = <1>; 19 #size-cells = <1>; 20 21 compatible = "rockchip,rv1126"; 22 23 interrupt-parent = <&gic>; 24 25 aliases { 26 i2c0 = &i2c0; 27 i2c1 = &i2c1; 28 i2c2 = &i2c2; 29 i2c3 = &i2c3; 30 i2c4 = &i2c4; 31 i2c5 = &i2c5; 32 serial0 = &uart0; 33 serial1 = &uart1; 34 serial2 = &uart2; 35 serial3 = &uart3; 36 serial4 = &uart4; 37 serial5 = &uart5; 38 spi0 = &spi0; 39 spi1 = &spi1; 40 dphy0 = &csi_dphy0; 41 dphy1 = &csi_dphy1; 42 }; 43 44 cpus { 45 #address-cells = <1>; 46 #size-cells = <0>; 47 48 cpu0: cpu@f00 { 49 device_type = "cpu"; 50 compatible = "arm,cortex-a7"; 51 reg = <0xf00>; 52 enable-method = "psci"; 53 clocks = <&cru ARMCLK>; 54 operating-points-v2 = <&cpu0_opp_table>; 55 cpu-idle-states = <&CPU_SLEEP>; 56 }; 57 58 cpu1: cpu@f01 { 59 device_type = "cpu"; 60 compatible = "arm,cortex-a7"; 61 reg = <0xf01>; 62 enable-method = "psci"; 63 clocks = <&cru ARMCLK>; 64 operating-points-v2 = <&cpu0_opp_table>; 65 cpu-idle-states = <&CPU_SLEEP>; 66 }; 67 68 cpu2: cpu@f02 { 69 device_type = "cpu"; 70 compatible = "arm,cortex-a7"; 71 reg = <0xf02>; 72 enable-method = "psci"; 73 clocks = <&cru ARMCLK>; 74 operating-points-v2 = <&cpu0_opp_table>; 75 cpu-idle-states = <&CPU_SLEEP>; 76 }; 77 78 cpu3: cpu@f03 { 79 device_type = "cpu"; 80 compatible = "arm,cortex-a7"; 81 reg = <0xf03>; 82 enable-method = "psci"; 83 clocks = <&cru ARMCLK>; 84 operating-points-v2 = <&cpu0_opp_table>; 85 cpu-idle-states = <&CPU_SLEEP>; 86 }; 87 88 idle-states { 89 entry-method = "psci"; 90 91 CPU_SLEEP: cpu-sleep { 92 compatible = "arm,idle-state"; 93 local-timer-stop; 94 arm,psci-suspend-param = <0x0010000>; 95 entry-latency-us = <120>; 96 exit-latency-us = <250>; 97 min-residency-us = <900>; 98 }; 99 }; 100 101 }; 102 103 cpu0_opp_table: cpu0-opp-table { 104 compatible = "operating-points-v2"; 105 opp-shared; 106 rockchip,reboot-freq = <816000>; 107 108 opp-408000000 { 109 opp-hz = /bits/ 64 <408000000>; 110 opp-microvolt = <725000 725000 1100000>; 111 clock-latency-ns = <40000>; 112 }; 113 opp-600000000 { 114 opp-hz = /bits/ 64 <600000000>; 115 opp-microvolt = <725000 725000 1000000>; 116 clock-latency-ns = <40000>; 117 }; 118 opp-816000000 { 119 opp-hz = /bits/ 64 <816000000>; 120 opp-microvolt = <725000 725000 1000000>; 121 clock-latency-ns = <40000>; 122 opp-suspend; 123 }; 124 opp-1008000000 { 125 opp-hz = /bits/ 64 <1008000000>; 126 opp-microvolt = <775000 775000 1000000>; 127 clock-latency-ns = <40000>; 128 }; 129 opp-1200000000 { 130 opp-hz = /bits/ 64 <1200000000>; 131 opp-microvolt = <825000 825000 1000000>; 132 clock-latency-ns = <40000>; 133 }; 134 opp-1296000000 { 135 opp-hz = /bits/ 64 <1296000000>; 136 opp-microvolt = <875000 875000 1000000>; 137 clock-latency-ns = <40000>; 138 }; 139 opp-1416000000 { 140 opp-hz = /bits/ 64 <1416000000>; 141 opp-microvolt = <925000 925000 1000000>; 142 clock-latency-ns = <40000>; 143 }; 144 opp-1512000000 { 145 opp-hz = /bits/ 64 <1512000000>; 146 opp-microvolt = <975000 975000 1000000>; 147 clock-latency-ns = <40000>; 148 }; 149 }; 150 151 arm-pmu { 152 compatible = "arm,cortex-a7-pmu"; 153 interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>, 154 <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>, 155 <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>, 156 <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>; 157 interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>; 158 }; 159 160 bus_soc: bus-soc { 161 compatible = "rockchip,rv1126-bus"; 162 rockchip,busfreq-policy = "smc"; 163 soc-bus0 { 164 bus-id = <0>; 165 cfg-val = <0x00300020>; 166 enable-msk = <0x7144>; 167 status = "okay"; 168 }; 169 soc-bus1 { 170 bus-id = <1>; 171 cfg-val = <0x00300020>; 172 enable-msk = <0x70ff>; 173 status = "disabled"; 174 }; 175 soc-bus2 { 176 bus-id = <2>; 177 cfg-val = <0x00300020>; 178 enable-msk = <0x70ff>; 179 status = "disabled"; 180 }; 181 soc-bus3 { 182 bus-id = <3>; 183 cfg-val = <0x00300020>; 184 enable-msk = <0x70ff>; 185 status = "disabled"; 186 }; 187 soc-bus4 { 188 bus-id = <4>; 189 cfg-val = <0x00300020>; 190 enable-msk = <0x7011>; 191 status = "disabled"; 192 }; 193 soc-bus5 { 194 bus-id = <5>; 195 cfg-val = <0x00300020>; 196 enable-msk = <0x7011>; 197 status = "disabled"; 198 }; 199 soc-bus6 { 200 bus-id = <6>; 201 cfg-val = <0x00300020>; 202 enable-msk = <0x7011>; 203 status = "disabled"; 204 }; 205 soc-bus7 { 206 bus-id = <7>; 207 cfg-val = <0x00300020>; 208 enable-msk = <0x0>; 209 status = "disabled"; 210 }; 211 soc-bus8 { 212 bus-id = <8>; 213 cfg-val = <0x00300020>; 214 enable-msk = <0x0>; 215 status = "disabled"; 216 }; 217 soc-bus9 { 218 bus-id = <9>; 219 cfg-val = <0x00300020>; 220 enable-msk = <0x0>; 221 status = "disabled"; 222 }; 223 soc-bus10 { 224 bus-id = <10>; 225 cfg-val = <0x00300020>; 226 enable-msk = <0x0>; 227 status = "disabled"; 228 }; 229 soc-bus11 { 230 bus-id = <11>; 231 cfg-val = <0x00300020>; 232 enable-msk = <0x7000>; 233 status = "okey"; 234 }; 235 }; 236 237 display_subsystem: display-subsystem { 238 compatible = "rockchip,display-subsystem"; 239 ports = <&vop_out>; 240 status = "disabled"; 241 242 route { 243 route_dsi: route-dsi { 244 status = "disabled"; 245 logo,uboot = "logo.bmp"; 246 logo,kernel = "logo_kernel.bmp"; 247 logo,mode = "center"; 248 charge_logo,mode = "center"; 249 connect = <&vop_out_dsi>; 250 }; 251 252 route_rgb: route-rgb { 253 status = "disabled"; 254 logo,uboot = "logo.bmp"; 255 logo,kernel = "logo_kernel.bmp"; 256 logo,mode = "center"; 257 charge_logo,mode = "center"; 258 connect = <&vop_out_rgb>; 259 }; 260 }; 261 }; 262 263 fiq_debugger: fiq-debugger { 264 compatible = "rockchip,fiq-debugger"; 265 rockchip,serial-id = <2>; 266 rockchip,wake-irq = <0>; 267 rockchip,irq-mode-enable = <0>; 268 rockchip,baudrate = <1500000>; /* Only 115200 and 1500000 */ 269 interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>; 270 status = "disabled"; 271 }; 272 273 firmware { 274 optee: optee { 275 compatible = "linaro,optee-tz"; 276 method = "smc"; 277 status = "disabled"; 278 }; 279 }; 280 281 mpp_srv: mpp-srv { 282 compatible = "rockchip,mpp-service"; 283 rockchip,taskqueue-count = <3>; 284 rockchip,resetgroup-count = <3>; 285 status = "disabled"; 286 }; 287 288 psci { 289 compatible = "arm,psci-1.0"; 290 method = "smc"; 291 }; 292 293 reserved-memory { 294 #address-cells = <1>; 295 #size-cells = <1>; 296 ranges; 297 298 isp_reserved: isp { 299 compatible = "shared-dma-pool"; 300 reusable; 301 size = <0x6800000>; 302 }; 303 304 ramoops: ramoops@8000000 { 305 compatible = "ramoops"; 306 reg = <0x8000000 0x100000>; 307 record-size = <0x20000>; 308 console-size = <0x40000>; 309 ftrace-size = <0x00000>; 310 pmsg-size = <0x40000>; 311 status = "disabled"; 312 }; 313 }; 314 315 rockchip_suspend: rockchip-suspend { 316 compatible = "rockchip,pm-rv1126"; 317 status = "disabled"; 318 rockchip,sleep-debug-en = <0>; 319 rockchip,sleep-mode-config = < 320 (0 321 | RKPM_SLP_ARMOFF 322 | RKPM_SLP_PMU_PMUALIVE_32K 323 | RKPM_SLP_PMU_DIS_OSC 324 | RKPM_SLP_PMIC_LP 325 ) 326 >; 327 rockchip,wakeup-config = < 328 (0 329 | RKPM_GPIO_WKUP_EN 330 ) 331 >; 332 }; 333 334 rockchip_system_monitor: rockchip-system-monitor { 335 compatible = "rockchip,system-monitor"; 336 }; 337 338 thermal_zones: thermal-zones { 339 cpu_thermal: cpu-thermal { 340 polling-delay-passive = <20>; /* milliseconds */ 341 polling-delay = <1000>; /* milliseconds */ 342 sustainable-power = <977>; /* milliwatts */ 343 344 thermal-sensors = <&cpu_tsadc 0>; 345 }; 346 347 npu_thermal: npu-thermal { 348 polling-delay-passive = <20>; /* milliseconds */ 349 polling-delay = <1000>; /* milliseconds */ 350 sustainable-power = <977>; /* milliwatts */ 351 352 thermal-sensors = <&npu_tsadc 0>; 353 }; 354 }; 355 356 timer { 357 compatible = "arm,armv7-timer"; 358 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>, 359 <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>, 360 <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>, 361 <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>; 362 clock-frequency = <24000000>; 363 }; 364 365 xin24m: oscillator { 366 compatible = "fixed-clock"; 367 clock-frequency = <24000000>; 368 clock-output-names = "xin24m"; 369 #clock-cells = <0>; 370 }; 371 372 gmac_clkin_m0: external-gmac-clockm0 { 373 compatible = "fixed-clock"; 374 clock-frequency = <125000000>; 375 clock-output-names = "clk_gmac_rgmii_clkin_m0"; 376 #clock-cells = <0>; 377 }; 378 379 gmac_clkini_m1: external-gmac-clockm1 { 380 compatible = "fixed-clock"; 381 clock-frequency = <125000000>; 382 clock-output-names = "clk_gmac_rgmii_clkin_m1"; 383 #clock-cells = <0>; 384 }; 385 386 grf: syscon@fe000000 { 387 compatible = "rockchip,rv1126-grf", "syscon", "simple-mfd"; 388 reg = <0xfe000000 0x20000>; 389 390 rgb: rgb { 391 compatible = "rockchip,rv1126-rgb"; 392 status = "disabled"; 393 394 ports { 395 #address-cells = <1>; 396 #size-cells = <0>; 397 398 port@0 { 399 reg = <0>; 400 #address-cells = <1>; 401 #size-cells = <0>; 402 403 rgb_in_vop: endpoint@0 { 404 reg = <0>; 405 remote-endpoint = <&vop_out_rgb>; 406 }; 407 }; 408 409 }; 410 }; 411 }; 412 413 pmugrf: syscon@fe020000 { 414 compatible = "rockchip,rv1126-pmugrf", "syscon", "simple-mfd"; 415 reg = <0xfe020000 0x1000>; 416 417 pmu_io_domains: io-domains { 418 compatible = "rockchip,rv1126-pmu-io-voltage-domain"; 419 }; 420 421 reboot-mode { 422 compatible = "syscon-reboot-mode"; 423 offset = <0x200>; 424 mode-bootloader = <BOOT_BL_DOWNLOAD>; 425 mode-charge = <BOOT_CHARGING>; 426 mode-fastboot = <BOOT_FASTBOOT>; 427 mode-loader = <BOOT_BL_DOWNLOAD>; 428 mode-normal = <BOOT_NORMAL>; 429 mode-recovery = <BOOT_RECOVERY>; 430 mode-ums = <BOOT_UMS>; 431 }; 432 }; 433 434 qos_usb_host: qos@fe810000 { 435 compatible = "syscon"; 436 reg = <0xfe810000 0x20>; 437 }; 438 439 qos_usb_otg: qos@fe810080 { 440 compatible = "syscon"; 441 reg = <0xfe810080 0x20>; 442 }; 443 444 qos_npu: qos@fe850000 { 445 compatible = "syscon"; 446 reg = <0xfe850000 0x20>; 447 }; 448 449 qos_emmc: qos@fe860000 { 450 compatible = "syscon"; 451 reg = <0xfe860000 0x20>; 452 }; 453 454 qos_nandc: qos@fe860080 { 455 compatible = "syscon"; 456 reg = <0xfe860080 0x20>; 457 }; 458 459 qos_sfc: qos@fe860200 { 460 compatible = "syscon"; 461 reg = <0xfe860200 0x20>; 462 }; 463 464 qos_sdio: qos@fe86c000 { 465 compatible = "syscon"; 466 reg = <0xfe86c000 0x20>; 467 }; 468 469 qos_vepu_rd0: qos@fe870000 { 470 compatible = "syscon"; 471 reg = <0xfe870000 0x20>; 472 }; 473 474 qos_vepu_rd1: qos@fe870080 { 475 compatible = "syscon"; 476 reg = <0xfe870080 0x20>; 477 }; 478 479 qos_vepu_wr: qos@fe870100 { 480 compatible = "syscon"; 481 reg = <0xfe870100 0x20>; 482 }; 483 484 qos_ispp_m0: qos@fe880000 { 485 compatible = "syscon"; 486 reg = <0xfe880000 0x20>; 487 }; 488 489 qos_ispp_m1: qos@fe880080 { 490 compatible = "syscon"; 491 reg = <0xfe880080 0x20>; 492 }; 493 494 qos_isp: qos@fe890000 { 495 compatible = "syscon"; 496 reg = <0xfe890000 0x20>; 497 }; 498 499 qos_cif_lite: qos@fe890080 { 500 compatible = "syscon"; 501 reg = <0xfe890080 0x20>; 502 }; 503 504 qos_cif: qos@fe890100 { 505 compatible = "syscon"; 506 reg = <0xfe890100 0x20>; 507 }; 508 509 qos_iep: qos@fe8a0000 { 510 compatible = "syscon"; 511 reg = <0xfe8a0000 0x20>; 512 }; 513 514 qos_rga_rd: qos@fe8a0080 { 515 compatible = "syscon"; 516 reg = <0xfe8a0080 0x20>; 517 }; 518 519 qos_rga_wr: qos@fe8a0100 { 520 compatible = "syscon"; 521 reg = <0xfe8a0100 0x20>; 522 }; 523 524 qos_vop: qos@fe8a0180 { 525 compatible = "syscon"; 526 reg = <0xfe8a0180 0x20>; 527 }; 528 529 qos_vdpu: qos@fe8b0000 { 530 compatible = "syscon"; 531 reg = <0xfe8b0000 0x20>; 532 }; 533 534 qos_jpeg: qos@fe8c0000 { 535 compatible = "syscon"; 536 reg = <0xfe8c0000 0x20>; 537 }; 538 539 qos_crypto: qos@fe8d0000 { 540 compatible = "syscon"; 541 reg = <0xfe8d0000 0x20>; 542 }; 543 544 gic: interrupt-controller@feff0000 { 545 compatible = "arm,gic-400"; 546 interrupt-controller; 547 #interrupt-cells = <3>; 548 #address-cells = <0>; 549 550 reg = <0xfeff1000 0x1000>, 551 <0xfeff2000 0x2000>, 552 <0xfeff4000 0x2000>, 553 <0xfeff6000 0x2000>; 554 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>; 555 }; 556 557 arm-debug@ff010000 { 558 compatible = "rockchip,debug"; 559 reg = <0xff010000 0x1000>, 560 <0xff012000 0x1000>, 561 <0xff014000 0x1000>, 562 <0xff016000 0x1000>; 563 }; 564 565 pvtm@ff040000 { 566 compatible = "rockchip,rv1126-cpu-pvtm"; 567 reg = <0xff040000 0x100>; 568 #address-cells = <1>; 569 #size-cells = <0>; 570 571 pvtm@0 { 572 reg = <0>; 573 clocks = <&cru CLK_CPUPVTM>, <&cru PCLK_CPUPVTM>; 574 clock-names = "clk", "pclk"; 575 resets = <&cru SRST_CPUPVTM>, <&cru SRST_CPUPVTM_P>; 576 reset-names = "rst", "rst-p"; 577 }; 578 }; 579 580 pmu: power-management@ff3e0000 { 581 compatible = "rockchip,rv1126-pmu", "syscon", "simple-mfd"; 582 reg = <0xff3e0000 0x1000>; 583 584 power: power-controller { 585 compatible = "rockchip,rv1126-power-controller"; 586 #power-domain-cells = <1>; 587 #address-cells = <1>; 588 #size-cells = <0>; 589 status = "okay"; 590 591 /* These power domains are grouped by VD_NPU */ 592 pd_npu@RV1126_PD_NPU { 593 reg = <RV1126_PD_NPU>; 594 clocks = <&cru ACLK_NPU>, 595 <&cru HCLK_NPU>, 596 <&cru PCLK_PDNPU>, 597 <&cru CLK_CORE_NPU>; 598 pm_qos = <&qos_npu>; 599 }; 600 /* These power domains are grouped by VD_VEPU */ 601 pd_vepu@RV1126_PD_VEPU { 602 reg = <RV1126_PD_VEPU>; 603 clocks = <&cru ACLK_VENC>, 604 <&cru HCLK_VENC>, 605 <&cru CLK_VENC_CORE>; 606 pm_qos = <&qos_vepu_rd0>, 607 <&qos_vepu_rd1>, 608 <&qos_vepu_wr>; 609 }; 610 /* These power domains are grouped by VD_LOGIC */ 611 pd_crypto@RV1126_PD_CRYPTO { 612 reg = <RV1126_PD_CRYPTO>; 613 clocks = <&cru ACLK_CRYPTO>, 614 <&cru HCLK_CRYPTO>, 615 <&cru CLK_CRYPTO_CORE>, 616 <&cru CLK_CRYPTO_PKA>; 617 pm_qos = <&qos_crypto>; 618 }; 619 pd_vi@RV1126_PD_VI { 620 reg = <RV1126_PD_VI>; 621 clocks = <&cru ACLK_ISP>, 622 <&cru HCLK_ISP>, 623 <&cru CLK_ISP>, 624 <&cru ACLK_CIF>, 625 <&cru HCLK_CIF>, 626 <&cru DCLK_CIF>, 627 <&cru CLK_CIF_OUT>, 628 <&cru CLK_MIPICSI_OUT>, 629 <&cru PCLK_CSIHOST>, 630 <&cru ACLK_CIFLITE>, 631 <&cru HCLK_CIFLITE>, 632 <&cru DCLK_CIFLITE>; 633 pm_qos = <&qos_isp>, 634 <&qos_cif_lite>, 635 <&qos_cif>; 636 }; 637 pd_vo@RV1126_PD_VO { 638 reg = <RV1126_PD_VO>; 639 clocks = <&cru ACLK_RGA>, 640 <&cru HCLK_RGA>, 641 <&cru CLK_RGA_CORE>, 642 <&cru ACLK_VOP>, 643 <&cru HCLK_VOP>, 644 <&cru DCLK_VOP>, 645 <&cru PCLK_DSIHOST>, 646 <&cru ACLK_IEP>, 647 <&cru HCLK_IEP>, 648 <&cru CLK_IEP_CORE>; 649 pm_qos = <&qos_rga_rd>, <&qos_rga_wr>, 650 <&qos_vop>, <&qos_iep>; 651 }; 652 pd_ispp@RV1126_PD_ISPP { 653 reg = <RV1126_PD_ISPP>; 654 clocks = <&cru ACLK_ISPP>, 655 <&cru HCLK_ISPP>, 656 <&cru CLK_ISPP>; 657 pm_qos = <&qos_ispp_m0>, 658 <&qos_ispp_m1>; 659 }; 660 pd_vdpu@RV1126_PD_VDPU { 661 reg = <RV1126_PD_VDPU>; 662 clocks = <&cru ACLK_VDEC>, 663 <&cru HCLK_VDEC>, 664 <&cru CLK_VDEC_CORE>, 665 <&cru CLK_VDEC_CA>, 666 <&cru CLK_VDEC_HEVC_CA>, 667 <&cru ACLK_JPEG>, 668 <&cru HCLK_JPEG>; 669 pm_qos = <&qos_vdpu>, 670 <&qos_jpeg>; 671 }; 672 pd_nvm@RV1126_PD_NVM { 673 reg = <RV1126_PD_NVM>; 674 clocks = <&cru HCLK_EMMC>, 675 <&cru CLK_EMMC>, 676 <&cru HCLK_NANDC>, 677 <&cru CLK_NANDC>, 678 <&cru HCLK_SFC>, 679 <&cru HCLK_SFCXIP>, 680 <&cru SCLK_SFC>; 681 pm_qos = <&qos_emmc>, 682 <&qos_nandc>, 683 <&qos_sfc>; 684 }; 685 pd_sdio@RV1126_PD_SDIO { 686 reg = <RV1126_PD_SDIO>; 687 clocks = <&cru HCLK_SDIO>, 688 <&cru CLK_SDIO>; 689 pm_qos = <&qos_sdio>; 690 }; 691 pd_usb@RV1126_PD_USB { 692 reg = <RV1126_PD_USB>; 693 clocks = <&cru HCLK_USBHOST>, 694 <&cru HCLK_USBHOST_ARB>, 695 <&cru CLK_USBHOST_UTMI_OHCI>, 696 <&cru ACLK_USBOTG>, 697 <&cru CLK_USBOTG_REF>; 698 pm_qos = <&qos_usb_host>, 699 <&qos_usb_otg>; 700 }; 701 }; 702 }; 703 704 i2c0: i2c@ff3f0000 { 705 compatible = "rockchip,rv1126-i2c", "rockchip,rk3399-i2c"; 706 reg = <0xff3f0000 0x1000>; 707 interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>; 708 #address-cells = <1>; 709 #size-cells = <0>; 710 clocks = <&pmucru CLK_I2C0>, <&pmucru PCLK_I2C0>; 711 clock-names = "i2c", "pclk"; 712 pinctrl-names = "default"; 713 pinctrl-0 = <&i2c0_xfer>; 714 status = "disabled"; 715 }; 716 717 i2c2: i2c@ff400000 { 718 compatible = "rockchip,rv1126-i2c", "rockchip,rk3399-i2c"; 719 reg = <0xff400000 0x1000>; 720 interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>; 721 #address-cells = <1>; 722 #size-cells = <0>; 723 rockchip,grf = <&pmugrf>; 724 clocks = <&pmucru CLK_I2C2>, <&pmucru PCLK_I2C2>; 725 clock-names = "i2c", "pclk"; 726 pinctrl-names = "default"; 727 pinctrl-0 = <&i2c2_xfer>; 728 status = "disabled"; 729 }; 730 731 amba { 732 compatible = "simple-bus"; 733 #address-cells = <1>; 734 #size-cells = <1>; 735 ranges; 736 737 dmac: dma-controller@ff4e0000 { 738 compatible = "arm,pl330", "arm,primecell"; 739 reg = <0xff4e0000 0x4000>; 740 interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>, 741 <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>; 742 #dma-cells = <1>; 743 clocks = <&cru ACLK_DMAC>; 744 clock-names = "apb_pclk"; 745 }; 746 }; 747 748 uart1: serial@ff410000 { 749 compatible = "rockchip,rv1126-uart", "snps,dw-apb-uart"; 750 reg = <0xff410000 0x100>; 751 interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>; 752 reg-shift = <2>; 753 reg-io-width = <4>; 754 dmas = <&dmac 7>, <&dmac 6>; 755 clock-frequency = <24000000>; 756 clocks = <&pmucru SCLK_UART1>, <&pmucru PCLK_UART1>; 757 clock-names = "baudclk", "apb_pclk"; 758 pinctrl-names = "default"; 759 pinctrl-0 = <&uart1m0_xfer &uart1m0_ctsn &uart1m0_rtsn>; 760 status = "disabled"; 761 }; 762 763 pwm0: pwm@ff430000 { 764 compatible = "rockchip,rv1126-pwm", "rockchip,rk3328-pwm"; 765 reg = <0xff430000 0x10>; 766 #pwm-cells = <3>; 767 pinctrl-names = "active"; 768 pinctrl-0 = <&pwm0m0_pins>; 769 clocks = <&pmucru CLK_PWM0>, <&pmucru PCLK_PWM0>; 770 clock-names = "pwm", "pclk"; 771 status = "disabled"; 772 }; 773 774 pwm1: pwm@ff430010 { 775 compatible = "rockchip,rv1126-pwm", "rockchip,rk3328-pwm"; 776 reg = <0xff430010 0x10>; 777 #pwm-cells = <3>; 778 pinctrl-names = "active"; 779 pinctrl-0 = <&pwm1m0_pins>; 780 clocks = <&pmucru CLK_PWM0>, <&pmucru PCLK_PWM0>; 781 clock-names = "pwm", "pclk"; 782 status = "disabled"; 783 }; 784 785 pwm2: pwm@ff430020 { 786 compatible = "rockchip,rv1126-pwm", "rockchip,rk3328-pwm"; 787 reg = <0xff430020 0x10>; 788 #pwm-cells = <3>; 789 pinctrl-names = "active"; 790 pinctrl-0 = <&pwm2m0_pins>; 791 clocks = <&pmucru CLK_PWM0>, <&pmucru PCLK_PWM0>; 792 clock-names = "pwm", "pclk"; 793 status = "disabled"; 794 }; 795 796 pwm3: pwm@ff430030 { 797 compatible = "rockchip,rv1126-pwm", "rockchip,rk3328-pwm"; 798 reg = <0xff430030 0x10>; 799 #pwm-cells = <3>; 800 pinctrl-names = "active"; 801 pinctrl-0 = <&pwm3m0_pins>; 802 clocks = <&pmucru CLK_PWM0>, <&pmucru PCLK_PWM0>; 803 clock-names = "pwm", "pclk"; 804 status = "disabled"; 805 }; 806 807 pwm4: pwm@ff440000 { 808 compatible = "rockchip,rv1126-pwm", "rockchip,rk3328-pwm"; 809 reg = <0xff440000 0x10>; 810 #pwm-cells = <3>; 811 pinctrl-names = "active"; 812 pinctrl-0 = <&pwm4m0_pins>; 813 clocks = <&pmucru CLK_PWM1>, <&pmucru PCLK_PWM1>; 814 clock-names = "pwm", "pclk"; 815 status = "disabled"; 816 }; 817 818 pwm5: pwm@ff440010 { 819 compatible = "rockchip,rv1126-pwm", "rockchip,rk3328-pwm"; 820 reg = <0xff440010 0x10>; 821 #pwm-cells = <3>; 822 pinctrl-names = "active"; 823 pinctrl-0 = <&pwm5m0_pins>; 824 clocks = <&pmucru CLK_PWM1>, <&pmucru PCLK_PWM1>; 825 clock-names = "pwm", "pclk"; 826 status = "disabled"; 827 }; 828 829 pwm6: pwm@ff440020 { 830 compatible = "rockchip,rv1126-pwm", "rockchip,rk3328-pwm"; 831 reg = <0xff440020 0x10>; 832 #pwm-cells = <3>; 833 pinctrl-names = "active"; 834 pinctrl-0 = <&pwm6m0_pins>; 835 clocks = <&pmucru CLK_PWM1>, <&pmucru PCLK_PWM1>; 836 clock-names = "pwm", "pclk"; 837 status = "disabled"; 838 }; 839 840 pwm7: pwm@ff440030 { 841 compatible = "rockchip,rv1126-pwm", "rockchip,rk3328-pwm"; 842 reg = <0xff440030 0x10>; 843 #pwm-cells = <3>; 844 pinctrl-names = "active"; 845 pinctrl-0 = <&pwm7m0_pins>; 846 clocks = <&pmucru CLK_PWM1>, <&pmucru PCLK_PWM1>; 847 clock-names = "pwm", "pclk"; 848 status = "disabled"; 849 }; 850 851 spi0: spi@ff450000 { 852 compatible = "rockchip,rv1126-spi", "rockchip,rk3066-spi"; 853 reg = <0xff450000 0x1000>; 854 interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>; 855 #address-cells = <1>; 856 #size-cells = <0>; 857 clocks = <&pmucru CLK_SPI0>, <&pmucru PCLK_SPI0>; 858 clock-names = "spiclk", "apb_pclk"; 859 dmas = <&dmac 1>, <&dmac 0>; 860 dma-names = "tx", "rx"; 861 pinctrl-names = "default", "high_speed"; 862 pinctrl-0 = <&spi0m0_clk &spi0m0_cs0n &spi0m0_cs1n &spi0m0_miso &spi0m0_mosi>; 863 pinctrl-1 = <&spi0m0_clk_hs &spi0m0_cs0n &spi0m0_cs1n &spi0m0_miso_hs &spi0m0_mosi_hs>; 864 status = "disabled"; 865 }; 866 867 pvtm@ff470000 { 868 compatible = "rockchip,rv1126-pmu-pvtm"; 869 reg = <0xff470000 0x100>; 870 #address-cells = <1>; 871 #size-cells = <0>; 872 873 pvtm@2 { 874 reg = <2>; 875 clocks = <&pmucru CLK_PMUPVTM>, <&pmucru PCLK_PMUPVTM>; 876 clock-names = "clk", "pclk"; 877 resets = <&pmucru SRST_PMUPVTM>, 878 <&pmucru SRST_PMUPVTM_P>; 879 reset-names = "rst", "rst-p"; 880 }; 881 }; 882 883 pmucru: clock-controller@ff480000 { 884 compatible = "rockchip,rv1126-pmucru"; 885 reg = <0xff480000 0x1000>; 886 rockchip,grf = <&grf>; 887 #clock-cells = <1>; 888 #reset-cells = <1>; 889 }; 890 891 cru: clock-controller@ff490000 { 892 compatible = "rockchip,rv1126-cru"; 893 reg = <0xff490000 0x1000>; 894 rockchip,grf = <&grf>; 895 #clock-cells = <1>; 896 #reset-cells = <1>; 897 898 assigned-clocks = 899 <&pmucru CLK_RTC32K>, <&pmucru PLL_GPLL>, 900 <&pmucru PCLK_PDPMU>, <&cru PLL_CPLL>, 901 <&cru PLL_HPLL>, <&cru ARMCLK>, 902 <&cru ACLK_PDBUS>, <&cru HCLK_PDBUS>, 903 <&cru PCLK_PDBUS>, <&cru ACLK_PDPHP>, 904 <&cru HCLK_PDPHP>, <&cru HCLK_PDAUDIO>, 905 <&cru HCLK_PDCORE_NIU>; 906 assigned-clock-rates = 907 <32768>, <1188000000>, 908 <100000000>, <500000000>, 909 <1400000000>, <600000000>, 910 <500000000>, <200000000>, 911 <100000000>, <300000000>, 912 <200000000>, <150000000>, 913 <200000000>; 914 assigned-clock-parents = 915 <&pmucru CLK_OSC0_DIV32K>; 916 }; 917 918 csi_dphy0: csi-dphy@ff4b0000 { 919 compatible = "rockchip,rv1126-csi-dphy"; 920 reg = <0xff4b0000 0x8000>; 921 clocks = <&cru PCLK_CSIPHY0>; 922 clock-names = "pclk"; 923 rockchip,grf = <&grf>; 924 status = "disabled"; 925 }; 926 927 csi_dphy1: csi-dphy@ff4b8000 { 928 compatible = "rockchip,rv1126-csi-dphy"; 929 reg = <0xff4b8000 0x8000>; 930 clocks = <&cru PCLK_CSIPHY1>; 931 clock-names = "pclk"; 932 rockchip,grf = <&grf>; 933 status = "disabled"; 934 }; 935 936 u2phy0: usb2-phy@ff4c0000 { 937 compatible = "rockchip,rv1126-usb2phy"; 938 reg = <0xff4c0000 0x8000>; 939 rockchip,grf = <&grf>; 940 clocks = <&pmucru CLK_USBPHY_OTG_REF>, <&cru PCLK_USBPHY_OTG>; 941 clock-names = "phyclk", "pclk"; 942 resets = <&cru SRST_USBPHYPOR_OTG>, <&cru SRST_USBPHY_OTG_P>; 943 reset-names = "u2phy", "u2phy-apb"; 944 #clock-cells = <0>; 945 status = "disabled"; 946 947 u2phy_otg: otg-port { 948 #phy-cells = <0>; 949 interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>, 950 <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>, 951 <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>, 952 <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>; 953 interrupt-names = "otg-bvalid", "otg-id", 954 "linestate", "disconnect"; 955 status = "disabled"; 956 }; 957 }; 958 959 u2phy1: usb2-phy@ff4c8000 { 960 compatible = "rockchip,rv1126-usb2phy"; 961 reg = <0xff4c8000 0x8000>; 962 rockchip,grf = <&grf>; 963 clocks = <&pmucru CLK_USBPHY_HOST_REF>, <&cru PCLK_USBPHY_HOST>; 964 clock-names = "phyclk", "pclk"; 965 assigned-clocks = <&cru USB480M>; 966 assigned-clock-parents = <&u2phy1>; 967 resets = <&cru SRST_USBPHYPOR_HOST>, <&cru SRST_USBPHY_HOST_P>; 968 reset-names = "u2phy", "u2phy-apb"; 969 #clock-cells = <0>; 970 clock-output-names = "usb480m_phy"; 971 status = "disabled"; 972 973 u2phy_host: host-port { 974 #phy-cells = <0>; 975 interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>, 976 <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>; 977 interrupt-names = "linestate", "disconnect"; 978 status = "disabled"; 979 }; 980 }; 981 982 mipi_dphy: mipi-dphy@ff4d0000 { 983 compatible = "rockchip,rv1126-mipi-dphy", "rockchip,rk1808-mipi-dphy"; 984 reg = <0xff4d0000 0x500>; 985 assigned-clocks = <&pmucru CLK_MIPIDSIPHY_REF>; 986 assigned-clock-rates = <24000000>; 987 clocks = <&pmucru CLK_MIPIDSIPHY_REF>, <&cru PCLK_DSIPHY>; 988 clock-names = "ref", "pclk"; 989 clock-output-names = "mipi_dphy_pll"; 990 #clock-cells = <0>; 991 resets = <&cru SRST_DSIPHY_P>; 992 reset-names = "apb"; 993 #phy-cells = <0>; 994 rockchip,grf = <&grf>; 995 status = "disabled"; 996 }; 997 998 rng: rng@ff500000 { 999 compatible = "rockchip,cryptov2-rng"; 1000 reg = <0xff500000 0x4000>; 1001 clocks = <&cru CLK_CRYPTO_CORE>, <&cru CLK_CRYPTO_PKA>, 1002 <&cru ACLK_CRYPTO>, <&cru HCLK_CRYPTO>; 1003 clock-names = "clk_crypto", "clk_crypto_apk", 1004 "aclk_crypto", "hclk_crypto"; 1005 assigned-clocks = <&cru CLK_CRYPTO_CORE>, <&cru CLK_CRYPTO_PKA>, 1006 <&cru ACLK_CRYPTO>, <&cru HCLK_CRYPTO>; 1007 assigned-clock-rates = <150000000>, <150000000>, 1008 <200000000>, <100000000>; 1009 power-domains = <&power RV1126_PD_CRYPTO>; 1010 resets = <&cru SRST_CRYPTO_CORE>; 1011 reset-names = "reset"; 1012 status = "disabled"; 1013 }; 1014 1015 i2c1: i2c@ff510000 { 1016 compatible = "rockchip,rv1126-i2c", "rockchip,rk3399-i2c"; 1017 reg = <0xff510000 0x1000>; 1018 interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>; 1019 #address-cells = <1>; 1020 #size-cells = <0>; 1021 clocks = <&cru CLK_I2C1>, <&cru PCLK_I2C1>; 1022 clock-names = "i2c", "pclk"; 1023 pinctrl-names = "default"; 1024 pinctrl-0 = <&i2c1_xfer>; 1025 status = "disabled"; 1026 }; 1027 1028 i2c3: i2c@ff520000 { 1029 compatible = "rockchip,rv1126-i2c", "rockchip,rk3399-i2c"; 1030 reg = <0xff520000 0x1000>; 1031 interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; 1032 #address-cells = <1>; 1033 #size-cells = <0>; 1034 clocks = <&cru CLK_I2C3>, <&cru PCLK_I2C3>; 1035 clock-names = "i2c", "pclk"; 1036 pinctrl-names = "default"; 1037 pinctrl-0 = <&i2c3m0_xfer>; 1038 status = "disabled"; 1039 }; 1040 1041 i2c4: i2c@ff530000 { 1042 compatible = "rockchip,rv1126-i2c", "rockchip,rk3399-i2c"; 1043 reg = <0xff530000 0x1000>; 1044 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>; 1045 #address-cells = <1>; 1046 #size-cells = <0>; 1047 clocks = <&cru CLK_I2C4>, <&cru PCLK_I2C4>; 1048 clock-names = "i2c", "pclk"; 1049 pinctrl-names = "default"; 1050 pinctrl-0 = <&i2c4m0_xfer>; 1051 status = "disabled"; 1052 }; 1053 1054 i2c5: i2c@ff540000 { 1055 compatible = "rockchip,rv1126-i2c", "rockchip,rk3399-i2c"; 1056 reg = <0xff540000 0x1000>; 1057 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>; 1058 #address-cells = <1>; 1059 #size-cells = <0>; 1060 clocks = <&cru CLK_I2C5>, <&cru PCLK_I2C5>; 1061 clock-names = "i2c", "pclk"; 1062 pinctrl-names = "default"; 1063 pinctrl-0 = <&i2c5m0_xfer>; 1064 status = "disabled"; 1065 }; 1066 1067 pwm8: pwm@ff550000 { 1068 compatible = "rockchip,rv1126-pwm", "rockchip,rk3328-pwm"; 1069 reg = <0xff550000 0x10>; 1070 #pwm-cells = <3>; 1071 pinctrl-names = "active"; 1072 pinctrl-0 = <&pwm8m0_pins>; 1073 clocks = <&cru CLK_PWM2>, <&cru PCLK_PWM2>; 1074 clock-names = "pwm", "pclk"; 1075 status = "disabled"; 1076 }; 1077 1078 pwm9: pwm@ff550010 { 1079 compatible = "rockchip,rv1126-pwm", "rockchip,rk3328-pwm"; 1080 reg = <0xff550010 0x10>; 1081 #pwm-cells = <3>; 1082 pinctrl-names = "active"; 1083 pinctrl-0 = <&pwm9m0_pins>; 1084 clocks = <&cru CLK_PWM2>, <&cru PCLK_PWM2>; 1085 clock-names = "pwm", "pclk"; 1086 status = "disabled"; 1087 }; 1088 1089 pwm10: pwm@ff550020 { 1090 compatible = "rockchip,rv1126-pwm", "rockchip,rk3328-pwm"; 1091 reg = <0xff550020 0x10>; 1092 #pwm-cells = <3>; 1093 pinctrl-names = "active"; 1094 pinctrl-0 = <&pwm10m0_pins>; 1095 clocks = <&cru CLK_PWM2>, <&cru PCLK_PWM2>; 1096 clock-names = "pwm", "pclk"; 1097 status = "disabled"; 1098 }; 1099 1100 pwm11: pwm@ff550030 { 1101 compatible = "rockchip,rv1126-pwm", "rockchip,rk3328-pwm"; 1102 reg = <0xff550030 0x10>; 1103 #pwm-cells = <3>; 1104 pinctrl-names = "active"; 1105 pinctrl-0 = <&pwm11m0_pins>; 1106 clocks = <&cru CLK_PWM2>, <&cru PCLK_PWM2>; 1107 clock-names = "pwm", "pclk"; 1108 status = "disabled"; 1109 }; 1110 1111 uart0: serial@ff560000 { 1112 compatible = "rockchip,rv1126-uart", "snps,dw-apb-uart"; 1113 reg = <0xff560000 0x100>; 1114 interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>; 1115 reg-shift = <2>; 1116 reg-io-width = <4>; 1117 dmas = <&dmac 5>, <&dmac 4>; 1118 clock-frequency = <24000000>; 1119 clocks = <&cru SCLK_UART0>, <&cru PCLK_UART0>; 1120 clock-names = "baudclk", "apb_pclk"; 1121 pinctrl-names = "default"; 1122 pinctrl-0 = <&uart0_xfer &uart0_ctsn &uart0_rtsn>; 1123 status = "disabled"; 1124 }; 1125 1126 uart2: serial@ff570000 { 1127 compatible = "rockchip,rv1126-uart", "snps,dw-apb-uart"; 1128 reg = <0xff570000 0x100>; 1129 interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>; 1130 reg-shift = <2>; 1131 reg-io-width = <4>; 1132 dmas = <&dmac 9>, <&dmac 8>; 1133 clock-frequency = <24000000>; 1134 clocks = <&cru SCLK_UART2>, <&cru PCLK_UART2>; 1135 clock-names = "baudclk", "apb_pclk"; 1136 pinctrl-names = "default"; 1137 pinctrl-0 = <&uart2m1_xfer>; 1138 status = "disabled"; 1139 }; 1140 1141 uart3: serial@ff580000 { 1142 compatible = "rockchip,rv1126-uart", "snps,dw-apb-uart"; 1143 reg = <0xff580000 0x100>; 1144 interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>; 1145 reg-shift = <2>; 1146 reg-io-width = <4>; 1147 dmas = <&dmac 11>, <&dmac 10>; 1148 clock-frequency = <24000000>; 1149 clocks = <&cru SCLK_UART3>, <&cru PCLK_UART3>; 1150 clock-names = "baudclk", "apb_pclk"; 1151 pinctrl-names = "default"; 1152 pinctrl-0 = <&uart3m0_xfer &uart3m0_ctsn &uart3m0_rtsn>; 1153 status = "disabled"; 1154 }; 1155 1156 uart4: serial@ff590000 { 1157 compatible = "rockchip,rv1126-uart", "snps,dw-apb-uart"; 1158 reg = <0xff590000 0x100>; 1159 interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>; 1160 reg-shift = <2>; 1161 reg-io-width = <4>; 1162 dmas = <&dmac 13>, <&dmac 12>; 1163 clock-frequency = <24000000>; 1164 clocks = <&cru SCLK_UART4>, <&cru PCLK_UART4>; 1165 clock-names = "baudclk", "apb_pclk"; 1166 pinctrl-names = "default"; 1167 pinctrl-0 = <&uart4m0_xfer &uart4m0_ctsn &uart4m0_rtsn>; 1168 status = "disabled"; 1169 }; 1170 1171 uart5: serial@ff5a0000 { 1172 compatible = "rockchip,rv1126-uart", "snps,dw-apb-uart"; 1173 reg = <0xff5a0000 0x100>; 1174 interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>; 1175 reg-shift = <2>; 1176 reg-io-width = <4>; 1177 dmas = <&dmac 15>, <&dmac 14>; 1178 clock-frequency = <24000000>; 1179 clocks = <&cru SCLK_UART5>, <&cru PCLK_UART5>; 1180 clock-names = "baudclk", "apb_pclk"; 1181 pinctrl-names = "default"; 1182 pinctrl-0 = <&uart5m0_xfer &uart5m0_ctsn &uart5m0_rtsn>; 1183 status = "disabled"; 1184 }; 1185 1186 spi1: spi@ff5b0000 { 1187 compatible = "rockchip,rv1126-spi", "rockchip,rk3066-spi"; 1188 reg = <0xff5b0000 0x1000>; 1189 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>; 1190 #address-cells = <1>; 1191 #size-cells = <0>; 1192 clocks = <&cru CLK_SPI1>, <&cru PCLK_SPI1>; 1193 clock-names = "spiclk", "apb_pclk"; 1194 dmas = <&dmac 3>, <&dmac 2>; 1195 dma-names = "tx", "rx"; 1196 pinctrl-names = "default", "high_speed"; 1197 pinctrl-0 = <&spi1m0_clk &spi1m0_cs0n &spi1m0_cs1n &spi1m0_miso &spi1m0_mosi>; 1198 pinctrl-1 = <&spi1m0_clk_hs &spi1m0_cs0n &spi1m0_cs1n &spi1m0_miso_hs &spi1m0_mosi_hs>; 1199 status = "disabled"; 1200 }; 1201 1202 otp: otp@ff5c0000 { 1203 compatible = "rockchip,rv1126-otp"; 1204 reg = <0xff5c0000 0x1000>; 1205 #address-cells = <1>; 1206 #size-cells = <1>; 1207 clocks = <&cru CLK_OTP>, <&cru PCLK_OTP>; 1208 clock-names = "otp", "apb_pclk"; 1209 status = "disabled"; 1210 1211 /* Data cells */ 1212 otp_id: id@7 { 1213 reg = <0x07 0x10>; 1214 }; 1215 cpu_leakage: cpu-leakage@17 { 1216 reg = <0x17 0x1>; 1217 }; 1218 logic_leakage: logic-leakage@18 { 1219 reg = <0x18 0x1>; 1220 }; 1221 npu_leakage: npu-leakage@19 { 1222 reg = <0x19 0x1>; 1223 }; 1224 }; 1225 1226 saradc: saradc@ff5e0000 { 1227 compatible = "rockchip,rk3399-saradc"; 1228 reg = <0xff5e0000 0x100>; 1229 interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>; 1230 #io-channel-cells = <1>; 1231 clocks = <&cru CLK_SARADC>, <&cru PCLK_SARADC>; 1232 clock-names = "saradc", "apb_pclk"; 1233 resets = <&cru SRST_SARADC_P>; 1234 reset-names = "saradc-apb"; 1235 status = "disabled"; 1236 }; 1237 1238 cpu_tsadc: tsadc@ff5f0000 { 1239 compatible = "rockchip,rv1126-tsadc"; 1240 reg = <0xff5f0000 0x100>; 1241 rockchip,grf = <&grf>; 1242 interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>; 1243 assigned-clocks = <&cru CLK_CPU_TSADC>; 1244 assigned-clock-rates = <4000000>; 1245 clocks = <&cru CLK_CPU_TSADC>, <&cru PCLK_CPU_TSADC>, 1246 <&cru CLK_CPU_TSADCPHY>; 1247 clock-names = "tsadc", "apb_pclk", "phy_clk"; 1248 resets = <&cru SRST_CPU_TSADC_P>, <&cru SRST_CPU_TSADC>, 1249 <&cru SRST_CPU_TSADCPHY>; 1250 reset-names = "tsadc-apb", "tsadc", "tsadc-phy"; 1251 rockchip,hw-tshut-temp = <120000>; 1252 #thermal-sensor-cells = <1>; 1253 status = "disabled"; 1254 }; 1255 1256 npu_tsadc: tsadc@ff5f8000 { 1257 compatible = "rockchip,rv1126-tsadc"; 1258 reg = <0xff5f8000 0x100>; 1259 rockchip,grf = <&grf>; 1260 interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>; 1261 assigned-clocks = <&cru CLK_NPU_TSADC>; 1262 assigned-clock-rates = <4000000>; 1263 clocks = <&cru CLK_NPU_TSADC>, <&cru PCLK_NPU_TSADC>, 1264 <&cru CLK_NPU_TSADCPHY>; 1265 clock-names = "tsadc", "apb_pclk", "phy_clk"; 1266 resets = <&cru SRST_NPU_TSADC_P>, <&cru SRST_NPU_TSADC>, 1267 <&cru SRST_NPU_TSADCPHY>; 1268 reset-names = "tsadc-apb", "tsadc", "tsadc-phy"; 1269 rockchip,hw-tshut-temp = <120000>; 1270 #thermal-sensor-cells = <1>; 1271 status = "disabled"; 1272 }; 1273 1274 can: can@ff610000 { 1275 compatible = "rockchip,can-1.0"; 1276 reg = <0xff610000 0x100>; 1277 interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>; 1278 assigned-clocks = <&cru CLK_CAN>; 1279 assigned-clock-rates = <200000000>; 1280 clocks = <&cru CLK_CAN>, <&cru PCLK_CAN>; 1281 clock-names = "baudclk", "apb_pclk"; 1282 resets = <&cru SRST_CAN>, <&cru SRST_CAN_P>; 1283 reset-names = "can", "can-apb"; 1284 status = "disabled"; 1285 }; 1286 1287 rktimer: rktimer@ff660000 { 1288 compatible = "rockchip,rk3288-timer"; 1289 reg = <0xff660000 0x20>; 1290 interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>; 1291 clocks = <&cru PCLK_TIMER>, <&cru CLK_TIMER0>; 1292 clock-names = "pclk", "timer"; 1293 }; 1294 1295 wdt: watchdog@ff680000 { 1296 compatible = "rockchip,rv1126-wdt", "snps,dw-wdt"; 1297 reg = <0xff680000 0x100>; 1298 clocks = <&cru PCLK_WDT>; 1299 interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>; 1300 status = "disabled"; 1301 }; 1302 1303 mailbox: mailbox@ff6a0000 { 1304 compatible = "rockchip,rv1126-mailbox", 1305 "rockchip,rk3368-mailbox"; 1306 reg = <0xff6a0000 0x1000>; 1307 interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>; 1308 clocks = <&cru PCLK_MAILBOX>; 1309 clock-names = "pclk_mailbox"; 1310 #mbox-cells = <1>; 1311 status = "disabled"; 1312 }; 1313 1314 hw_decompress: decompress@ff6c0000 { 1315 compatible = "rockchip,hw-decompress"; 1316 reg = <0xff6c0000 0x1000>; 1317 interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>; 1318 clocks = <&cru ACLK_DECOM>, <&cru DCLK_DECOM>, <&cru PCLK_DECOM>; 1319 clock-names = "aclk", "dclk", "pclk"; 1320 resets = <&cru SRST_DECOM_D>; 1321 reset-names = "dresetn"; 1322 data-cached = <0>; 1323 status = "disabled"; 1324 }; 1325 1326 i2s0_8ch: i2s@ff800000 { 1327 compatible = "rockchip,rv1126-i2s-tdm"; 1328 reg = <0xff800000 0x1000>; 1329 interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>; 1330 clocks = <&cru MCLK_I2S0_TX>, <&cru MCLK_I2S0_RX>, <&cru HCLK_I2S0>; 1331 clock-names = "mclk_tx", "mclk_rx", "hclk"; 1332 dmas = <&dmac 20>, <&dmac 19>; 1333 dma-names = "tx", "rx"; 1334 resets = <&cru SRST_I2S0_TX_M>, <&cru SRST_I2S0_RX_M>; 1335 reset-names = "tx-m", "rx-m"; 1336 rockchip,cru = <&cru>; 1337 rockchip,grf = <&grf>; 1338 pinctrl-names = "default"; 1339 pinctrl-0 = <&i2s0m0_sclk_tx 1340 &i2s0m0_sclk_rx 1341 &i2s0m0_lrck_tx 1342 &i2s0m0_lrck_rx 1343 &i2s0m0_sdi0 1344 &i2s0m0_sdo0 1345 &i2s0m0_sdo1_sdi3 1346 &i2s0m0_sdo2_sdi2 1347 &i2s0m0_sdo3_sdi1>; 1348 status = "disabled"; 1349 }; 1350 1351 i2s1_2ch: i2s@ff810000 { 1352 compatible = "rockchip,rv1126-i2s", "rockchip,rk3066-i2s"; 1353 reg = <0xff810000 0x1000>; 1354 interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>; 1355 clocks = <&cru MCLK_I2S1>, <&cru HCLK_I2S1>; 1356 clock-names = "i2s_clk", "i2s_hclk"; 1357 dmas = <&dmac 22>, <&dmac 21>; 1358 dma-names = "tx", "rx"; 1359 pinctrl-names = "default"; 1360 pinctrl-0 = <&i2s1m0_sclk 1361 &i2s1m0_lrck 1362 &i2s1m0_sdi 1363 &i2s1m0_sdo>; 1364 status = "disabled"; 1365 }; 1366 1367 i2s2_2ch: i2s@ff820000 { 1368 compatible = "rockchip,rv1126-i2s", "rockchip,rk3066-i2s"; 1369 reg = <0xff820000 0x1000>; 1370 interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>; 1371 clocks = <&cru MCLK_I2S2>, <&cru HCLK_I2S2>; 1372 clock-names = "i2s_clk", "i2s_hclk"; 1373 dmas = <&dmac 24>, <&dmac 23>; 1374 dma-names = "tx", "rx"; 1375 pinctrl-names = "default"; 1376 pinctrl-0 = <&i2s2m0_sclk 1377 &i2s2m0_lrck 1378 &i2s2m0_sdi 1379 &i2s2m0_sdo>; 1380 status = "disabled"; 1381 }; 1382 1383 pdm: pdm@ff830000 { 1384 compatible = "rockchip,rv1126-pdm", "rockchip,pdm"; 1385 reg = <0xff830000 0x1000>; 1386 clocks = <&cru MCLK_PDM>, <&cru HCLK_PDM>; 1387 clock-names = "pdm_clk", "pdm_hclk"; 1388 dmas = <&dmac 25>; 1389 dma-names = "rx"; 1390 pinctrl-names = "default"; 1391 pinctrl-0 = <&pdmm0_clk 1392 &pdmm0_clk1 1393 &pdmm0_sdi0 1394 &pdmm0_sdi1 1395 &pdmm0_sdi2 1396 &pdmm0_sdi3>; 1397 status = "disabled"; 1398 }; 1399 1400 audpwm: audpwm@ff840000 { 1401 compatible = "rockchip,rv1126-audio-pwm", "rockchip,audio-pwm-v1"; 1402 reg = <0xff840000 0x1000>; 1403 clocks = <&cru SCLK_AUDPWM>, <&cru HCLK_AUDPWM>; 1404 clock-names = "clk", "hclk"; 1405 dmas = <&dmac 26>; 1406 dma-names = "tx"; 1407 pinctrl-names = "default"; 1408 pinctrl-0 = <&audpwmm0_pins>; 1409 rockchip,sample-width-bits = <11>; 1410 rockchip,interpolat-points = <1>; 1411 status = "disabled"; 1412 }; 1413 1414 dfi: dfi@ff9c0000 { 1415 reg = <0xff9c0000 0x400>; 1416 compatible = "rockchip,rv1126-dfi"; 1417 rockchip,pmugrf = <&pmugrf>; 1418 status = "disabled"; 1419 }; 1420 1421 dmc: dmc { 1422 compatible = "rockchip,rv1126-dmc"; 1423 devfreq-events = <&dfi>; 1424 clocks = <&cru SCLK_DDRCLK>; 1425 clock-names = "dmc_clk"; 1426 operating-points-v2 = <&dmc_opp_table>; 1427 ddr_timing = <&ddr_timing>; 1428 upthreshold = <40>; 1429 downdifferential = <20>; 1430 system-status-freq = < 1431 /*system status freq(KHz)*/ 1432 SYS_STATUS_NORMAL 924000 1433 SYS_STATUS_REBOOT 450000 1434 SYS_STATUS_SUSPEND 328000 1435 SYS_STATUS_VIDEO_1080P 924000 1436 SYS_STATUS_BOOST 924000 1437 SYS_STATUS_ISP 924000 1438 SYS_STATUS_PERFORMANCE 924000 1439 >; 1440 auto-min-freq = <328000>; 1441 auto-freq-en = <0>; 1442 #cooling-cells = <2>; 1443 status = "disabled"; 1444 }; 1445 1446 dmc_opp_table: dmc-opp-table { 1447 compatible = "operating-points-v2"; 1448 1449 opp-328000000 { 1450 opp-hz = /bits/ 64 <328000000>; 1451 opp-microvolt = <800000>; 1452 }; 1453 opp-450000000 { 1454 opp-hz = /bits/ 64 <450000000>; 1455 opp-microvolt = <800000>; 1456 }; 1457 opp-664000000 { 1458 opp-hz = /bits/ 64 <664000000>; 1459 opp-microvolt = <800000>; 1460 }; 1461 opp-924000000 { 1462 opp-hz = /bits/ 64 <924000000>; 1463 opp-microvolt = <800000>; 1464 }; 1465 opp-1056000000 { 1466 opp-hz = /bits/ 64 <1056000000>; 1467 opp-microvolt = <800000>; 1468 status = "disabled"; 1469 }; 1470 }; 1471 1472 rkcif: rkcif@ffae0000 { 1473 compatible = "rockchip,rv1126-cif"; 1474 reg = <0xffae0000 0x10000>; 1475 reg-names = "cif_regs"; 1476 interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>; 1477 interrupt-names = "cif-intr"; 1478 clocks = <&cru ACLK_CIF>, <&cru ACLK_CIFLITE>, 1479 <&cru HCLK_CIF>, <&cru HCLK_CIFLITE>, 1480 <&cru DCLK_CIF>, <&cru DCLK_CIFLITE>; 1481 clock-names = "aclk_cif", "aclk_cif_lite", 1482 "hclk_cif", "hclk_cif_lite", 1483 "dclk_cif", "dclk_cif_lite"; 1484 resets = <&cru SRST_CIF_A>, <&cru SRST_CIF_H>, 1485 <&cru SRST_CIF_D>, <&cru SRST_CIF_P>, 1486 <&cru SRST_CIF_I>, <&cru SRST_CIF_RX_P>, 1487 <&cru SRST_CIFLITE_A>, <&cru SRST_CIFLITE_H>, 1488 <&cru SRST_CIFLITE_D>, <&cru SRST_CIFLITE_RX_P>; 1489 reset-names = "rst_cif_a", "rst_cif_h", 1490 "rst_cif_d", "rst_cif_p", 1491 "rst_cif_i", "rst_cif_rx_p", 1492 "rst_cif_lite_a", "rst_cif_lite_h", 1493 "rst_cif_lite_d", "rst_cif_lite_rx_p"; 1494 assigned-clocks = <&cru DCLK_CIF>, <&cru DCLK_CIFLITE>; 1495 assigned-clock-rates = <300000000>, <300000000>; 1496 power-domains = <&power RV1126_PD_VI>; 1497 iommus = <&rkcif_mmu>; 1498 status = "disabled"; 1499 }; 1500 1501 rkcif_mmu: iommu@ffae0800 { 1502 compatible = "rockchip,iommu"; 1503 reg = <0xffae0800 0x100>; 1504 interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>; 1505 interrupt-names = "cif_mmu"; 1506 clocks = <&cru ACLK_CIF>, <&cru HCLK_CIF>; 1507 clock-names = "aclk", "hclk"; 1508 power-domains = <&power RV1126_PD_VI>; 1509 #iommu-cells = <0>; 1510 status = "disabled"; 1511 }; 1512 1513 rk_rga: rk_rga@ffaf0000 { 1514 compatible = "rockchip,rga2"; 1515 reg = <0xffaf0000 0x1000>; 1516 interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>; 1517 clocks = <&cru ACLK_RGA>, <&cru HCLK_RGA>, <&cru CLK_RGA_CORE>; 1518 clock-names = "aclk_rga", "hclk_rga", "clk_rga"; 1519 power-domains = <&power RV1126_PD_VO>; 1520 dma-coherent; 1521 status = "disable"; 1522 }; 1523 1524 vop: vop@ffb00000 { 1525 compatible = "rockchip,rv1126-vop"; 1526 reg = <0xffb00000 0x200>, <0xffb00a00 0x400>; 1527 reg-names = "regs", "gamma_lut"; 1528 rockchip,grf = <&grf>; 1529 interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>; 1530 clocks = <&cru ACLK_VOP>, <&cru DCLK_VOP>, <&cru HCLK_VOP>; 1531 clock-names = "aclk_vop", "dclk_vop", "hclk_vop"; 1532 iommus = <&vop_mmu>; 1533 power-domains = <&power RV1126_PD_VO>; 1534 status = "disabled"; 1535 1536 vop_out: port { 1537 #address-cells = <1>; 1538 #size-cells = <0>; 1539 1540 vop_out_rgb: endpoint@0 { 1541 reg = <0>; 1542 remote-endpoint = <&rgb_in_vop>; 1543 }; 1544 1545 vop_out_dsi: endpoint@1 { 1546 reg = <1>; 1547 remote-endpoint = <&dsi_in_vop>; 1548 }; 1549 }; 1550 }; 1551 1552 vop_mmu: iommu@ffb00f00 { 1553 compatible = "rockchip,iommu"; 1554 reg = <0xffb00f00 0x100>; 1555 interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>; 1556 interrupt-names = "vop_mmu"; 1557 clocks = <&cru ACLK_VOP>, <&cru HCLK_VOP>; 1558 clock-names = "aclk", "iface"; 1559 #iommu-cells = <0>; 1560 rockchip,disable-device-link-resume; 1561 power-domains = <&power RV1126_PD_VO>; 1562 status = "disabled"; 1563 }; 1564 1565 mipi_csi2: mipi-csi2@ffb10000 { 1566 compatible = "rockchip,rv1126-mipi-csi2"; 1567 reg = <0xffb10000 0x10000>; 1568 reg-names = "csihost_regs"; 1569 interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>, 1570 <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>; 1571 interrupt-names = "csi-intr1", "csi-intr2"; 1572 clocks = <&cru PCLK_CSIHOST>, <&cru SRST_CSIHOST_P>; 1573 clock-names = "pclk_csi2host", "srst_csihost_p"; 1574 power-domains = <&power RV1126_PD_VI>; 1575 status = "disabled"; 1576 }; 1577 1578 dsi: dsi@ffb30000 { 1579 compatible = "rockchip,rv1126-mipi-dsi"; 1580 reg = <0xffb30000 0x500>; 1581 interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>; 1582 clocks = <&cru PCLK_DSIHOST>, <&mipi_dphy>; 1583 clock-names = "pclk", "hs_clk"; 1584 resets = <&cru SRST_DSIHOST_P>; 1585 reset-names = "apb"; 1586 phys = <&mipi_dphy>; 1587 phy-names = "mipi_dphy"; 1588 rockchip,grf = <&grf>; 1589 #address-cells = <1>; 1590 #size-cells = <0>; 1591 power-domains = <&power RV1126_PD_VO>; 1592 status = "disabled"; 1593 1594 ports { 1595 port { 1596 dsi_in_vop: endpoint { 1597 remote-endpoint = <&vop_out_dsi>; 1598 }; 1599 }; 1600 }; 1601 }; 1602 1603 rkisp: rkisp@ffb50000 { 1604 compatible = "rockchip,rv1126-rkisp"; 1605 reg = <0xffb50000 0x10000>; 1606 interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>, 1607 <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>, 1608 <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>; 1609 interrupt-names = "isp_irq", "mi_irq", "mipi_irq"; 1610 clocks = <&cru ACLK_ISP>, <&cru HCLK_ISP>, 1611 <&cru CLK_ISP>; 1612 clock-names = "aclk_isp", "hclk_isp", "clk_isp"; 1613 assigned-clocks = <&cru ACLK_ISP>, <&cru HCLK_ISP>; 1614 assigned-clock-rates = <500000000>, <250000000>; 1615 power-domains = <&power RV1126_PD_VI>; 1616 /* iommus = <&rkisp_mmu>; */ 1617 memory-region = <&isp_reserved>; 1618 status = "disabled"; 1619 }; 1620 1621 rkisp_mmu: iommu@ffb51a00 { 1622 compatible = "rockchip,iommu"; 1623 reg = <0xffb51a00 0x100>; 1624 interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>; 1625 interrupt-names = "isp_mmu"; 1626 clocks = <&cru ACLK_ISP>, <&cru HCLK_ISP>; 1627 clock-names = "aclk", "iface"; 1628 power-domains = <&power RV1126_PD_VI>; 1629 #iommu-cells = <0>; 1630 rockchip,disable-mmu-reset; 1631 status = "disabled"; 1632 }; 1633 1634 rkispp: rkispp@ffb60000 { 1635 compatible = "rockchip,rv1126-rkispp"; 1636 reg = <0xffb60000 0x20000>; 1637 interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>, 1638 <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>; 1639 interrupt-names = "ispp_irq", "fec_irq"; 1640 clocks = <&cru ACLK_ISPP>, <&cru HCLK_ISPP>, 1641 <&cru CLK_ISPP>; 1642 clock-names = "aclk_ispp", "hclk_ispp", "clk_ispp"; 1643 assigned-clocks = <&cru ACLK_ISPP>, <&cru HCLK_ISPP>, 1644 <&cru CLK_ISPP>; 1645 assigned-clock-rates = <500000000>, <250000000>, 1646 <400000000>; 1647 power-domains = <&power RV1126_PD_ISPP>; 1648 iommus = <&rkispp_mmu>; 1649 status = "disabled"; 1650 }; 1651 1652 rkispp_mmu: iommu@ffb60e00 { 1653 compatible = "rockchip,iommu"; 1654 reg = <0xffb60e00 0x40>, <0xffb60e40 0x40>, <0xffb60f00 0x40>; 1655 interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>, 1656 <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>, 1657 <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>; 1658 interrupt-names = "ispp_mmu0_r", "ispp_mmu0_w", "ispp_mmu1"; 1659 clocks = <&cru ACLK_ISPP>, <&cru HCLK_ISPP>; 1660 clock-names = "aclk", "iface"; 1661 power-domains = <&power RV1126_PD_ISPP>; 1662 #iommu-cells = <0>; 1663 rockchip,disable-mmu-reset; 1664 status = "disabled"; 1665 }; 1666 1667 rkvdec: rkvdec@ffb80000 { 1668 compatible = "rockchip,rkv-decoder-v1"; 1669 reg = <0xffb80000 0x400>; 1670 interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>; 1671 interrupt-names = "irq_dec"; 1672 clocks = <&cru ACLK_VDEC>, <&cru HCLK_VDEC>, 1673 <&cru CLK_VDEC_CA>, <&cru CLK_VDEC_CORE>, 1674 <&cru CLK_VDEC_HEVC_CA>; 1675 clock-names = "aclk_vcodec", "hclk_vcodec","clk_cabac", 1676 "clk_core", "clk_hevc_cabac"; 1677 resets = <&cru SRST_VDEC_A>, <&cru SRST_VDEC_H>, 1678 <&cru SRST_VDEC_CA>, <&cru SRST_VDEC_CORE>, 1679 <&cru SRST_VDEC_HEVC_CA>; 1680 reset-names = "video_a", "video_h", "video_cabac", 1681 "video_core", "video_hevc_cabac"; 1682 power-domains = <&power RV1126_PD_VDPU>; 1683 iommus = <&rkvdec_mmu>; 1684 rockchip,srv = <&mpp_srv>; 1685 rockchip,taskqueue-node = <0>; 1686 rockchip,resetgroup-node = <0>; 1687 status = "disabled"; 1688 }; 1689 1690 rkvdec_mmu: iommu@ffb80480 { 1691 compatible = "rockchip,iommu"; 1692 reg = <0xffb80480 0x40>, <0xffb804c0 0x40>; 1693 interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>; 1694 interrupt-names = "rkvdec_mmu"; 1695 clocks = <&cru ACLK_VDEC>, <&cru HCLK_VDEC>; 1696 clock-names = "aclk", "iface"; 1697 power-domains = <&power RV1126_PD_VDPU>; 1698 #iommu-cells = <0>; 1699 status = "disabled"; 1700 }; 1701 1702 vepu: vepu@ffb90000 { 1703 compatible = "rockchip,vpu-encoder-v2"; 1704 reg = <0xffb90000 0x400>; 1705 interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>; 1706 clocks = <&cru ACLK_JPEG>, <&cru HCLK_JPEG>; 1707 clock-names = "aclk_vcodec", "hclk_vcodec"; 1708 resets = <&cru SRST_JPEG_A>, <&cru SRST_JPEG_H>; 1709 reset-names = "shared_video_a", "shared_video_h"; 1710 iommus = <&vpu_mmu>; 1711 rockchip,srv = <&mpp_srv>; 1712 rockchip,taskqueue-node = <1>; 1713 rockchip,resetgroup-node = <1>; 1714 power-domains = <&power RV1126_PD_VDPU>; 1715 status = "disabled"; 1716 }; 1717 1718 vdpu: vdpu@ffb90400 { 1719 compatible = "rockchip,vpu-decoder-v2"; 1720 reg = <0xffb90400 0x400>; 1721 interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>; 1722 interrupt-names = "irq_dec"; 1723 clocks = <&cru ACLK_JPEG>, <&cru HCLK_JPEG>; 1724 clock-names = "aclk_vcodec", "hclk_vcodec"; 1725 resets = <&cru SRST_JPEG_A>, <&cru SRST_JPEG_H>; 1726 reset-names = "shared_video_a", "shared_video_h"; 1727 iommus = <&vpu_mmu>; 1728 power-domains = <&power RV1126_PD_VDPU>; 1729 rockchip,srv = <&mpp_srv>; 1730 rockchip,taskqueue-node = <1>; 1731 rockchip,resetgroup-node = <1>; 1732 status = "disabled"; 1733 }; 1734 1735 vpu_mmu: iommu@ffb90800 { 1736 compatible = "rockchip,iommu"; 1737 reg = <0xffb90800 0x40>; 1738 interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>; 1739 interrupt-names = "vpu_mmu"; 1740 clock-names = "aclk", "iface"; 1741 clocks = <&cru ACLK_JPEG>, <&cru HCLK_JPEG>; 1742 power-domains = <&power RV1126_PD_VDPU>; 1743 #iommu-cells = <0>; 1744 status = "disabled"; 1745 }; 1746 1747 rkvenc: rkvenc@ffbb0000 { 1748 compatible = "rockchip,rkv-encoder-v1"; 1749 reg = <0xffbb0000 0x400>; 1750 interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>; 1751 interrupt-names = "irq_enc"; 1752 clocks = <&cru ACLK_VENC>, <&cru HCLK_VENC>, 1753 <&cru CLK_VENC_CORE>; 1754 clock-names = "aclk_vcodec", "hclk_vcodec", "clk_core"; 1755 resets = <&cru SRST_VENC_A>, <&cru SRST_VENC_H>, 1756 <&cru SRST_VENC_CORE>; 1757 reset-names = "video_a", "video_h", "video_core"; 1758 assigned-clocks = <&cru ACLK_VENC>, <&cru CLK_VENC_CORE>; 1759 assigned-clock-rates = <297000000>, <594000000>; 1760 operating-points-v2 = <&rkvenc_opp_table>; 1761 iommus = <&rkvenc_mmu>; 1762 node-name = "rkvenc"; 1763 rockchip,srv = <&mpp_srv>; 1764 rockchip,taskqueue-node = <2>; 1765 rockchip,resetgroup-node = <2>; 1766 power-domains = <&power RV1126_PD_VEPU>; 1767 status = "disabled"; 1768 }; 1769 1770 rkvenc_opp_table: rkvenc-opp-table { 1771 compatible = "operating-points-v2"; 1772 1773 /* The source clock is CLK_VENC_CORE */ 1774 opp-297000000 { 1775 opp-hz = /bits/ 64 <297000000>; 1776 opp-microvolt = <725000 725000 1000000>; 1777 }; 1778 opp-396000000 { 1779 opp-hz = /bits/ 64 <396000000>; 1780 opp-microvolt = <725000 725000 1000000>; 1781 }; 1782 opp-500000000 { 1783 opp-hz = /bits/ 64 <500000000>; 1784 opp-microvolt = <750000 750000 1000000>; 1785 }; 1786 opp-594000000 { 1787 opp-hz = /bits/ 64 <594000000>; 1788 opp-microvolt = <800000 800000 1000000>; 1789 }; 1790 }; 1791 1792 rkvenc_mmu: iommu@ffbb0f00 { 1793 compatible = "rockchip,iommu"; 1794 reg = <0xffbb0f00 0x40>, <0xffbb0f40 0x40>; 1795 interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>, 1796 <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>; 1797 interrupt-names = "rkvenc_mmu0", "rkvenc_mmu1"; 1798 clocks = <&cru ACLK_VENC>, <&cru HCLK_VENC>; 1799 clock-names = "aclk", "iface"; 1800 rockchip,disable-mmu-reset; 1801 #iommu-cells = <0>; 1802 power-domains = <&power RV1126_PD_VEPU>; 1803 status = "disabled"; 1804 }; 1805 1806 pvtm@ffc00000 { 1807 compatible = "rockchip,rv1126-npu-pvtm"; 1808 reg = <0xffc00000 0x100>; 1809 #address-cells = <1>; 1810 #size-cells = <0>; 1811 1812 pvtm@1 { 1813 reg = <1>; 1814 clocks = <&cru CLK_NPUPVTM>, <&cru PCLK_NPUPVTM>; 1815 clock-names = "clk", "pclk"; 1816 resets = <&cru SRST_NPUPVTM>, <&cru SRST_NPUPVTM_P>; 1817 reset-names = "rts", "rst-p"; 1818 }; 1819 }; 1820 1821 gmac: ethernet@ffc40000 { 1822 compatible = "rockchip,rv1126-gmac", "snps,dwmac-4.20a"; 1823 reg = <0xffc40000 0x0ffff>; 1824 interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>, 1825 <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>; 1826 interrupt-names = "macirq", "eth_wake_irq"; 1827 rockchip,grf = <&grf>; 1828 clocks = <&cru CLK_GMAC_SRC>, <&cru CLK_GMAC_TX_RX>, 1829 <&cru CLK_GMAC_TX_RX>, <&cru CLK_GMAC_REF>, 1830 <&cru ACLK_GMAC>, <&cru PCLK_GMAC>, 1831 <&cru CLK_GMAC_TX_RX>, <&cru CLK_GMAC_PTPREF>; 1832 clock-names = "stmmaceth", "mac_clk_rx", 1833 "mac_clk_tx", "clk_mac_refout", 1834 "aclk_mac", "pclk_mac", 1835 "clk_mac_speed", "ptp_ref"; 1836 resets = <&cru SRST_GMAC_A>; 1837 reset-names = "stmmaceth"; 1838 1839 snps,mixed-burst; 1840 snps,tso; 1841 1842 snps,axi-config = <&stmmac_axi_setup>; 1843 snps,mtl-rx-config = <&mtl_rx_setup>; 1844 snps,mtl-tx-config = <&mtl_tx_setup>; 1845 status = "disabled"; 1846 1847 mdio: mdio { 1848 compatible = "snps,dwmac-mdio"; 1849 #address-cells = <0x1>; 1850 #size-cells = <0x0>; 1851 }; 1852 1853 stmmac_axi_setup: stmmac-axi-config { 1854 snps,wr_osr_lmt = <4>; 1855 snps,rd_osr_lmt = <8>; 1856 snps,blen = <0 0 0 0 16 8 4>; 1857 }; 1858 1859 mtl_rx_setup: rx-queues-config { 1860 snps,rx-queues-to-use = <1>; 1861 queue0 {}; 1862 }; 1863 1864 mtl_tx_setup: tx-queues-config { 1865 snps,tx-queues-to-use = <1>; 1866 queue0 {}; 1867 }; 1868 }; 1869 1870 emmc: dwmmc@ffc50000 { 1871 compatible = "rockchip,rv1126-dw-mshc", "rockchip,rk3288-dw-mshc"; 1872 reg = <0xffc50000 0x4000>; 1873 interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>; 1874 clocks = <&cru HCLK_EMMC>, <&cru CLK_EMMC>, 1875 <&cru SCLK_EMMC_DRV>, <&cru SCLK_EMMC_SAMPLE>; 1876 clock-names = "biu", "ciu", "ciu-drive", "ciu-sample"; 1877 fifo-depth = <0x100>; 1878 max-frequency = <200000000>; 1879 pinctrl-names = "default"; 1880 pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_bus8>; 1881 power-domains = <&power RV1126_PD_NVM>; 1882 rockchip,use-v2-tuning; 1883 status = "disabled"; 1884 }; 1885 1886 sdmmc: dwmmc@ffc60000 { 1887 compatible = "rockchip,rv1126-dw-mshc", "rockchip,rk3288-dw-mshc"; 1888 reg = <0xffc60000 0x4000>; 1889 interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>; 1890 clocks = <&cru HCLK_SDMMC>, <&cru CLK_SDMMC>, 1891 <&cru SCLK_SDMMC_DRV>, <&cru SCLK_SDMMC_SAMPLE>; 1892 clock-names = "biu", "ciu", "ciu-drive", "ciu-sample"; 1893 fifo-depth = <0x100>; 1894 max-frequency = <200000000>; 1895 pinctrl-names = "default"; 1896 pinctrl-0 = <&sdmmc0_clk &sdmmc0_cmd &sdmmc0_det &sdmmc0_bus4>; 1897 status = "disabled"; 1898 }; 1899 1900 sdio: dwmmc@ffc70000 { 1901 compatible = "rockchip,rv1126-dw-mshc", "rockchip,rk3288-dw-mshc"; 1902 reg = <0xffc70000 0x4000>; 1903 interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>; 1904 clocks = <&cru HCLK_SDIO>, <&cru CLK_SDIO>, 1905 <&cru SCLK_SDIO_DRV>, <&cru SCLK_SDIO_SAMPLE>; 1906 clock-names = "biu", "ciu", "ciu-drive", "ciu-sample"; 1907 fifo-depth = <0x100>; 1908 max-frequency = <200000000>; 1909 pinctrl-names = "default"; 1910 pinctrl-0 = <&sdmmc1_clk &sdmmc1_cmd &sdmmc1_bus4>; 1911 power-domains = <&power RV1126_PD_SDIO>; 1912 status = "disabled"; 1913 }; 1914 1915 nandc: nandc@ffc80000 { 1916 compatible = "rockchip,rk-nandc"; 1917 reg = <0xffc80000 0x4000>; 1918 interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>; 1919 nandc_id = <0>; 1920 clocks = <&cru CLK_NANDC>, <&cru HCLK_NANDC>; 1921 clock-names = "clk_nandc", "hclk_nandc"; 1922 pinctrl-names = "default"; 1923 pinctrl-0 = <&flash_pins>; 1924 power-domains = <&power RV1126_PD_NVM>; 1925 status = "disabled"; 1926 }; 1927 1928 sfc: sfc@ffc90000 { 1929 compatible = "rockchip,sfc"; 1930 reg = <0xffc90000 0x4000>; 1931 interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>; 1932 clocks = <&cru SCLK_SFC>, <&cru HCLK_SFC>; 1933 clock-names = "clk_sfc", "hclk_sfc"; 1934 pinctrl-names = "default"; 1935 pinctrl-0 = <&flash_pins>; 1936 assigned-clocks = <&cru SCLK_SFC>; 1937 assigned-clock-rates = <80000000>; 1938 power-domains = <&power RV1126_PD_NVM>; 1939 status = "disabled"; 1940 }; 1941 1942 npu: npu@ffbc0000 { 1943 compatible = "rockchip,npu"; 1944 reg = <0xffbc0000 0x4000>; 1945 clocks = <&cru ACLK_NPU>, <&cru HCLK_NPU>, <&cru PCLK_PDNPU>, <&cru CLK_CORE_NPU>; 1946 clock-names = "aclk_npu", "hclk_npu", "pclk_pdnpu", "sclk_npu"; 1947 assigned-clocks = <&cru CLK_CORE_NPU>; 1948 assigned-clock-rates = <396000000>; 1949 operating-points-v2 = <&npu_opp_table>; 1950 interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>; 1951 power-domains = <&power RV1126_PD_NPU>; 1952 status = "disabled"; 1953 }; 1954 1955 npu_opp_table: npu-opp-table { 1956 compatible = "operating-points-v2"; 1957 1958 opp-200000000 { 1959 opp-hz = /bits/ 64 <200000000>; 1960 opp-microvolt = <725000 725000 1000000>; 1961 }; 1962 opp-300000000 { 1963 opp-hz = /bits/ 64 <300000000>; 1964 opp-microvolt = <725000 725000 1000000>; 1965 }; 1966 opp-396000000 { 1967 opp-hz = /bits/ 64 <396000000>; 1968 opp-microvolt = <725000 725000 1000000>; 1969 }; 1970 opp-500000000 { 1971 opp-hz = /bits/ 64 <500000000>; 1972 opp-microvolt = <725000 725000 1000000>; 1973 }; 1974 opp-600000000 { 1975 opp-hz = /bits/ 64 <600000000>; 1976 opp-microvolt = <725000 725000 1000000>; 1977 }; 1978 opp-700000000 { 1979 opp-hz = /bits/ 64 <700000000>; 1980 opp-microvolt = <775000 775000 1000000>; 1981 }; 1982 opp-800000000 { 1983 opp-hz = /bits/ 64 <800000000>; 1984 opp-microvolt = <825000 825000 1000000>; 1985 }; 1986 }; 1987 1988 usbdrd: usb0 { 1989 compatible = "rockchip,rv1126-dwc3", "rockchip,rk3399-dwc3"; 1990 #address-cells = <1>; 1991 #size-cells = <1>; 1992 ranges; 1993 clocks = <&cru CLK_USBOTG_REF>, <&cru ACLK_USBOTG>, 1994 <&cru HCLK_PDUSB>; 1995 clock-names = "ref_clk", "bus_clk", "hclk"; 1996 status = "disabled"; 1997 1998 usbdrd_dwc3: dwc3@ffd00000 { 1999 compatible = "snps,dwc3"; 2000 reg = <0xffd00000 0x100000>; 2001 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>; 2002 dr_mode = "otg"; 2003 maximum-speed = "high-speed"; 2004 phys = <&u2phy_otg>; 2005 phy-names = "usb2-phy"; 2006 phy_type = "utmi_wide"; 2007 power-domains = <&power RV1126_PD_USB>; 2008 resets = <&cru SRST_USBOTG_A>; 2009 reset-names = "usb3-otg"; 2010 snps,dis_enblslpm_quirk; 2011 snps,dis-u2-freeclk-exists-quirk; 2012 snps,dis_u2_susphy_quirk; 2013 snps,dis-del-phy-power-chg-quirk; 2014 snps,tx-ipgap-linecheck-dis-quirk; 2015 snps,xhci-trb-ent-quirk; 2016 status = "disabled"; 2017 }; 2018 }; 2019 2020 usb_host0_ehci: usb@ffe00000 { 2021 compatible = "generic-ehci"; 2022 reg = <0xffe00000 0x10000>; 2023 interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>; 2024 clocks = <&cru HCLK_USBHOST>, <&cru HCLK_USBHOST_ARB>, 2025 <&u2phy1>; 2026 clock-names = "usbhost", "arbiter", "utmi"; 2027 phys = <&u2phy_host>; 2028 phy-names = "usb"; 2029 power-domains = <&power RV1126_PD_USB>; 2030 status = "disabled"; 2031 }; 2032 2033 usb_host0_ohci: usb@ffe10000 { 2034 compatible = "generic-ohci"; 2035 reg = <0xffe10000 0x10000>; 2036 interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>; 2037 clocks = <&cru HCLK_USBHOST>, <&cru HCLK_USBHOST_ARB>, 2038 <&u2phy1>; 2039 clock-names = "usbhost", "arbiter", "utmi"; 2040 phys = <&u2phy_host>; 2041 phy-names = "usb"; 2042 power-domains = <&power RV1126_PD_USB>; 2043 status = "disabled"; 2044 }; 2045 2046 pinctrl: pinctrl { 2047 compatible = "rockchip,rv1126-pinctrl"; 2048 rockchip,grf = <&grf>; 2049 rockchip,pmu = <&pmugrf>; 2050 #address-cells = <1>; 2051 #size-cells = <1>; 2052 ranges; 2053 2054 gpio0: gpio0@ff460000 { 2055 compatible = "rockchip,gpio-bank"; 2056 reg = <0xff460000 0x100>; 2057 interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>; 2058 clocks = <&pmucru PCLK_GPIO0>, <&pmucru DBCLK_GPIO0>; 2059 2060 gpio-controller; 2061 #gpio-cells = <2>; 2062 2063 interrupt-controller; 2064 #interrupt-cells = <2>; 2065 }; 2066 2067 gpio1: gpio1@ff620000 { 2068 compatible = "rockchip,gpio-bank"; 2069 reg = <0xff620000 0x100>; 2070 interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>; 2071 clocks = <&cru PCLK_GPIO1>, <&cru DBCLK_GPIO1>; 2072 2073 gpio-controller; 2074 #gpio-cells = <2>; 2075 2076 interrupt-controller; 2077 #interrupt-cells = <2>; 2078 }; 2079 2080 gpio2: gpio2@ff630000 { 2081 compatible = "rockchip,gpio-bank"; 2082 reg = <0xff630000 0x100>; 2083 interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>; 2084 clocks = <&cru PCLK_GPIO2>, <&cru DBCLK_GPIO2>; 2085 2086 gpio-controller; 2087 #gpio-cells = <2>; 2088 2089 interrupt-controller; 2090 #interrupt-cells = <2>; 2091 }; 2092 2093 gpio3: gpio3@ff640000 { 2094 compatible = "rockchip,gpio-bank"; 2095 reg = <0xff640000 0x100>; 2096 interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>; 2097 clocks = <&cru PCLK_GPIO3>, <&cru DBCLK_GPIO3>; 2098 2099 gpio-controller; 2100 #gpio-cells = <2>; 2101 2102 interrupt-controller; 2103 #interrupt-cells = <2>; 2104 }; 2105 2106 gpio4: gpio4@ff650000 { 2107 compatible = "rockchip,gpio-bank"; 2108 reg = <0xff650000 0x100>; 2109 interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>; 2110 clocks = <&cru PCLK_GPIO4>, <&cru DBCLK_GPIO4>; 2111 2112 gpio-controller; 2113 #gpio-cells = <2>; 2114 2115 interrupt-controller; 2116 #interrupt-cells = <2>; 2117 }; 2118 }; 2119}; 2120 2121#include "rv1126-pinctrl.dtsi" 2122 2123