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