1// SPDX-License-Identifier: GPL-2.0 2/* 3 * Hardkernel Odroid XU3/XU3-Lite/XU4/HC1 boards core device tree source 4 * 5 * Copyright (c) 2017 Marek Szyprowski 6 * Copyright (c) 2013-2017 Samsung Electronics Co., Ltd. 7 * http://www.samsung.com 8 */ 9 10#include <dt-bindings/clock/samsung,s2mps11.h> 11#include <dt-bindings/interrupt-controller/irq.h> 12#include <dt-bindings/gpio/gpio.h> 13#include "exynos5800.dtsi" 14#include "exynos5422-cpus.dtsi" 15 16/ { 17 memory@40000000 { 18 device_type = "memory"; 19 reg = <0x40000000 0x7EA00000>; 20 }; 21 22 chosen { 23 stdout-path = "serial2:115200n8"; 24 }; 25 26 firmware@2073000 { 27 compatible = "samsung,secure-firmware"; 28 reg = <0x02073000 0x1000>; 29 }; 30 31 fixed-rate-clocks { 32 oscclk { 33 compatible = "samsung,exynos5420-oscclk"; 34 clock-frequency = <24000000>; 35 }; 36 }; 37}; 38 39&adc { 40 vdd-supply = <&ldo4_reg>; 41 status = "okay"; 42}; 43 44&bus_wcore { 45 devfreq-events = <&nocp_mem0_0>, <&nocp_mem0_1>, 46 <&nocp_mem1_0>, <&nocp_mem1_1>; 47 vdd-supply = <&buck3_reg>; 48 exynos,saturation-ratio = <100>; 49 status = "okay"; 50}; 51 52&bus_noc { 53 devfreq = <&bus_wcore>; 54 status = "okay"; 55}; 56 57&bus_fsys_apb { 58 devfreq = <&bus_wcore>; 59 status = "okay"; 60}; 61 62&bus_fsys { 63 devfreq = <&bus_wcore>; 64 status = "okay"; 65}; 66 67&bus_fsys2 { 68 devfreq = <&bus_wcore>; 69 status = "okay"; 70}; 71 72&bus_mfc { 73 devfreq = <&bus_wcore>; 74 status = "okay"; 75}; 76 77&bus_gen { 78 devfreq = <&bus_wcore>; 79 status = "okay"; 80}; 81 82&bus_peri { 83 devfreq = <&bus_wcore>; 84 status = "okay"; 85}; 86 87&bus_g2d { 88 devfreq = <&bus_wcore>; 89 status = "okay"; 90}; 91 92&bus_g2d_acp { 93 devfreq = <&bus_wcore>; 94 status = "okay"; 95}; 96 97&bus_jpeg { 98 devfreq = <&bus_wcore>; 99 status = "okay"; 100}; 101 102&bus_jpeg_apb { 103 devfreq = <&bus_wcore>; 104 status = "okay"; 105}; 106 107&bus_disp1_fimd { 108 devfreq = <&bus_wcore>; 109 status = "okay"; 110}; 111 112&bus_disp1 { 113 devfreq = <&bus_wcore>; 114 status = "okay"; 115}; 116 117&bus_gscl_scaler { 118 devfreq = <&bus_wcore>; 119 status = "okay"; 120}; 121 122&bus_mscl { 123 devfreq = <&bus_wcore>; 124 status = "okay"; 125}; 126 127&cpu0 { 128 cpu-supply = <&buck6_reg>; 129}; 130 131&cpu4 { 132 cpu-supply = <&buck2_reg>; 133}; 134 135&hsi2c_4 { 136 status = "okay"; 137 138 s2mps11_pmic@66 { 139 compatible = "samsung,s2mps11-pmic"; 140 reg = <0x66>; 141 samsung,s2mps11-acokb-ground; 142 143 interrupt-parent = <&gpx0>; 144 interrupts = <4 IRQ_TYPE_EDGE_FALLING>; 145 pinctrl-names = "default"; 146 pinctrl-0 = <&s2mps11_irq>; 147 148 s2mps11_osc: clocks { 149 compatible = "samsung,s2mps11-clk"; 150 #clock-cells = <1>; 151 clock-output-names = "s2mps11_ap", 152 "s2mps11_cp", "s2mps11_bt"; 153 }; 154 155 regulators { 156 ldo1_reg: LDO1 { 157 regulator-name = "vdd_ldo1"; 158 regulator-min-microvolt = <1000000>; 159 regulator-max-microvolt = <1000000>; 160 regulator-always-on; 161 }; 162 163 ldo2_reg: LDO2 { 164 regulator-name = "vdd_ldo2"; 165 regulator-min-microvolt = <1800000>; 166 regulator-max-microvolt = <1800000>; 167 regulator-always-on; 168 }; 169 170 ldo3_reg: LDO3 { 171 regulator-name = "vddq_mmc0"; 172 regulator-min-microvolt = <1800000>; 173 regulator-max-microvolt = <1800000>; 174 }; 175 176 ldo4_reg: LDO4 { 177 regulator-name = "vdd_adc"; 178 regulator-min-microvolt = <1800000>; 179 regulator-max-microvolt = <1800000>; 180 181 regulator-state-mem { 182 regulator-off-in-suspend; 183 }; 184 }; 185 186 ldo5_reg: LDO5 { 187 regulator-name = "vdd_ldo5"; 188 regulator-min-microvolt = <1800000>; 189 regulator-max-microvolt = <1800000>; 190 regulator-always-on; 191 192 regulator-state-mem { 193 regulator-off-in-suspend; 194 }; 195 }; 196 197 ldo6_reg: LDO6 { 198 regulator-name = "vdd_ldo6"; 199 regulator-min-microvolt = <1000000>; 200 regulator-max-microvolt = <1000000>; 201 regulator-always-on; 202 203 regulator-state-mem { 204 regulator-off-in-suspend; 205 }; 206 }; 207 208 ldo7_reg: LDO7 { 209 regulator-name = "vdd_ldo7"; 210 regulator-min-microvolt = <1800000>; 211 regulator-max-microvolt = <1800000>; 212 regulator-always-on; 213 214 regulator-state-mem { 215 regulator-off-in-suspend; 216 }; 217 }; 218 219 ldo8_reg: LDO8 { 220 regulator-name = "vdd_ldo8"; 221 regulator-min-microvolt = <1800000>; 222 regulator-max-microvolt = <1800000>; 223 regulator-always-on; 224 225 regulator-state-mem { 226 regulator-off-in-suspend; 227 }; 228 }; 229 230 ldo9_reg: LDO9 { 231 regulator-name = "vdd_ldo9"; 232 regulator-min-microvolt = <3000000>; 233 regulator-max-microvolt = <3000000>; 234 regulator-always-on; 235 236 regulator-state-mem { 237 regulator-off-in-suspend; 238 }; 239 }; 240 241 ldo10_reg: LDO10 { 242 regulator-name = "vdd_ldo10"; 243 regulator-min-microvolt = <1800000>; 244 regulator-max-microvolt = <1800000>; 245 regulator-always-on; 246 247 regulator-state-mem { 248 regulator-off-in-suspend; 249 }; 250 }; 251 252 ldo11_reg: LDO11 { 253 regulator-name = "vdd_ldo11"; 254 regulator-min-microvolt = <1000000>; 255 regulator-max-microvolt = <1000000>; 256 regulator-always-on; 257 258 regulator-state-mem { 259 regulator-off-in-suspend; 260 }; 261 }; 262 263 ldo12_reg: LDO12 { 264 /* Unused */ 265 regulator-name = "vdd_ldo12"; 266 regulator-min-microvolt = <800000>; 267 regulator-max-microvolt = <2375000>; 268 }; 269 270 ldo13_reg: LDO13 { 271 regulator-name = "vddq_mmc2"; 272 regulator-min-microvolt = <1800000>; 273 regulator-max-microvolt = <2800000>; 274 275 regulator-state-mem { 276 regulator-off-in-suspend; 277 }; 278 }; 279 280 ldo14_reg: LDO14 { 281 /* Unused */ 282 regulator-name = "vdd_ldo14"; 283 regulator-min-microvolt = <800000>; 284 regulator-max-microvolt = <3950000>; 285 }; 286 287 ldo15_reg: LDO15 { 288 regulator-name = "vdd_ldo15"; 289 regulator-min-microvolt = <3300000>; 290 regulator-max-microvolt = <3300000>; 291 regulator-always-on; 292 293 regulator-state-mem { 294 regulator-off-in-suspend; 295 }; 296 }; 297 298 ldo16_reg: LDO16 { 299 /* Unused */ 300 regulator-name = "vdd_ldo16"; 301 regulator-min-microvolt = <800000>; 302 regulator-max-microvolt = <3950000>; 303 }; 304 305 ldo17_reg: LDO17 { 306 regulator-name = "vdd_ldo17"; 307 regulator-min-microvolt = <3300000>; 308 regulator-max-microvolt = <3300000>; 309 regulator-always-on; 310 311 regulator-state-mem { 312 regulator-off-in-suspend; 313 }; 314 }; 315 316 ldo18_reg: LDO18 { 317 regulator-name = "vdd_emmc_1V8"; 318 regulator-min-microvolt = <1800000>; 319 regulator-max-microvolt = <1800000>; 320 321 regulator-state-mem { 322 regulator-off-in-suspend; 323 }; 324 }; 325 326 ldo19_reg: LDO19 { 327 regulator-name = "vdd_sd"; 328 regulator-min-microvolt = <2800000>; 329 regulator-max-microvolt = <2800000>; 330 331 regulator-state-mem { 332 regulator-off-in-suspend; 333 }; 334 }; 335 336 ldo20_reg: LDO20 { 337 /* Unused */ 338 regulator-name = "vdd_ldo20"; 339 regulator-min-microvolt = <800000>; 340 regulator-max-microvolt = <3950000>; 341 }; 342 343 ldo21_reg: LDO21 { 344 /* Unused */ 345 regulator-name = "vdd_ldo21"; 346 regulator-min-microvolt = <800000>; 347 regulator-max-microvolt = <3950000>; 348 }; 349 350 ldo22_reg: LDO22 { 351 /* Unused */ 352 regulator-name = "vdd_ldo22"; 353 regulator-min-microvolt = <800000>; 354 regulator-max-microvolt = <2375000>; 355 }; 356 357 ldo23_reg: LDO23 { 358 regulator-name = "vdd_mifs"; 359 regulator-min-microvolt = <1100000>; 360 regulator-max-microvolt = <1100000>; 361 regulator-always-on; 362 363 regulator-state-mem { 364 regulator-off-in-suspend; 365 }; 366 }; 367 368 ldo24_reg: LDO24 { 369 /* Unused */ 370 regulator-name = "vdd_ldo24"; 371 regulator-min-microvolt = <800000>; 372 regulator-max-microvolt = <3950000>; 373 }; 374 375 ldo25_reg: LDO25 { 376 /* Unused */ 377 regulator-name = "vdd_ldo25"; 378 regulator-min-microvolt = <800000>; 379 regulator-max-microvolt = <3950000>; 380 }; 381 382 ldo26_reg: LDO26 { 383 /* Used on XU3, XU3-Lite and XU4 */ 384 regulator-name = "vdd_ldo26"; 385 regulator-min-microvolt = <800000>; 386 regulator-max-microvolt = <3950000>; 387 388 regulator-state-mem { 389 regulator-off-in-suspend; 390 }; 391 }; 392 393 ldo27_reg: LDO27 { 394 regulator-name = "vdd_g3ds"; 395 regulator-min-microvolt = <1000000>; 396 regulator-max-microvolt = <1000000>; 397 regulator-always-on; 398 399 regulator-state-mem { 400 regulator-off-in-suspend; 401 }; 402 }; 403 404 ldo28_reg: LDO28 { 405 /* Used on XU3 */ 406 regulator-name = "vdd_ldo28"; 407 regulator-min-microvolt = <800000>; 408 regulator-max-microvolt = <3950000>; 409 410 regulator-state-mem { 411 regulator-off-in-suspend; 412 }; 413 }; 414 415 ldo29_reg: LDO29 { 416 /* Unused */ 417 regulator-name = "vdd_ldo29"; 418 regulator-min-microvolt = <800000>; 419 regulator-max-microvolt = <3950000>; 420 }; 421 422 ldo30_reg: LDO30 { 423 /* Unused */ 424 regulator-name = "vdd_ldo30"; 425 regulator-min-microvolt = <800000>; 426 regulator-max-microvolt = <3950000>; 427 }; 428 429 ldo31_reg: LDO31 { 430 /* Unused */ 431 regulator-name = "vdd_ldo31"; 432 regulator-min-microvolt = <800000>; 433 regulator-max-microvolt = <3950000>; 434 }; 435 436 ldo32_reg: LDO32 { 437 /* Unused */ 438 regulator-name = "vdd_ldo32"; 439 regulator-min-microvolt = <800000>; 440 regulator-max-microvolt = <3950000>; 441 }; 442 443 ldo33_reg: LDO33 { 444 /* Unused */ 445 regulator-name = "vdd_ldo33"; 446 regulator-min-microvolt = <800000>; 447 regulator-max-microvolt = <3950000>; 448 }; 449 450 ldo34_reg: LDO34 { 451 /* Unused */ 452 regulator-name = "vdd_ldo34"; 453 regulator-min-microvolt = <800000>; 454 regulator-max-microvolt = <3950000>; 455 }; 456 457 ldo35_reg: LDO35 { 458 /* Unused */ 459 regulator-name = "vdd_ldo35"; 460 regulator-min-microvolt = <800000>; 461 regulator-max-microvolt = <2375000>; 462 }; 463 464 ldo36_reg: LDO36 { 465 /* Unused */ 466 regulator-name = "vdd_ldo36"; 467 regulator-min-microvolt = <800000>; 468 regulator-max-microvolt = <3950000>; 469 }; 470 471 ldo37_reg: LDO37 { 472 /* Unused */ 473 regulator-name = "vdd_ldo37"; 474 regulator-min-microvolt = <800000>; 475 regulator-max-microvolt = <3950000>; 476 }; 477 478 ldo38_reg: LDO38 { 479 /* Unused */ 480 regulator-name = "vdd_ldo38"; 481 regulator-min-microvolt = <800000>; 482 regulator-max-microvolt = <3950000>; 483 }; 484 485 buck1_reg: BUCK1 { 486 regulator-name = "vdd_mif"; 487 regulator-min-microvolt = <800000>; 488 regulator-max-microvolt = <1300000>; 489 regulator-always-on; 490 regulator-boot-on; 491 492 regulator-state-mem { 493 regulator-off-in-suspend; 494 }; 495 }; 496 497 buck2_reg: BUCK2 { 498 regulator-name = "vdd_arm"; 499 regulator-min-microvolt = <800000>; 500 regulator-max-microvolt = <1500000>; 501 regulator-always-on; 502 regulator-boot-on; 503 504 regulator-state-mem { 505 regulator-off-in-suspend; 506 }; 507 }; 508 509 buck3_reg: BUCK3 { 510 regulator-name = "vdd_int"; 511 regulator-min-microvolt = <800000>; 512 regulator-max-microvolt = <1400000>; 513 regulator-always-on; 514 regulator-boot-on; 515 516 regulator-state-mem { 517 regulator-off-in-suspend; 518 }; 519 }; 520 521 buck4_reg: BUCK4 { 522 regulator-name = "vdd_g3d"; 523 regulator-min-microvolt = <800000>; 524 regulator-max-microvolt = <1400000>; 525 regulator-always-on; 526 regulator-boot-on; 527 528 regulator-state-mem { 529 regulator-off-in-suspend; 530 }; 531 }; 532 533 buck5_reg: BUCK5 { 534 regulator-name = "vdd_mem"; 535 regulator-min-microvolt = <800000>; 536 regulator-max-microvolt = <1400000>; 537 regulator-always-on; 538 regulator-boot-on; 539 }; 540 541 buck6_reg: BUCK6 { 542 regulator-name = "vdd_kfc"; 543 regulator-min-microvolt = <800000>; 544 regulator-max-microvolt = <1500000>; 545 regulator-always-on; 546 regulator-boot-on; 547 548 regulator-state-mem { 549 regulator-off-in-suspend; 550 }; 551 }; 552 553 buck7_reg: BUCK7 { 554 regulator-name = "vdd_1.35v_ldo"; 555 regulator-min-microvolt = <1200000>; 556 regulator-max-microvolt = <1500000>; 557 regulator-always-on; 558 regulator-boot-on; 559 }; 560 561 buck8_reg: BUCK8 { 562 regulator-name = "vdd_2.0v_ldo"; 563 regulator-min-microvolt = <1800000>; 564 regulator-max-microvolt = <2100000>; 565 regulator-always-on; 566 regulator-boot-on; 567 }; 568 569 buck9_reg: BUCK9 { 570 regulator-name = "vdd_2.8v_ldo"; 571 regulator-min-microvolt = <3000000>; 572 regulator-max-microvolt = <3750000>; 573 regulator-always-on; 574 regulator-boot-on; 575 576 regulator-state-mem { 577 regulator-off-in-suspend; 578 }; 579 }; 580 581 buck10_reg: BUCK10 { 582 regulator-name = "vdd_vmem"; 583 regulator-min-microvolt = <2850000>; 584 regulator-max-microvolt = <2850000>; 585 586 regulator-state-mem { 587 regulator-off-in-suspend; 588 }; 589 }; 590 }; 591 }; 592}; 593 594&mmc_2 { 595 status = "okay"; 596 card-detect-delay = <200>; 597 samsung,dw-mshc-ciu-div = <3>; 598 samsung,dw-mshc-sdr-timing = <0 4>; 599 samsung,dw-mshc-ddr-timing = <0 2>; 600 pinctrl-names = "default"; 601 pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_wp &sd2_bus1 &sd2_bus4>; 602 bus-width = <4>; 603 cap-sd-highspeed; 604 max-frequency = <200000000>; 605 vmmc-supply = <&ldo19_reg>; 606 vqmmc-supply = <&ldo13_reg>; 607 sd-uhs-sdr50; 608 sd-uhs-sdr104; 609 sd-uhs-ddr50; 610}; 611 612&nocp_mem0_0 { 613 status = "okay"; 614}; 615 616&nocp_mem0_1 { 617 status = "okay"; 618}; 619 620&nocp_mem1_0 { 621 status = "okay"; 622}; 623 624&nocp_mem1_1 { 625 status = "okay"; 626}; 627 628&pinctrl_0 { 629 s2mps11_irq: s2mps11-irq { 630 samsung,pins = "gpx0-4"; 631 samsung,pin-function = <EXYNOS_PIN_FUNC_F>; 632 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; 633 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>; 634 }; 635}; 636 637&tmu_cpu0 { 638 vtmu-supply = <&ldo7_reg>; 639}; 640 641&tmu_cpu1 { 642 vtmu-supply = <&ldo7_reg>; 643}; 644 645&tmu_cpu2 { 646 vtmu-supply = <&ldo7_reg>; 647}; 648 649&tmu_cpu3 { 650 vtmu-supply = <&ldo7_reg>; 651}; 652 653&tmu_gpu { 654 vtmu-supply = <&ldo7_reg>; 655}; 656 657&rtc { 658 status = "okay"; 659 clocks = <&clock CLK_RTC>, <&s2mps11_osc S2MPS11_CLK_AP>; 660 clock-names = "rtc", "rtc_src"; 661}; 662 663&usbdrd_dwc3_0 { 664 dr_mode = "host"; 665}; 666 667/* usbdrd_dwc3_1 mode customized in each board */ 668 669&usbdrd3_0 { 670 vdd33-supply = <&ldo9_reg>; 671 vdd10-supply = <&ldo11_reg>; 672}; 673 674&usbdrd3_1 { 675 vdd33-supply = <&ldo9_reg>; 676 vdd10-supply = <&ldo11_reg>; 677}; 678