0001 // SPDX-License-Identifier: GPL-2.0
0002 /*
0003 * Base DT for Samsung's family of tablets based on Exynos5420.
0004 *
0005 * Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
0006 * http://www.samsung.com
0007 * Copyright (c) 2022 Henrik Grimler
0008 */
0009
0010 /dts-v1/;
0011 #include "exynos5420.dtsi"
0012 #include "exynos5420-cpus.dtsi"
0013 #include <dt-bindings/input/input.h>
0014 #include <dt-bindings/gpio/gpio.h>
0015 #include <dt-bindings/clock/samsung,s2mps11.h>
0016
0017 / {
0018 chassis-type = "tablet";
0019
0020 /*
0021 * To successfully boot the mainline kernel with the stock
0022 * bootloader (SBOOT), the tlb needs to be flushed after the
0023 * page table pointer has been updated in __common_mmu_cache_on.
0024 * The same hack is also needed to boot exynos4412-i9300 with
0025 * stock bootloader, and probably other Samsung devices of
0026 * similar age. See
0027 * https://lore.kernel.org/all/1355276466-18295-1-git-send-email-arve@android.com
0028 * for more details.
0029 */
0030
0031 chosen {
0032 stdout-path = "serial2:115200n8";
0033 };
0034
0035 memory@20000000 {
0036 device_type = "memory";
0037 reg = <0x20000000 0xc0000000>;
0038 };
0039
0040 firmware@2073000 {
0041 compatible = "samsung,secure-firmware";
0042 reg = <0x02073000 0x1000>;
0043 };
0044
0045 fixed-rate-clocks {
0046 oscclk {
0047 compatible = "samsung,exynos5420-oscclk";
0048 clock-frequency = <24000000>;
0049 };
0050 };
0051
0052 gpio-keys {
0053 compatible = "gpio-keys";
0054 pinctrl-names = "default";
0055
0056 key-power {
0057 debounce-interval = <10>;
0058 gpios = <&gpx2 2 GPIO_ACTIVE_LOW>;
0059 label = "Power";
0060 linux,code = <KEY_POWER>;
0061 wakeup-source;
0062 };
0063
0064 key-home {
0065 debounce-interval = <10>;
0066 gpios = <&gpx0 5 GPIO_ACTIVE_LOW>;
0067 label = "Home";
0068 linux,code = <KEY_HOME>;
0069 wakeup-source;
0070 };
0071
0072 key-volume-up {
0073 debounce-interval = <10>;
0074 gpios = <&gpx0 2 GPIO_ACTIVE_LOW>;
0075 label = "Volume Up";
0076 linux,code = <KEY_VOLUMEUP>;
0077 };
0078
0079 key-volume-down {
0080 debounce-interval = <10>;
0081 gpios = <&gpx0 3 GPIO_ACTIVE_LOW>;
0082 label = "Volume Down";
0083 linux,code = <KEY_VOLUMEDOWN>;
0084 };
0085 };
0086 };
0087
0088 &cci {
0089 /* CCI is disabled in hardware */
0090 status = "disabled";
0091 };
0092
0093 &cpu0 {
0094 cpu-supply = <&buck2_reg>;
0095 };
0096
0097 &cpu4 {
0098 cpu-supply = <&buck6_reg>;
0099 };
0100
0101 &gpu {
0102 status = "okay";
0103 mali-supply = <&buck4_reg>;
0104 };
0105
0106 &hsi2c_7 {
0107 status = "okay";
0108
0109 pmic@66 {
0110 compatible = "samsung,s2mps11-pmic";
0111 reg = <0x66>;
0112
0113 interrupt-parent = <&gpx3>;
0114 interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
0115 pinctrl-names = "default";
0116 pinctrl-0 = <&s2mps11_irq>;
0117
0118 s2mps11_osc: clocks {
0119 compatible = "samsung,s2mps11-clk";
0120 #clock-cells = <1>;
0121 clock-output-names = "s2mps11_ap", "s2mps11_cp",
0122 "s2mps11_bt";
0123 };
0124
0125 regulators {
0126 buck1_reg: BUCK1 {
0127 regulator-name = "VDD_MIF_1V1";
0128 regulator-min-microvolt = <700000>;
0129 regulator-max-microvolt = <1300000>;
0130 regulator-always-on;
0131 regulator-boot-on;
0132
0133 regulator-state-mem {
0134 regulator-off-in-suspend;
0135 };
0136 };
0137
0138 buck2_reg: BUCK2 {
0139 regulator-name = "VDD_ARM_1V0";
0140 regulator-min-microvolt = <800000>;
0141 regulator-max-microvolt = <1500000>;
0142 regulator-always-on;
0143 regulator-boot-on;
0144
0145 regulator-state-mem {
0146 regulator-off-in-suspend;
0147 };
0148 };
0149
0150 buck3_reg: BUCK3 {
0151 regulator-name = "VDD_INT_1V0";
0152 regulator-min-microvolt = <800000>;
0153 regulator-max-microvolt = <1400000>;
0154 regulator-always-on;
0155 regulator-boot-on;
0156
0157 regulator-state-mem {
0158 regulator-off-in-suspend;
0159 };
0160 };
0161
0162 buck4_reg: BUCK4 {
0163 regulator-name = "VDD_G3D_1V0";
0164 regulator-min-microvolt = <700000>;
0165 regulator-max-microvolt = <1400000>;
0166 regulator-always-on;
0167 regulator-boot-on;
0168
0169 regulator-state-mem {
0170 regulator-off-in-suspend;
0171 };
0172 };
0173
0174 buck5_reg: BUCK5 {
0175 regulator-name = "VDD_MEM_1V2";
0176 regulator-min-microvolt = <1200000>;
0177 regulator-max-microvolt = <1200000>;
0178 regulator-always-on;
0179 regulator-boot-on;
0180
0181 regulator-state-mem {
0182 regulator-off-in-suspend;
0183 };
0184
0185 };
0186
0187 buck6_reg: BUCK6 {
0188 regulator-name = "VDD_KFC_1V0";
0189 regulator-min-microvolt = <800000>;
0190 regulator-max-microvolt = <1500000>;
0191 regulator-always-on;
0192 regulator-boot-on;
0193
0194 regulator-state-mem {
0195 regulator-off-in-suspend;
0196 };
0197 };
0198
0199 buck7_reg: BUCK7 {
0200 regulator-name = "VIN_LLDO_1V4";
0201 regulator-min-microvolt = <1200000>;
0202 regulator-max-microvolt = <1500000>;
0203 regulator-always-on;
0204 };
0205
0206 buck8_reg: BUCK8 {
0207 regulator-name = "VIN_MLDO_2V0";
0208 regulator-min-microvolt = <1800000>;
0209 regulator-max-microvolt = <2100000>;
0210 regulator-always-on;
0211 };
0212
0213 buck9_reg: BUCK9 {
0214 regulator-name = "VIN_HLDO_3V5";
0215 regulator-min-microvolt = <3000000>;
0216 regulator-max-microvolt = <3500000>;
0217 regulator-always-on;
0218 };
0219
0220 buck10_reg: BUCK10 {
0221 regulator-name = "VDD_CAM_ISP_1V0";
0222 regulator-min-microvolt = <750000>;
0223 regulator-max-microvolt = <3550000>;
0224 };
0225
0226 ldo1_reg: LDO1 {
0227 regulator-name = "VDD_ALIVE_1.0V";
0228 regulator-min-microvolt = <1000000>;
0229 regulator-max-microvolt = <1000000>;
0230 regulator-always-on;
0231 };
0232
0233 ldo2_reg: LDO2 {
0234 regulator-name = "VDD_APIO_1V8";
0235 regulator-min-microvolt = <1800000>;
0236 regulator-max-microvolt = <1800000>;
0237 regulator-always-on;
0238 regulator-boot-on;
0239
0240 regulator-state-mem {
0241 regulator-on-in-suspend;
0242 };
0243 };
0244
0245 ldo3_reg: LDO3 {
0246 regulator-name = "VDD_APIO_MMC01_1V8";
0247 regulator-min-microvolt = <1800000>;
0248 regulator-max-microvolt = <1800000>;
0249 regulator-always-on;
0250
0251 regulator-state-mem {
0252 regulator-off-in-suspend;
0253 };
0254 };
0255
0256 ldo4_reg: LDO4 {
0257 regulator-name = "VDD_ADC_1V8";
0258 regulator-min-microvolt = <1800000>;
0259 regulator-max-microvolt = <1800000>;
0260 regulator-always-on;
0261 regulator-boot-on;
0262
0263 regulator-state-mem {
0264 regulator-on-in-suspend;
0265 };
0266 };
0267
0268 ldo5_reg: LDO5 {
0269 /* Unused */
0270 regulator-name = "VDD_LDO5";
0271 regulator-min-microvolt = <1800000>;
0272 regulator-max-microvolt = <1800000>;
0273 };
0274
0275 ldo6_reg: LDO6 {
0276 regulator-name = "VDD_MIPI_1V0";
0277 regulator-min-microvolt = <1000000>;
0278 regulator-max-microvolt = <1000000>;
0279 regulator-always-on;
0280 regulator-boot-on;
0281
0282 regulator-state-mem {
0283 regulator-off-in-suspend;
0284 };
0285 };
0286
0287 ldo7_reg: LDO7 {
0288 regulator-name = "VDD_MIPI_PLL_ABB1_18V";
0289 regulator-min-microvolt = <1800000>;
0290 regulator-max-microvolt = <1800000>;
0291 regulator-always-on;
0292 regulator-boot-on;
0293
0294 regulator-state-mem {
0295 regulator-off-in-suspend;
0296 };
0297 };
0298
0299 ldo8_reg: LDO8 {
0300 /* Unused */
0301 regulator-name = "VDD_LDO8";
0302 regulator-min-microvolt = <1800000>;
0303 regulator-max-microvolt = <1800000>;
0304 };
0305
0306 ldo9_reg: LDO9 {
0307 regulator-name = "VDD_UOTG_3V0";
0308 regulator-min-microvolt = <3000000>;
0309 regulator-max-microvolt = <3000000>;
0310 regulator-always-on;
0311 regulator-boot-on;
0312
0313 regulator-state-mem {
0314 regulator-on-in-suspend;
0315 };
0316 };
0317
0318 ldo10_reg: LDO10 {
0319 regulator-name = "VDDQ_PRE_1V8";
0320 regulator-min-microvolt = <1800000>;
0321 regulator-max-microvolt = <1800000>;
0322 regulator-always-on;
0323 regulator-boot-on;
0324
0325 regulator-state-mem {
0326 regulator-on-in-suspend;
0327 };
0328 };
0329
0330 ldo11_reg: LDO11 {
0331 regulator-name = "VDD_HSIC_1V0";
0332 regulator-min-microvolt = <1000000>;
0333 regulator-max-microvolt = <1000000>;
0334 regulator-always-on;
0335 regulator-boot-on;
0336
0337 regulator-state-mem {
0338 regulator-on-in-suspend;
0339 };
0340 };
0341
0342 ldo12_reg: LDO12 {
0343 regulator-name = "VDD_HSIC_1V8";
0344 regulator-min-microvolt = <1800000>;
0345 regulator-max-microvolt = <1800000>;
0346 regulator-always-on;
0347 regulator-boot-on;
0348
0349 regulator-state-mem {
0350 regulator-on-in-suspend;
0351 };
0352 };
0353
0354 ldo13_reg: LDO13 {
0355 regulator-name = "VDD_APIO_MMC2_2V8";
0356 regulator-min-microvolt = <1800000>;
0357 regulator-max-microvolt = <2800000>;
0358 regulator-boot-on;
0359
0360 regulator-state-mem {
0361 regulator-off-in-suspend;
0362 };
0363 };
0364
0365 ldo14_reg: LDO14 {
0366 regulator-name = "VDD_MOTOR_3V0";
0367 regulator-min-microvolt = <3000000>;
0368 regulator-max-microvolt = <3000000>;
0369
0370 regulator-state-mem {
0371 regulator-off-in-suspend;
0372 };
0373 };
0374
0375 ldo15_reg: LDO15 {
0376 regulator-name = "VDD_LDO15";
0377 /*
0378 * LDO15 varies between devices and is
0379 * specified in the device dts
0380 */
0381 };
0382
0383 ldo16_reg: LDO16 {
0384 regulator-name = "VDD_AP_2V8";
0385 regulator-min-microvolt = <2800000>;
0386 regulator-max-microvolt = <2800000>;
0387 regulator-always-on;
0388 regulator-boot-on;
0389
0390 regulator-state-mem {
0391 regulator-on-in-suspend;
0392 };
0393 };
0394
0395 ldo17_reg: LDO17 {
0396 regulator-name = "VDD_LDO17";
0397 /*
0398 * LDO17 varies between devices and is
0399 * specified in the device dts
0400 */
0401 };
0402
0403 ldo18_reg: LDO18 {
0404 /* Unused */
0405 regulator-name = "VDD_LDO18";
0406 regulator-min-microvolt = <1800000>;
0407 regulator-max-microvolt = <1800000>;
0408 };
0409
0410 ldo19_reg: LDO19 {
0411 regulator-name = "VDD_VTF_2V8";
0412 regulator-min-microvolt = <2800000>;
0413 regulator-max-microvolt = <2800000>;
0414
0415 regulator-state-mem {
0416 regulator-off-in-suspend;
0417 };
0418 };
0419
0420 ldo20_reg: LDO20 {
0421 regulator-name = "VDD_CAM1_CAM_1V8";
0422 regulator-min-microvolt = <1800000>;
0423 regulator-max-microvolt = <1800000>;
0424
0425 regulator-state-mem {
0426 regulator-off-in-suspend;
0427 };
0428 };
0429
0430 ldo21_reg: LDO21 {
0431 regulator-name = "VDD_CAM_IO_1V8";
0432 regulator-min-microvolt = <1800000>;
0433 regulator-max-microvolt = <1800000>;
0434
0435 regulator-state-mem {
0436 regulator-off-in-suspend;
0437 };
0438 };
0439
0440 ldo22_reg: LDO22 {
0441 regulator-name = "VDD_CAM0_S_CORE_1V1";
0442 regulator-min-microvolt = <1050000>;
0443 regulator-max-microvolt = <1200000>;
0444
0445 regulator-state-mem {
0446 regulator-off-in-suspend;
0447 };
0448 };
0449
0450 ldo23_reg: LDO23 {
0451 regulator-name = "VDD_MIFS_1V1";
0452 regulator-min-microvolt = <800000>;
0453 regulator-max-microvolt = <1100000>;
0454 regulator-always-on;
0455
0456 regulator-state-mem {
0457 regulator-on-in-suspend;
0458 };
0459 };
0460
0461 ldo24_reg: LDO24 {
0462 regulator-name = "VDD_TSP_3V3";
0463 regulator-min-microvolt = <3300000>;
0464 regulator-max-microvolt = <3300000>;
0465
0466 regulator-state-mem {
0467 regulator-off-in-suspend;
0468 };
0469 };
0470
0471 ldo25_reg: LDO25 {
0472 /* Unused */
0473 regulator-name = "VDD_LDO25";
0474 regulator-min-microvolt = <800000>;
0475 regulator-max-microvolt = <3950000>;
0476 };
0477
0478 ldo26_reg: LDO26 {
0479 regulator-name = "VDD_CAM0_AF_2V8";
0480 regulator-min-microvolt = <2800000>;
0481 regulator-max-microvolt = <2800000>;
0482
0483 regulator-state-mem {
0484 regulator-off-in-suspend;
0485 };
0486 };
0487
0488 ldo27_reg: LDO27 {
0489 regulator-name = "VDD_G3DS_1V0";
0490 regulator-min-microvolt = <800000>;
0491 regulator-max-microvolt = <1000000>;
0492 regulator-always-on;
0493
0494 regulator-state-mem {
0495 regulator-on-in-suspend;
0496 };
0497 };
0498
0499 ldo28_reg: LDO28 {
0500 regulator-name = "VDD_LDO28";
0501 /*
0502 * LDO28 varies between devices and is
0503 * specified in the device dts
0504 */
0505 };
0506
0507 ldo29_reg: LDO29 {
0508 regulator-name = "VDD_LDO29";
0509 /*
0510 * LDO29 varies between devices and is
0511 * specified in the device dts
0512 */
0513 };
0514
0515 ldo30_reg: LDO30 {
0516 regulator-name = "VDD_TOUCH_1V8";
0517 regulator-min-microvolt = <1900000>;
0518 regulator-max-microvolt = <1900000>;
0519
0520 regulator-state-mem {
0521 regulator-off-in-suspend;
0522 };
0523 };
0524
0525 ldo31_reg: LDO31 {
0526 regulator-name = "VDD_LDO31";
0527 /*
0528 * LDO31 varies between devices and is
0529 * specified in the device dts
0530 */
0531 };
0532
0533 ldo32_reg: LDO32 {
0534 regulator-name = "VDD_LDO32";
0535 /*
0536 * LDO32 varies between devices and is
0537 * specified in the device dts
0538 */
0539 };
0540
0541 ldo33_reg: LDO33 {
0542 regulator-name = "VDD_MHL_1V8";
0543 regulator-min-microvolt = <1800000>;
0544 regulator-max-microvolt = <1800000>;
0545
0546 regulator-state-mem {
0547 regulator-off-in-suspend;
0548 };
0549 };
0550
0551 ldo34_reg: LDO34 {
0552 regulator-name = "VDD_MHL_3V3";
0553 regulator-min-microvolt = <3300000>;
0554 regulator-max-microvolt = <3300000>;
0555
0556 regulator-state-mem {
0557 regulator-off-in-suspend;
0558 };
0559 };
0560
0561 ldo35_reg: LDO35 {
0562 regulator-name = "VDD_SIL_1V2";
0563 regulator-min-microvolt = <1200000>;
0564 regulator-max-microvolt = <1200000>;
0565
0566 regulator-state-mem {
0567 regulator-off-in-suspend;
0568 };
0569 };
0570
0571 ldo36_reg: LDO36 {
0572 /* Unused */
0573 regulator-name = "VDD_LDO36";
0574 regulator-min-microvolt = <800000>;
0575 regulator-max-microvolt = <3950000>;
0576 };
0577
0578 ldo37_reg: LDO37 {
0579 /* Unused */
0580 regulator-name = "VDD_LDO37";
0581 regulator-min-microvolt = <800000>;
0582 regulator-max-microvolt = <3950000>;
0583 };
0584
0585 ldo38_reg: LDO38 {
0586 regulator-name = "VDD_KEY_LED_3V3";
0587 regulator-min-microvolt = <2500000>;
0588 regulator-max-microvolt = <3300000>;
0589
0590 regulator-state-mem {
0591 regulator-off-in-suspend;
0592 };
0593 };
0594 };
0595 };
0596 };
0597
0598 &mixer {
0599 status = "okay";
0600 };
0601
0602 /* Internal storage */
0603 &mmc_0 {
0604 status = "okay";
0605 bus-width = <8>;
0606 cap-mmc-highspeed;
0607 card-detect-delay = <200>;
0608 mmc-hs200-1_8v;
0609 non-removable;
0610 pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus1 &sd0_bus4 &sd0_bus8>;
0611 pinctrl-names = "default";
0612 samsung,dw-mshc-ciu-div = <3>;
0613 samsung,dw-mshc-ddr-timing = <0 2>;
0614 samsung,dw-mshc-sdr-timing = <0 4>;
0615 vqmmc-supply = <&ldo3_reg>;
0616 };
0617
0618 /* External sdcard */
0619 &mmc_2 {
0620 status = "okay";
0621 bus-width = <4>;
0622 cap-sd-highspeed;
0623 card-detect-delay = <200>;
0624 cd-gpios = <&gpx2 4 GPIO_ACTIVE_LOW>;
0625 pinctrl-0 = <&sd2_clk &sd2_cmd &mmc2_cd &sd2_bus1 &sd2_bus4>;
0626 pinctrl-names = "default";
0627 samsung,dw-mshc-ciu-div = <3>;
0628 samsung,dw-mshc-ddr-timing = <0 2>;
0629 samsung,dw-mshc-sdr-timing = <0 4>;
0630 sd-uhs-sdr50;
0631 vmmc-supply = <&ldo19_reg>;
0632 vqmmc-supply = <&ldo13_reg>;
0633 };
0634
0635 &pinctrl_0 {
0636 mmc2_cd: mmc2-cd-pins {
0637 samsung,pins = "gpx2-4";
0638 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
0639 };
0640
0641 s2mps11_irq: s2mps11-irq-pins {
0642 samsung,pins = "gpx3-0";
0643 samsung,pin-function = <EXYNOS_PIN_FUNC_F>;
0644 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
0645 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
0646 };
0647 };
0648
0649 &rtc {
0650 status = "okay";
0651 clocks = <&clock CLK_RTC>, <&s2mps11_osc S2MPS11_CLK_AP>;
0652 clock-names = "rtc", "rtc_src";
0653 };
0654
0655 &tmu_cpu0 {
0656 vtmu-supply = <&ldo10_reg>;
0657 };
0658
0659 &tmu_cpu1 {
0660 vtmu-supply = <&ldo10_reg>;
0661 };
0662
0663 &tmu_cpu2 {
0664 vtmu-supply = <&ldo10_reg>;
0665 };
0666
0667 &tmu_cpu3 {
0668 vtmu-supply = <&ldo10_reg>;
0669 };
0670
0671 &tmu_gpu {
0672 vtmu-supply = <&ldo10_reg>;
0673 };
0674
0675 &usbdrd_dwc3_0 {
0676 dr_mode = "peripheral";
0677 };
0678
0679 &usbdrd_dwc3_1 {
0680 dr_mode = "peripheral";
0681 };
0682
0683 &usbdrd3_0 {
0684 vdd33-supply = <&ldo9_reg>;
0685 vdd10-supply = <&ldo11_reg>;
0686 };
0687
0688 &usbdrd3_1 {
0689 vdd33-supply = <&ldo9_reg>;
0690 vdd10-supply = <&ldo11_reg>;
0691 };