0001 // SPDX-License-Identifier: GPL-2.0
0002 /*
0003 * TOPEET's Exynos4412 based itop board device tree source
0004 *
0005 * Copyright (c) 2016 SUMOMO Computer Association
0006 * https://www.sumomo.mobi
0007 * Randy Li <ayaka@soulik.info>
0008 *
0009 * Device tree source file for TOPEET iTop Exynos 4412 SCP package core
0010 * board which is based on Samsung's Exynos4412 SoC.
0011 */
0012
0013 #include <dt-bindings/clock/samsung,s2mps11.h>
0014 #include <dt-bindings/gpio/gpio.h>
0015 #include <dt-bindings/input/input.h>
0016 #include "exynos4412.dtsi"
0017 #include "exynos4412-ppmu-common.dtsi"
0018 #include "exynos-mfc-reserved-memory.dtsi"
0019
0020 / {
0021 memory@40000000 {
0022 device_type = "memory";
0023 reg = <0x40000000 0x40000000>;
0024 };
0025
0026 firmware@203f000 {
0027 compatible = "samsung,secure-firmware";
0028 reg = <0x0203F000 0x1000>;
0029 };
0030
0031 fixed-rate-clocks {
0032 xxti {
0033 compatible = "samsung,clock-xxti";
0034 clock-frequency = <0>;
0035 };
0036
0037 xusbxti {
0038 compatible = "samsung,clock-xusbxti";
0039 clock-frequency = <24000000>;
0040 };
0041 };
0042
0043 thermal-zones {
0044 cpu_thermal: cpu-thermal {
0045 cooling-maps {
0046 map0 {
0047 /* Corresponds to 800MHz at freq_table */
0048 cooling-device = <&cpu0 7 7>, <&cpu1 7 7>,
0049 <&cpu2 7 7>, <&cpu3 7 7>;
0050 };
0051 map1 {
0052 /* Corresponds to 200MHz at freq_table */
0053 cooling-device = <&cpu0 13 13>,
0054 <&cpu1 13 13>,
0055 <&cpu2 13 13>,
0056 <&cpu3 13 13>;
0057 };
0058 };
0059 };
0060 };
0061
0062 usb-hub {
0063 compatible = "smsc,usb3503a";
0064 reset-gpios = <&gpm2 4 GPIO_ACTIVE_LOW>;
0065 connect-gpios = <&gpm3 3 GPIO_ACTIVE_HIGH>;
0066 intn-gpios = <&gpx2 3 GPIO_ACTIVE_HIGH>;
0067 pinctrl-names = "default";
0068 pinctrl-0 = <&hsic_reset>;
0069 };
0070 };
0071
0072 &bus_dmc {
0073 devfreq-events = <&ppmu_dmc0_3>, <&ppmu_dmc1_3>;
0074 vdd-supply = <&buck1_reg>;
0075 status = "okay";
0076 };
0077
0078 &bus_acp {
0079 devfreq = <&bus_dmc>;
0080 status = "okay";
0081 };
0082
0083 &bus_c2c {
0084 devfreq = <&bus_dmc>;
0085 status = "okay";
0086 };
0087
0088 &bus_leftbus {
0089 devfreq-events = <&ppmu_leftbus_3>, <&ppmu_rightbus_3>;
0090 vdd-supply = <&buck3_reg>;
0091 status = "okay";
0092 };
0093
0094 &bus_rightbus {
0095 devfreq = <&bus_leftbus>;
0096 status = "okay";
0097 };
0098
0099 &bus_fsys {
0100 devfreq = <&bus_leftbus>;
0101 status = "okay";
0102 };
0103
0104 &bus_peri {
0105 devfreq = <&bus_leftbus>;
0106 status = "okay";
0107 };
0108
0109 &bus_mfc {
0110 devfreq = <&bus_leftbus>;
0111 status = "okay";
0112 };
0113
0114 &cpu0 {
0115 cpu0-supply = <&buck2_reg>;
0116 };
0117
0118 &gpu {
0119 mali-supply = <&buck4_reg>;
0120 status = "okay";
0121 };
0122
0123 &hsotg {
0124 vusb_d-supply = <&ldo15_reg>;
0125 vusb_a-supply = <&ldo12_reg>;
0126 };
0127
0128 &i2c_1 {
0129 #address-cells = <1>;
0130 #size-cells = <0>;
0131 samsung,i2c-sda-delay = <100>;
0132 samsung,i2c-max-bus-freq = <400000>;
0133 pinctrl-0 = <&i2c1_bus>;
0134 pinctrl-names = "default";
0135 status = "okay";
0136
0137 s5m8767: pmic@66 {
0138 compatible = "samsung,s5m8767-pmic";
0139 reg = <0x66>;
0140
0141 s5m8767,pmic-buck-default-dvs-idx = <3>;
0142
0143 s5m8767,pmic-buck-dvs-gpios = <&gpb 5 GPIO_ACTIVE_HIGH>,
0144 <&gpb 6 GPIO_ACTIVE_HIGH>,
0145 <&gpb 7 GPIO_ACTIVE_HIGH>;
0146
0147 s5m8767,pmic-buck-ds-gpios = <&gpm3 5 GPIO_ACTIVE_HIGH>,
0148 <&gpm3 6 GPIO_ACTIVE_HIGH>,
0149 <&gpm3 7 GPIO_ACTIVE_HIGH>;
0150
0151 /* VDD_ARM */
0152 s5m8767,pmic-buck2-dvs-voltage = <1356250>, <1300000>,
0153 <1243750>, <1118750>,
0154 <1068750>, <1012500>,
0155 <956250>, <900000>;
0156 /* VDD_INT */
0157 s5m8767,pmic-buck3-dvs-voltage = <1000000>, <1000000>,
0158 <925000>, <925000>,
0159 <887500>, <887500>,
0160 <850000>, <850000>;
0161 /* VDD_G3D */
0162 s5m8767,pmic-buck4-dvs-voltage = <1081250>, <1081250>,
0163 <1025000>, <950000>,
0164 <918750>, <900000>,
0165 <875000>, <831250>;
0166 wakeup-source;
0167
0168 regulators {
0169 ldo1_reg: LDO1 {
0170 regulator-name = "VDD_ALIVE";
0171 regulator-min-microvolt = <1100000>;
0172 regulator-max-microvolt = <1100000>;
0173 regulator-always-on;
0174 regulator-boot-on;
0175 op_mode = <1>; /* Normal Mode */
0176 };
0177
0178 /* SCP uses 1.5v, POP uses 1.2v */
0179 ldo2_reg: LDO2 {
0180 regulator-name = "VDDQ_M12";
0181 regulator-min-microvolt = <1500000>;
0182 regulator-max-microvolt = <1500000>;
0183 regulator-always-on;
0184 regulator-boot-on;
0185 op_mode = <1>; /* Normal Mode */
0186 };
0187
0188 ldo3_reg: LDO3 {
0189 regulator-name = "VDDIOAP_18";
0190 regulator-min-microvolt = <1800000>;
0191 regulator-max-microvolt = <1800000>;
0192 regulator-always-on;
0193 op_mode = <1>; /* Normal Mode */
0194 };
0195
0196 ldo4_reg: LDO4 {
0197 regulator-name = "VDDQ_PRE";
0198 regulator-min-microvolt = <1800000>;
0199 regulator-max-microvolt = <1800000>;
0200 regulator-always-on;
0201 op_mode = <1>; /* Normal Mode */
0202 };
0203
0204 ldo5_reg: LDO5 {
0205 regulator-name = "VDD_LDO5";
0206 op_mode = <0>; /* Always off Mode */
0207 };
0208
0209 ldo6_reg: LDO6 {
0210 regulator-name = "VDD10_MPLL";
0211 regulator-min-microvolt = <1000000>;
0212 regulator-max-microvolt = <1000000>;
0213 regulator-always-on;
0214 op_mode = <1>; /* Normal Mode */
0215 };
0216
0217 ldo7_reg: LDO7 {
0218 regulator-name = "VDD10_XPLL";
0219 regulator-min-microvolt = <1000000>;
0220 regulator-max-microvolt = <1000000>;
0221 regulator-always-on;
0222 op_mode = <1>; /* Normal Mode */
0223 };
0224
0225 ldo8_reg: LDO8 {
0226 regulator-name = "VDD10_MIPI";
0227 regulator-min-microvolt = <1000000>;
0228 regulator-max-microvolt = <1000000>;
0229 op_mode = <1>; /* Normal Mode */
0230 };
0231
0232 ldo9_reg: LDO9 {
0233 regulator-name = "VDD33_LCD";
0234 regulator-min-microvolt = <3300000>;
0235 regulator-max-microvolt = <3300000>;
0236 op_mode = <1>; /* Normal Mode */
0237 };
0238
0239 ldo10_reg: LDO10 {
0240 regulator-name = "VDD18_MIPI";
0241 regulator-min-microvolt = <1800000>;
0242 regulator-max-microvolt = <1800000>;
0243 op_mode = <1>; /* Normal Mode */
0244 };
0245
0246 ldo11_reg: LDO11 {
0247 regulator-name = "VDD18_ABB1";
0248 regulator-min-microvolt = <1800000>;
0249 regulator-max-microvolt = <1800000>;
0250 regulator-always-on;
0251 op_mode = <1>; /* Normal Mode */
0252 };
0253
0254 ldo12_reg: LDO12 {
0255 regulator-name = "VDD33_UOTG";
0256 regulator-min-microvolt = <3300000>;
0257 regulator-max-microvolt = <3300000>;
0258 regulator-always-on;
0259 op_mode = <1>; /* Normal Mode */
0260 };
0261
0262 ldo13_reg: LDO13 {
0263 regulator-name = "VDDIOPERI_18";
0264 regulator-min-microvolt = <1800000>;
0265 regulator-max-microvolt = <1800000>;
0266 regulator-always-on;
0267 op_mode = <1>; /* Normal Mode */
0268 };
0269
0270 ldo14_reg: LDO14 {
0271 regulator-name = "VDD18_ABB02";
0272 regulator-min-microvolt = <1800000>;
0273 regulator-max-microvolt = <1800000>;
0274 regulator-always-on;
0275 op_mode = <1>; /* Normal Mode */
0276 };
0277
0278 ldo15_reg: LDO15 {
0279 regulator-name = "VDD10_USH";
0280 regulator-min-microvolt = <1000000>;
0281 regulator-max-microvolt = <1000000>;
0282 regulator-always-on;
0283 op_mode = <1>; /* Normal Mode */
0284 };
0285
0286 ldo16_reg: LDO16 {
0287 regulator-name = "VDD18_HSIC";
0288 regulator-min-microvolt = <1800000>;
0289 regulator-max-microvolt = <1800000>;
0290 regulator-always-on;
0291 op_mode = <1>; /* Normal Mode */
0292 };
0293
0294 ldo17_reg: LDO17 {
0295 regulator-name = "VDDIOAP_MMC012_28";
0296 regulator-min-microvolt = <2800000>;
0297 regulator-max-microvolt = <2800000>;
0298 op_mode = <1>; /* Normal Mode */
0299 };
0300
0301 /* Used by HSIC */
0302 ldo18_reg: LDO18 {
0303 regulator-name = "VDDIOPERI_28";
0304 regulator-min-microvolt = <3300000>;
0305 regulator-max-microvolt = <3300000>;
0306 regulator-always-on;
0307 op_mode = <1>; /* Normal Mode */
0308 };
0309
0310 ldo19_reg: LDO19 {
0311 regulator-name = "VDD_LDO19";
0312 op_mode = <0>; /* Always off Mode */
0313 };
0314
0315 ldo20_reg: LDO20 {
0316 regulator-name = "VDD28_CAM";
0317 regulator-min-microvolt = <1800000>;
0318 regulator-max-microvolt = <2800000>;
0319 op_mode = <1>; /* Normal Mode */
0320 };
0321
0322 ldo21_reg: LDO21 {
0323 regulator-name = "VDD28_AF";
0324 regulator-min-microvolt = <1800000>;
0325 regulator-max-microvolt = <2800000>;
0326 op_mode = <1>; /* Normal Mode */
0327 };
0328
0329 ldo22_reg: LDO22 {
0330 regulator-name = "VDDA28_2M";
0331 regulator-min-microvolt = <2800000>;
0332 regulator-max-microvolt = <2800000>;
0333 op_mode = <1>; /* Normal Mode */
0334 };
0335
0336 ldo23_reg: LDO23 {
0337 regulator-name = "VDD28_TF";
0338 regulator-min-microvolt = <2800000>;
0339 regulator-max-microvolt = <2800000>;
0340 op_mode = <1>; /* Normal Mode */
0341 };
0342
0343 ldo24_reg: LDO24 {
0344 regulator-name = "VDD33_A31";
0345 regulator-min-microvolt = <3300000>;
0346 regulator-max-microvolt = <3300000>;
0347 op_mode = <1>; /* Normal Mode */
0348 };
0349
0350 ldo25_reg: LDO25 {
0351 regulator-name = "VDD18_CAM";
0352 regulator-min-microvolt = <1800000>;
0353 regulator-max-microvolt = <1800000>;
0354 op_mode = <1>; /* Normal Mode */
0355 };
0356
0357 ldo26_reg: LDO26 {
0358 regulator-name = "VDD18_A31";
0359 regulator-min-microvolt = <1800000>;
0360 regulator-max-microvolt = <1800000>;
0361 op_mode = <1>; /* Normal Mode */
0362 };
0363
0364 ldo27_reg: LDO27 {
0365 regulator-name = "GPS_1V8";
0366 regulator-min-microvolt = <1800000>;
0367 regulator-max-microvolt = <1800000>;
0368 op_mode = <1>; /* Normal Mode */
0369 };
0370
0371 ldo28_reg: LDO28 {
0372 regulator-name = "DVDD12";
0373 regulator-min-microvolt = <1200000>;
0374 regulator-max-microvolt = <1200000>;
0375 op_mode = <1>; /* Normal Mode */
0376 };
0377
0378 buck1_reg: BUCK1 {
0379 regulator-name = "vdd_mif";
0380 regulator-min-microvolt = <850000>;
0381 regulator-max-microvolt = <1100000>;
0382 regulator-always-on;
0383 regulator-boot-on;
0384 op_mode = <1>; /* Normal Mode */
0385 };
0386
0387 buck2_reg: BUCK2 {
0388 regulator-name = "vdd_arm";
0389 regulator-min-microvolt = <850000>;
0390 regulator-max-microvolt = <1456250>;
0391 regulator-always-on;
0392 regulator-boot-on;
0393 op_mode = <1>; /* Normal Mode */
0394 };
0395
0396 buck3_reg: BUCK3 {
0397 regulator-name = "vdd_int";
0398 regulator-min-microvolt = <875000>;
0399 regulator-max-microvolt = <1200000>;
0400 regulator-always-on;
0401 regulator-boot-on;
0402 op_mode = <1>; /* Normal Mode */
0403 };
0404
0405 buck4_reg: BUCK4 {
0406 regulator-name = "vdd_g3d";
0407 regulator-min-microvolt = <750000>;
0408 regulator-max-microvolt = <1500000>;
0409 regulator-always-on;
0410 regulator-boot-on;
0411 op_mode = <1>; /* Normal Mode */
0412 };
0413
0414 buck5_reg: BUCK5 {
0415 regulator-name = "vdd_m12";
0416 regulator-min-microvolt = <750000>;
0417 regulator-max-microvolt = <1500000>;
0418 regulator-always-on;
0419 regulator-boot-on;
0420 op_mode = <1>; /* Normal Mode */
0421 };
0422
0423 buck6_reg: BUCK6 {
0424 regulator-name = "vdd12_5m";
0425 regulator-min-microvolt = <750000>;
0426 regulator-max-microvolt = <1500000>;
0427 regulator-always-on;
0428 regulator-boot-on;
0429 op_mode = <1>; /* Normal Mode */
0430 };
0431
0432 buck7_reg: BUCK7 {
0433 regulator-name = "pvdd_buck7";
0434 regulator-min-microvolt = <750000>;
0435 regulator-max-microvolt = <2000000>;
0436 regulator-boot-on;
0437 regulator-always-on;
0438 op_mode = <1>; /* Normal Mode */
0439 };
0440
0441 buck8_reg: BUCK8 {
0442 regulator-name = "pvdd_buck8";
0443 regulator-min-microvolt = <750000>;
0444 regulator-max-microvolt = <1500000>;
0445 regulator-boot-on;
0446 regulator-always-on;
0447 op_mode = <1>; /* Normal Mode */
0448 };
0449
0450 buck9_reg: BUCK9 {
0451 regulator-name = "vddf28_emmc";
0452 regulator-min-microvolt = <750000>;
0453 regulator-max-microvolt = <3000000>;
0454 op_mode = <1>; /* Normal Mode */
0455 };
0456 };
0457
0458 s5m8767_osc: clocks {
0459 compatible = "samsung,s5m8767-clk";
0460 #clock-cells = <1>;
0461 clock-output-names = "s5m8767_ap",
0462 "s5m8767_cp", "s5m8767_bt";
0463 };
0464
0465 };
0466 };
0467
0468 &mfc {
0469 status = "okay";
0470 };
0471
0472 &mshc_0 {
0473 pinctrl-0 = <&sd4_clk &sd4_cmd &sd4_bus4 &sd4_bus8>;
0474 pinctrl-names = "default";
0475 status = "okay";
0476 vmmc-supply = <&buck9_reg>;
0477 broken-cd;
0478 card-detect-delay = <200>;
0479 samsung,dw-mshc-ciu-div = <3>;
0480 samsung,dw-mshc-sdr-timing = <2 3>;
0481 samsung,dw-mshc-ddr-timing = <1 2>;
0482 bus-width = <8>;
0483 cap-mmc-highspeed;
0484 };
0485
0486 &pinctrl_1 {
0487 hsic_reset: hsic-reset-pins {
0488 samsung,pins = "gpm2-4";
0489 samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
0490 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
0491 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
0492 };
0493 };
0494
0495 &rtc {
0496 status = "okay";
0497 clocks = <&clock CLK_RTC>, <&s5m8767_osc S2MPS11_CLK_AP>;
0498 clock-names = "rtc", "rtc_src";
0499 };
0500
0501 &tmu {
0502 vtmu-supply = <&ldo16_reg>;
0503 status = "okay";
0504 };