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 hw_decompress: decompress@ff6c0000 { 1040 compatible = "rockchip,hw-decompress"; 1041 reg = <0xff6c0000 0x10000>; 1042 interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>; 1043 clocks = <&cru ACLK_DECOM>, <&cru DCLK_DECOM>, <&cru PCLK_DECOM>; 1044 clock-names = "aclk", "dclk", "pclk"; 1045 soft-reset-addr = <0xff490314>; 1046 status = "disabled"; 1047 }; 1048 1049 i2s0_8ch: i2s@ff800000 { 1050 compatible = "rockchip,rv1126-i2s-tdm"; 1051 reg = <0xff800000 0x1000>; 1052 interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>; 1053 clocks = <&cru MCLK_I2S0_TX>, <&cru MCLK_I2S0_RX>, <&cru HCLK_I2S0>; 1054 clock-names = "mclk_tx", "mclk_rx", "hclk"; 1055 dmas = <&dmac 20>, <&dmac 19>; 1056 dma-names = "tx", "rx"; 1057 resets = <&cru SRST_I2S0_TX_M>, <&cru SRST_I2S0_RX_M>; 1058 reset-names = "tx-m", "rx-m"; 1059 rockchip,cru = <&cru>; 1060 rockchip,grf = <&grf>; 1061 pinctrl-names = "default"; 1062 pinctrl-0 = <&i2s0m0_sclk_tx 1063 &i2s0m0_sclk_rx 1064 &i2s0m0_lrck_tx 1065 &i2s0m0_lrck_rx 1066 &i2s0m0_sdi0 1067 &i2s0m0_sdo0 1068 &i2s0m0_sdo1_sdi3 1069 &i2s0m0_sdo2_sdi2 1070 &i2s0m0_sdo3_sdi1>; 1071 status = "disabled"; 1072 }; 1073 1074 i2s1_2ch: i2s@ff810000 { 1075 compatible = "rockchip,rv1126-i2s", "rockchip,rk3066-i2s"; 1076 reg = <0xff810000 0x1000>; 1077 interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>; 1078 clocks = <&cru MCLK_I2S1>, <&cru HCLK_I2S1>; 1079 clock-names = "i2s_clk", "i2s_hclk"; 1080 dmas = <&dmac 22>, <&dmac 21>; 1081 dma-names = "tx", "rx"; 1082 pinctrl-names = "default"; 1083 pinctrl-0 = <&i2s1m0_sclk 1084 &i2s1m0_lrck 1085 &i2s1m0_sdi 1086 &i2s1m0_sdo>; 1087 status = "disabled"; 1088 }; 1089 1090 i2s2_2ch: i2s@ff820000 { 1091 compatible = "rockchip,rv1126-i2s", "rockchip,rk3066-i2s"; 1092 reg = <0xff820000 0x1000>; 1093 interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>; 1094 clocks = <&cru MCLK_I2S2>, <&cru HCLK_I2S2>; 1095 clock-names = "i2s_clk", "i2s_hclk"; 1096 dmas = <&dmac 24>, <&dmac 23>; 1097 dma-names = "tx", "rx"; 1098 pinctrl-names = "default"; 1099 pinctrl-0 = <&i2s2m0_sclk 1100 &i2s2m0_lrck 1101 &i2s2m0_sdi 1102 &i2s2m0_sdo>; 1103 status = "disabled"; 1104 }; 1105 1106 pdm: pdm@ff830000 { 1107 compatible = "rockchip,rv1126-pdm", "rockchip,pdm"; 1108 reg = <0xff830000 0x1000>; 1109 clocks = <&cru MCLK_PDM>, <&cru HCLK_PDM>; 1110 clock-names = "pdm_clk", "pdm_hclk"; 1111 dmas = <&dmac 25>; 1112 dma-names = "rx"; 1113 pinctrl-names = "default"; 1114 pinctrl-0 = <&pdmm0_clk 1115 &pdmm0_clk1 1116 &pdmm0_sdi0 1117 &pdmm0_sdi1 1118 &pdmm0_sdi2 1119 &pdmm0_sdi3>; 1120 status = "disabled"; 1121 }; 1122 1123 audpwm: audpwm@ff840000 { 1124 compatible = "rockchip,rv1126-audio-pwm", "rockchip,audio-pwm-v1"; 1125 reg = <0xff840000 0x1000>; 1126 clocks = <&cru SCLK_AUDPWM>, <&cru HCLK_AUDPWM>; 1127 clock-names = "clk", "hclk"; 1128 dmas = <&dmac 26>; 1129 dma-names = "tx"; 1130 pinctrl-names = "default"; 1131 pinctrl-0 = <&audpwmm0_pins>; 1132 rockchip,sample-width-bits = <11>; 1133 rockchip,interpolat-points = <1>; 1134 status = "disabled"; 1135 }; 1136 1137 dfi: dfi@ff9c0000 { 1138 reg = <0xff9c0000 0x400>; 1139 compatible = "rockchip,rv1126-dfi"; 1140 rockchip,pmugrf = <&pmugrf>; 1141 status = "disabled"; 1142 }; 1143 1144 dmc: dmc { 1145 compatible = "rockchip,rv1126-dmc"; 1146 devfreq-events = <&dfi>; 1147 clocks = <&cru SCLK_DDRCLK>; 1148 clock-names = "dmc_clk"; 1149 operating-points-v2 = <&dmc_opp_table>; 1150 ddr_timing = <&ddr_timing>; 1151 upthreshold = <40>; 1152 downdifferential = <20>; 1153 system-status-freq = < 1154 /*system status freq(KHz)*/ 1155 SYS_STATUS_NORMAL 924000 1156 SYS_STATUS_REBOOT 450000 1157 SYS_STATUS_SUSPEND 328000 1158 SYS_STATUS_VIDEO_1080P 924000 1159 SYS_STATUS_BOOST 924000 1160 SYS_STATUS_ISP 924000 1161 SYS_STATUS_PERFORMANCE 924000 1162 >; 1163 auto-min-freq = <328000>; 1164 auto-freq-en = <0>; 1165 #cooling-cells = <2>; 1166 status = "disabled"; 1167 }; 1168 1169 dmc_opp_table: dmc-opp-table { 1170 compatible = "operating-points-v2"; 1171 1172 opp-328000000 { 1173 opp-hz = /bits/ 64 <328000000>; 1174 opp-microvolt = <800000>; 1175 }; 1176 opp-450000000 { 1177 opp-hz = /bits/ 64 <450000000>; 1178 opp-microvolt = <800000>; 1179 }; 1180 opp-664000000 { 1181 opp-hz = /bits/ 64 <664000000>; 1182 opp-microvolt = <800000>; 1183 }; 1184 opp-924000000 { 1185 opp-hz = /bits/ 64 <924000000>; 1186 opp-microvolt = <800000>; 1187 }; 1188 opp-1056000000 { 1189 opp-hz = /bits/ 64 <1056000000>; 1190 opp-microvolt = <800000>; 1191 status = "disabled"; 1192 }; 1193 }; 1194 1195 vop: vop@ffb00000 { 1196 compatible = "rockchip,rv1126-vop"; 1197 reg = <0xffb00000 0x200>, <0xffb00a00 0x400>; 1198 reg-names = "regs", "gamma_lut"; 1199 interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>; 1200 clocks = <&cru ACLK_VOP>, <&cru DCLK_VOP>, <&cru HCLK_VOP>; 1201 clock-names = "aclk_vop", "dclk_vop", "hclk_vop"; 1202 iommus = <&vop_mmu>; 1203 status = "disabled"; 1204 1205 vop_out: port { 1206 #address-cells = <1>; 1207 #size-cells = <0>; 1208 1209 vop_out_rgb: endpoint@0 { 1210 reg = <0>; 1211 remote-endpoint = <&rgb_in_vop>; 1212 }; 1213 1214 vop_out_dsi: endpoint@1 { 1215 reg = <1>; 1216 remote-endpoint = <&dsi_in_vop>; 1217 }; 1218 }; 1219 }; 1220 1221 vop_mmu: iommu@ffb00f00 { 1222 compatible = "rockchip,iommu"; 1223 reg = <0xffb00f00 0x100>; 1224 interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>; 1225 interrupt-names = "vop_mmu"; 1226 clocks = <&cru ACLK_VOP>, <&cru HCLK_VOP>; 1227 clock-names = "aclk", "iface"; 1228 #iommu-cells = <0>; 1229 rockchip,disable-device-link-resume; 1230 status = "disabled"; 1231 }; 1232 1233 dsi: dsi@ffb30000 { 1234 compatible = "rockchip,rv1126-mipi-dsi"; 1235 reg = <0xffb30000 0x500>; 1236 interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>; 1237 clocks = <&cru PCLK_DSIHOST>, <&mipi_dphy>; 1238 clock-names = "pclk", "hs_clk"; 1239 resets = <&cru SRST_DSIHOST_P>; 1240 reset-names = "apb"; 1241 phys = <&mipi_dphy>; 1242 phy-names = "mipi_dphy"; 1243 rockchip,grf = <&grf>; 1244 #address-cells = <1>; 1245 #size-cells = <0>; 1246 status = "disabled"; 1247 1248 ports { 1249 port { 1250 dsi_in_vop: endpoint { 1251 remote-endpoint = <&vop_out_dsi>; 1252 }; 1253 }; 1254 }; 1255 }; 1256 1257 rkisp: rkisp@ffb50000 { 1258 compatible = "rockchip,rv1126-rkisp"; 1259 reg = <0xffb50000 0x10000>; 1260 interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>, 1261 <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>, 1262 <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>; 1263 interrupt-names = "isp_irq", "mi_irq", "mipi_irq"; 1264 clocks = <&cru ACLK_ISP>, <&cru HCLK_ISP>, 1265 <&cru CLK_ISP>; 1266 clock-names = "aclk_isp", "hclk_isp", "clk_isp"; 1267 power-domains = <&power RV1126_PD_VI>; 1268 iommus = <&rkisp_mmu>; 1269 status = "disabled"; 1270 }; 1271 1272 rkisp_mmu: iommu@ffb51a00 { 1273 compatible = "rockchip,iommu"; 1274 reg = <0xffb51a00 0x100>; 1275 interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>; 1276 interrupt-names = "isp_mmu"; 1277 clocks = <&cru ACLK_ISP>, <&cru HCLK_ISP>; 1278 clock-names = "aclk", "iface"; 1279 power-domains = <&power RV1126_PD_VI>; 1280 #iommu-cells = <0>; 1281 rockchip,disable-mmu-reset; 1282 status = "disabled"; 1283 }; 1284 1285 rkispp: rkispp@ffb60000 { 1286 compatible = "rockchip,rv1126-rkispp"; 1287 reg = <0xffb60000 0x20000>; 1288 interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>, 1289 <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>; 1290 interrupt-names = "ispp_irq", "fec_irq"; 1291 clocks = <&cru ACLK_ISPP>, <&cru HCLK_ISPP>, 1292 <&cru CLK_ISPP>; 1293 clock-names = "aclk_ispp", "hclk_ispp", "clk_ispp"; 1294 power-domains = <&power RV1126_PD_ISPP>; 1295 iommus = <&rkispp_mmu>; 1296 status = "disabled"; 1297 }; 1298 1299 rkispp_mmu: iommu@ffb60e00 { 1300 compatible = "rockchip,iommu"; 1301 reg = <0xffb60e00 0x40>, <0xffb60e40 0x40>, <0xffb60f00 0x40>; 1302 interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>, 1303 <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>, 1304 <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>; 1305 interrupt-names = "ispp_mmu0_r", "ispp_mmu0_w", "ispp_mmu1"; 1306 clocks = <&cru ACLK_ISPP>, <&cru HCLK_ISPP>; 1307 clock-names = "aclk", "iface"; 1308 power-domains = <&power RV1126_PD_ISPP>; 1309 #iommu-cells = <0>; 1310 rockchip,disable-mmu-reset; 1311 status = "disabled"; 1312 }; 1313 1314 rkvenc: rkvenc@ffbb0000 { 1315 compatible = "rockchip,rkv-encoder-v1"; 1316 reg = <0xffbb0000 0x400>; 1317 interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>; 1318 interrupt-names = "irq_enc"; 1319 clocks = <&cru ACLK_VENC>, <&cru HCLK_VENC>, 1320 <&cru CLK_VENC_CORE>; 1321 clock-names = "aclk_vcodec", "hclk_vcodec", "clk_core"; 1322 resets = <&cru SRST_VENC_A>, <&cru SRST_VENC_H>, 1323 <&cru SRST_VENC_CORE>; 1324 reset-names = "video_a", "video_h", "video_core"; 1325 iommus = <&rkvenc_mmu>; 1326 node-name = "rkvenc"; 1327 rockchip,srv = <&mpp_srv>; 1328 rockchip,taskqueue-node = <2>; 1329 rockchip,resetgroup-node = <2>; 1330 power-domains = <&power RV1126_PD_VEPU>; 1331 status = "disabled"; 1332 }; 1333 1334 rkvenc_mmu: iommu@ffbb0f00 { 1335 compatible = "rockchip,iommu"; 1336 reg = <0xffbb0f00 0x40>, <0xffbb0f40 0x40>; 1337 interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>, 1338 <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>; 1339 interrupt-names = "rkvenc_mmu0", "rkvenc_mmu1"; 1340 clocks = <&cru ACLK_VENC>, <&cru HCLK_VENC>; 1341 clock-names = "aclk", "iface"; 1342 rockchip,disable-mmu-reset; 1343 #iommu-cells = <0>; 1344 power-domains = <&power RV1126_PD_VEPU>; 1345 status = "disabled"; 1346 }; 1347 1348 pvtm@ffc00000 { 1349 compatible = "rockchip,rv1126-npu-pvtm"; 1350 reg = <0xffc00000 0x100>; 1351 clocks = <&cru CLK_NPUPVTM>, <&cru PCLK_NPUPVTM>; 1352 clock-names = "clk", "pclk"; 1353 resets = <&cru SRST_NPUPVTM>, <&cru SRST_NPUPVTM_P>; 1354 reset-names = "clk", "pclk"; 1355 }; 1356 1357 gmac: ethernet@ffc40000 { 1358 compatible = "rockchip,rv1126-gmac", "snps,dwmac-4.20a"; 1359 reg = <0xffc40000 0x0ffff>; 1360 interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>, 1361 <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>; 1362 interrupt-names = "macirq", "eth_wake_irq"; 1363 rockchip,grf = <&grf>; 1364 clocks = <&cru CLK_GMAC_SRC>, <&cru CLK_GMAC_TX_RX>, 1365 <&cru CLK_GMAC_TX_RX>, <&cru CLK_GMAC_REF>, 1366 <&cru ACLK_GMAC>, <&cru PCLK_GMAC>, 1367 <&cru RGMII_MODE_CLK>, <&cru CLK_GMAC_PTPREF>; 1368 clock-names = "stmmaceth", "mac_clk_rx", 1369 "mac_clk_tx", "clk_mac_refout", 1370 "aclk_mac", "pclk_mac", 1371 "clk_mac_speed", "ptp_ref"; 1372 resets = <&cru SRST_GMAC_A>; 1373 reset-names = "stmmaceth"; 1374 1375 snps,mixed-burst; 1376 snps,tso; 1377 1378 snps,axi-config = <&stmmac_axi_setup>; 1379 snps,mtl-rx-config = <&mtl_rx_setup>; 1380 snps,mtl-tx-config = <&mtl_tx_setup>; 1381 status = "disabled"; 1382 1383 mdio: mdio { 1384 compatible = "snps,dwmac-mdio"; 1385 #address-cells = <0x1>; 1386 #size-cells = <0x0>; 1387 }; 1388 1389 stmmac_axi_setup: stmmac-axi-config { 1390 snps,wr_osr_lmt = <4>; 1391 snps,rd_osr_lmt = <8>; 1392 snps,blen = <0 0 0 0 16 8 4>; 1393 }; 1394 1395 mtl_rx_setup: rx-queues-config { 1396 snps,rx-queues-to-use = <1>; 1397 queue0 {}; 1398 }; 1399 1400 mtl_tx_setup: tx-queues-config { 1401 snps,tx-queues-to-use = <1>; 1402 queue0 {}; 1403 }; 1404 }; 1405 1406 emmc: dwmmc@ffc50000 { 1407 compatible = "rockchip,rv1126-dw-mshc", "rockchip,rk3288-dw-mshc"; 1408 reg = <0xffc50000 0x4000>; 1409 interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>; 1410 clocks = <&cru HCLK_EMMC>, <&cru CLK_EMMC>, 1411 <&cru SCLK_EMMC_DRV>, <&cru SCLK_EMMC_SAMPLE>; 1412 clock-names = "biu", "ciu", "ciu-drive", "ciu-sample"; 1413 fifo-depth = <0x100>; 1414 max-frequency = <200000000>; 1415 status = "disabled"; 1416 }; 1417 1418 sdmmc: dwmmc@ffc60000 { 1419 compatible = "rockchip,rv1126-dw-mshc", "rockchip,rk3288-dw-mshc"; 1420 reg = <0xffc60000 0x4000>; 1421 interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>; 1422 clocks = <&cru HCLK_SDMMC>, <&cru CLK_SDMMC>, 1423 <&cru SCLK_SDMMC_DRV>, <&cru SCLK_SDMMC_SAMPLE>; 1424 clock-names = "biu", "ciu", "ciu-drive", "ciu-sample"; 1425 fifo-depth = <0x100>; 1426 max-frequency = <100000000>; 1427 pinctrl-names = "default"; 1428 pinctrl-0 = <&sdmmc1_clk &sdmmc1_cmd &sdmmc1_det &sdmmc1_bus4>; 1429 status = "disabled"; 1430 }; 1431 1432 sdio: dwmmc@ffc70000 { 1433 compatible = "rockchip,rv1126-dw-mshc", "rockchip,rk3288-dw-mshc"; 1434 reg = <0xffc70000 0x4000>; 1435 interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>; 1436 clocks = <&cru HCLK_SDIO>, <&cru CLK_SDIO>, 1437 <&cru SCLK_SDIO_DRV>, <&cru SCLK_SDIO_SAMPLE>; 1438 clock-names = "biu", "ciu", "ciu-drive", "ciu-sample"; 1439 fifo-depth = <0x100>; 1440 max-frequency = <150000000>; 1441 pinctrl-names = "default"; 1442 pinctrl-0 = <&sdmmc0_clk &sdmmc0_cmd &sdmmc0_bus4>; 1443 status = "disabled"; 1444 }; 1445 1446 nandc: nandc@ffc80000 { 1447 compatible = "rockchip,rk-nandc"; 1448 reg = <0x0 0xffc80000 0x0 0x4000>; 1449 interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>; 1450 nandc_id = <0>; 1451 clocks = <&cru CLK_NANDC>, <&cru HCLK_NANDC>; 1452 clock-names = "clk_nandc", "hclk_nandc"; 1453 status = "disabled"; 1454 }; 1455 1456 sfc: sfc@ffc90000 { 1457 compatible = "rockchip,sfc"; 1458 reg = <0xffc90000 0x4000>; 1459 interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>; 1460 clocks = <&cru SCLK_SFC>, <&cru HCLK_SFC>; 1461 clock-names = "clk_sfc", "hclk_sfc"; 1462 assigned-clocks = <&cru SCLK_SFC>; 1463 assigned-clock-rates = <80000000>; 1464 status = "disabled"; 1465 }; 1466 1467 usbdrd: usb0 { 1468 compatible = "rockchip,rv1126-dwc3", "rockchip,rk3399-dwc3"; 1469 #address-cells = <1>; 1470 #size-cells = <1>; 1471 ranges; 1472 clocks = <&cru CLK_USBOTG_REF>, <&cru ACLK_USBOTG>; 1473 clock-names = "ref_clk", "bus_clk"; 1474 status = "disabled"; 1475 1476 usbdrd_dwc3: dwc3@ffd00000 { 1477 compatible = "snps,dwc3"; 1478 reg = <0xffd00000 0x100000>; 1479 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>; 1480 dr_mode = "otg"; 1481 maximum-speed = "high-speed"; 1482 phys = <&u2phy_otg>; 1483 phy-names = "usb2-phy"; 1484 phy_type = "utmi_wide"; 1485 power-domains = <&power RV1126_PD_USB>; 1486 resets = <&cru SRST_USBOTG_A>; 1487 reset-names = "usb3-otg"; 1488 snps,dis_enblslpm_quirk; 1489 snps,dis-u2-freeclk-exists-quirk; 1490 snps,dis_u2_susphy_quirk; 1491 snps,dis-del-phy-power-chg-quirk; 1492 snps,tx-ipgap-linecheck-dis-quirk; 1493 snps,xhci-trb-ent-quirk; 1494 status = "disabled"; 1495 }; 1496 }; 1497 1498 usb_host0_ehci: usb@ffe00000 { 1499 compatible = "generic-ehci"; 1500 reg = <0xffe00000 0x20000>; 1501 interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>; 1502 clocks = <&cru HCLK_USBHOST>, <&cru HCLK_USBHOST_ARB>, 1503 <&u2phy1>; 1504 clock-names = "usbhost", "arbiter", "utmi"; 1505 phys = <&u2phy_host>; 1506 phy-names = "usb"; 1507 power-domains = <&power RV1126_PD_USB>; 1508 status = "disabled"; 1509 }; 1510 1511 usb_host0_ohci: usb@ffe10000 { 1512 compatible = "generic-ohci"; 1513 reg = <0xffe20000 0x20000>; 1514 interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>; 1515 clocks = <&cru HCLK_USBHOST>, <&cru HCLK_USBHOST_ARB>, 1516 <&u2phy1>; 1517 clock-names = "usbhost", "arbiter", "utmi"; 1518 phys = <&u2phy_host>; 1519 phy-names = "usb"; 1520 power-domains = <&power RV1126_PD_USB>; 1521 status = "disabled"; 1522 }; 1523 1524 pinctrl: pinctrl { 1525 compatible = "rockchip,rv1126-pinctrl"; 1526 rockchip,grf = <&grf>; 1527 rockchip,pmu = <&pmugrf>; 1528 #address-cells = <1>; 1529 #size-cells = <1>; 1530 ranges; 1531 1532 gpio0: gpio0@ff460000 { 1533 compatible = "rockchip,gpio-bank"; 1534 reg = <0xff460000 0x100>; 1535 interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>; 1536 clocks = <&pmucru PCLK_GPIO0>; 1537 1538 gpio-controller; 1539 #gpio-cells = <2>; 1540 1541 interrupt-controller; 1542 #interrupt-cells = <2>; 1543 }; 1544 1545 gpio1: gpio1@ff620000 { 1546 compatible = "rockchip,gpio-bank"; 1547 reg = <0xff620000 0x100>; 1548 interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>; 1549 clocks = <&cru PCLK_GPIO1>; 1550 1551 gpio-controller; 1552 #gpio-cells = <2>; 1553 1554 interrupt-controller; 1555 #interrupt-cells = <2>; 1556 }; 1557 1558 gpio2: gpio2@ff630000 { 1559 compatible = "rockchip,gpio-bank"; 1560 reg = <0xff630000 0x100>; 1561 interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>; 1562 clocks = <&cru PCLK_GPIO2>; 1563 1564 gpio-controller; 1565 #gpio-cells = <2>; 1566 1567 interrupt-controller; 1568 #interrupt-cells = <2>; 1569 }; 1570 1571 gpio3: gpio3@ff640000 { 1572 compatible = "rockchip,gpio-bank"; 1573 reg = <0xff640000 0x100>; 1574 interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>; 1575 clocks = <&cru PCLK_GPIO3>; 1576 1577 gpio-controller; 1578 #gpio-cells = <2>; 1579 1580 interrupt-controller; 1581 #interrupt-cells = <2>; 1582 }; 1583 1584 gpio4: gpio4@ff650000 { 1585 compatible = "rockchip,gpio-bank"; 1586 reg = <0xff650000 0x100>; 1587 interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>; 1588 clocks = <&cru PCLK_GPIO4>; 1589 1590 gpio-controller; 1591 #gpio-cells = <2>; 1592 1593 interrupt-controller; 1594 #interrupt-cells = <2>; 1595 }; 1596 }; 1597}; 1598 1599#include "rv1126-pinctrl.dtsi" 1600 1601