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