1// SPDX-License-Identifier: GPL-2.0 2/* 3 * Base DT for Samsung's family of tablets based on Exynos5420. 4 * 5 * Copyright (c) 2012-2013 Samsung Electronics Co., Ltd. 6 * http://www.samsung.com 7 * Copyright (c) 2022 Henrik Grimler 8 */ 9 10/dts-v1/; 11#include "exynos5420.dtsi" 12#include "exynos5420-cpus.dtsi" 13#include <dt-bindings/input/input.h> 14#include <dt-bindings/gpio/gpio.h> 15#include <dt-bindings/clock/samsung,s2mps11.h> 16 17/ { 18 chassis-type = "tablet"; 19 20 /* 21 * To successfully boot the mainline kernel with the stock 22 * bootloader (SBOOT), the tlb needs to be flushed after the 23 * page table pointer has been updated in __common_mmu_cache_on. 24 * The same hack is also needed to boot exynos4412-i9300 with 25 * stock bootloader, and probably other Samsung devices of 26 * similar age. See 27 * https://lore.kernel.org/all/1355276466-18295-1-git-send-email-arve@android.com 28 * for more details. 29 */ 30 31 aliases { 32 mmc0 = &mmc_0; 33 mmc1 = &mmc_1; 34 mmc2 = &mmc_2; 35 }; 36 37 chosen { 38 stdout-path = "serial2:115200n8"; 39 }; 40 41 memory@20000000 { 42 device_type = "memory"; 43 reg = <0x20000000 0xbfa00000>; 44 }; 45 46 firmware@2073000 { 47 compatible = "samsung,secure-firmware"; 48 reg = <0x02073000 0x1000>; 49 }; 50 51 fixed-rate-clocks { 52 oscclk { 53 compatible = "samsung,exynos5420-oscclk"; 54 clock-frequency = <24000000>; 55 }; 56 }; 57 58 gpio-keys { 59 compatible = "gpio-keys"; 60 61 key-power { 62 debounce-interval = <10>; 63 gpios = <&gpx2 2 GPIO_ACTIVE_LOW>; 64 label = "Power"; 65 linux,code = <KEY_POWER>; 66 wakeup-source; 67 }; 68 69 key-home { 70 debounce-interval = <10>; 71 gpios = <&gpx0 5 GPIO_ACTIVE_LOW>; 72 label = "Home"; 73 linux,code = <KEY_HOME>; 74 wakeup-source; 75 }; 76 77 key-volume-up { 78 debounce-interval = <10>; 79 gpios = <&gpx0 2 GPIO_ACTIVE_LOW>; 80 label = "Volume Up"; 81 linux,code = <KEY_VOLUMEUP>; 82 }; 83 84 key-volume-down { 85 debounce-interval = <10>; 86 gpios = <&gpx0 3 GPIO_ACTIVE_LOW>; 87 label = "Volume Down"; 88 linux,code = <KEY_VOLUMEDOWN>; 89 }; 90 }; 91 92 mmc1_pwrseq: pwrseq { 93 compatible = "mmc-pwrseq-simple"; 94 reset-gpios = <&gpy7 7 GPIO_ACTIVE_LOW>; 95 clocks = <&s2mps11_osc S2MPS11_CLK_BT>; 96 clock-names = "ext_clock"; 97 }; 98}; 99 100&cci { 101 /* CCI is disabled in hardware */ 102 status = "disabled"; 103}; 104 105&cpu0 { 106 cpu-supply = <&buck2_reg>; 107}; 108 109&cpu4 { 110 cpu-supply = <&buck6_reg>; 111}; 112 113&gpu { 114 status = "okay"; 115 mali-supply = <&buck4_reg>; 116}; 117 118&hsi2c_7 { 119 status = "okay"; 120 121 pmic@66 { 122 compatible = "samsung,s2mps11-pmic"; 123 reg = <0x66>; 124 125 interrupt-parent = <&gpx3>; 126 interrupts = <2 IRQ_TYPE_LEVEL_LOW>; 127 pinctrl-names = "default"; 128 pinctrl-0 = <&s2mps11_irq>; 129 130 s2mps11_osc: clocks { 131 compatible = "samsung,s2mps11-clk"; 132 #clock-cells = <1>; 133 clock-output-names = "s2mps11_ap", "s2mps11_cp", 134 "s2mps11_bt"; 135 }; 136 137 regulators { 138 buck1_reg: BUCK1 { 139 regulator-name = "VDD_MIF_1V1"; 140 regulator-min-microvolt = <700000>; 141 regulator-max-microvolt = <1300000>; 142 regulator-always-on; 143 regulator-boot-on; 144 145 regulator-state-mem { 146 regulator-off-in-suspend; 147 }; 148 }; 149 150 buck2_reg: BUCK2 { 151 regulator-name = "VDD_ARM_1V0"; 152 regulator-min-microvolt = <800000>; 153 regulator-max-microvolt = <1500000>; 154 regulator-always-on; 155 regulator-boot-on; 156 157 regulator-state-mem { 158 regulator-off-in-suspend; 159 }; 160 }; 161 162 buck3_reg: BUCK3 { 163 regulator-name = "VDD_INT_1V0"; 164 regulator-min-microvolt = <800000>; 165 regulator-max-microvolt = <1400000>; 166 regulator-always-on; 167 regulator-boot-on; 168 169 regulator-state-mem { 170 regulator-off-in-suspend; 171 }; 172 }; 173 174 buck4_reg: BUCK4 { 175 regulator-name = "VDD_G3D_1V0"; 176 regulator-min-microvolt = <700000>; 177 regulator-max-microvolt = <1400000>; 178 regulator-always-on; 179 regulator-boot-on; 180 181 regulator-state-mem { 182 regulator-off-in-suspend; 183 }; 184 }; 185 186 buck5_reg: BUCK5 { 187 regulator-name = "VDD_MEM_1V2"; 188 regulator-min-microvolt = <1200000>; 189 regulator-max-microvolt = <1200000>; 190 regulator-always-on; 191 regulator-boot-on; 192 193 regulator-state-mem { 194 regulator-off-in-suspend; 195 }; 196 197 }; 198 199 buck6_reg: BUCK6 { 200 regulator-name = "VDD_KFC_1V0"; 201 regulator-min-microvolt = <800000>; 202 regulator-max-microvolt = <1500000>; 203 regulator-always-on; 204 regulator-boot-on; 205 206 regulator-state-mem { 207 regulator-off-in-suspend; 208 }; 209 }; 210 211 buck7_reg: BUCK7 { 212 regulator-name = "VIN_LLDO_1V4"; 213 regulator-min-microvolt = <1200000>; 214 regulator-max-microvolt = <1500000>; 215 regulator-always-on; 216 }; 217 218 buck8_reg: BUCK8 { 219 regulator-name = "VIN_MLDO_2V0"; 220 regulator-min-microvolt = <1800000>; 221 regulator-max-microvolt = <2100000>; 222 regulator-always-on; 223 }; 224 225 buck9_reg: BUCK9 { 226 regulator-name = "VIN_HLDO_3V5"; 227 regulator-min-microvolt = <3000000>; 228 regulator-max-microvolt = <3500000>; 229 regulator-always-on; 230 }; 231 232 buck10_reg: BUCK10 { 233 regulator-name = "VDD_CAM_ISP_1V0"; 234 regulator-min-microvolt = <750000>; 235 regulator-max-microvolt = <3550000>; 236 }; 237 238 ldo1_reg: LDO1 { 239 regulator-name = "VDD_ALIVE_1.0V"; 240 regulator-min-microvolt = <1000000>; 241 regulator-max-microvolt = <1000000>; 242 regulator-always-on; 243 }; 244 245 ldo2_reg: LDO2 { 246 regulator-name = "VDD_APIO_1V8"; 247 regulator-min-microvolt = <1800000>; 248 regulator-max-microvolt = <1800000>; 249 regulator-always-on; 250 regulator-boot-on; 251 252 regulator-state-mem { 253 regulator-on-in-suspend; 254 }; 255 }; 256 257 ldo3_reg: LDO3 { 258 regulator-name = "VDD_APIO_MMC01_1V8"; 259 regulator-min-microvolt = <1800000>; 260 regulator-max-microvolt = <1800000>; 261 regulator-always-on; 262 263 regulator-state-mem { 264 regulator-off-in-suspend; 265 }; 266 }; 267 268 ldo4_reg: LDO4 { 269 regulator-name = "VDD_ADC_1V8"; 270 regulator-min-microvolt = <1800000>; 271 regulator-max-microvolt = <1800000>; 272 regulator-always-on; 273 regulator-boot-on; 274 275 regulator-state-mem { 276 regulator-on-in-suspend; 277 }; 278 }; 279 280 ldo5_reg: LDO5 { 281 /* Unused */ 282 regulator-name = "VDD_LDO5"; 283 regulator-min-microvolt = <1800000>; 284 regulator-max-microvolt = <1800000>; 285 }; 286 287 ldo6_reg: LDO6 { 288 regulator-name = "VDD_MIPI_1V0"; 289 regulator-min-microvolt = <1000000>; 290 regulator-max-microvolt = <1000000>; 291 regulator-always-on; 292 regulator-boot-on; 293 294 regulator-state-mem { 295 regulator-off-in-suspend; 296 }; 297 }; 298 299 ldo7_reg: LDO7 { 300 regulator-name = "VDD_MIPI_PLL_ABB1_18V"; 301 regulator-min-microvolt = <1800000>; 302 regulator-max-microvolt = <1800000>; 303 regulator-always-on; 304 regulator-boot-on; 305 306 regulator-state-mem { 307 regulator-off-in-suspend; 308 }; 309 }; 310 311 ldo8_reg: LDO8 { 312 /* Unused */ 313 regulator-name = "VDD_LDO8"; 314 regulator-min-microvolt = <1800000>; 315 regulator-max-microvolt = <1800000>; 316 }; 317 318 ldo9_reg: LDO9 { 319 regulator-name = "VDD_UOTG_3V0"; 320 regulator-min-microvolt = <3000000>; 321 regulator-max-microvolt = <3000000>; 322 regulator-always-on; 323 regulator-boot-on; 324 325 regulator-state-mem { 326 regulator-on-in-suspend; 327 }; 328 }; 329 330 ldo10_reg: LDO10 { 331 regulator-name = "VDDQ_PRE_1V8"; 332 regulator-min-microvolt = <1800000>; 333 regulator-max-microvolt = <1800000>; 334 regulator-always-on; 335 regulator-boot-on; 336 337 regulator-state-mem { 338 regulator-on-in-suspend; 339 }; 340 }; 341 342 ldo11_reg: LDO11 { 343 regulator-name = "VDD_HSIC_1V0"; 344 regulator-min-microvolt = <1000000>; 345 regulator-max-microvolt = <1000000>; 346 regulator-always-on; 347 regulator-boot-on; 348 349 regulator-state-mem { 350 regulator-on-in-suspend; 351 }; 352 }; 353 354 ldo12_reg: LDO12 { 355 regulator-name = "VDD_HSIC_1V8"; 356 regulator-min-microvolt = <1800000>; 357 regulator-max-microvolt = <1800000>; 358 regulator-always-on; 359 regulator-boot-on; 360 361 regulator-state-mem { 362 regulator-on-in-suspend; 363 }; 364 }; 365 366 ldo13_reg: LDO13 { 367 regulator-name = "VDD_APIO_MMC2_2V8"; 368 regulator-min-microvolt = <1800000>; 369 regulator-max-microvolt = <2800000>; 370 regulator-boot-on; 371 372 regulator-state-mem { 373 regulator-off-in-suspend; 374 }; 375 }; 376 377 ldo14_reg: LDO14 { 378 regulator-name = "VDD_MOTOR_3V0"; 379 regulator-min-microvolt = <3000000>; 380 regulator-max-microvolt = <3000000>; 381 382 regulator-state-mem { 383 regulator-off-in-suspend; 384 }; 385 }; 386 387 ldo15_reg: LDO15 { 388 regulator-name = "VDD_LDO15"; 389 /* 390 * LDO15 varies between devices and is 391 * specified in the device dts 392 */ 393 }; 394 395 ldo16_reg: LDO16 { 396 regulator-name = "VDD_AP_2V8"; 397 regulator-min-microvolt = <2800000>; 398 regulator-max-microvolt = <2800000>; 399 regulator-always-on; 400 regulator-boot-on; 401 402 regulator-state-mem { 403 regulator-on-in-suspend; 404 }; 405 }; 406 407 ldo17_reg: LDO17 { 408 regulator-name = "VDD_LDO17"; 409 /* 410 * LDO17 varies between devices and is 411 * specified in the device dts 412 */ 413 }; 414 415 ldo18_reg: LDO18 { 416 /* Unused */ 417 regulator-name = "VDD_LDO18"; 418 regulator-min-microvolt = <1800000>; 419 regulator-max-microvolt = <1800000>; 420 }; 421 422 ldo19_reg: LDO19 { 423 regulator-name = "VDD_VTF_2V8"; 424 regulator-min-microvolt = <2800000>; 425 regulator-max-microvolt = <2800000>; 426 427 regulator-state-mem { 428 regulator-off-in-suspend; 429 }; 430 }; 431 432 ldo20_reg: LDO20 { 433 regulator-name = "VDD_CAM1_CAM_1V8"; 434 regulator-min-microvolt = <1800000>; 435 regulator-max-microvolt = <1800000>; 436 437 regulator-state-mem { 438 regulator-off-in-suspend; 439 }; 440 }; 441 442 ldo21_reg: LDO21 { 443 regulator-name = "VDD_CAM_IO_1V8"; 444 regulator-min-microvolt = <1800000>; 445 regulator-max-microvolt = <1800000>; 446 447 regulator-state-mem { 448 regulator-off-in-suspend; 449 }; 450 }; 451 452 ldo22_reg: LDO22 { 453 regulator-name = "VDD_CAM0_S_CORE_1V1"; 454 regulator-min-microvolt = <1050000>; 455 regulator-max-microvolt = <1200000>; 456 457 regulator-state-mem { 458 regulator-off-in-suspend; 459 }; 460 }; 461 462 ldo23_reg: LDO23 { 463 regulator-name = "VDD_MIFS_1V1"; 464 regulator-min-microvolt = <800000>; 465 regulator-max-microvolt = <1100000>; 466 regulator-always-on; 467 468 regulator-state-mem { 469 regulator-on-in-suspend; 470 }; 471 }; 472 473 ldo24_reg: LDO24 { 474 regulator-name = "VDD_TSP_3V3"; 475 regulator-min-microvolt = <3300000>; 476 regulator-max-microvolt = <3300000>; 477 478 regulator-state-mem { 479 regulator-off-in-suspend; 480 }; 481 }; 482 483 ldo25_reg: LDO25 { 484 /* Unused */ 485 regulator-name = "VDD_LDO25"; 486 regulator-min-microvolt = <800000>; 487 regulator-max-microvolt = <3950000>; 488 }; 489 490 ldo26_reg: LDO26 { 491 regulator-name = "VDD_CAM0_AF_2V8"; 492 regulator-min-microvolt = <2800000>; 493 regulator-max-microvolt = <2800000>; 494 495 regulator-state-mem { 496 regulator-off-in-suspend; 497 }; 498 }; 499 500 ldo27_reg: LDO27 { 501 regulator-name = "VDD_G3DS_1V0"; 502 regulator-min-microvolt = <800000>; 503 regulator-max-microvolt = <1000000>; 504 regulator-always-on; 505 506 regulator-state-mem { 507 regulator-on-in-suspend; 508 }; 509 }; 510 511 ldo28_reg: LDO28 { 512 regulator-name = "VDD_LDO28"; 513 /* 514 * LDO28 varies between devices and is 515 * specified in the device dts 516 */ 517 }; 518 519 ldo29_reg: LDO29 { 520 regulator-name = "VDD_LDO29"; 521 /* 522 * LDO29 varies between devices and is 523 * specified in the device dts 524 */ 525 }; 526 527 ldo30_reg: LDO30 { 528 regulator-name = "VDD_TOUCH_1V8"; 529 regulator-min-microvolt = <1900000>; 530 regulator-max-microvolt = <1900000>; 531 532 regulator-state-mem { 533 regulator-off-in-suspend; 534 }; 535 }; 536 537 ldo31_reg: LDO31 { 538 regulator-name = "VDD_LDO31"; 539 /* 540 * LDO31 varies between devices and is 541 * specified in the device dts 542 */ 543 }; 544 545 ldo32_reg: LDO32 { 546 regulator-name = "VDD_LDO32"; 547 /* 548 * LDO32 varies between devices and is 549 * specified in the device dts 550 */ 551 }; 552 553 ldo33_reg: LDO33 { 554 regulator-name = "VDD_MHL_1V8"; 555 regulator-min-microvolt = <1800000>; 556 regulator-max-microvolt = <1800000>; 557 558 regulator-state-mem { 559 regulator-off-in-suspend; 560 }; 561 }; 562 563 ldo34_reg: LDO34 { 564 regulator-name = "VDD_MHL_3V3"; 565 regulator-min-microvolt = <3300000>; 566 regulator-max-microvolt = <3300000>; 567 568 regulator-state-mem { 569 regulator-off-in-suspend; 570 }; 571 }; 572 573 ldo35_reg: LDO35 { 574 regulator-name = "VDD_SIL_1V2"; 575 regulator-min-microvolt = <1200000>; 576 regulator-max-microvolt = <1200000>; 577 578 regulator-state-mem { 579 regulator-off-in-suspend; 580 }; 581 }; 582 583 ldo36_reg: LDO36 { 584 /* Unused */ 585 regulator-name = "VDD_LDO36"; 586 regulator-min-microvolt = <800000>; 587 regulator-max-microvolt = <3950000>; 588 }; 589 590 ldo37_reg: LDO37 { 591 /* Unused */ 592 regulator-name = "VDD_LDO37"; 593 regulator-min-microvolt = <800000>; 594 regulator-max-microvolt = <3950000>; 595 }; 596 597 ldo38_reg: LDO38 { 598 regulator-name = "VDD_KEY_LED_3V3"; 599 regulator-min-microvolt = <2500000>; 600 regulator-max-microvolt = <3300000>; 601 602 regulator-state-mem { 603 regulator-off-in-suspend; 604 }; 605 }; 606 }; 607 }; 608}; 609 610&mixer { 611 status = "okay"; 612}; 613 614/* Internal storage */ 615&mmc_0 { 616 status = "okay"; 617 bus-width = <8>; 618 cap-mmc-highspeed; 619 card-detect-delay = <200>; 620 mmc-ddr-1_8v; 621 mmc-hs200-1_8v; 622 non-removable; 623 pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus1 &sd0_bus4 &sd0_bus8>; 624 pinctrl-names = "default"; 625 samsung,dw-mshc-ciu-div = <3>; 626 samsung,dw-mshc-ddr-timing = <0 2>; 627 samsung,dw-mshc-sdr-timing = <0 4>; 628 vqmmc-supply = <&ldo3_reg>; 629}; 630 631/* WiFi */ 632&mmc_1 { 633 bus-width = <4>; 634 cap-sd-highspeed; 635 cap-sdio-irq; 636 card-detect-delay = <200>; 637 keep-power-in-suspend; 638 mmc-pwrseq = <&mmc1_pwrseq>; 639 non-removable; 640 pinctrl-0 = <&sd1_clk>, <&sd1_cmd>, <&sd1_int>, <&sd1_bus1>, 641 <&sd1_bus4>, <&wifi_en>; 642 pinctrl-names = "default"; 643 vqmmc-supply = <&ldo2_reg>; 644 samsung,dw-mshc-ciu-div = <1>; 645 samsung,dw-mshc-ddr-timing = <0 2>; 646 samsung,dw-mshc-sdr-timing = <0 1>; 647 status = "okay"; 648}; 649 650/* External sdcard */ 651&mmc_2 { 652 status = "okay"; 653 bus-width = <4>; 654 cap-sd-highspeed; 655 card-detect-delay = <200>; 656 cd-gpios = <&gpx2 4 GPIO_ACTIVE_LOW>; 657 pinctrl-0 = <&sd2_clk &sd2_cmd &mmc2_cd &sd2_bus1 &sd2_bus4>; 658 pinctrl-names = "default"; 659 samsung,dw-mshc-ciu-div = <3>; 660 samsung,dw-mshc-ddr-timing = <0 2>; 661 samsung,dw-mshc-sdr-timing = <0 4>; 662 sd-uhs-sdr50; 663 vmmc-supply = <&ldo19_reg>; 664 vqmmc-supply = <&ldo13_reg>; 665}; 666 667&pinctrl_0 { 668 mmc2_cd: mmc2-cd-pins { 669 samsung,pins = "gpx2-4"; 670 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; 671 }; 672 673 s2mps11_irq: s2mps11-irq-pins { 674 samsung,pins = "gpx3-0"; 675 samsung,pin-function = <EXYNOS_PIN_FUNC_F>; 676 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; 677 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>; 678 }; 679 680 wifi_en: wifi-en-pins { 681 samsung,pins = "gpy7-7"; 682 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; 683 }; 684}; 685 686&rtc { 687 status = "okay"; 688 clocks = <&clock CLK_RTC>, <&s2mps11_osc S2MPS11_CLK_AP>; 689 clock-names = "rtc", "rtc_src"; 690}; 691 692&tmu_cpu0 { 693 vtmu-supply = <&ldo10_reg>; 694}; 695 696&tmu_cpu1 { 697 vtmu-supply = <&ldo10_reg>; 698}; 699 700&tmu_cpu2 { 701 vtmu-supply = <&ldo10_reg>; 702}; 703 704&tmu_cpu3 { 705 vtmu-supply = <&ldo10_reg>; 706}; 707 708&tmu_gpu { 709 vtmu-supply = <&ldo10_reg>; 710}; 711 712&usbdrd_dwc3_0 { 713 dr_mode = "peripheral"; 714}; 715 716&usbdrd_dwc3_1 { 717 dr_mode = "peripheral"; 718}; 719 720&usbdrd3_0 { 721 vdd33-supply = <&ldo9_reg>; 722 vdd10-supply = <&ldo11_reg>; 723}; 724 725&usbdrd3_1 { 726 vdd33-supply = <&ldo9_reg>; 727 vdd10-supply = <&ldo11_reg>; 728}; 729