]> git.kernelconcepts.de Git - karo-tx-linux.git/blob - arch/arm/boot/dts/exynos4412-odroid-common.dtsi
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
[karo-tx-linux.git] / arch / arm / boot / dts / exynos4412-odroid-common.dtsi
1 /*
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
10 #include <dt-bindings/sound/samsung-i2s.h>
11 #include <dt-bindings/input/input.h>
12 #include <dt-bindings/clock/maxim,max77686.h>
13 #include "exynos4412.dtsi"
14
15 / {
16         chosen {
17                 stdout-path = &serial_1;
18         };
19
20         firmware@0204F000 {
21                 compatible = "samsung,secure-firmware";
22                 reg = <0x0204F000 0x1000>;
23         };
24
25         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
41         sound: sound {
42                 compatible = "simple-audio-card";
43                 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>;
53
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                 };
67         };
68
69         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
76         camera {
77                 status = "okay";
78                 pinctrl-names = "default";
79                 pinctrl-0 = <>;
80         };
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
94         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         };
108 };
109
110 &cpu0 {
111         cpu0-supply = <&buck2_reg>;
112 };
113
114 /* RSTN signal for eMMC */
115 &sd1_cd {
116         samsung,pin-pud = <0>;
117         samsung,pin-drv = <0>;
118 };
119
120 &pinctrl_1 {
121         gpio_power_key: power_key {
122                 samsung,pins = "gpx1-3";
123                 samsung,pin-pud = <0>;
124         };
125
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         };
132
133         hdmi_hpd: hdmi-hpd {
134                 samsung,pins = "gpx3-7";
135                 samsung,pin-pud = <1>;
136         };
137 };
138
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 };