1// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2/* 3 * Copyright (c) 2023 Rockchip Electronics Co., Ltd. 4 */ 5 6#include <dt-bindings/clock/rockchip,rk3506-cru.h> 7#include <dt-bindings/gpio/gpio.h> 8#include <dt-bindings/interrupt-controller/irq.h> 9#include <dt-bindings/interrupt-controller/arm-gic.h> 10#include <dt-bindings/pinctrl/rockchip.h> 11#include <dt-bindings/soc/rockchip,boot-mode.h> 12 13/ { 14 #address-cells = <1>; 15 #size-cells = <1>; 16 17 compatible = "rockchip,rk3506"; 18 19 interrupt-parent = <&gic>; 20 21 aliases { 22 ethernet0 = &gmac0; 23 ethernet1 = &gmac1; 24 gpio0 = &gpio0; 25 gpio1 = &gpio1; 26 gpio2 = &gpio2; 27 gpio3 = &gpio3; 28 gpio4 = &gpio4; 29 i2c0 = &i2c0; 30 i2c1 = &i2c1; 31 i2c2 = &i2c2; 32 serial0 = &uart0; 33 serial1 = &uart1; 34 serial2 = &uart2; 35 serial3 = &uart3; 36 serial4 = &uart4; 37 serial5 = &uart5; 38 spi0 = &spi0; 39 spi1 = &spi1; 40 spi2 = &fspi; 41 spi3 = &flexbus_fspi; 42 }; 43 44 clocks { 45 compatible = "simple-bus"; 46 #address-cells = <1>; 47 #size-cells = <1>; 48 ranges; 49 50 clk_rc: clk-rc { 51 compatible = "fixed-clock"; 52 #clock-cells = <0>; 53 clock-frequency = <400000>; 54 clock-output-names = "clk_rc"; 55 }; 56 57 xin24m: xin24m { 58 compatible = "fixed-clock"; 59 #clock-cells = <0>; 60 clock-frequency = <24000000>; 61 clock-output-names = "xin24m"; 62 }; 63 64 xin32k: xin32k { 65 compatible = "fixed-clock"; 66 #clock-cells = <0>; 67 clock-frequency = <32768>; 68 clock-output-names = "xin32k"; 69 }; 70 71 mclkin_sai0: mclkin-sai0 { 72 compatible = "fixed-clock"; 73 #clock-cells = <0>; 74 clock-frequency = <0>; 75 clock-output-names = "sai0_mclk_in"; 76 }; 77 78 mclkin_sai1: mclkin-sai1 { 79 compatible = "fixed-clock"; 80 #clock-cells = <0>; 81 clock-frequency = <0>; 82 clock-output-names = "sai1_mclk_in"; 83 }; 84 85 mclkin_sai2: mclkin-sai2 { 86 compatible = "fixed-clock"; 87 #clock-cells = <0>; 88 clock-frequency = <0>; 89 clock-output-names = "sai2_mclk_in"; 90 }; 91 92 mclkin_sai3: mclkin-sai3 { 93 compatible = "fixed-clock"; 94 #clock-cells = <0>; 95 clock-frequency = <0>; 96 clock-output-names = "sai3_mclk_in"; 97 }; 98 99 mclkout_sai0: mclkout-sai0@ff910004 { 100 compatible = "rockchip,clk-out"; 101 reg = <0xff910004 0x4>; 102 clocks = <&cru MCLK_OUT_SAI0>; 103 #clock-cells = <0>; 104 clock-output-names = "mclk_sai0_to_io"; 105 rockchip,bit-shift = <8>; 106 }; 107 108 mclkout_sai1: mclkout-sai1@ff910004 { 109 compatible = "rockchip,clk-out"; 110 reg = <0xff910004 0x4>; 111 clocks = <&cru MCLK_OUT_SAI1>; 112 #clock-cells = <0>; 113 clock-output-names = "mclk_sai1_to_io"; 114 rockchip,bit-shift = <9>; 115 }; 116 117 mclkout_sai2: mclkout-sai2@ff288004 { 118 compatible = "rockchip,clk-out"; 119 reg = <0xff288004 0x4>; 120 clocks = <&cru MCLK_OUT_SAI2>; 121 #clock-cells = <0>; 122 clock-output-names = "mclk_sai2_to_io"; 123 rockchip,bit-shift = <2>; 124 }; 125 126 mclkout_sai3: mclkout-sai3@ff288004 { 127 compatible = "rockchip,clk-out"; 128 reg = <0xff288004 0x4>; 129 clocks = <&cru MCLK_OUT_SAI3>; 130 #clock-cells = <0>; 131 clock-output-names = "mclk_sai3_to_io"; 132 rockchip,bit-shift = <3>; 133 }; 134 135 pvtpll_core: pvtpll-core@ff840000 { 136 compatible = "rockchip,rk3506-core-pvtpll", "syscon"; 137 reg = <0xff840000 0x100>; 138 #clock-cells = <0>; 139 clock-output-names = "clk_core_pvtpll"; 140 assigned-clocks = <&pvtpll_core>; 141 assigned-clock-rates = <1200000000>; 142 }; 143 }; 144 145 cpus { 146 #address-cells = <1>; 147 #size-cells = <0>; 148 149 cpu0: cpu@f00 { 150 device_type = "cpu"; 151 compatible = "arm,cortex-a7"; 152 reg = <0xf00>; 153 enable-method = "psci"; 154 clocks = <&cru ARMCLK>; 155 operating-points-v2 = <&cpu0_opp_table>; 156 }; 157 158 cpu1: cpu@f01 { 159 device_type = "cpu"; 160 compatible = "arm,cortex-a7"; 161 reg = <0xf01>; 162 enable-method = "psci"; 163 clocks = <&cru ARMCLK>; 164 operating-points-v2 = <&cpu0_opp_table>; 165 }; 166 167 cpu2: cpu@f02 { 168 device_type = "cpu"; 169 compatible = "arm,cortex-a7"; 170 reg = <0xf02>; 171 enable-method = "psci"; 172 clocks = <&cru ARMCLK>; 173 operating-points-v2 = <&cpu0_opp_table>; 174 }; 175 }; 176 177 cpu0_opp_table: cpu0-opp-table { 178 compatible = "operating-points-v2"; 179 opp-shared; 180 181 nvmem-cells = <&cpu_leakage>; 182 nvmem-cell-names = "leakage"; 183 184 rockchip,pvtm-voltage-sel = < 185 0 1584 0 186 1585 1619 1 187 1620 1654 2 188 1655 1689 3 189 1690 1724 4 190 1725 1759 5 191 1760 1794 6 192 1795 9999 7 193 >; 194 rockchip,pvtm-pvtpll; 195 rockchip,pvtm-offset = <0x18>; 196 rockchip,pvtm-sample-time = <500>; 197 rockchip,pvtm-freq = <1608000>; 198 rockchip,pvtm-volt = <1000000>; 199 rockchip,pvtm-ref-temp = <40>; 200 rockchip,pvtm-temp-prop = <0 0>; 201 rockchip,pvtm-thermal-zone = "soc-thermal"; 202 rockchip,grf = <&pvtpll_core>; 203 rockchip,temp-hysteresis = <5000>; 204 rockchip,low-temp = <10000>; 205 rockchip,low-temp-min-volt = <900000>; 206 207 opp-600000000 { 208 opp-hz = /bits/ 64 <600000000>; 209 opp-microvolt = <850000 850000 1000000>; 210 clock-latency-ns = <40000>; 211 opp-suspend; 212 }; 213 opp-800000000 { 214 opp-hz = /bits/ 64 <800000000>; 215 opp-microvolt = <850000 850000 1000000>; 216 clock-latency-ns = <40000>; 217 }; 218 opp-1008000000 { 219 opp-hz = /bits/ 64 <1008000000>; 220 opp-microvolt = <850000 850000 1000000>; 221 opp-microvolt-L0 = <875000 875000 1000000>; 222 clock-latency-ns = <40000>; 223 }; 224 opp-1200000000 { 225 opp-hz = /bits/ 64 <1200000000>; 226 opp-microvolt = <850000 850000 1000000>; 227 opp-microvolt-L0 = <875000 875000 1000000>; 228 clock-latency-ns = <40000>; 229 }; 230 opp-1296000000 { 231 opp-hz = /bits/ 64 <1296000000>; 232 opp-microvolt = <900000 900000 1000000>; 233 opp-microvolt-L0 = <900000 900000 1000000>; 234 opp-microvolt-L1 = <887500 887500 1000000>; 235 opp-microvolt-L2 = <875000 875000 1000000>; 236 opp-microvolt-L3 = <862500 862500 1000000>; 237 opp-microvolt-L4 = <850000 850000 1000000>; 238 opp-microvolt-L5 = <850000 850000 1000000>; 239 opp-microvolt-L6 = <850000 850000 1000000>; 240 opp-microvolt-L7 = <850000 850000 1000000>; 241 clock-latency-ns = <40000>; 242 }; 243 opp-1416000000 { 244 opp-hz = /bits/ 64 <1416000000>; 245 opp-microvolt = <937500 937500 1000000>; 246 opp-microvolt-L0 = <937500 937500 1000000>; 247 opp-microvolt-L1 = <925000 925000 1000000>; 248 opp-microvolt-L2 = <912500 912500 1000000>; 249 opp-microvolt-L3 = <900000 900000 1000000>; 250 opp-microvolt-L4 = <887500 887500 1000000>; 251 opp-microvolt-L5 = <875000 875000 1000000>; 252 opp-microvolt-L6 = <862500 862500 1000000>; 253 opp-microvolt-L7 = <850000 850000 1000000>; 254 clock-latency-ns = <40000>; 255 }; 256 opp-1512000000 { 257 opp-hz = /bits/ 64 <1512000000>; 258 opp-microvolt = <975000 975000 1000000>; 259 opp-microvolt-L0 = <975000 975000 1000000>; 260 opp-microvolt-L1 = <962500 962500 1000000>; 261 opp-microvolt-L2 = <950000 950000 1000000>; 262 opp-microvolt-L3 = <937500 937500 1000000>; 263 opp-microvolt-L4 = <925000 925000 1000000>; 264 opp-microvolt-L5 = <912500 912000 1000000>; 265 opp-microvolt-L6 = <900000 900000 1000000>; 266 opp-microvolt-L7 = <887500 887500 1000000>; 267 clock-latency-ns = <40000>; 268 }; 269 }; 270 271 arm_pmu: arm-pmu { 272 compatible = "arm,cortex-a7-pmu"; 273 interrupts = <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>, 274 <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>, 275 <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>; 276 interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>; 277 }; 278 279 cpuinfo { 280 compatible = "rockchip,cpuinfo"; 281 nvmem-cells = <&otp_id>, <&otp_cpu_version>, <&cpu_code>; 282 nvmem-cell-names = "id", "cpu-version", "cpu-code"; 283 }; 284 285 display_subsystem: display-subsystem { 286 compatible = "rockchip,display-subsystem"; 287 ports = <&vop_out>; 288 status = "disabled"; 289 290 route { 291 route_dsi: route-dsi { 292 status = "disabled"; 293 logo,uboot = "logo.bmp"; 294 logo,kernel = "logo_kernel.bmp"; 295 logo,mode = "center"; 296 charge_logo,mode = "center"; 297 connect = <&vop_out_dsi>; 298 }; 299 300 route_rgb: route-rgb { 301 status = "disabled"; 302 logo,uboot = "logo.bmp"; 303 logo,kernel = "logo_kernel.bmp"; 304 logo,mode = "center"; 305 charge_logo,mode = "center"; 306 connect = <&vop_out_rgb>; 307 }; 308 }; 309 }; 310 311 psci: psci { 312 compatible = "arm,psci-1.0"; 313 method = "smc"; 314 }; 315 316 rockchip_system_monitor: rockchip-system-monitor { 317 compatible = "rockchip,system-monitor"; 318 319 rockchip,thermal-zone = "soc-thermal"; 320 }; 321 322 thermal_zones: thermal-zones { 323 soc_thermal: soc-thermal { 324 polling-delay-passive = <20>; /* milliseconds */ 325 polling-delay = <1000>; /* milliseconds */ 326 thermal-sensors = <&tsadc 0>; 327 trips { 328 soc_crit: soc-crit { 329 /* millicelsius */ 330 temperature = <115000>; 331 /* millicelsius */ 332 hysteresis = <2000>; 333 type = "critical"; 334 }; 335 }; 336 }; 337 }; 338 339 timer { 340 compatible = "arm,armv7-timer"; 341 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(3) | IRQ_TYPE_LEVEL_HIGH)>, 342 <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(3) | IRQ_TYPE_LEVEL_HIGH)>, 343 <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(3) | IRQ_TYPE_LEVEL_HIGH)>, 344 <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(3) | IRQ_TYPE_LEVEL_HIGH)>; 345 clock-frequency = <24000000>; 346 }; 347 348 dmac0: dma-controller@ff000000 { 349 compatible = "arm,pl330", "arm,primecell"; 350 reg = <0xff000000 0x4000>; 351 interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>, 352 <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>; 353 clocks = <&cru ACLK_DMAC0>; 354 clock-names = "apb_pclk"; 355 #dma-cells = <5>; 356 arm,pl330-periph-burst; 357 }; 358 359 dmac1: dma-controller@ff008000 { 360 compatible = "arm,pl330", "arm,primecell"; 361 reg = <0xff008000 0x4000>; 362 interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>, 363 <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>; 364 clocks = <&cru ACLK_DMAC1>; 365 clock-names = "apb_pclk"; 366 #dma-cells = <5>; 367 arm,pl330-periph-burst; 368 }; 369 370 i2c0: i2c@ff040000 { 371 compatible = "rockchip,rk3506-i2c", "rockchip,rk3399-i2c"; 372 reg = <0xff040000 0x1000>; 373 interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>; 374 #address-cells = <1>; 375 #size-cells = <0>; 376 clocks = <&cru CLK_I2C0>, <&cru PCLK_I2C0>; 377 clock-names = "i2c", "pclk"; 378 status = "disabled"; 379 }; 380 381 i2c1: i2c@ff050000 { 382 compatible = "rockchip,rk3506-i2c", "rockchip,rk3399-i2c"; 383 reg = <0xff050000 0x1000>; 384 interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>; 385 #address-cells = <1>; 386 #size-cells = <0>; 387 clocks = <&cru CLK_I2C1>, <&cru PCLK_I2C1>; 388 clock-names = "i2c", "pclk"; 389 status = "disabled"; 390 }; 391 392 i2c2: i2c@ff060000 { 393 compatible = "rockchip,rk3506-i2c", "rockchip,rk3399-i2c"; 394 reg = <0xff060000 0x1000>; 395 interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>; 396 #address-cells = <1>; 397 #size-cells = <0>; 398 clocks = <&cru CLK_I2C2>, <&cru PCLK_I2C2>; 399 clock-names = "i2c", "pclk"; 400 status = "disabled"; 401 }; 402 403 uart0: serial@ff0a0000 { 404 compatible = "rockchip,rk3506-uart", "snps,dw-apb-uart"; 405 reg = <0xff0a0000 0x100>; 406 interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>; 407 reg-shift = <2>; 408 reg-io-width = <4>; 409 dmas = <&dmac0 4 0xff2880a8 0x03000100 0x0 0x0>, 410 <&dmac0 5 0xff2880a8 0x0c000400 0x0 0x0>; 411 clocks = <&cru SCLK_UART0>, <&cru PCLK_UART0>; 412 clock-names = "baudclk", "apb_pclk"; 413 pinctrl-names = "default"; 414 pinctrl-0 = <&uart0_xfer_pins>; 415 status = "disabled"; 416 }; 417 418 uart1: serial@ff0b0000 { 419 compatible = "rockchip,rk3506-uart", "snps,dw-apb-uart"; 420 reg = <0xff0b0000 0x100>; 421 interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>; 422 reg-shift = <2>; 423 reg-io-width = <4>; 424 dmas = <&dmac0 6 0xff2880a8 0x30001000 0x0 0x0>, 425 <&dmac0 7 0xff2880a8 0xc0004000 0x0 0x0>; 426 clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>; 427 clock-names = "baudclk", "apb_pclk"; 428 status = "disabled"; 429 }; 430 431 uart2: serial@ff0c0000 { 432 compatible = "rockchip,rk3506-uart", "snps,dw-apb-uart"; 433 reg = <0xff0c0000 0x100>; 434 interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>; 435 reg-shift = <2>; 436 reg-io-width = <4>; 437 dmas = <&dmac0 8 0xff2880ac 0x00030001 0x0 0x0>, 438 <&dmac0 9 0xff2880ac 0x000c0004 0x0 0x0>; 439 clocks = <&cru SCLK_UART2>, <&cru PCLK_UART2>; 440 clock-names = "baudclk", "apb_pclk"; 441 status = "disabled"; 442 }; 443 444 uart3: serial@ff0d0000 { 445 compatible = "rockchip,rk3506-uart", "snps,dw-apb-uart"; 446 reg = <0xff0d0000 0x100>; 447 interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>; 448 reg-shift = <2>; 449 reg-io-width = <4>; 450 dmas = <&dmac0 10 0xff2880ac 0x00300010 0x0 0x0>, 451 <&dmac0 11 0xff2880ac 0x00c00040 0x0 0x0>; 452 clocks = <&cru SCLK_UART3>, <&cru PCLK_UART3>; 453 clock-names = "baudclk", "apb_pclk"; 454 status = "disabled"; 455 }; 456 457 uart4: serial@ff0e0000 { 458 compatible = "rockchip,rk3506-uart", "snps,dw-apb-uart"; 459 reg = <0xff0e0000 0x100>; 460 interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>; 461 reg-shift = <2>; 462 reg-io-width = <4>; 463 dmas = <&dmac1 12 0x0 0x0 0x0 0x0>, <&dmac1 13 0x0 0x0 0x0 0x0>; 464 clocks = <&cru SCLK_UART4>, <&cru PCLK_UART4>; 465 clock-names = "baudclk", "apb_pclk"; 466 status = "disabled"; 467 }; 468 469 spi0: spi@ff120000 { 470 compatible = "rockchip,rk3506-spi", "rockchip,rk3066-spi"; 471 reg = <0xff120000 0x1000>; 472 interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>; 473 #address-cells = <1>; 474 #size-cells = <0>; 475 clocks = <&cru CLK_SPI0>, <&cru PCLK_SPI0>; 476 clock-names = "spiclk", "apb_pclk"; 477 dmas = <&dmac0 0 0xff2880a8 0x00030001 0x0 0x0>, 478 <&dmac0 1 0xff2880a8 0x000c0004 0x0 0x0>; 479 dma-names = "tx", "rx"; 480 num-cs = <2>; 481 pinctrl-names = "default"; 482 pinctrl-0 = <&spi0_csn0_pins &spi0_csn1_pins &spi0_clk_pins>; 483 status = "disabled"; 484 }; 485 486 spi1: spi@ff130000 { 487 compatible = "rockchip,rk3506-spi", "rockchip,rk3066-spi"; 488 reg = <0xff130000 0x1000>; 489 interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>; 490 #address-cells = <1>; 491 #size-cells = <0>; 492 clocks = <&cru CLK_SPI1>, <&cru PCLK_SPI1>; 493 clock-names = "spiclk", "apb_pclk"; 494 dmas = <&dmac0 2 0xff2880a8 0x00300010 0x0 0x0>, 495 <&dmac0 3 0xff2880a8 0x00c00040 0x0 0x0>; 496 dma-names = "tx", "rx"; 497 num-cs = <2>; 498 pinctrl-names = "default"; 499 pinctrl-0 = <&spi1_csn0_pins &spi1_csn1_pins &spi1_clk_pins>; 500 status = "disabled"; 501 }; 502 503 pwm1_8ch_0: pwm@ff170000 { 504 compatible = "rockchip,rk3506-pwm", "rockchip,rk3576-pwm"; 505 reg = <0xff170000 0x200>; 506 interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>; 507 clocks = <&cru CLK_PWM1>, <&cru PCLK_PWM1>; 508 clock-names = "pwm", "pclk"; 509 #pwm-cells = <3>; 510 status = "disabled"; 511 }; 512 513 pwm1_8ch_1: pwm@ff171000 { 514 compatible = "rockchip,rk3506-pwm", "rockchip,rk3576-pwm"; 515 reg = <0xff171000 0x200>; 516 interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>; 517 clocks = <&cru CLK_PWM1>, <&cru PCLK_PWM1>; 518 clock-names = "pwm", "pclk"; 519 #pwm-cells = <3>; 520 status = "disabled"; 521 }; 522 523 pwm1_8ch_2: pwm@ff172000 { 524 compatible = "rockchip,rk3506-pwm", "rockchip,rk3576-pwm"; 525 reg = <0xff172000 0x200>; 526 interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>; 527 clocks = <&cru CLK_PWM1>, <&cru PCLK_PWM1>; 528 clock-names = "pwm", "pclk"; 529 #pwm-cells = <3>; 530 status = "disabled"; 531 }; 532 533 pwm1_8ch_3: pwm@ff173000 { 534 compatible = "rockchip,rk3506-pwm", "rockchip,rk3576-pwm"; 535 reg = <0xff173000 0x200>; 536 interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>; 537 clocks = <&cru CLK_PWM1>, <&cru PCLK_PWM1>; 538 clock-names = "pwm", "pclk"; 539 #pwm-cells = <3>; 540 status = "disabled"; 541 }; 542 543 pwm1_8ch_4: pwm@ff174000 { 544 compatible = "rockchip,rk3506-pwm", "rockchip,rk3576-pwm"; 545 reg = <0xff174000 0x200>; 546 interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>; 547 clocks = <&cru CLK_PWM1>, <&cru PCLK_PWM1>; 548 clock-names = "pwm", "pclk"; 549 #pwm-cells = <3>; 550 status = "disabled"; 551 }; 552 553 pwm1_8ch_5: pwm@ff175000 { 554 compatible = "rockchip,rk3506-pwm", "rockchip,rk3576-pwm"; 555 reg = <0xff175000 0x200>; 556 interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>; 557 clocks = <&cru CLK_PWM1>, <&cru PCLK_PWM1>; 558 clock-names = "pwm", "pclk"; 559 #pwm-cells = <3>; 560 status = "disabled"; 561 }; 562 563 pwm1_8ch_6: pwm@ff176000 { 564 compatible = "rockchip,rk3506-pwm", "rockchip,rk3576-pwm"; 565 reg = <0xff176000 0x200>; 566 interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>; 567 clocks = <&cru CLK_PWM1>, <&cru PCLK_PWM1>; 568 clock-names = "pwm", "pclk"; 569 #pwm-cells = <3>; 570 status = "disabled"; 571 }; 572 573 pwm1_8ch_7: pwm@ff177000 { 574 compatible = "rockchip,rk3506-pwm", "rockchip,rk3576-pwm"; 575 reg = <0xff177000 0x200>; 576 interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>; 577 clocks = <&cru CLK_PWM1>, <&cru PCLK_PWM1>; 578 clock-names = "pwm", "pclk"; 579 #pwm-cells = <3>; 580 status = "disabled"; 581 }; 582 583 hwlock0: hwspinlock@ff240000 { 584 compatible = "rockchip,hwspinlock"; 585 reg = <0xff240000 0x20>; 586 #hwlock-cells = <1>; 587 rockchip,hwlock-num-locks = <8>; 588 status = "disabled"; 589 }; 590 591 hwlock1: hwspinlock@ff241000 { 592 compatible = "rockchip,hwspinlock"; 593 reg = <0xff241000 0x20>; 594 #hwlock-cells = <1>; 595 rockchip,hwlock-num-locks = <8>; 596 status = "disabled"; 597 }; 598 599 hwlock2: hwspinlock@ff242000 { 600 compatible = "rockchip,hwspinlock"; 601 reg = <0xff242000 0x20>; 602 #hwlock-cells = <1>; 603 rockchip,hwlock-num-locks = <8>; 604 status = "disabled"; 605 }; 606 607 hwlock3: hwspinlock@ff243000 { 608 compatible = "rockchip,hwspinlock"; 609 reg = <0xff243000 0x20>; 610 #hwlock-cells = <1>; 611 rockchip,hwlock-num-locks = <8>; 612 status = "disabled"; 613 }; 614 615 wdt0: watchdog@ff260000 { 616 compatible = "snps,dw-wdt"; 617 reg = <0xff260000 0x100>; 618 clocks = <&cru TCLK_WDT0>, <&cru PCLK_WDT0>; 619 clock-names = "tclk", "pclk"; 620 interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>; 621 status = "disabled"; 622 }; 623 624 wdt1: watchdog@ff268000 { 625 compatible = "snps,dw-wdt"; 626 reg = <0xff268000 0x100>; 627 clocks = <&cru TCLK_WDT1>, <&cru PCLK_WDT1>; 628 clock-names = "tclk", "pclk"; 629 interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>; 630 status = "disabled"; 631 }; 632 633 grf: syscon@ff288000 { 634 compatible = "rockchip,rk3506-grf", "syscon", "simple-mfd"; 635 reg = <0xff288000 0x4000>; 636 637 rgb: rgb { 638 compatible = "rockchip,rk3506-rgb"; 639 status = "disabled"; 640 641 ports { 642 #address-cells = <1>; 643 #size-cells = <0>; 644 645 port@0 { 646 reg = <0>; 647 #address-cells = <1>; 648 #size-cells = <0>; 649 650 rgb_in_vop: endpoint@0 { 651 reg = <0>; 652 remote-endpoint = <&vop_out_rgb>; 653 }; 654 }; 655 }; 656 }; 657 }; 658 659 mailbox0: mailbox@ff290000 { 660 compatible = "rockchip,rk3506-mailbox", "rockchip,rk3576-mailbox"; 661 reg = <0xff290000 0x20>; 662 interrupts = <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>; 663 clocks = <&cru PCLK_MAILBOX>; 664 clock-names = "pclk_mailbox"; 665 #mbox-cells = <1>; 666 status = "disabled"; 667 }; 668 669 mailbox1: mailbox@ff291000 { 670 compatible = "rockchip,rk3506-mailbox", "rockchip,rk3576-mailbox"; 671 reg = <0xff291000 0x20>; 672 interrupts = <GIC_SPI 139 IRQ_TYPE_LEVEL_HIGH>; 673 clocks = <&cru PCLK_MAILBOX>; 674 clock-names = "pclk_mailbox"; 675 #mbox-cells = <1>; 676 status = "disabled"; 677 }; 678 679 mailbox2: mailbox@ff292000 { 680 compatible = "rockchip,rk3506-mailbox", "rockchip,rk3576-mailbox"; 681 reg = <0xff292000 0x20>; 682 interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>; 683 clocks = <&cru PCLK_MAILBOX>; 684 clock-names = "pclk_mailbox"; 685 #mbox-cells = <1>; 686 status = "disabled"; 687 }; 688 689 mailbox3: mailbox@ff293000 { 690 compatible = "rockchip,rk3506-mailbox", "rockchip,rk3576-mailbox"; 691 reg = <0xff293000 0x20>; 692 interrupts = <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>; 693 clocks = <&cru PCLK_MAILBOX>; 694 clock-names = "pclk_mailbox"; 695 #mbox-cells = <1>; 696 status = "disabled"; 697 }; 698 699 usb2phy: usb2-phy@ff2b0000 { 700 compatible = "rockchip,rk3506-usb2phy"; 701 reg = <0xff2b0000 0x8000>; 702 clocks = <&cru CLK_REF_USBPHY_TOP>, <&cru PCLK_USBPHY>; 703 clock-names = "phyclk", "apb_pclk"; 704 #clock-cells = <0>; 705 rockchip,usbgrf = <&grf>; 706 status = "disabled"; 707 708 u2phy_otg0: otg-port { 709 #phy-cells = <0>; 710 interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>, 711 <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>, 712 <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>; 713 interrupt-names = "otg-bvalid", 714 "otg-id", 715 "linestate"; 716 status = "disabled"; 717 }; 718 719 u2phy_otg1: host-port { 720 #phy-cells = <0>; 721 interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>, 722 <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>, 723 <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>; 724 interrupt-names = "otg-bvalid", 725 "otg-id", 726 "linestate"; 727 status = "disabled"; 728 }; 729 }; 730 731 sai0: sai@ff300000 { 732 compatible = "rockchip,rk3506-sai", "rockchip,sai-v1"; 733 reg = <0xff300000 0x1000>; 734 interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>; 735 clocks = <&cru MCLK_SAI0>, <&cru HCLK_SAI0>; 736 clock-names = "mclk", "hclk"; 737 dmas = <&dmac1 1 0xff2880a4 0x01000000 0x0 0x0>, 738 <&dmac1 0 0xff2880a4 0x00800000 0x0 0x0>; 739 // dmas = <&dmac0 9 0xff2880a4 0x01000100 0xff2880ac 0x000c0000>, 740 // <&dmac0 8 0xff2880a4 0x00800080 0xff2880ac 0x00030002>; 741 dma-names = "tx", "rx"; 742 resets = <&cru SRST_M_SAI0>, <&cru SRST_H_SAI0>; 743 reset-names = "m", "h"; 744 #sound-dai-cells = <0>; 745 sound-name-prefix = "SAI0"; 746 pinctrl-names = "default"; 747 pinctrl-0 = <&sai0_lrck_pins 748 &sai0_sclk_pins 749 &sai0_sdi0_pins 750 &sai0_sdi1_pins 751 &sai0_sdi2_pins 752 &sai0_sdi3_pins 753 &sai0_sdo_pins>; 754 status = "disabled"; 755 }; 756 757 sai1: sai@ff310000 { 758 compatible = "rockchip,rk3506-sai", "rockchip,sai-v1"; 759 reg = <0xff310000 0x1000>; 760 interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>; 761 clocks = <&cru MCLK_SAI1>, <&cru HCLK_SAI1>; 762 clock-names = "mclk", "hclk"; 763 dmas = <&dmac1 3 0xff2880a4 0x04000000 0x0 0x0>, 764 <&dmac1 2 0xff2880a4 0x02000000 0x0 0x0>; 765 // dmas = <&dmac0 11 0xff2880a4 0x04000400 0xff2880ac 0x00c00000>, 766 // <&dmac0 10 0xff2880a4 0x02000200 0xff2880ac 0x00300020>; 767 dma-names = "tx", "rx"; 768 resets = <&cru SRST_M_SAI1>, <&cru SRST_H_SAI1>; 769 reset-names = "m", "h"; 770 #sound-dai-cells = <0>; 771 sound-name-prefix = "SAI1"; 772 pinctrl-names = "default"; 773 pinctrl-0 = <&sai1_lrck_pins 774 &sai1_sclk_pins 775 &sai1_sdi_pins 776 &sai1_sdo0_pins 777 &sai1_sdo1_pins 778 &sai1_sdo2_pins 779 &sai1_sdo3_pins>; 780 status = "disabled"; 781 }; 782 783 can0: can@ff320000 { 784 compatible = "rockchip,rk3506-canfd", "rockchip,rk3576-canfd"; 785 reg = <0xff320000 0x1000>; 786 interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>; 787 clocks = <&cru CLK_CAN0>, <&cru HCLK_CAN0>; 788 clock-names = "baudclk", "apb_pclk"; 789 resets = <&cru SRST_CAN0>, <&cru SRST_H_CAN0>; 790 reset-names = "can", "can-apb"; 791 status = "disabled"; 792 }; 793 794 can1: can@ff330000 { 795 compatible = "rockchip,rk3506-canfd", "rockchip,rk3576-canfd"; 796 reg = <0xff330000 0x1000>; 797 interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>; 798 clocks = <&cru CLK_CAN1>, <&cru HCLK_CAN1>; 799 clock-names = "baudclk", "apb_pclk"; 800 resets = <&cru SRST_CAN1>, <&cru SRST_H_CAN1>; 801 reset-names = "can", "can-apb"; 802 status = "disabled"; 803 }; 804 805 pdm: pdm@ff380000 { 806 compatible = "rockchip,rk3506-pdm", "rockchip,rk3576-pdm"; 807 reg = <0xff380000 0x1000>; 808 interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>; 809 clocks = <&cru MCLK_PDM>, <&cru HCLK_PDM>, <&cru CLKOUT_PDM>; 810 clock-names = "pdm_clk", "pdm_hclk", "pdm_clk_out"; 811 dmas = <&dmac1 9 0xff2880a4 0x00100000 0x0 0x0>; 812 // dmas = <&dmac0 5 0xff2880a4 0x00100010 0xff2880a8 0x0c000800>; 813 dma-names = "rx"; 814 pinctrl-names = "default"; 815 pinctrl-0 = <&rm_io0_pdm_clk0 816 &rm_io0_pdm_clk1 817 &rm_io0_pdm_sdi0 818 &rm_io0_pdm_sdi1 819 &rm_io0_pdm_sdi2 820 &rm_io0_pdm_sdi3>; 821 #sound-dai-cells = <0>; 822 sound-name-prefix = "PDM0"; 823 status = "disabled"; 824 }; 825 826 spdif_tx: spdif-tx@ff3a0000 { 827 compatible = "rockchip,rk3506-spdif", "rockchip,rk3066-spdif"; 828 reg = <0xff3a0000 0x1000>; 829 interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>; 830 clocks = <&cru MCLK_SPDIFTX>, <&cru HCLK_SPDIFTX>; 831 clock-names = "mclk", "hclk"; 832 dmas = <&dmac1 10 0xff2880a4 0x00200000 0xff2880ac 0x03000100>; 833 // dmas = <&dmac0 6 0xff2880a4 0x00200020 0xff2880a8 0x30000000>; 834 dma-names = "tx"; 835 pinctrl-names = "default"; 836 pinctrl-0 = <&rm_io0_spdif_tx>; 837 #sound-dai-cells = <0>; 838 status = "disabled"; 839 }; 840 841 spdif_rx: spdif-rx@ff3b0000 { 842 compatible = "rockchip,rk3506-spdifrx", "rockchip,rk3308-spdifrx"; 843 reg = <0xff3b0000 0x1000>; 844 interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>; 845 clocks = <&cru MCLK_SPDIFRX>, <&cru HCLK_SPDIFRX>; 846 clock-names = "mclk", "hclk"; 847 dmas = <&dmac1 11 0xff2880a4 0x00400000 0xff2880ac 0x0c000400>; 848 // dmas = <&dmac0 7 0xff2880a4 0x00400040 0xff2880a8 0xc0000000>; 849 dma-names = "rx"; 850 resets = <&cru SRST_SPDIFRX>; 851 reset-names = "spdifrx-m"; 852 pinctrl-names = "default"; 853 pinctrl-0 = <&rm_io0_spdif_rx>; 854 #sound-dai-cells = <0>; 855 status = "disabled"; 856 }; 857 858 mmc: mmc@ff480000 { 859 compatible = "rockchip,rk3506-dw-mshc", "rockchip,rk3288-dw-mshc"; 860 reg = <0xff480000 0x4000>; 861 interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>; 862 max-frequency = <150000000>; 863 bus-width = <4>; 864 clocks = <&cru HCLK_SDMMC>, <&cru CCLK_SRC_SDMMC>; 865 clock-names = "biu", "ciu"; 866 fifo-depth = <0x100>; 867 resets = <&cru SRST_H_SDMMC>; 868 reset-names = "reset"; 869 status = "disabled"; 870 }; 871 872 fspi: spi@ff488000 { 873 compatible = "rockchip,fspi"; 874 reg = <0xff488000 0x4000>; 875 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>; 876 clocks = <&cru SCLK_FSPI>, <&cru HCLK_FSPI>; 877 clock-names = "clk_sfc", "hclk_sfc"; 878 #address-cells = <1>; 879 #size-cells = <0>; 880 status = "disabled"; 881 }; 882 883 sai2: sai@ff498000 { 884 compatible = "rockchip,rk3506-sai", "rockchip,sai-v1"; 885 reg = <0xff498000 0x1000>; 886 interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>; 887 clocks = <&cru MCLK_SAI2>, <&cru HCLK_SAI2>; 888 clock-names = "mclk", "hclk"; 889 dmas = <&dmac1 5 0x0 0x0 0x0 0x0>, <&dmac1 4 0x0 0x0 0x0 0x0>; 890 dma-names = "tx", "rx"; 891 resets = <&cru SRST_M_SAI2>, <&cru SRST_H_SAI2>; 892 reset-names = "m", "h"; 893 #sound-dai-cells = <0>; 894 sound-name-prefix = "SAI2"; 895 pinctrl-names = "default"; 896 pinctrl-0 = <&sai2m0_lrck_pins 897 &sai2m0_sclk_pins 898 &sai2m0_sdi_pins 899 &sai2m0_sdo_pins>; 900 status = "disabled"; 901 }; 902 903 sai3: sai@ff4a0000 { 904 compatible = "rockchip,rk3506-sai", "rockchip,sai-v1"; 905 reg = <0xff4a0000 0x1000>; 906 interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>; 907 clocks = <&cru MCLK_SAI3>, <&cru HCLK_SAI3>; 908 clock-names = "mclk", "hclk"; 909 dmas = <&dmac1 6 0x0 0x0 0x0 0x0>, <&dmac1 7 0x0 0x0 0x0 0x0>; 910 dma-names = "tx", "rx"; 911 resets = <&cru SRST_M_SAI3>, <&cru SRST_H_SAI3>; 912 reset-names = "m", "h"; 913 #sound-dai-cells = <0>; 914 sound-name-prefix = "SAI3"; 915 pinctrl-names = "default"; 916 pinctrl-0 = <&sai3_lrck_pins 917 &sai3_sclk_pins 918 &sai3_sdi_pins 919 &sai3_sdo_pins>; 920 status = "disabled"; 921 }; 922 923 sai4: sai@ff4a8000 { 924 compatible = "rockchip,rk3506-sai", "rockchip,sai-v1"; 925 reg = <0xff4a8000 0x1000>; 926 interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>; 927 clocks = <&cru MCLK_SAI4>, <&cru HCLK_SAI4>; 928 clock-names = "mclk", "hclk"; 929 dmas = <&dmac1 8 0x0 0x0 0x0 0x0>; 930 dma-names = "rx"; 931 resets = <&cru SRST_M_SAI4>, <&cru SRST_H_SAI4>; 932 reset-names = "m", "h"; 933 #sound-dai-cells = <0>; 934 sound-name-prefix = "SAI4"; 935 status = "disabled"; 936 }; 937 938 acdcdig_dsm: acdcdig-dsm@ff4b0000 { 939 compatible = "rockchip,rk3506-dsm"; 940 reg = <0xff4b0000 0x1000>; 941 clocks = <&cru MCLK_DSM>, <&cru HCLK_DSM>; 942 clock-names = "dac", "pclk"; 943 resets = <&cru SRST_M_DSM>; 944 reset-names = "reset" ; 945 rockchip,grf = <&grf>; 946 pinctrl-names = "default"; 947 pinctrl-0 = <&dsm_audm0_ln_pins 948 &dsm_audm0_lp_pins 949 &dsm_audm0_rn_pins 950 &dsm_audm0_rp_pins>; 951 #sound-dai-cells = <0>; 952 status = "disabled"; 953 }; 954 955 gmac0: ethernet@ff4c8000 { 956 compatible = "rockchip,rk3506-gmac", "snps,dwmac-4.20a"; 957 reg = <0xff4c8000 0x2000>; 958 interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>, 959 <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>; 960 interrupt-names = "macirq", "eth_wake_irq"; 961 rockchip,grf = <&grf>; 962 clocks = <&cru CLK_MAC0>, <&cru CLK_MAC0_PTP>, 963 <&cru PCLK_MAC0>, <&cru ACLK_MAC0>; 964 clock-names = "stmmaceth", "ptp_ref", 965 "pclk_mac", "aclk_mac"; 966 resets = <&cru SRST_A_MAC0>; 967 reset-names = "stmmaceth"; 968 969 snps,mixed-burst; 970 snps,tso; 971 972 snps,axi-config = <&gmac0_stmmac_axi_setup>; 973 snps,mtl-rx-config = <&gmac0_mtl_rx_setup>; 974 snps,mtl-tx-config = <&gmac0_mtl_tx_setup>; 975 976 phy-mode = "rmii"; 977 status = "disabled"; 978 979 mdio0: mdio { 980 compatible = "snps,dwmac-mdio"; 981 #address-cells = <0x1>; 982 #size-cells = <0x0>; 983 }; 984 985 gmac0_stmmac_axi_setup: stmmac-axi-config { 986 snps,wr_osr_lmt = <4>; 987 snps,rd_osr_lmt = <8>; 988 snps,blen = <0 0 0 0 16 8 4>; 989 }; 990 991 gmac0_mtl_rx_setup: rx-queues-config { 992 snps,rx-queues-to-use = <1>; 993 queue0 { 994 status = "okay"; 995 }; 996 }; 997 998 gmac0_mtl_tx_setup: tx-queues-config { 999 snps,tx-queues-to-use = <1>; 1000 queue0 { 1001 status = "okay"; 1002 }; 1003 }; 1004 }; 1005 1006 gmac1: ethernet@ff4d0000 { 1007 compatible = "rockchip,rk3506-gmac", "snps,dwmac-4.20a"; 1008 reg = <0xff4d0000 0x2000>; 1009 interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>, 1010 <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>; 1011 interrupt-names = "macirq", "eth_wake_irq"; 1012 rockchip,grf = <&grf>; 1013 clocks = <&cru CLK_MAC1>, <&cru CLK_MAC1_PTP>, 1014 <&cru PCLK_MAC1>, <&cru ACLK_MAC1>; 1015 clock-names = "stmmaceth", "ptp_ref", 1016 "pclk_mac", "aclk_mac"; 1017 resets = <&cru SRST_A_MAC1>; 1018 reset-names = "stmmaceth"; 1019 1020 snps,mixed-burst; 1021 snps,tso; 1022 1023 snps,axi-config = <&gmac1_stmmac_axi_setup>; 1024 snps,mtl-rx-config = <&gmac1_mtl_rx_setup>; 1025 snps,mtl-tx-config = <&gmac1_mtl_tx_setup>; 1026 1027 phy-mode = "rmii"; 1028 status = "disabled"; 1029 1030 mdio1: mdio { 1031 compatible = "snps,dwmac-mdio"; 1032 #address-cells = <0x1>; 1033 #size-cells = <0x0>; 1034 }; 1035 1036 gmac1_stmmac_axi_setup: stmmac-axi-config { 1037 snps,wr_osr_lmt = <4>; 1038 snps,rd_osr_lmt = <8>; 1039 snps,blen = <0 0 0 0 16 8 4>; 1040 }; 1041 1042 gmac1_mtl_rx_setup: rx-queues-config { 1043 snps,rx-queues-to-use = <1>; 1044 queue0 { 1045 status = "okay"; 1046 }; 1047 }; 1048 1049 gmac1_mtl_tx_setup: tx-queues-config { 1050 snps,tx-queues-to-use = <1>; 1051 queue0 { 1052 status = "okay"; 1053 }; 1054 }; 1055 }; 1056 1057 ioc_grf: syscon@ff4d8000 { 1058 compatible = "rockchip,rk3506-ioc-grf", "syscon"; 1059 reg = <0xff4d8000 0x8000>; 1060 }; 1061 1062 uart5: serial@ff4e0000 { 1063 compatible = "rockchip,rk3506-uart", "snps,dw-apb-uart"; 1064 reg = <0xff4e0000 0x100>; 1065 interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>; 1066 reg-shift = <2>; 1067 reg-io-width = <4>; 1068 dmas = <&dmac1 14 0x0 0x0 0x0 0x0>, <&dmac1 15 0x0 0x0 0x0 0x0>; 1069 clocks = <&cru SCLK_UART5>, <&cru PCLK_UART5>; 1070 clock-names = "baudclk", "apb_pclk"; 1071 pinctrl-names = "default"; 1072 pinctrl-0 = <&uart5m0_xfer_pins &uart5m0_ctsn_pins &uart5m0_rtsn_pins>; 1073 status = "disabled"; 1074 }; 1075 1076 saradc: adc@ff4e8000 { 1077 compatible = "rockchip,rk3506-saradc", "rockchip,rk3562-saradc"; 1078 reg = <0xff4e8000 0x8000>; 1079 interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>; 1080 #io-channel-cells = <1>; 1081 clocks = <&cru CLK_SARADC>, <&cru PCLK_SARADC>; 1082 clock-names = "saradc", "apb_pclk"; 1083 resets = <&cru SRST_P_SARADC>; 1084 reset-names = "saradc-apb"; 1085 status = "disabled"; 1086 }; 1087 1088 otp: otp@ff4f0000 { 1089 compatible = "rockchip,rk3506-otp"; 1090 reg = <0xff4f0000 0x4000>; 1091 #address-cells = <1>; 1092 #size-cells = <1>; 1093 clocks = <&cru CLK_USER_OTPC_NS>, <&cru CLK_SBPI_OTPC_NS>, 1094 <&cru PCLK_OTPC_NS>; 1095 clock-names = "usr", "sbpi", "apb"; 1096 resets = <&cru SRST_USER_OTPC_NS>, <&cru SRST_SBPI_OTPC_NS>, 1097 <&cru SRST_P_OTPC_NS>; 1098 reset-names = "usr", "sbpi", "apb"; 1099 1100 /* Data cells */ 1101 cpu_code: cpu-code@2 { 1102 reg = <0x02 0x2>; 1103 }; 1104 otp_cpu_version: cpu-version@5 { 1105 reg = <0x05 0x1>; 1106 bits = <3 3>; 1107 }; 1108 otp_id: id@a { 1109 reg = <0x0a 0x10>; 1110 }; 1111 cpu_leakage: cpu-leakage@1e { 1112 reg = <0x1e 0x1>; 1113 }; 1114 log_leakage: log-leakage@1f { 1115 reg = <0x1f 0x1>; 1116 }; 1117 }; 1118 1119 audio_codec: audio-codec@ff4f8000 { 1120 compatible = "rockchip,rk3506-codec"; 1121 reg = <0xff4f8000 0x1000>; 1122 #sound-dai-cells = <0>; 1123 clocks = <&cru PCLK_AUDIO_ADC>, <&cru MCLK_AUDIO_ADC>; 1124 clock-names = "pclk", "mclk"; 1125 resets = <&cru SRST_M_AUDIO_ADC>; 1126 reset-names = "rst"; 1127 status = "disabled"; 1128 }; 1129 1130 gic: interrupt-controller@ff581000 { 1131 compatible = "arm,gic-400"; 1132 reg = <0xff581000 0x1000>, 1133 <0xff582000 0x2000>, 1134 <0xff584000 0x2000>, 1135 <0xff586000 0x2000>; 1136 interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>; 1137 #interrupt-cells = <3>; 1138 interrupt-controller; 1139 #address-cells = <0>; 1140 }; 1141 1142 vop: vop@ff600000 { 1143 compatible = "rockchip,rk3506-vop"; 1144 reg = <0xff600000 0x200>, <0xff600a00 0x400>; 1145 reg-names = "regs", "gamma_lut"; 1146 rockchip,grf = <&grf>; 1147 interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>; 1148 clocks = <&cru ACLK_VOP>, <&cru DCLK_VOP>, <&cru HCLK_VOP>; 1149 clock-names = "aclk_vop", "dclk_vop", "hclk_vop"; 1150 status = "disabled"; 1151 1152 vop_out: port { 1153 #address-cells = <1>; 1154 #size-cells = <0>; 1155 1156 vop_out_rgb: endpoint@0 { 1157 reg = <0>; 1158 remote-endpoint = <&rgb_in_vop>; 1159 }; 1160 1161 vop_out_dsi: endpoint@1 { 1162 reg = <1>; 1163 remote-endpoint = <&dsi_in_vop>; 1164 }; 1165 }; 1166 }; 1167 1168 rga2: rga@ff610000 { 1169 compatible = "rockchip,rga2"; 1170 reg = <0xff610000 0x1000>; 1171 interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>; 1172 interrupt-names = "rga2_irq"; 1173 clocks = <&cru ACLK_RGA>, <&cru HCLK_RGA>, <&cru CLK_CORE_RGA>; 1174 clock-names = "aclk_rga", "hclk_rga", "clk_rga"; 1175 status = "disabled"; 1176 }; 1177 1178 dsi: dsi@ff640000 { 1179 compatible = "rockchip,rk3506-mipi-dsi"; 1180 reg = <0xff640000 0x10000>; 1181 interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>; 1182 clocks = <&cru PCLK_DSI_HOST>; 1183 clock-names = "pclk"; 1184 resets = <&cru SRST_P_DSI_HOST>; 1185 reset-names = "apb"; 1186 phys = <&dsi_dphy>; 1187 phy-names = "dphy"; 1188 rockchip,grf = <&grf>; 1189 #address-cells = <1>; 1190 #size-cells = <0>; 1191 status = "disabled"; 1192 1193 ports { 1194 #address-cells = <1>; 1195 #size-cells = <0>; 1196 1197 dsi_in: port@0 { 1198 reg = <0>; 1199 #address-cells = <1>; 1200 #size-cells = <0>; 1201 dsi_in_vop: endpoint@0 { 1202 reg = <0>; 1203 remote-endpoint = <&vop_out_dsi>; 1204 status = "disabled"; 1205 }; 1206 }; 1207 }; 1208 }; 1209 1210 tsadc: tsadc@ff650000 { 1211 compatible = "rockchip,rk3506-tsadc"; 1212 reg = <0xff650000 0x400>; 1213 interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>; 1214 clocks = <&cru CLK_TSADC>, <&cru PCLK_TSADC>, <&cru CLK_TSADC_TSEN>; 1215 clock-names = "tsadc", "apb_pclk", "tsen"; 1216 assigned-clocks = <&cru CLK_TSADC>, <&cru CLK_TSADC_TSEN>; 1217 assigned-clock-rates = <1000000>, <12000000>; 1218 resets = <&cru SRST_TSADC>, <&cru SRST_P_TSADC>; 1219 reset-names = "tsadc", "tsadc-apb"; 1220 #thermal-sensor-cells = <1>; 1221 rockchip,grf = <&grf>; 1222 rockchip,hw-tshut-temp = <120000>; 1223 rockchip,hw-tshut-mode = <0>; /* tshut mode 0:CRU 1:GPIO */ 1224 rockchip,hw-tshut-polarity = <0>; /* tshut polarity 0:LOW 1:HIGH */ 1225 status = "disabled"; 1226 }; 1227 1228 ioc1: syscon@ff660000 { 1229 compatible = "rockchip,rk3506-ioc1", "syscon"; 1230 reg = <0xff660000 0x10000>; 1231 }; 1232 1233 dsi_dphy: phy@ff670000 { 1234 compatible = "rockchip,rk3506-dsi-dphy"; 1235 reg = <0xff670000 0x10000>, 1236 <0xff640000 0x10000>; 1237 reg-names = "phy", "host"; 1238 clocks = <&cru CLK_REF_DPHY_TOP>, 1239 <&cru PCLK_DPHY>, <&cru PCLK_DSI_HOST>; 1240 clock-names = "ref", "pclk", "pclk_host"; 1241 #clock-cells = <0>; 1242 resets = <&cru SRST_P_DPHY>; 1243 reset-names = "apb"; 1244 #phy-cells = <0>; 1245 status = "disabled"; 1246 }; 1247 1248 crypto: crypto@ff700000 { 1249 compatible = "rockchip,crypto-v4"; 1250 reg = <0xff700000 0x2000>; 1251 interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>; 1252 clocks = <&cru ACLK_CRYPTO_NS>, <&cru HCLK_CRYPTO_NS>, 1253 <&cru CLK_CORE_CRYPTO_NS>, <&cru CLK_PKA_CRYPTO_NS>; 1254 clock-names = "aclk", "hclk", "core", "pka"; 1255 resets = <&cru SRST_H_CRYPTO>; 1256 reset-names = "crypto-rst"; 1257 status = "disabled"; 1258 }; 1259 1260 rng: rng@ff710000 { 1261 compatible = "rockchip,rkrng"; 1262 reg = <0xff710000 0x200>; 1263 interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>; 1264 clocks = <&cru HCLK_RNG>; 1265 clock-names = "hclk_trng"; 1266 resets = <&cru SRST_H_RNG>; 1267 reset-names = "reset"; 1268 status = "disabled"; 1269 }; 1270 1271 usb20_otg0: usb@ff740000 { 1272 compatible = "rockchip,rk3506-usb", "rockchip,rk3066-usb", 1273 "snps,dwc2"; 1274 reg = <0xff740000 0x40000>; 1275 interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>; 1276 clocks = <&cru HCLK_USBOTG0>, <&cru HCLK_USBOTG0_PMU>, 1277 <&cru CLK_USBOTG0_ADP>; 1278 clock-names = "otg", "pmu", "adp"; 1279 dr_mode = "otg"; 1280 phys = <&u2phy_otg0>; 1281 phy-names = "usb2-phy"; 1282 g-np-tx-fifo-size = <16>; 1283 g-rx-fifo-size = <280>; 1284 g-tx-fifo-size = <256 128 128 64 32 16>; 1285 status = "disabled"; 1286 }; 1287 1288 usb20_otg1: usb@ff780000 { 1289 compatible = "rockchip,rk3506-usb", "rockchip,rk3066-usb", 1290 "snps,dwc2"; 1291 reg = <0xff780000 0x40000>; 1292 interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>; 1293 clocks = <&cru HCLK_USBOTG1>, <&cru HCLK_USBOTG1_PMU>, 1294 <&cru CLK_USBOTG1_ADP>; 1295 clock-names = "otg", "pmu", "adp"; 1296 dr_mode = "otg"; 1297 phys = <&u2phy_otg1>; 1298 phy-names = "usb2-phy"; 1299 g-np-tx-fifo-size = <16>; 1300 g-rx-fifo-size = <280>; 1301 g-tx-fifo-size = <256 128 128 64 32 16>; 1302 status = "disabled"; 1303 }; 1304 1305 arm-debug@ff810000 { 1306 compatible = "rockchip,debug"; 1307 reg = <0xff810000 0x1000>, 1308 <0xff812000 0x1000>, 1309 <0xff814000 0x1000>; 1310 }; 1311 1312 flexbus: flexbus@ff880000 { 1313 compatible = "rockchip,rk3506-flexbus"; 1314 reg = <0xff880000 0x200>; 1315 interrupts = <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>; 1316 clocks = <&cru CLK_FLEXBUS_TX>, <&cru CLK_FLEXBUS_RX>, 1317 <&cru ACLK_FLEXBUS>, <&cru HCLK_FLEXBUS>; 1318 clock-names = "tx_clk_flexbus", "rx_clk_flexbus", 1319 "aclk_flexbus", "hclk_flexbus"; 1320 rockchip,grf = <&grf>; 1321 status = "disabled"; 1322 1323 flexbus_adc: adc { 1324 compatible = "rockchip,flexbus-adc"; 1325 #io-channel-cells = <0>; 1326 rockchip,slave-mode; 1327 rockchip,free-sclk; 1328 rockchip,auto-pad; 1329 rockchip,dfs = <16>; 1330 status = "disabled"; 1331 }; 1332 1333 flexbus_cif: cif { 1334 compatible = "rockchip,flexbus-cif-rk3506"; 1335 status = "disabled"; 1336 }; 1337 1338 flexbus_dac: dac { 1339 compatible = "rockchip,flexbus-dac"; 1340 #io-channel-cells = <0>; 1341 rockchip,free-sclk; 1342 rockchip,dfs = <16>; 1343 status = "disabled"; 1344 }; 1345 1346 flexbus_fspi: fspi { 1347 compatible = "rockchip,flexbus-fspi"; 1348 #address-cells = <1>; 1349 #size-cells = <0>; 1350 status = "disabled"; 1351 }; 1352 }; 1353 1354 dsmc_lb_slave: dsmc-lb-slave@ff880000 { 1355 compatible = "rockchip,rk3506-dsmc-lb-slave"; 1356 reg = <0xff880000 0x10000>; 1357 #address-cells = <1>; 1358 #size-cells = <1>; 1359 rockchip,grf = <&grf>; 1360 interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>; 1361 resets = <&cru SRST_DSMC_SLV>, <&cru SRST_A_DSMC_SLV>, 1362 <&cru SRST_H_DSMC_SLV>; 1363 reset-names = "dsmc_slv", "a_dsmc_slv", "h_dsmc_slv"; 1364 clocks = <&cru ACLK_DSMC_SLV>, 1365 <&cru HCLK_DSMC_SLV>; 1366 clock-names = "aclk_dsmc_slv", "hclk_dsmc_slv"; 1367 status = "disabled"; 1368 }; 1369 1370 dsmc: dsmc@ff8b0000 { 1371 compatible = "rockchip,rk3506-dsmc"; 1372 reg = <0xff8b0000 0x10000>; 1373 #address-cells = <1>; 1374 #size-cells = <1>; 1375 rockchip,grf = <&ioc_grf>; 1376 interrupts = <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>; 1377 resets = <&cru SRST_A_DSMC>, <&cru SRST_P_DSMC>; 1378 reset-names = "dsmc", "apb"; 1379 clocks = <&cru CLK_DSMC>, 1380 <&cru ACLK_DSMC>, 1381 <&cru PCLK_DSMC>, 1382 <&cru CLK_DSMC>; 1383 clock-names = "clk_sys", "aclk_dsmc", "pclk", "aclk_root"; 1384 clock-frequency = <100000000>; 1385 dmas = <&dmac0 2 0xff288078 0x80000000 0xff2880a8 0x00300000>, 1386 <&dmac0 3 0xff288078 0x40000000 0xff2880a8 0x00c00000>; 1387 // dmas = <&dmac0 8 0xff288078 0x80008000 0xff2880ac 0x00030000>, 1388 // <&dmac0 10 0xff288078 0x40004000 0xff2880ac 0x00300000>; 1389 dma-names = "req0", "req1"; 1390 status = "disabled"; 1391 slave { 1392 rockchip,dqs-dll = <0x40 0x40 1393 0x40 0x40 1394 0x40 0x40 1395 0x40 0x40>; 1396 rockchip,ranges = <0x0 0xc0000000 0x0 0x2000000>; 1397 rockchip,slave-dev = <&dsmc_slave>; 1398 }; 1399 }; 1400 1401 dsmc_slave: dsmc-slave { 1402 compatible = "rockchip,dsmc-slave"; 1403 rockchip,clk-mode = <0>; 1404 status = "disabled"; 1405 psram { 1406 dsmc_psram0: psram0 { 1407 status = "disabled"; 1408 }; 1409 dsmc_psram1: psram1 { 1410 status = "disabled"; 1411 }; 1412 dsmc_psram2: psram2 { 1413 status = "disabled"; 1414 }; 1415 dsmc_psram3: psram3 { 1416 status = "disabled"; 1417 }; 1418 }; 1419 1420 lb-slave { 1421 dsmc_lb_slave0: lb-slave0 { 1422 status = "disabled"; 1423 dsmc_p0_region: region { 1424 dsmc_p0_region0: region0 { 1425 rockchip,attribute = "Merged FIFO"; 1426 rockchip,ca-addr-width = <0>; 1427 rockchip,dummy-clk-num = <1>; 1428 rockchip,cs0-be-ctrled = <0>; 1429 rockchip,cs0-ctrl = <0>; 1430 status = "disabled"; 1431 }; 1432 dsmc_p0_region1: region1 { 1433 rockchip,attribute = "No-Merge FIFO"; 1434 rockchip,ca-addr-width = <0>; 1435 rockchip,dummy-clk-num = <1>; 1436 rockchip,cs0-be-ctrled = <0>; 1437 rockchip,cs0-ctrl = <0>; 1438 status = "disabled"; 1439 }; 1440 dsmc_p0_region2: region2 { 1441 rockchip,attribute = "DPRA"; 1442 rockchip,ca-addr-width = <0>; 1443 rockchip,dummy-clk-num = <1>; 1444 rockchip,cs0-be-ctrled = <0>; 1445 rockchip,cs0-ctrl = <0>; 1446 status = "disabled"; 1447 }; 1448 dsmc_p0_region3: region3 { 1449 rockchip,attribute = "Register"; 1450 rockchip,ca-addr-width = <0>; 1451 rockchip,dummy-clk-num = <1>; 1452 rockchip,cs0-be-ctrled = <0>; 1453 rockchip,cs0-ctrl = <0>; 1454 status = "disabled"; 1455 }; 1456 }; 1457 }; 1458 dsmc_lb_slave1: lb-slave1 { 1459 status = "disabled"; 1460 dsmc_p1_region: region { 1461 dsmc_p1_region0: region0 { 1462 rockchip,attribute = "Merged FIFO"; 1463 rockchip,ca-addr-width = <0>; 1464 rockchip,dummy-clk-num = <1>; 1465 rockchip,cs0-be-ctrled = <0>; 1466 rockchip,cs0-ctrl = <0>; 1467 status = "disabled"; 1468 }; 1469 dsmc_p1_region1: region1 { 1470 rockchip,attribute = "No-Merge FIFO"; 1471 rockchip,ca-addr-width = <0>; 1472 rockchip,dummy-clk-num = <1>; 1473 rockchip,cs0-be-ctrled = <0>; 1474 rockchip,cs0-ctrl = <0>; 1475 status = "disabled"; 1476 }; 1477 dsmc_p1_region2: region2 { 1478 rockchip,attribute = "DPRA"; 1479 rockchip,ca-addr-width = <0>; 1480 rockchip,dummy-clk-num = <1>; 1481 rockchip,cs0-be-ctrled = <0>; 1482 rockchip,cs0-ctrl = <0>; 1483 status = "disabled"; 1484 }; 1485 dsmc_p1_region3: region3 { 1486 rockchip,attribute = "Register"; 1487 rockchip,ca-addr-width = <0>; 1488 rockchip,dummy-clk-num = <1>; 1489 rockchip,cs0-be-ctrled = <0>; 1490 rockchip,cs0-ctrl = <0>; 1491 status = "disabled"; 1492 }; 1493 }; 1494 }; 1495 dsmc_lb_slave2: lb-slave2 { 1496 status = "disabled"; 1497 dsmc_p2_region: region { 1498 dsmc_p2_region0: region0 { 1499 rockchip,attribute = "Merged FIFO"; 1500 rockchip,ca-addr-width = <0>; 1501 rockchip,dummy-clk-num = <1>; 1502 rockchip,cs0-be-ctrled = <0>; 1503 rockchip,cs0-ctrl = <0>; 1504 status = "disabled"; 1505 }; 1506 dsmc_p2_region1: region1 { 1507 rockchip,attribute = "No-Merge FIFO"; 1508 rockchip,ca-addr-width = <0>; 1509 rockchip,dummy-clk-num = <1>; 1510 rockchip,cs0-be-ctrled = <0>; 1511 rockchip,cs0-ctrl = <0>; 1512 status = "disabled"; 1513 }; 1514 dsmc_p2_region2: region2 { 1515 rockchip,attribute = "DPRA"; 1516 rockchip,ca-addr-width = <0>; 1517 rockchip,dummy-clk-num = <1>; 1518 rockchip,cs0-be-ctrled = <0>; 1519 rockchip,cs0-ctrl = <0>; 1520 status = "disabled"; 1521 }; 1522 dsmc_p2_region3: region3 { 1523 rockchip,attribute = "Register"; 1524 rockchip,ca-addr-width = <0>; 1525 rockchip,dummy-clk-num = <1>; 1526 rockchip,cs0-be-ctrled = <0>; 1527 rockchip,cs0-ctrl = <0>; 1528 status = "disabled"; 1529 }; 1530 }; 1531 }; 1532 dsmc_lb_slave3: lb-slave3 { 1533 status = "disabled"; 1534 dsmc_p3_region: region { 1535 dsmc_p3_region0: region0 { 1536 rockchip,attribute = "Merged FIFO"; 1537 rockchip,ca-addr-width = <0>; 1538 rockchip,dummy-clk-num = <1>; 1539 rockchip,cs0-be-ctrled = <0>; 1540 rockchip,cs0-ctrl = <0>; 1541 status = "disabled"; 1542 }; 1543 dsmc_p3_region1: region1 { 1544 rockchip,attribute = "No-Merge FIFO"; 1545 rockchip,ca-addr-width = <0>; 1546 rockchip,dummy-clk-num = <1>; 1547 rockchip,cs0-be-ctrled = <0>; 1548 rockchip,cs0-ctrl = <0>; 1549 status = "disabled"; 1550 }; 1551 dsmc_p3_region2: region2 { 1552 rockchip,attribute = "DPRA"; 1553 rockchip,ca-addr-width = <0>; 1554 rockchip,dummy-clk-num = <1>; 1555 rockchip,cs0-be-ctrled = <0>; 1556 rockchip,cs0-ctrl = <0>; 1557 status = "disabled"; 1558 }; 1559 dsmc_p3_region3: region3 { 1560 rockchip,attribute = "Register"; 1561 rockchip,ca-addr-width = <0>; 1562 rockchip,dummy-clk-num = <1>; 1563 rockchip,cs0-be-ctrled = <0>; 1564 rockchip,cs0-ctrl = <0>; 1565 status = "disabled"; 1566 }; 1567 }; 1568 }; 1569 }; 1570 }; 1571 1572 grf_pmu: syscon@ff910000 { 1573 compatible = "rockchip,rk3506-grf-pmu", "syscon", "simple-mfd"; 1574 reg = <0xff910000 0x4000>; 1575 1576 reboot_mode: reboot-mode { 1577 compatible = "syscon-reboot-mode"; 1578 offset = <0x200>; 1579 mode-bootloader = <BOOT_BL_DOWNLOAD>; 1580 mode-charge = <BOOT_CHARGING>; 1581 mode-fastboot = <BOOT_FASTBOOT>; 1582 mode-loader = <BOOT_BL_DOWNLOAD>; 1583 mode-normal = <BOOT_NORMAL>; 1584 mode-recovery = <BOOT_RECOVERY>; 1585 mode-ums = <BOOT_UMS>; 1586 mode-panic = <BOOT_PANIC>; 1587 mode-watchdog = <BOOT_WATCHDOG>; 1588 }; 1589 }; 1590 1591 pwm0_4ch_0: pwm@ff930000 { 1592 compatible = "rockchip,rk3506-pwm", "rockchip,rk3576-pwm"; 1593 reg = <0xff930000 0x200>; 1594 interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>; 1595 clocks = <&cru CLK_PWM0>, <&cru PCLK_PWM0>; 1596 clock-names = "pwm", "pclk"; 1597 #pwm-cells = <3>; 1598 status = "disabled"; 1599 }; 1600 1601 pwm0_4ch_1: pwm@ff931000 { 1602 compatible = "rockchip,rk3506-pwm", "rockchip,rk3576-pwm"; 1603 reg = <0xff931000 0x200>; 1604 interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>; 1605 clocks = <&cru CLK_PWM0>, <&cru PCLK_PWM0>; 1606 clock-names = "pwm", "pclk"; 1607 #pwm-cells = <3>; 1608 status = "disabled"; 1609 }; 1610 1611 pwm0_4ch_2: pwm@ff932000 { 1612 compatible = "rockchip,rk3506-pwm", "rockchip,rk3576-pwm"; 1613 reg = <0xff932000 0x200>; 1614 interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>; 1615 clocks = <&cru CLK_PWM0>, <&cru PCLK_PWM0>; 1616 clock-names = "pwm", "pclk"; 1617 #pwm-cells = <3>; 1618 status = "disabled"; 1619 }; 1620 1621 pwm0_4ch_3: pwm@ff933000 { 1622 compatible = "rockchip,rk3506-pwm", "rockchip,rk3576-pwm"; 1623 reg = <0xff933000 0x200>; 1624 interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>; 1625 clocks = <&cru CLK_PWM0>, <&cru PCLK_PWM0>; 1626 clock-names = "pwm", "pclk"; 1627 #pwm-cells = <3>; 1628 status = "disabled"; 1629 }; 1630 1631 ioc_pmu: syscon@ff950000 { 1632 compatible = "rockchip,rk3506-ioc-pmu", "syscon"; 1633 reg = <0xff950000 0x10000>; 1634 }; 1635 1636 cru: clock-controller@ff9a0000 { 1637 compatible = "rockchip,rk3506-cru"; 1638 reg = <0xff9a0000 0x20000>; 1639 rockchip,grf = <&grf>; 1640 #clock-cells = <1>; 1641 #reset-cells = <1>; 1642 }; 1643 1644 pinctrl: pinctrl { 1645 compatible = "rockchip,rk3506-pinctrl"; 1646 rockchip,grf = <&ioc_grf>; 1647 rockchip,ioc1 = <&ioc1>; 1648 rockchip,pmu = <&ioc_pmu>; 1649 rockchip,rmio = <&grf_pmu>; 1650 #address-cells = <1>; 1651 #size-cells = <1>; 1652 ranges; 1653 1654 gpio0: gpio@ff940000 { 1655 compatible = "rockchip,gpio-bank"; 1656 reg = <0xff940000 0x200>; 1657 interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>; 1658 clocks = <&cru PCLK_GPIO0>, <&cru DBCLK_GPIO0>; 1659 1660 gpio-controller; 1661 #gpio-cells = <2>; 1662 gpio-ranges = <&pinctrl 0 0 32>; 1663 interrupt-controller; 1664 #interrupt-cells = <2>; 1665 }; 1666 1667 gpio1: gpio@ff870000 { 1668 compatible = "rockchip,gpio-bank"; 1669 reg = <0xff870000 0x200>; 1670 interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>; 1671 clocks = <&cru PCLK_GPIO1>, <&cru DBCLK_GPIO1>; 1672 1673 gpio-controller; 1674 #gpio-cells = <2>; 1675 gpio-ranges = <&pinctrl 0 32 32>; 1676 interrupt-controller; 1677 #interrupt-cells = <2>; 1678 }; 1679 1680 gpio2: gpio@ff1c0000 { 1681 compatible = "rockchip,gpio-bank"; 1682 reg = <0xff1c0000 0x200>; 1683 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>; 1684 clocks = <&cru PCLK_GPIO2>, <&cru DBCLK_GPIO2>; 1685 1686 gpio-controller; 1687 #gpio-cells = <2>; 1688 gpio-ranges = <&pinctrl 0 64 32>; 1689 interrupt-controller; 1690 #interrupt-cells = <2>; 1691 }; 1692 1693 gpio3: gpio@ff1d0000 { 1694 compatible = "rockchip,gpio-bank"; 1695 reg = <0xff1d0000 0x200>; 1696 interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>; 1697 clocks = <&cru PCLK_GPIO3>, <&cru DBCLK_GPIO3>; 1698 1699 gpio-controller; 1700 #gpio-cells = <2>; 1701 gpio-ranges = <&pinctrl 0 96 32>; 1702 interrupt-controller; 1703 #interrupt-cells = <2>; 1704 }; 1705 1706 gpio4: gpio@ff1e0000 { 1707 compatible = "rockchip,gpio-bank"; 1708 reg = <0xff1e0000 0x200>; 1709 interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>; 1710 clocks = <&cru PCLK_GPIO4>, <&cru DBCLK_GPIO4>; 1711 1712 gpio-controller; 1713 #gpio-cells = <2>; 1714 gpio-ranges = <&pinctrl 0 128 32>; 1715 interrupt-controller; 1716 #interrupt-cells = <2>; 1717 }; 1718 }; 1719}; 1720 1721#include "rk3506-pinctrl.dtsi" 1722#include "rk3506-pinctrl-rmio.dtsi" 1723