Merge tag 'for_linus-4.15-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/jwess...
[sfrench/cifs-2.6.git] / arch / arm / boot / dts / exynos5422-odroid-core.dtsi
1 /*
2  * Hardkernel Odroid XU3/XU4/HC1 boards core device tree source
3  *
4  * Copyright (c) 2017 Marek Szyprowski
5  * Copyright (c) 2013-2017 Samsung Electronics Co., Ltd.
6  *              http://www.samsung.com
7  *
8  * This program is free software; you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License version 2 as
10  * published by the Free Software Foundation.
11 */
12
13 #include <dt-bindings/clock/samsung,s2mps11.h>
14 #include <dt-bindings/interrupt-controller/irq.h>
15 #include <dt-bindings/gpio/gpio.h>
16 #include "exynos5800.dtsi"
17 #include "exynos5422-cpus.dtsi"
18
19 / {
20         memory@40000000 {
21                 device_type = "memory";
22                 reg = <0x40000000 0x7EA00000>;
23         };
24
25         chosen {
26                 stdout-path = "serial2:115200n8";
27         };
28
29         firmware@02073000 {
30                 compatible = "samsung,secure-firmware";
31                 reg = <0x02073000 0x1000>;
32         };
33
34         fixed-rate-clocks {
35                 oscclk {
36                         compatible = "samsung,exynos5420-oscclk";
37                         clock-frequency = <24000000>;
38                 };
39         };
40 };
41
42 &bus_wcore {
43         devfreq-events = <&nocp_mem0_0>, <&nocp_mem0_1>,
44                         <&nocp_mem1_0>, <&nocp_mem1_1>;
45         vdd-supply = <&buck3_reg>;
46         exynos,saturation-ratio = <100>;
47         status = "okay";
48 };
49
50 &bus_noc {
51         devfreq = <&bus_wcore>;
52         status = "okay";
53 };
54
55 &bus_fsys_apb {
56         devfreq = <&bus_wcore>;
57         status = "okay";
58 };
59
60 &bus_fsys {
61         devfreq = <&bus_wcore>;
62         status = "okay";
63 };
64
65 &bus_fsys2 {
66         devfreq = <&bus_wcore>;
67         status = "okay";
68 };
69
70 &bus_mfc {
71         devfreq = <&bus_wcore>;
72         status = "okay";
73 };
74
75 &bus_gen {
76         devfreq = <&bus_wcore>;
77         status = "okay";
78 };
79
80 &bus_peri {
81         devfreq = <&bus_wcore>;
82         status = "okay";
83 };
84
85 &bus_g2d {
86         devfreq = <&bus_wcore>;
87         status = "okay";
88 };
89
90 &bus_g2d_acp {
91         devfreq = <&bus_wcore>;
92         status = "okay";
93 };
94
95 &bus_jpeg {
96         devfreq = <&bus_wcore>;
97         status = "okay";
98 };
99
100 &bus_jpeg_apb {
101         devfreq = <&bus_wcore>;
102         status = "okay";
103 };
104
105 &bus_disp1_fimd {
106         devfreq = <&bus_wcore>;
107         status = "okay";
108 };
109
110 &bus_disp1 {
111         devfreq = <&bus_wcore>;
112         status = "okay";
113 };
114
115 &bus_gscl_scaler {
116         devfreq = <&bus_wcore>;
117         status = "okay";
118 };
119
120 &bus_mscl {
121         devfreq = <&bus_wcore>;
122         status = "okay";
123 };
124
125 &cpu0 {
126         cpu-supply = <&buck6_reg>;
127 };
128
129 &cpu4 {
130         cpu-supply = <&buck2_reg>;
131 };
132
133 &hsi2c_4 {
134         status = "okay";
135
136         s2mps11_pmic@66 {
137                 compatible = "samsung,s2mps11-pmic";
138                 reg = <0x66>;
139                 samsung,s2mps11-acokb-ground;
140
141                 interrupt-parent = <&gpx0>;
142                 interrupts = <4 IRQ_TYPE_EDGE_FALLING>;
143                 pinctrl-names = "default";
144                 pinctrl-0 = <&s2mps11_irq>;
145
146                 s2mps11_osc: clocks {
147                         #clock-cells = <1>;
148                         clock-output-names = "s2mps11_ap",
149                                         "s2mps11_cp", "s2mps11_bt";
150                 };
151
152                 regulators {
153                         ldo1_reg: LDO1 {
154                                 regulator-name = "vdd_ldo1";
155                                 regulator-min-microvolt = <1000000>;
156                                 regulator-max-microvolt = <1000000>;
157                                 regulator-always-on;
158                         };
159
160                         ldo3_reg: LDO3 {
161                                 regulator-name = "vddq_mmc0";
162                                 regulator-min-microvolt = <1800000>;
163                                 regulator-max-microvolt = <1800000>;
164                         };
165
166                         ldo4_reg: LDO4 {
167                                 regulator-name = "vdd_adc";
168                                 regulator-min-microvolt = <1800000>;
169                                 regulator-max-microvolt = <1800000>;
170                         };
171
172                         ldo5_reg: LDO5 {
173                                 regulator-name = "vdd_ldo5";
174                                 regulator-min-microvolt = <1800000>;
175                                 regulator-max-microvolt = <1800000>;
176                                 regulator-always-on;
177                         };
178
179                         ldo6_reg: LDO6 {
180                                 regulator-name = "vdd_ldo6";
181                                 regulator-min-microvolt = <1000000>;
182                                 regulator-max-microvolt = <1000000>;
183                                 regulator-always-on;
184                         };
185
186                         ldo7_reg: LDO7 {
187                                 regulator-name = "vdd_ldo7";
188                                 regulator-min-microvolt = <1800000>;
189                                 regulator-max-microvolt = <1800000>;
190                                 regulator-always-on;
191                         };
192
193                         ldo8_reg: LDO8 {
194                                 regulator-name = "vdd_ldo8";
195                                 regulator-min-microvolt = <1800000>;
196                                 regulator-max-microvolt = <1800000>;
197                                 regulator-always-on;
198                         };
199
200                         ldo9_reg: LDO9 {
201                                 regulator-name = "vdd_ldo9";
202                                 regulator-min-microvolt = <3000000>;
203                                 regulator-max-microvolt = <3000000>;
204                                 regulator-always-on;
205                         };
206
207                         ldo10_reg: LDO10 {
208                                 regulator-name = "vdd_ldo10";
209                                 regulator-min-microvolt = <1800000>;
210                                 regulator-max-microvolt = <1800000>;
211                                 regulator-always-on;
212                         };
213
214                         ldo11_reg: LDO11 {
215                                 regulator-name = "vdd_ldo11";
216                                 regulator-min-microvolt = <1000000>;
217                                 regulator-max-microvolt = <1000000>;
218                                 regulator-always-on;
219                         };
220
221                         ldo12_reg: LDO12 {
222                                 regulator-name = "vdd_ldo12";
223                                 regulator-min-microvolt = <1800000>;
224                                 regulator-max-microvolt = <1800000>;
225                                 regulator-always-on;
226                         };
227
228                         ldo13_reg: LDO13 {
229                                 regulator-name = "vddq_mmc2";
230                                 regulator-min-microvolt = <2800000>;
231                                 regulator-max-microvolt = <2800000>;
232                         };
233
234                         ldo15_reg: LDO15 {
235                                 regulator-name = "vdd_ldo15";
236                                 regulator-min-microvolt = <3100000>;
237                                 regulator-max-microvolt = <3100000>;
238                                 regulator-always-on;
239                         };
240
241                         ldo16_reg: LDO16 {
242                                 regulator-name = "vdd_ldo16";
243                                 regulator-min-microvolt = <2200000>;
244                                 regulator-max-microvolt = <2200000>;
245                                 regulator-always-on;
246                         };
247
248                         ldo17_reg: LDO17 {
249                                 regulator-name = "tsp_avdd";
250                                 regulator-min-microvolt = <3300000>;
251                                 regulator-max-microvolt = <3300000>;
252                                 regulator-always-on;
253                         };
254
255                         ldo18_reg: LDO18 {
256                                 regulator-name = "vdd_emmc_1V8";
257                                 regulator-min-microvolt = <1800000>;
258                                 regulator-max-microvolt = <1800000>;
259                         };
260
261                         ldo19_reg: LDO19 {
262                                 regulator-name = "vdd_sd";
263                                 regulator-min-microvolt = <2800000>;
264                                 regulator-max-microvolt = <2800000>;
265                         };
266
267                         ldo24_reg: LDO24 {
268                                 regulator-name = "tsp_io";
269                                 regulator-min-microvolt = <2800000>;
270                                 regulator-max-microvolt = <2800000>;
271                                 regulator-always-on;
272                         };
273
274                         ldo26_reg: LDO26 {
275                                 regulator-name = "vdd_ldo26";
276                                 regulator-min-microvolt = <3000000>;
277                                 regulator-max-microvolt = <3000000>;
278                                 regulator-always-on;
279                         };
280
281                         buck1_reg: BUCK1 {
282                                 regulator-name = "vdd_mif";
283                                 regulator-min-microvolt = <800000>;
284                                 regulator-max-microvolt = <1300000>;
285                                 regulator-always-on;
286                                 regulator-boot-on;
287                         };
288
289                         buck2_reg: BUCK2 {
290                                 regulator-name = "vdd_arm";
291                                 regulator-min-microvolt = <800000>;
292                                 regulator-max-microvolt = <1500000>;
293                                 regulator-always-on;
294                                 regulator-boot-on;
295                         };
296
297                         buck3_reg: BUCK3 {
298                                 regulator-name = "vdd_int";
299                                 regulator-min-microvolt = <800000>;
300                                 regulator-max-microvolt = <1400000>;
301                                 regulator-always-on;
302                                 regulator-boot-on;
303                         };
304
305                         buck4_reg: BUCK4 {
306                                 regulator-name = "vdd_g3d";
307                                 regulator-min-microvolt = <800000>;
308                                 regulator-max-microvolt = <1400000>;
309                                 regulator-always-on;
310                                 regulator-boot-on;
311                         };
312
313                         buck5_reg: BUCK5 {
314                                 regulator-name = "vdd_mem";
315                                 regulator-min-microvolt = <800000>;
316                                 regulator-max-microvolt = <1400000>;
317                                 regulator-always-on;
318                                 regulator-boot-on;
319                         };
320
321                         buck6_reg: BUCK6 {
322                                 regulator-name = "vdd_kfc";
323                                 regulator-min-microvolt = <800000>;
324                                 regulator-max-microvolt = <1500000>;
325                                 regulator-always-on;
326                                 regulator-boot-on;
327                         };
328
329                         buck7_reg: BUCK7 {
330                                 regulator-name = "vdd_1.0v_ldo";
331                                 regulator-min-microvolt = <800000>;
332                                 regulator-max-microvolt = <1500000>;
333                                 regulator-always-on;
334                                 regulator-boot-on;
335                         };
336
337                         buck8_reg: BUCK8 {
338                                 regulator-name = "vdd_1.8v_ldo";
339                                 regulator-min-microvolt = <800000>;
340                                 regulator-max-microvolt = <1500000>;
341                                 regulator-always-on;
342                                 regulator-boot-on;
343                         };
344
345                         buck9_reg: BUCK9 {
346                                 regulator-name = "vdd_2.8v_ldo";
347                                 regulator-min-microvolt = <3000000>;
348                                 regulator-max-microvolt = <3750000>;
349                                 regulator-always-on;
350                                 regulator-boot-on;
351                         };
352
353                         buck10_reg: BUCK10 {
354                                 regulator-name = "vdd_vmem";
355                                 regulator-min-microvolt = <2850000>;
356                                 regulator-max-microvolt = <2850000>;
357                                 regulator-always-on;
358                                 regulator-boot-on;
359                         };
360                 };
361         };
362 };
363
364 &mmc_2 {
365         status = "okay";
366         card-detect-delay = <200>;
367         samsung,dw-mshc-ciu-div = <3>;
368         samsung,dw-mshc-sdr-timing = <0 4>;
369         samsung,dw-mshc-ddr-timing = <0 2>;
370         pinctrl-names = "default";
371         pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus1 &sd2_bus4>;
372         bus-width = <4>;
373         cap-sd-highspeed;
374         vmmc-supply = <&ldo19_reg>;
375         vqmmc-supply = <&ldo13_reg>;
376 };
377
378 &nocp_mem0_0 {
379         status = "okay";
380 };
381
382 &nocp_mem0_1 {
383         status = "okay";
384 };
385
386 &nocp_mem1_0 {
387         status = "okay";
388 };
389
390 &nocp_mem1_1 {
391         status = "okay";
392 };
393
394 &pinctrl_0 {
395         s2mps11_irq: s2mps11-irq {
396                 samsung,pins = "gpx0-4";
397                 samsung,pin-function = <EXYNOS_PIN_FUNC_F>;
398                 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
399                 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
400         };
401 };
402
403 &tmu_cpu0 {
404         vtmu-supply = <&ldo7_reg>;
405 };
406
407 &tmu_cpu1 {
408         vtmu-supply = <&ldo7_reg>;
409 };
410
411 &tmu_cpu2 {
412         vtmu-supply = <&ldo7_reg>;
413 };
414
415 &tmu_cpu3 {
416         vtmu-supply = <&ldo7_reg>;
417 };
418
419 &tmu_gpu {
420         vtmu-supply = <&ldo7_reg>;
421 };
422
423 &rtc {
424         status = "okay";
425         clocks = <&clock CLK_RTC>, <&s2mps11_osc S2MPS11_CLK_AP>;
426         clock-names = "rtc", "rtc_src";
427 };
428
429 &usbdrd_dwc3_0 {
430         dr_mode = "host";
431 };
432
433 /* usbdrd_dwc3_1 mode customized in each board */
434
435 &usbdrd3_0 {
436         vdd33-supply = <&ldo9_reg>;
437         vdd10-supply = <&ldo11_reg>;
438 };
439
440 &usbdrd3_1 {
441         vdd33-supply = <&ldo9_reg>;
442         vdd10-supply = <&ldo11_reg>;
443 };