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-system-status.h> 13#include "rv1126-dram-default-timing.dtsi" 14 15/ { 16 #address-cells = <1>; 17 #size-cells = <1>; 18 19 compatible = "rockchip,rv1126"; 20 21 interrupt-parent = <&gic>; 22 23 aliases { 24 i2c0 = &i2c0; 25 i2c1 = &i2c1; 26 i2c2 = &i2c2; 27 i2c3 = &i2c3; 28 i2c4 = &i2c4; 29 i2c5 = &i2c5; 30 serial0 = &uart0; 31 serial1 = &uart1; 32 serial2 = &uart2; 33 serial3 = &uart3; 34 serial4 = &uart4; 35 serial5 = &uart5; 36 spi0 = &spi0; 37 spi1 = &spi1; 38 dphy0 = &csi_dphy0; 39 dphy1 = &csi_dphy1; 40 }; 41 42 cpus { 43 #address-cells = <1>; 44 #size-cells = <0>; 45 46 cpu0: cpu@f00 { 47 device_type = "cpu"; 48 compatible = "arm,cortex-a7"; 49 reg = <0xf00>; 50 enable-method = "psci"; 51 clocks = <&cru ARMCLK>; 52 operating-points-v2 = <&cpu0_opp_table>; 53 }; 54 55 cpu1: cpu@f01 { 56 device_type = "cpu"; 57 compatible = "arm,cortex-a7"; 58 reg = <0xf01>; 59 enable-method = "psci"; 60 clocks = <&cru ARMCLK>; 61 operating-points-v2 = <&cpu0_opp_table>; 62 }; 63 64 cpu2: cpu@f02 { 65 device_type = "cpu"; 66 compatible = "arm,cortex-a7"; 67 reg = <0xf02>; 68 enable-method = "psci"; 69 clocks = <&cru ARMCLK>; 70 operating-points-v2 = <&cpu0_opp_table>; 71 }; 72 73 cpu3: cpu@f03 { 74 device_type = "cpu"; 75 compatible = "arm,cortex-a7"; 76 reg = <0xf03>; 77 enable-method = "psci"; 78 clocks = <&cru ARMCLK>; 79 operating-points-v2 = <&cpu0_opp_table>; 80 }; 81 }; 82 83 cpu0_opp_table: cpu0-opp-table { 84 compatible = "operating-points-v2"; 85 opp-shared; 86 87 opp-408000000 { 88 opp-hz = /bits/ 64 <408000000>; 89 opp-microvolt = <800000 800000 945000>; 90 clock-latency-ns = <40000>; 91 opp-suspend; 92 }; 93 opp-600000000 { 94 opp-hz = /bits/ 64 <600000000>; 95 opp-microvolt = <800000 800000 945000>; 96 clock-latency-ns = <40000>; 97 }; 98 opp-816000000 { 99 opp-hz = /bits/ 64 <816000000>; 100 opp-microvolt = <800000 800000 945000>; 101 clock-latency-ns = <40000>; 102 }; 103 opp-1008000000 { 104 opp-hz = /bits/ 64 <1008000000>; 105 opp-microvolt = <800000 800000 945000>; 106 clock-latency-ns = <40000>; 107 }; 108 }; 109 110 arm-pmu { 111 compatible = "arm,cortex-a7-pmu"; 112 interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>, 113 <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>, 114 <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>, 115 <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>; 116 interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>; 117 }; 118 119 display_subsystem: display-subsystem { 120 compatible = "rockchip,display-subsystem"; 121 ports = <&vop_out>; 122 status = "disabled"; 123 124 route { 125 route_dsi: route-dsi { 126 status = "disabled"; 127 logo,uboot = "logo.bmp"; 128 logo,kernel = "logo_kernel.bmp"; 129 logo,mode = "center"; 130 charge_logo,mode = "center"; 131 connect = <&vop_out_dsi>; 132 }; 133 134 route_rgb: route-rgb { 135 status = "disabled"; 136 logo,uboot = "logo.bmp"; 137 logo,kernel = "logo_kernel.bmp"; 138 logo,mode = "center"; 139 charge_logo,mode = "center"; 140 connect = <&vop_out_rgb>; 141 }; 142 }; 143 }; 144 145 fiq_debugger: fiq-debugger { 146 compatible = "rockchip,fiq-debugger"; 147 rockchip,serial-id = <2>; 148 rockchip,wake-irq = <0>; 149 rockchip,irq-mode-enable = <0>; 150 rockchip,baudrate = <1500000>; /* Only 115200 and 1500000 */ 151 interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>; 152 status = "disabled"; 153 }; 154 155 mpp_srv: mpp-srv { 156 compatible = "rockchip,mpp-service"; 157 rockchip,taskqueue-count = <3>; 158 rockchip,resetgroup-count = <3>; 159 status = "disabled"; 160 }; 161 162 psci { 163 compatible = "arm,psci-1.0"; 164 method = "smc"; 165 }; 166 167 rgb: rgb { 168 compatible = "rockchip,rv1126-rgb"; 169 status = "disabled"; 170 171 ports { 172 #address-cells = <1>; 173 #size-cells = <0>; 174 175 port@0 { 176 reg = <0>; 177 #address-cells = <1>; 178 #size-cells = <0>; 179 180 rgb_in_vop: endpoint@0 { 181 reg = <0>; 182 remote-endpoint = <&vop_out_rgb>; 183 }; 184 }; 185 186 }; 187 }; 188 189 timer { 190 compatible = "arm,armv7-timer"; 191 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>, 192 <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>, 193 <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>, 194 <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>; 195 clock-frequency = <24000000>; 196 }; 197 198 xin24m: oscillator { 199 compatible = "fixed-clock"; 200 clock-frequency = <24000000>; 201 clock-output-names = "xin24m"; 202 #clock-cells = <0>; 203 }; 204 205 grf: syscon@fe000000 { 206 compatible = "rockchip,rv1126-grf", "syscon"; 207 reg = <0xfe000000 0x20000>; 208 }; 209 210 pmugrf: syscon@fe020000 { 211 compatible = "rockchip,rv1126-pmugrf", "syscon"; 212 reg = <0xfe020000 0x1000>; 213 214 pmu_io_domains: io-domains { 215 compatible = "rockchip,rv1126-pmu-io-voltage-domain"; 216 }; 217 }; 218 219 qos_usb_host: qos@fe810008 { 220 compatible = "syscon"; 221 reg = <0xfe810008 0x20>; 222 }; 223 224 qos_usb_otg: qos@fe810088 { 225 compatible = "syscon"; 226 reg = <0xfe810088 0x20>; 227 }; 228 229 qos_npu: qos@fe850008 { 230 compatible = "syscon"; 231 reg = <0xfe850008 0x20>; 232 }; 233 234 qos_emmc: qos@fe860008 { 235 compatible = "syscon"; 236 reg = <0xfe860008 0x20>; 237 }; 238 239 qos_nandc: qos@fe860088 { 240 compatible = "syscon"; 241 reg = <0xe860088 0x20>; 242 }; 243 244 qos_sfc: qos@fe860208 { 245 compatible = "syscon"; 246 reg = <0xfe860208 0x20>; 247 }; 248 249 qos_sdmmc: qos@fe868008 { 250 compatible = "syscon"; 251 reg = <0xfe868008 0x20>; 252 }; 253 254 qos_sdio: qos@fe86c008 { 255 compatible = "syscon"; 256 reg = <0xfe86c008 0x20>; 257 }; 258 259 qos_vepu_rd0: qos@fe870008 { 260 compatible = "syscon"; 261 reg = <0xfe870008 0x20>; 262 }; 263 264 qos_vepu_rd1: qos@fe870088 { 265 compatible = "syscon"; 266 reg = <0xfe870088 0x20>; 267 }; 268 269 qos_vepu_wr: qos@fe870108 { 270 compatible = "syscon"; 271 reg = <0xfe870108 0x20>; 272 }; 273 274 qos_ispp_m0: qos@fe880018 { 275 compatible = "syscon"; 276 reg = <0xfe880018 0x20>; 277 }; 278 279 qos_ispp_m1: qos@fe880098 { 280 compatible = "syscon"; 281 reg = <0xfe880098 0x20>; 282 }; 283 284 qos_isp: qos@fe890008 { 285 compatible = "syscon"; 286 reg = <0xfe890008 0x20>; 287 }; 288 289 qos_cif_lite: qos@fe890088 { 290 compatible = "syscon"; 291 reg = <0xfe890088 0x20>; 292 }; 293 294 qos_cif: qos@fe890108 { 295 compatible = "syscon"; 296 reg = <0xfe890108 0x20>; 297 }; 298 299 qos_iep: qos@fe8a0008 { 300 compatible = "syscon"; 301 reg = <0xfe8a0008 0x20>; 302 }; 303 304 qos_rga_rd: qos@fe8a0088 { 305 compatible = "syscon"; 306 reg = <0xfe8a0088 0x20>; 307 }; 308 309 qos_rga_wr: qos@fe8a0108 { 310 compatible = "syscon"; 311 reg = <0xfe8a0108 0x20>; 312 }; 313 314 qos_vop: qos@fe8a0188 { 315 compatible = "syscon"; 316 reg = <0xfe8a0188 0x20>; 317 }; 318 319 qos_vdpu: qos@fe8b0008 { 320 compatible = "syscon"; 321 reg = <0xfe8b0008 0x20>; 322 }; 323 324 gic: interrupt-controller@feff0000 { 325 compatible = "arm,gic-400"; 326 interrupt-controller; 327 #interrupt-cells = <3>; 328 #address-cells = <0>; 329 330 reg = <0xfeff1000 0x1000>, 331 <0xfeff2000 0x2000>, 332 <0xfeff4000 0x2000>, 333 <0xfeff6000 0x2000>; 334 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>; 335 }; 336 337 pvtm@ff040000 { 338 compatible = "rockchip,rv1126-cpu-pvtm"; 339 reg = <0xff040000 0x100>; 340 clocks = <&cru CLK_CPUPVTM>, <&cru PCLK_CPUPVTM>; 341 clock-names = "clk", "pclk"; 342 resets = <&cru SRST_CPUPVTM>, <&cru SRST_CPUPVTM_P>; 343 reset-names = "clk", "pclk"; 344 }; 345 346 pmu: power-management@ff3e0000 { 347 compatible = "rockchip,rv1126-pmu", "syscon"; 348 reg = <0xff3e0000 0x1000>; 349 350 power: power-controller { 351 compatible = "rockchip,rv1126-power-controller"; 352 #power-domain-cells = <1>; 353 #address-cells = <1>; 354 #size-cells = <0>; 355 status = "disabled"; 356 357 /* These power domains are grouped by VD_NPU */ 358 pd_npu@RV1126_PD_NPU { 359 reg = <RV1126_PD_NPU>; 360 clocks = <&cru ACLK_NPU>, 361 <&cru HCLK_NPU>, 362 <&cru PCLK_PDNPU>, 363 <&cru CLK_CORE_NPU>; 364 pm_qos = <&qos_npu>; 365 }; 366 /* These power domains are grouped by VD_VEPU */ 367 pd_vepu@RV1126_PD_VEPU { 368 reg = <RV1126_PD_VEPU>; 369 clocks = <&cru ACLK_VENC>, 370 <&cru HCLK_VENC>, 371 <&cru CLK_VENC_CORE>; 372 pm_qos = <&qos_vepu_rd0>, 373 <&qos_vepu_rd1>, 374 <&qos_vepu_wr>; 375 }; 376 /* These power domains are grouped by VD_LOGIC */ 377 pd_vi@RV1126_PD_VI { 378 reg = <RV1126_PD_VI>; 379 clocks = <&cru ACLK_ISP>, 380 <&cru HCLK_ISP>, 381 <&cru CLK_ISP>, 382 <&cru ACLK_CIF>, 383 <&cru HCLK_CIF>, 384 <&cru DCLK_CIF>, 385 <&cru CLK_CIF_OUT>, 386 <&cru CLK_MIPICSI_OUT>, 387 <&cru PCLK_CSIHOST>, 388 <&cru ACLK_CIFLITE>, 389 <&cru HCLK_CIFLITE>, 390 <&cru DCLK_CIFLITE>; 391 pm_qos = <&qos_isp>, 392 <&qos_cif_lite>, 393 <&qos_cif>; 394 }; 395 pd_vo@RV1126_PD_VO { 396 reg = <RV1126_PD_VO>; 397 clocks = <&cru ACLK_RGA>, 398 <&cru HCLK_RGA>, 399 <&cru CLK_RGA_CORE>, 400 <&cru ACLK_VOP>, 401 <&cru HCLK_VOP>, 402 <&cru DCLK_VOP>, 403 <&cru PCLK_DSIHOST>, 404 <&cru ACLK_IEP>, 405 <&cru HCLK_IEP>, 406 <&cru CLK_IEP_CORE>; 407 pm_qos = <&qos_rga_rd>, <&qos_rga_wr>, 408 <&qos_vop>, <&qos_iep>; 409 }; 410 pd_ispp@RV1126_PD_ISPP { 411 reg = <RV1126_PD_ISPP>; 412 clocks = <&cru ACLK_ISPP>, 413 <&cru HCLK_ISPP>, 414 <&cru CLK_ISPP>; 415 pm_qos = <&qos_ispp_m0>, 416 <&qos_ispp_m1>; 417 }; 418 pd_vdpu@RV1126_PD_VDPU { 419 reg = <RV1126_PD_VDPU>; 420 clocks = <&cru ACLK_VDEC>, 421 <&cru HCLK_VDEC>, 422 <&cru CLK_VDEC_CORE>, 423 <&cru CLK_VDEC_CA>, 424 <&cru CLK_VDEC_HEVC_CA>, 425 <&cru ACLK_JPEG>, 426 <&cru HCLK_JPEG>; 427 pm_qos = <&qos_vdpu>; 428 }; 429 pd_nvm@RV1126_PD_NVM { 430 reg = <RV1126_PD_NVM>; 431 clocks = <&cru HCLK_EMMC>, 432 <&cru CLK_EMMC>, 433 <&cru HCLK_NANDC>, 434 <&cru CLK_NANDC>, 435 <&cru HCLK_SFC>, 436 <&cru HCLK_SFCXIP>, 437 <&cru SCLK_SFC>; 438 pm_qos = <&qos_emmc>, 439 <&qos_nandc>, 440 <&qos_sfc>, 441 <&qos_sdmmc>; 442 }; 443 pd_sdio@RV1126_PD_SDIO { 444 reg = <RV1126_PD_SDIO>; 445 clocks = <&cru HCLK_SDIO>, 446 <&cru CLK_SDIO>; 447 pm_qos = <&qos_sdio>; 448 }; 449 pd_usb@RV1126_PD_USB { 450 reg = <RV1126_PD_USB>; 451 clocks = <&cru HCLK_USBHOST>, 452 <&cru HCLK_USBHOST_ARB>, 453 <&cru CLK_USBHOST_UTMI_OHCI>, 454 <&cru ACLK_USBOTG>, 455 <&cru CLK_USBOTG_REF>; 456 pm_qos = <&qos_usb_host>, 457 <&qos_usb_otg>; 458 }; 459 }; 460 }; 461 462 i2c0: i2c@ff3f0000 { 463 compatible = "rockchip,rv1126-i2c", "rockchip,rk3399-i2c"; 464 reg = <0xff3f0000 0x1000>; 465 interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>; 466 #address-cells = <1>; 467 #size-cells = <0>; 468 clocks = <&cru CLK_I2C0>, <&cru PCLK_I2C0>; 469 clock-names = "i2c", "pclk"; 470 pinctrl-names = "default"; 471 pinctrl-0 = <&i2c0_xfer>; 472 status = "disabled"; 473 }; 474 475 i2c2: i2c@ff400000 { 476 compatible = "rockchip,rv1126-i2c", "rockchip,rk3399-i2c"; 477 reg = <0xff400000 0x1000>; 478 interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>; 479 #address-cells = <1>; 480 #size-cells = <0>; 481 clocks = <&cru CLK_I2C2>, <&cru PCLK_I2C2>; 482 clock-names = "i2c", "pclk"; 483 pinctrl-names = "default"; 484 pinctrl-0 = <&i2c2_xfer>; 485 status = "disabled"; 486 }; 487 488 amba { 489 compatible = "simple-bus"; 490 #address-cells = <1>; 491 #size-cells = <1>; 492 ranges; 493 494 dmac: dma-controller@ff4e0000 { 495 compatible = "arm,pl330", "arm,primecell"; 496 reg = <0xff4e0000 0x4000>; 497 interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>, 498 <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>; 499 #dma-cells = <1>; 500 clocks = <&cru ACLK_DMAC>; 501 clock-names = "apb_pclk"; 502 }; 503 }; 504 505 uart1: serial@ff410000 { 506 compatible = "rockchip,rv1126-uart", "snps,dw-apb-uart"; 507 reg = <0xff410000 0x100>; 508 interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>; 509 reg-shift = <2>; 510 reg-io-width = <4>; 511 dmas = <&dmac 7>, <&dmac 6>; 512 clock-frequency = <24000000>; 513 clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>; 514 clock-names = "baudclk", "apb_pclk"; 515 pinctrl-names = "default"; 516 pinctrl-0 = <&uart1m0_xfer &uart1m0_ctsn &uart1m0_rtsn>; 517 status = "disabled"; 518 }; 519 520 pwm0: pwm@ff430000 { 521 compatible = "rockchip,rv1126-pwm", "rockchip,rk3328-pwm"; 522 reg = <0xff430000 0x10>; 523 #pwm-cells = <3>; 524 pinctrl-names = "active"; 525 pinctrl-0 = <&pwm0m0_pins>; 526 clocks = <&cru CLK_PWM0>, <&cru PCLK_PWM0>; 527 clock-names = "pwm", "pclk"; 528 status = "disabled"; 529 }; 530 531 pwm1: pwm@ff430010 { 532 compatible = "rockchip,rv1126-pwm", "rockchip,rk3328-pwm"; 533 reg = <0xff430010 0x10>; 534 #pwm-cells = <3>; 535 pinctrl-names = "active"; 536 pinctrl-0 = <&pwm1m0_pins>; 537 clocks = <&cru CLK_PWM0>, <&cru PCLK_PWM0>; 538 clock-names = "pwm", "pclk"; 539 status = "disabled"; 540 }; 541 542 pwm2: pwm@ff430020 { 543 compatible = "rockchip,rv1126-pwm", "rockchip,rk3328-pwm"; 544 reg = <0xff430020 0x10>; 545 #pwm-cells = <3>; 546 pinctrl-names = "active"; 547 pinctrl-0 = <&pwm2m0_pins>; 548 clocks = <&cru CLK_PWM0>, <&cru PCLK_PWM0>; 549 clock-names = "pwm", "pclk"; 550 status = "disabled"; 551 }; 552 553 pwm3: pwm@ff430030 { 554 compatible = "rockchip,rv1126-pwm", "rockchip,rk3328-pwm"; 555 reg = <0xff430030 0x10>; 556 #pwm-cells = <3>; 557 pinctrl-names = "active"; 558 pinctrl-0 = <&pwm3m0_pins>; 559 clocks = <&cru CLK_PWM0>, <&cru PCLK_PWM0>; 560 clock-names = "pwm", "pclk"; 561 status = "disabled"; 562 }; 563 564 pwm4: pwm@ff440000 { 565 compatible = "rockchip,rv1126-pwm", "rockchip,rk3328-pwm"; 566 reg = <0xff440000 0x10>; 567 #pwm-cells = <3>; 568 pinctrl-names = "active"; 569 pinctrl-0 = <&pwm4m0_pins>; 570 clocks = <&cru CLK_PWM1>, <&cru PCLK_PWM1>; 571 clock-names = "pwm", "pclk"; 572 status = "disabled"; 573 }; 574 575 pwm5: pwm@ff440010 { 576 compatible = "rockchip,rv1126-pwm", "rockchip,rk3328-pwm"; 577 reg = <0xff440010 0x10>; 578 #pwm-cells = <3>; 579 pinctrl-names = "active"; 580 pinctrl-0 = <&pwm5m0_pins>; 581 clocks = <&cru CLK_PWM1>, <&cru PCLK_PWM1>; 582 clock-names = "pwm", "pclk"; 583 status = "disabled"; 584 }; 585 586 pwm6: pwm@ff440020 { 587 compatible = "rockchip,rv1126-pwm", "rockchip,rk3328-pwm"; 588 reg = <0xff440020 0x10>; 589 #pwm-cells = <3>; 590 pinctrl-names = "active"; 591 pinctrl-0 = <&pwm6m0_pins>; 592 clocks = <&cru CLK_PWM1>, <&cru PCLK_PWM1>; 593 clock-names = "pwm", "pclk"; 594 status = "disabled"; 595 }; 596 597 pwm7: pwm@ff440030 { 598 compatible = "rockchip,rv1126-pwm", "rockchip,rk3328-pwm"; 599 reg = <0xff440030 0x10>; 600 #pwm-cells = <3>; 601 pinctrl-names = "active"; 602 pinctrl-0 = <&pwm7m0_pins>; 603 clocks = <&cru CLK_PWM1>, <&cru PCLK_PWM1>; 604 clock-names = "pwm", "pclk"; 605 status = "disabled"; 606 }; 607 608 spi0: spi@ff450000 { 609 compatible = "rockchip,rv1126-spi", "rockchip,rk3066-spi"; 610 reg = <0xff450000 0x1000>; 611 interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>; 612 #address-cells = <1>; 613 clocks = <&cru CLK_SPI0>, <&cru PCLK_SPI0>; 614 clock-names = "spiclk", "apb_pclk"; 615 dmas = <&dmac 1>, <&dmac 0>; 616 dma-names = "tx", "rx"; 617 pinctrl-names = "default", "high_speed"; 618 pinctrl-0 = <&spi0m0_clk &spi0m0_cs0n &spi0m0_cs1n &spi0m0_miso &spi0m0_mosi>; 619 pinctrl-1 = <&spi0m0_clk_hs &spi0m0_cs0n &spi0m0_cs1n &spi0m0_miso_hs &spi0m0_mosi_hs>; 620 status = "disabled"; 621 }; 622 623 pvtm@ff470000 { 624 compatible = "rockchip,rv1126-pmu-pvtm"; 625 reg = <0xff470000 0x100>; 626 clocks = <&pmucru CLK_PMUPVTM>, <&pmucru PCLK_PMUPVTM>; 627 clock-names = "clk", "pclk"; 628 resets = <&cru SRST_PMUPVTM>, <&cru SRST_PMUPVTM_P>; 629 reset-names = "clk", "pclk"; 630 }; 631 632 pmucru: clock-controller@ff480000 { 633 compatible = "rockchip,rv1126-pmucru"; 634 reg = <0xff480000 0x1000>; 635 rockchip,grf = <&grf>; 636 #clock-cells = <1>; 637 #reset-cells = <1>; 638 }; 639 640 cru: clock-controller@ff490000 { 641 compatible = "rockchip,rv1126-cru"; 642 reg = <0xff490000 0x1000>; 643 rockchip,grf = <&grf>; 644 #clock-cells = <1>; 645 #reset-cells = <1>; 646 647 assigned-clocks = 648 <&pmucru CLK_RTC32K>, <&pmucru PLL_GPLL>, 649 <&pmucru PCLK_PDPMU>, <&cru PLL_CPLL>, 650 <&cru PLL_HPLL>, <&cru ARMCLK>, 651 <&cru ACLK_PDBUS>, <&cru HCLK_PDBUS>, 652 <&cru PCLK_PDBUS>, <&cru ACLK_PDPHP>, 653 <&cru HCLK_PDPHP>, <&cru HCLK_PDAUDIO>, 654 <&cru HCLK_PDCORE_NIU>; 655 assigned-clock-rates = 656 <32768>, <1188000000>, 657 <100000000>, <1000000000>, 658 <1600000000>, <600000000>, 659 <500000000>, <200000000>, 660 <100000000>, <300000000>, 661 <200000000>, <150000000>, 662 <200000000>; 663 assigned-clock-parents = 664 <&pmucru CLK_OSC0_DIV32K>; 665 }; 666 667 csi_dphy0: csi-dphy@ff4b0000 { 668 compatible = "rockchip,rv1126-csi-dphy"; 669 reg = <0xff4b0000 0x8000>; 670 clocks = <&cru PCLK_CSIPHY0>; 671 clock-names = "pclk"; 672 rockchip,grf = <&grf>; 673 status = "disabled"; 674 }; 675 676 csi_dphy1: csi-dphy@ff4b8000 { 677 compatible = "rockchip,rv1126-csi-dphy"; 678 reg = <0xff4b8000 0x8000>; 679 clocks = <&cru PCLK_CSIPHY1>; 680 clock-names = "pclk"; 681 rockchip,grf = <&grf>; 682 status = "disabled"; 683 }; 684 685 u2phy0: usb2-phy@ff4c0000 { 686 compatible = "rockchip,rv1126-usb2phy"; 687 reg = <0xff4c0000 0x8000>; 688 clocks = <&cru CLK_USBPHY_OTG_REF>, <&cru PCLK_USBPHY_OTG>; 689 clock-names = "phyclk", "pclk"; 690 resets = <&cru SRST_USBPHYPOR_OTG>, <&cru SRST_USBPHY_OTG_P>; 691 reset-names = "u2phy", "u2phy-apb"; 692 #clock-cells = <0>; 693 clock-output-names = "usb480m_phy0"; 694 status = "disabled"; 695 696 u2phy_otg: otg-port { 697 #phy-cells = <0>; 698 interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>, 699 <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>, 700 <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>, 701 <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>; 702 interrupt-names = "otg-bvalid", "otg-id", 703 "linestate", "disconnect"; 704 status = "disabled"; 705 }; 706 }; 707 708 u2phy1: usb2-phy@ff4c8000 { 709 compatible = "rockchip,rv1126-usb2phy"; 710 reg = <0xff4c8000 0x8000>; 711 clocks = <&cru CLK_USBPHY_HOST_REF>, <&cru PCLK_USBPHY_HOST>; 712 clock-names = "phyclk", "pclk"; 713 resets = <&cru SRST_USBPHYPOR_HOST>, <&cru SRST_USBPHY_HOST_P>; 714 reset-names = "u2phy", "u2phy-apb"; 715 #clock-cells = <0>; 716 clock-output-names = "usb480m_phy1"; 717 status = "disabled"; 718 719 u2phy_host: host-port { 720 #phy-cells = <0>; 721 interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>, 722 <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>; 723 interrupt-names = "linestate", "disconnect"; 724 status = "disabled"; 725 }; 726 }; 727 728 mipi_dphy: mipi-dphy@ff4d0000 { 729 compatible = "rockchip,rv1126-mipi-dphy", "rockchip,rk1808-mipi-dphy"; 730 reg = <0xff4d0000 0x500>; 731 clocks = <&cru CLK_MIPIDSIPHY_REF>, <&cru PCLK_DSIPHY>; 732 clock-names = "ref", "pclk"; 733 clock-output-names = "mipi_dphy_pll"; 734 #clock-cells = <0>; 735 resets = <&cru SRST_DSIPHY_P>; 736 reset-names = "apb"; 737 #phy-cells = <0>; 738 rockchip,grf = <&grf>; 739 status = "disabled"; 740 }; 741 742 crypto: crypto@ff500000 { 743 compatible = "rockchip,rv1126-crypto"; 744 reg = <0xff500000 0x10000>; 745 clock-names = "sclk_crypto", "sclk_crypto_apk"; 746 clocks = <&cru CLK_CRYPTO_CORE>, <&cru CLK_CRYPTO_PKA>; 747 clock-frequency = <200000000>, <300000000>; 748 status = "disabled"; 749 }; 750 751 i2c1: i2c@ff510000 { 752 compatible = "rockchip,rv1126-i2c", "rockchip,rk3399-i2c"; 753 reg = <0xff510000 0x1000>; 754 interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>; 755 #address-cells = <1>; 756 #size-cells = <0>; 757 clocks = <&cru CLK_I2C1>, <&cru PCLK_I2C1>; 758 clock-names = "i2c", "pclk"; 759 pinctrl-names = "default"; 760 pinctrl-0 = <&i2c1_xfer>; 761 status = "disabled"; 762 }; 763 764 i2c3: i2c@ff520000 { 765 compatible = "rockchip,rv1126-i2c", "rockchip,rk3399-i2c"; 766 reg = <0xff520000 0x1000>; 767 interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; 768 #address-cells = <1>; 769 #size-cells = <0>; 770 clocks = <&cru CLK_I2C3>, <&cru PCLK_I2C3>; 771 clock-names = "i2c", "pclk"; 772 pinctrl-names = "default"; 773 pinctrl-0 = <&i2c3m0_xfer>; 774 status = "disabled"; 775 }; 776 777 i2c4: i2c@ff530000 { 778 compatible = "rockchip,rv1126-i2c", "rockchip,rk3399-i2c"; 779 reg = <0xff530000 0x1000>; 780 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>; 781 #address-cells = <1>; 782 #size-cells = <0>; 783 clocks = <&cru CLK_I2C4>, <&cru PCLK_I2C4>; 784 clock-names = "i2c", "pclk"; 785 pinctrl-names = "default"; 786 pinctrl-0 = <&i2c4m0_xfer>; 787 status = "disabled"; 788 }; 789 790 i2c5: i2c@ff540000 { 791 compatible = "rockchip,rv1126-i2c", "rockchip,rk3399-i2c"; 792 reg = <0xff540000 0x1000>; 793 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>; 794 #address-cells = <1>; 795 #size-cells = <0>; 796 clocks = <&cru CLK_I2C5>, <&cru PCLK_I2C5>; 797 clock-names = "i2c", "pclk"; 798 pinctrl-names = "default"; 799 pinctrl-0 = <&i2c5m0_xfer>; 800 status = "disabled"; 801 }; 802 803 pwm8: pwm@ff550000 { 804 compatible = "rockchip,rv1126-pwm", "rockchip,rk3328-pwm"; 805 reg = <0xff550000 0x10>; 806 #pwm-cells = <3>; 807 pinctrl-names = "active"; 808 pinctrl-0 = <&pwm8m0_pins>; 809 clocks = <&cru CLK_PWM2>, <&cru PCLK_PWM2>; 810 clock-names = "pwm", "pclk"; 811 status = "disabled"; 812 }; 813 814 pwm9: pwm@ff550010 { 815 compatible = "rockchip,rv1126-pwm", "rockchip,rk3328-pwm"; 816 reg = <0xff550010 0x10>; 817 #pwm-cells = <3>; 818 pinctrl-names = "active"; 819 pinctrl-0 = <&pwm9m0_pins>; 820 clocks = <&cru CLK_PWM2>, <&cru PCLK_PWM2>; 821 clock-names = "pwm", "pclk"; 822 status = "disabled"; 823 }; 824 825 pwm10: pwm@ff550020 { 826 compatible = "rockchip,rv1126-pwm", "rockchip,rk3328-pwm"; 827 reg = <0xff550020 0x10>; 828 #pwm-cells = <3>; 829 pinctrl-names = "active"; 830 pinctrl-0 = <&pwm10m0_pins>; 831 clocks = <&cru CLK_PWM2>, <&cru PCLK_PWM2>; 832 clock-names = "pwm", "pclk"; 833 status = "disabled"; 834 }; 835 836 pwm11: pwm@ff550030 { 837 compatible = "rockchip,rv1126-pwm", "rockchip,rk3328-pwm"; 838 reg = <0xff550030 0x10>; 839 #pwm-cells = <3>; 840 pinctrl-names = "active"; 841 pinctrl-0 = <&pwm11m0_pins>; 842 clocks = <&cru CLK_PWM2>, <&cru PCLK_PWM2>; 843 clock-names = "pwm", "pclk"; 844 status = "disabled"; 845 }; 846 847 uart0: serial@ff560000 { 848 compatible = "rockchip,rv1126-uart", "snps,dw-apb-uart"; 849 reg = <0xff560000 0x100>; 850 interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>; 851 reg-shift = <2>; 852 reg-io-width = <4>; 853 dmas = <&dmac 5>, <&dmac 4>; 854 clock-frequency = <24000000>; 855 clocks = <&cru SCLK_UART0>, <&cru PCLK_UART0>; 856 clock-names = "baudclk", "apb_pclk"; 857 pinctrl-names = "default"; 858 pinctrl-0 = <&uart0_xfer &uart0_ctsn &uart0_rtsn>; 859 status = "disabled"; 860 }; 861 862 uart2: serial@ff570000 { 863 compatible = "rockchip,rv1126-uart", "snps,dw-apb-uart"; 864 reg = <0xff570000 0x100>; 865 interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>; 866 reg-shift = <2>; 867 reg-io-width = <4>; 868 dmas = <&dmac 9>, <&dmac 8>; 869 clock-frequency = <24000000>; 870 clocks = <&cru SCLK_UART2>, <&cru PCLK_UART2>; 871 clock-names = "baudclk", "apb_pclk"; 872 pinctrl-names = "default"; 873 pinctrl-0 = <&uart2m1_xfer>; 874 status = "disabled"; 875 }; 876 877 uart3: serial@ff580000 { 878 compatible = "rockchip,rv1126-uart", "snps,dw-apb-uart"; 879 reg = <0xff580000 0x100>; 880 interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>; 881 reg-shift = <2>; 882 reg-io-width = <4>; 883 dmas = <&dmac 11>, <&dmac 10>; 884 clock-frequency = <24000000>; 885 clocks = <&cru SCLK_UART3>, <&cru PCLK_UART3>; 886 clock-names = "baudclk", "apb_pclk"; 887 pinctrl-names = "default"; 888 pinctrl-0 = <&uart3m0_xfer &uart3m0_ctsn &uart3m0_rtsn>; 889 status = "disabled"; 890 }; 891 892 uart4: serial@ff590000 { 893 compatible = "rockchip,rv1126-uart", "snps,dw-apb-uart"; 894 reg = <0xff590000 0x100>; 895 interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>; 896 reg-shift = <2>; 897 reg-io-width = <4>; 898 dmas = <&dmac 13>, <&dmac 12>; 899 clock-frequency = <24000000>; 900 clocks = <&cru SCLK_UART4>, <&cru PCLK_UART4>; 901 clock-names = "baudclk", "apb_pclk"; 902 pinctrl-names = "default"; 903 pinctrl-0 = <&uart4m0_xfer &uart4m0_ctsn &uart4m0_rtsn>; 904 status = "disabled"; 905 }; 906 907 uart5: serial@ff5a0000 { 908 compatible = "rockchip,rv1126-uart", "snps,dw-apb-uart"; 909 reg = <0xff5a0000 0x100>; 910 interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>; 911 reg-shift = <2>; 912 reg-io-width = <4>; 913 dmas = <&dmac 15>, <&dmac 14>; 914 clock-frequency = <24000000>; 915 clocks = <&cru SCLK_UART5>, <&cru PCLK_UART5>; 916 clock-names = "baudclk", "apb_pclk"; 917 pinctrl-names = "default"; 918 pinctrl-0 = <&uart5m0_xfer &uart5m0_ctsn &uart5m0_rtsn>; 919 status = "disabled"; 920 }; 921 922 spi1: spi@ff5b0000 { 923 compatible = "rockchip,rv1126-spi", "rockchip,rk3066-spi"; 924 reg = <0xff5b0000 0x1000>; 925 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>; 926 #address-cells = <1>; 927 clocks = <&cru CLK_SPI1>, <&cru PCLK_SPI1>; 928 clock-names = "spiclk", "apb_pclk"; 929 dmas = <&dmac 3>, <&dmac 2>; 930 dma-names = "tx", "rx"; 931 pinctrl-names = "default", "high_speed"; 932 pinctrl-0 = <&spi1m0_clk &spi1m0_cs0n &spi1m0_cs1n &spi1m0_miso &spi1m0_mosi>; 933 pinctrl-1 = <&spi1m0_clk_hs &spi1m0_cs0n &spi1m0_cs1n &spi1m0_miso_hs &spi1m0_mosi_hs>; 934 status = "disabled"; 935 }; 936 937 otp: otp@ff5c0000 { 938 compatible = "rockchip,rv1126-otp"; 939 reg = <0xff5c0000 0x1000>; 940 #address-cells = <1>; 941 #size-cells = <1>; 942 clocks = <&cru CLK_OTP>, <&cru PCLK_OTP>; 943 clock-names = "otp", "apb_pclk"; 944 status = "disabled"; 945 946 /* Data cells */ 947 otp_id: id@7 { 948 reg = <0x07 0x10>; 949 }; 950 cpu_leakage: cpu-leakage@17 { 951 reg = <0x17 0x1>; 952 }; 953 logic_leakage: logic-leakage@18 { 954 reg = <0x18 0x1>; 955 }; 956 npu_leakage: npu-leakage@19 { 957 reg = <0x19 0x1>; 958 }; 959 }; 960 961 saradc: saradc@ff5e0000 { 962 compatible = "rockchip,saradc"; 963 reg = <0xff5e0000 0x100>; 964 interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>; 965 #io-channel-cells = <1>; 966 clocks = <&cru CLK_SARADC>, <&cru PCLK_SARADC>; 967 clock-names = "saradc", "apb_pclk"; 968 resets = <&cru SRST_SARADC_P>; 969 reset-names = "saradc-apb"; 970 status = "disabled"; 971 }; 972 973 cpu_tsadc: tsadc@ff5f0000 { 974 compatible = "rockchip,rv1126-tsadc"; 975 reg = <0xff5f0000 0x100>; 976 interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>; 977 assigned-clocks = <&cru CLK_CPU_TSADC>; 978 assigned-clock-rates = <600000>; 979 clocks = <&cru CLK_CPU_TSADC>, <&cru PCLK_CPU_TSADC>, 980 <&cru CLK_CPU_TSADCPHY>; 981 clock-names = "tsadc", "apb_pclk", "phy_clk"; 982 resets = <&cru SRST_CPU_TSADC_P>, <&cru SRST_CPU_TSADC>, 983 <&cru SRST_CPU_TSADCPHY>; 984 reset-names = "tsadc-apb", "tsadc", "tsadc-phy"; 985 rockchip,hw-tshut-temp = <120000>; 986 #thermal-sensor-cells = <1>; 987 status = "disabled"; 988 }; 989 990 npu_tsadc: tsadc@ff5f8000 { 991 compatible = "rockchip,rv1126-tsadc"; 992 reg = <0xff5f8000 0x100>; 993 interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>; 994 assigned-clocks = <&cru CLK_NPU_TSADC>; 995 assigned-clock-rates = <600000>; 996 clocks = <&cru CLK_NPU_TSADC>, <&cru PCLK_NPU_TSADC>, 997 <&cru CLK_NPU_TSADCPHY>; 998 clock-names = "tsadc", "apb_pclk", "phy_clk"; 999 resets = <&cru SRST_NPU_TSADC_P>, <&cru SRST_NPU_TSADC>, 1000 <&cru SRST_NPU_TSADCPHY>; 1001 reset-names = "tsadc-apb", "tsadc", "tsadc-phy"; 1002 rockchip,hw-tshut-temp = <120000>; 1003 #thermal-sensor-cells = <1>; 1004 status = "disabled"; 1005 }; 1006 1007 can: can@ff610000 { 1008 compatible = "rockchip,can-1.0"; 1009 reg = <0xff610000 0x100>; 1010 interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>; 1011 assigned-clocks = <&cru CLK_CAN>; 1012 assigned-clock-rates = <100000000>; 1013 clocks = <&cru CLK_CAN>, <&cru PCLK_CAN>; 1014 clock-names = "baudclk", "apb_pclk"; 1015 resets = <&cru SRST_CAN>, <&cru SRST_CAN_P>; 1016 reset-names = "can", "can-apb"; 1017 status = "disabled"; 1018 }; 1019 1020 wdt: watchdog@ff680000 { 1021 compatible = "rockchip,rv1126-wdt", "snps,dw-wdt"; 1022 reg = <0xff680000 0x100>; 1023 clocks = <&cru PCLK_WDT>; 1024 interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>; 1025 status = "disabled"; 1026 }; 1027 1028 mailbox: mailbox@ff6a0000 { 1029 compatible = "rockchip,rv1126-mailbox", 1030 "rockchip,rk3368-mailbox"; 1031 reg = <0xff6a0000 0x1000>; 1032 interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>; 1033 clocks = <&cru PCLK_MAILBOX>; 1034 clock-names = "pclk_mailbox"; 1035 #mbox-cells = <1>; 1036 status = "disabled"; 1037 }; 1038 1039 i2s0_8ch: i2s@ff800000 { 1040 compatible = "rockchip,rv1126-i2s-tdm"; 1041 reg = <0xff800000 0x1000>; 1042 interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>; 1043 clocks = <&cru MCLK_I2S0_TX>, <&cru MCLK_I2S0_RX>, <&cru HCLK_I2S0>; 1044 clock-names = "mclk_tx", "mclk_rx", "hclk"; 1045 dmas = <&dmac 20>, <&dmac 19>; 1046 dma-names = "tx", "rx"; 1047 resets = <&cru SRST_I2S0_TX_M>, <&cru SRST_I2S0_RX_M>; 1048 reset-names = "tx-m", "rx-m"; 1049 rockchip,cru = <&cru>; 1050 rockchip,grf = <&grf>; 1051 pinctrl-names = "default"; 1052 pinctrl-0 = <&i2s0m0_sclk_tx 1053 &i2s0m0_sclk_rx 1054 &i2s0m0_lrck_tx 1055 &i2s0m0_lrck_rx 1056 &i2s0m0_sdi0 1057 &i2s0m0_sdo0 1058 &i2s0m0_sdo1_sdi3 1059 &i2s0m0_sdo2_sdi2 1060 &i2s0m0_sdo3_sdi1>; 1061 status = "disabled"; 1062 }; 1063 1064 i2s1_2ch: i2s@ff810000 { 1065 compatible = "rockchip,rv1126-i2s", "rockchip,rk3066-i2s"; 1066 reg = <0xff810000 0x1000>; 1067 interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>; 1068 clocks = <&cru MCLK_I2S1>, <&cru HCLK_I2S1>; 1069 clock-names = "i2s_clk", "i2s_hclk"; 1070 dmas = <&dmac 22>, <&dmac 21>; 1071 dma-names = "tx", "rx"; 1072 pinctrl-names = "default"; 1073 pinctrl-0 = <&i2s1m0_sclk 1074 &i2s1m0_lrck 1075 &i2s1m0_sdi 1076 &i2s1m0_sdo>; 1077 status = "disabled"; 1078 }; 1079 1080 i2s2_2ch: i2s@ff820000 { 1081 compatible = "rockchip,rv1126-i2s", "rockchip,rk3066-i2s"; 1082 reg = <0xff820000 0x1000>; 1083 interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>; 1084 clocks = <&cru MCLK_I2S2>, <&cru HCLK_I2S2>; 1085 clock-names = "i2s_clk", "i2s_hclk"; 1086 dmas = <&dmac 24>, <&dmac 23>; 1087 dma-names = "tx", "rx"; 1088 pinctrl-names = "default"; 1089 pinctrl-0 = <&i2s2m0_sclk 1090 &i2s2m0_lrck 1091 &i2s2m0_sdi 1092 &i2s2m0_sdo>; 1093 status = "disabled"; 1094 }; 1095 1096 pdm: pdm@ff830000 { 1097 compatible = "rockchip,rv1126-pdm", "rockchip,pdm"; 1098 reg = <0xff830000 0x1000>; 1099 clocks = <&cru MCLK_PDM>, <&cru HCLK_PDM>; 1100 clock-names = "pdm_clk", "pdm_hclk"; 1101 dmas = <&dmac 25>; 1102 dma-names = "rx"; 1103 pinctrl-names = "default"; 1104 pinctrl-0 = <&pdmm0_clk 1105 &pdmm0_clk1 1106 &pdmm0_sdi0 1107 &pdmm0_sdi1 1108 &pdmm0_sdi2 1109 &pdmm0_sdi3>; 1110 status = "disabled"; 1111 }; 1112 1113 audpwm: audpwm@ff840000 { 1114 compatible = "rockchip,rv1126-audio-pwm", "rockchip,audio-pwm-v1"; 1115 reg = <0xff840000 0x1000>; 1116 clocks = <&cru SCLK_AUDPWM>, <&cru HCLK_AUDPWM>; 1117 clock-names = "clk", "hclk"; 1118 dmas = <&dmac 26>; 1119 dma-names = "tx"; 1120 pinctrl-names = "default"; 1121 pinctrl-0 = <&audpwmm0_pins>; 1122 rockchip,sample-width-bits = <11>; 1123 rockchip,interpolat-points = <1>; 1124 status = "disabled"; 1125 }; 1126 1127 dfi: dfi@ff9c0000 { 1128 reg = <0xff9c0000 0x400>; 1129 compatible = "rockchip,rv1126-dfi"; 1130 rockchip,pmugrf = <&pmugrf>; 1131 status = "disabled"; 1132 }; 1133 1134 dmc: dmc { 1135 compatible = "rockchip,rv1126-dmc"; 1136 devfreq-events = <&dfi>; 1137 clocks = <&cru SCLK_DDRCLK>; 1138 clock-names = "dmc_clk"; 1139 operating-points-v2 = <&dmc_opp_table>; 1140 ddr_timing = <&ddr_timing>; 1141 upthreshold = <40>; 1142 downdifferential = <20>; 1143 system-status-freq = < 1144 /*system status freq(KHz)*/ 1145 SYS_STATUS_NORMAL 924000 1146 SYS_STATUS_REBOOT 450000 1147 SYS_STATUS_SUSPEND 328000 1148 SYS_STATUS_VIDEO_1080P 924000 1149 SYS_STATUS_BOOST 924000 1150 SYS_STATUS_ISP 924000 1151 SYS_STATUS_PERFORMANCE 924000 1152 >; 1153 auto-min-freq = <328000>; 1154 auto-freq-en = <0>; 1155 #cooling-cells = <2>; 1156 status = "disabled"; 1157 }; 1158 1159 dmc_opp_table: dmc-opp-table { 1160 compatible = "operating-points-v2"; 1161 1162 opp-328000000 { 1163 opp-hz = /bits/ 64 <328000000>; 1164 opp-microvolt = <800000>; 1165 }; 1166 opp-450000000 { 1167 opp-hz = /bits/ 64 <450000000>; 1168 opp-microvolt = <800000>; 1169 }; 1170 opp-664000000 { 1171 opp-hz = /bits/ 64 <664000000>; 1172 opp-microvolt = <800000>; 1173 }; 1174 opp-924000000 { 1175 opp-hz = /bits/ 64 <924000000>; 1176 opp-microvolt = <800000>; 1177 }; 1178 opp-1056000000 { 1179 opp-hz = /bits/ 64 <1056000000>; 1180 opp-microvolt = <800000>; 1181 status = "disabled"; 1182 }; 1183 }; 1184 1185 vop: vop@ffb00000 { 1186 compatible = "rockchip,rv1126-vop"; 1187 reg = <0xffb00000 0x200>, <0xffb00a00 0x400>; 1188 reg-names = "regs", "gamma_lut"; 1189 interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>; 1190 clocks = <&cru ACLK_VOP>, <&cru DCLK_VOP>, <&cru HCLK_VOP>; 1191 clock-names = "aclk_vop", "dclk_vop", "hclk_vop"; 1192 iommus = <&vop_mmu>; 1193 status = "disabled"; 1194 1195 vop_out: port { 1196 #address-cells = <1>; 1197 #size-cells = <0>; 1198 1199 vop_out_rgb: endpoint@0 { 1200 reg = <0>; 1201 remote-endpoint = <&rgb_in_vop>; 1202 }; 1203 1204 vop_out_dsi: endpoint@1 { 1205 reg = <1>; 1206 remote-endpoint = <&dsi_in_vop>; 1207 }; 1208 }; 1209 }; 1210 1211 vop_mmu: iommu@ffb00f00 { 1212 compatible = "rockchip,iommu"; 1213 reg = <0xffb00f00 0x100>; 1214 interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>; 1215 interrupt-names = "vop_mmu"; 1216 clocks = <&cru ACLK_VOP>, <&cru HCLK_VOP>; 1217 clock-names = "aclk", "iface"; 1218 #iommu-cells = <0>; 1219 rockchip,disable-device-link-resume; 1220 status = "disabled"; 1221 }; 1222 1223 dsi: dsi@ffb30000 { 1224 compatible = "rockchip,rv1126-mipi-dsi"; 1225 reg = <0xffb30000 0x500>; 1226 interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>; 1227 clocks = <&cru PCLK_DSIHOST>, <&mipi_dphy>; 1228 clock-names = "pclk", "hs_clk"; 1229 resets = <&cru SRST_DSIHOST_P>; 1230 reset-names = "apb"; 1231 phys = <&mipi_dphy>; 1232 phy-names = "mipi_dphy"; 1233 rockchip,grf = <&grf>; 1234 #address-cells = <1>; 1235 #size-cells = <0>; 1236 status = "disabled"; 1237 1238 ports { 1239 port { 1240 dsi_in_vop: endpoint { 1241 remote-endpoint = <&vop_out_dsi>; 1242 }; 1243 }; 1244 }; 1245 }; 1246 1247 rkisp: rkisp@ffb50000 { 1248 compatible = "rockchip,rv1126-rkisp"; 1249 reg = <0xffb50000 0x10000>; 1250 interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>, 1251 <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>, 1252 <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>; 1253 interrupt-names = "isp_irq", "mi_irq", "mipi_irq"; 1254 clocks = <&cru ACLK_ISP>, <&cru HCLK_ISP>, 1255 <&cru CLK_ISP>; 1256 clock-names = "aclk_isp", "hclk_isp", "clk_isp"; 1257 power-domains = <&power RV1126_PD_VI>; 1258 iommus = <&rkisp_mmu>; 1259 status = "disabled"; 1260 }; 1261 1262 rkisp_mmu: iommu@ffb51a00 { 1263 compatible = "rockchip,iommu"; 1264 reg = <0xffb51a00 0x100>; 1265 interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>; 1266 interrupt-names = "isp_mmu"; 1267 clocks = <&cru ACLK_ISP>, <&cru HCLK_ISP>; 1268 clock-names = "aclk", "iface"; 1269 power-domains = <&power RV1126_PD_VI>; 1270 #iommu-cells = <0>; 1271 rockchip,disable-mmu-reset; 1272 status = "disabled"; 1273 }; 1274 1275 rkispp: rkispp@ffb60000 { 1276 compatible = "rockchip,rv1126-rkispp"; 1277 reg = <0xffb60000 0x20000>; 1278 interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>, 1279 <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>; 1280 interrupt-names = "ispp_irq", "fec_irq"; 1281 clocks = <&cru ACLK_ISPP>, <&cru HCLK_ISPP>, 1282 <&cru CLK_ISPP>; 1283 clock-names = "aclk_ispp", "hclk_ispp", "clk_ispp"; 1284 power-domains = <&power RV1126_PD_ISPP>; 1285 iommus = <&rkispp_mmu>; 1286 status = "disabled"; 1287 }; 1288 1289 rkispp_mmu: iommu@ffb60e00 { 1290 compatible = "rockchip,iommu"; 1291 reg = <0xffb60e00 0x40>, <0xffb60e40 0x40>, <0xffb60f00 0x40>; 1292 interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>, 1293 <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>, 1294 <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>; 1295 interrupt-names = "ispp_mmu0_r", "ispp_mmu0_w", "ispp_mmu1"; 1296 clocks = <&cru ACLK_ISPP>, <&cru HCLK_ISPP>; 1297 clock-names = "aclk", "iface"; 1298 power-domains = <&power RV1126_PD_ISPP>; 1299 #iommu-cells = <0>; 1300 rockchip,disable-mmu-reset; 1301 status = "disabled"; 1302 }; 1303 1304 rkvenc: rkvenc@ffbb0000 { 1305 compatible = "rockchip,rkv-encoder-v1"; 1306 reg = <0xffbb0000 0x400>; 1307 interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>; 1308 interrupt-names = "irq_enc"; 1309 clocks = <&cru ACLK_VENC>, <&cru HCLK_VENC>, 1310 <&cru CLK_VENC_CORE>; 1311 clock-names = "aclk_vcodec", "hclk_vcodec", "clk_core"; 1312 resets = <&cru SRST_VENC_A>, <&cru SRST_VENC_H>, 1313 <&cru SRST_VENC_CORE>; 1314 reset-names = "video_a", "video_h", "video_core"; 1315 iommus = <&rkvenc_mmu>; 1316 node-name = "rkvenc"; 1317 rockchip,srv = <&mpp_srv>; 1318 rockchip,taskqueue-node = <2>; 1319 rockchip,resetgroup-node = <2>; 1320 power-domains = <&power RV1126_PD_VEPU>; 1321 status = "disabled"; 1322 }; 1323 1324 rkvenc_mmu: iommu@ffbb0f00 { 1325 compatible = "rockchip,iommu"; 1326 reg = <0xffbb0f00 0x40>, <0xffbb0f40 0x40>; 1327 interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>, 1328 <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>; 1329 interrupt-names = "rkvenc_mmu0", "rkvenc_mmu1"; 1330 clocks = <&cru ACLK_VENC>, <&cru HCLK_VENC>; 1331 clock-names = "aclk", "iface"; 1332 rockchip,disable-mmu-reset; 1333 #iommu-cells = <0>; 1334 power-domains = <&power RV1126_PD_VEPU>; 1335 status = "disabled"; 1336 }; 1337 1338 pvtm@ffc00000 { 1339 compatible = "rockchip,rv1126-npu-pvtm"; 1340 reg = <0xffc00000 0x100>; 1341 clocks = <&cru CLK_NPUPVTM>, <&cru PCLK_NPUPVTM>; 1342 clock-names = "clk", "pclk"; 1343 resets = <&cru SRST_NPUPVTM>, <&cru SRST_NPUPVTM_P>; 1344 reset-names = "clk", "pclk"; 1345 }; 1346 1347 gmac: ethernet@ffc40000 { 1348 compatible = "rockchip,rv1126-gmac", "snps,dwmac-4.20a"; 1349 reg = <0xffc40000 0x0ffff>; 1350 interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>, 1351 <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>; 1352 interrupt-names = "macirq", "eth_wake_irq"; 1353 rockchip,grf = <&grf>; 1354 clocks = <&cru CLK_GMAC_SRC>, <&cru CLK_GMAC_TX_RX>, 1355 <&cru CLK_GMAC_TX_RX>, <&cru CLK_GMAC_REF>, 1356 <&cru ACLK_GMAC>, <&cru PCLK_GMAC>, 1357 <&cru RGMII_MODE_CLK>, <&cru CLK_GMAC_PTPREF>; 1358 clock-names = "stmmaceth", "mac_clk_rx", 1359 "mac_clk_tx", "clk_mac_refout", 1360 "aclk_mac", "pclk_mac", 1361 "clk_mac_speed", "ptp_ref"; 1362 resets = <&cru SRST_GMAC_A>; 1363 reset-names = "stmmaceth"; 1364 1365 snps,mixed-burst; 1366 snps,tso; 1367 1368 snps,axi-config = <&stmmac_axi_setup>; 1369 snps,mtl-rx-config = <&mtl_rx_setup>; 1370 snps,mtl-tx-config = <&mtl_tx_setup>; 1371 status = "disabled"; 1372 1373 mdio: mdio { 1374 compatible = "snps,dwmac-mdio"; 1375 #address-cells = <0x1>; 1376 #size-cells = <0x0>; 1377 }; 1378 1379 stmmac_axi_setup: stmmac-axi-config { 1380 snps,wr_osr_lmt = <4>; 1381 snps,rd_osr_lmt = <8>; 1382 snps,blen = <0 0 0 0 16 8 4>; 1383 }; 1384 1385 mtl_rx_setup: rx-queues-config { 1386 snps,rx-queues-to-use = <1>; 1387 queue0 {}; 1388 }; 1389 1390 mtl_tx_setup: tx-queues-config { 1391 snps,tx-queues-to-use = <1>; 1392 queue0 {}; 1393 }; 1394 }; 1395 1396 emmc: dwmmc@ffc50000 { 1397 compatible = "rockchip,rv1126-dw-mshc", "rockchip,rk3288-dw-mshc"; 1398 reg = <0xffc50000 0x4000>; 1399 interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>; 1400 clocks = <&cru HCLK_EMMC>, <&cru CLK_EMMC>, 1401 <&cru SCLK_EMMC_DRV>, <&cru SCLK_EMMC_SAMPLE>; 1402 clock-names = "biu", "ciu", "ciu-drive", "ciu-sample"; 1403 fifo-depth = <0x100>; 1404 max-frequency = <200000000>; 1405 status = "disabled"; 1406 }; 1407 1408 sdmmc: dwmmc@ffc60000 { 1409 compatible = "rockchip,rv1126-dw-mshc", "rockchip,rk3288-dw-mshc"; 1410 reg = <0xffc60000 0x4000>; 1411 interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>; 1412 clocks = <&cru HCLK_SDMMC>, <&cru CLK_SDMMC>, 1413 <&cru SCLK_SDMMC_DRV>, <&cru SCLK_SDMMC_SAMPLE>; 1414 clock-names = "biu", "ciu", "ciu-drive", "ciu-sample"; 1415 fifo-depth = <0x100>; 1416 max-frequency = <100000000>; 1417 pinctrl-names = "default"; 1418 pinctrl-0 = <&sdmmc1_clk &sdmmc1_cmd &sdmmc1_det &sdmmc1_bus4>; 1419 status = "disabled"; 1420 }; 1421 1422 sdio: dwmmc@ffc70000 { 1423 compatible = "rockchip,rv1126-dw-mshc", "rockchip,rk3288-dw-mshc"; 1424 reg = <0xffc70000 0x4000>; 1425 interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>; 1426 clocks = <&cru HCLK_SDIO>, <&cru CLK_SDIO>, 1427 <&cru SCLK_SDIO_DRV>, <&cru SCLK_SDIO_SAMPLE>; 1428 clock-names = "biu", "ciu", "ciu-drive", "ciu-sample"; 1429 fifo-depth = <0x100>; 1430 max-frequency = <150000000>; 1431 pinctrl-names = "default"; 1432 pinctrl-0 = <&sdmmc0_clk &sdmmc0_cmd &sdmmc0_bus4>; 1433 status = "disabled"; 1434 }; 1435 1436 nandc: nandc@ffc80000 { 1437 compatible = "rockchip,rk-nandc"; 1438 reg = <0x0 0xffc80000 0x0 0x4000>; 1439 interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>; 1440 nandc_id = <0>; 1441 clocks = <&cru CLK_NANDC>, <&cru HCLK_NANDC>; 1442 clock-names = "clk_nandc", "hclk_nandc"; 1443 status = "disabled"; 1444 }; 1445 1446 sfc: sfc@ffc90000 { 1447 compatible = "rockchip,sfc"; 1448 reg = <0xffc90000 0x4000>; 1449 interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>; 1450 clocks = <&cru SCLK_SFC>, <&cru HCLK_SFC>; 1451 clock-names = "clk_sfc", "hclk_sfc"; 1452 assigned-clocks = <&cru SCLK_SFC>; 1453 assigned-clock-rates = <80000000>; 1454 status = "disabled"; 1455 }; 1456 1457 usbdrd: usb0 { 1458 compatible = "rockchip,rv1126-dwc3", "rockchip,rk3399-dwc3"; 1459 #address-cells = <1>; 1460 #size-cells = <1>; 1461 ranges; 1462 clocks = <&cru CLK_USBOTG_REF>, <&cru ACLK_USBOTG>; 1463 clock-names = "ref_clk", "bus_clk"; 1464 status = "disabled"; 1465 1466 usbdrd_dwc3: dwc3@ffd00000 { 1467 compatible = "snps,dwc3"; 1468 reg = <0xffd00000 0x100000>; 1469 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>; 1470 dr_mode = "otg"; 1471 maximum-speed = "high-speed"; 1472 phys = <&u2phy_otg>; 1473 phy-names = "usb2-phy"; 1474 phy_type = "utmi_wide"; 1475 power-domains = <&power RV1126_PD_USB>; 1476 resets = <&cru SRST_USBOTG_A>; 1477 reset-names = "usb3-otg"; 1478 snps,dis_enblslpm_quirk; 1479 snps,dis-u2-freeclk-exists-quirk; 1480 snps,dis_u2_susphy_quirk; 1481 snps,dis-del-phy-power-chg-quirk; 1482 snps,tx-ipgap-linecheck-dis-quirk; 1483 snps,xhci-trb-ent-quirk; 1484 status = "disabled"; 1485 }; 1486 }; 1487 1488 usb_host0_ehci: usb@ffe00000 { 1489 compatible = "generic-ehci"; 1490 reg = <0xffe00000 0x20000>; 1491 interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>; 1492 clocks = <&cru HCLK_USBHOST>, <&cru HCLK_USBHOST_ARB>, 1493 <&u2phy1>; 1494 clock-names = "usbhost", "arbiter", "utmi"; 1495 phys = <&u2phy_host>; 1496 phy-names = "usb"; 1497 power-domains = <&power RV1126_PD_USB>; 1498 status = "disabled"; 1499 }; 1500 1501 usb_host0_ohci: usb@ffe10000 { 1502 compatible = "generic-ohci"; 1503 reg = <0xffe20000 0x20000>; 1504 interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>; 1505 clocks = <&cru HCLK_USBHOST>, <&cru HCLK_USBHOST_ARB>, 1506 <&u2phy1>; 1507 clock-names = "usbhost", "arbiter", "utmi"; 1508 phys = <&u2phy_host>; 1509 phy-names = "usb"; 1510 power-domains = <&power RV1126_PD_USB>; 1511 status = "disabled"; 1512 }; 1513 1514 pinctrl: pinctrl { 1515 compatible = "rockchip,rv1126-pinctrl"; 1516 rockchip,grf = <&grf>; 1517 rockchip,pmu = <&pmugrf>; 1518 #address-cells = <1>; 1519 #size-cells = <1>; 1520 ranges; 1521 1522 gpio0: gpio0@ff460000 { 1523 compatible = "rockchip,gpio-bank"; 1524 reg = <0xff460000 0x100>; 1525 interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>; 1526 clocks = <&pmucru PCLK_GPIO0>; 1527 1528 gpio-controller; 1529 #gpio-cells = <2>; 1530 1531 interrupt-controller; 1532 #interrupt-cells = <2>; 1533 }; 1534 1535 gpio1: gpio1@ff620000 { 1536 compatible = "rockchip,gpio-bank"; 1537 reg = <0xff620000 0x100>; 1538 interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>; 1539 clocks = <&cru PCLK_GPIO1>; 1540 1541 gpio-controller; 1542 #gpio-cells = <2>; 1543 1544 interrupt-controller; 1545 #interrupt-cells = <2>; 1546 }; 1547 1548 gpio2: gpio2@ff630000 { 1549 compatible = "rockchip,gpio-bank"; 1550 reg = <0xff630000 0x100>; 1551 interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>; 1552 clocks = <&cru PCLK_GPIO2>; 1553 1554 gpio-controller; 1555 #gpio-cells = <2>; 1556 1557 interrupt-controller; 1558 #interrupt-cells = <2>; 1559 }; 1560 1561 gpio3: gpio3@ff640000 { 1562 compatible = "rockchip,gpio-bank"; 1563 reg = <0xff640000 0x100>; 1564 interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>; 1565 clocks = <&cru PCLK_GPIO3>; 1566 1567 gpio-controller; 1568 #gpio-cells = <2>; 1569 1570 interrupt-controller; 1571 #interrupt-cells = <2>; 1572 }; 1573 1574 gpio4: gpio4@ff650000 { 1575 compatible = "rockchip,gpio-bank"; 1576 reg = <0xff650000 0x100>; 1577 interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>; 1578 clocks = <&cru PCLK_GPIO4>; 1579 1580 gpio-controller; 1581 #gpio-cells = <2>; 1582 1583 interrupt-controller; 1584 #interrupt-cells = <2>; 1585 }; 1586 }; 1587}; 1588 1589#include "rv1126-pinctrl.dtsi" 1590 1591