Merge tag 'v3.17-rockchip-rk3xxx-dts-2' of git://git.kernel.org/pub/scm/linux/kernel...
[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 #include "cros-ec-keyboard.dtsi"