72d01052c123b70e26a7b3b11715247d55146c46
[cascardo/linux.git] / arch / arm / boot / dts / cros5250-common.dtsi
1 /*
2  * Common device tree include for all Exynos 5250 boards based off of Daisy.
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 / {
12         memory {
13                 reg = <0x40000000 0x80000000>;
14         };
15
16         ramoops {
17                 compatible = "ramoops";
18                 reg = <0x41f00000 0x00100000>;
19                 record-size = <0x00020000>;
20                 dump-oops;
21         };
22
23         chosen {
24         };
25
26         aliases {
27                 sysmmu2 = &sysmmu_2;
28                 sysmmu3 = &sysmmu_3;
29                 sysmmu4 = &sysmmu_4;
30                 sysmmu27 = &sysmmu_27;
31                 sysmmu28 = &sysmmu_28;
32                 sysmmu23 = &sysmmu_23;
33                 sysmmu24 = &sysmmu_24;
34                 sysmmu25 = &sysmmu_25;
35                 sysmmu26 = &sysmmu_26;
36                 gsc0 = &gsc_0;
37                 gsc1 = &gsc_1;
38                 gsc2 = &gsc_2;
39                 gsc3 = &gsc_3;
40                 i2s0 = &i2s_0;
41         };
42
43         firmware {
44                 chromeos {
45                         write-protect-gpio = <&gpd1 6 0 0x10000 0>;
46                 };
47         };
48
49         i2c@12C60000 {
50                 samsung,i2c-sda-delay = <100>;
51                 samsung,i2c-max-bus-freq = <378000>;
52                 gpios = <&gpb3 0 2 3 0>,
53                         <&gpb3 1 2 3 0>;
54
55                 max77686_pmic@9 {
56                         compatible = "maxim,max77686-pmic";
57                         interrupt-parent = <&wakeup_eint>;
58                         interrupts = <26 0>;
59                         wakeup-source;
60                         reg = <0x9>;
61
62                         max77686,buck_ramp_delay = <1>;         /* default */
63
64                         voltage-regulators {
65                                 ldo8_reg: LDO8 {
66                                         regulator-name = "vdd_ldo8";
67                                         regulator-min-microvolt = <1000000>;
68                                         regulator-max-microvolt = <1000000>;
69                                         regulator-always-on;
70                                         reg_op_mode = <1>; /* Standby Mode */
71                                 };
72
73                                 ldo11_reg: LDO11 {
74                                         regulator-name = "vdd_ldo11";
75                                         regulator-min-microvolt = <1900000>;
76                                         regulator-max-microvolt = <1900000>;
77                                         regulator-always-on;
78                                         reg_op_mode = <3>; /* Normal Mode */
79                                 };
80
81                                 ldo14_reg: LDO14 {
82                                         regulator-name = "vdd_ldo14";
83                                         regulator-min-microvolt = <1900000>;
84                                         regulator-max-microvolt = <1900000>;
85                                         regulator-always-on;
86                                         reg_op_mode = <3>; /* Normal Mode */
87                                 };
88
89                                 buck1_reg: BUCK1 {
90                                         regulator-name = "vdd_mif";
91                                         regulator-min-microvolt = <950000>;
92                                         regulator-max-microvolt = <1300000>;
93                                         regulator-always-on;
94                                         regulator-boot-on;
95                                         reg_op_mode = <3>; /* Normal Mode */
96                                 };
97
98                                 buck2_reg: BUCK2 {
99                                         regulator-name = "vdd_arm";
100                                         regulator-min-microvolt = <850000>;
101                                         regulator-max-microvolt = <1350000>;
102                                         regulator-always-on;
103                                         regulator-boot-on;
104                                         reg_op_mode = <3>; /* Normal Mode */
105                                 };
106
107                                 buck3_reg: BUCK3 {
108                                         regulator-name = "vdd_int";
109                                         regulator-min-microvolt = <900000>;
110                                         regulator-max-microvolt = <1200000>;
111                                         regulator-always-on;
112                                         regulator-boot-on;
113                                         reg_op_mode = <3>; /* Normal Mode */
114                                 };
115
116                                 buck4_reg: BUCK4 {
117                                         regulator-name = "vdd_g3d";
118                                         regulator-min-microvolt = <850000>;
119                                         regulator-max-microvolt = <1300000>;
120                                         regulator-boot-on;
121                                         reg_op_mode = <3>; /* Normal Mode */
122                                 };
123
124                                 buck5_reg: BUCK5 {
125                                         regulator-name = "vdd_1v8";
126                                         regulator-min-microvolt = <1800000>;
127                                         regulator-max-microvolt = <1800000>;
128                                         regulator-always-on;
129                                         regulator-boot-on;
130                                         /* No Standby/Low Power mode for BUCK5 */
131                                         reg_op_mode = <3>; /* Normal Mode */
132                                 };
133
134                                 buck8_reg: BUCK8 {
135                                         regulator-name = "vdd_ummc";
136                                         regulator-min-microvolt = <900000>;
137                                         regulator-max-microvolt = <3000000>;
138                                         regulator-always-on;
139                                         regulator-boot-on;
140                                         reg_op_mode = <3>; /* Normal Mode */
141                                 };
142
143                                 en32khz_ap: EN32KHZ_AP {
144                                         regulator-name = "en32khz_ap";
145                                         regulator-boot-on;
146                                         reg_op_mode = <1>; /* Normal Mode */
147                                 };
148
149                                 en32khz_cp: EN32KHZ_CP {
150                                         regulator-name = "en32khz_cp";
151                                         regulator-boot-on;
152                                         reg_op_mode = <1>; /* Normal Mode */
153                                 };
154
155                                 enp32kh: ENP32KHZ {
156                                         regulator-name = "enp32khz";
157                                         regulator-boot-on;
158                                         reg_op_mode = <1>; /* Normal Mode */
159                                 };
160                         };
161                 };
162         };
163
164         i2c@12C70000 {
165                 samsung,i2c-sda-delay = <100>;
166                 samsung,i2c-max-bus-freq = <400000>;
167                 gpios = <&gpb3 2 2 3 0>,
168                         <&gpb3 3 2 3 0>;
169
170                 trackpad {
171                         reg = <0x67>;
172                         compatible = "cypress,cyapa";
173                         interrupts = <10 0>;
174                         interrupt-parent = <&wakeup_eint>;
175                         wakeup-source;
176                 };
177         };
178
179         i2c@12C80000 {
180                 samsung,i2c-sda-delay = <100>;
181                 samsung,i2c-max-bus-freq = <66000>;
182
183                 /*
184                  * Disabled pullups since external part has its own pullups and
185                  * double-pulling gets us out of spec in some cases.
186                  */
187                 gpios = <&gpa0 6 3 0 0>,
188                         <&gpa0 7 3 0 0>;
189
190                 exynos_hdcp@3a {
191                         compatible = "samsung,exynos_hdcp";
192                         reg = <0x3a>;
193                 };
194
195                 exynos_ddc@50 {
196                         compatible = "samsung,s5p_ddc";
197                         reg = <0x50>;
198                 };
199
200         };
201
202         i2c@12C90000 {
203                 samsung,i2c-sda-delay = <100>;
204                 samsung,i2c-max-bus-freq = <66000>;
205                 gpios = <&gpa1 2 3 3 0>,
206                         <&gpa1 3 3 3 0>;
207
208                 tpm {
209                         compatible = "infineon,slb9635tt";
210                         reg = <0x20>;
211                 };
212         };
213
214         i2c@12CA0000 {
215                 samsung,i2c-sda-delay = <100>;
216                 samsung,i2c-max-bus-freq = <66000>;
217                 gpios = <&gpa2 0 3 3 0>,
218                         <&gpa2 1 3 3 0>;
219
220                 power-regulator {
221                         compatible = "ti,tps65090";
222                         reg = <0x48>;
223                         interrupts = <22 0>;
224                         interrupt-parent = <&wakeup_eint>;
225
226                         voltage-regulators {
227                                 VFET1 {
228                                         tps65090-control-reg-offset = <15>;
229                                         tps65090-overcurrent-wait = <3>;
230                                         regulator-name = "vcd_led";
231                                         regulator-min-microvolt = <12000000>;
232                                         regulator-max-microvolt = <12000000>;
233                                 };
234                                 VFET2 {
235                                         tps65090-control-reg-offset = <16>;
236                                         tps65090-overcurrent-wait = <3>;
237                                         regulator-name = "video_mid";
238                                         regulator-min-microvolt = <5000000>;
239                                         regulator-max-microvolt = <5000000>;
240                                         regulator-always-on;
241                                 };
242                                 VFET3 {
243                                         tps65090-control-reg-offset = <17>;
244                                         tps65090-overcurrent-wait = <3>;
245                                         regulator-name = "wwan_r";
246                                         regulator-min-microvolt = <3300000>;
247                                         regulator-max-microvolt = <3300000>;
248                                         regulator-always-on;
249                                 };
250                                 VFET4 {
251                                         tps65090-control-reg-offset = <18>;
252                                         tps65090-overcurrent-wait = <3>;
253                                         regulator-name = "sdcard";
254                                         regulator-min-microvolt = <3300000>;
255                                         regulator-max-microvolt = <3300000>;
256                                 };
257                                 VFET5 {
258                                         tps65090-control-reg-offset = <19>;
259                                         tps65090-overcurrent-wait = <3>;
260                                         regulator-name = "camout";
261                                         regulator-min-microvolt = <3300000>;
262                                         regulator-max-microvolt = <3300000>;
263                                         regulator-always-on;
264                                 };
265                                 VFET6 {
266                                         tps65090-control-reg-offset = <20>;
267                                         tps65090-overcurrent-wait = <3>;
268                                         regulator-name = "lcd_vdd";
269                                         regulator-min-microvolt = <3300000>;
270                                         regulator-max-microvolt = <3300000>;
271                                 };
272                                 VFET7 {
273                                         tps65090-control-reg-offset = <21>;
274                                         tps65090-overcurrent-wait = <3>;
275                                         regulator-name = "ts";
276                                         regulator-min-microvolt = <5000000>;
277                                         regulator-max-microvolt = <5000000>;
278                                 };
279                                 VBAT: charger {
280                                         tps65090-control-reg-offset = <4>;
281                                         regulator-name = "vinchg";
282                                 };
283                         };
284                 };
285
286                 ec {
287                         compatible = "google,chromeos-ec";
288                         reg = <0x1e>;
289                         interrupts = <14 0>;
290                         interrupt-parent = <&wakeup_eint>;
291                         wakeup-source;
292                 };
293
294                 battery: sbs-battery@b {
295                         compatible = "sbs,sbs-battery";
296                         reg = <0xb>;
297                         sbs,poll-retry-count = <1>;
298                 };
299                 // i2c4 hsic hub @0x8, eeprom @0x50, batt @0xb
300         };
301
302         i2c@12CB0000 {
303                 samsung,i2c-sda-delay = <100>;
304                 samsung,i2c-max-bus-freq = <66000>;
305                 gpios = <&gpa2 2 3 3 0>,
306                         <&gpa2 3 3 3 0>;
307
308                 // i2c5 conn? ts?
309         };
310
311         i2c@12CC0000 {
312                 status = "disabled";
313
314                 // i2c6 is not used on any cros5250 boards
315         };
316
317         i2c@12CD0000 {
318                 samsung,i2c-sda-delay = <100>;
319                 samsung,i2c-max-bus-freq = <66000>;
320                 gpios = <&gpb2 2 3 3 0>,
321                         <&gpb2 3 3 3 0>;
322
323                 codec {
324                         compatible = "maxim,max98095";
325                         reg = <0x11>;
326                         mic-left-digital;
327                         mic-right-digital;
328                 };
329
330                 light-sensor {
331                         compatible = "invn,isl29018";
332                         reg = <0x44>;
333                 };
334
335                 // i2c7
336                 // mipi cam  codec 0x11 gyro @0x68
337                 // LCD @0x50-57 ALS @? mic-detect @0x3b
338         };
339
340         spi_0: spi@12d20000 {
341                 status = "disabled";
342         };
343
344         spi_1: spi@12d30000 {
345                 gpios = <&gpa2 4 2 3 0>,
346                         <&gpa2 6 2 3 0>,
347                         <&gpa2 7 2 3 0>;
348                 samsung,spi-src-clk = <0>;
349                 num-cs = <1>;
350         };
351
352         spi_2: spi@12d40000 {
353                 status = "disabled";
354         };
355
356         adc@12D10000 {
357                 vdd-supply = <&buck5_reg>;
358         };
359
360         dwmmc0@12200000 {
361                 supports-highspeed;
362                 card-detection-broken;
363                 no-write-protect;
364                 fifo-depth = <0x80>;
365                 card-detect-delay = <200>;
366                 samsung,dw-mshc-sdr-timing = <2 3 3>;
367                 samsung,dw-mshc-ddr-timing = <1 2 3>;
368
369                 slot0 {
370                         bus-width = <8>;
371                         cd-gpios = <&gpc0 2 2 3 3>;
372                         gpios = <&gpc0 0 2 0 3>, <&gpc0 1 2 0 3>,
373                                 <&gpc1 0 2 3 3>, <&gpc1 1 2 3 3>,
374                                 <&gpc1 2 2 3 3>, <&gpc1 3 2 3 3>,
375                                 <&gpc0 3 2 3 3>, <&gpc0 4 2 3 3>,
376                                 <&gpc0 5 2 3 3>, <&gpc0 6 2 3 3>;
377                 };
378         };
379
380         dwmmc1@12210000 {
381                 status = "disabled";
382         };
383
384         dwmmc2@12220000 {
385                 supports-highspeed;
386                 no-write-protect;
387                 fifo-depth = <0x80>;
388                 card-detect-delay = <200>;
389                 samsung,dw-mshc-sdr-timing = <2 3 3>;
390                 samsung,dw-mshc-ddr-timing = <1 2 3>;
391
392                 slot0 {
393                         bus-width = <4>;
394                         /* Card detect is active low */
395                         cd-gpios = <&gpc3 2 2 0x10003 3>;
396                         gpios = <&gpc3 1 2 0 3>, <&gpc3 0 2 0 3>,
397                                 <&gpc3 3 2 3 3>, <&gpc3 4 2 3 3>,
398                                 <&gpc3 5 2 3 3>, <&gpc3 6 2 3 3>;
399                 };
400         };
401
402         dwmmc3@12230000 {
403                 supports-highspeed;
404                 card-detection-broken;
405                 no-write-protect;
406                 keep-power-in-suspend;
407                 enable-sdio-wakeup;
408                 fifo-depth = <0x80>;
409                 card-detect-delay = <200>;
410                 samsung,dw-mshc-sdr-timing = <2 3 3>;
411                 samsung,dw-mshc-ddr-timing = <1 2 3>;
412
413                 slot0 {
414                         bus-width = <4>;
415                         /* See board-specific dts files for GPIOs */
416                 };
417         };
418
419         i2c@12CE0000 {
420                 samsung,i2c-sda-delay = <100>;
421                 samsung,i2c-max-bus-freq = <400000>;
422
423                 exynos_hdmiphy@38 {
424                         compatible = "samsung,s5p_hdmiphy";
425                         reg = <0x38>;
426                 };
427         };
428
429         ehci {
430                 samsung,vbus-gpio = <&gpx1 1 1 3 3>;
431         };
432
433         xhci {
434                 samsung,vbus-gpio = <&gpx2 7 1 3 3>;
435                 phy {
436                         compatible = "samsung,exynos-usbphy";
437                         clock-enable-gpio = <&gpy1 1 1 0 3>;
438                 };
439         };
440
441         fixed-regulator {
442                 compatible = "regulator-fixed";
443                 regulator-name = "hsichub-reset-l";
444                 gpio = <&gpe1 0 1 0 0>;
445                 enable-active-high;
446                 regulator-always-on;
447         };
448
449         // NB: nodes must be at root for regulator-fixed to probe
450         // NB: must set regulator-boot-on for enable-active-high to be used
451         // NB: set regulator-always-on to suppress complaints
452         //     "incomplete constraints, leaving on"
453         wwan-en {
454                 compatible = "regulator-fixed";
455                 regulator-name = "wwan-en";
456                 gpio = <&gpe0 0 0 0 0>;
457                 enable-active-high;
458                 regulator-boot-on;
459                 regulator-always-on;
460         };
461         max98095-en {
462                 compatible = "regulator-fixed";
463                 regulator-name = "codec-en";
464                 gpio = <&gpx1 7 0 0 0>;
465                 enable-active-high;
466                 regulator-boot-on;
467                 regulator-always-on;
468         };
469
470         // NB: these are manually enabled in platform code
471         wifi-en {
472                 compatible = "regulator-fixed";
473                 regulator-name = "wifi-en";
474                 gpio = <&gpx0 1 0 0 0>;
475                 enable-active-high;
476         };
477         wifi-rst {
478                 compatible = "regulator-fixed";
479                 regulator-name = "wifi-rst-l";
480                 gpio = <&gpx0 2 0 0 0>;
481                 enable-active-high;
482                 startup-delay-us = <1500>;
483         };
484
485         gpio-keys {
486                 compatible = "gpio-keys";
487
488                 power {
489                         label = "Power";
490                         gpios = <&gpx1 3 0 0x10000 0>;
491                         linux,code = <116>; /* KEY_POWER */
492                         gpio-key,wakeup;
493                 };
494         };
495
496         sound {
497                 compatible = "google,daisy-audio-max98095";
498         };
499 };