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