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