1// SPDX-License-Identifier: GPL-2.0+ OR MIT 2// 3// Device Tree Source for UniPhier LD11 SoC 4// 5// Copyright (C) 2016 Socionext Inc. 6// Author: Masahiro Yamada <yamada.masahiro@socionext.com> 7 8#include <dt-bindings/gpio/gpio.h> 9#include <dt-bindings/gpio/uniphier-gpio.h> 10 11/memreserve/ 0x80000000 0x02000000; 12 13/ { 14 compatible = "socionext,uniphier-ld11"; 15 #address-cells = <2>; 16 #size-cells = <2>; 17 interrupt-parent = <&gic>; 18 19 cpus { 20 #address-cells = <2>; 21 #size-cells = <0>; 22 23 cpu-map { 24 cluster0 { 25 core0 { 26 cpu = <&cpu0>; 27 }; 28 core1 { 29 cpu = <&cpu1>; 30 }; 31 }; 32 }; 33 34 cpu0: cpu@0 { 35 device_type = "cpu"; 36 compatible = "arm,cortex-a53", "arm,armv8"; 37 reg = <0 0x000>; 38 clocks = <&sys_clk 33>; 39 enable-method = "psci"; 40 operating-points-v2 = <&cluster0_opp>; 41 }; 42 43 cpu1: cpu@1 { 44 device_type = "cpu"; 45 compatible = "arm,cortex-a53", "arm,armv8"; 46 reg = <0 0x001>; 47 clocks = <&sys_clk 33>; 48 enable-method = "psci"; 49 operating-points-v2 = <&cluster0_opp>; 50 }; 51 }; 52 53 cluster0_opp: opp-table { 54 compatible = "operating-points-v2"; 55 opp-shared; 56 57 opp-245000000 { 58 opp-hz = /bits/ 64 <245000000>; 59 clock-latency-ns = <300>; 60 }; 61 opp-250000000 { 62 opp-hz = /bits/ 64 <250000000>; 63 clock-latency-ns = <300>; 64 }; 65 opp-490000000 { 66 opp-hz = /bits/ 64 <490000000>; 67 clock-latency-ns = <300>; 68 }; 69 opp-500000000 { 70 opp-hz = /bits/ 64 <500000000>; 71 clock-latency-ns = <300>; 72 }; 73 opp-653334000 { 74 opp-hz = /bits/ 64 <653334000>; 75 clock-latency-ns = <300>; 76 }; 77 opp-666667000 { 78 opp-hz = /bits/ 64 <666667000>; 79 clock-latency-ns = <300>; 80 }; 81 opp-980000000 { 82 opp-hz = /bits/ 64 <980000000>; 83 clock-latency-ns = <300>; 84 }; 85 }; 86 87 psci { 88 compatible = "arm,psci-1.0"; 89 method = "smc"; 90 }; 91 92 clocks { 93 refclk: ref { 94 compatible = "fixed-clock"; 95 #clock-cells = <0>; 96 clock-frequency = <25000000>; 97 }; 98 }; 99 100 emmc_pwrseq: emmc-pwrseq { 101 compatible = "mmc-pwrseq-emmc"; 102 reset-gpios = <&gpio UNIPHIER_GPIO_PORT(3, 2) GPIO_ACTIVE_LOW>; 103 }; 104 105 timer { 106 compatible = "arm,armv8-timer"; 107 interrupts = <1 13 4>, 108 <1 14 4>, 109 <1 11 4>, 110 <1 10 4>; 111 }; 112 113 soc@0 { 114 compatible = "simple-bus"; 115 #address-cells = <1>; 116 #size-cells = <1>; 117 ranges = <0 0 0 0xffffffff>; 118 119 spi0: spi@54006000 { 120 compatible = "socionext,uniphier-scssi"; 121 status = "disabled"; 122 reg = <0x54006000 0x100>; 123 interrupts = <0 39 4>; 124 pinctrl-names = "default"; 125 pinctrl-0 = <&pinctrl_spi0>; 126 clocks = <&peri_clk 11>; 127 resets = <&peri_rst 11>; 128 }; 129 130 spi1: spi@54006100 { 131 compatible = "socionext,uniphier-scssi"; 132 status = "disabled"; 133 reg = <0x54006100 0x100>; 134 interrupts = <0 216 4>; 135 pinctrl-names = "default"; 136 pinctrl-0 = <&pinctrl_spi1>; 137 clocks = <&peri_clk 11>; 138 resets = <&peri_rst 11>; 139 }; 140 141 serial0: serial@54006800 { 142 compatible = "socionext,uniphier-uart"; 143 status = "disabled"; 144 reg = <0x54006800 0x40>; 145 interrupts = <0 33 4>; 146 pinctrl-names = "default"; 147 pinctrl-0 = <&pinctrl_uart0>; 148 clocks = <&peri_clk 0>; 149 resets = <&peri_rst 0>; 150 }; 151 152 serial1: serial@54006900 { 153 compatible = "socionext,uniphier-uart"; 154 status = "disabled"; 155 reg = <0x54006900 0x40>; 156 interrupts = <0 35 4>; 157 pinctrl-names = "default"; 158 pinctrl-0 = <&pinctrl_uart1>; 159 clocks = <&peri_clk 1>; 160 resets = <&peri_rst 1>; 161 }; 162 163 serial2: serial@54006a00 { 164 compatible = "socionext,uniphier-uart"; 165 status = "disabled"; 166 reg = <0x54006a00 0x40>; 167 interrupts = <0 37 4>; 168 pinctrl-names = "default"; 169 pinctrl-0 = <&pinctrl_uart2>; 170 clocks = <&peri_clk 2>; 171 resets = <&peri_rst 2>; 172 }; 173 174 serial3: serial@54006b00 { 175 compatible = "socionext,uniphier-uart"; 176 status = "disabled"; 177 reg = <0x54006b00 0x40>; 178 interrupts = <0 177 4>; 179 pinctrl-names = "default"; 180 pinctrl-0 = <&pinctrl_uart3>; 181 clocks = <&peri_clk 3>; 182 resets = <&peri_rst 3>; 183 }; 184 185 gpio: gpio@55000000 { 186 compatible = "socionext,uniphier-gpio"; 187 reg = <0x55000000 0x200>; 188 interrupt-parent = <&aidet>; 189 interrupt-controller; 190 #interrupt-cells = <2>; 191 gpio-controller; 192 #gpio-cells = <2>; 193 gpio-ranges = <&pinctrl 0 0 0>, 194 <&pinctrl 43 0 0>, 195 <&pinctrl 51 0 0>, 196 <&pinctrl 96 0 0>, 197 <&pinctrl 160 0 0>, 198 <&pinctrl 184 0 0>; 199 gpio-ranges-group-names = "gpio_range0", 200 "gpio_range1", 201 "gpio_range2", 202 "gpio_range3", 203 "gpio_range4", 204 "gpio_range5"; 205 ngpios = <200>; 206 socionext,interrupt-ranges = <0 48 16>, <16 154 5>, 207 <21 217 3>; 208 }; 209 210 audio@56000000 { 211 compatible = "socionext,uniphier-ld11-aio"; 212 reg = <0x56000000 0x80000>; 213 interrupts = <0 144 4>; 214 pinctrl-names = "default"; 215 pinctrl-0 = <&pinctrl_aout1>, 216 <&pinctrl_aoutiec1>; 217 clock-names = "aio"; 218 clocks = <&sys_clk 40>; 219 reset-names = "aio"; 220 resets = <&sys_rst 40>; 221 #sound-dai-cells = <1>; 222 socionext,syscon = <&soc_glue>; 223 224 i2s_port0: port@0 { 225 i2s_hdmi: endpoint { 226 }; 227 }; 228 229 i2s_port1: port@1 { 230 i2s_pcmin2: endpoint { 231 }; 232 }; 233 234 i2s_port2: port@2 { 235 i2s_line: endpoint { 236 dai-format = "i2s"; 237 remote-endpoint = <&evea_line>; 238 }; 239 }; 240 241 i2s_port3: port@3 { 242 i2s_hpcmout1: endpoint { 243 }; 244 }; 245 246 i2s_port4: port@4 { 247 i2s_hp: endpoint { 248 dai-format = "i2s"; 249 remote-endpoint = <&evea_hp>; 250 }; 251 }; 252 253 spdif_port0: port@5 { 254 spdif_hiecout1: endpoint { 255 }; 256 }; 257 258 src_port0: port@6 { 259 i2s_epcmout2: endpoint { 260 }; 261 }; 262 263 src_port1: port@7 { 264 i2s_epcmout3: endpoint { 265 }; 266 }; 267 268 comp_spdif_port0: port@8 { 269 comp_spdif_hiecout1: endpoint { 270 }; 271 }; 272 }; 273 274 codec@57900000 { 275 compatible = "socionext,uniphier-evea"; 276 reg = <0x57900000 0x1000>; 277 clock-names = "evea", "exiv"; 278 clocks = <&sys_clk 41>, <&sys_clk 42>; 279 reset-names = "evea", "exiv", "adamv"; 280 resets = <&sys_rst 41>, <&sys_rst 42>, <&adamv_rst 0>; 281 #sound-dai-cells = <1>; 282 283 port@0 { 284 evea_line: endpoint { 285 remote-endpoint = <&i2s_line>; 286 }; 287 }; 288 289 port@1 { 290 evea_hp: endpoint { 291 remote-endpoint = <&i2s_hp>; 292 }; 293 }; 294 }; 295 296 adamv@57920000 { 297 compatible = "socionext,uniphier-ld11-adamv", 298 "simple-mfd", "syscon"; 299 reg = <0x57920000 0x1000>; 300 301 adamv_rst: reset { 302 compatible = "socionext,uniphier-ld11-adamv-reset"; 303 #reset-cells = <1>; 304 }; 305 }; 306 307 i2c0: i2c@58780000 { 308 compatible = "socionext,uniphier-fi2c"; 309 status = "disabled"; 310 reg = <0x58780000 0x80>; 311 #address-cells = <1>; 312 #size-cells = <0>; 313 interrupts = <0 41 4>; 314 pinctrl-names = "default"; 315 pinctrl-0 = <&pinctrl_i2c0>; 316 clocks = <&peri_clk 4>; 317 resets = <&peri_rst 4>; 318 clock-frequency = <100000>; 319 }; 320 321 i2c1: i2c@58781000 { 322 compatible = "socionext,uniphier-fi2c"; 323 status = "disabled"; 324 reg = <0x58781000 0x80>; 325 #address-cells = <1>; 326 #size-cells = <0>; 327 interrupts = <0 42 4>; 328 pinctrl-names = "default"; 329 pinctrl-0 = <&pinctrl_i2c1>; 330 clocks = <&peri_clk 5>; 331 resets = <&peri_rst 5>; 332 clock-frequency = <100000>; 333 }; 334 335 i2c2: i2c@58782000 { 336 compatible = "socionext,uniphier-fi2c"; 337 reg = <0x58782000 0x80>; 338 #address-cells = <1>; 339 #size-cells = <0>; 340 interrupts = <0 43 4>; 341 clocks = <&peri_clk 6>; 342 resets = <&peri_rst 6>; 343 clock-frequency = <400000>; 344 }; 345 346 i2c3: i2c@58783000 { 347 compatible = "socionext,uniphier-fi2c"; 348 status = "disabled"; 349 reg = <0x58783000 0x80>; 350 #address-cells = <1>; 351 #size-cells = <0>; 352 interrupts = <0 44 4>; 353 pinctrl-names = "default"; 354 pinctrl-0 = <&pinctrl_i2c3>; 355 clocks = <&peri_clk 7>; 356 resets = <&peri_rst 7>; 357 clock-frequency = <100000>; 358 }; 359 360 i2c4: i2c@58784000 { 361 compatible = "socionext,uniphier-fi2c"; 362 status = "disabled"; 363 reg = <0x58784000 0x80>; 364 #address-cells = <1>; 365 #size-cells = <0>; 366 interrupts = <0 45 4>; 367 pinctrl-names = "default"; 368 pinctrl-0 = <&pinctrl_i2c4>; 369 clocks = <&peri_clk 8>; 370 resets = <&peri_rst 8>; 371 clock-frequency = <100000>; 372 }; 373 374 i2c5: i2c@58785000 { 375 compatible = "socionext,uniphier-fi2c"; 376 reg = <0x58785000 0x80>; 377 #address-cells = <1>; 378 #size-cells = <0>; 379 interrupts = <0 25 4>; 380 clocks = <&peri_clk 9>; 381 resets = <&peri_rst 9>; 382 clock-frequency = <400000>; 383 }; 384 385 system_bus: system-bus@58c00000 { 386 compatible = "socionext,uniphier-system-bus"; 387 status = "disabled"; 388 reg = <0x58c00000 0x400>; 389 #address-cells = <2>; 390 #size-cells = <1>; 391 pinctrl-names = "default"; 392 pinctrl-0 = <&pinctrl_system_bus>; 393 }; 394 395 smpctrl@59801000 { 396 compatible = "socionext,uniphier-smpctrl"; 397 reg = <0x59801000 0x400>; 398 }; 399 400 sdctrl@59810000 { 401 compatible = "socionext,uniphier-ld11-sdctrl", 402 "simple-mfd", "syscon"; 403 reg = <0x59810000 0x400>; 404 405 sd_rst: reset { 406 compatible = "socionext,uniphier-ld11-sd-reset"; 407 #reset-cells = <1>; 408 }; 409 }; 410 411 perictrl@59820000 { 412 compatible = "socionext,uniphier-ld11-perictrl", 413 "simple-mfd", "syscon"; 414 reg = <0x59820000 0x200>; 415 416 peri_clk: clock { 417 compatible = "socionext,uniphier-ld11-peri-clock"; 418 #clock-cells = <1>; 419 }; 420 421 peri_rst: reset { 422 compatible = "socionext,uniphier-ld11-peri-reset"; 423 #reset-cells = <1>; 424 }; 425 }; 426 427 emmc: sdhc@5a000000 { 428 compatible = "socionext,uniphier-sd4hc", "cdns,sd4hc"; 429 reg = <0x5a000000 0x400>; 430 interrupts = <0 78 4>; 431 pinctrl-names = "default"; 432 pinctrl-0 = <&pinctrl_emmc>; 433 clocks = <&sys_clk 4>; 434 resets = <&sys_rst 4>; 435 bus-width = <8>; 436 mmc-ddr-1_8v; 437 mmc-hs200-1_8v; 438 mmc-pwrseq = <&emmc_pwrseq>; 439 cdns,phy-input-delay-legacy = <9>; 440 cdns,phy-input-delay-mmc-highspeed = <2>; 441 cdns,phy-input-delay-mmc-ddr = <3>; 442 cdns,phy-dll-delay-sdclk = <21>; 443 cdns,phy-dll-delay-sdclk-hsmmc = <21>; 444 }; 445 446 usb0: usb@5a800100 { 447 compatible = "socionext,uniphier-ehci", "generic-ehci"; 448 status = "disabled"; 449 reg = <0x5a800100 0x100>; 450 interrupts = <0 243 4>; 451 pinctrl-names = "default"; 452 pinctrl-0 = <&pinctrl_usb0>; 453 clocks = <&sys_clk 8>, <&mio_clk 7>, <&mio_clk 8>, 454 <&mio_clk 12>; 455 resets = <&sys_rst 8>, <&mio_rst 7>, <&mio_rst 8>, 456 <&mio_rst 12>; 457 phy-names = "usb"; 458 phys = <&usb_phy0>; 459 has-transaction-translator; 460 }; 461 462 usb1: usb@5a810100 { 463 compatible = "socionext,uniphier-ehci", "generic-ehci"; 464 status = "disabled"; 465 reg = <0x5a810100 0x100>; 466 interrupts = <0 244 4>; 467 pinctrl-names = "default"; 468 pinctrl-0 = <&pinctrl_usb1>; 469 clocks = <&sys_clk 8>, <&mio_clk 7>, <&mio_clk 9>, 470 <&mio_clk 13>; 471 resets = <&sys_rst 8>, <&mio_rst 7>, <&mio_rst 9>, 472 <&mio_rst 13>; 473 phy-names = "usb"; 474 phys = <&usb_phy1>; 475 has-transaction-translator; 476 }; 477 478 usb2: usb@5a820100 { 479 compatible = "socionext,uniphier-ehci", "generic-ehci"; 480 status = "disabled"; 481 reg = <0x5a820100 0x100>; 482 interrupts = <0 245 4>; 483 pinctrl-names = "default"; 484 pinctrl-0 = <&pinctrl_usb2>; 485 clocks = <&sys_clk 8>, <&mio_clk 7>, <&mio_clk 10>, 486 <&mio_clk 14>; 487 resets = <&sys_rst 8>, <&mio_rst 7>, <&mio_rst 10>, 488 <&mio_rst 14>; 489 phy-names = "usb"; 490 phys = <&usb_phy2>; 491 has-transaction-translator; 492 }; 493 494 mioctrl@5b3e0000 { 495 compatible = "socionext,uniphier-ld11-mioctrl", 496 "simple-mfd", "syscon"; 497 reg = <0x5b3e0000 0x800>; 498 499 mio_clk: clock { 500 compatible = "socionext,uniphier-ld11-mio-clock"; 501 #clock-cells = <1>; 502 }; 503 504 mio_rst: reset { 505 compatible = "socionext,uniphier-ld11-mio-reset"; 506 #reset-cells = <1>; 507 resets = <&sys_rst 7>; 508 }; 509 }; 510 511 soc_glue: soc-glue@5f800000 { 512 compatible = "socionext,uniphier-ld11-soc-glue", 513 "simple-mfd", "syscon"; 514 reg = <0x5f800000 0x2000>; 515 516 pinctrl: pinctrl { 517 compatible = "socionext,uniphier-ld11-pinctrl"; 518 }; 519 520 usb-phy { 521 compatible = "socionext,uniphier-ld11-usb2-phy"; 522 #address-cells = <1>; 523 #size-cells = <0>; 524 525 usb_phy0: phy@0 { 526 reg = <0>; 527 #phy-cells = <0>; 528 }; 529 530 usb_phy1: phy@1 { 531 reg = <1>; 532 #phy-cells = <0>; 533 }; 534 535 usb_phy2: phy@2 { 536 reg = <2>; 537 #phy-cells = <0>; 538 }; 539 }; 540 }; 541 542 soc-glue@5f900000 { 543 compatible = "socionext,uniphier-ld11-soc-glue-debug", 544 "simple-mfd"; 545 #address-cells = <1>; 546 #size-cells = <1>; 547 ranges = <0 0x5f900000 0x2000>; 548 549 efuse@100 { 550 compatible = "socionext,uniphier-efuse"; 551 reg = <0x100 0x28>; 552 }; 553 554 efuse@200 { 555 compatible = "socionext,uniphier-efuse"; 556 reg = <0x200 0x68>; 557 }; 558 }; 559 560 aidet: aidet@5fc20000 { 561 compatible = "socionext,uniphier-ld11-aidet"; 562 reg = <0x5fc20000 0x200>; 563 interrupt-controller; 564 #interrupt-cells = <2>; 565 }; 566 567 gic: interrupt-controller@5fe00000 { 568 compatible = "arm,gic-v3"; 569 reg = <0x5fe00000 0x10000>, /* GICD */ 570 <0x5fe40000 0x80000>; /* GICR */ 571 interrupt-controller; 572 #interrupt-cells = <3>; 573 interrupts = <1 9 4>; 574 }; 575 576 sysctrl@61840000 { 577 compatible = "socionext,uniphier-ld11-sysctrl", 578 "simple-mfd", "syscon"; 579 reg = <0x61840000 0x10000>; 580 581 sys_clk: clock { 582 compatible = "socionext,uniphier-ld11-clock"; 583 #clock-cells = <1>; 584 }; 585 586 sys_rst: reset { 587 compatible = "socionext,uniphier-ld11-reset"; 588 #reset-cells = <1>; 589 }; 590 591 watchdog { 592 compatible = "socionext,uniphier-wdt"; 593 }; 594 }; 595 596 eth: ethernet@65000000 { 597 compatible = "socionext,uniphier-ld11-ave4"; 598 status = "disabled"; 599 reg = <0x65000000 0x8500>; 600 interrupts = <0 66 4>; 601 clock-names = "ether"; 602 clocks = <&sys_clk 6>; 603 reset-names = "ether"; 604 resets = <&sys_rst 6>; 605 phy-mode = "internal"; 606 local-mac-address = [00 00 00 00 00 00]; 607 socionext,syscon-phy-mode = <&soc_glue 0>; 608 609 mdio: mdio { 610 #address-cells = <1>; 611 #size-cells = <0>; 612 }; 613 }; 614 615 nand: nand@68000000 { 616 compatible = "socionext,uniphier-denali-nand-v5b"; 617 status = "disabled"; 618 reg-names = "nand_data", "denali_reg"; 619 reg = <0x68000000 0x20>, <0x68100000 0x1000>; 620 interrupts = <0 65 4>; 621 pinctrl-names = "default"; 622 pinctrl-0 = <&pinctrl_nand>; 623 clock-names = "nand", "nand_x", "ecc"; 624 clocks = <&sys_clk 2>, <&sys_clk 3>, <&sys_clk 3>; 625 resets = <&sys_rst 2>; 626 }; 627 }; 628}; 629 630#include "uniphier-pinctrl.dtsi" 631 632&pinctrl_aoutiec1 { 633 drive-strength = <4>; /* default: 4mA */ 634 635 ao1arc { 636 pins = "AO1ARC"; 637 drive-strength = <8>; /* 8mA */ 638 }; 639}; 640