Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid
[sfrench/cifs-2.6.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: 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
167                 regulators {
168                         ldo1_reg: LDO1 {
169                                 regulator-name = "VDD_ALIVE";
170                                 regulator-min-microvolt = <1100000>;
171                                 regulator-max-microvolt = <1100000>;
172                                 regulator-always-on;
173                                 regulator-boot-on;
174                                 op_mode = <1>; /* Normal Mode */
175                         };
176
177                         /* SCP uses 1.5v, POP uses 1.2v */
178                         ldo2_reg: LDO2 {
179                                 regulator-name = "VDDQ_M12";
180                                 regulator-min-microvolt = <1500000>;
181                                 regulator-max-microvolt = <1500000>;
182                                 regulator-always-on;
183                                 regulator-boot-on;
184                                 op_mode = <1>; /* Normal Mode */
185                         };
186
187                         ldo3_reg: LDO3 {
188                                 regulator-name = "VDDIOAP_18";
189                                 regulator-min-microvolt = <1800000>;
190                                 regulator-max-microvolt = <1800000>;
191                                 regulator-always-on;
192                                 op_mode = <1>; /* Normal Mode */
193                         };
194
195                         ldo4_reg: LDO4 {
196                                 regulator-name = "VDDQ_PRE";
197                                 regulator-min-microvolt = <1800000>;
198                                 regulator-max-microvolt = <1800000>;
199                                 regulator-always-on;
200                                 op_mode = <1>; /* Normal Mode */
201                         };
202
203                         ldo5_reg: LDO5 {
204                                 regulator-name = "VDD_LDO5";
205                                 op_mode = <0>; /* Always off Mode */
206                         };
207
208                         ldo6_reg: LDO6 {
209                                 regulator-name = "VDD10_MPLL";
210                                 regulator-min-microvolt = <1000000>;
211                                 regulator-max-microvolt = <1000000>;
212                                 regulator-always-on;
213                                 op_mode = <1>; /* Normal Mode */
214                         };
215
216                         ldo7_reg: LDO7 {
217                                 regulator-name = "VDD10_XPLL";
218                                 regulator-min-microvolt = <1000000>;
219                                 regulator-max-microvolt = <1000000>;
220                                 regulator-always-on;
221                                 op_mode = <1>; /* Normal Mode */
222                         };
223
224                         ldo8_reg: LDO8 {
225                                 regulator-name = "VDD10_MIPI";
226                                 regulator-min-microvolt = <1000000>;
227                                 regulator-max-microvolt = <1000000>;
228                                 op_mode = <1>; /* Normal Mode */
229                         };
230
231                         ldo9_reg: LDO9 {
232                                 regulator-name = "VDD33_LCD";
233                                 regulator-min-microvolt = <3300000>;
234                                 regulator-max-microvolt = <3300000>;
235                                 op_mode = <1>; /* Normal Mode */
236                         };
237
238                         ldo10_reg: LDO10 {
239                                 regulator-name = "VDD18_MIPI";
240                                 regulator-min-microvolt = <1800000>;
241                                 regulator-max-microvolt = <1800000>;
242                                 op_mode = <1>; /* Normal Mode */
243                         };
244
245                         ldo11_reg: LDO11 {
246                                 regulator-name = "VDD18_ABB1";
247                                 regulator-min-microvolt = <1800000>;
248                                 regulator-max-microvolt = <1800000>;
249                                 regulator-always-on;
250                                 op_mode = <1>; /* Normal Mode */
251                         };
252
253                         ldo12_reg: LDO12 {
254                                 regulator-name = "VDD33_UOTG";
255                                 regulator-min-microvolt = <3300000>;
256                                 regulator-max-microvolt = <3300000>;
257                                 regulator-always-on;
258                                 op_mode = <1>; /* Normal Mode */
259                         };
260
261                         ldo13_reg: LDO13 {
262                                 regulator-name = "VDDIOPERI_18";
263                                 regulator-min-microvolt = <1800000>;
264                                 regulator-max-microvolt = <1800000>;
265                                 regulator-always-on;
266                                 op_mode = <1>; /* Normal Mode */
267                         };
268
269                         ldo14_reg: LDO14 {
270                                 regulator-name = "VDD18_ABB02";
271                                 regulator-min-microvolt = <1800000>;
272                                 regulator-max-microvolt = <1800000>;
273                                 regulator-always-on;
274                                 op_mode = <1>; /* Normal Mode */
275                         };
276
277                         ldo15_reg: LDO15 {
278                                 regulator-name = "VDD10_USH";
279                                 regulator-min-microvolt = <1000000>;
280                                 regulator-max-microvolt = <1000000>;
281                                 regulator-always-on;
282                                 op_mode = <1>; /* Normal Mode */
283                         };
284
285                         ldo16_reg: LDO16 {
286                                 regulator-name = "VDD18_HSIC";
287                                 regulator-min-microvolt = <1800000>;
288                                 regulator-max-microvolt = <1800000>;
289                                 regulator-always-on;
290                                 op_mode = <1>; /* Normal Mode */
291                         };
292
293                         ldo17_reg: LDO17 {
294                                 regulator-name = "VDDIOAP_MMC012_28";
295                                 regulator-min-microvolt = <2800000>;
296                                 regulator-max-microvolt = <2800000>;
297                                 op_mode = <1>; /* Normal Mode */
298                         };
299
300                         /* Used by HSIC */
301                         ldo18_reg: LDO18 {
302                                 regulator-name = "VDDIOPERI_28";
303                                 regulator-min-microvolt = <3300000>;
304                                 regulator-max-microvolt = <3300000>;
305                                 regulator-always-on;
306                                 op_mode = <1>; /* Normal Mode */
307                         };
308
309                         ldo19_reg: LDO19 {
310                                 regulator-name = "VDD_LDO19";
311                                 op_mode = <0>; /* Always off Mode */
312                         };
313
314                         ldo20_reg: LDO20 {
315                                 regulator-name = "VDD28_CAM";
316                                 regulator-min-microvolt = <1800000>;
317                                 regulator-max-microvolt = <2800000>;
318                                 op_mode = <1>; /* Normal Mode */
319                         };
320
321                         ldo21_reg: LDO21 {
322                                 regulator-name = "VDD28_AF";
323                                 regulator-min-microvolt = <1800000>;
324                                 regulator-max-microvolt = <2800000>;
325                                 op_mode = <1>; /* Normal Mode */
326                         };
327
328                         ldo22_reg: LDO22 {
329                                 regulator-name = "VDDA28_2M";
330                                 regulator-min-microvolt = <2800000>;
331                                 regulator-max-microvolt = <2800000>;
332                                 op_mode = <1>; /* Normal Mode */
333                         };
334
335                         ldo23_reg: LDO23 {
336                                 regulator-name = "VDD28_TF";
337                                 regulator-min-microvolt = <2800000>;
338                                 regulator-max-microvolt = <2800000>;
339                                 op_mode = <1>; /* Normal Mode */
340                         };
341
342                         ldo24_reg: LDO24 {
343                                 regulator-name = "VDD33_A31";
344                                 regulator-min-microvolt = <3300000>;
345                                 regulator-max-microvolt = <3300000>;
346                                 op_mode = <1>; /* Normal Mode */
347                         };
348
349                         ldo25_reg: LDO25 {
350                                 regulator-name = "VDD18_CAM";
351                                 regulator-min-microvolt = <1800000>;
352                                 regulator-max-microvolt = <1800000>;
353                                 op_mode = <1>; /* Normal Mode */
354                         };
355
356                         ldo26_reg: LDO26 {
357                                 regulator-name = "VDD18_A31";
358                                 regulator-min-microvolt = <1800000>;
359                                 regulator-max-microvolt = <1800000>;
360                                 op_mode = <1>; /* Normal Mode */
361                         };
362
363                         ldo27_reg: LDO27 {
364                                 regulator-name = "GPS_1V8";
365                                 regulator-min-microvolt = <1800000>;
366                                 regulator-max-microvolt = <1800000>;
367                                 op_mode = <1>; /* Normal Mode */
368                         };
369
370                         ldo28_reg: LDO28 {
371                                 regulator-name = "DVDD12";
372                                 regulator-min-microvolt = <1200000>;
373                                 regulator-max-microvolt = <1200000>;
374                                 op_mode = <1>; /* Normal Mode */
375                         };
376
377                         buck1_reg: BUCK1 {
378                                 regulator-name = "vdd_mif";
379                                 regulator-min-microvolt = <850000>;
380                                 regulator-max-microvolt = <1100000>;
381                                 regulator-always-on;
382                                 regulator-boot-on;
383                                 op_mode = <1>; /* Normal Mode */
384                         };
385
386                         buck2_reg: BUCK2 {
387                                 regulator-name = "vdd_arm";
388                                 regulator-min-microvolt = <850000>;
389                                 regulator-max-microvolt = <1456250>;
390                                 regulator-always-on;
391                                 regulator-boot-on;
392                                 op_mode = <1>; /* Normal Mode */
393                         };
394
395                         buck3_reg: BUCK3 {
396                                 regulator-name = "vdd_int";
397                                 regulator-min-microvolt = <875000>;
398                                 regulator-max-microvolt = <1200000>;
399                                 regulator-always-on;
400                                 regulator-boot-on;
401                                 op_mode = <1>; /* Normal Mode */
402                         };
403
404                         buck4_reg: BUCK4 {
405                                 regulator-name = "vdd_g3d";
406                                 regulator-min-microvolt = <750000>;
407                                 regulator-max-microvolt = <1500000>;
408                                 regulator-always-on;
409                                 regulator-boot-on;
410                                 op_mode = <1>; /* Normal Mode */
411                         };
412
413                         buck5_reg: BUCK5 {
414                                 regulator-name = "vdd_m12";
415                                 regulator-min-microvolt = <750000>;
416                                 regulator-max-microvolt = <1500000>;
417                                 regulator-always-on;
418                                 regulator-boot-on;
419                                 op_mode = <1>; /* Normal Mode */
420                         };
421
422                         buck6_reg: BUCK6 {
423                                 regulator-name = "vdd12_5m";
424                                 regulator-min-microvolt = <750000>;
425                                 regulator-max-microvolt = <1500000>;
426                                 regulator-always-on;
427                                 regulator-boot-on;
428                                 op_mode = <1>; /* Normal Mode */
429                         };
430
431                         buck7_reg: BUCK7 {
432                                 regulator-name = "pvdd_buck7";
433                                 regulator-min-microvolt = <750000>;
434                                 regulator-max-microvolt = <2000000>;
435                                 regulator-boot-on;
436                                 regulator-always-on;
437                                 op_mode = <1>; /* Normal Mode */
438                         };
439
440                         buck8_reg: BUCK8 {
441                                 regulator-name = "pvdd_buck8";
442                                 regulator-min-microvolt = <750000>;
443                                 regulator-max-microvolt = <1500000>;
444                                 regulator-boot-on;
445                                 regulator-always-on;
446                                 op_mode = <1>; /* Normal Mode */
447                         };
448
449                         buck9_reg: BUCK9 {
450                                 regulator-name = "vddf28_emmc";
451                                 regulator-min-microvolt = <750000>;
452                                 regulator-max-microvolt = <3000000>;
453                                 op_mode = <1>; /* Normal Mode */
454                         };
455                 };
456
457                 s5m8767_osc: clocks {
458                         compatible = "samsung,s5m8767-clk";
459                         #clock-cells = <1>;
460                         clock-output-names = "s5m8767_ap",
461                                         "s5m8767_cp", "s5m8767_bt";
462                 };
463
464         };
465 };
466
467 &mfc {
468         status = "okay";
469 };
470
471 &mshc_0 {
472         pinctrl-0 = <&sd4_clk &sd4_cmd &sd4_bus4 &sd4_bus8>;
473         pinctrl-names = "default";
474         status = "okay";
475         vmmc-supply = <&buck9_reg>;
476         broken-cd;
477         card-detect-delay = <200>;
478         samsung,dw-mshc-ciu-div = <3>;
479         samsung,dw-mshc-sdr-timing = <2 3>;
480         samsung,dw-mshc-ddr-timing = <1 2>;
481         bus-width = <8>;
482         cap-mmc-highspeed;
483 };
484
485 &pinctrl_1 {
486         hsic_reset: hsic-reset {
487                 samsung,pins = "gpm2-4";
488                 samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
489                 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
490                 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
491         };
492 };
493
494 &rtc {
495         status = "okay";
496         clocks = <&clock CLK_RTC>, <&s5m8767_osc S2MPS11_CLK_AP>;
497         clock-names = "rtc", "rtc_src";
498 };
499
500 &tmu {
501         vtmu-supply = <&ldo16_reg>;
502         status = "okay";
503 };