1/* 2 * SPDX-License-Identifier: GPL-2.0+ 3 */ 4 5#include <dt-bindings/gpio/gpio.h> 6#include <dt-bindings/interrupt-controller/irq.h> 7#include <dt-bindings/interrupt-controller/arm-gic.h> 8#include <dt-bindings/pinctrl/rockchip.h> 9#include <dt-bindings/clock/rk3288-cru.h> 10#include <dt-bindings/power-domain/rk3288.h> 11#include <dt-bindings/thermal/thermal.h> 12#include <dt-bindings/video/rk3288.h> 13#include "skeleton.dtsi" 14 15/ { 16 compatible = "rockchip,rk3288"; 17 18 interrupt-parent = <&gic>; 19 aliases { 20 gpio0 = &gpio0; 21 gpio1 = &gpio1; 22 gpio2 = &gpio2; 23 gpio3 = &gpio3; 24 gpio4 = &gpio4; 25 gpio5 = &gpio5; 26 gpio6 = &gpio6; 27 gpio7 = &gpio7; 28 gpio8 = &gpio8; 29 i2c0 = &i2c0; 30 i2c1 = &i2c1; 31 i2c2 = &i2c2; 32 i2c3 = &i2c3; 33 i2c4 = &i2c4; 34 i2c5 = &i2c5; 35 mmc0 = &emmc; 36 mmc1 = &sdmmc; 37 mmc2 = &sdio0; 38 mmc3 = &sdio1; 39 mshc0 = &emmc; 40 mshc1 = &sdmmc; 41 mshc2 = &sdio0; 42 mshc3 = &sdio1; 43 serial0 = &uart0; 44 serial1 = &uart1; 45 serial2 = &uart2; 46 serial3 = &uart3; 47 serial4 = &uart4; 48 spi0 = &spi0; 49 spi1 = &spi1; 50 spi2 = &spi2; 51 }; 52 53 cpus { 54 #address-cells = <1>; 55 #size-cells = <0>; 56 enable-method = "rockchip,rk3066-smp"; 57 rockchip,pmu = <&pmu>; 58 59 cpu0: cpu@500 { 60 device_type = "cpu"; 61 compatible = "arm,cortex-a12"; 62 reg = <0x500>; 63 operating-points = < 64 /* KHz uV */ 65 1800000 1400000 66 1704000 1350000 67 1608000 1300000 68 1512000 1250000 69 1416000 1200000 70 1200000 1100000 71 1008000 1050000 72 816000 1000000 73 696000 950000 74 600000 900000 75 408000 900000 76 216000 900000 77 126000 900000 78 >; 79 #cooling-cells = <2>; /* min followed by max */ 80 clock-latency = <40000>; 81 clocks = <&cru ARMCLK>; 82 resets = <&cru SRST_CORE0>; 83 }; 84 cpu@501 { 85 device_type = "cpu"; 86 compatible = "arm,cortex-a12"; 87 reg = <0x501>; 88 resets = <&cru SRST_CORE1>; 89 }; 90 cpu@502 { 91 device_type = "cpu"; 92 compatible = "arm,cortex-a12"; 93 reg = <0x502>; 94 resets = <&cru SRST_CORE2>; 95 }; 96 cpu@503 { 97 device_type = "cpu"; 98 compatible = "arm,cortex-a12"; 99 reg = <0x503>; 100 resets = <&cru SRST_CORE3>; 101 }; 102 }; 103 104 amba { 105 compatible = "arm,amba-bus"; 106 #address-cells = <1>; 107 #size-cells = <1>; 108 ranges; 109 110 dmac_peri: dma-controller@ff250000 { 111 compatible = "arm,pl330", "arm,primecell"; 112 broken-no-flushp; 113 reg = <0xff250000 0x4000>; 114 interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>, 115 <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>; 116 #dma-cells = <1>; 117 clocks = <&cru ACLK_DMAC2>; 118 clock-names = "apb_pclk"; 119 }; 120 121 dmac_bus_ns: dma-controller@ff600000 { 122 compatible = "arm,pl330", "arm,primecell"; 123 broken-no-flushp; 124 reg = <0xff600000 0x4000>; 125 interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>, 126 <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>; 127 #dma-cells = <1>; 128 clocks = <&cru ACLK_DMAC1>; 129 clock-names = "apb_pclk"; 130 status = "disabled"; 131 }; 132 133 dmac_bus_s: dma-controller@ffb20000 { 134 compatible = "arm,pl330", "arm,primecell"; 135 broken-no-flushp; 136 reg = <0xffb20000 0x4000>; 137 interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>, 138 <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>; 139 #dma-cells = <1>; 140 clocks = <&cru ACLK_DMAC1>; 141 clock-names = "apb_pclk"; 142 }; 143 }; 144 145 xin24m: oscillator { 146 compatible = "fixed-clock"; 147 clock-frequency = <24000000>; 148 clock-output-names = "xin24m"; 149 #clock-cells = <0>; 150 }; 151 152 timer { 153 arm,use-physical-timer; 154 compatible = "arm,armv7-timer"; 155 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>, 156 <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>, 157 <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>, 158 <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>; 159 clock-frequency = <24000000>; 160 always-on; 161 }; 162 163 display-subsystem { 164 compatible = "rockchip,display-subsystem"; 165 ports = <&vopl_out>, <&vopb_out>; 166 }; 167 168 sdmmc: dwmmc@ff0c0000 { 169 compatible = "rockchip,rk3288-dw-mshc"; 170 clock-freq-min-max = <400000 150000000>; 171 clocks = <&cru HCLK_SDMMC>, <&cru SCLK_SDMMC>, 172 <&cru SCLK_SDMMC_DRV>, <&cru SCLK_SDMMC_SAMPLE>; 173 clock-names = "biu", "ciu", "ciu_drv", "ciu_sample"; 174 fifo-depth = <0x100>; 175 interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>; 176 reg = <0xff0c0000 0x4000>; 177 status = "disabled"; 178 }; 179 180 sdio0: dwmmc@ff0d0000 { 181 compatible = "rockchip,rk3288-dw-mshc"; 182 clock-freq-min-max = <400000 150000000>; 183 clocks = <&cru HCLK_SDIO0>, <&cru SCLK_SDIO0>, 184 <&cru SCLK_SDIO0_DRV>, <&cru SCLK_SDIO0_SAMPLE>; 185 clock-names = "biu", "ciu", "ciu_drv", "ciu_sample"; 186 fifo-depth = <0x100>; 187 interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>; 188 reg = <0xff0d0000 0x4000>; 189 status = "disabled"; 190 }; 191 192 sdio1: dwmmc@ff0e0000 { 193 compatible = "rockchip,rk3288-dw-mshc"; 194 clock-freq-min-max = <400000 150000000>; 195 clocks = <&cru HCLK_SDIO1>, <&cru SCLK_SDIO1>, 196 <&cru SCLK_SDIO1_DRV>, <&cru SCLK_SDIO1_SAMPLE>; 197 clock-names = "biu", "ciu", "ciu_drv", "ciu_sample"; 198 fifo-depth = <0x100>; 199 interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>; 200 reg = <0xff0e0000 0x4000>; 201 status = "disabled"; 202 }; 203 204 emmc: dwmmc@ff0f0000 { 205 compatible = "rockchip,rk3288-dw-mshc"; 206 clock-freq-min-max = <400000 150000000>; 207 clocks = <&cru HCLK_EMMC>, <&cru SCLK_EMMC>, 208 <&cru SCLK_EMMC_DRV>, <&cru SCLK_EMMC_SAMPLE>; 209 clock-names = "biu", "ciu", "ciu_drv", "ciu_sample"; 210 fifo-depth = <0x100>; 211 interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>; 212 reg = <0xff0f0000 0x4000>; 213 status = "disabled"; 214 }; 215 216 saradc: saradc@ff100000 { 217 compatible = "rockchip,saradc"; 218 reg = <0xff100000 0x100>; 219 interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>; 220 #io-channel-cells = <1>; 221 clocks = <&cru SCLK_SARADC>, <&cru PCLK_SARADC>; 222 clock-names = "saradc", "apb_pclk"; 223 status = "disabled"; 224 }; 225 226 spi0: spi@ff110000 { 227 compatible = "rockchip,rk3288-spi", "rockchip,rk3066-spi"; 228 clocks = <&cru SCLK_SPI0>, <&cru PCLK_SPI0>; 229 clock-names = "spiclk", "apb_pclk"; 230 dmas = <&dmac_peri 11>, <&dmac_peri 12>; 231 dma-names = "tx", "rx"; 232 interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>; 233 pinctrl-names = "default"; 234 pinctrl-0 = <&spi0_clk &spi0_tx &spi0_rx &spi0_cs0>; 235 reg = <0xff110000 0x1000>; 236 #address-cells = <1>; 237 #size-cells = <0>; 238 status = "disabled"; 239 }; 240 241 spi1: spi@ff120000 { 242 compatible = "rockchip,rk3288-spi", "rockchip,rk3066-spi"; 243 clocks = <&cru SCLK_SPI1>, <&cru PCLK_SPI1>; 244 clock-names = "spiclk", "apb_pclk"; 245 dmas = <&dmac_peri 13>, <&dmac_peri 14>; 246 dma-names = "tx", "rx"; 247 interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>; 248 pinctrl-names = "default"; 249 pinctrl-0 = <&spi1_clk &spi1_tx &spi1_rx &spi1_cs0>; 250 reg = <0xff120000 0x1000>; 251 #address-cells = <1>; 252 #size-cells = <0>; 253 status = "disabled"; 254 }; 255 256 spi2: spi@ff130000 { 257 compatible = "rockchip,rk3288-spi", "rockchip,rk3066-spi"; 258 clocks = <&cru SCLK_SPI2>, <&cru PCLK_SPI2>; 259 clock-names = "spiclk", "apb_pclk"; 260 dmas = <&dmac_peri 15>, <&dmac_peri 16>; 261 dma-names = "tx", "rx"; 262 interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>; 263 pinctrl-names = "default"; 264 pinctrl-0 = <&spi2_clk &spi2_tx &spi2_rx &spi2_cs0>; 265 reg = <0xff130000 0x1000>; 266 #address-cells = <1>; 267 #size-cells = <0>; 268 status = "disabled"; 269 }; 270 271 i2c1: i2c@ff140000 { 272 compatible = "rockchip,rk3288-i2c"; 273 reg = <0xff140000 0x1000>; 274 interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>; 275 #address-cells = <1>; 276 #size-cells = <0>; 277 clock-names = "i2c"; 278 clocks = <&cru PCLK_I2C1>; 279 pinctrl-names = "default"; 280 pinctrl-0 = <&i2c1_xfer>; 281 status = "disabled"; 282 }; 283 284 i2c3: i2c@ff150000 { 285 compatible = "rockchip,rk3288-i2c"; 286 reg = <0xff150000 0x1000>; 287 interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>; 288 #address-cells = <1>; 289 #size-cells = <0>; 290 clock-names = "i2c"; 291 clocks = <&cru PCLK_I2C3>; 292 pinctrl-names = "default"; 293 pinctrl-0 = <&i2c3_xfer>; 294 status = "disabled"; 295 }; 296 297 i2c4: i2c@ff160000 { 298 compatible = "rockchip,rk3288-i2c"; 299 reg = <0xff160000 0x1000>; 300 interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>; 301 #address-cells = <1>; 302 #size-cells = <0>; 303 clock-names = "i2c"; 304 clocks = <&cru PCLK_I2C4>; 305 pinctrl-names = "default"; 306 pinctrl-0 = <&i2c4_xfer>; 307 status = "disabled"; 308 }; 309 310 i2c5: i2c@ff170000 { 311 compatible = "rockchip,rk3288-i2c"; 312 reg = <0xff170000 0x1000>; 313 interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>; 314 #address-cells = <1>; 315 #size-cells = <0>; 316 clock-names = "i2c"; 317 clocks = <&cru PCLK_I2C5>; 318 pinctrl-names = "default"; 319 pinctrl-0 = <&i2c5_xfer>; 320 status = "disabled"; 321 }; 322 uart0: serial@ff180000 { 323 compatible = "rockchip,rk3288-uart", "snps,dw-apb-uart"; 324 reg = <0xff180000 0x100>; 325 interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>; 326 reg-shift = <2>; 327 reg-io-width = <4>; 328 clock-frequency = <24000000>; 329 clocks = <&cru SCLK_UART0>, <&cru PCLK_UART0>; 330 clock-names = "baudclk", "apb_pclk"; 331 pinctrl-names = "default"; 332 pinctrl-0 = <&uart0_xfer>; 333 status = "disabled"; 334 }; 335 336 uart1: serial@ff190000 { 337 compatible = "rockchip,rk3288-uart", "snps,dw-apb-uart"; 338 reg = <0xff190000 0x100>; 339 interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>; 340 reg-shift = <2>; 341 reg-io-width = <4>; 342 clock-frequency = <24000000>; 343 clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>; 344 clock-names = "baudclk", "apb_pclk"; 345 pinctrl-names = "default"; 346 pinctrl-0 = <&uart1_xfer>; 347 status = "disabled"; 348 }; 349 350 uart2: serial@ff690000 { 351 compatible = "rockchip,rk3288-uart", "snps,dw-apb-uart"; 352 reg = <0xff690000 0x100>; 353 interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>; 354 reg-shift = <2>; 355 reg-io-width = <4>; 356 clock-frequency = <24000000>; 357 clocks = <&cru SCLK_UART2>, <&cru PCLK_UART2>; 358 clock-names = "baudclk", "apb_pclk"; 359 pinctrl-names = "default"; 360 pinctrl-0 = <&uart2_xfer>; 361 status = "disabled"; 362 }; 363 uart3: serial@ff1b0000 { 364 compatible = "rockchip,rk3288-uart", "snps,dw-apb-uart"; 365 reg = <0xff1b0000 0x100>; 366 interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>; 367 reg-shift = <2>; 368 reg-io-width = <4>; 369 clock-frequency = <24000000>; 370 clocks = <&cru SCLK_UART3>, <&cru PCLK_UART3>; 371 clock-names = "baudclk", "apb_pclk"; 372 pinctrl-names = "default"; 373 pinctrl-0 = <&uart3_xfer>; 374 status = "disabled"; 375 }; 376 377 uart4: serial@ff1c0000 { 378 compatible = "rockchip,rk3288-uart", "snps,dw-apb-uart"; 379 reg = <0xff1c0000 0x100>; 380 interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>; 381 reg-shift = <2>; 382 reg-io-width = <4>; 383 clock-frequency = <24000000>; 384 clocks = <&cru SCLK_UART4>, <&cru PCLK_UART4>; 385 clock-names = "baudclk", "apb_pclk"; 386 pinctrl-names = "default"; 387 pinctrl-0 = <&uart4_xfer>; 388 status = "disabled"; 389 }; 390 thermal: thermal-zones { 391 #include "rk3288-thermal.dtsi" 392 }; 393 394 tsadc: tsadc@ff280000 { 395 compatible = "rockchip,rk3288-tsadc"; 396 reg = <0xff280000 0x100>; 397 interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>; 398 clocks = <&cru SCLK_TSADC>, <&cru PCLK_TSADC>; 399 clock-names = "tsadc", "apb_pclk"; 400 resets = <&cru SRST_TSADC>; 401 reset-names = "tsadc-apb"; 402 pinctrl-names = "otp_out"; 403 pinctrl-0 = <&otp_out>; 404 #thermal-sensor-cells = <1>; 405 hw-shut-temp = <125000>; 406 status = "disabled"; 407 }; 408 409 gmac: ethernet@ff290000 { 410 compatible = "rockchip,rk3288-gmac"; 411 reg = <0xff290000 0x10000>; 412 interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>; 413 interrupt-names = "macirq"; 414 rockchip,grf = <&grf>; 415 clocks = <&cru SCLK_MAC>, 416 <&cru SCLK_MAC_RX>, <&cru SCLK_MAC_TX>, 417 <&cru SCLK_MACREF>, <&cru SCLK_MACREF_OUT>, 418 <&cru ACLK_GMAC>, <&cru PCLK_GMAC>; 419 clock-names = "stmmaceth", 420 "mac_clk_rx", "mac_clk_tx", 421 "clk_mac_ref", "clk_mac_refout", 422 "aclk_mac", "pclk_mac"; 423 }; 424 425 usb_host0_ehci: usb@ff500000 { 426 compatible = "generic-ehci"; 427 reg = <0xff500000 0x100>; 428 interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>; 429 clocks = <&cru HCLK_USBHOST0>; 430 clock-names = "usbhost"; 431 phys = <&usbphy1>; 432 phy-names = "usb"; 433 status = "disabled"; 434 }; 435 436 /* NOTE: ohci@ff520000 doesn't actually work on hardware */ 437 438 usb_host1: usb@ff540000 { 439 compatible = "rockchip,rk3288-usb", "rockchip,rk3066-usb", 440 "snps,dwc2"; 441 reg = <0xff540000 0x40000>; 442 interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>; 443 clocks = <&cru HCLK_USBHOST1>; 444 clock-names = "otg"; 445 phys = <&usbphy2>; 446 phy-names = "usb2-phy"; 447 status = "disabled"; 448 }; 449 450 usb_otg: usb@ff580000 { 451 compatible = "rockchip,rk3288-usb", "rockchip,rk3066-usb", 452 "snps,dwc2"; 453 reg = <0xff580000 0x40000>; 454 interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>; 455 clocks = <&cru HCLK_OTG0>; 456 clock-names = "otg"; 457 dr_mode = "otg"; 458 phys = <&usbphy0>; 459 phy-names = "usb2-phy"; 460 status = "disabled"; 461 }; 462 463 usb_hsic: usb@ff5c0000 { 464 compatible = "generic-ehci"; 465 reg = <0xff5c0000 0x100>; 466 interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>; 467 clocks = <&cru HCLK_HSIC>; 468 clock-names = "usbhost"; 469 status = "disabled"; 470 }; 471 472 dmc: dmc@ff610000 { 473 u-boot,dm-pre-reloc; 474 compatible = "rockchip,rk3288-dmc", "syscon"; 475 rockchip,cru = <&cru>; 476 rockchip,grf = <&grf>; 477 rockchip,pmu = <&pmu>; 478 rockchip,sgrf = <&sgrf>; 479 rockchip,noc = <&noc>; 480 reg = <0xff610000 0x3fc 481 0xff620000 0x294 482 0xff630000 0x3fc 483 0xff640000 0x294>; 484 rockchip,sram = <&ddr_sram>; 485 clocks = <&cru PCLK_DDRUPCTL0>, <&cru PCLK_PUBL0>, 486 <&cru PCLK_DDRUPCTL1>, <&cru PCLK_PUBL1>, 487 <&cru ARMCLK>; 488 clock-names = "pclk_ddrupctl0", "pclk_publ0", 489 "pclk_ddrupctl1", "pclk_publ1", 490 "arm_clk"; 491 }; 492 493 i2c0: i2c@ff650000 { 494 compatible = "rockchip,rk3288-i2c"; 495 reg = <0xff650000 0x1000>; 496 interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>; 497 #address-cells = <1>; 498 #size-cells = <0>; 499 clock-names = "i2c"; 500 clocks = <&cru PCLK_I2C0>; 501 pinctrl-names = "default"; 502 pinctrl-0 = <&i2c0_xfer>; 503 status = "disabled"; 504 }; 505 506 i2c2: i2c@ff660000 { 507 compatible = "rockchip,rk3288-i2c"; 508 reg = <0xff660000 0x1000>; 509 interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>; 510 #address-cells = <1>; 511 #size-cells = <0>; 512 clock-names = "i2c"; 513 clocks = <&cru PCLK_I2C2>; 514 pinctrl-names = "default"; 515 pinctrl-0 = <&i2c2_xfer>; 516 status = "disabled"; 517 }; 518 519 pwm0: pwm@ff680000 { 520 compatible = "rockchip,rk3288-pwm"; 521 reg = <0xff680000 0x10>; 522 #pwm-cells = <3>; 523 pinctrl-names = "default"; 524 pinctrl-0 = <&pwm0_pin>; 525 clocks = <&cru PCLK_PWM>; 526 clock-names = "pwm"; 527 rockchip,grf = <&grf>; 528 status = "disabled"; 529 }; 530 531 pwm1: pwm@ff680010 { 532 compatible = "rockchip,rk3288-pwm"; 533 reg = <0xff680010 0x10>; 534 #pwm-cells = <3>; 535 pinctrl-names = "default"; 536 pinctrl-0 = <&pwm1_pin>; 537 clocks = <&cru PCLK_PWM>; 538 clock-names = "pwm"; 539 rockchip,grf = <&grf>; 540 status = "disabled"; 541 }; 542 543 pwm2: pwm@ff680020 { 544 compatible = "rockchip,rk3288-pwm"; 545 reg = <0xff680020 0x10>; 546 #pwm-cells = <3>; 547 pinctrl-names = "default"; 548 pinctrl-0 = <&pwm2_pin>; 549 clocks = <&cru PCLK_PWM>; 550 clock-names = "pwm"; 551 rockchip,grf = <&grf>; 552 status = "disabled"; 553 }; 554 555 pwm3: pwm@ff680030 { 556 compatible = "rockchip,rk3288-pwm"; 557 reg = <0xff680030 0x10>; 558 #pwm-cells = <2>; 559 pinctrl-names = "default"; 560 pinctrl-0 = <&pwm3_pin>; 561 clocks = <&cru PCLK_PWM>; 562 clock-names = "pwm"; 563 rockchip,grf = <&grf>; 564 status = "disabled"; 565 }; 566 567 bus_intmem@ff700000 { 568 compatible = "mmio-sram"; 569 reg = <0xff700000 0x18000>; 570 #address-cells = <1>; 571 #size-cells = <1>; 572 ranges = <0 0xff700000 0x18000>; 573 smp-sram@0 { 574 compatible = "rockchip,rk3066-smp-sram"; 575 reg = <0x00 0x10>; 576 }; 577 ddr_sram: ddr-sram@1000 { 578 compatible = "rockchip,rk3288-ddr-sram"; 579 reg = <0x1000 0x4000>; 580 }; 581 }; 582 583 sram@ff720000 { 584 compatible = "rockchip,rk3288-pmu-sram", "mmio-sram"; 585 reg = <0xff720000 0x1000>; 586 }; 587 588 pmu: power-management@ff730000 { 589 u-boot,dm-pre-reloc; 590 compatible = "rockchip,rk3288-pmu", "syscon"; 591 reg = <0xff730000 0x100>; 592 }; 593 594 sgrf: syscon@ff740000 { 595 u-boot,dm-pre-reloc; 596 compatible = "rockchip,rk3288-sgrf", "syscon"; 597 reg = <0xff740000 0x1000>; 598 }; 599 600 cru: clock-controller@ff760000 { 601 compatible = "rockchip,rk3288-cru"; 602 reg = <0xff760000 0x1000>; 603 rockchip,grf = <&grf>; 604 u-boot,dm-pre-reloc; 605 #clock-cells = <1>; 606 #reset-cells = <1>; 607 assigned-clocks = <&cru DCLK_VOP0>, <&cru DCLK_VOP1>, 608 <&cru PLL_GPLL>, <&cru PLL_CPLL>, 609 <&cru PLL_NPLL>, <&cru ACLK_CPU>, 610 <&cru HCLK_CPU>, <&cru PCLK_CPU>, 611 <&cru ACLK_PERI>, <&cru HCLK_PERI>, 612 <&cru PCLK_PERI>; 613 assigned-clock-rates = <0>, <0>, 614 <594000000>, <400000000>, 615 <500000000>, <300000000>, 616 <150000000>, <75000000>, 617 <300000000>, <150000000>, 618 <75000000>; 619 assigned-clock-parents = <&cru PLL_NPLL>, <&cru PLL_GPLL>; 620 }; 621 622 grf: syscon@ff770000 { 623 u-boot,dm-pre-reloc; 624 compatible = "rockchip,rk3288-grf", "syscon"; 625 reg = <0xff770000 0x1000>; 626 }; 627 628 wdt: watchdog@ff800000 { 629 compatible = "rockchip,rk3288-wdt", "snps,dw-wdt"; 630 reg = <0xff800000 0x100>; 631 clocks = <&cru PCLK_WDT>; 632 interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>; 633 status = "disabled"; 634 }; 635 636 spdif: sound@ff88b0000 { 637 compatible = "rockchip,rk3288-spdif", "rockchip,rk3066-spdif"; 638 reg = <0xff8b0000 0x10000>; 639 #sound-dai-cells = <0>; 640 clock-names = "hclk", "mclk"; 641 clocks = <&cru HCLK_SPDIF8CH>, <&cru SCLK_SPDIF8CH>; 642 dmas = <&dmac_bus_s 3>; 643 dma-names = "tx"; 644 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>; 645 pinctrl-names = "default"; 646 pinctrl-0 = <&spdif_tx>; 647 rockchip,grf = <&grf>; 648 status = "disabled"; 649 }; 650 651 i2s: i2s@ff890000 { 652 compatible = "rockchip,rk3288-i2s", "rockchip,rk3066-i2s"; 653 reg = <0xff890000 0x10000>; 654 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>; 655 #address-cells = <1>; 656 #size-cells = <0>; 657 dmas = <&dmac_bus_s 0>, <&dmac_bus_s 1>; 658 dma-names = "tx", "rx"; 659 clock-names = "i2s_hclk", "i2s_clk"; 660 clocks = <&cru HCLK_I2S0>, <&cru SCLK_I2S0>; 661 pinctrl-names = "default"; 662 pinctrl-0 = <&i2s0_bus>; 663 status = "disabled"; 664 }; 665 666 vopb: vop@ff930000 { 667 compatible = "rockchip,rk3288-vop"; 668 reg = <0xff930000 0x19c>; 669 interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>; 670 clocks = <&cru ACLK_VOP0>, <&cru DCLK_VOP0>, <&cru HCLK_VOP0>; 671 clock-names = "aclk_vop", "dclk_vop", "hclk_vop"; 672 resets = <&cru SRST_LCDC0_AXI>, <&cru SRST_LCDC0_AHB>, <&cru SRST_LCDC0_DCLK>; 673 reset-names = "axi", "ahb", "dclk"; 674 iommus = <&vopb_mmu>; 675 power-domains = <&power RK3288_PD_VIO>; 676 status = "disabled"; 677 vopb_out: port { 678 #address-cells = <1>; 679 #size-cells = <0>; 680 vopb_out_edp: endpoint@0 { 681 reg = <0>; 682 remote-endpoint = <&edp_in_vopb>; 683 }; 684 vopb_out_hdmi: endpoint@1 { 685 reg = <1>; 686 remote-endpoint = <&hdmi_in_vopb>; 687 }; 688 vopb_out_lvds: endpoint@2 { 689 reg = <2>; 690 remote-endpoint = <&lvds_in_vopb>; 691 }; 692 }; 693 }; 694 695 vopb_mmu: iommu@ff930300 { 696 compatible = "rockchip,iommu"; 697 reg = <0xff930300 0x100>; 698 interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>; 699 interrupt-names = "vopb_mmu"; 700 power-domains = <&power RK3288_PD_VIO>; 701 #iommu-cells = <0>; 702 status = "disabled"; 703 }; 704 705 vopl: vop@ff940000 { 706 compatible = "rockchip,rk3288-vop"; 707 reg = <0xff940000 0x19c>; 708 interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>; 709 clocks = <&cru ACLK_VOP1>, <&cru DCLK_VOP1>, <&cru HCLK_VOP1>; 710 clock-names = "aclk_vop", "dclk_vop", "hclk_vop"; 711 resets = <&cru SRST_LCDC1_AXI>, <&cru SRST_LCDC1_AHB>, <&cru SRST_LCDC1_DCLK>; 712 reset-names = "axi", "ahb", "dclk"; 713 iommus = <&vopl_mmu>; 714 power-domains = <&power RK3288_PD_VIO>; 715 status = "disabled"; 716 u-boot,dm-pre-reloc; 717 vopl_out: port { 718 #address-cells = <1>; 719 #size-cells = <0>; 720 vopl_out_edp: endpoint@0 { 721 reg = <0>; 722 remote-endpoint = <&edp_in_vopl>; 723 }; 724 vopl_out_hdmi: endpoint@1 { 725 reg = <1>; 726 remote-endpoint = <&hdmi_in_vopl>; 727 }; 728 vopl_out_lvds: endpoint@2 { 729 reg = <2>; 730 remote-endpoint = <&lvds_in_vopl>; 731 }; 732 }; 733 }; 734 735 vopl_mmu: iommu@ff940300 { 736 compatible = "rockchip,iommu"; 737 reg = <0xff940300 0x100>; 738 interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>; 739 interrupt-names = "vopl_mmu"; 740 power-domains = <&power RK3288_PD_VIO>; 741 #iommu-cells = <0>; 742 status = "disabled"; 743 }; 744 745 edp: edp@ff970000 { 746 compatible = "rockchip,rk3288-edp"; 747 reg = <0xff970000 0x4000>; 748 interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>; 749 clocks = <&cru SCLK_EDP>, <&cru SCLK_EDP_24M>, <&cru PCLK_EDP_CTRL>; 750 rockchip,grf = <&grf>; 751 clock-names = "clk_edp", "clk_edp_24m", "pclk_edp"; 752 resets = <&cru 111>; 753 reset-names = "edp"; 754 power-domains = <&power RK3288_PD_VIO>; 755 status = "disabled"; 756 ports { 757 edp_in: port { 758 #address-cells = <1>; 759 #size-cells = <0>; 760 edp_in_vopb: endpoint@0 { 761 reg = <0>; 762 remote-endpoint = <&vopb_out_edp>; 763 }; 764 edp_in_vopl: endpoint@1 { 765 reg = <1>; 766 remote-endpoint = <&vopl_out_edp>; 767 }; 768 }; 769 }; 770 }; 771 772 hdmi: hdmi@ff980000 { 773 compatible = "rockchip,rk3288-dw-hdmi"; 774 reg = <0xff980000 0x20000>; 775 reg-io-width = <4>; 776 ddc-i2c-bus = <&i2c5>; 777 rockchip,grf = <&grf>; 778 interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>; 779 clocks = <&cru PCLK_HDMI_CTRL>, <&cru SCLK_HDMI_HDCP>; 780 clock-names = "iahb", "isfr"; 781 status = "disabled"; 782 ports { 783 hdmi_in: port { 784 #address-cells = <1>; 785 #size-cells = <0>; 786 hdmi_in_vopb: endpoint@0 { 787 reg = <0>; 788 remote-endpoint = <&vopb_out_hdmi>; 789 }; 790 hdmi_in_vopl: endpoint@1 { 791 reg = <1>; 792 remote-endpoint = <&vopl_out_hdmi>; 793 }; 794 }; 795 }; 796 }; 797 798 lvds: lvds@ff96c000 { 799 compatible = "rockchip,rk3288-lvds"; 800 reg = <0xff96c000 0x4000>; 801 clocks = <&cru PCLK_LVDS_PHY>; 802 clock-names = "pclk_lvds"; 803 pinctrl-names = "default"; 804 pinctrl-0 = <&lcdc0_ctl>; 805 rockchip,grf = <&grf>; 806 status = "disabled"; 807 ports { 808 #address-cells = <1>; 809 #size-cells = <0>; 810 lvds_in: port@0 { 811 reg = <0>; 812 #address-cells = <1>; 813 #size-cells = <0>; 814 lvds_in_vopb: endpoint@0 { 815 reg = <0>; 816 remote-endpoint = <&vopb_out_lvds>; 817 }; 818 lvds_in_vopl: endpoint@1 { 819 reg = <1>; 820 remote-endpoint = <&vopl_out_lvds>; 821 }; 822 }; 823 }; 824 }; 825 826 hdmi_audio: hdmi_audio { 827 compatible = "rockchip,rk3288-hdmi-audio"; 828 i2s-controller = <&i2s>; 829 status = "disable"; 830 }; 831 832 vpu: video-codec@ff9a0000 { 833 compatible = "rockchip,rk3288-vpu"; 834 reg = <0xff9a0000 0x800>; 835 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>, 836 <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>; 837 interrupt-names = "vepu", "vdpu"; 838 clocks = <&cru ACLK_VCODEC>, <&cru HCLK_VCODEC>; 839 clock-names = "aclk_vcodec", "hclk_vcodec"; 840 power-domains = <&power RK3288_PD_VIDEO>; 841 iommus = <&vpu_mmu>; 842 }; 843 844 vpu_mmu: iommu@ff9a0800 { 845 compatible = "rockchip,iommu"; 846 reg = <0xff9a0800 0x100>; 847 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>; 848 interrupt-names = "vpu_mmu"; 849 power-domains = <&power RK3288_PD_VIDEO>; 850 #iommu-cells = <0>; 851 }; 852 853 gpu: gpu@ffa30000 { 854 compatible = "arm,malit764", 855 "arm,malit76x", 856 "arm,malit7xx", 857 "arm,mali-midgard"; 858 reg = <0xffa30000 0x10000>; 859 interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>, 860 <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>, 861 <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>; 862 interrupt-names = "JOB", "MMU", "GPU"; 863 clocks = <&cru ACLK_GPU>; 864 clock-names = "aclk_gpu"; 865 operating-points = < 866 /* KHz uV */ 867 100000 950000 868 200000 950000 869 300000 1000000 870 400000 1100000 871 /* 500000 1200000 - See crosbug.com/p/33857 */ 872 600000 1250000 873 >; 874 power-domains = <&power RK3288_PD_GPU>; 875 status = "disabled"; 876 }; 877 878 noc: syscon@ffac0000 { 879 u-boot,dm-pre-reloc; 880 compatible = "rockchip,rk3288-noc", "syscon"; 881 reg = <0xffac0000 0x2000>; 882 }; 883 884 efuse: efuse@ffb40000 { 885 compatible = "rockchip,rk3288-efuse"; 886 reg = <0xffb40000 0x10000>; 887 status = "disabled"; 888 }; 889 890 gic: interrupt-controller@ffc01000 { 891 compatible = "arm,gic-400"; 892 interrupt-controller; 893 #interrupt-cells = <3>; 894 #address-cells = <0>; 895 896 reg = <0xffc01000 0x1000>, 897 <0xffc02000 0x1000>, 898 <0xffc04000 0x2000>, 899 <0xffc06000 0x2000>; 900 interrupts = <GIC_PPI 9 0xf04>; 901 }; 902 903 cpuidle: cpuidle { 904 compatible = "rockchip,rk3288-cpuidle"; 905 }; 906 907 usbphy: phy { 908 compatible = "rockchip,rk3288-usb-phy"; 909 rockchip,grf = <&grf>; 910 #address-cells = <1>; 911 #size-cells = <0>; 912 status = "disabled"; 913 914 usbphy0: usb-phy0 { 915 #phy-cells = <0>; 916 reg = <0x320>; 917 clocks = <&cru SCLK_OTGPHY0>; 918 clock-names = "phyclk"; 919 }; 920 921 usbphy1: usb-phy1 { 922 #phy-cells = <0>; 923 reg = <0x334>; 924 clocks = <&cru SCLK_OTGPHY1>; 925 clock-names = "phyclk"; 926 }; 927 928 usbphy2: usb-phy2 { 929 #phy-cells = <0>; 930 reg = <0x348>; 931 clocks = <&cru SCLK_OTGPHY2>; 932 clock-names = "phyclk"; 933 }; 934 }; 935 936 pinctrl: pinctrl { 937 compatible = "rockchip,rk3288-pinctrl"; 938 rockchip,grf = <&grf>; 939 rockchip,pmu = <&pmu>; 940 #address-cells = <1>; 941 #size-cells = <1>; 942 ranges; 943 944 gpio0: gpio0@ff750000 { 945 compatible = "rockchip,gpio-bank"; 946 reg = <0xff750000 0x100>; 947 interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>; 948 clocks = <&cru PCLK_GPIO0>; 949 950 gpio-controller; 951 #gpio-cells = <2>; 952 953 interrupt-controller; 954 #interrupt-cells = <2>; 955 }; 956 957 gpio1: gpio1@ff780000 { 958 compatible = "rockchip,gpio-bank"; 959 reg = <0xff780000 0x100>; 960 interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>; 961 clocks = <&cru PCLK_GPIO1>; 962 963 gpio-controller; 964 #gpio-cells = <2>; 965 966 interrupt-controller; 967 #interrupt-cells = <2>; 968 }; 969 970 gpio2: gpio2@ff790000 { 971 compatible = "rockchip,gpio-bank"; 972 reg = <0xff790000 0x100>; 973 interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>; 974 clocks = <&cru PCLK_GPIO2>; 975 976 gpio-controller; 977 #gpio-cells = <2>; 978 979 interrupt-controller; 980 #interrupt-cells = <2>; 981 }; 982 983 gpio3: gpio3@ff7a0000 { 984 compatible = "rockchip,gpio-bank"; 985 reg = <0xff7a0000 0x100>; 986 interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>; 987 clocks = <&cru PCLK_GPIO3>; 988 989 gpio-controller; 990 #gpio-cells = <2>; 991 992 interrupt-controller; 993 #interrupt-cells = <2>; 994 }; 995 996 gpio4: gpio4@ff7b0000 { 997 compatible = "rockchip,gpio-bank"; 998 reg = <0xff7b0000 0x100>; 999 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>; 1000 clocks = <&cru PCLK_GPIO4>; 1001 1002 gpio-controller; 1003 #gpio-cells = <2>; 1004 1005 interrupt-controller; 1006 #interrupt-cells = <2>; 1007 }; 1008 1009 gpio5: gpio5@ff7c0000 { 1010 compatible = "rockchip,gpio-bank"; 1011 reg = <0xff7c0000 0x100>; 1012 interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>; 1013 clocks = <&cru PCLK_GPIO5>; 1014 1015 gpio-controller; 1016 #gpio-cells = <2>; 1017 1018 interrupt-controller; 1019 #interrupt-cells = <2>; 1020 }; 1021 1022 gpio6: gpio6@ff7d0000 { 1023 compatible = "rockchip,gpio-bank"; 1024 reg = <0xff7d0000 0x100>; 1025 interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>; 1026 clocks = <&cru PCLK_GPIO6>; 1027 1028 gpio-controller; 1029 #gpio-cells = <2>; 1030 1031 interrupt-controller; 1032 #interrupt-cells = <2>; 1033 }; 1034 1035 gpio7: gpio7@ff7e0000 { 1036 compatible = "rockchip,gpio-bank"; 1037 reg = <0xff7e0000 0x100>; 1038 interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>; 1039 clocks = <&cru PCLK_GPIO7>; 1040 1041 gpio-controller; 1042 #gpio-cells = <2>; 1043 1044 interrupt-controller; 1045 #interrupt-cells = <2>; 1046 }; 1047 1048 gpio8: gpio8@ff7f0000 { 1049 compatible = "rockchip,gpio-bank"; 1050 reg = <0xff7f0000 0x100>; 1051 interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>; 1052 clocks = <&cru PCLK_GPIO8>; 1053 1054 gpio-controller; 1055 #gpio-cells = <2>; 1056 1057 interrupt-controller; 1058 #interrupt-cells = <2>; 1059 }; 1060 1061 pcfg_pull_up: pcfg-pull-up { 1062 bias-pull-up; 1063 }; 1064 1065 pcfg_pull_down: pcfg-pull-down { 1066 bias-pull-down; 1067 }; 1068 1069 pcfg_pull_none: pcfg-pull-none { 1070 bias-disable; 1071 }; 1072 1073 pcfg_pull_none_12ma: pcfg-pull-none-12ma { 1074 bias-disable; 1075 drive-strength = <12>; 1076 }; 1077 1078 sleep { 1079 global_pwroff: global-pwroff { 1080 rockchip,pins = <0 0 RK_FUNC_1 &pcfg_pull_none>; 1081 }; 1082 1083 ddrio_pwroff: ddrio-pwroff { 1084 rockchip,pins = <0 1 RK_FUNC_1 &pcfg_pull_none>; 1085 }; 1086 1087 ddr0_retention: ddr0-retention { 1088 rockchip,pins = <0 2 RK_FUNC_1 &pcfg_pull_up>; 1089 }; 1090 1091 ddr1_retention: ddr1-retention { 1092 rockchip,pins = <0 3 RK_FUNC_1 &pcfg_pull_up>; 1093 }; 1094 }; 1095 1096 i2c0 { 1097 i2c0_xfer: i2c0-xfer { 1098 rockchip,pins = <0 15 RK_FUNC_1 &pcfg_pull_none>, 1099 <0 16 RK_FUNC_1 &pcfg_pull_none>; 1100 }; 1101 }; 1102 1103 i2c1 { 1104 i2c1_xfer: i2c1-xfer { 1105 rockchip,pins = <8 4 RK_FUNC_1 &pcfg_pull_none>, 1106 <8 5 RK_FUNC_1 &pcfg_pull_none>; 1107 }; 1108 }; 1109 1110 i2c2 { 1111 i2c2_xfer: i2c2-xfer { 1112 rockchip,pins = <6 9 RK_FUNC_1 &pcfg_pull_none>, 1113 <6 10 RK_FUNC_1 &pcfg_pull_none>; 1114 }; 1115 }; 1116 1117 i2c3 { 1118 i2c3_xfer: i2c3-xfer { 1119 rockchip,pins = <2 16 RK_FUNC_1 &pcfg_pull_none>, 1120 <2 17 RK_FUNC_1 &pcfg_pull_none>; 1121 }; 1122 }; 1123 1124 i2c4 { 1125 i2c4_xfer: i2c4-xfer { 1126 rockchip,pins = <7 17 RK_FUNC_1 &pcfg_pull_none>, 1127 <7 18 RK_FUNC_1 &pcfg_pull_none>; 1128 }; 1129 }; 1130 1131 i2c5 { 1132 i2c5_xfer: i2c5-xfer { 1133 rockchip,pins = <7 19 RK_FUNC_1 &pcfg_pull_none>, 1134 <7 20 RK_FUNC_1 &pcfg_pull_none>; 1135 }; 1136 }; 1137 1138 i2s0 { 1139 i2s0_bus: i2s0-bus { 1140 rockchip,pins = <6 0 RK_FUNC_1 &pcfg_pull_none>, 1141 <6 1 RK_FUNC_1 &pcfg_pull_none>, 1142 <6 2 RK_FUNC_1 &pcfg_pull_none>, 1143 <6 3 RK_FUNC_1 &pcfg_pull_none>, 1144 <6 4 RK_FUNC_1 &pcfg_pull_none>, 1145 <6 8 RK_FUNC_1 &pcfg_pull_none>; 1146 }; 1147 }; 1148 1149 lcdc0 { 1150 lcdc0_ctl: lcdc0-ctl { 1151 rockchip,pins = <1 24 RK_FUNC_1 &pcfg_pull_none>, 1152 <1 25 RK_FUNC_1 &pcfg_pull_none>, 1153 <1 26 RK_FUNC_1 &pcfg_pull_none>, 1154 <1 27 RK_FUNC_1 &pcfg_pull_none>; 1155 }; 1156 }; 1157 1158 sdmmc { 1159 sdmmc_clk: sdmmc-clk { 1160 rockchip,pins = <6 20 RK_FUNC_1 &pcfg_pull_none>; 1161 }; 1162 1163 sdmmc_cmd: sdmmc-cmd { 1164 rockchip,pins = <6 21 RK_FUNC_1 &pcfg_pull_up>; 1165 }; 1166 1167 sdmmc_cd: sdmcc-cd { 1168 rockchip,pins = <6 22 RK_FUNC_1 &pcfg_pull_up>; 1169 }; 1170 1171 sdmmc_bus1: sdmmc-bus1 { 1172 rockchip,pins = <6 16 RK_FUNC_1 &pcfg_pull_up>; 1173 }; 1174 1175 sdmmc_bus4: sdmmc-bus4 { 1176 rockchip,pins = <6 16 RK_FUNC_1 &pcfg_pull_up>, 1177 <6 17 RK_FUNC_1 &pcfg_pull_up>, 1178 <6 18 RK_FUNC_1 &pcfg_pull_up>, 1179 <6 19 RK_FUNC_1 &pcfg_pull_up>; 1180 }; 1181 }; 1182 1183 sdio0 { 1184 sdio0_bus1: sdio0-bus1 { 1185 rockchip,pins = <4 20 RK_FUNC_1 &pcfg_pull_up>; 1186 }; 1187 1188 sdio0_bus4: sdio0-bus4 { 1189 rockchip,pins = <4 20 RK_FUNC_1 &pcfg_pull_up>, 1190 <4 21 RK_FUNC_1 &pcfg_pull_up>, 1191 <4 22 RK_FUNC_1 &pcfg_pull_up>, 1192 <4 23 RK_FUNC_1 &pcfg_pull_up>; 1193 }; 1194 1195 sdio0_cmd: sdio0-cmd { 1196 rockchip,pins = <4 24 RK_FUNC_1 &pcfg_pull_up>; 1197 }; 1198 1199 sdio0_clk: sdio0-clk { 1200 rockchip,pins = <4 25 RK_FUNC_1 &pcfg_pull_none>; 1201 }; 1202 1203 sdio0_cd: sdio0-cd { 1204 rockchip,pins = <4 26 RK_FUNC_1 &pcfg_pull_up>; 1205 }; 1206 1207 sdio0_wp: sdio0-wp { 1208 rockchip,pins = <4 27 RK_FUNC_1 &pcfg_pull_up>; 1209 }; 1210 1211 sdio0_pwr: sdio0-pwr { 1212 rockchip,pins = <4 28 RK_FUNC_1 &pcfg_pull_up>; 1213 }; 1214 1215 sdio0_bkpwr: sdio0-bkpwr { 1216 rockchip,pins = <4 29 RK_FUNC_1 &pcfg_pull_up>; 1217 }; 1218 1219 sdio0_int: sdio0-int { 1220 rockchip,pins = <4 30 RK_FUNC_1 &pcfg_pull_up>; 1221 }; 1222 }; 1223 1224 sdio1 { 1225 sdio1_bus1: sdio1-bus1 { 1226 rockchip,pins = <3 24 RK_FUNC_4 &pcfg_pull_up>; 1227 }; 1228 1229 sdio1_bus4: sdio1-bus4 { 1230 rockchip,pins = <3 24 RK_FUNC_4 &pcfg_pull_up>, 1231 <3 25 RK_FUNC_4 &pcfg_pull_up>, 1232 <3 26 RK_FUNC_4 &pcfg_pull_up>, 1233 <3 27 RK_FUNC_4 &pcfg_pull_up>; 1234 }; 1235 1236 sdio1_cd: sdio1-cd { 1237 rockchip,pins = <3 28 RK_FUNC_4 &pcfg_pull_up>; 1238 }; 1239 1240 sdio1_wp: sdio1-wp { 1241 rockchip,pins = <3 29 RK_FUNC_4 &pcfg_pull_up>; 1242 }; 1243 1244 sdio1_bkpwr: sdio1-bkpwr { 1245 rockchip,pins = <3 30 RK_FUNC_4 &pcfg_pull_up>; 1246 }; 1247 1248 sdio1_int: sdio1-int { 1249 rockchip,pins = <3 31 RK_FUNC_4 &pcfg_pull_up>; 1250 }; 1251 1252 sdio1_cmd: sdio1-cmd { 1253 rockchip,pins = <4 6 RK_FUNC_4 &pcfg_pull_up>; 1254 }; 1255 1256 sdio1_clk: sdio1-clk { 1257 rockchip,pins = <4 7 RK_FUNC_4 &pcfg_pull_none>; 1258 }; 1259 1260 sdio1_pwr: sdio1-pwr { 1261 rockchip,pins = <4 9 RK_FUNC_4 &pcfg_pull_up>; 1262 }; 1263 }; 1264 1265 emmc { 1266 emmc_clk: emmc-clk { 1267 rockchip,pins = <3 18 RK_FUNC_2 &pcfg_pull_none>; 1268 }; 1269 1270 emmc_cmd: emmc-cmd { 1271 rockchip,pins = <3 16 RK_FUNC_2 &pcfg_pull_up>; 1272 }; 1273 1274 emmc_pwr: emmc-pwr { 1275 rockchip,pins = <3 9 RK_FUNC_2 &pcfg_pull_up>; 1276 }; 1277 1278 emmc_bus1: emmc-bus1 { 1279 rockchip,pins = <3 0 RK_FUNC_2 &pcfg_pull_up>; 1280 }; 1281 1282 emmc_bus4: emmc-bus4 { 1283 rockchip,pins = <3 0 RK_FUNC_2 &pcfg_pull_up>, 1284 <3 1 RK_FUNC_2 &pcfg_pull_up>, 1285 <3 2 RK_FUNC_2 &pcfg_pull_up>, 1286 <3 3 RK_FUNC_2 &pcfg_pull_up>; 1287 }; 1288 1289 emmc_bus8: emmc-bus8 { 1290 rockchip,pins = <3 0 RK_FUNC_2 &pcfg_pull_up>, 1291 <3 1 RK_FUNC_2 &pcfg_pull_up>, 1292 <3 2 RK_FUNC_2 &pcfg_pull_up>, 1293 <3 3 RK_FUNC_2 &pcfg_pull_up>, 1294 <3 4 RK_FUNC_2 &pcfg_pull_up>, 1295 <3 5 RK_FUNC_2 &pcfg_pull_up>, 1296 <3 6 RK_FUNC_2 &pcfg_pull_up>, 1297 <3 7 RK_FUNC_2 &pcfg_pull_up>; 1298 }; 1299 }; 1300 1301 spi0 { 1302 spi0_clk: spi0-clk { 1303 rockchip,pins = <5 12 RK_FUNC_1 &pcfg_pull_up>; 1304 }; 1305 spi0_cs0: spi0-cs0 { 1306 rockchip,pins = <5 13 RK_FUNC_1 &pcfg_pull_up>; 1307 }; 1308 spi0_tx: spi0-tx { 1309 rockchip,pins = <5 14 RK_FUNC_1 &pcfg_pull_up>; 1310 }; 1311 spi0_rx: spi0-rx { 1312 rockchip,pins = <5 15 RK_FUNC_1 &pcfg_pull_up>; 1313 }; 1314 spi0_cs1: spi0-cs1 { 1315 rockchip,pins = <5 16 RK_FUNC_1 &pcfg_pull_up>; 1316 }; 1317 }; 1318 spi1 { 1319 spi1_clk: spi1-clk { 1320 rockchip,pins = <7 12 RK_FUNC_2 &pcfg_pull_up>; 1321 }; 1322 spi1_cs0: spi1-cs0 { 1323 rockchip,pins = <7 13 RK_FUNC_2 &pcfg_pull_up>; 1324 }; 1325 spi1_rx: spi1-rx { 1326 rockchip,pins = <7 14 RK_FUNC_2 &pcfg_pull_up>; 1327 }; 1328 spi1_tx: spi1-tx { 1329 rockchip,pins = <7 15 RK_FUNC_2 &pcfg_pull_up>; 1330 }; 1331 }; 1332 1333 spi2 { 1334 spi2_cs1: spi2-cs1 { 1335 rockchip,pins = <8 3 RK_FUNC_1 &pcfg_pull_up>; 1336 }; 1337 spi2_clk: spi2-clk { 1338 rockchip,pins = <8 6 RK_FUNC_1 &pcfg_pull_up>; 1339 }; 1340 spi2_cs0: spi2-cs0 { 1341 rockchip,pins = <8 7 RK_FUNC_1 &pcfg_pull_up>; 1342 }; 1343 spi2_rx: spi2-rx { 1344 rockchip,pins = <8 8 RK_FUNC_1 &pcfg_pull_up>; 1345 }; 1346 spi2_tx: spi2-tx { 1347 rockchip,pins = <8 9 RK_FUNC_1 &pcfg_pull_up>; 1348 }; 1349 }; 1350 1351 uart0 { 1352 uart0_xfer: uart0-xfer { 1353 rockchip,pins = <4 16 RK_FUNC_1 &pcfg_pull_up>, 1354 <4 17 RK_FUNC_1 &pcfg_pull_none>; 1355 }; 1356 1357 uart0_cts: uart0-cts { 1358 rockchip,pins = <4 18 RK_FUNC_1 &pcfg_pull_none>; 1359 }; 1360 1361 uart0_rts: uart0-rts { 1362 rockchip,pins = <4 19 RK_FUNC_1 &pcfg_pull_none>; 1363 }; 1364 }; 1365 1366 uart1 { 1367 uart1_xfer: uart1-xfer { 1368 rockchip,pins = <5 8 RK_FUNC_1 &pcfg_pull_up>, 1369 <5 9 RK_FUNC_1 &pcfg_pull_none>; 1370 }; 1371 1372 uart1_cts: uart1-cts { 1373 rockchip,pins = <5 10 RK_FUNC_1 &pcfg_pull_none>; 1374 }; 1375 1376 uart1_rts: uart1-rts { 1377 rockchip,pins = <5 11 RK_FUNC_1 &pcfg_pull_none>; 1378 }; 1379 }; 1380 1381 uart2 { 1382 uart2_xfer: uart2-xfer { 1383 rockchip,pins = <7 22 RK_FUNC_1 &pcfg_pull_up>, 1384 <7 23 RK_FUNC_1 &pcfg_pull_none>; 1385 }; 1386 /* no rts / cts for uart2 */ 1387 }; 1388 1389 uart3 { 1390 uart3_xfer: uart3-xfer { 1391 rockchip,pins = <7 7 RK_FUNC_1 &pcfg_pull_up>, 1392 <7 8 RK_FUNC_1 &pcfg_pull_none>; 1393 }; 1394 1395 uart3_cts: uart3-cts { 1396 rockchip,pins = <7 9 RK_FUNC_1 &pcfg_pull_none>; 1397 }; 1398 1399 uart3_rts: uart3-rts { 1400 rockchip,pins = <7 10 RK_FUNC_1 &pcfg_pull_none>; 1401 }; 1402 }; 1403 1404 uart4 { 1405 uart4_xfer: uart4-xfer { 1406 rockchip,pins = <5 12 3 &pcfg_pull_up>, 1407 <5 13 3 &pcfg_pull_none>; 1408 }; 1409 1410 uart4_cts: uart4-cts { 1411 rockchip,pins = <5 14 3 &pcfg_pull_none>; 1412 }; 1413 1414 uart4_rts: uart4-rts { 1415 rockchip,pins = <5 15 3 &pcfg_pull_none>; 1416 }; 1417 }; 1418 1419 tsadc { 1420 otp_out: otp-out { 1421 rockchip,pins = <0 10 RK_FUNC_1 &pcfg_pull_none>; 1422 }; 1423 }; 1424 1425 pwm0 { 1426 pwm0_pin: pwm0-pin { 1427 rockchip,pins = <7 0 RK_FUNC_1 &pcfg_pull_none>; 1428 }; 1429 }; 1430 1431 pwm1 { 1432 pwm1_pin: pwm1-pin { 1433 rockchip,pins = <7 1 RK_FUNC_1 &pcfg_pull_none>; 1434 }; 1435 }; 1436 1437 pwm2 { 1438 pwm2_pin: pwm2-pin { 1439 rockchip,pins = <7 22 RK_FUNC_3 &pcfg_pull_none>; 1440 }; 1441 }; 1442 1443 pwm3 { 1444 pwm3_pin: pwm3-pin { 1445 rockchip,pins = <7 23 RK_FUNC_3 &pcfg_pull_none>; 1446 }; 1447 }; 1448 1449 gmac { 1450 rgmii_pins: rgmii-pins { 1451 rockchip,pins = <3 30 3 &pcfg_pull_none>, 1452 <3 31 3 &pcfg_pull_none>, 1453 <3 26 3 &pcfg_pull_none>, 1454 <3 27 3 &pcfg_pull_none>, 1455 <3 28 3 &pcfg_pull_none_12ma>, 1456 <3 29 3 &pcfg_pull_none_12ma>, 1457 <3 24 3 &pcfg_pull_none_12ma>, 1458 <3 25 3 &pcfg_pull_none_12ma>, 1459 <4 0 3 &pcfg_pull_none>, 1460 <4 5 3 &pcfg_pull_none>, 1461 <4 6 3 &pcfg_pull_none>, 1462 <4 9 3 &pcfg_pull_none_12ma>, 1463 <4 4 3 &pcfg_pull_none_12ma>, 1464 <4 1 3 &pcfg_pull_none>, 1465 <4 3 3 &pcfg_pull_none>; 1466 }; 1467 1468 rmii_pins: rmii-pins { 1469 rockchip,pins = <3 30 3 &pcfg_pull_none>, 1470 <3 31 3 &pcfg_pull_none>, 1471 <3 28 3 &pcfg_pull_none>, 1472 <3 29 3 &pcfg_pull_none>, 1473 <4 0 3 &pcfg_pull_none>, 1474 <4 5 3 &pcfg_pull_none>, 1475 <4 4 3 &pcfg_pull_none>, 1476 <4 1 3 &pcfg_pull_none>, 1477 <4 2 3 &pcfg_pull_none>, 1478 <4 3 3 &pcfg_pull_none>; 1479 }; 1480 }; 1481 1482 spdif { 1483 spdif_tx: spdif-tx { 1484 rockchip,pins = <RK_GPIO6 11 RK_FUNC_1 &pcfg_pull_none>; 1485 }; 1486 }; 1487 }; 1488 1489 power: power-controller { 1490 compatible = "rockchip,rk3288-power-controller"; 1491 #power-domain-cells = <1>; 1492 rockchip,pmu = <&pmu>; 1493 #address-cells = <1>; 1494 #size-cells = <0>; 1495 1496 pd_gpu { 1497 reg = <RK3288_PD_GPU>; 1498 clocks = <&cru ACLK_GPU>; 1499 }; 1500 1501 pd_hevc { 1502 reg = <RK3288_PD_HEVC>; 1503 clocks = <&cru ACLK_HEVC>, 1504 <&cru SCLK_HEVC_CABAC>, 1505 <&cru SCLK_HEVC_CORE>, 1506 <&cru HCLK_HEVC>; 1507 }; 1508 1509 pd_vio { 1510 reg = <RK3288_PD_VIO>; 1511 clocks = <&cru ACLK_IEP>, 1512 <&cru ACLK_ISP>, 1513 <&cru ACLK_RGA>, 1514 <&cru ACLK_VIP>, 1515 <&cru ACLK_VOP0>, 1516 <&cru ACLK_VOP1>, 1517 <&cru DCLK_VOP0>, 1518 <&cru DCLK_VOP1>, 1519 <&cru HCLK_IEP>, 1520 <&cru HCLK_ISP>, 1521 <&cru HCLK_RGA>, 1522 <&cru HCLK_VIP>, 1523 <&cru HCLK_VOP0>, 1524 <&cru HCLK_VOP1>, 1525 <&cru PCLK_EDP_CTRL>, 1526 <&cru PCLK_HDMI_CTRL>, 1527 <&cru PCLK_LVDS_PHY>, 1528 <&cru PCLK_MIPI_CSI>, 1529 <&cru PCLK_MIPI_DSI0>, 1530 <&cru PCLK_MIPI_DSI1>, 1531 <&cru SCLK_EDP_24M>, 1532 <&cru SCLK_EDP>, 1533 <&cru SCLK_HDMI_CEC>, 1534 <&cru SCLK_HDMI_HDCP>, 1535 <&cru SCLK_ISP_JPE>, 1536 <&cru SCLK_ISP>, 1537 <&cru SCLK_RGA>; 1538 }; 1539 1540 pd_video { 1541 reg = <RK3288_PD_VIDEO>; 1542 clocks = <&cru ACLK_VCODEC>, 1543 <&cru HCLK_VCODEC>; 1544 }; 1545 }; 1546}; 1547