]> git.kernelconcepts.de Git - karo-tx-linux.git/blob - arch/arm/boot/dts/exynos5250-snow.dts
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
[karo-tx-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 <dt-bindings/gpio/gpio.h>
13 #include <dt-bindings/clock/maxim,max77686.h>
14 #include <dt-bindings/interrupt-controller/irq.h>
15 #include <dt-bindings/input/input.h>
16 #include "exynos5250.dtsi"
17
18 / {
19         model = "Google Snow";
20         compatible = "google,snow", "samsung,exynos5250", "samsung,exynos5";
21
22         aliases {
23                 i2c104 = &i2c_104;
24         };
25
26         memory {
27                 reg = <0x40000000 0x80000000>;
28         };
29
30         chosen {
31                 bootargs = "console=tty1";
32                 stdout-path = "serial3:115200n8";
33         };
34
35         gpio-keys {
36                 compatible = "gpio-keys";
37                 pinctrl-names = "default";
38                 pinctrl-0 = <&power_key_irq &lid_irq>;
39
40                 power {
41                         label = "Power";
42                         gpios = <&gpx1 3 GPIO_ACTIVE_LOW>;
43                         linux,code = <KEY_POWER>;
44                         gpio-key,wakeup;
45                 };
46
47                 lid-switch {
48                         label = "Lid";
49                         gpios = <&gpx3 5 GPIO_ACTIVE_LOW>;
50                         linux,input-type = <5>; /* EV_SW */
51                         linux,code = <0>; /* SW_LID */
52                         debounce-interval = <1>;
53                         gpio-key,wakeup;
54                 };
55         };
56
57         vbat: vbat-fixed-regulator {
58                 compatible = "regulator-fixed";
59                 regulator-name = "vbat-supply";
60                 regulator-boot-on;
61         };
62
63         i2c-arbitrator {
64                 compatible = "i2c-arb-gpio-challenge";
65                 #address-cells = <1>;
66                 #size-cells = <0>;
67
68                 i2c-parent = <&{/i2c@12CA0000}>;
69
70                 our-claim-gpio = <&gpf0 3 GPIO_ACTIVE_LOW>;
71                 their-claim-gpios = <&gpe0 4 GPIO_ACTIVE_LOW>;
72                 slew-delay-us = <10>;
73                 wait-retry-us = <3000>;
74                 wait-free-us = <50000>;
75
76                 pinctrl-names = "default";
77                 pinctrl-0 = <&arb_our_claim &arb_their_claim>;
78
79                 /* Use ID 104 as a hint that we're on physical bus 4 */
80                 i2c_104: i2c@0 {
81                         reg = <0>;
82                         #address-cells = <1>;
83                         #size-cells = <0>;
84
85                         battery: sbs-battery@b {
86                                 compatible = "sbs,sbs-battery";
87                                 reg = <0xb>;
88                                 sbs,poll-retry-count = <1>;
89                         };
90
91                         cros_ec: embedded-controller {
92                                 compatible = "google,cros-ec-i2c";
93                                 reg = <0x1e>;
94                                 interrupts = <6 IRQ_TYPE_NONE>;
95                                 interrupt-parent = <&gpx1>;
96                                 pinctrl-names = "default";
97                                 pinctrl-0 = <&ec_irq>;
98                                 wakeup-source;
99                         };
100
101                         power-regulator {
102                                 compatible = "ti,tps65090";
103                                 reg = <0x48>;
104
105                                 /*
106                                  * Config irq to disable internal pulls
107                                  * even though we run in polling mode.
108                                  */
109                                 pinctrl-names = "default";
110                                 pinctrl-0 = <&tps65090_irq>;
111
112                                 vsys1-supply = <&vbat>;
113                                 vsys2-supply = <&vbat>;
114                                 vsys3-supply = <&vbat>;
115                                 infet1-supply = <&vbat>;
116                                 infet2-supply = <&vbat>;
117                                 infet3-supply = <&vbat>;
118                                 infet4-supply = <&vbat>;
119                                 infet5-supply = <&vbat>;
120                                 infet6-supply = <&vbat>;
121                                 infet7-supply = <&vbat>;
122                                 vsys-l1-supply = <&vbat>;
123                                 vsys-l2-supply = <&vbat>;
124
125                                 regulators {
126                                         dcdc1 {
127                                                 ti,enable-ext-control;
128                                         };
129                                         dcdc2 {
130                                                 ti,enable-ext-control;
131                                         };
132                                         dcdc3 {
133                                                 ti,enable-ext-control;
134                                         };
135                                         fet1: fet1 {
136                                                 regulator-name = "vcd_led";
137                                                 ti,overcurrent-wait = <3>;
138                                         };
139                                         tps65090_fet2: fet2 {
140                                                 regulator-name = "video_mid";
141                                                 regulator-always-on;
142                                                 ti,overcurrent-wait = <3>;
143                                         };
144                                         fet3 {
145                                                 regulator-name = "wwan_r";
146                                                 regulator-always-on;
147                                                 ti,overcurrent-wait = <3>;
148                                         };
149                                         fet4 {
150                                                 regulator-name = "sdcard";
151                                                 ti,overcurrent-wait = <3>;
152                                         };
153                                         fet5 {
154                                                 regulator-name = "camout";
155                                                 regulator-always-on;
156                                                 ti,overcurrent-wait = <3>;
157                                         };
158                                         fet6: fet6 {
159                                                 regulator-name = "lcd_vdd";
160                                                 ti,overcurrent-wait = <3>;
161                                         };
162                                         tps65090_fet7: fet7 {
163                                                 regulator-name = "video_mid_1a";
164                                                 regulator-always-on;
165                                                 ti,overcurrent-wait = <3>;
166                                         };
167                                         ldo1 {
168                                         };
169                                         ldo2 {
170                                         };
171                                 };
172
173                                 charger {
174                                         compatible = "ti,tps65090-charger";
175                                 };
176                         };
177                 };
178         };
179
180         sound {
181                 compatible = "google,snow-audio-max98095";
182
183                 samsung,model = "Snow-I2S-MAX98095";
184                 samsung,i2s-controller = <&i2s0>;
185                 samsung,audio-codec = <&max98095>;
186         };
187
188         usb3_vbus_reg: regulator-usb3 {
189                 compatible = "regulator-fixed";
190                 regulator-name = "P5.0V_USB3CON";
191                 regulator-min-microvolt = <5000000>;
192                 regulator-max-microvolt = <5000000>;
193                 gpio = <&gpx2 7 GPIO_ACTIVE_HIGH>;
194                 pinctrl-names = "default";
195                 pinctrl-0 = <&usb3_vbus_en>;
196                 enable-active-high;
197         };
198
199         fixed-rate-clocks {
200                 xxti {
201                         compatible = "samsung,clock-xxti";
202                         clock-frequency = <24000000>;
203                 };
204         };
205
206         backlight: backlight {
207                 compatible = "pwm-backlight";
208                 pwms = <&pwm 0 1000000 0>;
209                 brightness-levels = <0 100 500 1000 1500 2000 2500 2800>;
210                 default-brightness-level = <7>;
211                 enable-gpios = <&gpx3 0 GPIO_ACTIVE_HIGH>;
212                 power-supply = <&fet1>;
213                 pinctrl-0 = <&pwm0_out>;
214                 pinctrl-names = "default";
215         };
216
217         panel: panel {
218                 compatible = "auo,b116xw03";
219                 power-supply = <&fet6>;
220                 backlight = <&backlight>;
221
222                 port {
223                         panel_in: endpoint {
224                                 remote-endpoint = <&bridge_out>;
225                         };
226                 };
227         };
228
229         mmc3_pwrseq: mmc3_pwrseq {
230                 compatible = "mmc-pwrseq-simple";
231                 reset-gpios = <&gpx0 2 GPIO_ACTIVE_LOW>, /* WIFI_RSTn */
232                               <&gpx0 1 GPIO_ACTIVE_LOW>; /* WIFI_EN */
233                 clocks = <&max77686 MAX77686_CLK_PMIC>;
234                 clock-names = "ext_clock";
235         };
236 };
237
238 &cpu0 {
239         cpu0-supply = <&buck2_reg>;
240 };
241
242 &dp {
243         status = "okay";
244         pinctrl-names = "default";
245         pinctrl-0 = <&dp_hpd>;
246         samsung,color-space = <0>;
247         samsung,dynamic-range = <0>;
248         samsung,ycbcr-coeff = <0>;
249         samsung,color-depth = <1>;
250         samsung,link-rate = <0x0a>;
251         samsung,lane-count = <2>;
252         samsung,hpd-gpio = <&gpx0 7 GPIO_ACTIVE_HIGH>;
253
254         ports {
255                 port@0 {
256                         dp_out: endpoint {
257                                 remote-endpoint = <&bridge_in>;
258                         };
259                 };
260         };
261 };
262
263 &ehci {
264         samsung,vbus-gpio = <&gpx1 1 GPIO_ACTIVE_HIGH>;
265 };
266
267 &fimd {
268         status = "okay";
269         samsung,invert-vclk;
270 };
271
272 &hdmi {
273         hpd-gpio = <&gpx3 7 GPIO_ACTIVE_HIGH>;
274         pinctrl-names = "default";
275         pinctrl-0 = <&hdmi_hpd_irq>;
276         phy = <&hdmiphy>;
277         ddc = <&i2c_2>;
278         hdmi-en-supply = <&tps65090_fet7>;
279         vdd-supply = <&ldo8_reg>;
280         vdd_osc-supply = <&ldo10_reg>;
281         vdd_pll-supply = <&ldo8_reg>;
282 };
283
284 &i2c_0 {
285         status = "okay";
286         samsung,i2c-sda-delay = <100>;
287         samsung,i2c-max-bus-freq = <378000>;
288
289         max77686: max77686@09 {
290                 compatible = "maxim,max77686";
291                 interrupt-parent = <&gpx3>;
292                 interrupts = <2 IRQ_TYPE_NONE>;
293                 pinctrl-names = "default";
294                 pinctrl-0 = <&max77686_irq>;
295                 wakeup-source;
296                 reg = <0x09>;
297                 #clock-cells = <1>;
298
299                 voltage-regulators {
300                         ldo1_reg: LDO1 {
301                                 regulator-name = "P1.0V_LDO_OUT1";
302                                 regulator-min-microvolt = <1000000>;
303                                 regulator-max-microvolt = <1000000>;
304                                 regulator-always-on;
305                         };
306
307                         ldo2_reg: LDO2 {
308                                 regulator-name = "P1.8V_LDO_OUT2";
309                                 regulator-min-microvolt = <1800000>;
310                                 regulator-max-microvolt = <1800000>;
311                                 regulator-always-on;
312                         };
313
314                         ldo3_reg: LDO3 {
315                                 regulator-name = "P1.8V_LDO_OUT3";
316                                 regulator-min-microvolt = <1800000>;
317                                 regulator-max-microvolt = <1800000>;
318                                 regulator-always-on;
319                         };
320
321                         ldo7_reg: LDO7 {
322                                 regulator-name = "P1.1V_LDO_OUT7";
323                                 regulator-min-microvolt = <1100000>;
324                                 regulator-max-microvolt = <1100000>;
325                                 regulator-always-on;
326                         };
327
328                         ldo8_reg: LDO8 {
329                                 regulator-name = "P1.0V_LDO_OUT8";
330                                 regulator-min-microvolt = <1000000>;
331                                 regulator-max-microvolt = <1000000>;
332                                 regulator-always-on;
333                         };
334
335                         ldo10_reg: LDO10 {
336                                 regulator-name = "P1.8V_LDO_OUT10";
337                                 regulator-min-microvolt = <1800000>;
338                                 regulator-max-microvolt = <1800000>;
339                                 regulator-always-on;
340                         };
341
342                         ldo12_reg: LDO12 {
343                                 regulator-name = "P3.0V_LDO_OUT12";
344                                 regulator-min-microvolt = <3000000>;
345                                 regulator-max-microvolt = <3000000>;
346                                 regulator-always-on;
347                         };
348
349                         ldo14_reg: LDO14 {
350                                 regulator-name = "P1.8V_LDO_OUT14";
351                                 regulator-min-microvolt = <1800000>;
352                                 regulator-max-microvolt = <1800000>;
353                                 regulator-always-on;
354                         };
355
356                         ldo15_reg: LDO15 {
357                                 regulator-name = "P1.0V_LDO_OUT15";
358                                 regulator-min-microvolt = <1000000>;
359                                 regulator-max-microvolt = <1000000>;
360                                 regulator-always-on;
361                         };
362
363                         ldo16_reg: LDO16 {
364                                 regulator-name = "P1.8V_LDO_OUT16";
365                                 regulator-min-microvolt = <1800000>;
366                                 regulator-max-microvolt = <1800000>;
367                                 regulator-always-on;
368                         };
369
370                         buck1_reg: BUCK1 {
371                                 regulator-name = "vdd_mif";
372                                 regulator-min-microvolt = <950000>;
373                                 regulator-max-microvolt = <1300000>;
374                                 regulator-always-on;
375                                 regulator-boot-on;
376                         };
377
378                         buck2_reg: BUCK2 {
379                                 regulator-name = "vdd_arm";
380                                 regulator-min-microvolt = <850000>;
381                                 regulator-max-microvolt = <1350000>;
382                                 regulator-always-on;
383                                 regulator-boot-on;
384                         };
385
386                         buck3_reg: BUCK3 {
387                                 regulator-name = "vdd_int";
388                                 regulator-min-microvolt = <900000>;
389                                 regulator-max-microvolt = <1200000>;
390                                 regulator-always-on;
391                                 regulator-boot-on;
392                         };
393
394                         buck4_reg: BUCK4 {
395                                 regulator-name = "vdd_g3d";
396                                 regulator-min-microvolt = <850000>;
397                                 regulator-max-microvolt = <1300000>;
398                                 regulator-always-on;
399                                 regulator-boot-on;
400                         };
401
402                         buck5_reg: BUCK5 {
403                                 regulator-name = "P1.8V_BUCK_OUT5";
404                                 regulator-min-microvolt = <1800000>;
405                                 regulator-max-microvolt = <1800000>;
406                                 regulator-always-on;
407                                 regulator-boot-on;
408                         };
409
410                         buck6_reg: BUCK6 {
411                                 regulator-name = "P1.35V_BUCK_OUT6";
412                                 regulator-min-microvolt = <1350000>;
413                                 regulator-max-microvolt = <1350000>;
414                                 regulator-always-on;
415                         };
416
417                         buck7_reg: BUCK7 {
418                                 regulator-name = "P2.0V_BUCK_OUT7";
419                                 regulator-min-microvolt = <2000000>;
420                                 regulator-max-microvolt = <2000000>;
421                                 regulator-always-on;
422                         };
423
424                         buck8_reg: BUCK8 {
425                                 regulator-name = "P2.85V_BUCK_OUT8";
426                                 regulator-min-microvolt = <2850000>;
427                                 regulator-max-microvolt = <2850000>;
428                                 regulator-always-on;
429                         };
430                 };
431         };
432 };
433
434 &i2c_1 {
435         status = "okay";
436         samsung,i2c-sda-delay = <100>;
437         samsung,i2c-max-bus-freq = <378000>;
438
439         trackpad {
440                 reg = <0x67>;
441                 compatible = "cypress,cyapa";
442                 interrupts = <2 IRQ_TYPE_NONE>;
443                 interrupt-parent = <&gpx1>;
444                 wakeup-source;
445         };
446 };
447
448 /*
449  * Disabled pullups since external part has its own pullups and
450  * double-pulling gets us out of spec in some cases.
451  */
452 &i2c2_bus {
453         samsung,pin-pud = <0>;
454 };
455
456 &i2c_2 {
457         status = "okay";
458         samsung,i2c-sda-delay = <100>;
459         samsung,i2c-max-bus-freq = <66000>;
460
461         hdmiddc@50 {
462                 compatible = "samsung,exynos4210-hdmiddc";
463                 reg = <0x50>;
464         };
465 };
466
467 &i2c_3 {
468         status = "okay";
469         samsung,i2c-sda-delay = <100>;
470         samsung,i2c-max-bus-freq = <66000>;
471 };
472
473 &i2c_4 {
474         status = "okay";
475         samsung,i2c-sda-delay = <100>;
476         samsung,i2c-max-bus-freq = <66000>;
477 };
478
479 &i2c_5 {
480         status = "okay";
481         samsung,i2c-sda-delay = <100>;
482         samsung,i2c-max-bus-freq = <66000>;
483 };
484
485 &i2c_7 {
486         status = "okay";
487         samsung,i2c-sda-delay = <100>;
488         samsung,i2c-max-bus-freq = <66000>;
489
490         ptn3460: lvds-bridge@20 {
491                 compatible = "nxp,ptn3460";
492                 reg = <0x20>;
493                 powerdown-gpios = <&gpy2 5 GPIO_ACTIVE_HIGH>;
494                 reset-gpios = <&gpx1 5 GPIO_ACTIVE_HIGH>;
495                 edid-emulation = <5>;
496
497                 ports {
498                         port@0 {
499                                 bridge_out: endpoint {
500                                         remote-endpoint = <&panel_in>;
501                                 };
502                         };
503
504                         port@1 {
505                                 bridge_in: endpoint {
506                                         remote-endpoint = <&dp_out>;
507                                 };
508                         };
509                 };
510         };
511
512         max98095: codec@11 {
513                 compatible = "maxim,max98095";
514                 reg = <0x11>;
515                 pinctrl-0 = <&max98095_en>;
516                 pinctrl-names = "default";
517         };
518 };
519
520 &i2c_8 {
521         status = "okay";
522         samsung,i2c-sda-delay = <100>;
523         samsung,i2c-max-bus-freq = <378000>;
524
525         hdmiphy: hdmiphy@38 {
526                 compatible = "samsung,exynos4212-hdmiphy";
527                 reg = <0x38>;
528         };
529 };
530
531 &i2s0 {
532         status = "okay";
533 };
534
535 &mmc_0 {
536         status = "okay";
537         num-slots = <1>;
538         broken-cd;
539         card-detect-delay = <200>;
540         samsung,dw-mshc-ciu-div = <3>;
541         samsung,dw-mshc-sdr-timing = <2 3>;
542         samsung,dw-mshc-ddr-timing = <1 2>;
543         pinctrl-names = "default";
544         pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_cd &sd0_bus4 &sd0_bus8>;
545         bus-width = <8>;
546         cap-mmc-highspeed;
547 };
548
549 &mmc_2 {
550         status = "okay";
551         num-slots = <1>;
552         card-detect-delay = <200>;
553         samsung,dw-mshc-ciu-div = <3>;
554         samsung,dw-mshc-sdr-timing = <2 3>;
555         samsung,dw-mshc-ddr-timing = <1 2>;
556         pinctrl-names = "default";
557         pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus4>;
558         bus-width = <4>;
559         wp-gpios = <&gpc2 1 GPIO_ACTIVE_HIGH>;
560         cap-sd-highspeed;
561 };
562
563 /*
564  * On Snow we've got SIP WiFi and so can keep drive strengths low to
565  * reduce EMI.
566  */
567 &mmc_3 {
568         status = "okay";
569         num-slots = <1>;
570         broken-cd;
571         cap-sdio-irq;
572         keep-power-in-suspend;
573         card-detect-delay = <200>;
574         samsung,dw-mshc-ciu-div = <3>;
575         samsung,dw-mshc-sdr-timing = <2 3>;
576         samsung,dw-mshc-ddr-timing = <1 2>;
577         pinctrl-names = "default";
578         pinctrl-0 = <&sd3_clk &sd3_cmd &sd3_bus4 &wifi_en &wifi_rst>;
579         bus-width = <4>;
580         cap-sd-highspeed;
581         mmc-pwrseq = <&mmc3_pwrseq>;
582 };
583
584 &pinctrl_0 {
585         wifi_en: wifi-en {
586                 samsung,pins = "gpx0-1";
587                 samsung,pin-function = <1>;
588                 samsung,pin-pud = <0>;
589                 samsung,pin-drv = <0>;
590         };
591
592         wifi_rst: wifi-rst {
593                 samsung,pins = "gpx0-2";
594                 samsung,pin-function = <1>;
595                 samsung,pin-pud = <0>;
596                 samsung,pin-drv = <0>;
597         };
598
599         power_key_irq: power-key-irq {
600                 samsung,pins = "gpx1-3";
601                 samsung,pin-function = <0xf>;
602                 samsung,pin-pud = <0>;
603                 samsung,pin-drv = <0>;
604         };
605
606         ec_irq: ec-irq {
607                 samsung,pins = "gpx1-6";
608                 samsung,pin-function = <0>;
609                 samsung,pin-pud = <0>;
610                 samsung,pin-drv = <0>;
611         };
612
613         max98095_en: max98095-en {
614                 samsung,pins = "gpx1-7";
615                 samsung,pin-function = <0>;
616                 samsung,pin-pud = <3>;
617                 samsung,pin-drv = <0>;
618         };
619
620         tps65090_irq: tps65090-irq {
621                 samsung,pins = "gpx2-6";
622                 samsung,pin-function = <0>;
623                 samsung,pin-pud = <0>;
624                 samsung,pin-drv = <0>;
625         };
626
627         usb3_vbus_en: usb3-vbus-en {
628                 samsung,pins = "gpx2-7";
629                 samsung,pin-function = <1>;
630                 samsung,pin-pud = <0>;
631                 samsung,pin-drv = <0>;
632         };
633
634         max77686_irq: max77686-irq {
635                 samsung,pins = "gpx3-2";
636                 samsung,pin-function = <0>;
637                 samsung,pin-pud = <0>;
638                 samsung,pin-drv = <0>;
639         };
640
641         lid_irq: lid-irq {
642                 samsung,pins = "gpx3-5";
643                 samsung,pin-function = <0xf>;
644                 samsung,pin-pud = <0>;
645                 samsung,pin-drv = <0>;
646         };
647
648         hdmi_hpd_irq: hdmi-hpd-irq {
649                 samsung,pins = "gpx3-7";
650                 samsung,pin-function = <0>;
651                 samsung,pin-pud = <1>;
652                 samsung,pin-drv = <0>;
653         };
654 };
655
656 &pinctrl_1 {
657         arb_their_claim: arb-their-claim {
658                 samsung,pins = "gpe0-4";
659                 samsung,pin-function = <0>;
660                 samsung,pin-pud = <3>;
661                 samsung,pin-drv = <0>;
662         };
663
664         arb_our_claim: arb-our-claim {
665                 samsung,pins = "gpf0-3";
666                 samsung,pin-function = <1>;
667                 samsung,pin-pud = <0>;
668                 samsung,pin-drv = <0>;
669         };
670 };
671
672 &rtc {
673         status = "okay";
674         clocks = <&clock CLK_RTC>, <&max77686 MAX77686_CLK_AP>;
675         clock-names = "rtc", "rtc_src";
676 };
677
678 &sd3_bus4 {
679         samsung,pin-drv = <0>;
680 };
681
682 &sd3_clk {
683         samsung,pin-drv = <0>;
684 };
685
686 &sd3_cmd {
687         samsung,pin-pud = <3>;
688         samsung,pin-drv = <0>;
689 };
690
691 &spi_1 {
692         status = "okay";
693         samsung,spi-src-clk = <0>;
694         num-cs = <1>;
695         cs-gpios = <&gpa2 5 GPIO_ACTIVE_HIGH>;
696 };
697
698 &usbdrd_dwc3 {
699         dr_mode = "host";
700 };
701
702 &usbdrd_phy {
703         vbus-supply = <&usb3_vbus_reg>;
704 };
705
706 #include "cros-ec-keyboard.dtsi"