blob: db52841297a5744d29b86fc167b43dcf1c6a1db6 [file] [log] [blame]
Marek Szyprowskiec601ff2014-07-16 02:54:07 +09001/*
2 * Common definition for Hardkernel's Exynos4412 based ODROID-X/X2/U2/U3 boards
3 * device tree source
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License version 2 as
7 * published by the Free Software Foundation.
8*/
9
Sylwester Nawrocki3635ace2015-02-03 15:06:20 +010010#include <dt-bindings/sound/samsung-i2s.h>
Marek Szyprowski081a15e2014-07-16 02:54:07 +090011#include <dt-bindings/input/input.h>
Markus Reichlee2020a2015-05-09 03:05:51 +090012#include <dt-bindings/clock/maxim,max77686.h>
Marek Szyprowskiec601ff2014-07-16 02:54:07 +090013#include "exynos4412.dtsi"
14
15/ {
Tomasz Figa62d38092015-01-23 14:47:42 +010016 chosen {
17 stdout-path = &serial_1;
18 };
19
Marek Szyprowskiec601ff2014-07-16 02:54:07 +090020 firmware@0204F000 {
21 compatible = "samsung,secure-firmware";
22 reg = <0x0204F000 0x1000>;
23 };
24
Marek Szyprowski081a15e2014-07-16 02:54:07 +090025 gpio_keys {
26 compatible = "gpio-keys";
27 pinctrl-names = "default";
28 pinctrl-0 = <&gpio_power_key>;
29
30 power_key {
31 interrupt-parent = <&gpx1>;
32 interrupts = <3 0>;
33 gpios = <&gpx1 3 1>;
34 linux,code = <KEY_POWER>;
35 label = "power key";
36 debounce-interval = <10>;
37 gpio-key,wakeup;
38 };
39 };
40
Sylwester Nawrocki5a852742014-07-16 03:16:44 +090041 sound: sound {
Sylwester Nawrocki16696332015-02-03 15:06:21 +010042 compatible = "simple-audio-card";
Sylwester Nawrocki59760002014-11-22 23:37:02 +090043 assigned-clocks = <&clock_audss EXYNOS_MOUT_AUDSS>,
44 <&clock_audss EXYNOS_MOUT_I2S>,
45 <&clock_audss EXYNOS_DOUT_SRP>,
46 <&clock_audss EXYNOS_DOUT_AUD_BUS>;
47 assigned-clock-parents = <&clock CLK_FOUT_EPLL>,
48 <&clock_audss EXYNOS_MOUT_AUDSS>;
49 assigned-clock-rates = <0>,
50 <0>,
51 <192000000>,
52 <19200000>;
Sylwester Nawrocki16696332015-02-03 15:06:21 +010053
54 simple-audio-card,format = "i2s";
55 simple-audio-card,bitclock-master = <&link0_codec>;
56 simple-audio-card,frame-master = <&link0_codec>;
57
58 simple-audio-card,cpu {
59 sound-dai = <&i2s0 0>;
60 system-clock-frequency = <19200000>;
61 };
62
63 link0_codec: simple-audio-card,codec {
64 sound-dai = <&max98090>;
65 clocks = <&i2s0 CLK_I2S_CDCLK>;
66 };
Sylwester Nawrocki5a852742014-07-16 03:16:44 +090067 };
68
Marek Szyprowski225da7e2015-02-05 00:35:58 +090069 emmc_pwrseq: pwrseq {
70 pinctrl-0 = <&sd1_cd>;
71 pinctrl-names = "default";
72 compatible = "mmc-pwrseq-emmc";
73 reset-gpios = <&gpk1 2 1>;
74 };
75
Marek Szyprowskiec601ff2014-07-16 02:54:07 +090076 camera {
77 status = "okay";
78 pinctrl-names = "default";
79 pinctrl-0 = <>;
Marek Szyprowskiec601ff2014-07-16 02:54:07 +090080 };
81
82 fixed-rate-clocks {
83 xxti {
84 compatible = "samsung,clock-xxti";
85 clock-frequency = <0>;
86 };
87
88 xusbxti {
89 compatible = "samsung,clock-xusbxti";
90 clock-frequency = <24000000>;
91 };
92 };
93
Lukasz Majewskibf4a0be2015-01-30 08:26:02 +090094 thermal-zones {
95 cpu_thermal: cpu-thermal {
96 cooling-maps {
97 map0 {
98 /* Corresponds to 800MHz at freq_table */
99 cooling-device = <&cpu0 7 7>;
100 };
101 map1 {
102 /* Corresponds to 200MHz at freq_table */
103 cooling-device = <&cpu0 13 13>;
104 };
105 };
106 };
107 };
Marek Szyprowskiec601ff2014-07-16 02:54:07 +0900108};
Marek Szyprowski081a15e2014-07-16 02:54:07 +0900109
Bartlomiej Zolnierkiewiczf4499742015-08-12 07:38:45 +0900110&cpu0 {
111 cpu0-supply = <&buck2_reg>;
112};
113
Marek Szyprowski225da7e2015-02-05 00:35:58 +0900114/* RSTN signal for eMMC */
115&sd1_cd {
116 samsung,pin-pud = <0>;
117 samsung,pin-drv = <0>;
118};
119
Marek Szyprowski081a15e2014-07-16 02:54:07 +0900120&pinctrl_1 {
121 gpio_power_key: power_key {
122 samsung,pins = "gpx1-3";
123 samsung,pin-pud = <0>;
124 };
Daniel Drakeeea66532014-08-18 11:39:50 -0500125
126 max77686_irq: max77686-irq {
127 samsung,pins = "gpx3-2";
128 samsung,pin-function = <0>;
129 samsung,pin-pud = <0>;
130 samsung,pin-drv = <0>;
131 };
Marek Szyprowski25616582015-02-04 23:44:15 +0900132
133 hdmi_hpd: hdmi-hpd {
134 samsung,pins = "gpx3-7";
135 samsung,pin-pud = <1>;
136 };
Marek Szyprowski081a15e2014-07-16 02:54:07 +0900137};
Krzysztof Kozlowski49c1a162015-04-06 21:06:50 +0200138
139&ehci {
140 status = "okay";
141};
142
143&exynos_usbphy {
144 status = "okay";
145};
146
147&fimc_0 {
148 status = "okay";
149 assigned-clocks = <&clock CLK_MOUT_FIMC0>,
150 <&clock CLK_SCLK_FIMC0>;
151 assigned-clock-parents = <&clock CLK_MOUT_MPLL_USER_T>;
152 assigned-clock-rates = <0>, <176000000>;
153};
154
155&fimc_1 {
156 status = "okay";
157 assigned-clocks = <&clock CLK_MOUT_FIMC1>,
158 <&clock CLK_SCLK_FIMC1>;
159 assigned-clock-parents = <&clock CLK_MOUT_MPLL_USER_T>;
160 assigned-clock-rates = <0>, <176000000>;
161};
162
163&fimc_2 {
164 status = "okay";
165 assigned-clocks = <&clock CLK_MOUT_FIMC2>,
166 <&clock CLK_SCLK_FIMC2>;
167 assigned-clock-parents = <&clock CLK_MOUT_MPLL_USER_T>;
168 assigned-clock-rates = <0>, <176000000>;
169};
170
171&fimc_3 {
172 status = "okay";
173 assigned-clocks = <&clock CLK_MOUT_FIMC3>,
174 <&clock CLK_SCLK_FIMC3>;
175 assigned-clock-parents = <&clock CLK_MOUT_MPLL_USER_T>;
176 assigned-clock-rates = <0>, <176000000>;
177};
178
179&g2d {
180 status = "okay";
181};
182
183&hdmi {
184 hpd-gpio = <&gpx3 7 0>;
185 pinctrl-names = "default";
186 pinctrl-0 = <&hdmi_hpd>;
187 vdd-supply = <&ldo8_reg>;
188 vdd_osc-supply = <&ldo10_reg>;
189 vdd_pll-supply = <&ldo8_reg>;
190 ddc = <&i2c_2>;
191 status = "okay";
192};
193
194&hsotg {
195 dr_mode = "peripheral";
196 status = "okay";
197 vusb_d-supply = <&ldo15_reg>;
198 vusb_a-supply = <&ldo12_reg>;
199};
200
201&i2c_0 {
202 pinctrl-0 = <&i2c0_bus>;
203 pinctrl-names = "default";
204 samsung,i2c-sda-delay = <100>;
205 samsung,i2c-max-bus-freq = <400000>;
206 status = "okay";
207
208 usb3503: usb3503@08 {
209 compatible = "smsc,usb3503";
210 reg = <0x08>;
211
212 intn-gpios = <&gpx3 0 0>;
213 connect-gpios = <&gpx3 4 0>;
214 reset-gpios = <&gpx3 5 0>;
215 initial-mode = <1>;
216 };
217
218 max77686: pmic@09 {
219 compatible = "maxim,max77686";
220 interrupt-parent = <&gpx3>;
221 interrupts = <2 0>;
222 pinctrl-names = "default";
223 pinctrl-0 = <&max77686_irq>;
224 reg = <0x09>;
225 #clock-cells = <1>;
226
227 voltage-regulators {
228 ldo1_reg: LDO1 {
229 regulator-name = "VDD_ALIVE_1.0V";
230 regulator-min-microvolt = <1000000>;
231 regulator-max-microvolt = <1000000>;
232 regulator-always-on;
233 };
234
235 ldo2_reg: LDO2 {
236 regulator-name = "VDDQ_M1_2_1.8V";
237 regulator-min-microvolt = <1800000>;
238 regulator-max-microvolt = <1800000>;
239 regulator-always-on;
240 };
241
242 ldo3_reg: LDO3 {
243 regulator-name = "VDDQ_EXT_1.8V";
244 regulator-min-microvolt = <1800000>;
245 regulator-max-microvolt = <1800000>;
246 regulator-always-on;
247 };
248
249 ldo4_reg: LDO4 {
250 regulator-name = "VDDQ_MMC2_2.8V";
251 regulator-min-microvolt = <2800000>;
252 regulator-max-microvolt = <2800000>;
253 regulator-always-on;
254 regulator-boot-on;
255 };
256
257 ldo5_reg: LDO5 {
258 regulator-name = "VDDQ_MMC1_3_1.8V";
259 regulator-min-microvolt = <1800000>;
260 regulator-max-microvolt = <1800000>;
261 regulator-always-on;
262 regulator-boot-on;
263 };
264
265 ldo6_reg: LDO6 {
266 regulator-name = "VDD10_MPLL_1.0V";
267 regulator-min-microvolt = <1000000>;
268 regulator-max-microvolt = <1000000>;
269 regulator-always-on;
270 };
271
272 ldo7_reg: LDO7 {
273 regulator-name = "VDD10_XPLL_1.0V";
274 regulator-min-microvolt = <1000000>;
275 regulator-max-microvolt = <1000000>;
276 regulator-always-on;
277 };
278
279 ldo8_reg: ldo@8 {
280 regulator-compatible = "LDO8";
281 regulator-name = "VDD10_HDMI_1.0V";
282 regulator-min-microvolt = <1000000>;
283 regulator-max-microvolt = <1000000>;
284 };
285
286 ldo10_reg: ldo@10 {
287 regulator-compatible = "LDO10";
288 regulator-name = "VDDQ_MIPIHSI_1.8V";
289 regulator-min-microvolt = <1800000>;
290 regulator-max-microvolt = <1800000>;
291 };
292
293 ldo11_reg: LDO11 {
294 regulator-name = "VDD18_ABB1_1.8V";
295 regulator-min-microvolt = <1800000>;
296 regulator-max-microvolt = <1800000>;
297 regulator-always-on;
298 };
299
300 ldo12_reg: LDO12 {
301 regulator-name = "VDD33_USB_3.3V";
302 regulator-min-microvolt = <3300000>;
303 regulator-max-microvolt = <3300000>;
304 regulator-always-on;
305 regulator-boot-on;
306 };
307
308 ldo13_reg: LDO13 {
309 regulator-name = "VDDQ_C2C_W_1.8V";
310 regulator-min-microvolt = <1800000>;
311 regulator-max-microvolt = <1800000>;
312 regulator-always-on;
313 regulator-boot-on;
314 };
315
316 ldo14_reg: LDO14 {
317 regulator-name = "VDD18_ABB0_2_1.8V";
318 regulator-min-microvolt = <1800000>;
319 regulator-max-microvolt = <1800000>;
320 regulator-always-on;
321 regulator-boot-on;
322 };
323
324 ldo15_reg: LDO15 {
325 regulator-name = "VDD10_HSIC_1.0V";
326 regulator-min-microvolt = <1000000>;
327 regulator-max-microvolt = <1000000>;
328 regulator-always-on;
329 regulator-boot-on;
330 };
331
332 ldo16_reg: LDO16 {
333 regulator-name = "VDD18_HSIC_1.8V";
334 regulator-min-microvolt = <1800000>;
335 regulator-max-microvolt = <1800000>;
336 regulator-always-on;
337 regulator-boot-on;
338 };
339
340 ldo20_reg: LDO20 {
341 regulator-name = "LDO20_1.8V";
342 regulator-min-microvolt = <1800000>;
343 regulator-max-microvolt = <1800000>;
344 regulator-boot-on;
345 };
346
347 ldo21_reg: LDO21 {
348 regulator-name = "LDO21_3.3V";
349 regulator-min-microvolt = <3300000>;
350 regulator-max-microvolt = <3300000>;
351 regulator-always-on;
352 regulator-boot-on;
353 };
354
355 ldo25_reg: LDO25 {
356 regulator-name = "VDDQ_LCD_1.8V";
357 regulator-min-microvolt = <1800000>;
358 regulator-max-microvolt = <1800000>;
359 regulator-always-on;
360 regulator-boot-on;
361 };
362
363 buck1_reg: BUCK1 {
364 regulator-name = "vdd_mif";
365 regulator-min-microvolt = <1000000>;
366 regulator-max-microvolt = <1000000>;
367 regulator-always-on;
368 regulator-boot-on;
369 };
370
371 buck2_reg: BUCK2 {
372 regulator-name = "vdd_arm";
373 regulator-min-microvolt = <900000>;
374 regulator-max-microvolt = <1350000>;
375 regulator-always-on;
376 regulator-boot-on;
377 };
378
379 buck3_reg: BUCK3 {
380 regulator-name = "vdd_int";
381 regulator-min-microvolt = <1000000>;
382 regulator-max-microvolt = <1000000>;
383 regulator-always-on;
384 regulator-boot-on;
385 };
386
387 buck4_reg: BUCK4 {
388 regulator-name = "vdd_g3d";
389 regulator-min-microvolt = <900000>;
390 regulator-max-microvolt = <1100000>;
391 regulator-microvolt-offset = <50000>;
392 };
393
394 buck5_reg: BUCK5 {
395 regulator-name = "VDDQ_CKEM1_2_1.2V";
396 regulator-min-microvolt = <1200000>;
397 regulator-max-microvolt = <1200000>;
398 regulator-always-on;
399 regulator-boot-on;
400 };
401
402 buck6_reg: BUCK6 {
403 regulator-name = "BUCK6_1.35V";
404 regulator-min-microvolt = <1350000>;
405 regulator-max-microvolt = <1350000>;
406 regulator-always-on;
407 regulator-boot-on;
408 };
409
410 buck7_reg: BUCK7 {
411 regulator-name = "BUCK7_2.0V";
412 regulator-min-microvolt = <2000000>;
413 regulator-max-microvolt = <2000000>;
414 regulator-always-on;
415 };
416
417 buck8_reg: BUCK8 {
418 regulator-name = "BUCK8_2.8V";
419 regulator-min-microvolt = <2800000>;
420 regulator-max-microvolt = <2800000>;
421 };
422 };
423 };
424};
425
426&i2c_1 {
427 pinctrl-names = "default";
428 pinctrl-0 = <&i2c1_bus>;
429 status = "okay";
430 max98090: max98090@10 {
431 compatible = "maxim,max98090";
432 reg = <0x10>;
433 interrupt-parent = <&gpx0>;
434 interrupts = <0 0>;
435 clocks = <&i2s0 CLK_I2S_CDCLK>;
436 clock-names = "mclk";
437 #sound-dai-cells = <0>;
438 };
439};
440
441&i2c_2 {
442 status = "okay";
443 pinctrl-names = "default";
444 pinctrl-0 = <&i2c2_bus>;
445};
446
447&i2c_8 {
448 status = "okay";
449};
450
451&i2s0 {
452 pinctrl-0 = <&i2s0_bus>;
453 pinctrl-names = "default";
454 status = "okay";
455 clocks = <&clock_audss EXYNOS_I2S_BUS>,
456 <&clock_audss EXYNOS_DOUT_AUD_BUS>,
457 <&clock_audss EXYNOS_SCLK_I2S>;
458 clock-names = "iis", "i2s_opclk0", "i2s_opclk1";
459};
460
461&mixer {
462 status = "okay";
463};
464
465&mshc_0 {
466 pinctrl-0 = <&sd4_clk &sd4_cmd &sd4_bus4 &sd4_bus8>;
467 pinctrl-names = "default";
468 vmmc-supply = <&ldo20_reg &buck8_reg>;
469 mmc-pwrseq = <&emmc_pwrseq>;
470 status = "okay";
471
472 num-slots = <1>;
473 broken-cd;
474 card-detect-delay = <200>;
475 samsung,dw-mshc-ciu-div = <3>;
476 samsung,dw-mshc-sdr-timing = <2 3>;
477 samsung,dw-mshc-ddr-timing = <1 2>;
478 bus-width = <8>;
479 cap-mmc-highspeed;
480};
481
482&rtc {
483 status = "okay";
484 clocks = <&clock CLK_RTC>, <&max77686 MAX77686_CLK_AP>;
485 clock-names = "rtc", "rtc_src";
486};
487
488&sdhci_2 {
489 bus-width = <4>;
490 pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus4>;
491 pinctrl-names = "default";
492 vmmc-supply = <&ldo4_reg &ldo21_reg>;
493 cd-gpios = <&gpk2 2 0>;
494 cd-inverted;
495 status = "okay";
496};
497
498&serial_0 {
499 status = "okay";
500};
501
502&serial_1 {
503 status = "okay";
504};
505
506&tmu {
507 vtmu-supply = <&ldo10_reg>;
508 status = "okay";
509};
510
511&watchdog {
512 status = "okay";
513};