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