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