Merge remote-tracking branch 'spi/fix/core' into spi-linus
[sfrench/cifs-2.6.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         i2s0: i2s@03830000 {
42                 pinctrl-0 = <&i2s0_bus>;
43                 pinctrl-names = "default";
44                 status = "okay";
45                 clocks = <&clock_audss EXYNOS_I2S_BUS>,
46                          <&clock_audss EXYNOS_DOUT_AUD_BUS>,
47                          <&clock_audss EXYNOS_SCLK_I2S>;
48                 clock-names = "iis", "i2s_opclk0", "i2s_opclk1";
49         };
50
51         sound: sound {
52                 compatible = "simple-audio-card";
53                 assigned-clocks = <&clock_audss EXYNOS_MOUT_AUDSS>,
54                                 <&clock_audss EXYNOS_MOUT_I2S>,
55                                 <&clock_audss EXYNOS_DOUT_SRP>,
56                                 <&clock_audss EXYNOS_DOUT_AUD_BUS>;
57                 assigned-clock-parents = <&clock CLK_FOUT_EPLL>,
58                                 <&clock_audss EXYNOS_MOUT_AUDSS>;
59                 assigned-clock-rates = <0>,
60                                 <0>,
61                                 <192000000>,
62                                 <19200000>;
63
64                 simple-audio-card,format = "i2s";
65                 simple-audio-card,bitclock-master = <&link0_codec>;
66                 simple-audio-card,frame-master = <&link0_codec>;
67
68                 simple-audio-card,cpu {
69                         sound-dai = <&i2s0 0>;
70                         system-clock-frequency = <19200000>;
71                 };
72
73                 link0_codec: simple-audio-card,codec {
74                         sound-dai = <&max98090>;
75                         clocks = <&i2s0 CLK_I2S_CDCLK>;
76                 };
77         };
78
79         emmc_pwrseq: pwrseq {
80                 pinctrl-0 = <&sd1_cd>;
81                 pinctrl-names = "default";
82                 compatible = "mmc-pwrseq-emmc";
83                 reset-gpios = <&gpk1 2 1>;
84         };
85
86         mmc@12550000 {
87                 pinctrl-0 = <&sd4_clk &sd4_cmd &sd4_bus4 &sd4_bus8>;
88                 pinctrl-names = "default";
89                 vmmc-supply = <&ldo20_reg &buck8_reg>;
90                 mmc-pwrseq = <&emmc_pwrseq>;
91                 status = "okay";
92
93                 num-slots = <1>;
94                 broken-cd;
95                 card-detect-delay = <200>;
96                 samsung,dw-mshc-ciu-div = <3>;
97                 samsung,dw-mshc-sdr-timing = <2 3>;
98                 samsung,dw-mshc-ddr-timing = <1 2>;
99                 bus-width = <8>;
100                 cap-mmc-highspeed;
101         };
102
103         watchdog@10060000 {
104                 status = "okay";
105         };
106
107         rtc@10070000 {
108                 status = "okay";
109                 clocks = <&clock CLK_RTC>, <&max77686 MAX77686_CLK_AP>;
110                 clock-names = "rtc", "rtc_src";
111         };
112
113         g2d@10800000 {
114                 status = "okay";
115         };
116
117         camera {
118                 status = "okay";
119                 pinctrl-names = "default";
120                 pinctrl-0 = <>;
121
122                 fimc_0: fimc@11800000 {
123                         status = "okay";
124                         assigned-clocks = <&clock CLK_MOUT_FIMC0>,
125                                         <&clock CLK_SCLK_FIMC0>;
126                         assigned-clock-parents = <&clock CLK_MOUT_MPLL_USER_T>;
127                         assigned-clock-rates = <0>, <176000000>;
128                 };
129
130                 fimc_1: fimc@11810000 {
131                         status = "okay";
132                         assigned-clocks = <&clock CLK_MOUT_FIMC1>,
133                                         <&clock CLK_SCLK_FIMC1>;
134                         assigned-clock-parents = <&clock CLK_MOUT_MPLL_USER_T>;
135                         assigned-clock-rates = <0>, <176000000>;
136                 };
137
138                 fimc_2: fimc@11820000 {
139                         status = "okay";
140                         assigned-clocks = <&clock CLK_MOUT_FIMC2>,
141                                         <&clock CLK_SCLK_FIMC2>;
142                         assigned-clock-parents = <&clock CLK_MOUT_MPLL_USER_T>;
143                         assigned-clock-rates = <0>, <176000000>;
144                 };
145
146                 fimc_3: fimc@11830000 {
147                         status = "okay";
148                         assigned-clocks = <&clock CLK_MOUT_FIMC3>,
149                                         <&clock CLK_SCLK_FIMC3>;
150                         assigned-clock-parents = <&clock CLK_MOUT_MPLL_USER_T>;
151                         assigned-clock-rates = <0>, <176000000>;
152                 };
153         };
154
155         sdhci@12530000 {
156                 bus-width = <4>;
157                 pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus4>;
158                 pinctrl-names = "default";
159                 vmmc-supply = <&ldo4_reg &ldo21_reg>;
160                 cd-gpios = <&gpk2 2 0>;
161                 cd-inverted;
162                 status = "okay";
163         };
164
165         serial@13800000 {
166                 status = "okay";
167         };
168
169         serial@13810000 {
170                 status = "okay";
171         };
172
173         fixed-rate-clocks {
174                 xxti {
175                         compatible = "samsung,clock-xxti";
176                         clock-frequency = <0>;
177                 };
178
179                 xusbxti {
180                         compatible = "samsung,clock-xusbxti";
181                         clock-frequency = <24000000>;
182                 };
183         };
184
185         i2c@13860000 {
186                 pinctrl-0 = <&i2c0_bus>;
187                 pinctrl-names = "default";
188                 samsung,i2c-sda-delay = <100>;
189                 samsung,i2c-max-bus-freq = <400000>;
190                 status = "okay";
191
192                 usb3503: usb3503@08 {
193                         compatible = "smsc,usb3503";
194                         reg = <0x08>;
195
196                         intn-gpios = <&gpx3 0 0>;
197                         connect-gpios = <&gpx3 4 0>;
198                         reset-gpios = <&gpx3 5 0>;
199                         initial-mode = <1>;
200                 };
201
202                 max77686: pmic@09 {
203                         compatible = "maxim,max77686";
204                         interrupt-parent = <&gpx3>;
205                         interrupts = <2 0>;
206                         pinctrl-names = "default";
207                         pinctrl-0 = <&max77686_irq>;
208                         reg = <0x09>;
209                         #clock-cells = <1>;
210
211                         voltage-regulators {
212                                 ldo1_reg: LDO1 {
213                                         regulator-name = "VDD_ALIVE_1.0V";
214                                         regulator-min-microvolt = <1000000>;
215                                         regulator-max-microvolt = <1000000>;
216                                         regulator-always-on;
217                                 };
218
219                                 ldo2_reg: LDO2 {
220                                         regulator-name = "VDDQ_M1_2_1.8V";
221                                         regulator-min-microvolt = <1800000>;
222                                         regulator-max-microvolt = <1800000>;
223                                         regulator-always-on;
224                                 };
225
226                                 ldo3_reg: LDO3 {
227                                         regulator-name = "VDDQ_EXT_1.8V";
228                                         regulator-min-microvolt = <1800000>;
229                                         regulator-max-microvolt = <1800000>;
230                                         regulator-always-on;
231                                 };
232
233                                 ldo4_reg: LDO4 {
234                                         regulator-name = "VDDQ_MMC2_2.8V";
235                                         regulator-min-microvolt = <2800000>;
236                                         regulator-max-microvolt = <2800000>;
237                                         regulator-always-on;
238                                         regulator-boot-on;
239                                 };
240
241                                 ldo5_reg: LDO5 {
242                                         regulator-name = "VDDQ_MMC1_3_1.8V";
243                                         regulator-min-microvolt = <1800000>;
244                                         regulator-max-microvolt = <1800000>;
245                                         regulator-always-on;
246                                         regulator-boot-on;
247                                 };
248
249                                 ldo6_reg: LDO6 {
250                                         regulator-name = "VDD10_MPLL_1.0V";
251                                         regulator-min-microvolt = <1000000>;
252                                         regulator-max-microvolt = <1000000>;
253                                         regulator-always-on;
254                                 };
255
256                                 ldo7_reg: LDO7 {
257                                         regulator-name = "VDD10_XPLL_1.0V";
258                                         regulator-min-microvolt = <1000000>;
259                                         regulator-max-microvolt = <1000000>;
260                                         regulator-always-on;
261                                 };
262
263                                 ldo8_reg: ldo@8 {
264                                         regulator-compatible = "LDO8";
265                                         regulator-name = "VDD10_HDMI_1.0V";
266                                         regulator-min-microvolt = <1000000>;
267                                         regulator-max-microvolt = <1000000>;
268                                 };
269
270                                 ldo10_reg: ldo@10 {
271                                         regulator-compatible = "LDO10";
272                                         regulator-name = "VDDQ_MIPIHSI_1.8V";
273                                         regulator-min-microvolt = <1800000>;
274                                         regulator-max-microvolt = <1800000>;
275                                 };
276
277                                 ldo11_reg: LDO11 {
278                                         regulator-name = "VDD18_ABB1_1.8V";
279                                         regulator-min-microvolt = <1800000>;
280                                         regulator-max-microvolt = <1800000>;
281                                         regulator-always-on;
282                                 };
283
284                                 ldo12_reg: LDO12 {
285                                         regulator-name = "VDD33_USB_3.3V";
286                                         regulator-min-microvolt = <3300000>;
287                                         regulator-max-microvolt = <3300000>;
288                                         regulator-always-on;
289                                         regulator-boot-on;
290                                 };
291
292                                 ldo13_reg: LDO13 {
293                                         regulator-name = "VDDQ_C2C_W_1.8V";
294                                         regulator-min-microvolt = <1800000>;
295                                         regulator-max-microvolt = <1800000>;
296                                         regulator-always-on;
297                                         regulator-boot-on;
298                                 };
299
300                                 ldo14_reg: LDO14 {
301                                         regulator-name = "VDD18_ABB0_2_1.8V";
302                                         regulator-min-microvolt = <1800000>;
303                                         regulator-max-microvolt = <1800000>;
304                                         regulator-always-on;
305                                         regulator-boot-on;
306                                 };
307
308                                 ldo15_reg: LDO15 {
309                                         regulator-name = "VDD10_HSIC_1.0V";
310                                         regulator-min-microvolt = <1000000>;
311                                         regulator-max-microvolt = <1000000>;
312                                         regulator-always-on;
313                                         regulator-boot-on;
314                                 };
315
316                                 ldo16_reg: LDO16 {
317                                         regulator-name = "VDD18_HSIC_1.8V";
318                                         regulator-min-microvolt = <1800000>;
319                                         regulator-max-microvolt = <1800000>;
320                                         regulator-always-on;
321                                         regulator-boot-on;
322                                 };
323
324                                 ldo20_reg: LDO20 {
325                                         regulator-name = "LDO20_1.8V";
326                                         regulator-min-microvolt = <1800000>;
327                                         regulator-max-microvolt = <1800000>;
328                                         regulator-boot-on;
329                                 };
330
331                                 ldo21_reg: LDO21 {
332                                         regulator-name = "LDO21_3.3V";
333                                         regulator-min-microvolt = <3300000>;
334                                         regulator-max-microvolt = <3300000>;
335                                         regulator-always-on;
336                                         regulator-boot-on;
337                                 };
338
339                                 ldo25_reg: LDO25 {
340                                         regulator-name = "VDDQ_LCD_1.8V";
341                                         regulator-min-microvolt = <1800000>;
342                                         regulator-max-microvolt = <1800000>;
343                                         regulator-always-on;
344                                         regulator-boot-on;
345                                 };
346
347                                 buck1_reg: BUCK1 {
348                                         regulator-name = "vdd_mif";
349                                         regulator-min-microvolt = <1000000>;
350                                         regulator-max-microvolt = <1000000>;
351                                         regulator-always-on;
352                                         regulator-boot-on;
353                                 };
354
355                                 buck2_reg: BUCK2 {
356                                         regulator-name = "vdd_arm";
357                                         regulator-min-microvolt = <900000>;
358                                         regulator-max-microvolt = <1350000>;
359                                         regulator-always-on;
360                                         regulator-boot-on;
361                                 };
362
363                                 buck3_reg: BUCK3 {
364                                         regulator-name = "vdd_int";
365                                         regulator-min-microvolt = <1000000>;
366                                         regulator-max-microvolt = <1000000>;
367                                         regulator-always-on;
368                                         regulator-boot-on;
369                                 };
370
371                                 buck4_reg: BUCK4 {
372                                         regulator-name = "vdd_g3d";
373                                         regulator-min-microvolt = <900000>;
374                                         regulator-max-microvolt = <1100000>;
375                                         regulator-microvolt-offset = <50000>;
376                                 };
377
378                                 buck5_reg: BUCK5 {
379                                         regulator-name = "VDDQ_CKEM1_2_1.2V";
380                                         regulator-min-microvolt = <1200000>;
381                                         regulator-max-microvolt = <1200000>;
382                                         regulator-always-on;
383                                         regulator-boot-on;
384                                 };
385
386                                 buck6_reg: BUCK6 {
387                                         regulator-name = "BUCK6_1.35V";
388                                         regulator-min-microvolt = <1350000>;
389                                         regulator-max-microvolt = <1350000>;
390                                         regulator-always-on;
391                                         regulator-boot-on;
392                                 };
393
394                                 buck7_reg: BUCK7 {
395                                         regulator-name = "BUCK7_2.0V";
396                                         regulator-min-microvolt = <2000000>;
397                                         regulator-max-microvolt = <2000000>;
398                                         regulator-always-on;
399                                 };
400
401                                 buck8_reg: BUCK8 {
402                                         regulator-name = "BUCK8_2.8V";
403                                         regulator-min-microvolt = <2800000>;
404                                         regulator-max-microvolt = <2800000>;
405                                 };
406                         };
407                 };
408         };
409
410         i2c@13870000 {
411                 pinctrl-names = "default";
412                 pinctrl-0 = <&i2c1_bus>;
413                 status = "okay";
414                 max98090: max98090@10 {
415                         compatible = "maxim,max98090";
416                         reg = <0x10>;
417                         interrupt-parent = <&gpx0>;
418                         interrupts = <0 0>;
419                         clocks = <&i2s0 CLK_I2S_CDCLK>;
420                         clock-names = "mclk";
421                         #sound-dai-cells = <0>;
422                 };
423         };
424
425         exynos-usbphy@125B0000 {
426                 status = "okay";
427         };
428
429         hsotg@12480000 {
430                 dr_mode = "peripheral";
431                 status = "okay";
432                 vusb_d-supply = <&ldo15_reg>;
433                 vusb_a-supply = <&ldo12_reg>;
434         };
435
436         ehci: ehci@12580000 {
437                 status = "okay";
438         };
439
440         tmu@100C0000 {
441                 vtmu-supply = <&ldo10_reg>;
442                 status = "okay";
443         };
444
445         thermal-zones {
446                 cpu_thermal: cpu-thermal {
447                         cooling-maps {
448                                 map0 {
449                                      /* Corresponds to 800MHz at freq_table */
450                                      cooling-device = <&cpu0 7 7>;
451                                 };
452                                 map1 {
453                                      /* Corresponds to 200MHz at freq_table */
454                                      cooling-device = <&cpu0 13 13>;
455                                };
456                        };
457                 };
458         };
459
460         mixer: mixer@12C10000 {
461                 status = "okay";
462         };
463
464         hdmi@12D00000 {
465                 hpd-gpio = <&gpx3 7 0>;
466                 pinctrl-names = "default";
467                 pinctrl-0 = <&hdmi_hpd>;
468                 vdd-supply = <&ldo8_reg>;
469                 vdd_osc-supply = <&ldo10_reg>;
470                 vdd_pll-supply = <&ldo8_reg>;
471                 ddc = <&hdmi_ddc>;
472                 status = "okay";
473         };
474
475         hdmi_ddc: i2c@13880000 {
476                 status = "okay";
477                 pinctrl-names = "default";
478                 pinctrl-0 = <&i2c2_bus>;
479         };
480
481         i2c@138E0000 {
482                 status = "okay";
483         };
484 };
485
486 /* RSTN signal for eMMC */
487 &sd1_cd {
488         samsung,pin-pud = <0>;
489         samsung,pin-drv = <0>;
490 };
491
492 &pinctrl_1 {
493         gpio_power_key: power_key {
494                 samsung,pins = "gpx1-3";
495                 samsung,pin-pud = <0>;
496         };
497
498         max77686_irq: max77686-irq {
499                 samsung,pins = "gpx3-2";
500                 samsung,pin-function = <0>;
501                 samsung,pin-pud = <0>;
502                 samsung,pin-drv = <0>;
503         };
504
505         hdmi_hpd: hdmi-hpd {
506                 samsung,pins = "gpx3-7";
507                 samsung,pin-pud = <1>;
508         };
509 };