blob: 9d1ca0951873af4356c94a994e4c5948fb8ac99a [file] [log] [blame]
Doug Anderson95e82942012-11-21 13:32:21 +09001/*
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/;
Padmavathi Venna37992792013-06-18 00:02:08 +090012#include "exynos5250.dtsi"
Mark Browna22d0602013-12-21 10:09:25 +090013#include "exynos5250-cros-common.dtsi"
Doug Anderson95e82942012-11-21 13:32:21 +090014
15/ {
16 model = "Google Snow";
Sachin Kamat8bdb31b2014-03-21 02:17:22 +090017 compatible = "google,snow", "samsung,exynos5250", "samsung,exynos5";
Doug Anderson95e82942012-11-21 13:32:21 +090018
Doug Anderson97a4a1b2013-04-16 16:29:01 +000019 aliases {
20 i2c104 = &i2c_104;
21 };
22
Sachin Kamat65cedf02014-02-24 08:47:28 +090023 rtc@101E0000 {
24 status = "okay";
25 };
26
Thomas Abrahamf8bfe2b2013-04-04 14:16:11 +090027 pinctrl@11400000 {
Doug Andersonecad1592014-05-16 05:16:11 +090028 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
Thomas Abrahamf8bfe2b2013-04-04 14:16:11 +090035 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 };
Doug Andersonb16be762014-05-16 05:16:14 +090047
Tushar Behera80f78ad2014-05-17 07:43:18 +090048 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
Doug Andersonb16be762014-05-16 05:16:14 +090055 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 };
Rahul Sharma2e747d62014-05-16 05:22:41 +090061
62 hdmi_hpd_irq: hdmi-hpd-irq {
63 samsung,pins = "gpx3-7";
64 samsung,pin-function = <0>;
65 samsung,pin-pud = <1>;
66 samsung,pin-drv = <0>;
67 };
Thomas Abrahamf8bfe2b2013-04-04 14:16:11 +090068 };
69
Doug Andersonf9357e92014-05-16 05:16:07 +090070 pinctrl@13400000 {
71 arb_their_claim: arb-their-claim {
72 samsung,pins = "gpe0-4";
73 samsung,pin-function = <0>;
74 samsung,pin-pud = <3>;
75 samsung,pin-drv = <0>;
76 };
77
78 arb_our_claim: arb-our-claim {
79 samsung,pins = "gpf0-3";
80 samsung,pin-function = <1>;
81 samsung,pin-pud = <0>;
82 samsung,pin-drv = <0>;
83 };
84 };
85
Doug Anderson95e82942012-11-21 13:32:21 +090086 gpio-keys {
87 compatible = "gpio-keys";
88
89 lid-switch {
90 label = "Lid";
Thomas Abrahamf8bfe2b2013-04-04 14:16:11 +090091 gpios = <&gpx3 5 1>;
Doug Anderson95e82942012-11-21 13:32:21 +090092 linux,input-type = <5>; /* EV_SW */
93 linux,code = <0>; /* SW_LID */
94 debounce-interval = <1>;
95 gpio-key,wakeup;
96 };
97 };
98
Doug Andersonb16be762014-05-16 05:16:14 +090099 vbat: vbat-fixed-regulator {
100 compatible = "regulator-fixed";
101 regulator-name = "vbat-supply";
102 regulator-boot-on;
103 };
104
Doug Anderson97a4a1b2013-04-16 16:29:01 +0000105 i2c-arbitrator {
106 compatible = "i2c-arb-gpio-challenge";
107 #address-cells = <1>;
108 #size-cells = <0>;
109
110 i2c-parent = <&{/i2c@12CA0000}>;
111
112 our-claim-gpio = <&gpf0 3 1>;
113 their-claim-gpios = <&gpe0 4 1>;
114 slew-delay-us = <10>;
115 wait-retry-us = <3000>;
116 wait-free-us = <50000>;
117
Doug Andersonf9357e92014-05-16 05:16:07 +0900118 pinctrl-names = "default";
119 pinctrl-0 = <&arb_our_claim &arb_their_claim>;
120
Doug Anderson97a4a1b2013-04-16 16:29:01 +0000121 /* Use ID 104 as a hint that we're on physical bus 4 */
122 i2c_104: i2c@0 {
123 reg = <0>;
124 #address-cells = <1>;
125 #size-cells = <0>;
Doug Anderson61d4f052013-04-16 16:29:02 +0000126
127 battery: sbs-battery@b {
128 compatible = "sbs,sbs-battery";
129 reg = <0xb>;
130 sbs,poll-retry-count = <1>;
131 };
Olof Johanssona4591dc2013-04-27 15:14:10 -0700132
133 ec: embedded-controller {
134 compatible = "google,cros-ec-i2c";
135 reg = <0x1e>;
136 interrupts = <6 0>;
137 interrupt-parent = <&gpx1>;
Doug Andersonecad1592014-05-16 05:16:11 +0900138 pinctrl-names = "default";
139 pinctrl-0 = <&ec_irq>;
Olof Johanssona4591dc2013-04-27 15:14:10 -0700140 wakeup-source;
141
142 keyboard-controller {
143 compatible = "google,cros-ec-keyb";
144 keypad,num-rows = <8>;
145 keypad,num-columns = <13>;
146 google,needs-ghost-filter;
Doug Andersona98e3192013-12-21 06:08:20 +0900147 linux,keymap = <0x0001007d /* L_META */
Olof Johanssona4591dc2013-04-27 15:14:10 -0700148 0x0002003b /* F1 */
149 0x00030030 /* B */
150 0x00040044 /* F10 */
151 0x00060031 /* N */
152 0x0008000d /* = */
153 0x000a0064 /* R_ALT */
154
155 0x01010001 /* ESC */
156 0x0102003e /* F4 */
157 0x01030022 /* G */
158 0x01040041 /* F7 */
159 0x01060023 /* H */
160 0x01080028 /* ' */
161 0x01090043 /* F9 */
162 0x010b000e /* BKSPACE */
163
164 0x0200001d /* L_CTRL */
165 0x0201000f /* TAB */
166 0x0202003d /* F3 */
167 0x02030014 /* T */
168 0x02040040 /* F6 */
169 0x0205001b /* ] */
170 0x02060015 /* Y */
171 0x02070056 /* 102ND */
172 0x0208001a /* [ */
173 0x02090042 /* F8 */
174
175 0x03010029 /* GRAVE */
176 0x0302003c /* F2 */
177 0x03030006 /* 5 */
178 0x0304003f /* F5 */
179 0x03060007 /* 6 */
180 0x0308000c /* - */
181 0x030b002b /* \ */
182
183 0x04000061 /* R_CTRL */
184 0x0401001e /* A */
185 0x04020020 /* D */
186 0x04030021 /* F */
187 0x0404001f /* S */
188 0x04050025 /* K */
189 0x04060024 /* J */
190 0x04080027 /* ; */
191 0x04090026 /* L */
Doug Andersonc63965b2013-12-21 06:08:15 +0900192 0x040a002b /* \ */
Olof Johanssona4591dc2013-04-27 15:14:10 -0700193 0x040b001c /* ENTER */
194
195 0x0501002c /* Z */
196 0x0502002e /* C */
197 0x0503002f /* V */
198 0x0504002d /* X */
199 0x05050033 /* , */
200 0x05060032 /* M */
201 0x0507002a /* L_SHIFT */
202 0x05080035 /* / */
203 0x05090034 /* . */
204 0x050B0039 /* SPACE */
205
206 0x06010002 /* 1 */
207 0x06020004 /* 3 */
208 0x06030005 /* 4 */
209 0x06040003 /* 2 */
210 0x06050009 /* 8 */
211 0x06060008 /* 7 */
212 0x0608000b /* 0 */
213 0x0609000a /* 9 */
214 0x060a0038 /* L_ALT */
215 0x060b006c /* DOWN */
216 0x060c006a /* RIGHT */
217
218 0x07010010 /* Q */
219 0x07020012 /* E */
220 0x07030013 /* R */
221 0x07040011 /* W */
222 0x07050017 /* I */
223 0x07060016 /* U */
224 0x07070036 /* R_SHIFT */
225 0x07080019 /* P */
226 0x07090018 /* O */
227 0x070b0067 /* UP */
228 0x070c0069>; /* LEFT */
229 };
230 };
Doug Andersonb16be762014-05-16 05:16:14 +0900231
232 power-regulator {
233 compatible = "ti,tps65090";
234 reg = <0x48>;
235
236 /*
237 * Config irq to disable internal pulls
238 * even though we run in polling mode.
239 */
240 pinctrl-names = "default";
241 pinctrl-0 = <&tps65090_irq>;
242
243 vsys1-supply = <&vbat>;
244 vsys2-supply = <&vbat>;
245 vsys3-supply = <&vbat>;
246 infet1-supply = <&vbat>;
247 infet2-supply = <&vbat>;
248 infet3-supply = <&vbat>;
249 infet4-supply = <&vbat>;
250 infet5-supply = <&vbat>;
251 infet6-supply = <&vbat>;
252 infet7-supply = <&vbat>;
253 vsys-l1-supply = <&vbat>;
254 vsys-l2-supply = <&vbat>;
255
256 regulators {
257 dcdc1 {
258 ti,enable-ext-control;
259 };
260 dcdc2 {
261 ti,enable-ext-control;
262 };
263 dcdc3 {
264 ti,enable-ext-control;
265 };
266 fet1 {
267 regulator-name = "vcd_led";
268 ti,overcurrent-wait = <3>;
269 };
270 tps65090_fet2: fet2 {
271 regulator-name = "video_mid";
272 regulator-always-on;
273 ti,overcurrent-wait = <3>;
274 };
275 fet3 {
276 regulator-name = "wwan_r";
277 regulator-always-on;
278 ti,overcurrent-wait = <3>;
279 };
280 fet4 {
281 regulator-name = "sdcard";
282 ti,overcurrent-wait = <3>;
283 };
284 fet5 {
285 regulator-name = "camout";
286 regulator-always-on;
287 ti,overcurrent-wait = <3>;
288 };
289 fet6 {
290 regulator-name = "lcd_vdd";
291 ti,overcurrent-wait = <3>;
292 };
293 tps65090_fet7: fet7 {
294 regulator-name = "video_mid_1a";
295 regulator-always-on;
296 ti,overcurrent-wait = <3>;
297 };
298 ldo1 {
299 };
300 ldo2 {
301 };
302 };
303
304 charger {
305 compatible = "ti,tps65090-charger";
306 };
307 };
Doug Anderson97a4a1b2013-04-16 16:29:01 +0000308 };
309 };
310
Yuvaraj Kumar C De8dd3ee2013-12-19 04:31:19 +0900311 mmc@12200000 {
312 status = "okay";
313 };
314
315 mmc@12220000 {
316 status = "okay";
317 };
318
Doug Anderson95e82942012-11-21 13:32:21 +0900319 /*
320 * On Snow we've got SIP WiFi and so can keep drive strengths low to
321 * reduce EMI.
322 */
Yuvaraj Kumar C Dc8149df2013-10-21 05:48:16 +0900323 mmc@12230000 {
Yuvaraj Kumar C De8dd3ee2013-12-19 04:31:19 +0900324 status = "okay";
Doug Anderson95e82942012-11-21 13:32:21 +0900325 slot@0 {
Thomas Abrahamf8bfe2b2013-04-04 14:16:11 +0900326 pinctrl-names = "default";
327 pinctrl-0 = <&sd3_clk &sd3_cmd &sd3_bus4>;
Doug Anderson95e82942012-11-21 13:32:21 +0900328 };
329 };
Vivek Gautam13cbd1e2013-02-12 15:24:15 -0800330
Tushar Behera80f78ad2014-05-17 07:43:18 +0900331 i2c@12CD0000 {
332 max98095: codec@11 {
333 compatible = "maxim,max98095";
334 reg = <0x11>;
335 pinctrl-0 = <&max98095_en>;
336 pinctrl-names = "default";
337 };
338 };
339
340 i2s0: i2s@03830000 {
341 status = "okay";
342 };
343
344 sound {
345 compatible = "google,snow-audio-max98095";
346
347 samsung,i2s-controller = <&i2s0>;
348 samsung,audio-codec = <&max98095>;
349 };
350
Vivek Gautam13cbd1e2013-02-12 15:24:15 -0800351 usb@12110000 {
Doug Andersonc58c1a42013-05-08 10:37:16 -0700352 samsung,vbus-gpio = <&gpx1 1 0>;
Vivek Gautam13cbd1e2013-02-12 15:24:15 -0800353 };
Thomas Abraham8b6076d2013-03-09 17:19:22 +0900354
355 fixed-rate-clocks {
356 xxti {
357 compatible = "samsung,clock-xxti";
358 clock-frequency = <24000000>;
359 };
360 };
Rahul Sharma2e747d62014-05-16 05:22:41 +0900361
362 hdmi {
363 hdmi-en-supply = <&tps65090_fet7>;
364 vdd-supply = <&ldo8_reg>;
365 vdd_osc-supply = <&ldo10_reg>;
366 vdd_pll-supply = <&ldo8_reg>;
367 };
Doug Anderson95e82942012-11-21 13:32:21 +0900368};