1// SPDX-License-Identifier: GPL-2.0+ 2/* 3 * Copyright (c) 2016-2017 Fuzhou Rockchip Electronics Co., Ltd. 4 */ 5 6#include <dt-bindings/clock/rk3399-cru.h> 7#include <dt-bindings/gpio/gpio.h> 8#include <dt-bindings/interrupt-controller/arm-gic.h> 9#include <dt-bindings/interrupt-controller/irq.h> 10#include <dt-bindings/pinctrl/rockchip.h> 11#include <dt-bindings/power/rk3399-power.h> 12#include <dt-bindings/thermal/thermal.h> 13#define USB_CLASS_HUB 9 14 15/ { 16 compatible = "rockchip,rk3399"; 17 18 interrupt-parent = <&gic>; 19 #address-cells = <2>; 20 #size-cells = <2>; 21 22 aliases { 23 i2c0 = &i2c0; 24 i2c1 = &i2c1; 25 i2c2 = &i2c2; 26 i2c3 = &i2c3; 27 i2c4 = &i2c4; 28 i2c5 = &i2c5; 29 i2c6 = &i2c6; 30 i2c7 = &i2c7; 31 i2c8 = &i2c8; 32 serial0 = &uart0; 33 serial1 = &uart1; 34 serial2 = &uart2; 35 serial3 = &uart3; 36 serial4 = &uart4; 37 mmc0 = &sdhci; 38 mmc1 = &sdmmc; 39 }; 40 41 cpus { 42 #address-cells = <2>; 43 #size-cells = <0>; 44 45 cpu-map { 46 cluster0 { 47 core0 { 48 cpu = <&cpu_l0>; 49 }; 50 core1 { 51 cpu = <&cpu_l1>; 52 }; 53 core2 { 54 cpu = <&cpu_l2>; 55 }; 56 core3 { 57 cpu = <&cpu_l3>; 58 }; 59 }; 60 61 cluster1 { 62 core0 { 63 cpu = <&cpu_b0>; 64 }; 65 core1 { 66 cpu = <&cpu_b1>; 67 }; 68 }; 69 }; 70 71 cpu_l0: cpu@0 { 72 device_type = "cpu"; 73 compatible = "arm,cortex-a53", "arm,armv8"; 74 reg = <0x0 0x0>; 75 enable-method = "psci"; 76 #cooling-cells = <2>; /* min followed by max */ 77 clocks = <&cru ARMCLKL>; 78 }; 79 80 cpu_l1: cpu@1 { 81 device_type = "cpu"; 82 compatible = "arm,cortex-a53", "arm,armv8"; 83 reg = <0x0 0x1>; 84 enable-method = "psci"; 85 clocks = <&cru ARMCLKL>; 86 }; 87 88 cpu_l2: cpu@2 { 89 device_type = "cpu"; 90 compatible = "arm,cortex-a53", "arm,armv8"; 91 reg = <0x0 0x2>; 92 enable-method = "psci"; 93 clocks = <&cru ARMCLKL>; 94 }; 95 96 cpu_l3: cpu@3 { 97 device_type = "cpu"; 98 compatible = "arm,cortex-a53", "arm,armv8"; 99 reg = <0x0 0x3>; 100 enable-method = "psci"; 101 clocks = <&cru ARMCLKL>; 102 }; 103 104 cpu_b0: cpu@100 { 105 device_type = "cpu"; 106 compatible = "arm,cortex-a72", "arm,armv8"; 107 reg = <0x0 0x100>; 108 enable-method = "psci"; 109 #cooling-cells = <2>; /* min followed by max */ 110 clocks = <&cru ARMCLKB>; 111 }; 112 113 cpu_b1: cpu@101 { 114 device_type = "cpu"; 115 compatible = "arm,cortex-a72", "arm,armv8"; 116 reg = <0x0 0x101>; 117 enable-method = "psci"; 118 clocks = <&cru ARMCLKB>; 119 }; 120 }; 121 122 pmu_a53 { 123 compatible = "arm,cortex-a53-pmu"; 124 interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_LOW &ppi_cluster0>; 125 }; 126 127 pmu_a72 { 128 compatible = "arm,cortex-a72-pmu"; 129 interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_LOW &ppi_cluster1>; 130 }; 131 132 psci { 133 compatible = "arm,psci-1.0"; 134 method = "smc"; 135 }; 136 137 timer { 138 compatible = "arm,armv8-timer"; 139 interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW 0>, 140 <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW 0>, 141 <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW 0>, 142 <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW 0>; 143 arm,no-tick-in-suspend; 144 }; 145 146 xin24m: xin24m { 147 compatible = "fixed-clock"; 148 clock-frequency = <24000000>; 149 clock-output-names = "xin24m"; 150 #clock-cells = <0>; 151 }; 152 153 amba { 154 compatible = "simple-bus"; 155 #address-cells = <2>; 156 #size-cells = <2>; 157 ranges; 158 159 dmac_bus: dma-controller@ff6d0000 { 160 compatible = "arm,pl330", "arm,primecell"; 161 reg = <0x0 0xff6d0000 0x0 0x4000>; 162 interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH 0>, 163 <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH 0>; 164 #dma-cells = <1>; 165 clocks = <&cru ACLK_DMAC0_PERILP>; 166 clock-names = "apb_pclk"; 167 }; 168 169 dmac_peri: dma-controller@ff6e0000 { 170 compatible = "arm,pl330", "arm,primecell"; 171 reg = <0x0 0xff6e0000 0x0 0x4000>; 172 interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH 0>, 173 <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH 0>; 174 #dma-cells = <1>; 175 clocks = <&cru ACLK_DMAC1_PERILP>; 176 clock-names = "apb_pclk"; 177 }; 178 }; 179 180 pcie0: pcie@f8000000 { 181 compatible = "rockchip,rk3399-pcie"; 182 reg = <0x0 0xf8000000 0x0 0x2000000>, 183 <0x0 0xfd000000 0x0 0x1000000>; 184 reg-names = "axi-base", "apb-base"; 185 #address-cells = <3>; 186 #size-cells = <2>; 187 #interrupt-cells = <1>; 188 aspm-no-l0s; 189 bus-range = <0x0 0x1>; 190 clocks = <&cru ACLK_PCIE>, <&cru ACLK_PERF_PCIE>, 191 <&cru PCLK_PCIE>, <&cru SCLK_PCIE_PM>; 192 clock-names = "aclk", "aclk-perf", 193 "hclk", "pm"; 194 interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH 0>, 195 <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH 0>, 196 <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH 0>; 197 interrupt-names = "sys", "legacy", "client"; 198 interrupt-map-mask = <0 0 0 7>; 199 interrupt-map = <0 0 0 1 &pcie0_intc 0>, 200 <0 0 0 2 &pcie0_intc 1>, 201 <0 0 0 3 &pcie0_intc 2>, 202 <0 0 0 4 &pcie0_intc 3>; 203 linux,pci-domain = <0>; 204 max-link-speed = <1>; 205 msi-map = <0x0 &its 0x0 0x1000>; 206 phys = <&pcie_phy>; 207 phy-names = "pcie-phy"; 208 ranges = <0x83000000 0x0 0xfa000000 0x0 0xfa000000 0x0 0x600000 209 0x81000000 0x0 0xfa600000 0x0 0xfa600000 0x0 0x100000>; 210 resets = <&cru SRST_PCIE_CORE>, <&cru SRST_PCIE_MGMT>, 211 <&cru SRST_PCIE_MGMT_STICKY>, <&cru SRST_PCIE_PIPE>, 212 <&cru SRST_PCIE_PM>, <&cru SRST_P_PCIE>, 213 <&cru SRST_A_PCIE>; 214 reset-names = "core", "mgmt", "mgmt-sticky", "pipe", 215 "pm", "pclk", "aclk"; 216 status = "disabled"; 217 218 pcie0_intc: interrupt-controller { 219 interrupt-controller; 220 #address-cells = <0>; 221 #interrupt-cells = <1>; 222 }; 223 }; 224 225 gmac: ethernet@fe300000 { 226 compatible = "rockchip,rk3399-gmac"; 227 reg = <0x0 0xfe300000 0x0 0x10000>; 228 interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH 0>; 229 interrupt-names = "macirq"; 230 clocks = <&cru SCLK_MAC>, <&cru SCLK_MAC_RX>, 231 <&cru SCLK_MAC_TX>, <&cru SCLK_MACREF>, 232 <&cru SCLK_MACREF_OUT>, <&cru ACLK_GMAC>, 233 <&cru PCLK_GMAC>; 234 clock-names = "stmmaceth", "mac_clk_rx", 235 "mac_clk_tx", "clk_mac_ref", 236 "clk_mac_refout", "aclk_mac", 237 "pclk_mac"; 238 power-domains = <&power RK3399_PD_GMAC>; 239 resets = <&cru SRST_A_GMAC>; 240 reset-names = "stmmaceth"; 241 rockchip,grf = <&grf>; 242 status = "disabled"; 243 }; 244 245 sdio0: dwmmc@fe310000 { 246 compatible = "rockchip,rk3399-dw-mshc", 247 "rockchip,rk3288-dw-mshc"; 248 reg = <0x0 0xfe310000 0x0 0x4000>; 249 interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH 0>; 250 max-frequency = <150000000>; 251 clocks = <&cru HCLK_SDIO>, <&cru SCLK_SDIO>, 252 <&cru SCLK_SDIO_DRV>, <&cru SCLK_SDIO_SAMPLE>; 253 clock-names = "biu", "ciu", "ciu-drive", "ciu-sample"; 254 fifo-depth = <0x100>; 255 power-domains = <&power RK3399_PD_SDIOAUDIO>; 256 resets = <&cru SRST_SDIO0>; 257 reset-names = "reset"; 258 status = "disabled"; 259 }; 260 261 sdmmc: dwmmc@fe320000 { 262 compatible = "rockchip,rk3399-dw-mshc", 263 "rockchip,rk3288-dw-mshc"; 264 reg = <0x0 0xfe320000 0x0 0x4000>; 265 interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH 0>; 266 max-frequency = <150000000>; 267 clocks = <&cru HCLK_SDMMC>, <&cru SCLK_SDMMC>, 268 <&cru SCLK_SDMMC_DRV>, <&cru SCLK_SDMMC_SAMPLE>; 269 clock-names = "biu", "ciu", "ciu-drive", "ciu-sample"; 270 fifo-depth = <0x100>; 271 power-domains = <&power RK3399_PD_SD>; 272 resets = <&cru SRST_SDMMC>; 273 reset-names = "reset"; 274 status = "disabled"; 275 }; 276 277 sdhci: sdhci@fe330000 { 278 u-boot,dm-pre-reloc; 279 compatible = "rockchip,rk3399-sdhci-5.1", "arasan,sdhci-5.1"; 280 reg = <0x0 0xfe330000 0x0 0x10000>; 281 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH 0>; 282 arasan,soc-ctl-syscon = <&grf>; 283 assigned-clocks = <&cru SCLK_EMMC>; 284 assigned-clock-rates = <200000000>; 285 max-frequency = <200000000>; 286 clocks = <&cru SCLK_EMMC>, <&cru ACLK_EMMC>; 287 clock-names = "clk_xin", "clk_ahb"; 288 clock-output-names = "emmc_cardclock"; 289 #clock-cells = <0>; 290 phys = <&emmc_phy>; 291 phy-names = "phy_arasan"; 292 power-domains = <&power RK3399_PD_EMMC>; 293 status = "disabled"; 294 }; 295 296 usb_host0_ehci: usb@fe380000 { 297 compatible = "generic-ehci"; 298 reg = <0x0 0xfe380000 0x0 0x20000>; 299 interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH 0>; 300 clocks = <&cru HCLK_HOST0>, <&cru HCLK_HOST0_ARB>, 301 <&u2phy0>; 302 clock-names = "usbhost", "arbiter", 303 "utmi"; 304 phys = <&u2phy0_host>; 305 phy-names = "usb"; 306 power-domains = <&power RK3399_PD_PERIHP>; 307 status = "disabled"; 308 }; 309 310 usb_host0_ohci: usb@fe3a0000 { 311 compatible = "generic-ohci"; 312 reg = <0x0 0xfe3a0000 0x0 0x20000>; 313 interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH 0>; 314 clocks = <&cru HCLK_HOST0>, <&cru HCLK_HOST0_ARB>, 315 <&u2phy0>; 316 clock-names = "usbhost", "arbiter", 317 "utmi"; 318 phys = <&u2phy0_host>; 319 phy-names = "usb"; 320 power-domains = <&power RK3399_PD_PERIHP>; 321 status = "disabled"; 322 }; 323 324 usb_host1_ehci: usb@fe3c0000 { 325 compatible = "generic-ehci"; 326 reg = <0x0 0xfe3c0000 0x0 0x20000>; 327 interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH 0>; 328 clocks = <&cru HCLK_HOST1>, <&cru HCLK_HOST1_ARB>, 329 <&u2phy1>; 330 clock-names = "usbhost", "arbiter", 331 "utmi"; 332 phys = <&u2phy1_host>; 333 phy-names = "usb"; 334 power-domains = <&power RK3399_PD_PERIHP>; 335 status = "disabled"; 336 }; 337 338 usb_host1_ohci: usb@fe3e0000 { 339 compatible = "generic-ohci"; 340 reg = <0x0 0xfe3e0000 0x0 0x20000>; 341 interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH 0>; 342 clocks = <&cru HCLK_HOST1>, <&cru HCLK_HOST1_ARB>, 343 <&u2phy1>; 344 clock-names = "usbhost", "arbiter", 345 "utmi"; 346 phys = <&u2phy1_host>; 347 phy-names = "usb"; 348 power-domains = <&power RK3399_PD_PERIHP>; 349 status = "disabled"; 350 }; 351 352 dwc3_typec0: usb@fe800000 { 353 compatible = "rockchip,rk3399-xhci"; 354 reg = <0x0 0xfe800000 0x0 0x100000>; 355 status = "disabled"; 356 snps,dis-enblslpm-quirk; 357 snps,phyif-utmi-bits = <16>; 358 snps,dis-u2-freeclk-exists-quirk; 359 snps,dis-u2-susphy-quirk; 360 361 #address-cells = <2>; 362 #size-cells = <2>; 363 hub { 364 compatible = "usb-hub"; 365 usb,device-class = <USB_CLASS_HUB>; 366 }; 367 typec_phy0 { 368 compatible = "rockchip,rk3399-usb3-phy"; 369 reg = <0x0 0xff7c0000 0x0 0x40000>; 370 }; 371 }; 372 373 dwc3_typec1: usb@fe900000 { 374 compatible = "rockchip,rk3399-xhci"; 375 reg = <0x0 0xfe900000 0x0 0x100000>; 376 status = "disabled"; 377 snps,dis-enblslpm-quirk; 378 snps,phyif-utmi-bits = <16>; 379 snps,dis-u2-freeclk-exists-quirk; 380 snps,dis-u2-susphy-quirk; 381 382 #address-cells = <2>; 383 #size-cells = <2>; 384 hub { 385 compatible = "usb-hub"; 386 usb,device-class = <USB_CLASS_HUB>; 387 }; 388 typec_phy1 { 389 compatible = "rockchip,rk3399-usb3-phy"; 390 reg = <0x0 0xff800000 0x0 0x40000>; 391 }; 392 }; 393 394 gic: interrupt-controller@fee00000 { 395 compatible = "arm,gic-v3"; 396 #interrupt-cells = <4>; 397 #address-cells = <2>; 398 #size-cells = <2>; 399 ranges; 400 interrupt-controller; 401 402 reg = <0x0 0xfee00000 0 0x10000>, /* GICD */ 403 <0x0 0xfef00000 0 0xc0000>, /* GICR */ 404 <0x0 0xfff00000 0 0x10000>, /* GICC */ 405 <0x0 0xfff10000 0 0x10000>, /* GICH */ 406 <0x0 0xfff20000 0 0x10000>; /* GICV */ 407 interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH 0>; 408 its: interrupt-controller@fee20000 { 409 compatible = "arm,gic-v3-its"; 410 msi-controller; 411 reg = <0x0 0xfee20000 0x0 0x20000>; 412 }; 413 414 ppi-partitions { 415 ppi_cluster0: interrupt-partition-0 { 416 affinity = <&cpu_l0 &cpu_l1 &cpu_l2 &cpu_l3>; 417 }; 418 419 ppi_cluster1: interrupt-partition-1 { 420 affinity = <&cpu_b0 &cpu_b1>; 421 }; 422 }; 423 }; 424 425 saradc: saradc@ff100000 { 426 compatible = "rockchip,rk3399-saradc"; 427 reg = <0x0 0xff100000 0x0 0x100>; 428 interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH 0>; 429 #io-channel-cells = <1>; 430 clocks = <&cru SCLK_SARADC>, <&cru PCLK_SARADC>; 431 clock-names = "saradc", "apb_pclk"; 432 resets = <&cru SRST_P_SARADC>; 433 reset-names = "saradc-apb"; 434 status = "disabled"; 435 }; 436 437 i2c1: i2c@ff110000 { 438 compatible = "rockchip,rk3399-i2c"; 439 reg = <0x0 0xff110000 0x0 0x1000>; 440 assigned-clocks = <&cru SCLK_I2C1>; 441 assigned-clock-rates = <200000000>; 442 clocks = <&cru SCLK_I2C1>, <&cru PCLK_I2C1>; 443 clock-names = "i2c", "pclk"; 444 interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH 0>; 445 pinctrl-names = "default"; 446 pinctrl-0 = <&i2c1_xfer>; 447 #address-cells = <1>; 448 #size-cells = <0>; 449 status = "disabled"; 450 }; 451 452 i2c2: i2c@ff120000 { 453 compatible = "rockchip,rk3399-i2c"; 454 reg = <0x0 0xff120000 0x0 0x1000>; 455 assigned-clocks = <&cru SCLK_I2C2>; 456 assigned-clock-rates = <200000000>; 457 clocks = <&cru SCLK_I2C2>, <&cru PCLK_I2C2>; 458 clock-names = "i2c", "pclk"; 459 interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH 0>; 460 pinctrl-names = "default"; 461 pinctrl-0 = <&i2c2_xfer>; 462 #address-cells = <1>; 463 #size-cells = <0>; 464 status = "disabled"; 465 }; 466 467 i2c3: i2c@ff130000 { 468 compatible = "rockchip,rk3399-i2c"; 469 reg = <0x0 0xff130000 0x0 0x1000>; 470 assigned-clocks = <&cru SCLK_I2C3>; 471 assigned-clock-rates = <200000000>; 472 clocks = <&cru SCLK_I2C3>, <&cru PCLK_I2C3>; 473 clock-names = "i2c", "pclk"; 474 interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH 0>; 475 pinctrl-names = "default"; 476 pinctrl-0 = <&i2c3_xfer>; 477 #address-cells = <1>; 478 #size-cells = <0>; 479 status = "disabled"; 480 }; 481 482 i2c5: i2c@ff140000 { 483 compatible = "rockchip,rk3399-i2c"; 484 reg = <0x0 0xff140000 0x0 0x1000>; 485 assigned-clocks = <&cru SCLK_I2C5>; 486 assigned-clock-rates = <200000000>; 487 clocks = <&cru SCLK_I2C5>, <&cru PCLK_I2C5>; 488 clock-names = "i2c", "pclk"; 489 interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH 0>; 490 pinctrl-names = "default"; 491 pinctrl-0 = <&i2c5_xfer>; 492 #address-cells = <1>; 493 #size-cells = <0>; 494 status = "disabled"; 495 }; 496 497 i2c6: i2c@ff150000 { 498 compatible = "rockchip,rk3399-i2c"; 499 reg = <0x0 0xff150000 0x0 0x1000>; 500 assigned-clocks = <&cru SCLK_I2C6>; 501 assigned-clock-rates = <200000000>; 502 clocks = <&cru SCLK_I2C6>, <&cru PCLK_I2C6>; 503 clock-names = "i2c", "pclk"; 504 interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH 0>; 505 pinctrl-names = "default"; 506 pinctrl-0 = <&i2c6_xfer>; 507 #address-cells = <1>; 508 #size-cells = <0>; 509 status = "disabled"; 510 }; 511 512 i2c7: i2c@ff160000 { 513 compatible = "rockchip,rk3399-i2c"; 514 reg = <0x0 0xff160000 0x0 0x1000>; 515 assigned-clocks = <&cru SCLK_I2C7>; 516 assigned-clock-rates = <200000000>; 517 clocks = <&cru SCLK_I2C7>, <&cru PCLK_I2C7>; 518 clock-names = "i2c", "pclk"; 519 interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH 0>; 520 pinctrl-names = "default"; 521 pinctrl-0 = <&i2c7_xfer>; 522 #address-cells = <1>; 523 #size-cells = <0>; 524 status = "disabled"; 525 }; 526 527 uart0: serial@ff180000 { 528 compatible = "rockchip,rk3399-uart", "snps,dw-apb-uart"; 529 reg = <0x0 0xff180000 0x0 0x100>; 530 clocks = <&cru SCLK_UART0>, <&cru PCLK_UART0>; 531 clock-names = "baudclk", "apb_pclk"; 532 interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH 0>; 533 reg-shift = <2>; 534 reg-io-width = <4>; 535 pinctrl-names = "default"; 536 pinctrl-0 = <&uart0_xfer>; 537 status = "disabled"; 538 }; 539 540 uart1: serial@ff190000 { 541 compatible = "rockchip,rk3399-uart", "snps,dw-apb-uart"; 542 reg = <0x0 0xff190000 0x0 0x100>; 543 clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>; 544 clock-names = "baudclk", "apb_pclk"; 545 interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH 0>; 546 reg-shift = <2>; 547 reg-io-width = <4>; 548 pinctrl-names = "default"; 549 pinctrl-0 = <&uart1_xfer>; 550 status = "disabled"; 551 }; 552 553 uart2: serial@ff1a0000 { 554 compatible = "rockchip,rk3399-uart", "snps,dw-apb-uart"; 555 reg = <0x0 0xff1a0000 0x0 0x100>; 556 clocks = <&cru SCLK_UART2>, <&cru PCLK_UART2>; 557 clock-names = "baudclk", "apb_pclk"; 558 interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH 0>; 559 clock-frequency = <24000000>; 560 reg-shift = <2>; 561 reg-io-width = <4>; 562 pinctrl-names = "default"; 563 pinctrl-0 = <&uart2c_xfer>; 564 status = "disabled"; 565 }; 566 567 uart3: serial@ff1b0000 { 568 compatible = "rockchip,rk3399-uart", "snps,dw-apb-uart"; 569 reg = <0x0 0xff1b0000 0x0 0x100>; 570 clocks = <&cru SCLK_UART3>, <&cru PCLK_UART3>; 571 clock-names = "baudclk", "apb_pclk"; 572 interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH 0>; 573 reg-shift = <2>; 574 reg-io-width = <4>; 575 pinctrl-names = "default"; 576 pinctrl-0 = <&uart3_xfer>; 577 status = "disabled"; 578 }; 579 580 spi0: spi@ff1c0000 { 581 compatible = "rockchip,rk3399-spi", "rockchip,rk3066-spi"; 582 reg = <0x0 0xff1c0000 0x0 0x1000>; 583 clocks = <&cru SCLK_SPI0>, <&cru PCLK_SPI0>; 584 clock-names = "spiclk", "apb_pclk"; 585 interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH 0>; 586 pinctrl-names = "default"; 587 pinctrl-0 = <&spi0_clk &spi0_tx &spi0_rx &spi0_cs0>; 588 #address-cells = <1>; 589 #size-cells = <0>; 590 status = "disabled"; 591 }; 592 593 spi1: spi@ff1d0000 { 594 compatible = "rockchip,rk3399-spi", "rockchip,rk3066-spi"; 595 reg = <0x0 0xff1d0000 0x0 0x1000>; 596 clocks = <&cru SCLK_SPI1>, <&cru PCLK_SPI1>; 597 clock-names = "spiclk", "apb_pclk"; 598 interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH 0>; 599 pinctrl-names = "default"; 600 pinctrl-0 = <&spi1_clk &spi1_tx &spi1_rx &spi1_cs0>; 601 #address-cells = <1>; 602 #size-cells = <0>; 603 status = "disabled"; 604 }; 605 606 spi2: spi@ff1e0000 { 607 compatible = "rockchip,rk3399-spi", "rockchip,rk3066-spi"; 608 reg = <0x0 0xff1e0000 0x0 0x1000>; 609 clocks = <&cru SCLK_SPI2>, <&cru PCLK_SPI2>; 610 clock-names = "spiclk", "apb_pclk"; 611 interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH 0>; 612 pinctrl-names = "default"; 613 pinctrl-0 = <&spi2_clk &spi2_tx &spi2_rx &spi2_cs0>; 614 #address-cells = <1>; 615 #size-cells = <0>; 616 status = "disabled"; 617 }; 618 619 spi4: spi@ff1f0000 { 620 compatible = "rockchip,rk3399-spi", "rockchip,rk3066-spi"; 621 reg = <0x0 0xff1f0000 0x0 0x1000>; 622 clocks = <&cru SCLK_SPI4>, <&cru PCLK_SPI4>; 623 clock-names = "spiclk", "apb_pclk"; 624 interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH 0>; 625 pinctrl-names = "default"; 626 pinctrl-0 = <&spi4_clk &spi4_tx &spi4_rx &spi4_cs0>; 627 #address-cells = <1>; 628 #size-cells = <0>; 629 status = "disabled"; 630 }; 631 632 spi5: spi@ff200000 { 633 compatible = "rockchip,rk3399-spi", "rockchip,rk3066-spi"; 634 reg = <0x0 0xff200000 0x0 0x1000>; 635 clocks = <&cru SCLK_SPI5>, <&cru PCLK_SPI5>; 636 clock-names = "spiclk", "apb_pclk"; 637 interrupts = <GIC_SPI 132 IRQ_TYPE_LEVEL_HIGH 0>; 638 pinctrl-names = "default"; 639 pinctrl-0 = <&spi5_clk &spi5_tx &spi5_rx &spi5_cs0>; 640 #address-cells = <1>; 641 #size-cells = <0>; 642 status = "disabled"; 643 }; 644 645 thermal_zones: thermal-zones { 646 cpu_thermal: cpu { 647 polling-delay-passive = <100>; 648 polling-delay = <1000>; 649 650 thermal-sensors = <&tsadc 0>; 651 652 trips { 653 cpu_alert0: cpu_alert0 { 654 temperature = <70000>; 655 hysteresis = <2000>; 656 type = "passive"; 657 }; 658 cpu_alert1: cpu_alert1 { 659 temperature = <75000>; 660 hysteresis = <2000>; 661 type = "passive"; 662 }; 663 cpu_crit: cpu_crit { 664 temperature = <95000>; 665 hysteresis = <2000>; 666 type = "critical"; 667 }; 668 }; 669 670 cooling-maps { 671 map0 { 672 trip = <&cpu_alert0>; 673 cooling-device = 674 <&cpu_b0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; 675 }; 676 map1 { 677 trip = <&cpu_alert1>; 678 cooling-device = 679 <&cpu_l0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 680 <&cpu_b0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; 681 }; 682 }; 683 }; 684 685 gpu_thermal: gpu { 686 polling-delay-passive = <100>; 687 polling-delay = <1000>; 688 689 thermal-sensors = <&tsadc 1>; 690 691 trips { 692 gpu_alert0: gpu_alert0 { 693 temperature = <75000>; 694 hysteresis = <2000>; 695 type = "passive"; 696 }; 697 gpu_crit: gpu_crit { 698 temperature = <95000>; 699 hysteresis = <2000>; 700 type = "critical"; 701 }; 702 }; 703 704 cooling-maps { 705 map0 { 706 trip = <&gpu_alert0>; 707 cooling-device = 708 <&cpu_b0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; 709 }; 710 }; 711 }; 712 }; 713 714 tsadc: tsadc@ff260000 { 715 compatible = "rockchip,rk3399-tsadc"; 716 reg = <0x0 0xff260000 0x0 0x100>; 717 interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH 0>; 718 assigned-clocks = <&cru SCLK_TSADC>; 719 assigned-clock-rates = <750000>; 720 clocks = <&cru SCLK_TSADC>, <&cru PCLK_TSADC>; 721 clock-names = "tsadc", "apb_pclk"; 722 resets = <&cru SRST_TSADC>; 723 reset-names = "tsadc-apb"; 724 rockchip,grf = <&grf>; 725 rockchip,hw-tshut-temp = <95000>; 726 pinctrl-names = "init", "default", "sleep"; 727 pinctrl-0 = <&otp_gpio>; 728 pinctrl-1 = <&otp_out>; 729 pinctrl-2 = <&otp_gpio>; 730 #thermal-sensor-cells = <1>; 731 status = "disabled"; 732 }; 733 734 qos_emmc: qos@ffa58000 { 735 compatible = "syscon"; 736 reg = <0x0 0xffa58000 0x0 0x20>; 737 }; 738 739 qos_gmac: qos@ffa5c000 { 740 compatible = "syscon"; 741 reg = <0x0 0xffa5c000 0x0 0x20>; 742 }; 743 744 qos_pcie: qos@ffa60080 { 745 compatible = "syscon"; 746 reg = <0x0 0xffa60080 0x0 0x20>; 747 }; 748 749 qos_usb_host0: qos@ffa60100 { 750 compatible = "syscon"; 751 reg = <0x0 0xffa60100 0x0 0x20>; 752 }; 753 754 qos_usb_host1: qos@ffa60180 { 755 compatible = "syscon"; 756 reg = <0x0 0xffa60180 0x0 0x20>; 757 }; 758 759 qos_usb_otg0: qos@ffa70000 { 760 compatible = "syscon"; 761 reg = <0x0 0xffa70000 0x0 0x20>; 762 }; 763 764 qos_usb_otg1: qos@ffa70080 { 765 compatible = "syscon"; 766 reg = <0x0 0xffa70080 0x0 0x20>; 767 }; 768 769 qos_sd: qos@ffa74000 { 770 compatible = "syscon"; 771 reg = <0x0 0xffa74000 0x0 0x20>; 772 }; 773 774 qos_sdioaudio: qos@ffa76000 { 775 compatible = "syscon"; 776 reg = <0x0 0xffa76000 0x0 0x20>; 777 }; 778 779 qos_hdcp: qos@ffa90000 { 780 compatible = "syscon"; 781 reg = <0x0 0xffa90000 0x0 0x20>; 782 }; 783 784 qos_iep: qos@ffa98000 { 785 compatible = "syscon"; 786 reg = <0x0 0xffa98000 0x0 0x20>; 787 }; 788 789 qos_isp0_m0: qos@ffaa0000 { 790 compatible = "syscon"; 791 reg = <0x0 0xffaa0000 0x0 0x20>; 792 }; 793 794 qos_isp0_m1: qos@ffaa0080 { 795 compatible = "syscon"; 796 reg = <0x0 0xffaa0080 0x0 0x20>; 797 }; 798 799 qos_isp1_m0: qos@ffaa8000 { 800 compatible = "syscon"; 801 reg = <0x0 0xffaa8000 0x0 0x20>; 802 }; 803 804 qos_isp1_m1: qos@ffaa8080 { 805 compatible = "syscon"; 806 reg = <0x0 0xffaa8080 0x0 0x20>; 807 }; 808 809 qos_rga_r: qos@ffab0000 { 810 compatible = "syscon"; 811 reg = <0x0 0xffab0000 0x0 0x20>; 812 }; 813 814 qos_rga_w: qos@ffab0080 { 815 compatible = "syscon"; 816 reg = <0x0 0xffab0080 0x0 0x20>; 817 }; 818 819 qos_video_m0: qos@ffab8000 { 820 compatible = "syscon"; 821 reg = <0x0 0xffab8000 0x0 0x20>; 822 }; 823 824 qos_video_m1_r: qos@ffac0000 { 825 compatible = "syscon"; 826 reg = <0x0 0xffac0000 0x0 0x20>; 827 }; 828 829 qos_video_m1_w: qos@ffac0080 { 830 compatible = "syscon"; 831 reg = <0x0 0xffac0080 0x0 0x20>; 832 }; 833 834 qos_vop_big_r: qos@ffac8000 { 835 compatible = "syscon"; 836 reg = <0x0 0xffac8000 0x0 0x20>; 837 }; 838 839 qos_vop_big_w: qos@ffac8080 { 840 compatible = "syscon"; 841 reg = <0x0 0xffac8080 0x0 0x20>; 842 }; 843 844 qos_vop_little: qos@ffad0000 { 845 compatible = "syscon"; 846 reg = <0x0 0xffad0000 0x0 0x20>; 847 }; 848 849 qos_perihp: qos@ffad8080 { 850 compatible = "syscon"; 851 reg = <0x0 0xffad8080 0x0 0x20>; 852 }; 853 854 qos_gpu: qos@ffae0000 { 855 compatible = "syscon"; 856 reg = <0x0 0xffae0000 0x0 0x20>; 857 }; 858 859 pmu: power-management@ff310000 { 860 compatible = "rockchip,rk3399-pmu", "syscon", "simple-mfd"; 861 reg = <0x0 0xff310000 0x0 0x1000>; 862 863 /* 864 * Note: RK3399 supports 6 voltage domains including VD_CORE_L, 865 * VD_CORE_B, VD_CENTER, VD_GPU, VD_LOGIC and VD_PMU. 866 * Some of the power domains are grouped together for every 867 * voltage domain. 868 * The detail contents as below. 869 */ 870 power: power-controller { 871 compatible = "rockchip,rk3399-power-controller"; 872 #power-domain-cells = <1>; 873 #address-cells = <1>; 874 #size-cells = <0>; 875 876 /* These power domains are grouped by VD_CENTER */ 877 pd_iep@RK3399_PD_IEP { 878 reg = <RK3399_PD_IEP>; 879 clocks = <&cru ACLK_IEP>, 880 <&cru HCLK_IEP>; 881 pm_qos = <&qos_iep>; 882 }; 883 pd_rga@RK3399_PD_RGA { 884 reg = <RK3399_PD_RGA>; 885 clocks = <&cru ACLK_RGA>, 886 <&cru HCLK_RGA>; 887 pm_qos = <&qos_rga_r>, 888 <&qos_rga_w>; 889 }; 890 pd_vcodec@RK3399_PD_VCODEC { 891 reg = <RK3399_PD_VCODEC>; 892 clocks = <&cru ACLK_VCODEC>, 893 <&cru HCLK_VCODEC>; 894 pm_qos = <&qos_video_m0>; 895 }; 896 pd_vdu@RK3399_PD_VDU { 897 reg = <RK3399_PD_VDU>; 898 clocks = <&cru ACLK_VDU>, 899 <&cru HCLK_VDU>; 900 pm_qos = <&qos_video_m1_r>, 901 <&qos_video_m1_w>; 902 }; 903 904 /* These power domains are grouped by VD_GPU */ 905 pd_gpu@RK3399_PD_GPU { 906 reg = <RK3399_PD_GPU>; 907 clocks = <&cru ACLK_GPU>; 908 pm_qos = <&qos_gpu>; 909 }; 910 911 /* These power domains are grouped by VD_LOGIC */ 912 pd_edp@RK3399_PD_EDP { 913 reg = <RK3399_PD_EDP>; 914 clocks = <&cru PCLK_EDP_CTRL>; 915 }; 916 pd_emmc@RK3399_PD_EMMC { 917 reg = <RK3399_PD_EMMC>; 918 clocks = <&cru ACLK_EMMC>; 919 pm_qos = <&qos_emmc>; 920 }; 921 pd_gmac@RK3399_PD_GMAC { 922 reg = <RK3399_PD_GMAC>; 923 clocks = <&cru ACLK_GMAC>, 924 <&cru PCLK_GMAC>; 925 pm_qos = <&qos_gmac>; 926 }; 927 pd_perihp@RK3399_PD_PERIHP { 928 reg = <RK3399_PD_PERIHP>; 929 #address-cells = <1>; 930 #size-cells = <0>; 931 clocks = <&cru ACLK_PERIHP>; 932 pm_qos = <&qos_perihp>, 933 <&qos_pcie>, 934 <&qos_usb_host0>, 935 <&qos_usb_host1>; 936 937 pd_sd@RK3399_PD_SD { 938 reg = <RK3399_PD_SD>; 939 clocks = <&cru HCLK_SDMMC>, 940 <&cru SCLK_SDMMC>; 941 pm_qos = <&qos_sd>; 942 }; 943 }; 944 pd_sdioaudio@RK3399_PD_SDIOAUDIO { 945 reg = <RK3399_PD_SDIOAUDIO>; 946 clocks = <&cru HCLK_SDIO>; 947 pm_qos = <&qos_sdioaudio>; 948 }; 949 pd_usb3@RK3399_PD_USB3 { 950 reg = <RK3399_PD_USB3>; 951 clocks = <&cru ACLK_USB3>; 952 pm_qos = <&qos_usb_otg0>, 953 <&qos_usb_otg1>; 954 }; 955 pd_vio@RK3399_PD_VIO { 956 reg = <RK3399_PD_VIO>; 957 #address-cells = <1>; 958 #size-cells = <0>; 959 960 pd_hdcp@RK3399_PD_HDCP { 961 reg = <RK3399_PD_HDCP>; 962 clocks = <&cru ACLK_HDCP>, 963 <&cru HCLK_HDCP>, 964 <&cru PCLK_HDCP>; 965 pm_qos = <&qos_hdcp>; 966 }; 967 pd_isp0@RK3399_PD_ISP0 { 968 reg = <RK3399_PD_ISP0>; 969 clocks = <&cru ACLK_ISP0>, 970 <&cru HCLK_ISP0>; 971 pm_qos = <&qos_isp0_m0>, 972 <&qos_isp0_m1>; 973 }; 974 pd_isp1@RK3399_PD_ISP1 { 975 reg = <RK3399_PD_ISP1>; 976 clocks = <&cru ACLK_ISP1>, 977 <&cru HCLK_ISP1>; 978 pm_qos = <&qos_isp1_m0>, 979 <&qos_isp1_m1>; 980 }; 981 pd_tcpc0@RK3399_PD_TCPC0 { 982 reg = <RK3399_PD_TCPD0>; 983 clocks = <&cru SCLK_UPHY0_TCPDCORE>, 984 <&cru SCLK_UPHY0_TCPDPHY_REF>; 985 }; 986 pd_tcpc1@RK3399_PD_TCPC1 { 987 reg = <RK3399_PD_TCPD1>; 988 clocks = <&cru SCLK_UPHY1_TCPDCORE>, 989 <&cru SCLK_UPHY1_TCPDPHY_REF>; 990 }; 991 pd_vo@RK3399_PD_VO { 992 reg = <RK3399_PD_VO>; 993 #address-cells = <1>; 994 #size-cells = <0>; 995 996 pd_vopb@RK3399_PD_VOPB { 997 reg = <RK3399_PD_VOPB>; 998 clocks = <&cru ACLK_VOP0>, 999 <&cru HCLK_VOP0>; 1000 pm_qos = <&qos_vop_big_r>, 1001 <&qos_vop_big_w>; 1002 }; 1003 pd_vopl@RK3399_PD_VOPL { 1004 reg = <RK3399_PD_VOPL>; 1005 clocks = <&cru ACLK_VOP1>, 1006 <&cru HCLK_VOP1>; 1007 pm_qos = <&qos_vop_little>; 1008 }; 1009 }; 1010 }; 1011 }; 1012 }; 1013 1014 pmugrf: syscon@ff320000 { 1015 u-boot,dm-pre-reloc; 1016 compatible = "rockchip,rk3399-pmugrf", "syscon", "simple-mfd"; 1017 reg = <0x0 0xff320000 0x0 0x1000>; 1018 1019 pmu_io_domains: io-domains { 1020 compatible = "rockchip,rk3399-pmu-io-voltage-domain"; 1021 status = "disabled"; 1022 }; 1023 }; 1024 1025 pmusgrf: syscon@ff330000 { 1026 u-boot,dm-pre-reloc; 1027 compatible = "rockchip,rk3399-pmusgrf", "syscon"; 1028 reg = <0x0 0xff330000 0x0 0xe3d4>; 1029 }; 1030 1031 spi3: spi@ff350000 { 1032 compatible = "rockchip,rk3399-spi", "rockchip,rk3066-spi"; 1033 reg = <0x0 0xff350000 0x0 0x1000>; 1034 clocks = <&pmucru SCLK_SPI3_PMU>, <&pmucru PCLK_SPI3_PMU>; 1035 clock-names = "spiclk", "apb_pclk"; 1036 interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH 0>; 1037 pinctrl-names = "default"; 1038 pinctrl-0 = <&spi3_clk &spi3_tx &spi3_rx &spi3_cs0>; 1039 #address-cells = <1>; 1040 #size-cells = <0>; 1041 status = "disabled"; 1042 }; 1043 1044 uart4: serial@ff370000 { 1045 compatible = "rockchip,rk3399-uart", "snps,dw-apb-uart"; 1046 reg = <0x0 0xff370000 0x0 0x100>; 1047 clocks = <&pmucru SCLK_UART4_PMU>, <&pmucru PCLK_UART4_PMU>; 1048 clock-names = "baudclk", "apb_pclk"; 1049 interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH 0>; 1050 reg-shift = <2>; 1051 reg-io-width = <4>; 1052 pinctrl-names = "default"; 1053 pinctrl-0 = <&uart4_xfer>; 1054 status = "disabled"; 1055 }; 1056 1057 i2c4: i2c@ff3d0000 { 1058 compatible = "rockchip,rk3399-i2c"; 1059 reg = <0x0 0xff3d0000 0x0 0x1000>; 1060 assigned-clocks = <&pmucru SCLK_I2C4_PMU>; 1061 assigned-clock-rates = <200000000>; 1062 clocks = <&pmucru SCLK_I2C4_PMU>, <&pmucru PCLK_I2C4_PMU>; 1063 clock-names = "i2c", "pclk"; 1064 interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH 0>; 1065 pinctrl-names = "default"; 1066 pinctrl-0 = <&i2c4_xfer>; 1067 #address-cells = <1>; 1068 #size-cells = <0>; 1069 status = "disabled"; 1070 }; 1071 1072 i2c8: i2c@ff3e0000 { 1073 compatible = "rockchip,rk3399-i2c"; 1074 reg = <0x0 0xff3e0000 0x0 0x1000>; 1075 assigned-clocks = <&pmucru SCLK_I2C8_PMU>; 1076 assigned-clock-rates = <200000000>; 1077 clocks = <&pmucru SCLK_I2C8_PMU>, <&pmucru PCLK_I2C8_PMU>; 1078 clock-names = "i2c", "pclk"; 1079 interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH 0>; 1080 pinctrl-names = "default"; 1081 pinctrl-0 = <&i2c8_xfer>; 1082 #address-cells = <1>; 1083 #size-cells = <0>; 1084 status = "disabled"; 1085 }; 1086 1087 pwm0: pwm@ff420000 { 1088 compatible = "rockchip,rk3399-pwm", "rockchip,rk3288-pwm"; 1089 reg = <0x0 0xff420000 0x0 0x10>; 1090 #pwm-cells = <3>; 1091 pinctrl-names = "default"; 1092 pinctrl-0 = <&pwm0_pin>; 1093 clocks = <&pmucru PCLK_RKPWM_PMU>; 1094 clock-names = "pwm"; 1095 status = "disabled"; 1096 }; 1097 1098 pwm1: pwm@ff420010 { 1099 compatible = "rockchip,rk3399-pwm", "rockchip,rk3288-pwm"; 1100 reg = <0x0 0xff420010 0x0 0x10>; 1101 #pwm-cells = <3>; 1102 pinctrl-names = "default"; 1103 pinctrl-0 = <&pwm1_pin>; 1104 clocks = <&pmucru PCLK_RKPWM_PMU>; 1105 clock-names = "pwm"; 1106 status = "disabled"; 1107 }; 1108 1109 pwm2: pwm@ff420020 { 1110 compatible = "rockchip,rk3399-pwm", "rockchip,rk3288-pwm"; 1111 reg = <0x0 0xff420020 0x0 0x10>; 1112 #pwm-cells = <3>; 1113 pinctrl-names = "default"; 1114 pinctrl-0 = <&pwm2_pin>; 1115 clocks = <&pmucru PCLK_RKPWM_PMU>; 1116 clock-names = "pwm"; 1117 status = "disabled"; 1118 }; 1119 1120 pwm3: pwm@ff420030 { 1121 compatible = "rockchip,rk3399-pwm", "rockchip,rk3288-pwm"; 1122 reg = <0x0 0xff420030 0x0 0x10>; 1123 #pwm-cells = <3>; 1124 pinctrl-names = "default"; 1125 pinctrl-0 = <&pwm3a_pin>; 1126 clocks = <&pmucru PCLK_RKPWM_PMU>; 1127 clock-names = "pwm"; 1128 status = "disabled"; 1129 }; 1130 1131 cic: syscon@ff620000 { 1132 u-boot,dm-pre-reloc; 1133 compatible = "rockchip,rk3399-cic", "syscon"; 1134 reg = <0x0 0xff620000 0x0 0x100>; 1135 }; 1136 1137 dfi: dfi@ff630000 { 1138 reg = <0x00 0xff630000 0x00 0x4000>; 1139 compatible = "rockchip,rk3399-dfi"; 1140 rockchip,pmu = <&pmugrf>; 1141 clocks = <&cru PCLK_DDR_MON>; 1142 clock-names = "pclk_ddr_mon"; 1143 status = "disabled"; 1144 }; 1145 1146 dmc: dmc { 1147 u-boot,dm-pre-reloc; 1148 compatible = "rockchip,rk3399-dmc"; 1149 devfreq-events = <&dfi>; 1150 interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH 0>; 1151 clocks = <&cru SCLK_DDRCLK>; 1152 clock-names = "dmc_clk"; 1153 reg = <0x0 0xffa80000 0x0 0x0800 1154 0x0 0xffa80800 0x0 0x1800 1155 0x0 0xffa82000 0x0 0x2000 1156 0x0 0xffa84000 0x0 0x1000 1157 0x0 0xffa88000 0x0 0x0800 1158 0x0 0xffa88800 0x0 0x1800 1159 0x0 0xffa8a000 0x0 0x2000 1160 0x0 0xffa8c000 0x0 0x1000>; 1161 }; 1162 1163 efuse0: efuse@ff690000 { 1164 compatible = "rockchip,rk3399-efuse"; 1165 reg = <0x0 0xff690000 0x0 0x80>; 1166 #address-cells = <1>; 1167 #size-cells = <1>; 1168 clocks = <&cru PCLK_EFUSE1024NS>; 1169 clock-names = "pclk_efuse"; 1170 1171 /* Data cells */ 1172 cpu_id: cpu-id@7 { 1173 reg = <0x07 0x10>; 1174 }; 1175 cpub_leakage: cpu-leakage@17 { 1176 reg = <0x17 0x1>; 1177 }; 1178 gpu_leakage: gpu-leakage@18 { 1179 reg = <0x18 0x1>; 1180 }; 1181 center_leakage: center-leakage@19 { 1182 reg = <0x19 0x1>; 1183 }; 1184 cpul_leakage: cpu-leakage@1a { 1185 reg = <0x1a 0x1>; 1186 }; 1187 logic_leakage: logic-leakage@1b { 1188 reg = <0x1b 0x1>; 1189 }; 1190 wafer_info: wafer-info@1c { 1191 reg = <0x1c 0x1>; 1192 }; 1193 }; 1194 1195 pmucru: pmu-clock-controller@ff750000 { 1196 u-boot,dm-pre-reloc; 1197 compatible = "rockchip,rk3399-pmucru"; 1198 reg = <0x0 0xff750000 0x0 0x1000>; 1199 rockchip,grf = <&pmugrf>; 1200 #clock-cells = <1>; 1201 #reset-cells = <1>; 1202 assigned-clocks = <&pmucru PLL_PPLL>; 1203 assigned-clock-rates = <676000000>; 1204 }; 1205 1206 cru: clock-controller@ff760000 { 1207 u-boot,dm-pre-reloc; 1208 compatible = "rockchip,rk3399-cru"; 1209 reg = <0x0 0xff760000 0x0 0x1000>; 1210 rockchip,grf = <&grf>; 1211 #clock-cells = <1>; 1212 #reset-cells = <1>; 1213 assigned-clocks = 1214 <&cru PLL_GPLL>, <&cru PLL_CPLL>, 1215 <&cru PLL_NPLL>, 1216 <&cru ACLK_PERIHP>, <&cru HCLK_PERIHP>, 1217 <&cru PCLK_PERIHP>, 1218 <&cru ACLK_PERILP0>, <&cru HCLK_PERILP0>, 1219 <&cru PCLK_PERILP0>, <&cru ACLK_CCI>, 1220 <&cru HCLK_PERILP1>, <&cru PCLK_PERILP1>; 1221 assigned-clock-rates = 1222 <594000000>, <800000000>, 1223 <1000000000>, 1224 <150000000>, <75000000>, 1225 <37500000>, 1226 <100000000>, <100000000>, 1227 <50000000>, <600000000>, 1228 <100000000>, <50000000>; 1229 }; 1230 1231 grf: syscon@ff770000 { 1232 u-boot,dm-pre-reloc; 1233 compatible = "rockchip,rk3399-grf", "syscon", "simple-mfd"; 1234 reg = <0x0 0xff770000 0x0 0x10000>; 1235 #address-cells = <1>; 1236 #size-cells = <1>; 1237 1238 io_domains: io-domains { 1239 compatible = "rockchip,rk3399-io-voltage-domain"; 1240 status = "disabled"; 1241 }; 1242 1243 u2phy0: usb2-phy@e450 { 1244 compatible = "rockchip,rk3399-usb2phy"; 1245 reg = <0xe450 0x10>; 1246 clocks = <&cru SCLK_USB2PHY0_REF>; 1247 clock-names = "phyclk"; 1248 #clock-cells = <0>; 1249 clock-output-names = "clk_usbphy0_480m"; 1250 status = "disabled"; 1251 1252 u2phy0_host: host-port { 1253 #phy-cells = <0>; 1254 interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH 0>; 1255 interrupt-names = "linestate"; 1256 status = "disabled"; 1257 }; 1258 1259 u2phy0_otg: otg-port { 1260 #phy-cells = <0>; 1261 interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH 0>, 1262 <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH 0>, 1263 <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH 0>; 1264 interrupt-names = "otg-bvalid", "otg-id", 1265 "linestate"; 1266 status = "disabled"; 1267 }; 1268 }; 1269 1270 u2phy1: usb2-phy@e460 { 1271 compatible = "rockchip,rk3399-usb2phy"; 1272 reg = <0xe460 0x10>; 1273 clocks = <&cru SCLK_USB2PHY1_REF>; 1274 clock-names = "phyclk"; 1275 #clock-cells = <0>; 1276 clock-output-names = "clk_usbphy1_480m"; 1277 status = "disabled"; 1278 1279 u2phy1_host: host-port { 1280 #phy-cells = <0>; 1281 interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH 0>; 1282 interrupt-names = "linestate"; 1283 status = "disabled"; 1284 }; 1285 1286 u2phy1_otg: otg-port { 1287 #phy-cells = <0>; 1288 interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH 0>, 1289 <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH 0>, 1290 <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH 0>; 1291 interrupt-names = "otg-bvalid", "otg-id", 1292 "linestate"; 1293 status = "disabled"; 1294 }; 1295 }; 1296 1297 emmc_phy: phy@f780 { 1298 compatible = "rockchip,rk3399-emmc-phy"; 1299 reg = <0xf780 0x24>; 1300 clocks = <&sdhci>; 1301 clock-names = "emmcclk"; 1302 #phy-cells = <0>; 1303 status = "disabled"; 1304 }; 1305 1306 pcie_phy: pcie-phy { 1307 compatible = "rockchip,rk3399-pcie-phy"; 1308 clocks = <&cru SCLK_PCIEPHY_REF>; 1309 clock-names = "refclk"; 1310 #phy-cells = <0>; 1311 resets = <&cru SRST_PCIEPHY>; 1312 reset-names = "phy"; 1313 status = "disabled"; 1314 }; 1315 }; 1316 1317 watchdog@ff848000 { 1318 compatible = "snps,dw-wdt"; 1319 reg = <0x0 0xff848000 0x0 0x100>; 1320 clocks = <&cru PCLK_WDT>; 1321 interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH 0>; 1322 }; 1323 1324 rktimer: rktimer@ff850000 { 1325 compatible = "rockchip,rk3399-timer"; 1326 reg = <0x0 0xff850000 0x0 0x1000>; 1327 interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH 0>; 1328 clocks = <&cru PCLK_TIMER0>, <&cru SCLK_TIMER00>; 1329 clock-names = "pclk", "timer"; 1330 }; 1331 1332 spdif: spdif@ff870000 { 1333 compatible = "rockchip,rk3399-spdif"; 1334 reg = <0x0 0xff870000 0x0 0x1000>; 1335 interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH 0>; 1336 dmas = <&dmac_bus 7>; 1337 dma-names = "tx"; 1338 clock-names = "mclk", "hclk"; 1339 clocks = <&cru SCLK_SPDIF_8CH>, <&cru HCLK_SPDIF>; 1340 pinctrl-names = "default"; 1341 pinctrl-0 = <&spdif_bus>; 1342 power-domains = <&power RK3399_PD_SDIOAUDIO>; 1343 status = "disabled"; 1344 }; 1345 1346 i2s0: i2s@ff880000 { 1347 compatible = "rockchip,rk3399-i2s", "rockchip,rk3066-i2s"; 1348 reg = <0x0 0xff880000 0x0 0x1000>; 1349 rockchip,grf = <&grf>; 1350 interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH 0>; 1351 dmas = <&dmac_bus 0>, <&dmac_bus 1>; 1352 dma-names = "tx", "rx"; 1353 clock-names = "i2s_clk", "i2s_hclk"; 1354 clocks = <&cru SCLK_I2S0_8CH>, <&cru HCLK_I2S0_8CH>; 1355 pinctrl-names = "default"; 1356 pinctrl-0 = <&i2s0_8ch_bus>; 1357 power-domains = <&power RK3399_PD_SDIOAUDIO>; 1358 status = "disabled"; 1359 }; 1360 1361 i2s1: i2s@ff890000 { 1362 compatible = "rockchip,rk3399-i2s", "rockchip,rk3066-i2s"; 1363 reg = <0x0 0xff890000 0x0 0x1000>; 1364 interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH 0>; 1365 dmas = <&dmac_bus 2>, <&dmac_bus 3>; 1366 dma-names = "tx", "rx"; 1367 clock-names = "i2s_clk", "i2s_hclk"; 1368 clocks = <&cru SCLK_I2S1_8CH>, <&cru HCLK_I2S1_8CH>; 1369 pinctrl-names = "default"; 1370 pinctrl-0 = <&i2s1_2ch_bus>; 1371 power-domains = <&power RK3399_PD_SDIOAUDIO>; 1372 status = "disabled"; 1373 }; 1374 1375 i2s2: i2s@ff8a0000 { 1376 compatible = "rockchip,rk3399-i2s", "rockchip,rk3066-i2s"; 1377 reg = <0x0 0xff8a0000 0x0 0x1000>; 1378 interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH 0>; 1379 dmas = <&dmac_bus 4>, <&dmac_bus 5>; 1380 dma-names = "tx", "rx"; 1381 clock-names = "i2s_clk", "i2s_hclk"; 1382 clocks = <&cru SCLK_I2S2_8CH>, <&cru HCLK_I2S2_8CH>; 1383 power-domains = <&power RK3399_PD_SDIOAUDIO>; 1384 status = "disabled"; 1385 }; 1386 1387 i2c0: i2c@ff3c0000 { 1388 compatible = "rockchip,rk3399-i2c"; 1389 reg = <0x0 0xff3c0000 0x0 0x1000>; 1390 assigned-clocks = <&pmucru SCLK_I2C0_PMU>; 1391 assigned-clock-rates = <200000000>; 1392 clocks = <&pmucru SCLK_I2C0_PMU>, <&pmucru PCLK_I2C0_PMU>; 1393 clock-names = "i2c", "pclk"; 1394 interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH 0>; 1395 pinctrl-names = "default"; 1396 pinctrl-0 = <&i2c0_xfer>; 1397 #address-cells = <1>; 1398 #size-cells = <0>; 1399 status = "disabled"; 1400 }; 1401 1402 vopl: vop@ff8f0000 { 1403 u-boot,dm-pre-reloc; 1404 compatible = "rockchip,rk3399-vop-lit"; 1405 reg = <0x0 0xff8f0000 0x0 0x3efc>; 1406 interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH 0>; 1407 clocks = <&cru ACLK_VOP1>, <&cru DCLK_VOP1>, <&cru HCLK_VOP1>; 1408 clock-names = "aclk_vop", "dclk_vop", "hclk_vop"; 1409 resets = <&cru SRST_A_VOP1>, <&cru SRST_H_VOP1>, <&cru SRST_D_VOP1>; 1410 reset-names = "axi", "ahb", "dclk"; 1411 status = "disabled"; 1412 vopl_out: port { 1413 #address-cells = <1>; 1414 #size-cells = <0>; 1415 vopl_out_mipi: endpoint@0 { 1416 reg = <3>; 1417 remote-endpoint = <&mipi_in_vopl>; 1418 }; 1419 1420 vopl_out_hdmi: endpoint@1 { 1421 reg = <1>; 1422 remote-endpoint = <&hdmi_in_vopl>; 1423 }; 1424 }; 1425 }; 1426 1427 vopb: vop@ff900000 { 1428 u-boot,dm-pre-reloc; 1429 compatible = "rockchip,rk3399-vop-big"; 1430 reg = <0x0 0xff900000 0x0 0x3efc>; 1431 interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH 0>; 1432 clocks = <&cru ACLK_VOP0>, <&cru DCLK_VOP0>, <&cru HCLK_VOP0>; 1433 #clock-cells = <0>; 1434 clock-names = "aclk_vop", "dclk_vop", "hclk_vop"; 1435 resets = <&cru SRST_A_VOP0>, <&cru SRST_H_VOP0>, <&cru SRST_D_VOP0>; 1436 reset-names = "axi", "ahb", "dclk"; 1437 status = "disabled"; 1438 vopb_out: port { 1439 #address-cells = <1>; 1440 #size-cells = <0>; 1441 vopb_out_mipi: endpoint@0 { 1442 reg = <3>; 1443 remote-endpoint = <&mipi_in_vopb>; 1444 }; 1445 1446 vopb_out_hdmi: endpoint@1 { 1447 reg = <1>; 1448 remote-endpoint = <&hdmi_in_vopb>; 1449 }; 1450 }; 1451 }; 1452 1453 hdmi: hdmi@ff940000 { 1454 compatible = "rockchip,rk3399-dw-hdmi"; 1455 reg = <0x0 0xff940000 0x0 0x20000>; 1456 reg-io-width = <4>; 1457 rockchip,grf = <&grf>; 1458 pinctrl-names = "default"; 1459 pinctrl-0 = <&hdmi_i2c_xfer>; 1460 power-domains = <&power RK3399_PD_HDCP>; 1461 interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH 0>; 1462 clocks = <&cru PCLK_HDMI_CTRL>, <&cru SCLK_HDMI_SFR>, <&cru PLL_VPLL>, <&cru PCLK_VIO_GRF>; 1463 clock-names = "iahb", "isfr", "vpll", "grf"; 1464 status = "disabled"; 1465 1466 ports { 1467 hdmi_in: port { 1468 #address-cells = <1>; 1469 #size-cells = <0>; 1470 hdmi_in_vopb: endpoint@0 { 1471 reg = <0>; 1472 remote-endpoint = <&vopb_out_hdmi>; 1473 }; 1474 hdmi_in_vopl: endpoint@1 { 1475 reg = <1>; 1476 remote-endpoint = <&vopl_out_hdmi>; 1477 }; 1478 }; 1479 }; 1480 }; 1481 1482 mipi_dsi: mipi@ff960000 { 1483 compatible = "rockchip,rk3399_mipi_dsi"; 1484 reg = <0x0 0xff960000 0x0 0x8000>; 1485 interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH 0>; 1486 clocks = <&cru SCLK_MIPIDPHY_REF>, <&cru PCLK_MIPI_DSI0>, 1487 <&cru SCLK_DPHY_TX0_CFG>; 1488 clock-names = "ref", "pclk", "phy_cfg"; 1489 rockchip,grf = <&grf>; 1490 #address-cells = <1>; 1491 #size-cells = <0>; 1492 status = "disabled"; 1493 ports { 1494 reg = <1>; 1495 mipi_in: port { 1496 #address-cells = <1>; 1497 #size-cells = <0>; 1498 mipi_in_vopb: endpoint@0 { 1499 reg = <0>; 1500 remote-endpoint = <&vopb_out_mipi>; 1501 }; 1502 mipi_in_vopl: endpoint@1 { 1503 reg = <1>; 1504 remote-endpoint = <&vopl_out_mipi>; 1505 }; 1506 }; 1507 }; 1508 }; 1509 1510 pinctrl: pinctrl { 1511 u-boot,dm-pre-reloc; 1512 compatible = "rockchip,rk3399-pinctrl"; 1513 rockchip,grf = <&grf>; 1514 rockchip,pmu = <&pmugrf>; 1515 #address-cells = <2>; 1516 #size-cells = <2>; 1517 ranges; 1518 1519 gpio0: gpio0@ff720000 { 1520 compatible = "rockchip,gpio-bank"; 1521 reg = <0x0 0xff720000 0x0 0x100>; 1522 clocks = <&pmucru PCLK_GPIO0_PMU>; 1523 interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH 0>; 1524 1525 gpio-controller; 1526 #gpio-cells = <0x2>; 1527 1528 interrupt-controller; 1529 #interrupt-cells = <0x2>; 1530 }; 1531 1532 gpio1: gpio1@ff730000 { 1533 compatible = "rockchip,gpio-bank"; 1534 reg = <0x0 0xff730000 0x0 0x100>; 1535 clocks = <&pmucru PCLK_GPIO1_PMU>; 1536 interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH 0>; 1537 1538 gpio-controller; 1539 #gpio-cells = <0x2>; 1540 1541 interrupt-controller; 1542 #interrupt-cells = <0x2>; 1543 }; 1544 1545 gpio2: gpio2@ff780000 { 1546 compatible = "rockchip,gpio-bank"; 1547 reg = <0x0 0xff780000 0x0 0x100>; 1548 clocks = <&cru PCLK_GPIO2>; 1549 interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH 0>; 1550 1551 gpio-controller; 1552 #gpio-cells = <0x2>; 1553 1554 interrupt-controller; 1555 #interrupt-cells = <0x2>; 1556 }; 1557 1558 gpio3: gpio3@ff788000 { 1559 compatible = "rockchip,gpio-bank"; 1560 reg = <0x0 0xff788000 0x0 0x100>; 1561 clocks = <&cru PCLK_GPIO3>; 1562 interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH 0>; 1563 1564 gpio-controller; 1565 #gpio-cells = <0x2>; 1566 1567 interrupt-controller; 1568 #interrupt-cells = <0x2>; 1569 }; 1570 1571 gpio4: gpio4@ff790000 { 1572 compatible = "rockchip,gpio-bank"; 1573 reg = <0x0 0xff790000 0x0 0x100>; 1574 clocks = <&cru PCLK_GPIO4>; 1575 interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH 0>; 1576 1577 gpio-controller; 1578 #gpio-cells = <0x2>; 1579 1580 interrupt-controller; 1581 #interrupt-cells = <0x2>; 1582 }; 1583 1584 pcfg_pull_up: pcfg-pull-up { 1585 bias-pull-up; 1586 }; 1587 1588 pcfg_pull_down: pcfg-pull-down { 1589 bias-pull-down; 1590 }; 1591 1592 pcfg_pull_none: pcfg-pull-none { 1593 bias-disable; 1594 }; 1595 1596 pcfg_pull_none_12ma: pcfg-pull-none-12ma { 1597 bias-disable; 1598 drive-strength = <12>; 1599 }; 1600 1601 pcfg_pull_none_13ma: pcfg-pull-none-13ma { 1602 bias-disable; 1603 drive-strength = <13>; 1604 }; 1605 1606 pcfg_pull_none_18ma: pcfg-pull-none-18ma { 1607 bias-disable; 1608 drive-strength = <18>; 1609 }; 1610 1611 pcfg_pull_none_20ma: pcfg-pull-none-20ma { 1612 bias-disable; 1613 drive-strength = <20>; 1614 }; 1615 1616 pcfg_pull_up_2ma: pcfg-pull-up-2ma { 1617 bias-pull-up; 1618 drive-strength = <2>; 1619 }; 1620 1621 pcfg_pull_up_8ma: pcfg-pull-up-8ma { 1622 bias-pull-up; 1623 drive-strength = <8>; 1624 }; 1625 1626 pcfg_pull_up_18ma: pcfg-pull-up-18ma { 1627 bias-pull-up; 1628 drive-strength = <18>; 1629 }; 1630 1631 pcfg_pull_up_20ma: pcfg-pull-up-20ma { 1632 bias-pull-up; 1633 drive-strength = <20>; 1634 }; 1635 1636 pcfg_pull_down_4ma: pcfg-pull-down-4ma { 1637 bias-pull-down; 1638 drive-strength = <4>; 1639 }; 1640 1641 pcfg_pull_down_8ma: pcfg-pull-down-8ma { 1642 bias-pull-down; 1643 drive-strength = <8>; 1644 }; 1645 1646 pcfg_pull_down_12ma: pcfg-pull-down-12ma { 1647 bias-pull-down; 1648 drive-strength = <12>; 1649 }; 1650 1651 pcfg_pull_down_18ma: pcfg-pull-down-18ma { 1652 bias-pull-down; 1653 drive-strength = <18>; 1654 }; 1655 1656 pcfg_pull_down_20ma: pcfg-pull-down-20ma { 1657 bias-pull-down; 1658 drive-strength = <20>; 1659 }; 1660 1661 pcfg_output_high: pcfg-output-high { 1662 output-high; 1663 }; 1664 1665 pcfg_output_low: pcfg-output-low { 1666 output-low; 1667 }; 1668 1669 clock { 1670 clk_32k: clk-32k { 1671 rockchip,pins = <0 RK_PA0 RK_FUNC_2 &pcfg_pull_none>; 1672 }; 1673 }; 1674 1675 edp { 1676 edp_hpd: edp-hpd { 1677 rockchip,pins = 1678 <4 RK_PC7 RK_FUNC_2 &pcfg_pull_none>; 1679 }; 1680 }; 1681 1682 gmac { 1683 rgmii_pins: rgmii-pins { 1684 rockchip,pins = 1685 /* mac_txclk */ 1686 <3 RK_PC1 RK_FUNC_1 &pcfg_pull_none_13ma>, 1687 /* mac_rxclk */ 1688 <3 RK_PB6 RK_FUNC_1 &pcfg_pull_none>, 1689 /* mac_mdio */ 1690 <3 RK_PB5 RK_FUNC_1 &pcfg_pull_none>, 1691 /* mac_txen */ 1692 <3 RK_PB4 RK_FUNC_1 &pcfg_pull_none_13ma>, 1693 /* mac_clk */ 1694 <3 RK_PB3 RK_FUNC_1 &pcfg_pull_none>, 1695 /* mac_rxdv */ 1696 <3 RK_PB1 RK_FUNC_1 &pcfg_pull_none>, 1697 /* mac_mdc */ 1698 <3 RK_PB0 RK_FUNC_1 &pcfg_pull_none>, 1699 /* mac_rxd1 */ 1700 <3 RK_PA7 RK_FUNC_1 &pcfg_pull_none>, 1701 /* mac_rxd0 */ 1702 <3 RK_PA6 RK_FUNC_1 &pcfg_pull_none>, 1703 /* mac_txd1 */ 1704 <3 RK_PA5 RK_FUNC_1 &pcfg_pull_none_13ma>, 1705 /* mac_txd0 */ 1706 <3 RK_PA4 RK_FUNC_1 &pcfg_pull_none_13ma>, 1707 /* mac_rxd3 */ 1708 <3 RK_PA3 RK_FUNC_1 &pcfg_pull_none>, 1709 /* mac_rxd2 */ 1710 <3 RK_PA2 RK_FUNC_1 &pcfg_pull_none>, 1711 /* mac_txd3 */ 1712 <3 RK_PA1 RK_FUNC_1 &pcfg_pull_none_13ma>, 1713 /* mac_txd2 */ 1714 <3 RK_PA0 RK_FUNC_1 &pcfg_pull_none_13ma>; 1715 }; 1716 1717 rmii_pins: rmii-pins { 1718 rockchip,pins = 1719 /* mac_mdio */ 1720 <3 RK_PB5 RK_FUNC_1 &pcfg_pull_none>, 1721 /* mac_txen */ 1722 <3 RK_PB4 RK_FUNC_1 &pcfg_pull_none_13ma>, 1723 /* mac_clk */ 1724 <3 RK_PB3 RK_FUNC_1 &pcfg_pull_none>, 1725 /* mac_rxer */ 1726 <3 RK_PB2 RK_FUNC_1 &pcfg_pull_none>, 1727 /* mac_rxdv */ 1728 <3 RK_PB1 RK_FUNC_1 &pcfg_pull_none>, 1729 /* mac_mdc */ 1730 <3 RK_PB0 RK_FUNC_1 &pcfg_pull_none>, 1731 /* mac_rxd1 */ 1732 <3 RK_PA7 RK_FUNC_1 &pcfg_pull_none>, 1733 /* mac_rxd0 */ 1734 <3 RK_PA6 RK_FUNC_1 &pcfg_pull_none>, 1735 /* mac_txd1 */ 1736 <3 RK_PA5 RK_FUNC_1 &pcfg_pull_none_13ma>, 1737 /* mac_txd0 */ 1738 <3 RK_PA4 RK_FUNC_1 &pcfg_pull_none_13ma>; 1739 }; 1740 }; 1741 1742 i2c0 { 1743 i2c0_xfer: i2c0-xfer { 1744 rockchip,pins = 1745 <1 RK_PB7 RK_FUNC_2 &pcfg_pull_none>, 1746 <1 RK_PC0 RK_FUNC_2 &pcfg_pull_none>; 1747 }; 1748 }; 1749 1750 i2c1 { 1751 i2c1_xfer: i2c1-xfer { 1752 rockchip,pins = 1753 <4 RK_PA2 RK_FUNC_1 &pcfg_pull_none>, 1754 <4 RK_PA1 RK_FUNC_1 &pcfg_pull_none>; 1755 }; 1756 }; 1757 1758 i2c2 { 1759 i2c2_xfer: i2c2-xfer { 1760 rockchip,pins = 1761 <2 RK_PA1 RK_FUNC_2 &pcfg_pull_none_12ma>, 1762 <2 RK_PA0 RK_FUNC_2 &pcfg_pull_none_12ma>; 1763 }; 1764 }; 1765 1766 i2c3 { 1767 i2c3_xfer: i2c3-xfer { 1768 rockchip,pins = 1769 <4 RK_PC1 RK_FUNC_1 &pcfg_pull_none>, 1770 <4 RK_PC0 RK_FUNC_1 &pcfg_pull_none>; 1771 }; 1772 }; 1773 1774 i2c4 { 1775 i2c4_xfer: i2c4-xfer { 1776 rockchip,pins = 1777 <1 RK_PB4 RK_FUNC_1 &pcfg_pull_none>, 1778 <1 RK_PB3 RK_FUNC_1 &pcfg_pull_none>; 1779 }; 1780 }; 1781 1782 i2c5 { 1783 i2c5_xfer: i2c5-xfer { 1784 rockchip,pins = 1785 <3 RK_PB3 RK_FUNC_2 &pcfg_pull_none>, 1786 <3 RK_PB2 RK_FUNC_2 &pcfg_pull_none>; 1787 }; 1788 }; 1789 1790 i2c6 { 1791 i2c6_xfer: i2c6-xfer { 1792 rockchip,pins = 1793 <2 RK_PB2 RK_FUNC_2 &pcfg_pull_none>, 1794 <2 RK_PB1 RK_FUNC_2 &pcfg_pull_none>; 1795 }; 1796 }; 1797 1798 i2c7 { 1799 i2c7_xfer: i2c7-xfer { 1800 rockchip,pins = 1801 <2 RK_PB0 RK_FUNC_2 &pcfg_pull_none>, 1802 <2 RK_PA7 RK_FUNC_2 &pcfg_pull_none>; 1803 }; 1804 }; 1805 1806 i2c8 { 1807 i2c8_xfer: i2c8-xfer { 1808 rockchip,pins = 1809 <1 RK_PC5 RK_FUNC_1 &pcfg_pull_none>, 1810 <1 RK_PC4 RK_FUNC_1 &pcfg_pull_none>; 1811 }; 1812 }; 1813 1814 i2s0 { 1815 i2s0_8ch_bus: i2s0-8ch-bus { 1816 rockchip,pins = 1817 <3 RK_PD0 RK_FUNC_1 &pcfg_pull_none>, 1818 <3 RK_PD1 RK_FUNC_1 &pcfg_pull_none>, 1819 <3 RK_PD2 RK_FUNC_1 &pcfg_pull_none>, 1820 <3 RK_PD3 RK_FUNC_1 &pcfg_pull_none>, 1821 <3 RK_PD4 RK_FUNC_1 &pcfg_pull_none>, 1822 <3 RK_PD5 RK_FUNC_1 &pcfg_pull_none>, 1823 <3 RK_PD6 RK_FUNC_1 &pcfg_pull_none>, 1824 <3 RK_PD7 RK_FUNC_1 &pcfg_pull_none>, 1825 <4 RK_PA0 RK_FUNC_1 &pcfg_pull_none>; 1826 }; 1827 }; 1828 1829 i2s1 { 1830 i2s1_2ch_bus: i2s1-2ch-bus { 1831 rockchip,pins = 1832 <4 RK_PA3 RK_FUNC_1 &pcfg_pull_none>, 1833 <4 RK_PA4 RK_FUNC_1 &pcfg_pull_none>, 1834 <4 RK_PA5 RK_FUNC_1 &pcfg_pull_none>, 1835 <4 RK_PA6 RK_FUNC_1 &pcfg_pull_none>, 1836 <4 RK_PA7 RK_FUNC_1 &pcfg_pull_none>; 1837 }; 1838 }; 1839 1840 sdio0 { 1841 sdio0_bus1: sdio0-bus1 { 1842 rockchip,pins = 1843 <2 RK_PC4 RK_FUNC_1 &pcfg_pull_up>; 1844 }; 1845 1846 sdio0_bus4: sdio0-bus4 { 1847 rockchip,pins = 1848 <2 RK_PC4 RK_FUNC_1 &pcfg_pull_up>, 1849 <2 RK_PC5 RK_FUNC_1 &pcfg_pull_up>, 1850 <2 RK_PC6 RK_FUNC_1 &pcfg_pull_up>, 1851 <2 RK_PC7 RK_FUNC_1 &pcfg_pull_up>; 1852 }; 1853 1854 sdio0_cmd: sdio0-cmd { 1855 rockchip,pins = 1856 <2 RK_PD0 RK_FUNC_1 &pcfg_pull_up>; 1857 }; 1858 1859 sdio0_clk: sdio0-clk { 1860 rockchip,pins = 1861 <2 RK_PD1 RK_FUNC_1 &pcfg_pull_none>; 1862 }; 1863 1864 sdio0_cd: sdio0-cd { 1865 rockchip,pins = 1866 <2 RK_PD2 RK_FUNC_1 &pcfg_pull_up>; 1867 }; 1868 1869 sdio0_pwr: sdio0-pwr { 1870 rockchip,pins = 1871 <2 RK_PD3 RK_FUNC_1 &pcfg_pull_up>; 1872 }; 1873 1874 sdio0_bkpwr: sdio0-bkpwr { 1875 rockchip,pins = 1876 <2 RK_PD4 RK_FUNC_1 &pcfg_pull_up>; 1877 }; 1878 1879 sdio0_wp: sdio0-wp { 1880 rockchip,pins = 1881 <0 RK_PA3 RK_FUNC_1 &pcfg_pull_up>; 1882 }; 1883 1884 sdio0_int: sdio0-int { 1885 rockchip,pins = 1886 <0 RK_PA4 RK_FUNC_1 &pcfg_pull_up>; 1887 }; 1888 }; 1889 1890 sdmmc { 1891 sdmmc_bus1: sdmmc-bus1 { 1892 rockchip,pins = 1893 <4 RK_PB0 RK_FUNC_1 &pcfg_pull_up>; 1894 }; 1895 1896 sdmmc_bus4: sdmmc-bus4 { 1897 rockchip,pins = 1898 <4 RK_PB0 RK_FUNC_1 &pcfg_pull_up>, 1899 <4 RK_PB1 RK_FUNC_1 &pcfg_pull_up>, 1900 <4 RK_PB2 RK_FUNC_1 &pcfg_pull_up>, 1901 <4 RK_PB3 RK_FUNC_1 &pcfg_pull_up>; 1902 }; 1903 1904 sdmmc_clk: sdmmc-clk { 1905 rockchip,pins = 1906 <4 RK_PB4 RK_FUNC_1 &pcfg_pull_none>; 1907 }; 1908 1909 sdmmc_cmd: sdmmc-cmd { 1910 rockchip,pins = 1911 <4 RK_PB5 RK_FUNC_1 &pcfg_pull_up>; 1912 }; 1913 1914 sdmmc_cd: sdmcc-cd { 1915 rockchip,pins = 1916 <0 RK_PA7 RK_FUNC_1 &pcfg_pull_up>; 1917 }; 1918 1919 sdmmc_wp: sdmmc-wp { 1920 rockchip,pins = 1921 <0 RK_PB0 RK_FUNC_1 &pcfg_pull_up>; 1922 }; 1923 }; 1924 1925 sleep { 1926 ap_pwroff: ap-pwroff { 1927 rockchip,pins = <1 RK_PA5 RK_FUNC_1 &pcfg_pull_none>; 1928 }; 1929 1930 ddrio_pwroff: ddrio-pwroff { 1931 rockchip,pins = <0 RK_PA1 RK_FUNC_1 &pcfg_pull_none>; 1932 }; 1933 }; 1934 1935 spdif { 1936 spdif_bus: spdif-bus { 1937 rockchip,pins = 1938 <4 RK_PC5 RK_FUNC_1 &pcfg_pull_none>; 1939 }; 1940 1941 spdif_bus_1: spdif-bus-1 { 1942 rockchip,pins = 1943 <3 RK_PC0 RK_FUNC_3 &pcfg_pull_none>; 1944 }; 1945 }; 1946 1947 spi0 { 1948 spi0_clk: spi0-clk { 1949 rockchip,pins = 1950 <3 RK_PA6 RK_FUNC_2 &pcfg_pull_up>; 1951 }; 1952 spi0_cs0: spi0-cs0 { 1953 rockchip,pins = 1954 <3 RK_PA7 RK_FUNC_2 &pcfg_pull_up>; 1955 }; 1956 spi0_cs1: spi0-cs1 { 1957 rockchip,pins = 1958 <3 RK_PB0 RK_FUNC_2 &pcfg_pull_up>; 1959 }; 1960 spi0_tx: spi0-tx { 1961 rockchip,pins = 1962 <3 RK_PA5 RK_FUNC_2 &pcfg_pull_up>; 1963 }; 1964 spi0_rx: spi0-rx { 1965 rockchip,pins = 1966 <3 RK_PA4 RK_FUNC_2 &pcfg_pull_up>; 1967 }; 1968 }; 1969 1970 spi1 { 1971 spi1_clk: spi1-clk { 1972 rockchip,pins = 1973 <1 RK_PB1 RK_FUNC_2 &pcfg_pull_up>; 1974 }; 1975 spi1_cs0: spi1-cs0 { 1976 rockchip,pins = 1977 <1 RK_PB2 RK_FUNC_2 &pcfg_pull_up>; 1978 }; 1979 spi1_rx: spi1-rx { 1980 rockchip,pins = 1981 <1 RK_PA7 RK_FUNC_2 &pcfg_pull_up>; 1982 }; 1983 spi1_tx: spi1-tx { 1984 rockchip,pins = 1985 <1 RK_PB0 RK_FUNC_2 &pcfg_pull_up>; 1986 }; 1987 }; 1988 1989 spi2 { 1990 spi2_clk: spi2-clk { 1991 rockchip,pins = 1992 <2 RK_PB3 RK_FUNC_1 &pcfg_pull_up>; 1993 }; 1994 spi2_cs0: spi2-cs0 { 1995 rockchip,pins = 1996 <2 RK_PB4 RK_FUNC_1 &pcfg_pull_up>; 1997 }; 1998 spi2_rx: spi2-rx { 1999 rockchip,pins = 2000 <2 RK_PB1 RK_FUNC_1 &pcfg_pull_up>; 2001 }; 2002 spi2_tx: spi2-tx { 2003 rockchip,pins = 2004 <2 RK_PB2 RK_FUNC_1 &pcfg_pull_up>; 2005 }; 2006 }; 2007 2008 spi3 { 2009 spi3_clk: spi3-clk { 2010 rockchip,pins = 2011 <1 RK_PC1 RK_FUNC_1 &pcfg_pull_up>; 2012 }; 2013 spi3_cs0: spi3-cs0 { 2014 rockchip,pins = 2015 <1 RK_PC2 RK_FUNC_1 &pcfg_pull_up>; 2016 }; 2017 spi3_rx: spi3-rx { 2018 rockchip,pins = 2019 <1 RK_PB7 RK_FUNC_1 &pcfg_pull_up>; 2020 }; 2021 spi3_tx: spi3-tx { 2022 rockchip,pins = 2023 <1 RK_PC0 RK_FUNC_1 &pcfg_pull_up>; 2024 }; 2025 }; 2026 2027 spi4 { 2028 spi4_clk: spi4-clk { 2029 rockchip,pins = 2030 <3 RK_PA2 RK_FUNC_2 &pcfg_pull_up>; 2031 }; 2032 spi4_cs0: spi4-cs0 { 2033 rockchip,pins = 2034 <3 RK_PA3 RK_FUNC_2 &pcfg_pull_up>; 2035 }; 2036 spi4_rx: spi4-rx { 2037 rockchip,pins = 2038 <3 RK_PA0 RK_FUNC_2 &pcfg_pull_up>; 2039 }; 2040 spi4_tx: spi4-tx { 2041 rockchip,pins = 2042 <3 RK_PA1 RK_FUNC_2 &pcfg_pull_up>; 2043 }; 2044 }; 2045 2046 spi5 { 2047 spi5_clk: spi5-clk { 2048 rockchip,pins = 2049 <2 RK_PC6 RK_FUNC_2 &pcfg_pull_up>; 2050 }; 2051 spi5_cs0: spi5-cs0 { 2052 rockchip,pins = 2053 <2 RK_PC7 RK_FUNC_2 &pcfg_pull_up>; 2054 }; 2055 spi5_rx: spi5-rx { 2056 rockchip,pins = 2057 <2 RK_PC4 RK_FUNC_2 &pcfg_pull_up>; 2058 }; 2059 spi5_tx: spi5-tx { 2060 rockchip,pins = 2061 <2 RK_PC5 RK_FUNC_2 &pcfg_pull_up>; 2062 }; 2063 }; 2064 2065 tsadc { 2066 otp_gpio: otp-gpio { 2067 rockchip,pins = <1 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>; 2068 }; 2069 2070 otp_out: otp-out { 2071 rockchip,pins = <1 RK_PA6 RK_FUNC_1 &pcfg_pull_none>; 2072 }; 2073 }; 2074 2075 uart0 { 2076 uart0_xfer: uart0-xfer { 2077 rockchip,pins = 2078 <2 RK_PC0 RK_FUNC_1 &pcfg_pull_up>, 2079 <2 RK_PC1 RK_FUNC_1 &pcfg_pull_none>; 2080 }; 2081 2082 uart0_cts: uart0-cts { 2083 rockchip,pins = 2084 <2 RK_PC2 RK_FUNC_1 &pcfg_pull_none>; 2085 }; 2086 2087 uart0_rts: uart0-rts { 2088 rockchip,pins = 2089 <2 RK_PC3 RK_FUNC_1 &pcfg_pull_none>; 2090 }; 2091 }; 2092 2093 uart1 { 2094 uart1_xfer: uart1-xfer { 2095 rockchip,pins = 2096 <3 RK_PB4 RK_FUNC_2 &pcfg_pull_up>, 2097 <3 RK_PB5 RK_FUNC_2 &pcfg_pull_none>; 2098 }; 2099 }; 2100 2101 uart2a { 2102 uart2a_xfer: uart2a-xfer { 2103 rockchip,pins = 2104 <4 RK_PB0 RK_FUNC_2 &pcfg_pull_up>, 2105 <4 RK_PB1 RK_FUNC_2 &pcfg_pull_none>; 2106 }; 2107 }; 2108 2109 uart2b { 2110 uart2b_xfer: uart2b-xfer { 2111 rockchip,pins = 2112 <4 RK_PC0 RK_FUNC_2 &pcfg_pull_up>, 2113 <4 RK_PC1 RK_FUNC_2 &pcfg_pull_none>; 2114 }; 2115 }; 2116 2117 uart2c { 2118 uart2c_xfer: uart2c-xfer { 2119 rockchip,pins = 2120 <4 RK_PC3 RK_FUNC_1 &pcfg_pull_up>, 2121 <4 RK_PC4 RK_FUNC_1 &pcfg_pull_none>; 2122 }; 2123 }; 2124 2125 uart3 { 2126 uart3_xfer: uart3-xfer { 2127 rockchip,pins = 2128 <3 RK_PB6 RK_FUNC_2 &pcfg_pull_up>, 2129 <3 RK_PB7 RK_FUNC_2 &pcfg_pull_none>; 2130 }; 2131 2132 uart3_cts: uart3-cts { 2133 rockchip,pins = 2134 <3 RK_PC2 RK_FUNC_2 &pcfg_pull_none>; 2135 }; 2136 2137 uart3_rts: uart3-rts { 2138 rockchip,pins = 2139 <3 RK_PC3 RK_FUNC_2 &pcfg_pull_none>; 2140 }; 2141 }; 2142 2143 uart4 { 2144 uart4_xfer: uart4-xfer { 2145 rockchip,pins = 2146 <1 RK_PA7 RK_FUNC_1 &pcfg_pull_up>, 2147 <1 RK_PB0 RK_FUNC_1 &pcfg_pull_none>; 2148 }; 2149 }; 2150 2151 uarthdcp { 2152 uarthdcp_xfer: uarthdcp-xfer { 2153 rockchip,pins = 2154 <4 RK_PC5 RK_FUNC_2 &pcfg_pull_up>, 2155 <4 RK_PC6 RK_FUNC_2 &pcfg_pull_none>; 2156 }; 2157 }; 2158 2159 pwm0 { 2160 pwm0_pin: pwm0-pin { 2161 rockchip,pins = 2162 <4 RK_PC2 RK_FUNC_1 &pcfg_pull_none>; 2163 }; 2164 2165 vop0_pwm_pin: vop0-pwm-pin { 2166 rockchip,pins = 2167 <4 RK_PC2 RK_FUNC_2 &pcfg_pull_none>; 2168 }; 2169 }; 2170 2171 pwm1 { 2172 pwm1_pin: pwm1-pin { 2173 rockchip,pins = 2174 <4 RK_PC6 RK_FUNC_1 &pcfg_pull_none>; 2175 }; 2176 2177 vop1_pwm_pin: vop1-pwm-pin { 2178 rockchip,pins = 2179 <4 RK_PC2 RK_FUNC_3 &pcfg_pull_none>; 2180 }; 2181 }; 2182 2183 pwm2 { 2184 pwm2_pin: pwm2-pin { 2185 rockchip,pins = 2186 <1 RK_PC3 RK_FUNC_1 &pcfg_pull_none>; 2187 }; 2188 }; 2189 2190 pwm3a { 2191 pwm3a_pin: pwm3a-pin { 2192 rockchip,pins = 2193 <0 RK_PA6 RK_FUNC_1 &pcfg_pull_none>; 2194 }; 2195 }; 2196 2197 pwm3b { 2198 pwm3b_pin: pwm3b-pin { 2199 rockchip,pins = 2200 <1 RK_PB6 RK_FUNC_1 &pcfg_pull_none>; 2201 }; 2202 }; 2203 2204 hdmi { 2205 hdmi_i2c_xfer: hdmi-i2c-xfer { 2206 rockchip,pins = 2207 <4 RK_PC1 RK_FUNC_3 &pcfg_pull_none>, 2208 <4 RK_PC0 RK_FUNC_3 &pcfg_pull_none>; 2209 }; 2210 2211 hdmi_cec: hdmi-cec { 2212 rockchip,pins = 2213 <4 RK_PC7 RK_FUNC_1 &pcfg_pull_none>; 2214 }; 2215 }; 2216 2217 pcie { 2218 pcie_clkreqn: pci-clkreqn { 2219 rockchip,pins = 2220 <2 RK_PD2 RK_FUNC_2 &pcfg_pull_none>; 2221 }; 2222 2223 pcie_clkreqnb: pci-clkreqnb { 2224 rockchip,pins = 2225 <4 RK_PD0 RK_FUNC_1 &pcfg_pull_none>; 2226 }; 2227 2228 pcie_clkreqn_cpm: pci-clkreqn-cpm { 2229 rockchip,pins = 2230 <2 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>; 2231 }; 2232 2233 pcie_clkreqnb_cpm: pci-clkreqnb-cpm { 2234 rockchip,pins = 2235 <4 RK_PD0 RK_FUNC_GPIO &pcfg_pull_none>; 2236 }; 2237 }; 2238 2239 }; 2240}; 2241