ARM: dts: Enable PMIC interrupts on ODROID
[cascardo/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/input/input.h>
11 #include "exynos4412.dtsi"
12
13 / {
14         firmware@0204F000 {
15                 compatible = "samsung,secure-firmware";
16                 reg = <0x0204F000 0x1000>;
17         };
18
19         gpio_keys {
20                 compatible = "gpio-keys";
21                 pinctrl-names = "default";
22                 pinctrl-0 = <&gpio_power_key>;
23
24                 power_key {
25                         interrupt-parent = <&gpx1>;
26                         interrupts = <3 0>;
27                         gpios = <&gpx1 3 1>;
28                         linux,code = <KEY_POWER>;
29                         label = "power key";
30                         debounce-interval = <10>;
31                         gpio-key,wakeup;
32                 };
33         };
34
35         i2s0: i2s@03830000 {
36                 pinctrl-0 = <&i2s0_bus>;
37                 pinctrl-names = "default";
38                 status = "okay";
39                 clocks = <&clock_audss EXYNOS_I2S_BUS>,
40                          <&clock_audss EXYNOS_DOUT_AUD_BUS>;
41                 clock-names = "iis", "i2s_opclk0";
42         };
43
44         sound: sound {
45                 compatible = "samsung,odroidx2-audio";
46                 samsung,i2s-controller = <&i2s0>;
47                 samsung,audio-codec = <&max98090>;
48         };
49
50         mmc@12550000 {
51                 pinctrl-0 = <&sd4_clk &sd4_cmd &sd4_bus4 &sd4_bus8>;
52                 pinctrl-names = "default";
53                 vmmc-supply = <&ldo20_reg &buck8_reg>;
54                 status = "okay";
55
56                 num-slots = <1>;
57                 supports-highspeed;
58                 broken-cd;
59                 card-detect-delay = <200>;
60                 samsung,dw-mshc-ciu-div = <3>;
61                 samsung,dw-mshc-sdr-timing = <2 3>;
62                 samsung,dw-mshc-ddr-timing = <1 2>;
63
64                 slot@0 {
65                         reg = <0>;
66                         bus-width = <8>;
67                 };
68         };
69
70         watchdog@10060000 {
71                 status = "okay";
72         };
73
74         rtc@10070000 {
75                 status = "okay";
76         };
77
78         g2d@10800000 {
79                 status = "okay";
80         };
81
82         camera {
83                 status = "okay";
84                 pinctrl-names = "default";
85                 pinctrl-0 = <>;
86
87                 fimc_0: fimc@11800000 {
88                         status = "okay";
89                 };
90
91                 fimc_1: fimc@11810000 {
92                         status = "okay";
93                 };
94
95                 fimc_2: fimc@11820000 {
96                         status = "okay";
97                 };
98
99                 fimc_3: fimc@11830000 {
100                         status = "okay";
101                 };
102         };
103
104         sdhci@12530000 {
105                 bus-width = <4>;
106                 pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus4>;
107                 pinctrl-names = "default";
108                 vmmc-supply = <&ldo4_reg &ldo21_reg>;
109                 cd-gpios = <&gpk2 2 0>;
110                 cd-inverted;
111                 status = "okay";
112         };
113
114         serial@13800000 {
115                 status = "okay";
116         };
117
118         serial@13810000 {
119                 status = "okay";
120         };
121
122         fixed-rate-clocks {
123                 xxti {
124                         compatible = "samsung,clock-xxti";
125                         clock-frequency = <0>;
126                 };
127
128                 xusbxti {
129                         compatible = "samsung,clock-xusbxti";
130                         clock-frequency = <24000000>;
131                 };
132         };
133
134         i2c@13860000 {
135                 pinctrl-0 = <&i2c0_bus>;
136                 pinctrl-names = "default";
137                 status = "okay";
138
139                 usb3503: usb3503@08 {
140                         compatible = "smsc,usb3503";
141                         reg = <0x08>;
142
143                         intn-gpios = <&gpx3 0 0>;
144                         connect-gpios = <&gpx3 4 0>;
145                         reset-gpios = <&gpx3 5 0>;
146                         initial-mode = <1>;
147                 };
148
149                 max77686: pmic@09 {
150                         compatible = "maxim,max77686";
151                         interrupt-parent = <&gpx3>;
152                         interrupts = <2 0>;
153                         pinctrl-names = "default";
154                         pinctrl-0 = <&max77686_irq>;
155                         reg = <0x09>;
156                         #clock-cells = <1>;
157
158                         voltage-regulators {
159                                 ldo1_reg: LDO1 {
160                                         regulator-name = "VDD_ALIVE_1.0V";
161                                         regulator-min-microvolt = <1000000>;
162                                         regulator-max-microvolt = <1000000>;
163                                         regulator-always-on;
164                                 };
165
166                                 ldo2_reg: LDO2 {
167                                         regulator-name = "VDDQ_M1_2_1.8V";
168                                         regulator-min-microvolt = <1800000>;
169                                         regulator-max-microvolt = <1800000>;
170                                         regulator-always-on;
171                                 };
172
173                                 ldo3_reg: LDO3 {
174                                         regulator-name = "VDDQ_EXT_1.8V";
175                                         regulator-min-microvolt = <1800000>;
176                                         regulator-max-microvolt = <1800000>;
177                                         regulator-always-on;
178                                 };
179
180                                 ldo4_reg: LDO4 {
181                                         regulator-name = "VDDQ_MMC2_2.8V";
182                                         regulator-min-microvolt = <2800000>;
183                                         regulator-max-microvolt = <2800000>;
184                                         regulator-always-on;
185                                         regulator-boot-on;
186                                 };
187
188                                 ldo5_reg: LDO5 {
189                                         regulator-name = "VDDQ_MMC1_3_1.8V";
190                                         regulator-min-microvolt = <1800000>;
191                                         regulator-max-microvolt = <1800000>;
192                                         regulator-always-on;
193                                         regulator-boot-on;
194                                 };
195
196                                 ldo6_reg: LDO6 {
197                                         regulator-name = "VDD10_MPLL_1.0V";
198                                         regulator-min-microvolt = <1000000>;
199                                         regulator-max-microvolt = <1000000>;
200                                         regulator-always-on;
201                                 };
202
203                                 ldo7_reg: LDO7 {
204                                         regulator-name = "VDD10_XPLL_1.0V";
205                                         regulator-min-microvolt = <1000000>;
206                                         regulator-max-microvolt = <1000000>;
207                                         regulator-always-on;
208                                 };
209
210                                 ldo11_reg: LDO11 {
211                                         regulator-name = "VDD18_ABB1_1.8V";
212                                         regulator-min-microvolt = <1800000>;
213                                         regulator-max-microvolt = <1800000>;
214                                         regulator-always-on;
215                                 };
216
217                                 ldo12_reg: LDO12 {
218                                         regulator-name = "VDD33_USB_3.3V";
219                                         regulator-min-microvolt = <3300000>;
220                                         regulator-max-microvolt = <3300000>;
221                                         regulator-always-on;
222                                         regulator-boot-on;
223                                 };
224
225                                 ldo13_reg: LDO13 {
226                                         regulator-name = "VDDQ_C2C_W_1.8V";
227                                         regulator-min-microvolt = <1800000>;
228                                         regulator-max-microvolt = <1800000>;
229                                         regulator-always-on;
230                                         regulator-boot-on;
231                                 };
232
233                                 ldo14_reg: LDO14 {
234                                         regulator-name = "VDD18_ABB0_2_1.8V";
235                                         regulator-min-microvolt = <1800000>;
236                                         regulator-max-microvolt = <1800000>;
237                                         regulator-always-on;
238                                         regulator-boot-on;
239                                 };
240
241                                 ldo15_reg: LDO15 {
242                                         regulator-name = "VDD10_HSIC_1.0V";
243                                         regulator-min-microvolt = <1000000>;
244                                         regulator-max-microvolt = <1000000>;
245                                         regulator-always-on;
246                                         regulator-boot-on;
247                                 };
248
249                                 ldo16_reg: LDO16 {
250                                         regulator-name = "VDD18_HSIC_1.8V";
251                                         regulator-min-microvolt = <1800000>;
252                                         regulator-max-microvolt = <1800000>;
253                                         regulator-always-on;
254                                         regulator-boot-on;
255                                 };
256
257                                 ldo20_reg: LDO20 {
258                                         regulator-name = "LDO20_1.8V";
259                                         regulator-min-microvolt = <1800000>;
260                                         regulator-max-microvolt = <1800000>;
261                                         regulator-boot-on;
262                                 };
263
264                                 ldo21_reg: LDO21 {
265                                         regulator-name = "LDO21_3.3V";
266                                         regulator-min-microvolt = <3300000>;
267                                         regulator-max-microvolt = <3300000>;
268                                         regulator-always-on;
269                                         regulator-boot-on;
270                                 };
271
272                                 ldo25_reg: LDO25 {
273                                         regulator-name = "VDDQ_LCD_1.8V";
274                                         regulator-min-microvolt = <1800000>;
275                                         regulator-max-microvolt = <1800000>;
276                                         regulator-always-on;
277                                         regulator-boot-on;
278                                 };
279
280                                 buck1_reg: BUCK1 {
281                                         regulator-name = "vdd_mif";
282                                         regulator-min-microvolt = <1000000>;
283                                         regulator-max-microvolt = <1000000>;
284                                         regulator-always-on;
285                                         regulator-boot-on;
286                                 };
287
288                                 buck2_reg: BUCK2 {
289                                         regulator-name = "vdd_arm";
290                                         regulator-min-microvolt = <900000>;
291                                         regulator-max-microvolt = <1350000>;
292                                         regulator-always-on;
293                                         regulator-boot-on;
294                                 };
295
296                                 buck3_reg: BUCK3 {
297                                         regulator-name = "vdd_int";
298                                         regulator-min-microvolt = <1000000>;
299                                         regulator-max-microvolt = <1000000>;
300                                         regulator-always-on;
301                                         regulator-boot-on;
302                                 };
303
304                                 buck4_reg: BUCK4 {
305                                         regulator-name = "vdd_g3d";
306                                         regulator-min-microvolt = <900000>;
307                                         regulator-max-microvolt = <1100000>;
308                                         regulator-microvolt-offset = <50000>;
309                                 };
310
311                                 buck5_reg: BUCK5 {
312                                         regulator-name = "VDDQ_CKEM1_2_1.2V";
313                                         regulator-min-microvolt = <1200000>;
314                                         regulator-max-microvolt = <1200000>;
315                                         regulator-always-on;
316                                         regulator-boot-on;
317                                 };
318
319                                 buck6_reg: BUCK6 {
320                                         regulator-name = "BUCK6_1.35V";
321                                         regulator-min-microvolt = <1350000>;
322                                         regulator-max-microvolt = <1350000>;
323                                         regulator-always-on;
324                                         regulator-boot-on;
325                                 };
326
327                                 buck7_reg: BUCK7 {
328                                         regulator-name = "BUCK7_2.0V";
329                                         regulator-min-microvolt = <2000000>;
330                                         regulator-max-microvolt = <2000000>;
331                                         regulator-always-on;
332                                 };
333
334                                 buck8_reg: BUCK8 {
335                                         regulator-name = "BUCK8_2.8V";
336                                         regulator-min-microvolt = <2800000>;
337                                         regulator-max-microvolt = <2800000>;
338                                 };
339                         };
340                 };
341         };
342
343         i2c@13870000 {
344                 pinctrl-names = "default";
345                 pinctrl-0 = <&i2c1_bus>;
346                 status = "okay";
347                 max98090: max98090@10 {
348                         compatible = "maxim,max98090";
349                         reg = <0x10>;
350                         interrupt-parent = <&gpx0>;
351                         interrupts = <0 0>;
352                 };
353         };
354
355         exynos-usbphy@125B0000 {
356                 status = "okay";
357         };
358
359         hsotg@12480000 {
360                 status = "okay";
361                 vusb_d-supply = <&ldo15_reg>;
362                 vusb_a-supply = <&ldo12_reg>;
363         };
364
365         ehci: ehci@12580000 {
366                 status = "okay";
367         };
368 };
369
370 &pinctrl_1 {
371         gpio_power_key: power_key {
372                 samsung,pins = "gpx1-3";
373                 samsung,pin-pud = <0>;
374         };
375
376         max77686_irq: max77686-irq {
377                 samsung,pins = "gpx3-2";
378                 samsung,pin-function = <0>;
379                 samsung,pin-pud = <0>;
380                 samsung,pin-drv = <0>;
381         };
382 };