Merge tag 'samsung-dt-2' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux...
[cascardo/linux.git] / arch / arm / boot / dts / exynos5250-snow.dts
1 /*
2  * Google Snow board device tree source
3  *
4  * Copyright (c) 2012 Google, Inc
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License version 2 as
8  * published by the Free Software Foundation.
9 */
10
11 /dts-v1/;
12 #include "exynos5250.dtsi"
13 #include "exynos5250-cros-common.dtsi"
14
15 / {
16         model = "Google Snow";
17         compatible = "google,snow", "samsung,exynos5250", "samsung,exynos5";
18
19         aliases {
20                 i2c104 = &i2c_104;
21         };
22
23         rtc@101E0000 {
24                 status = "okay";
25         };
26
27         pinctrl@11400000 {
28                 ec_irq: ec-irq {
29                         samsung,pins = "gpx1-6";
30                         samsung,pin-function = <0>;
31                         samsung,pin-pud = <0>;
32                         samsung,pin-drv = <0>;
33                 };
34
35                 sd3_clk: sd3-clk {
36                         samsung,pin-drv = <0>;
37                 };
38
39                 sd3_cmd: sd3-cmd {
40                         samsung,pin-pud = <3>;
41                         samsung,pin-drv = <0>;
42                 };
43
44                 sd3_bus4: sd3-bus-width4 {
45                         samsung,pin-drv = <0>;
46                 };
47
48                 max98095_en: max98095-en {
49                         samsung,pins = "gpx1-7";
50                         samsung,pin-function = <0>;
51                         samsung,pin-pud = <3>;
52                         samsung,pin-drv = <0>;
53                 };
54
55                 tps65090_irq: tps65090-irq {
56                         samsung,pins = "gpx2-6";
57                         samsung,pin-function = <0>;
58                         samsung,pin-pud = <0>;
59                         samsung,pin-drv = <0>;
60                 };
61
62                 usb3_vbus_en: usb3-vbus-en {
63                         samsung,pins = "gpx2-7";
64                         samsung,pin-function = <1>;
65                         samsung,pin-pud = <0>;
66                         samsung,pin-drv = <0>;
67                 };
68
69                 hdmi_hpd_irq: hdmi-hpd-irq {
70                         samsung,pins = "gpx3-7";
71                         samsung,pin-function = <0>;
72                         samsung,pin-pud = <1>;
73                         samsung,pin-drv = <0>;
74                 };
75         };
76
77         pinctrl@13400000 {
78                 arb_their_claim: arb-their-claim {
79                         samsung,pins = "gpe0-4";
80                         samsung,pin-function = <0>;
81                         samsung,pin-pud = <3>;
82                         samsung,pin-drv = <0>;
83                 };
84
85                 arb_our_claim: arb-our-claim {
86                         samsung,pins = "gpf0-3";
87                         samsung,pin-function = <1>;
88                         samsung,pin-pud = <0>;
89                         samsung,pin-drv = <0>;
90                 };
91         };
92
93         gpio-keys {
94                 compatible = "gpio-keys";
95
96                 lid-switch {
97                         label = "Lid";
98                         gpios = <&gpx3 5 1>;
99                         linux,input-type = <5>; /* EV_SW */
100                         linux,code = <0>; /* SW_LID */
101                         debounce-interval = <1>;
102                         gpio-key,wakeup;
103                 };
104         };
105
106         vbat: vbat-fixed-regulator {
107                 compatible = "regulator-fixed";
108                 regulator-name = "vbat-supply";
109                 regulator-boot-on;
110         };
111
112         i2c-arbitrator {
113                 compatible = "i2c-arb-gpio-challenge";
114                 #address-cells = <1>;
115                 #size-cells = <0>;
116
117                 i2c-parent = <&{/i2c@12CA0000}>;
118
119                 our-claim-gpio = <&gpf0 3 1>;
120                 their-claim-gpios = <&gpe0 4 1>;
121                 slew-delay-us = <10>;
122                 wait-retry-us = <3000>;
123                 wait-free-us = <50000>;
124
125                 pinctrl-names = "default";
126                 pinctrl-0 = <&arb_our_claim &arb_their_claim>;
127
128                 /* Use ID 104 as a hint that we're on physical bus 4 */
129                 i2c_104: i2c@0 {
130                         reg = <0>;
131                         #address-cells = <1>;
132                         #size-cells = <0>;
133
134                         battery: sbs-battery@b {
135                                 compatible = "sbs,sbs-battery";
136                                 reg = <0xb>;
137                                 sbs,poll-retry-count = <1>;
138                         };
139
140                         cros_ec: embedded-controller {
141                                 compatible = "google,cros-ec-i2c";
142                                 reg = <0x1e>;
143                                 interrupts = <6 0>;
144                                 interrupt-parent = <&gpx1>;
145                                 pinctrl-names = "default";
146                                 pinctrl-0 = <&ec_irq>;
147                                 wakeup-source;
148                         };
149
150                         power-regulator {
151                                 compatible = "ti,tps65090";
152                                 reg = <0x48>;
153
154                                 /*
155                                  * Config irq to disable internal pulls
156                                  * even though we run in polling mode.
157                                  */
158                                 pinctrl-names = "default";
159                                 pinctrl-0 = <&tps65090_irq>;
160
161                                 vsys1-supply = <&vbat>;
162                                 vsys2-supply = <&vbat>;
163                                 vsys3-supply = <&vbat>;
164                                 infet1-supply = <&vbat>;
165                                 infet2-supply = <&vbat>;
166                                 infet3-supply = <&vbat>;
167                                 infet4-supply = <&vbat>;
168                                 infet5-supply = <&vbat>;
169                                 infet6-supply = <&vbat>;
170                                 infet7-supply = <&vbat>;
171                                 vsys-l1-supply = <&vbat>;
172                                 vsys-l2-supply = <&vbat>;
173
174                                 regulators {
175                                         dcdc1 {
176                                                 ti,enable-ext-control;
177                                         };
178                                         dcdc2 {
179                                                 ti,enable-ext-control;
180                                         };
181                                         dcdc3 {
182                                                 ti,enable-ext-control;
183                                         };
184                                         fet1 {
185                                                 regulator-name = "vcd_led";
186                                                 ti,overcurrent-wait = <3>;
187                                         };
188                                         tps65090_fet2: fet2 {
189                                                 regulator-name = "video_mid";
190                                                 regulator-always-on;
191                                                 ti,overcurrent-wait = <3>;
192                                         };
193                                         fet3 {
194                                                 regulator-name = "wwan_r";
195                                                 regulator-always-on;
196                                                 ti,overcurrent-wait = <3>;
197                                         };
198                                         fet4 {
199                                                 regulator-name = "sdcard";
200                                                 ti,overcurrent-wait = <3>;
201                                         };
202                                         fet5 {
203                                                 regulator-name = "camout";
204                                                 regulator-always-on;
205                                                 ti,overcurrent-wait = <3>;
206                                         };
207                                         fet6 {
208                                                 regulator-name = "lcd_vdd";
209                                                 ti,overcurrent-wait = <3>;
210                                         };
211                                         tps65090_fet7: fet7 {
212                                                 regulator-name = "video_mid_1a";
213                                                 regulator-always-on;
214                                                 ti,overcurrent-wait = <3>;
215                                         };
216                                         ldo1 {
217                                         };
218                                         ldo2 {
219                                         };
220                                 };
221
222                                 charger {
223                                         compatible = "ti,tps65090-charger";
224                                 };
225                         };
226                 };
227         };
228
229         mmc@12200000 {
230                 status = "okay";
231         };
232
233         mmc@12220000 {
234                 status = "okay";
235         };
236
237         /*
238          * On Snow we've got SIP WiFi and so can keep drive strengths low to
239          * reduce EMI.
240          */
241         mmc@12230000 {
242                 status = "okay";
243                 slot@0 {
244                         pinctrl-names = "default";
245                         pinctrl-0 = <&sd3_clk &sd3_cmd &sd3_bus4>;
246                 };
247         };
248
249         i2c@12CD0000 {
250                 max98095: codec@11 {
251                         compatible = "maxim,max98095";
252                         reg = <0x11>;
253                         pinctrl-0 = <&max98095_en>;
254                         pinctrl-names = "default";
255                 };
256         };
257
258         i2s0: i2s@03830000 {
259                 status = "okay";
260         };
261
262         sound {
263                 compatible = "google,snow-audio-max98095";
264
265                 samsung,model = "Snow-I2S-MAX98095";
266                 samsung,i2s-controller = <&i2s0>;
267                 samsung,audio-codec = <&max98095>;
268         };
269
270         usb3_vbus_reg: regulator-usb3 {
271                 compatible = "regulator-fixed";
272                 regulator-name = "P5.0V_USB3CON";
273                 regulator-min-microvolt = <5000000>;
274                 regulator-max-microvolt = <5000000>;
275                 gpio = <&gpx2 7 0>;
276                 pinctrl-names = "default";
277                 pinctrl-0 = <&usb3_vbus_en>;
278                 enable-active-high;
279         };
280
281         phy@12100000 {
282                 vbus-supply = <&usb3_vbus_reg>;
283         };
284
285         usb@12110000 {
286                 samsung,vbus-gpio = <&gpx1 1 0>;
287         };
288
289         fixed-rate-clocks {
290                 xxti {
291                         compatible = "samsung,clock-xxti";
292                         clock-frequency = <24000000>;
293                 };
294         };
295
296         hdmi {
297                 hdmi-en-supply = <&tps65090_fet7>;
298                 vdd-supply = <&ldo8_reg>;
299                 vdd_osc-supply = <&ldo10_reg>;
300                 vdd_pll-supply = <&ldo8_reg>;
301         };
302
303         backlight {
304                 compatible = "pwm-backlight";
305                 pwms = <&pwm 0 1000000 0>;
306                 brightness-levels = <0 100 500 1000 1500 2000 2500 2800>;
307                 default-brightness-level = <7>;
308                 pinctrl-0 = <&pwm0_out>;
309                 pinctrl-names = "default";
310         };
311
312         fimd@14400000 {
313                 status = "okay";
314                 samsung,invert-vclk;
315         };
316
317         dp-controller@145B0000 {
318                 status = "okay";
319                 pinctrl-names = "default";
320                 pinctrl-0 = <&dp_hpd>;
321                 samsung,color-space = <0>;
322                 samsung,dynamic-range = <0>;
323                 samsung,ycbcr-coeff = <0>;
324                 samsung,color-depth = <1>;
325                 samsung,link-rate = <0x0a>;
326                 samsung,lane-count = <2>;
327                 samsung,hpd-gpio = <&gpx0 7 0>;
328
329                 display-timings {
330                         native-mode = <&timing1>;
331
332                         timing1: timing@1 {
333                                 clock-frequency = <70589280>;
334                                 hactive = <1366>;
335                                 vactive = <768>;
336                                 hfront-porch = <40>;
337                                 hback-porch = <40>;
338                                 hsync-len = <32>;
339                                 vback-porch = <10>;
340                                 vfront-porch = <12>;
341                                 vsync-len = <6>;
342                         };
343                 };
344         };
345 };
346
347 &i2c_0 {
348         max77686@09 {
349                 compatible = "maxim,max77686";
350                 interrupt-parent = <&gpx3>;
351                 interrupts = <2 0>;
352                 pinctrl-names = "default";
353                 pinctrl-0 = <&max77686_irq>;
354                 wakeup-source;
355                 reg = <0x09>;
356                 #clock-cells = <1>;
357
358                 voltage-regulators {
359                         ldo1_reg: LDO1 {
360                                 regulator-name = "P1.0V_LDO_OUT1";
361                                 regulator-min-microvolt = <1000000>;
362                                 regulator-max-microvolt = <1000000>;
363                                 regulator-always-on;
364                         };
365
366                         ldo2_reg: LDO2 {
367                                 regulator-name = "P1.8V_LDO_OUT2";
368                                 regulator-min-microvolt = <1800000>;
369                                 regulator-max-microvolt = <1800000>;
370                                 regulator-always-on;
371                         };
372
373                         ldo3_reg: LDO3 {
374                                 regulator-name = "P1.8V_LDO_OUT3";
375                                 regulator-min-microvolt = <1800000>;
376                                 regulator-max-microvolt = <1800000>;
377                                 regulator-always-on;
378                         };
379
380                         ldo7_reg: LDO7 {
381                                 regulator-name = "P1.1V_LDO_OUT7";
382                                 regulator-min-microvolt = <1100000>;
383                                 regulator-max-microvolt = <1100000>;
384                                 regulator-always-on;
385                         };
386
387                         ldo8_reg: LDO8 {
388                                 regulator-name = "P1.0V_LDO_OUT8";
389                                 regulator-min-microvolt = <1000000>;
390                                 regulator-max-microvolt = <1000000>;
391                                 regulator-always-on;
392                         };
393
394                         ldo10_reg: LDO10 {
395                                 regulator-name = "P1.8V_LDO_OUT10";
396                                 regulator-min-microvolt = <1800000>;
397                                 regulator-max-microvolt = <1800000>;
398                                 regulator-always-on;
399                         };
400
401                         ldo12_reg: LDO12 {
402                                 regulator-name = "P3.0V_LDO_OUT12";
403                                 regulator-min-microvolt = <3000000>;
404                                 regulator-max-microvolt = <3000000>;
405                                 regulator-always-on;
406                         };
407
408                         ldo14_reg: LDO14 {
409                                 regulator-name = "P1.8V_LDO_OUT14";
410                                 regulator-min-microvolt = <1800000>;
411                                 regulator-max-microvolt = <1800000>;
412                                 regulator-always-on;
413                         };
414
415                         ldo15_reg: LDO15 {
416                                 regulator-name = "P1.0V_LDO_OUT15";
417                                 regulator-min-microvolt = <1000000>;
418                                 regulator-max-microvolt = <1000000>;
419                                 regulator-always-on;
420                         };
421
422                         ldo16_reg: LDO16 {
423                                 regulator-name = "P1.8V_LDO_OUT16";
424                                 regulator-min-microvolt = <1800000>;
425                                 regulator-max-microvolt = <1800000>;
426                                 regulator-always-on;
427                         };
428
429                         buck1_reg: BUCK1 {
430                                 regulator-name = "vdd_mif";
431                                 regulator-min-microvolt = <950000>;
432                                 regulator-max-microvolt = <1300000>;
433                                 regulator-always-on;
434                                 regulator-boot-on;
435                         };
436
437                         buck2_reg: BUCK2 {
438                                 regulator-name = "vdd_arm";
439                                 regulator-min-microvolt = <850000>;
440                                 regulator-max-microvolt = <1350000>;
441                                 regulator-always-on;
442                                 regulator-boot-on;
443                         };
444
445                         buck3_reg: BUCK3 {
446                                 regulator-name = "vdd_int";
447                                 regulator-min-microvolt = <900000>;
448                                 regulator-max-microvolt = <1200000>;
449                                 regulator-always-on;
450                                 regulator-boot-on;
451                         };
452
453                         buck4_reg: BUCK4 {
454                                 regulator-name = "vdd_g3d";
455                                 regulator-min-microvolt = <850000>;
456                                 regulator-max-microvolt = <1300000>;
457                                 regulator-always-on;
458                                 regulator-boot-on;
459                         };
460
461                         buck5_reg: BUCK5 {
462                                 regulator-name = "P1.8V_BUCK_OUT5";
463                                 regulator-min-microvolt = <1800000>;
464                                 regulator-max-microvolt = <1800000>;
465                                 regulator-always-on;
466                                 regulator-boot-on;
467                         };
468
469                         buck6_reg: BUCK6 {
470                                 regulator-name = "P1.35V_BUCK_OUT6";
471                                 regulator-min-microvolt = <1350000>;
472                                 regulator-max-microvolt = <1350000>;
473                                 regulator-always-on;
474                         };
475
476                         buck7_reg: BUCK7 {
477                                 regulator-name = "P2.0V_BUCK_OUT7";
478                                 regulator-min-microvolt = <2000000>;
479                                 regulator-max-microvolt = <2000000>;
480                                 regulator-always-on;
481                         };
482
483                         buck8_reg: BUCK8 {
484                                 regulator-name = "P2.85V_BUCK_OUT8";
485                                 regulator-min-microvolt = <2850000>;
486                                 regulator-max-microvolt = <2850000>;
487                                 regulator-always-on;
488                         };
489                 };
490         };
491 };
492
493 &i2c_1 {
494         trackpad {
495                 reg = <0x67>;
496                 compatible = "cypress,cyapa";
497                 interrupts = <2 0>;
498                 interrupt-parent = <&gpx1>;
499                 wakeup-source;
500         };
501 };
502
503 &pinctrl_0 {
504         max77686_irq: max77686-irq {
505                 samsung,pins = "gpx3-2";
506                 samsung,pin-function = <0>;
507                 samsung,pin-pud = <0>;
508                 samsung,pin-drv = <0>;
509         };
510 };
511
512 #include "cros-ec-keyboard.dtsi"