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 rockchip,max-dll = <0x17F>; 879 #address-cells = <1>; 880 #size-cells = <0>; 881 status = "disabled"; 882 }; 883 884 sai2: sai@ff498000 { 885 compatible = "rockchip,rk3506-sai", "rockchip,sai-v1"; 886 reg = <0xff498000 0x1000>; 887 interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>; 888 clocks = <&cru MCLK_SAI2>, <&cru HCLK_SAI2>; 889 clock-names = "mclk", "hclk"; 890 dmas = <&dmac1 5 0x0 0x0 0x0 0x0>, <&dmac1 4 0x0 0x0 0x0 0x0>; 891 dma-names = "tx", "rx"; 892 resets = <&cru SRST_M_SAI2>, <&cru SRST_H_SAI2>; 893 reset-names = "m", "h"; 894 #sound-dai-cells = <0>; 895 sound-name-prefix = "SAI2"; 896 pinctrl-names = "default"; 897 pinctrl-0 = <&sai2m0_lrck_pins 898 &sai2m0_sclk_pins 899 &sai2m0_sdi_pins 900 &sai2m0_sdo_pins>; 901 status = "disabled"; 902 }; 903 904 sai3: sai@ff4a0000 { 905 compatible = "rockchip,rk3506-sai", "rockchip,sai-v1"; 906 reg = <0xff4a0000 0x1000>; 907 interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>; 908 clocks = <&cru MCLK_SAI3>, <&cru HCLK_SAI3>; 909 clock-names = "mclk", "hclk"; 910 dmas = <&dmac1 6 0x0 0x0 0x0 0x0>, <&dmac1 7 0x0 0x0 0x0 0x0>; 911 dma-names = "tx", "rx"; 912 resets = <&cru SRST_M_SAI3>, <&cru SRST_H_SAI3>; 913 reset-names = "m", "h"; 914 #sound-dai-cells = <0>; 915 sound-name-prefix = "SAI3"; 916 pinctrl-names = "default"; 917 pinctrl-0 = <&sai3_lrck_pins 918 &sai3_sclk_pins 919 &sai3_sdi_pins 920 &sai3_sdo_pins>; 921 status = "disabled"; 922 }; 923 924 sai4: sai@ff4a8000 { 925 compatible = "rockchip,rk3506-sai", "rockchip,sai-v1"; 926 reg = <0xff4a8000 0x1000>; 927 interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>; 928 clocks = <&cru MCLK_SAI4>, <&cru HCLK_SAI4>; 929 clock-names = "mclk", "hclk"; 930 dmas = <&dmac1 8 0x0 0x0 0x0 0x0>; 931 dma-names = "rx"; 932 resets = <&cru SRST_M_SAI4>, <&cru SRST_H_SAI4>; 933 reset-names = "m", "h"; 934 #sound-dai-cells = <0>; 935 sound-name-prefix = "SAI4"; 936 status = "disabled"; 937 }; 938 939 acdcdig_dsm: acdcdig-dsm@ff4b0000 { 940 compatible = "rockchip,rk3506-dsm"; 941 reg = <0xff4b0000 0x1000>; 942 clocks = <&cru MCLK_DSM>, <&cru HCLK_DSM>; 943 clock-names = "dac", "pclk"; 944 resets = <&cru SRST_M_DSM>; 945 reset-names = "reset" ; 946 rockchip,grf = <&grf>; 947 pinctrl-names = "default"; 948 pinctrl-0 = <&dsm_audm0_ln_pins 949 &dsm_audm0_lp_pins 950 &dsm_audm0_rn_pins 951 &dsm_audm0_rp_pins>; 952 #sound-dai-cells = <0>; 953 status = "disabled"; 954 }; 955 956 gmac0: ethernet@ff4c8000 { 957 compatible = "rockchip,rk3506-gmac", "snps,dwmac-4.20a"; 958 reg = <0xff4c8000 0x2000>; 959 interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>, 960 <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>; 961 interrupt-names = "macirq", "eth_wake_irq"; 962 rockchip,grf = <&grf>; 963 clocks = <&cru CLK_MAC0>, <&cru CLK_MAC0_PTP>, 964 <&cru PCLK_MAC0>, <&cru ACLK_MAC0>; 965 clock-names = "stmmaceth", "ptp_ref", 966 "pclk_mac", "aclk_mac"; 967 resets = <&cru SRST_A_MAC0>; 968 reset-names = "stmmaceth"; 969 970 snps,mixed-burst; 971 snps,tso; 972 973 snps,axi-config = <&gmac0_stmmac_axi_setup>; 974 snps,mtl-rx-config = <&gmac0_mtl_rx_setup>; 975 snps,mtl-tx-config = <&gmac0_mtl_tx_setup>; 976 977 phy-mode = "rmii"; 978 status = "disabled"; 979 980 mdio0: mdio { 981 compatible = "snps,dwmac-mdio"; 982 #address-cells = <0x1>; 983 #size-cells = <0x0>; 984 }; 985 986 gmac0_stmmac_axi_setup: stmmac-axi-config { 987 snps,wr_osr_lmt = <4>; 988 snps,rd_osr_lmt = <8>; 989 snps,blen = <0 0 0 0 16 8 4>; 990 }; 991 992 gmac0_mtl_rx_setup: rx-queues-config { 993 snps,rx-queues-to-use = <1>; 994 queue0 { 995 status = "okay"; 996 }; 997 }; 998 999 gmac0_mtl_tx_setup: tx-queues-config { 1000 snps,tx-queues-to-use = <1>; 1001 queue0 { 1002 status = "okay"; 1003 }; 1004 }; 1005 }; 1006 1007 gmac1: ethernet@ff4d0000 { 1008 compatible = "rockchip,rk3506-gmac", "snps,dwmac-4.20a"; 1009 reg = <0xff4d0000 0x2000>; 1010 interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>, 1011 <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>; 1012 interrupt-names = "macirq", "eth_wake_irq"; 1013 rockchip,grf = <&grf>; 1014 clocks = <&cru CLK_MAC1>, <&cru CLK_MAC1_PTP>, 1015 <&cru PCLK_MAC1>, <&cru ACLK_MAC1>; 1016 clock-names = "stmmaceth", "ptp_ref", 1017 "pclk_mac", "aclk_mac"; 1018 resets = <&cru SRST_A_MAC1>; 1019 reset-names = "stmmaceth"; 1020 1021 snps,mixed-burst; 1022 snps,tso; 1023 1024 snps,axi-config = <&gmac1_stmmac_axi_setup>; 1025 snps,mtl-rx-config = <&gmac1_mtl_rx_setup>; 1026 snps,mtl-tx-config = <&gmac1_mtl_tx_setup>; 1027 1028 phy-mode = "rmii"; 1029 status = "disabled"; 1030 1031 mdio1: mdio { 1032 compatible = "snps,dwmac-mdio"; 1033 #address-cells = <0x1>; 1034 #size-cells = <0x0>; 1035 }; 1036 1037 gmac1_stmmac_axi_setup: stmmac-axi-config { 1038 snps,wr_osr_lmt = <4>; 1039 snps,rd_osr_lmt = <8>; 1040 snps,blen = <0 0 0 0 16 8 4>; 1041 }; 1042 1043 gmac1_mtl_rx_setup: rx-queues-config { 1044 snps,rx-queues-to-use = <1>; 1045 queue0 { 1046 status = "okay"; 1047 }; 1048 }; 1049 1050 gmac1_mtl_tx_setup: tx-queues-config { 1051 snps,tx-queues-to-use = <1>; 1052 queue0 { 1053 status = "okay"; 1054 }; 1055 }; 1056 }; 1057 1058 ioc_grf: syscon@ff4d8000 { 1059 compatible = "rockchip,rk3506-ioc-grf", "syscon"; 1060 reg = <0xff4d8000 0x8000>; 1061 }; 1062 1063 uart5: serial@ff4e0000 { 1064 compatible = "rockchip,rk3506-uart", "snps,dw-apb-uart"; 1065 reg = <0xff4e0000 0x100>; 1066 interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>; 1067 reg-shift = <2>; 1068 reg-io-width = <4>; 1069 dmas = <&dmac1 14 0x0 0x0 0x0 0x0>, <&dmac1 15 0x0 0x0 0x0 0x0>; 1070 clocks = <&cru SCLK_UART5>, <&cru PCLK_UART5>; 1071 clock-names = "baudclk", "apb_pclk"; 1072 pinctrl-names = "default"; 1073 pinctrl-0 = <&uart5m0_xfer_pins &uart5m0_ctsn_pins &uart5m0_rtsn_pins>; 1074 status = "disabled"; 1075 }; 1076 1077 saradc: adc@ff4e8000 { 1078 compatible = "rockchip,rk3506-saradc", "rockchip,rk3562-saradc"; 1079 reg = <0xff4e8000 0x8000>; 1080 interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>; 1081 #io-channel-cells = <1>; 1082 clocks = <&cru CLK_SARADC>, <&cru PCLK_SARADC>; 1083 clock-names = "saradc", "apb_pclk"; 1084 resets = <&cru SRST_P_SARADC>; 1085 reset-names = "saradc-apb"; 1086 status = "disabled"; 1087 }; 1088 1089 otp: otp@ff4f0000 { 1090 compatible = "rockchip,rk3506-otp"; 1091 reg = <0xff4f0000 0x4000>; 1092 #address-cells = <1>; 1093 #size-cells = <1>; 1094 clocks = <&cru CLK_USER_OTPC_NS>, <&cru CLK_SBPI_OTPC_NS>, 1095 <&cru PCLK_OTPC_NS>; 1096 clock-names = "usr", "sbpi", "apb"; 1097 resets = <&cru SRST_USER_OTPC_NS>, <&cru SRST_SBPI_OTPC_NS>, 1098 <&cru SRST_P_OTPC_NS>; 1099 reset-names = "usr", "sbpi", "apb"; 1100 1101 /* Data cells */ 1102 cpu_code: cpu-code@2 { 1103 reg = <0x02 0x2>; 1104 }; 1105 otp_cpu_version: cpu-version@5 { 1106 reg = <0x05 0x1>; 1107 bits = <3 3>; 1108 }; 1109 otp_id: id@a { 1110 reg = <0x0a 0x10>; 1111 }; 1112 cpu_leakage: cpu-leakage@1e { 1113 reg = <0x1e 0x1>; 1114 }; 1115 log_leakage: log-leakage@1f { 1116 reg = <0x1f 0x1>; 1117 }; 1118 }; 1119 1120 audio_codec: audio-codec@ff4f8000 { 1121 compatible = "rockchip,rk3506-codec"; 1122 reg = <0xff4f8000 0x1000>; 1123 #sound-dai-cells = <0>; 1124 clocks = <&cru PCLK_AUDIO_ADC>, <&cru MCLK_AUDIO_ADC>; 1125 clock-names = "pclk", "mclk"; 1126 resets = <&cru SRST_M_AUDIO_ADC>; 1127 reset-names = "rst"; 1128 status = "disabled"; 1129 }; 1130 1131 gic: interrupt-controller@ff581000 { 1132 compatible = "arm,gic-400"; 1133 reg = <0xff581000 0x1000>, 1134 <0xff582000 0x2000>, 1135 <0xff584000 0x2000>, 1136 <0xff586000 0x2000>; 1137 interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>; 1138 #interrupt-cells = <3>; 1139 interrupt-controller; 1140 #address-cells = <0>; 1141 }; 1142 1143 vop: vop@ff600000 { 1144 compatible = "rockchip,rk3506-vop"; 1145 reg = <0xff600000 0x200>, <0xff600a00 0x400>; 1146 reg-names = "regs", "gamma_lut"; 1147 rockchip,grf = <&grf>; 1148 interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>; 1149 clocks = <&cru ACLK_VOP>, <&cru DCLK_VOP>, <&cru HCLK_VOP>; 1150 clock-names = "aclk_vop", "dclk_vop", "hclk_vop"; 1151 status = "disabled"; 1152 1153 vop_out: port { 1154 #address-cells = <1>; 1155 #size-cells = <0>; 1156 1157 vop_out_rgb: endpoint@0 { 1158 reg = <0>; 1159 remote-endpoint = <&rgb_in_vop>; 1160 }; 1161 1162 vop_out_dsi: endpoint@1 { 1163 reg = <1>; 1164 remote-endpoint = <&dsi_in_vop>; 1165 }; 1166 }; 1167 }; 1168 1169 rga2: rga@ff610000 { 1170 compatible = "rockchip,rga2"; 1171 reg = <0xff610000 0x1000>; 1172 interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>; 1173 interrupt-names = "rga2_irq"; 1174 clocks = <&cru ACLK_RGA>, <&cru HCLK_RGA>, <&cru CLK_CORE_RGA>; 1175 clock-names = "aclk_rga", "hclk_rga", "clk_rga"; 1176 status = "disabled"; 1177 }; 1178 1179 dsi: dsi@ff640000 { 1180 compatible = "rockchip,rk3506-mipi-dsi"; 1181 reg = <0xff640000 0x10000>; 1182 interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>; 1183 clocks = <&cru PCLK_DSI_HOST>; 1184 clock-names = "pclk"; 1185 resets = <&cru SRST_P_DSI_HOST>; 1186 reset-names = "apb"; 1187 phys = <&dsi_dphy>; 1188 phy-names = "dphy"; 1189 rockchip,grf = <&grf>; 1190 #address-cells = <1>; 1191 #size-cells = <0>; 1192 status = "disabled"; 1193 1194 ports { 1195 #address-cells = <1>; 1196 #size-cells = <0>; 1197 1198 dsi_in: port@0 { 1199 reg = <0>; 1200 #address-cells = <1>; 1201 #size-cells = <0>; 1202 dsi_in_vop: endpoint@0 { 1203 reg = <0>; 1204 remote-endpoint = <&vop_out_dsi>; 1205 status = "disabled"; 1206 }; 1207 }; 1208 }; 1209 }; 1210 1211 tsadc: tsadc@ff650000 { 1212 compatible = "rockchip,rk3506-tsadc"; 1213 reg = <0xff650000 0x400>; 1214 interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>; 1215 clocks = <&cru CLK_TSADC>, <&cru PCLK_TSADC>, <&cru CLK_TSADC_TSEN>; 1216 clock-names = "tsadc", "apb_pclk", "tsen"; 1217 assigned-clocks = <&cru CLK_TSADC>, <&cru CLK_TSADC_TSEN>; 1218 assigned-clock-rates = <1000000>, <12000000>; 1219 resets = <&cru SRST_TSADC>, <&cru SRST_P_TSADC>; 1220 reset-names = "tsadc", "tsadc-apb"; 1221 #thermal-sensor-cells = <1>; 1222 rockchip,grf = <&grf>; 1223 rockchip,hw-tshut-temp = <120000>; 1224 rockchip,hw-tshut-mode = <0>; /* tshut mode 0:CRU 1:GPIO */ 1225 rockchip,hw-tshut-polarity = <0>; /* tshut polarity 0:LOW 1:HIGH */ 1226 status = "disabled"; 1227 }; 1228 1229 ioc1: syscon@ff660000 { 1230 compatible = "rockchip,rk3506-ioc1", "syscon"; 1231 reg = <0xff660000 0x10000>; 1232 }; 1233 1234 dsi_dphy: phy@ff670000 { 1235 compatible = "rockchip,rk3506-dsi-dphy"; 1236 reg = <0xff670000 0x10000>, 1237 <0xff640000 0x10000>; 1238 reg-names = "phy", "host"; 1239 clocks = <&cru CLK_REF_DPHY_TOP>, 1240 <&cru PCLK_DPHY>, <&cru PCLK_DSI_HOST>; 1241 clock-names = "ref", "pclk", "pclk_host"; 1242 #clock-cells = <0>; 1243 resets = <&cru SRST_P_DPHY>; 1244 reset-names = "apb"; 1245 #phy-cells = <0>; 1246 status = "disabled"; 1247 }; 1248 1249 crypto: crypto@ff700000 { 1250 compatible = "rockchip,crypto-v4"; 1251 reg = <0xff700000 0x2000>; 1252 interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>; 1253 clocks = <&cru ACLK_CRYPTO_NS>, <&cru HCLK_CRYPTO_NS>, 1254 <&cru CLK_CORE_CRYPTO_NS>, <&cru CLK_PKA_CRYPTO_NS>; 1255 clock-names = "aclk", "hclk", "core", "pka"; 1256 resets = <&cru SRST_H_CRYPTO>; 1257 reset-names = "crypto-rst"; 1258 status = "disabled"; 1259 }; 1260 1261 rng: rng@ff710000 { 1262 compatible = "rockchip,rkrng"; 1263 reg = <0xff710000 0x200>; 1264 interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>; 1265 clocks = <&cru HCLK_RNG>; 1266 clock-names = "hclk_trng"; 1267 resets = <&cru SRST_H_RNG>; 1268 reset-names = "reset"; 1269 status = "disabled"; 1270 }; 1271 1272 usb20_otg0: usb@ff740000 { 1273 compatible = "rockchip,rk3506-usb", "rockchip,rk3066-usb", 1274 "snps,dwc2"; 1275 reg = <0xff740000 0x40000>; 1276 interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>; 1277 clocks = <&cru HCLK_USBOTG0>, <&cru HCLK_USBOTG0_PMU>, 1278 <&cru CLK_USBOTG0_ADP>; 1279 clock-names = "otg", "pmu", "adp"; 1280 dr_mode = "otg"; 1281 phys = <&u2phy_otg0>; 1282 phy-names = "usb2-phy"; 1283 g-np-tx-fifo-size = <16>; 1284 g-rx-fifo-size = <280>; 1285 g-tx-fifo-size = <256 128 128 64 32 16>; 1286 status = "disabled"; 1287 }; 1288 1289 usb20_otg1: usb@ff780000 { 1290 compatible = "rockchip,rk3506-usb", "rockchip,rk3066-usb", 1291 "snps,dwc2"; 1292 reg = <0xff780000 0x40000>; 1293 interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>; 1294 clocks = <&cru HCLK_USBOTG1>, <&cru HCLK_USBOTG1_PMU>, 1295 <&cru CLK_USBOTG1_ADP>; 1296 clock-names = "otg", "pmu", "adp"; 1297 dr_mode = "otg"; 1298 phys = <&u2phy_otg1>; 1299 phy-names = "usb2-phy"; 1300 g-np-tx-fifo-size = <16>; 1301 g-rx-fifo-size = <280>; 1302 g-tx-fifo-size = <256 128 128 64 32 16>; 1303 status = "disabled"; 1304 }; 1305 1306 arm-debug@ff810000 { 1307 compatible = "rockchip,debug"; 1308 reg = <0xff810000 0x1000>, 1309 <0xff812000 0x1000>, 1310 <0xff814000 0x1000>; 1311 }; 1312 1313 flexbus: flexbus@ff880000 { 1314 compatible = "rockchip,rk3506-flexbus"; 1315 reg = <0xff880000 0x200>; 1316 interrupts = <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>; 1317 clocks = <&cru CLK_FLEXBUS_TX>, <&cru CLK_FLEXBUS_RX>, 1318 <&cru ACLK_FLEXBUS>, <&cru HCLK_FLEXBUS>; 1319 clock-names = "tx_clk_flexbus", "rx_clk_flexbus", 1320 "aclk_flexbus", "hclk_flexbus"; 1321 rockchip,grf = <&grf>; 1322 status = "disabled"; 1323 1324 flexbus_adc: adc { 1325 compatible = "rockchip,flexbus-adc"; 1326 #io-channel-cells = <0>; 1327 rockchip,slave-mode; 1328 rockchip,free-sclk; 1329 rockchip,auto-pad; 1330 rockchip,dfs = <16>; 1331 status = "disabled"; 1332 }; 1333 1334 flexbus_cif: cif { 1335 compatible = "rockchip,flexbus-cif-rk3506"; 1336 status = "disabled"; 1337 }; 1338 1339 flexbus_dac: dac { 1340 compatible = "rockchip,flexbus-dac"; 1341 #io-channel-cells = <0>; 1342 rockchip,free-sclk; 1343 rockchip,dfs = <16>; 1344 status = "disabled"; 1345 }; 1346 1347 flexbus_fspi: fspi { 1348 compatible = "rockchip,flexbus-fspi"; 1349 #address-cells = <1>; 1350 #size-cells = <0>; 1351 status = "disabled"; 1352 }; 1353 }; 1354 1355 dsmc_lb_slave: dsmc-lb-slave@ff880000 { 1356 compatible = "rockchip,rk3506-dsmc-lb-slave"; 1357 reg = <0xff880000 0x10000>; 1358 #address-cells = <1>; 1359 #size-cells = <1>; 1360 rockchip,grf = <&grf>; 1361 interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>; 1362 resets = <&cru SRST_DSMC_SLV>, <&cru SRST_A_DSMC_SLV>, 1363 <&cru SRST_H_DSMC_SLV>; 1364 reset-names = "dsmc_slv", "a_dsmc_slv", "h_dsmc_slv"; 1365 clocks = <&cru ACLK_DSMC_SLV>, 1366 <&cru HCLK_DSMC_SLV>; 1367 clock-names = "aclk_dsmc_slv", "hclk_dsmc_slv"; 1368 status = "disabled"; 1369 }; 1370 1371 dsmc: dsmc@ff8b0000 { 1372 compatible = "rockchip,rk3506-dsmc"; 1373 reg = <0xff8b0000 0x10000>; 1374 #address-cells = <1>; 1375 #size-cells = <1>; 1376 rockchip,grf = <&ioc_grf>; 1377 interrupts = <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>; 1378 resets = <&cru SRST_A_DSMC>, <&cru SRST_P_DSMC>; 1379 reset-names = "dsmc", "apb"; 1380 clocks = <&cru CLK_DSMC>, 1381 <&cru ACLK_DSMC>, 1382 <&cru PCLK_DSMC>, 1383 <&cru CLK_DSMC>; 1384 clock-names = "clk_sys", "aclk_dsmc", "pclk", "aclk_root"; 1385 clock-frequency = <100000000>; 1386 dmas = <&dmac0 2 0xff288078 0x80000000 0xff2880a8 0x00300000>, 1387 <&dmac0 3 0xff288078 0x40000000 0xff2880a8 0x00c00000>; 1388 // dmas = <&dmac0 8 0xff288078 0x80008000 0xff2880ac 0x00030000>, 1389 // <&dmac0 10 0xff288078 0x40004000 0xff2880ac 0x00300000>; 1390 dma-names = "req0", "req1"; 1391 status = "disabled"; 1392 slave { 1393 rockchip,dqs-dll = <0x40 0x40 1394 0x40 0x40 1395 0x40 0x40 1396 0x40 0x40>; 1397 rockchip,ranges = <0x0 0xc0000000 0x0 0x2000000>; 1398 rockchip,slave-dev = <&dsmc_slave>; 1399 }; 1400 }; 1401 1402 dsmc_slave: dsmc-slave { 1403 compatible = "rockchip,dsmc-slave"; 1404 rockchip,clk-mode = <0>; 1405 status = "disabled"; 1406 psram { 1407 dsmc_psram0: psram0 { 1408 status = "disabled"; 1409 }; 1410 dsmc_psram1: psram1 { 1411 status = "disabled"; 1412 }; 1413 dsmc_psram2: psram2 { 1414 status = "disabled"; 1415 }; 1416 dsmc_psram3: psram3 { 1417 status = "disabled"; 1418 }; 1419 }; 1420 1421 lb-slave { 1422 dsmc_lb_slave0: lb-slave0 { 1423 status = "disabled"; 1424 dsmc_p0_region: region { 1425 dsmc_p0_region0: region0 { 1426 rockchip,attribute = "Merged FIFO"; 1427 rockchip,ca-addr-width = <0>; 1428 rockchip,dummy-clk-num = <1>; 1429 rockchip,cs0-be-ctrled = <0>; 1430 rockchip,cs0-ctrl = <0>; 1431 status = "disabled"; 1432 }; 1433 dsmc_p0_region1: region1 { 1434 rockchip,attribute = "No-Merge FIFO"; 1435 rockchip,ca-addr-width = <0>; 1436 rockchip,dummy-clk-num = <1>; 1437 rockchip,cs0-be-ctrled = <0>; 1438 rockchip,cs0-ctrl = <0>; 1439 status = "disabled"; 1440 }; 1441 dsmc_p0_region2: region2 { 1442 rockchip,attribute = "DPRA"; 1443 rockchip,ca-addr-width = <0>; 1444 rockchip,dummy-clk-num = <1>; 1445 rockchip,cs0-be-ctrled = <0>; 1446 rockchip,cs0-ctrl = <0>; 1447 status = "disabled"; 1448 }; 1449 dsmc_p0_region3: region3 { 1450 rockchip,attribute = "Register"; 1451 rockchip,ca-addr-width = <0>; 1452 rockchip,dummy-clk-num = <1>; 1453 rockchip,cs0-be-ctrled = <0>; 1454 rockchip,cs0-ctrl = <0>; 1455 status = "disabled"; 1456 }; 1457 }; 1458 }; 1459 dsmc_lb_slave1: lb-slave1 { 1460 status = "disabled"; 1461 dsmc_p1_region: region { 1462 dsmc_p1_region0: region0 { 1463 rockchip,attribute = "Merged FIFO"; 1464 rockchip,ca-addr-width = <0>; 1465 rockchip,dummy-clk-num = <1>; 1466 rockchip,cs0-be-ctrled = <0>; 1467 rockchip,cs0-ctrl = <0>; 1468 status = "disabled"; 1469 }; 1470 dsmc_p1_region1: region1 { 1471 rockchip,attribute = "No-Merge FIFO"; 1472 rockchip,ca-addr-width = <0>; 1473 rockchip,dummy-clk-num = <1>; 1474 rockchip,cs0-be-ctrled = <0>; 1475 rockchip,cs0-ctrl = <0>; 1476 status = "disabled"; 1477 }; 1478 dsmc_p1_region2: region2 { 1479 rockchip,attribute = "DPRA"; 1480 rockchip,ca-addr-width = <0>; 1481 rockchip,dummy-clk-num = <1>; 1482 rockchip,cs0-be-ctrled = <0>; 1483 rockchip,cs0-ctrl = <0>; 1484 status = "disabled"; 1485 }; 1486 dsmc_p1_region3: region3 { 1487 rockchip,attribute = "Register"; 1488 rockchip,ca-addr-width = <0>; 1489 rockchip,dummy-clk-num = <1>; 1490 rockchip,cs0-be-ctrled = <0>; 1491 rockchip,cs0-ctrl = <0>; 1492 status = "disabled"; 1493 }; 1494 }; 1495 }; 1496 dsmc_lb_slave2: lb-slave2 { 1497 status = "disabled"; 1498 dsmc_p2_region: region { 1499 dsmc_p2_region0: region0 { 1500 rockchip,attribute = "Merged FIFO"; 1501 rockchip,ca-addr-width = <0>; 1502 rockchip,dummy-clk-num = <1>; 1503 rockchip,cs0-be-ctrled = <0>; 1504 rockchip,cs0-ctrl = <0>; 1505 status = "disabled"; 1506 }; 1507 dsmc_p2_region1: region1 { 1508 rockchip,attribute = "No-Merge FIFO"; 1509 rockchip,ca-addr-width = <0>; 1510 rockchip,dummy-clk-num = <1>; 1511 rockchip,cs0-be-ctrled = <0>; 1512 rockchip,cs0-ctrl = <0>; 1513 status = "disabled"; 1514 }; 1515 dsmc_p2_region2: region2 { 1516 rockchip,attribute = "DPRA"; 1517 rockchip,ca-addr-width = <0>; 1518 rockchip,dummy-clk-num = <1>; 1519 rockchip,cs0-be-ctrled = <0>; 1520 rockchip,cs0-ctrl = <0>; 1521 status = "disabled"; 1522 }; 1523 dsmc_p2_region3: region3 { 1524 rockchip,attribute = "Register"; 1525 rockchip,ca-addr-width = <0>; 1526 rockchip,dummy-clk-num = <1>; 1527 rockchip,cs0-be-ctrled = <0>; 1528 rockchip,cs0-ctrl = <0>; 1529 status = "disabled"; 1530 }; 1531 }; 1532 }; 1533 dsmc_lb_slave3: lb-slave3 { 1534 status = "disabled"; 1535 dsmc_p3_region: region { 1536 dsmc_p3_region0: region0 { 1537 rockchip,attribute = "Merged FIFO"; 1538 rockchip,ca-addr-width = <0>; 1539 rockchip,dummy-clk-num = <1>; 1540 rockchip,cs0-be-ctrled = <0>; 1541 rockchip,cs0-ctrl = <0>; 1542 status = "disabled"; 1543 }; 1544 dsmc_p3_region1: region1 { 1545 rockchip,attribute = "No-Merge FIFO"; 1546 rockchip,ca-addr-width = <0>; 1547 rockchip,dummy-clk-num = <1>; 1548 rockchip,cs0-be-ctrled = <0>; 1549 rockchip,cs0-ctrl = <0>; 1550 status = "disabled"; 1551 }; 1552 dsmc_p3_region2: region2 { 1553 rockchip,attribute = "DPRA"; 1554 rockchip,ca-addr-width = <0>; 1555 rockchip,dummy-clk-num = <1>; 1556 rockchip,cs0-be-ctrled = <0>; 1557 rockchip,cs0-ctrl = <0>; 1558 status = "disabled"; 1559 }; 1560 dsmc_p3_region3: region3 { 1561 rockchip,attribute = "Register"; 1562 rockchip,ca-addr-width = <0>; 1563 rockchip,dummy-clk-num = <1>; 1564 rockchip,cs0-be-ctrled = <0>; 1565 rockchip,cs0-ctrl = <0>; 1566 status = "disabled"; 1567 }; 1568 }; 1569 }; 1570 }; 1571 }; 1572 1573 grf_pmu: syscon@ff910000 { 1574 compatible = "rockchip,rk3506-grf-pmu", "syscon", "simple-mfd"; 1575 reg = <0xff910000 0x4000>; 1576 1577 reboot_mode: reboot-mode { 1578 compatible = "syscon-reboot-mode"; 1579 offset = <0x200>; 1580 mode-bootloader = <BOOT_BL_DOWNLOAD>; 1581 mode-charge = <BOOT_CHARGING>; 1582 mode-fastboot = <BOOT_FASTBOOT>; 1583 mode-loader = <BOOT_BL_DOWNLOAD>; 1584 mode-normal = <BOOT_NORMAL>; 1585 mode-recovery = <BOOT_RECOVERY>; 1586 mode-ums = <BOOT_UMS>; 1587 mode-panic = <BOOT_PANIC>; 1588 mode-watchdog = <BOOT_WATCHDOG>; 1589 }; 1590 }; 1591 1592 pwm0_4ch_0: pwm@ff930000 { 1593 compatible = "rockchip,rk3506-pwm", "rockchip,rk3576-pwm"; 1594 reg = <0xff930000 0x200>; 1595 interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>; 1596 clocks = <&cru CLK_PWM0>, <&cru PCLK_PWM0>; 1597 clock-names = "pwm", "pclk"; 1598 #pwm-cells = <3>; 1599 status = "disabled"; 1600 }; 1601 1602 pwm0_4ch_1: pwm@ff931000 { 1603 compatible = "rockchip,rk3506-pwm", "rockchip,rk3576-pwm"; 1604 reg = <0xff931000 0x200>; 1605 interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>; 1606 clocks = <&cru CLK_PWM0>, <&cru PCLK_PWM0>; 1607 clock-names = "pwm", "pclk"; 1608 #pwm-cells = <3>; 1609 status = "disabled"; 1610 }; 1611 1612 pwm0_4ch_2: pwm@ff932000 { 1613 compatible = "rockchip,rk3506-pwm", "rockchip,rk3576-pwm"; 1614 reg = <0xff932000 0x200>; 1615 interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>; 1616 clocks = <&cru CLK_PWM0>, <&cru PCLK_PWM0>; 1617 clock-names = "pwm", "pclk"; 1618 #pwm-cells = <3>; 1619 status = "disabled"; 1620 }; 1621 1622 pwm0_4ch_3: pwm@ff933000 { 1623 compatible = "rockchip,rk3506-pwm", "rockchip,rk3576-pwm"; 1624 reg = <0xff933000 0x200>; 1625 interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>; 1626 clocks = <&cru CLK_PWM0>, <&cru PCLK_PWM0>; 1627 clock-names = "pwm", "pclk"; 1628 #pwm-cells = <3>; 1629 status = "disabled"; 1630 }; 1631 1632 ioc_pmu: syscon@ff950000 { 1633 compatible = "rockchip,rk3506-ioc-pmu", "syscon"; 1634 reg = <0xff950000 0x10000>; 1635 }; 1636 1637 cru: clock-controller@ff9a0000 { 1638 compatible = "rockchip,rk3506-cru"; 1639 reg = <0xff9a0000 0x20000>; 1640 rockchip,grf = <&grf>; 1641 #clock-cells = <1>; 1642 #reset-cells = <1>; 1643 }; 1644 1645 pinctrl: pinctrl { 1646 compatible = "rockchip,rk3506-pinctrl"; 1647 rockchip,grf = <&ioc_grf>; 1648 rockchip,ioc1 = <&ioc1>; 1649 rockchip,pmu = <&ioc_pmu>; 1650 rockchip,rmio = <&grf_pmu>; 1651 #address-cells = <1>; 1652 #size-cells = <1>; 1653 ranges; 1654 1655 gpio0: gpio@ff940000 { 1656 compatible = "rockchip,gpio-bank"; 1657 reg = <0xff940000 0x200>; 1658 interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>; 1659 clocks = <&cru PCLK_GPIO0>, <&cru DBCLK_GPIO0>; 1660 1661 gpio-controller; 1662 #gpio-cells = <2>; 1663 gpio-ranges = <&pinctrl 0 0 32>; 1664 interrupt-controller; 1665 #interrupt-cells = <2>; 1666 }; 1667 1668 gpio1: gpio@ff870000 { 1669 compatible = "rockchip,gpio-bank"; 1670 reg = <0xff870000 0x200>; 1671 interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>; 1672 clocks = <&cru PCLK_GPIO1>, <&cru DBCLK_GPIO1>; 1673 1674 gpio-controller; 1675 #gpio-cells = <2>; 1676 gpio-ranges = <&pinctrl 0 32 32>; 1677 interrupt-controller; 1678 #interrupt-cells = <2>; 1679 }; 1680 1681 gpio2: gpio@ff1c0000 { 1682 compatible = "rockchip,gpio-bank"; 1683 reg = <0xff1c0000 0x200>; 1684 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>; 1685 clocks = <&cru PCLK_GPIO2>, <&cru DBCLK_GPIO2>; 1686 1687 gpio-controller; 1688 #gpio-cells = <2>; 1689 gpio-ranges = <&pinctrl 0 64 32>; 1690 interrupt-controller; 1691 #interrupt-cells = <2>; 1692 }; 1693 1694 gpio3: gpio@ff1d0000 { 1695 compatible = "rockchip,gpio-bank"; 1696 reg = <0xff1d0000 0x200>; 1697 interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>; 1698 clocks = <&cru PCLK_GPIO3>, <&cru DBCLK_GPIO3>; 1699 1700 gpio-controller; 1701 #gpio-cells = <2>; 1702 gpio-ranges = <&pinctrl 0 96 32>; 1703 interrupt-controller; 1704 #interrupt-cells = <2>; 1705 }; 1706 1707 gpio4: gpio@ff1e0000 { 1708 compatible = "rockchip,gpio-bank"; 1709 reg = <0xff1e0000 0x200>; 1710 interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>; 1711 clocks = <&cru PCLK_GPIO4>, <&cru DBCLK_GPIO4>; 1712 1713 gpio-controller; 1714 #gpio-cells = <2>; 1715 gpio-ranges = <&pinctrl 0 128 32>; 1716 interrupt-controller; 1717 #interrupt-cells = <2>; 1718 }; 1719 }; 1720}; 1721 1722#include "rk3506-pinctrl.dtsi" 1723#include "rk3506-pinctrl-rmio.dtsi" 1724