1/* 2 * Device Tree Source for UniPhier PXs2 SoC 3 * 4 * Copyright (C) 2015-2016 Socionext Inc. 5 * Author: Masahiro Yamada <yamada.masahiro@socionext.com> 6 * 7 * This file is dual-licensed: you can use it either under the terms 8 * of the GPL or the X11 license, at your option. Note that this dual 9 * licensing only applies to this file, and not this project as a 10 * whole. 11 * 12 * a) This file is free software; you can redistribute it and/or 13 * modify it under the terms of the GNU General Public License as 14 * published by the Free Software Foundation; either version 2 of the 15 * License, or (at your option) any later version. 16 * 17 * This file is distributed in the hope that it will be useful, 18 * but WITHOUT ANY WARRANTY; without even the implied warranty of 19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 20 * GNU General Public License for more details. 21 * 22 * Or, alternatively, 23 * 24 * b) Permission is hereby granted, free of charge, to any person 25 * obtaining a copy of this software and associated documentation 26 * files (the "Software"), to deal in the Software without 27 * restriction, including without limitation the rights to use, 28 * copy, modify, merge, publish, distribute, sublicense, and/or 29 * sell copies of the Software, and to permit persons to whom the 30 * Software is furnished to do so, subject to the following 31 * conditions: 32 * 33 * The above copyright notice and this permission notice shall be 34 * included in all copies or substantial portions of the Software. 35 * 36 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 37 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 38 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 39 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 40 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 41 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 42 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 43 * OTHER DEALINGS IN THE SOFTWARE. 44 */ 45 46/ { 47 compatible = "socionext,uniphier-pxs2"; 48 #address-cells = <1>; 49 #size-cells = <1>; 50 51 cpus { 52 #address-cells = <1>; 53 #size-cells = <0>; 54 55 cpu@0 { 56 device_type = "cpu"; 57 compatible = "arm,cortex-a9"; 58 reg = <0>; 59 clocks = <&sys_clk 32>; 60 enable-method = "psci"; 61 next-level-cache = <&l2>; 62 operating-points-v2 = <&cpu_opp>; 63 }; 64 65 cpu@1 { 66 device_type = "cpu"; 67 compatible = "arm,cortex-a9"; 68 reg = <1>; 69 clocks = <&sys_clk 32>; 70 enable-method = "psci"; 71 next-level-cache = <&l2>; 72 operating-points-v2 = <&cpu_opp>; 73 }; 74 75 cpu@2 { 76 device_type = "cpu"; 77 compatible = "arm,cortex-a9"; 78 reg = <2>; 79 clocks = <&sys_clk 32>; 80 enable-method = "psci"; 81 next-level-cache = <&l2>; 82 operating-points-v2 = <&cpu_opp>; 83 }; 84 85 cpu@3 { 86 device_type = "cpu"; 87 compatible = "arm,cortex-a9"; 88 reg = <3>; 89 clocks = <&sys_clk 32>; 90 enable-method = "psci"; 91 next-level-cache = <&l2>; 92 operating-points-v2 = <&cpu_opp>; 93 }; 94 }; 95 96 cpu_opp: opp_table { 97 compatible = "operating-points-v2"; 98 opp-shared; 99 100 opp-100000000 { 101 opp-hz = /bits/ 64 <100000000>; 102 clock-latency-ns = <300>; 103 }; 104 opp-150000000 { 105 opp-hz = /bits/ 64 <150000000>; 106 clock-latency-ns = <300>; 107 }; 108 opp-200000000 { 109 opp-hz = /bits/ 64 <200000000>; 110 clock-latency-ns = <300>; 111 }; 112 opp-300000000 { 113 opp-hz = /bits/ 64 <300000000>; 114 clock-latency-ns = <300>; 115 }; 116 opp-400000000 { 117 opp-hz = /bits/ 64 <400000000>; 118 clock-latency-ns = <300>; 119 }; 120 opp-600000000 { 121 opp-hz = /bits/ 64 <600000000>; 122 clock-latency-ns = <300>; 123 }; 124 opp-800000000 { 125 opp-hz = /bits/ 64 <800000000>; 126 clock-latency-ns = <300>; 127 }; 128 opp-1200000000 { 129 opp-hz = /bits/ 64 <1200000000>; 130 clock-latency-ns = <300>; 131 }; 132 }; 133 134 psci { 135 compatible = "arm,psci-0.2"; 136 method = "smc"; 137 }; 138 139 clocks { 140 refclk: ref { 141 compatible = "fixed-clock"; 142 #clock-cells = <0>; 143 clock-frequency = <25000000>; 144 }; 145 146 arm_timer_clk: arm_timer_clk { 147 #clock-cells = <0>; 148 compatible = "fixed-clock"; 149 clock-frequency = <50000000>; 150 }; 151 }; 152 153 soc { 154 compatible = "simple-bus"; 155 #address-cells = <1>; 156 #size-cells = <1>; 157 ranges; 158 interrupt-parent = <&intc>; 159 u-boot,dm-pre-reloc; 160 161 l2: l2-cache@500c0000 { 162 compatible = "socionext,uniphier-system-cache"; 163 reg = <0x500c0000 0x2000>, <0x503c0100 0x8>, 164 <0x506c0000 0x400>; 165 interrupts = <0 174 4>, <0 175 4>, <0 190 4>, <0 191 4>; 166 cache-unified; 167 cache-size = <(1280 * 1024)>; 168 cache-sets = <512>; 169 cache-line-size = <128>; 170 cache-level = <2>; 171 }; 172 173 serial0: serial@54006800 { 174 compatible = "socionext,uniphier-uart"; 175 status = "disabled"; 176 reg = <0x54006800 0x40>; 177 interrupts = <0 33 4>; 178 pinctrl-names = "default"; 179 pinctrl-0 = <&pinctrl_uart0>; 180 clocks = <&peri_clk 0>; 181 clock-frequency = <88900000>; 182 }; 183 184 serial1: serial@54006900 { 185 compatible = "socionext,uniphier-uart"; 186 status = "disabled"; 187 reg = <0x54006900 0x40>; 188 interrupts = <0 35 4>; 189 pinctrl-names = "default"; 190 pinctrl-0 = <&pinctrl_uart1>; 191 clocks = <&peri_clk 1>; 192 clock-frequency = <88900000>; 193 }; 194 195 serial2: serial@54006a00 { 196 compatible = "socionext,uniphier-uart"; 197 status = "disabled"; 198 reg = <0x54006a00 0x40>; 199 interrupts = <0 37 4>; 200 pinctrl-names = "default"; 201 pinctrl-0 = <&pinctrl_uart2>; 202 clocks = <&peri_clk 2>; 203 clock-frequency = <88900000>; 204 }; 205 206 serial3: serial@54006b00 { 207 compatible = "socionext,uniphier-uart"; 208 status = "disabled"; 209 reg = <0x54006b00 0x40>; 210 interrupts = <0 177 4>; 211 pinctrl-names = "default"; 212 pinctrl-0 = <&pinctrl_uart3>; 213 clocks = <&peri_clk 3>; 214 clock-frequency = <88900000>; 215 }; 216 217 port0x: gpio@55000008 { 218 compatible = "socionext,uniphier-gpio"; 219 reg = <0x55000008 0x8>; 220 gpio-controller; 221 #gpio-cells = <2>; 222 }; 223 224 port1x: gpio@55000010 { 225 compatible = "socionext,uniphier-gpio"; 226 reg = <0x55000010 0x8>; 227 gpio-controller; 228 #gpio-cells = <2>; 229 }; 230 231 port2x: gpio@55000018 { 232 compatible = "socionext,uniphier-gpio"; 233 reg = <0x55000018 0x8>; 234 gpio-controller; 235 #gpio-cells = <2>; 236 }; 237 238 port3x: gpio@55000020 { 239 compatible = "socionext,uniphier-gpio"; 240 reg = <0x55000020 0x8>; 241 gpio-controller; 242 #gpio-cells = <2>; 243 }; 244 245 port4: gpio@55000028 { 246 compatible = "socionext,uniphier-gpio"; 247 reg = <0x55000028 0x8>; 248 gpio-controller; 249 #gpio-cells = <2>; 250 }; 251 252 port5x: gpio@55000030 { 253 compatible = "socionext,uniphier-gpio"; 254 reg = <0x55000030 0x8>; 255 gpio-controller; 256 #gpio-cells = <2>; 257 }; 258 259 port6x: gpio@55000038 { 260 compatible = "socionext,uniphier-gpio"; 261 reg = <0x55000038 0x8>; 262 gpio-controller; 263 #gpio-cells = <2>; 264 }; 265 266 port7x: gpio@55000040 { 267 compatible = "socionext,uniphier-gpio"; 268 reg = <0x55000040 0x8>; 269 gpio-controller; 270 #gpio-cells = <2>; 271 }; 272 273 port8x: gpio@55000048 { 274 compatible = "socionext,uniphier-gpio"; 275 reg = <0x55000048 0x8>; 276 gpio-controller; 277 #gpio-cells = <2>; 278 }; 279 280 port9x: gpio@55000050 { 281 compatible = "socionext,uniphier-gpio"; 282 reg = <0x55000050 0x8>; 283 gpio-controller; 284 #gpio-cells = <2>; 285 }; 286 287 port10x: gpio@55000058 { 288 compatible = "socionext,uniphier-gpio"; 289 reg = <0x55000058 0x8>; 290 gpio-controller; 291 #gpio-cells = <2>; 292 }; 293 294 port12x: gpio@55000068 { 295 compatible = "socionext,uniphier-gpio"; 296 reg = <0x55000068 0x8>; 297 gpio-controller; 298 #gpio-cells = <2>; 299 }; 300 301 port13x: gpio@55000070 { 302 compatible = "socionext,uniphier-gpio"; 303 reg = <0x55000070 0x8>; 304 gpio-controller; 305 #gpio-cells = <2>; 306 }; 307 308 port14x: gpio@55000078 { 309 compatible = "socionext,uniphier-gpio"; 310 reg = <0x55000078 0x8>; 311 gpio-controller; 312 #gpio-cells = <2>; 313 }; 314 315 port15x: gpio@55000080 { 316 compatible = "socionext,uniphier-gpio"; 317 reg = <0x55000080 0x8>; 318 gpio-controller; 319 #gpio-cells = <2>; 320 }; 321 322 port16x: gpio@55000088 { 323 compatible = "socionext,uniphier-gpio"; 324 reg = <0x55000088 0x8>; 325 gpio-controller; 326 #gpio-cells = <2>; 327 }; 328 329 port17x: gpio@550000a0 { 330 compatible = "socionext,uniphier-gpio"; 331 reg = <0x550000a0 0x8>; 332 gpio-controller; 333 #gpio-cells = <2>; 334 }; 335 336 port18x: gpio@550000a8 { 337 compatible = "socionext,uniphier-gpio"; 338 reg = <0x550000a8 0x8>; 339 gpio-controller; 340 #gpio-cells = <2>; 341 }; 342 343 port19x: gpio@550000b0 { 344 compatible = "socionext,uniphier-gpio"; 345 reg = <0x550000b0 0x8>; 346 gpio-controller; 347 #gpio-cells = <2>; 348 }; 349 350 port20x: gpio@550000b8 { 351 compatible = "socionext,uniphier-gpio"; 352 reg = <0x550000b8 0x8>; 353 gpio-controller; 354 #gpio-cells = <2>; 355 }; 356 357 port21x: gpio@550000c0 { 358 compatible = "socionext,uniphier-gpio"; 359 reg = <0x550000c0 0x8>; 360 gpio-controller; 361 #gpio-cells = <2>; 362 }; 363 364 port22x: gpio@550000c8 { 365 compatible = "socionext,uniphier-gpio"; 366 reg = <0x550000c8 0x8>; 367 gpio-controller; 368 #gpio-cells = <2>; 369 }; 370 371 port23x: gpio@550000d0 { 372 compatible = "socionext,uniphier-gpio"; 373 reg = <0x550000d0 0x8>; 374 gpio-controller; 375 #gpio-cells = <2>; 376 }; 377 378 port24x: gpio@550000d8 { 379 compatible = "socionext,uniphier-gpio"; 380 reg = <0x550000d8 0x8>; 381 gpio-controller; 382 #gpio-cells = <2>; 383 }; 384 385 port25x: gpio@550000e0 { 386 compatible = "socionext,uniphier-gpio"; 387 reg = <0x550000e0 0x8>; 388 gpio-controller; 389 #gpio-cells = <2>; 390 }; 391 392 port26x: gpio@550000e8 { 393 compatible = "socionext,uniphier-gpio"; 394 reg = <0x550000e8 0x8>; 395 gpio-controller; 396 #gpio-cells = <2>; 397 }; 398 399 port27x: gpio@550000f0 { 400 compatible = "socionext,uniphier-gpio"; 401 reg = <0x550000f0 0x8>; 402 gpio-controller; 403 #gpio-cells = <2>; 404 }; 405 406 port28x: gpio@550000f8 { 407 compatible = "socionext,uniphier-gpio"; 408 reg = <0x550000f8 0x8>; 409 gpio-controller; 410 #gpio-cells = <2>; 411 }; 412 413 i2c0: i2c@58780000 { 414 compatible = "socionext,uniphier-fi2c"; 415 status = "disabled"; 416 reg = <0x58780000 0x80>; 417 #address-cells = <1>; 418 #size-cells = <0>; 419 interrupts = <0 41 4>; 420 pinctrl-names = "default"; 421 pinctrl-0 = <&pinctrl_i2c0>; 422 clocks = <&peri_clk 4>; 423 clock-frequency = <100000>; 424 }; 425 426 i2c1: i2c@58781000 { 427 compatible = "socionext,uniphier-fi2c"; 428 status = "disabled"; 429 reg = <0x58781000 0x80>; 430 #address-cells = <1>; 431 #size-cells = <0>; 432 interrupts = <0 42 4>; 433 pinctrl-names = "default"; 434 pinctrl-0 = <&pinctrl_i2c1>; 435 clocks = <&peri_clk 5>; 436 clock-frequency = <100000>; 437 }; 438 439 i2c2: i2c@58782000 { 440 compatible = "socionext,uniphier-fi2c"; 441 status = "disabled"; 442 reg = <0x58782000 0x80>; 443 #address-cells = <1>; 444 #size-cells = <0>; 445 interrupts = <0 43 4>; 446 pinctrl-names = "default"; 447 pinctrl-0 = <&pinctrl_i2c2>; 448 clocks = <&peri_clk 6>; 449 clock-frequency = <100000>; 450 }; 451 452 i2c3: i2c@58783000 { 453 compatible = "socionext,uniphier-fi2c"; 454 status = "disabled"; 455 reg = <0x58783000 0x80>; 456 #address-cells = <1>; 457 #size-cells = <0>; 458 interrupts = <0 44 4>; 459 pinctrl-names = "default"; 460 pinctrl-0 = <&pinctrl_i2c3>; 461 clocks = <&peri_clk 7>; 462 clock-frequency = <100000>; 463 }; 464 465 /* chip-internal connection for DMD */ 466 i2c4: i2c@58784000 { 467 compatible = "socionext,uniphier-fi2c"; 468 reg = <0x58784000 0x80>; 469 #address-cells = <1>; 470 #size-cells = <0>; 471 interrupts = <0 45 4>; 472 clocks = <&peri_clk 8>; 473 clock-frequency = <400000>; 474 }; 475 476 /* chip-internal connection for STM */ 477 i2c5: i2c@58785000 { 478 compatible = "socionext,uniphier-fi2c"; 479 reg = <0x58785000 0x80>; 480 #address-cells = <1>; 481 #size-cells = <0>; 482 interrupts = <0 25 4>; 483 clocks = <&peri_clk 9>; 484 clock-frequency = <400000>; 485 }; 486 487 /* chip-internal connection for HDMI */ 488 i2c6: i2c@58786000 { 489 compatible = "socionext,uniphier-fi2c"; 490 reg = <0x58786000 0x80>; 491 #address-cells = <1>; 492 #size-cells = <0>; 493 interrupts = <0 26 4>; 494 clocks = <&peri_clk 10>; 495 clock-frequency = <400000>; 496 }; 497 498 system_bus: system-bus@58c00000 { 499 compatible = "socionext,uniphier-system-bus"; 500 status = "disabled"; 501 reg = <0x58c00000 0x400>; 502 #address-cells = <2>; 503 #size-cells = <1>; 504 pinctrl-names = "default"; 505 pinctrl-0 = <&pinctrl_system_bus>; 506 }; 507 508 smpctrl@59801000 { 509 compatible = "socionext,uniphier-smpctrl"; 510 reg = <0x59801000 0x400>; 511 }; 512 513 sdctrl@59810000 { 514 compatible = "socionext,uniphier-pxs2-sdctrl", 515 "simple-mfd", "syscon"; 516 reg = <0x59810000 0x800>; 517 u-boot,dm-pre-reloc; 518 519 sd_clk: clock { 520 compatible = "socionext,uniphier-pxs2-sd-clock"; 521 #clock-cells = <1>; 522 }; 523 524 sd_rst: reset { 525 compatible = "socionext,uniphier-pxs2-sd-reset"; 526 #reset-cells = <1>; 527 }; 528 }; 529 530 perictrl@59820000 { 531 compatible = "socionext,uniphier-pxs2-perictrl", 532 "simple-mfd", "syscon"; 533 reg = <0x59820000 0x200>; 534 535 peri_clk: clock { 536 compatible = "socionext,uniphier-pxs2-peri-clock"; 537 #clock-cells = <1>; 538 }; 539 540 peri_rst: reset { 541 compatible = "socionext,uniphier-pxs2-peri-reset"; 542 #reset-cells = <1>; 543 }; 544 }; 545 546 emmc: sdhc@5a000000 { 547 compatible = "socionext,uniphier-sdhc"; 548 status = "disabled"; 549 reg = <0x5a000000 0x800>; 550 interrupts = <0 78 4>; 551 pinctrl-names = "default"; 552 pinctrl-0 = <&pinctrl_emmc>; 553 clocks = <&sd_clk 1>; 554 reset-names = "host"; 555 resets = <&sd_rst 1>; 556 bus-width = <8>; 557 non-removable; 558 cap-mmc-highspeed; 559 cap-mmc-hw-reset; 560 no-3-3-v; 561 }; 562 563 sd: sdhc@5a400000 { 564 compatible = "socionext,uniphier-sdhc"; 565 status = "disabled"; 566 reg = <0x5a400000 0x800>; 567 interrupts = <0 76 4>; 568 pinctrl-names = "default", "1.8v"; 569 pinctrl-0 = <&pinctrl_sd>; 570 pinctrl-1 = <&pinctrl_sd_1v8>; 571 clocks = <&sd_clk 0>; 572 reset-names = "host"; 573 resets = <&sd_rst 0>; 574 bus-width = <4>; 575 cap-sd-highspeed; 576 sd-uhs-sdr12; 577 sd-uhs-sdr25; 578 sd-uhs-sdr50; 579 }; 580 581 soc-glue@5f800000 { 582 compatible = "socionext,uniphier-pxs2-soc-glue", 583 "simple-mfd", "syscon"; 584 reg = <0x5f800000 0x2000>; 585 u-boot,dm-pre-reloc; 586 587 pinctrl: pinctrl { 588 compatible = "socionext,uniphier-pxs2-pinctrl"; 589 u-boot,dm-pre-reloc; 590 }; 591 }; 592 593 aidet@5fc20000 { 594 compatible = "simple-mfd", "syscon"; 595 reg = <0x5fc20000 0x200>; 596 }; 597 598 timer@60000200 { 599 compatible = "arm,cortex-a9-global-timer"; 600 reg = <0x60000200 0x20>; 601 interrupts = <1 11 0xf04>; 602 clocks = <&arm_timer_clk>; 603 }; 604 605 timer@60000600 { 606 compatible = "arm,cortex-a9-twd-timer"; 607 reg = <0x60000600 0x20>; 608 interrupts = <1 13 0xf04>; 609 clocks = <&arm_timer_clk>; 610 }; 611 612 intc: interrupt-controller@60001000 { 613 compatible = "arm,cortex-a9-gic"; 614 reg = <0x60001000 0x1000>, 615 <0x60000100 0x100>; 616 #interrupt-cells = <3>; 617 interrupt-controller; 618 }; 619 620 sysctrl@61840000 { 621 compatible = "socionext,uniphier-pxs2-sysctrl", 622 "simple-mfd", "syscon"; 623 reg = <0x61840000 0x10000>; 624 625 sys_clk: clock { 626 compatible = "socionext,uniphier-pxs2-clock"; 627 #clock-cells = <1>; 628 }; 629 630 sys_rst: reset { 631 compatible = "socionext,uniphier-pxs2-reset"; 632 #reset-cells = <1>; 633 }; 634 }; 635 636 usb0: usb@65b00000 { 637 compatible = "socionext,uniphier-pxs2-dwc3"; 638 status = "disabled"; 639 reg = <0x65b00000 0x1000>; 640 #address-cells = <1>; 641 #size-cells = <1>; 642 ranges; 643 pinctrl-names = "default"; 644 pinctrl-0 = <&pinctrl_usb0>, <&pinctrl_usb2>; 645 dwc3@65a00000 { 646 compatible = "snps,dwc3"; 647 reg = <0x65a00000 0x10000>; 648 interrupts = <0 134 4>; 649 tx-fifo-resize; 650 }; 651 }; 652 653 usb1: usb@65d00000 { 654 compatible = "socionext,uniphier-pxs2-dwc3"; 655 status = "disabled"; 656 reg = <0x65d00000 0x1000>; 657 #address-cells = <1>; 658 #size-cells = <1>; 659 ranges; 660 pinctrl-names = "default"; 661 pinctrl-0 = <&pinctrl_usb1>, <&pinctrl_usb3>; 662 dwc3@65c00000 { 663 compatible = "snps,dwc3"; 664 reg = <0x65c00000 0x10000>; 665 interrupts = <0 137 4>; 666 tx-fifo-resize; 667 }; 668 }; 669 670 nand: nand@68000000 { 671 compatible = "socionext,uniphier-denali-nand-v5b"; 672 status = "disabled"; 673 reg-names = "nand_data", "denali_reg"; 674 reg = <0x68000000 0x20>, <0x68100000 0x1000>; 675 interrupts = <0 65 4>; 676 pinctrl-names = "default"; 677 pinctrl-0 = <&pinctrl_nand>; 678 clocks = <&sys_clk 2>; 679 nand-ecc-strength = <8>; 680 }; 681 }; 682}; 683 684/include/ "uniphier-pinctrl.dtsi" 685