Merge commit '81fd23e2b3ccf71c807e671444e8accaba98ca53' of https://git.pengutronix...
[linux-2.6-microblaze.git] / arch / arm / boot / dts / exynos4412-itop-scp-core.dtsi
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 {
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 };