Loading...
Note: File does not exist in v6.13.7.
1// SPDX-License-Identifier: GPL-2.0
2/*
3 * TOPEET's Exynos4412 based itop board device tree source
4 *
5 * Copyright (c) 2016 SUMOMO Computer Association
6 * https://www.sumomo.mobi
7 * Randy Li <ayaka@soulik.info>
8 *
9 * Device tree source file for TOPEET iTop Exynos 4412 SCP package core
10 * board which is based on Samsung's Exynos4412 SoC.
11 */
12
13#include <dt-bindings/clock/samsung,s2mps11.h>
14#include <dt-bindings/gpio/gpio.h>
15#include <dt-bindings/input/input.h>
16#include "exynos4412.dtsi"
17#include "exynos4412-ppmu-common.dtsi"
18#include "exynos-mfc-reserved-memory.dtsi"
19
20/ {
21 memory@40000000 {
22 device_type = "memory";
23 reg = <0x40000000 0x40000000>;
24 };
25
26 firmware@203f000 {
27 compatible = "samsung,secure-firmware";
28 reg = <0x0203F000 0x1000>;
29 };
30
31 fixed-rate-clocks {
32 xxti {
33 compatible = "samsung,clock-xxti";
34 clock-frequency = <0>;
35 };
36
37 xusbxti {
38 compatible = "samsung,clock-xusbxti";
39 clock-frequency = <24000000>;
40 };
41 };
42
43 thermal-zones {
44 cpu_thermal: cpu-thermal {
45 cooling-maps {
46 map0 {
47 /* Corresponds to 800MHz at freq_table */
48 cooling-device = <&cpu0 7 7>, <&cpu1 7 7>,
49 <&cpu2 7 7>, <&cpu3 7 7>;
50 };
51 map1 {
52 /* Corresponds to 200MHz at freq_table */
53 cooling-device = <&cpu0 13 13>,
54 <&cpu1 13 13>,
55 <&cpu2 13 13>,
56 <&cpu3 13 13>;
57 };
58 };
59 };
60 };
61
62 usb-hub {
63 compatible = "smsc,usb3503a";
64 reset-gpios = <&gpm2 4 GPIO_ACTIVE_LOW>;
65 connect-gpios = <&gpm3 3 GPIO_ACTIVE_HIGH>;
66 intn-gpios = <&gpx2 3 GPIO_ACTIVE_HIGH>;
67 pinctrl-names = "default";
68 pinctrl-0 = <&hsic_reset>;
69 };
70};
71
72&bus_dmc {
73 devfreq-events = <&ppmu_dmc0_3>, <&ppmu_dmc1_3>;
74 vdd-supply = <&buck1_reg>;
75 status = "okay";
76};
77
78&bus_acp {
79 devfreq = <&bus_dmc>;
80 status = "okay";
81};
82
83&bus_c2c {
84 devfreq = <&bus_dmc>;
85 status = "okay";
86};
87
88&bus_leftbus {
89 devfreq-events = <&ppmu_leftbus_3>, <&ppmu_rightbus_3>;
90 vdd-supply = <&buck3_reg>;
91 status = "okay";
92};
93
94&bus_rightbus {
95 devfreq = <&bus_leftbus>;
96 status = "okay";
97};
98
99&bus_fsys {
100 devfreq = <&bus_leftbus>;
101 status = "okay";
102};
103
104&bus_peri {
105 devfreq = <&bus_leftbus>;
106 status = "okay";
107};
108
109&bus_mfc {
110 devfreq = <&bus_leftbus>;
111 status = "okay";
112};
113
114&cpu0 {
115 cpu0-supply = <&buck2_reg>;
116};
117
118&gpu {
119 mali-supply = <&buck4_reg>;
120 status = "okay";
121};
122
123&hsotg {
124 vusb_d-supply = <&ldo15_reg>;
125 vusb_a-supply = <&ldo12_reg>;
126};
127
128&i2c_1 {
129 #address-cells = <1>;
130 #size-cells = <0>;
131 samsung,i2c-sda-delay = <100>;
132 samsung,i2c-max-bus-freq = <400000>;
133 pinctrl-0 = <&i2c1_bus>;
134 pinctrl-names = "default";
135 status = "okay";
136
137 s5m8767: pmic@66 {
138 compatible = "samsung,s5m8767-pmic";
139 reg = <0x66>;
140
141 s5m8767,pmic-buck-default-dvs-idx = <3>;
142
143 s5m8767,pmic-buck-dvs-gpios = <&gpb 5 GPIO_ACTIVE_HIGH>,
144 <&gpb 6 GPIO_ACTIVE_HIGH>,
145 <&gpb 7 GPIO_ACTIVE_HIGH>;
146
147 s5m8767,pmic-buck-ds-gpios = <&gpm3 5 GPIO_ACTIVE_HIGH>,
148 <&gpm3 6 GPIO_ACTIVE_HIGH>,
149 <&gpm3 7 GPIO_ACTIVE_HIGH>;
150
151 /* VDD_ARM */
152 s5m8767,pmic-buck2-dvs-voltage = <1356250>, <1300000>,
153 <1243750>, <1118750>,
154 <1068750>, <1012500>,
155 <956250>, <900000>;
156 /* VDD_INT */
157 s5m8767,pmic-buck3-dvs-voltage = <1000000>, <1000000>,
158 <925000>, <925000>,
159 <887500>, <887500>,
160 <850000>, <850000>;
161 /* VDD_G3D */
162 s5m8767,pmic-buck4-dvs-voltage = <1081250>, <1081250>,
163 <1025000>, <950000>,
164 <918750>, <900000>,
165 <875000>, <831250>;
166 wakeup-source;
167
168 regulators {
169 ldo1_reg: LDO1 {
170 regulator-name = "VDD_ALIVE";
171 regulator-min-microvolt = <1100000>;
172 regulator-max-microvolt = <1100000>;
173 regulator-always-on;
174 regulator-boot-on;
175 op_mode = <1>; /* Normal Mode */
176 };
177
178 /* SCP uses 1.5v, POP uses 1.2v */
179 ldo2_reg: LDO2 {
180 regulator-name = "VDDQ_M12";
181 regulator-min-microvolt = <1500000>;
182 regulator-max-microvolt = <1500000>;
183 regulator-always-on;
184 regulator-boot-on;
185 op_mode = <1>; /* Normal Mode */
186 };
187
188 ldo3_reg: LDO3 {
189 regulator-name = "VDDIOAP_18";
190 regulator-min-microvolt = <1800000>;
191 regulator-max-microvolt = <1800000>;
192 regulator-always-on;
193 op_mode = <1>; /* Normal Mode */
194 };
195
196 ldo4_reg: LDO4 {
197 regulator-name = "VDDQ_PRE";
198 regulator-min-microvolt = <1800000>;
199 regulator-max-microvolt = <1800000>;
200 regulator-always-on;
201 op_mode = <1>; /* Normal Mode */
202 };
203
204 ldo5_reg: LDO5 {
205 regulator-name = "VDD_LDO5";
206 op_mode = <0>; /* Always off Mode */
207 };
208
209 ldo6_reg: LDO6 {
210 regulator-name = "VDD10_MPLL";
211 regulator-min-microvolt = <1000000>;
212 regulator-max-microvolt = <1000000>;
213 regulator-always-on;
214 op_mode = <1>; /* Normal Mode */
215 };
216
217 ldo7_reg: LDO7 {
218 regulator-name = "VDD10_XPLL";
219 regulator-min-microvolt = <1000000>;
220 regulator-max-microvolt = <1000000>;
221 regulator-always-on;
222 op_mode = <1>; /* Normal Mode */
223 };
224
225 ldo8_reg: LDO8 {
226 regulator-name = "VDD10_MIPI";
227 regulator-min-microvolt = <1000000>;
228 regulator-max-microvolt = <1000000>;
229 op_mode = <1>; /* Normal Mode */
230 };
231
232 ldo9_reg: LDO9 {
233 regulator-name = "VDD33_LCD";
234 regulator-min-microvolt = <3300000>;
235 regulator-max-microvolt = <3300000>;
236 op_mode = <1>; /* Normal Mode */
237 };
238
239 ldo10_reg: LDO10 {
240 regulator-name = "VDD18_MIPI";
241 regulator-min-microvolt = <1800000>;
242 regulator-max-microvolt = <1800000>;
243 op_mode = <1>; /* Normal Mode */
244 };
245
246 ldo11_reg: LDO11 {
247 regulator-name = "VDD18_ABB1";
248 regulator-min-microvolt = <1800000>;
249 regulator-max-microvolt = <1800000>;
250 regulator-always-on;
251 op_mode = <1>; /* Normal Mode */
252 };
253
254 ldo12_reg: LDO12 {
255 regulator-name = "VDD33_UOTG";
256 regulator-min-microvolt = <3300000>;
257 regulator-max-microvolt = <3300000>;
258 regulator-always-on;
259 op_mode = <1>; /* Normal Mode */
260 };
261
262 ldo13_reg: LDO13 {
263 regulator-name = "VDDIOPERI_18";
264 regulator-min-microvolt = <1800000>;
265 regulator-max-microvolt = <1800000>;
266 regulator-always-on;
267 op_mode = <1>; /* Normal Mode */
268 };
269
270 ldo14_reg: LDO14 {
271 regulator-name = "VDD18_ABB02";
272 regulator-min-microvolt = <1800000>;
273 regulator-max-microvolt = <1800000>;
274 regulator-always-on;
275 op_mode = <1>; /* Normal Mode */
276 };
277
278 ldo15_reg: LDO15 {
279 regulator-name = "VDD10_USH";
280 regulator-min-microvolt = <1000000>;
281 regulator-max-microvolt = <1000000>;
282 regulator-always-on;
283 op_mode = <1>; /* Normal Mode */
284 };
285
286 ldo16_reg: LDO16 {
287 regulator-name = "VDD18_HSIC";
288 regulator-min-microvolt = <1800000>;
289 regulator-max-microvolt = <1800000>;
290 regulator-always-on;
291 op_mode = <1>; /* Normal Mode */
292 };
293
294 ldo17_reg: LDO17 {
295 regulator-name = "VDDIOAP_MMC012_28";
296 regulator-min-microvolt = <2800000>;
297 regulator-max-microvolt = <2800000>;
298 op_mode = <1>; /* Normal Mode */
299 };
300
301 /* Used by HSIC */
302 ldo18_reg: LDO18 {
303 regulator-name = "VDDIOPERI_28";
304 regulator-min-microvolt = <3300000>;
305 regulator-max-microvolt = <3300000>;
306 regulator-always-on;
307 op_mode = <1>; /* Normal Mode */
308 };
309
310 ldo19_reg: LDO19 {
311 regulator-name = "VDD_LDO19";
312 op_mode = <0>; /* Always off Mode */
313 };
314
315 ldo20_reg: LDO20 {
316 regulator-name = "VDD28_CAM";
317 regulator-min-microvolt = <1800000>;
318 regulator-max-microvolt = <2800000>;
319 op_mode = <1>; /* Normal Mode */
320 };
321
322 ldo21_reg: LDO21 {
323 regulator-name = "VDD28_AF";
324 regulator-min-microvolt = <1800000>;
325 regulator-max-microvolt = <2800000>;
326 op_mode = <1>; /* Normal Mode */
327 };
328
329 ldo22_reg: LDO22 {
330 regulator-name = "VDDA28_2M";
331 regulator-min-microvolt = <2800000>;
332 regulator-max-microvolt = <2800000>;
333 op_mode = <1>; /* Normal Mode */
334 };
335
336 ldo23_reg: LDO23 {
337 regulator-name = "VDD28_TF";
338 regulator-min-microvolt = <2800000>;
339 regulator-max-microvolt = <2800000>;
340 op_mode = <1>; /* Normal Mode */
341 };
342
343 ldo24_reg: LDO24 {
344 regulator-name = "VDD33_A31";
345 regulator-min-microvolt = <3300000>;
346 regulator-max-microvolt = <3300000>;
347 op_mode = <1>; /* Normal Mode */
348 };
349
350 ldo25_reg: LDO25 {
351 regulator-name = "VDD18_CAM";
352 regulator-min-microvolt = <1800000>;
353 regulator-max-microvolt = <1800000>;
354 op_mode = <1>; /* Normal Mode */
355 };
356
357 ldo26_reg: LDO26 {
358 regulator-name = "VDD18_A31";
359 regulator-min-microvolt = <1800000>;
360 regulator-max-microvolt = <1800000>;
361 op_mode = <1>; /* Normal Mode */
362 };
363
364 ldo27_reg: LDO27 {
365 regulator-name = "GPS_1V8";
366 regulator-min-microvolt = <1800000>;
367 regulator-max-microvolt = <1800000>;
368 op_mode = <1>; /* Normal Mode */
369 };
370
371 ldo28_reg: LDO28 {
372 regulator-name = "DVDD12";
373 regulator-min-microvolt = <1200000>;
374 regulator-max-microvolt = <1200000>;
375 op_mode = <1>; /* Normal Mode */
376 };
377
378 buck1_reg: BUCK1 {
379 regulator-name = "vdd_mif";
380 regulator-min-microvolt = <850000>;
381 regulator-max-microvolt = <1100000>;
382 regulator-always-on;
383 regulator-boot-on;
384 op_mode = <1>; /* Normal Mode */
385 };
386
387 buck2_reg: BUCK2 {
388 regulator-name = "vdd_arm";
389 regulator-min-microvolt = <850000>;
390 regulator-max-microvolt = <1456250>;
391 regulator-always-on;
392 regulator-boot-on;
393 op_mode = <1>; /* Normal Mode */
394 };
395
396 buck3_reg: BUCK3 {
397 regulator-name = "vdd_int";
398 regulator-min-microvolt = <875000>;
399 regulator-max-microvolt = <1200000>;
400 regulator-always-on;
401 regulator-boot-on;
402 op_mode = <1>; /* Normal Mode */
403 };
404
405 buck4_reg: BUCK4 {
406 regulator-name = "vdd_g3d";
407 regulator-min-microvolt = <750000>;
408 regulator-max-microvolt = <1500000>;
409 regulator-always-on;
410 regulator-boot-on;
411 op_mode = <1>; /* Normal Mode */
412 };
413
414 buck5_reg: BUCK5 {
415 regulator-name = "vdd_m12";
416 regulator-min-microvolt = <750000>;
417 regulator-max-microvolt = <1500000>;
418 regulator-always-on;
419 regulator-boot-on;
420 op_mode = <1>; /* Normal Mode */
421 };
422
423 buck6_reg: BUCK6 {
424 regulator-name = "vdd12_5m";
425 regulator-min-microvolt = <750000>;
426 regulator-max-microvolt = <1500000>;
427 regulator-always-on;
428 regulator-boot-on;
429 op_mode = <1>; /* Normal Mode */
430 };
431
432 buck7_reg: BUCK7 {
433 regulator-name = "pvdd_buck7";
434 regulator-min-microvolt = <750000>;
435 regulator-max-microvolt = <2000000>;
436 regulator-boot-on;
437 regulator-always-on;
438 op_mode = <1>; /* Normal Mode */
439 };
440
441 buck8_reg: BUCK8 {
442 regulator-name = "pvdd_buck8";
443 regulator-min-microvolt = <750000>;
444 regulator-max-microvolt = <1500000>;
445 regulator-boot-on;
446 regulator-always-on;
447 op_mode = <1>; /* Normal Mode */
448 };
449
450 buck9_reg: BUCK9 {
451 regulator-name = "vddf28_emmc";
452 regulator-min-microvolt = <750000>;
453 regulator-max-microvolt = <3000000>;
454 op_mode = <1>; /* Normal Mode */
455 };
456 };
457
458 s5m8767_osc: clocks {
459 compatible = "samsung,s5m8767-clk";
460 #clock-cells = <1>;
461 clock-output-names = "s5m8767_ap",
462 "s5m8767_cp", "s5m8767_bt";
463 };
464
465 };
466};
467
468&mfc {
469 status = "okay";
470};
471
472&mshc_0 {
473 pinctrl-0 = <&sd4_clk &sd4_cmd &sd4_bus4 &sd4_bus8>;
474 pinctrl-names = "default";
475 status = "okay";
476 vmmc-supply = <&buck9_reg>;
477 broken-cd;
478 card-detect-delay = <200>;
479 samsung,dw-mshc-ciu-div = <3>;
480 samsung,dw-mshc-sdr-timing = <2 3>;
481 samsung,dw-mshc-ddr-timing = <1 2>;
482 bus-width = <8>;
483 cap-mmc-highspeed;
484};
485
486&pinctrl_1 {
487 hsic_reset: hsic-reset-pins {
488 samsung,pins = "gpm2-4";
489 samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
490 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
491 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
492 };
493};
494
495&rtc {
496 status = "okay";
497 clocks = <&clock CLK_RTC>, <&s5m8767_osc S2MPS11_CLK_AP>;
498 clock-names = "rtc", "rtc_src";
499};
500
501&tmu {
502 vtmu-supply = <&ldo16_reg>;
503 status = "okay";
504};