GNU Linux-libre 6.1.90-gnu
[releases.git] / arch / arm / boot / dts / exynos5800-peach-pi.dts
1 // SPDX-License-Identifier: GPL-2.0
2 /*
3  * Google Peach Pi Rev 10+ board device tree source
4  *
5  * Copyright (c) 2014 Google, Inc
6  */
7
8 /dts-v1/;
9 #include <dt-bindings/input/input.h>
10 #include <dt-bindings/gpio/gpio.h>
11 #include <dt-bindings/interrupt-controller/irq.h>
12 #include <dt-bindings/clock/maxim,max77802.h>
13 #include <dt-bindings/regulator/maxim,max77802.h>
14 #include <dt-bindings/sound/samsung-i2s.h>
15 #include "exynos5800.dtsi"
16 #include "exynos5420-cpus.dtsi"
17
18 / {
19         model = "Google Peach Pi Rev 10+";
20
21         compatible = "google,pi-rev16",
22                 "google,pi-rev15", "google,pi-rev14",
23                 "google,pi-rev13", "google,pi-rev12",
24                 "google,pi-rev11", "google,pi-rev10",
25                 "google,pi", "google,peach", "samsung,exynos5800",
26                 "samsung,exynos5";
27         chassis-type = "laptop";
28
29         aliases {
30                 /* Assign 20 so we don't get confused w/ builtin ones */
31                 i2c20 = &i2c_tunnel;
32         };
33
34         backlight: backlight {
35                 compatible = "pwm-backlight";
36                 pwms = <&pwm 0 1000000 0>;
37                 brightness-levels = <0 100 500 1000 1500 2000 2500 2800>;
38                 default-brightness-level = <7>;
39                 enable-gpios = <&gpx2 2 GPIO_ACTIVE_HIGH>;
40                 power-supply = <&tps65090_fet1>;
41                 pinctrl-0 = <&pwm0_out>;
42                 pinctrl-names = "default";
43         };
44
45         chosen {
46                 stdout-path = "serial3:115200n8";
47         };
48
49         fixed-rate-clocks {
50                 oscclk {
51                         compatible = "samsung,exynos5420-oscclk";
52                         clock-frequency = <24000000>;
53                 };
54         };
55
56         gpio-keys {
57                 compatible = "gpio-keys";
58
59                 pinctrl-names = "default";
60                 pinctrl-0 = <&power_key_irq &lid_irq>;
61
62                 power-key {
63                         label = "Power";
64                         gpios = <&gpx1 2 GPIO_ACTIVE_LOW>;
65                         linux,code = <KEY_POWER>;
66                         wakeup-source;
67                 };
68
69                 lid-switch {
70                         label = "Lid";
71                         gpios = <&gpx3 4 GPIO_ACTIVE_LOW>;
72                         linux,input-type = <5>; /* EV_SW */
73                         linux,code = <0>; /* SW_LID */
74                         debounce-interval = <1>;
75                         wakeup-source;
76                 };
77
78         };
79
80         memory@20000000 {
81                 device_type = "memory";
82                 reg = <0x20000000 0x80000000>;
83         };
84
85         sound {
86                 compatible = "google,snow-audio-max98091";
87
88                 samsung,model = "Peach-Pi-I2S-MAX98091";
89                 samsung,i2s-controller = <&i2s0>;
90                 samsung,audio-codec = <&max98091>;
91
92                 cpu {
93                         sound-dai = <&i2s0 0>;
94                 };
95
96                 codec {
97                         sound-dai = <&max98091>, <&hdmi>;
98                 };
99         };
100
101         usb300_vbus_reg: regulator-usb300 {
102                 compatible = "regulator-fixed";
103                 regulator-name = "P5.0V_USB3CON0";
104                 regulator-min-microvolt = <5000000>;
105                 regulator-max-microvolt = <5000000>;
106                 gpio = <&gph0 0 GPIO_ACTIVE_HIGH>;
107                 pinctrl-names = "default";
108                 pinctrl-0 = <&usb300_vbus_en>;
109                 enable-active-high;
110         };
111
112         usb301_vbus_reg: regulator-usb301 {
113                 compatible = "regulator-fixed";
114                 regulator-name = "P5.0V_USB3CON1";
115                 regulator-min-microvolt = <5000000>;
116                 regulator-max-microvolt = <5000000>;
117                 gpio = <&gph0 1 GPIO_ACTIVE_HIGH>;
118                 pinctrl-names = "default";
119                 pinctrl-0 = <&usb301_vbus_en>;
120                 enable-active-high;
121         };
122
123         vbat: fixed-regulator {
124                 compatible = "regulator-fixed";
125                 regulator-name = "vbat-supply";
126                 regulator-boot-on;
127                 regulator-always-on;
128         };
129
130         panel: panel {
131                 compatible = "auo,b133htn01";
132                 power-supply = <&tps65090_fet6>;
133                 backlight = <&backlight>;
134
135                 port {
136                         panel_in: endpoint {
137                                 remote-endpoint = <&dp_out>;
138                         };
139                 };
140         };
141
142         mmc1_pwrseq: mmc1-pwrseq {
143                 compatible = "mmc-pwrseq-simple";
144                 reset-gpios = <&gpx0 0 GPIO_ACTIVE_LOW>; /* WIFI_EN */
145                 clocks = <&max77802 MAX77802_CLK_32K_CP>;
146                 clock-names = "ext_clock";
147         };
148 };
149
150 &adc {
151         status = "okay";
152         vdd-supply = <&ldo9_reg>;
153 };
154
155 &clock_audss {
156         assigned-clocks = <&clock_audss EXYNOS_MOUT_AUDSS>;
157         assigned-clock-parents = <&clock CLK_MAU_EPLL>;
158 };
159
160 /*
161  * Peach Pi board uses SoC revision with lower maximum frequency for A7 cores
162  * (1.3 GHz instead of 1.4 GHz) than Odroid XU3/XU4 boards.  Thus we need to
163  * update A7 OPPs table accordingly.
164  */
165 &cluster_a7_opp_table {
166         /delete-node/opp-1400000000;
167 };
168
169 &cpu0 {
170         cpu-supply = <&buck2_reg>;
171 };
172
173 &cpu4 {
174         cpu-supply = <&buck6_reg>;
175 };
176
177 &dp {
178         status = "okay";
179         pinctrl-names = "default";
180         pinctrl-0 = <&dp_hpd_gpio>;
181         samsung,color-space = <0>;
182         samsung,color-depth = <1>;
183         samsung,link-rate = <0x0a>;
184         samsung,lane-count = <2>;
185         samsung,hpd-gpio = <&gpx2 6 GPIO_ACTIVE_HIGH>;
186
187         ports {
188                 port {
189                         dp_out: endpoint {
190                                 remote-endpoint = <&panel_in>;
191                         };
192                 };
193         };
194 };
195
196 &fimd {
197         status = "okay";
198         samsung,invert-vclk;
199 };
200
201 &hdmi {
202         status = "okay";
203         hpd-gpios = <&gpx3 7 GPIO_ACTIVE_HIGH>;
204         pinctrl-names = "default";
205         pinctrl-0 = <&hdmi_hpd_irq>;
206         ddc = <&i2c_2>;
207
208         hdmi-en-supply = <&tps65090_fet7>;
209         vdd-supply = <&ldo8_reg>;
210         vdd_osc-supply = <&ldo10_reg>;
211         vdd_pll-supply = <&ldo8_reg>;
212 };
213
214 &hsi2c_4 {
215         status = "okay";
216         clock-frequency = <400000>;
217
218         max77802: pmic@9 {
219                 compatible = "maxim,max77802";
220                 interrupt-parent = <&gpx3>;
221                 interrupts = <1 IRQ_TYPE_NONE>;
222                 pinctrl-names = "default";
223                 pinctrl-0 = <&max77802_irq>, <&pmic_selb>,
224                             <&pmic_dvs_1>, <&pmic_dvs_2>;
225                 wakeup-source;
226                 reg = <0x9>;
227                 #clock-cells = <1>;
228
229                 inb1-supply = <&tps65090_dcdc2>;
230                 inb2-supply = <&tps65090_dcdc1>;
231                 inb3-supply = <&tps65090_dcdc2>;
232                 inb4-supply = <&tps65090_dcdc2>;
233                 inb5-supply = <&tps65090_dcdc1>;
234                 inb6-supply = <&tps65090_dcdc2>;
235                 inb7-supply = <&tps65090_dcdc1>;
236                 inb8-supply = <&tps65090_dcdc1>;
237                 inb9-supply = <&tps65090_dcdc1>;
238                 inb10-supply = <&tps65090_dcdc1>;
239
240                 inl1-supply = <&buck5_reg>;
241                 inl2-supply = <&buck7_reg>;
242                 inl3-supply = <&buck9_reg>;
243                 inl4-supply = <&buck9_reg>;
244                 inl5-supply = <&buck9_reg>;
245                 inl6-supply = <&tps65090_dcdc2>;
246                 inl7-supply = <&buck9_reg>;
247                 inl9-supply = <&tps65090_dcdc2>;
248                 inl10-supply = <&buck7_reg>;
249
250                 regulators {
251                         buck1_reg: BUCK1 {
252                                 regulator-name = "vdd_mif";
253                                 regulator-min-microvolt = <800000>;
254                                 regulator-max-microvolt = <1300000>;
255                                 regulator-always-on;
256                                 regulator-boot-on;
257                                 regulator-ramp-delay = <12500>;
258                                 regulator-state-mem {
259                                         regulator-off-in-suspend;
260                                 };
261                         };
262
263                         buck2_reg: BUCK2 {
264                                 regulator-name = "vdd_arm";
265                                 regulator-min-microvolt = <800000>;
266                                 regulator-max-microvolt = <1500000>;
267                                 regulator-always-on;
268                                 regulator-boot-on;
269                                 regulator-ramp-delay = <12500>;
270                                 regulator-coupled-with = <&buck3_reg>;
271                                 regulator-coupled-max-spread = <300000>;
272                                 regulator-state-mem {
273                                         regulator-off-in-suspend;
274                                 };
275                         };
276
277                         buck3_reg: BUCK3 {
278                                 regulator-name = "vdd_int";
279                                 regulator-min-microvolt = <800000>;
280                                 regulator-max-microvolt = <1400000>;
281                                 regulator-always-on;
282                                 regulator-boot-on;
283                                 regulator-ramp-delay = <12500>;
284                                 regulator-coupled-with = <&buck2_reg>;
285                                 regulator-coupled-max-spread = <300000>;
286                                 regulator-state-mem {
287                                         regulator-off-in-suspend;
288                                 };
289                         };
290
291                         buck4_reg: BUCK4 {
292                                 regulator-name = "vdd_g3d";
293                                 regulator-min-microvolt = <700000>;
294                                 regulator-max-microvolt = <1400000>;
295                                 regulator-always-on;
296                                 regulator-boot-on;
297                                 regulator-ramp-delay = <12500>;
298                                 regulator-state-mem {
299                                         regulator-off-in-suspend;
300                                 };
301                         };
302
303                         buck5_reg: BUCK5 {
304                                 regulator-name = "vdd_1v2";
305                                 regulator-min-microvolt = <1200000>;
306                                 regulator-max-microvolt = <1200000>;
307                                 regulator-boot-on;
308                                 regulator-state-mem {
309                                         regulator-off-in-suspend;
310                                 };
311                         };
312
313                         buck6_reg: BUCK6 {
314                                 regulator-name = "vdd_kfc";
315                                 regulator-min-microvolt = <800000>;
316                                 regulator-max-microvolt = <1500000>;
317                                 regulator-always-on;
318                                 regulator-boot-on;
319                                 regulator-ramp-delay = <12500>;
320                                 regulator-state-mem {
321                                         regulator-off-in-suspend;
322                                 };
323                         };
324
325                         buck7_reg: BUCK7 {
326                                 regulator-name = "vdd_1v35";
327                                 regulator-min-microvolt = <1350000>;
328                                 regulator-max-microvolt = <1350000>;
329                                 regulator-always-on;
330                                 regulator-boot-on;
331                                 regulator-state-mem {
332                                         regulator-on-in-suspend;
333                                 };
334                         };
335
336                         buck8_reg: BUCK8 {
337                                 regulator-name = "vdd_emmc";
338                                 regulator-min-microvolt = <2850000>;
339                                 regulator-max-microvolt = <2850000>;
340                                 regulator-always-on;
341                                 regulator-boot-on;
342                                 regulator-state-mem {
343                                         regulator-off-in-suspend;
344                                 };
345                         };
346
347                         buck9_reg: BUCK9 {
348                                 regulator-name = "vdd_2v";
349                                 regulator-min-microvolt = <2000000>;
350                                 regulator-max-microvolt = <2000000>;
351                                 regulator-always-on;
352                                 regulator-boot-on;
353                                 regulator-state-mem {
354                                         regulator-on-in-suspend;
355                                 };
356                         };
357
358                         buck10_reg: BUCK10 {
359                                 regulator-name = "vdd_1v8";
360                                 regulator-min-microvolt = <1800000>;
361                                 regulator-max-microvolt = <1800000>;
362                                 regulator-always-on;
363                                 regulator-boot-on;
364                                 regulator-state-mem {
365                                         regulator-on-in-suspend;
366                                 };
367                         };
368
369                         ldo1_reg: LDO1 {
370                                 regulator-name = "vdd_1v0";
371                                 regulator-min-microvolt = <1000000>;
372                                 regulator-max-microvolt = <1000000>;
373                                 regulator-always-on;
374                                 regulator-state-mem {
375                                         regulator-on-in-suspend;
376                                         regulator-mode = <MAX77802_OPMODE_LP>;
377                                 };
378                         };
379
380                         ldo2_reg: LDO2 {
381                                 regulator-name = "vdd_1v2_2";
382                                 regulator-min-microvolt = <1200000>;
383                                 regulator-max-microvolt = <1200000>;
384                         };
385
386                         ldo3_reg: LDO3 {
387                                 regulator-name = "vdd_1v8_3";
388                                 regulator-min-microvolt = <1800000>;
389                                 regulator-max-microvolt = <1800000>;
390                                 regulator-always-on;
391                                 regulator-state-mem {
392                                         regulator-on-in-suspend;
393                                         regulator-mode = <MAX77802_OPMODE_LP>;
394                                 };
395                         };
396
397                         vqmmc_sdcard: ldo4_reg: LDO4 {
398                                 regulator-name = "vdd_sd";
399                                 regulator-min-microvolt = <1800000>;
400                                 regulator-max-microvolt = <2800000>;
401                                 regulator-always-on;
402                                 regulator-state-mem {
403                                         regulator-off-in-suspend;
404                                 };
405                         };
406
407                         ldo5_reg: LDO5 {
408                                 regulator-name = "vdd_1v8_5";
409                                 regulator-min-microvolt = <1800000>;
410                                 regulator-max-microvolt = <1800000>;
411                                 regulator-always-on;
412                                 regulator-state-mem {
413                                         regulator-off-in-suspend;
414                                 };
415                         };
416
417                         ldo6_reg: LDO6 {
418                                 regulator-name = "vdd_1v8_6";
419                                 regulator-min-microvolt = <1800000>;
420                                 regulator-max-microvolt = <1800000>;
421                                 regulator-always-on;
422                                 regulator-state-mem {
423                                         regulator-off-in-suspend;
424                                 };
425                         };
426
427                         ldo7_reg: LDO7 {
428                                 regulator-name = "vdd_1v8_7";
429                                 regulator-min-microvolt = <1800000>;
430                                 regulator-max-microvolt = <1800000>;
431                         };
432
433                         ldo8_reg: LDO8 {
434                                 regulator-name = "vdd_ldo8";
435                                 regulator-min-microvolt = <1000000>;
436                                 regulator-max-microvolt = <1000000>;
437                                 regulator-always-on;
438                                 regulator-state-mem {
439                                         regulator-off-in-suspend;
440                                 };
441                         };
442
443                         ldo9_reg: LDO9 {
444                                 regulator-name = "vdd_ldo9";
445                                 regulator-min-microvolt = <1800000>;
446                                 regulator-max-microvolt = <1800000>;
447                                 regulator-state-mem {
448                                         regulator-on-in-suspend;
449                                         regulator-mode = <MAX77802_OPMODE_LP>;
450                                 };
451                         };
452
453                         ldo10_reg: LDO10 {
454                                 regulator-name = "vdd_ldo10";
455                                 regulator-min-microvolt = <1800000>;
456                                 regulator-max-microvolt = <1800000>;
457                                 regulator-always-on;
458                                 regulator-state-mem {
459                                         regulator-off-in-suspend;
460                                 };
461                         };
462
463                         ldo11_reg: LDO11 {
464                                 regulator-name = "vdd_ldo11";
465                                 regulator-min-microvolt = <1800000>;
466                                 regulator-max-microvolt = <1800000>;
467                                 regulator-always-on;
468                                 regulator-state-mem {
469                                         regulator-on-in-suspend;
470                                         regulator-mode = <MAX77802_OPMODE_LP>;
471                                 };
472                         };
473
474                         ldo12_reg: LDO12 {
475                                 regulator-name = "vdd_ldo12";
476                                 regulator-min-microvolt = <3000000>;
477                                 regulator-max-microvolt = <3000000>;
478                                 regulator-always-on;
479                                 regulator-state-mem {
480                                         regulator-off-in-suspend;
481                                 };
482                         };
483
484                         ldo13_reg: LDO13 {
485                                 regulator-name = "vdd_ldo13";
486                                 regulator-min-microvolt = <1800000>;
487                                 regulator-max-microvolt = <1800000>;
488                                 regulator-always-on;
489                                 regulator-state-mem {
490                                         regulator-on-in-suspend;
491                                         regulator-mode = <MAX77802_OPMODE_LP>;
492                                 };
493                         };
494
495                         ldo14_reg: LDO14 {
496                                 regulator-name = "vdd_ldo14";
497                                 regulator-min-microvolt = <1800000>;
498                                 regulator-max-microvolt = <1800000>;
499                                 regulator-always-on;
500                                 regulator-state-mem {
501                                         regulator-off-in-suspend;
502                                 };
503                         };
504
505                         ldo15_reg: LDO15 {
506                                 regulator-name = "vdd_ldo15";
507                                 regulator-min-microvolt = <1000000>;
508                                 regulator-max-microvolt = <1000000>;
509                                 regulator-always-on;
510                                 regulator-state-mem {
511                                         regulator-off-in-suspend;
512                                 };
513                         };
514
515                         ldo17_reg: LDO17 {
516                                 regulator-name = "vdd_g3ds";
517                                 regulator-min-microvolt = <900000>;
518                                 regulator-max-microvolt = <1400000>;
519                                 regulator-always-on;
520                                 regulator-state-mem {
521                                         regulator-off-in-suspend;
522                                 };
523                         };
524
525                         ldo18_reg: LDO18 {
526                                 regulator-name = "ldo_18";
527                                 regulator-min-microvolt = <1800000>;
528                                 regulator-max-microvolt = <1800000>;
529                         };
530
531                         ldo19_reg: LDO19 {
532                                 regulator-name = "ldo_19";
533                                 regulator-min-microvolt = <1800000>;
534                                 regulator-max-microvolt = <1800000>;
535                         };
536
537                         ldo20_reg: LDO20 {
538                                 regulator-name = "ldo_20";
539                                 regulator-min-microvolt = <1800000>;
540                                 regulator-max-microvolt = <1800000>;
541                                 regulator-always-on;
542                         };
543
544                         ldo21_reg: LDO21 {
545                                 regulator-name = "ldo_21";
546                                 regulator-min-microvolt = <2800000>;
547                                 regulator-max-microvolt = <2800000>;
548                         };
549
550                         ldo23_reg: LDO23 {
551                                 regulator-name = "ldo_23";
552                                 regulator-min-microvolt = <3300000>;
553                                 regulator-max-microvolt = <3300000>;
554                         };
555                         ldo24_reg: LDO24 {
556                                 regulator-name = "ldo_24";
557                                 regulator-min-microvolt = <2800000>;
558                                 regulator-max-microvolt = <2800000>;
559                         };
560
561                         ldo25_reg: LDO25 {
562                                 regulator-name = "ldo_25";
563                                 regulator-min-microvolt = <3300000>;
564                                 regulator-max-microvolt = <3300000>;
565                         };
566
567                         ldo26_reg: LDO26 {
568                                 regulator-name = "ldo_26";
569                                 regulator-min-microvolt = <1200000>;
570                                 regulator-max-microvolt = <1200000>;
571                         };
572
573                         ldo27_reg: LDO27 {
574                                 regulator-name = "ldo_27";
575                                 regulator-min-microvolt = <1200000>;
576                                 regulator-max-microvolt = <1200000>;
577                         };
578
579                         ldo28_reg: LDO28 {
580                                 regulator-name = "ldo_28";
581                                 regulator-min-microvolt = <1800000>;
582                                 regulator-max-microvolt = <1800000>;
583                         };
584
585                         ldo29_reg: LDO29 {
586                                 regulator-name = "ldo_29";
587                                 regulator-min-microvolt = <1800000>;
588                                 regulator-max-microvolt = <1800000>;
589                         };
590
591                         ldo30_reg: LDO30 {
592                                 regulator-name = "vdd_mifs";
593                                 regulator-min-microvolt = <1000000>;
594                                 regulator-max-microvolt = <1000000>;
595                                 regulator-always-on;
596                                 regulator-state-mem {
597                                         regulator-off-in-suspend;
598                                 };
599                         };
600
601                         ldo32_reg: LDO32 {
602                                 regulator-name = "ldo_32";
603                                 regulator-min-microvolt = <3000000>;
604                                 regulator-max-microvolt = <3000000>;
605                         };
606
607                         ldo33_reg: LDO33 {
608                                 regulator-name = "ldo_33";
609                                 regulator-min-microvolt = <2800000>;
610                                 regulator-max-microvolt = <2800000>;
611                         };
612
613                         ldo34_reg: LDO34 {
614                                 regulator-name = "ldo_34";
615                                 regulator-min-microvolt = <3000000>;
616                                 regulator-max-microvolt = <3000000>;
617                         };
618
619                         ldo35_reg: LDO35 {
620                                 regulator-name = "ldo_35";
621                                 regulator-min-microvolt = <1200000>;
622                                 regulator-max-microvolt = <1200000>;
623                         };
624                 };
625         };
626 };
627
628 &hsi2c_7 {
629         status = "okay";
630         clock-frequency = <400000>;
631
632         max98091: codec@10 {
633                 compatible = "maxim,max98091";
634                 reg = <0x10>;
635                 interrupts = <2 IRQ_TYPE_NONE>;
636                 interrupt-parent = <&gpx0>;
637                 pinctrl-names = "default";
638                 pinctrl-0 = <&max98091_irq>;
639                 clocks = <&pmu_system_controller 0>;
640                 clock-names = "mclk";
641                 #sound-dai-cells = <0>;
642         };
643
644         light-sensor@44 {
645                 compatible = "isil,isl29018";
646                 reg = <0x44>;
647                 vcc-supply = <&tps65090_fet5>;
648         };
649 };
650
651 &hsi2c_8 {
652         status = "okay";
653         clock-frequency = <333000>;
654         /* Atmel mXT540S */
655         trackpad@4b {
656                 compatible = "atmel,maxtouch";
657                 reg = <0x4b>;
658                 interrupt-parent = <&gpx1>;
659                 interrupts = <1 IRQ_TYPE_EDGE_FALLING>;
660                 wakeup-source;
661                 pinctrl-names = "default";
662                 pinctrl-0 = <&trackpad_irq>;
663                 linux,gpio-keymap = <KEY_RESERVED
664                                      KEY_RESERVED
665                                      KEY_RESERVED       /* GPIO 0 */
666                                      KEY_RESERVED       /* GPIO 1 */
667                                      BTN_LEFT           /* GPIO 2 */
668                                      KEY_RESERVED>;     /* GPIO 3 */
669         };
670 };
671
672 &hsi2c_9 {
673         status = "okay";
674         clock-frequency = <400000>;
675
676         tpm@20 {
677                 compatible = "infineon,slb9645tt";
678                 reg = <0x20>;
679
680                 /* Unused irq; but still need to configure the pins */
681                 pinctrl-names = "default";
682                 pinctrl-0 = <&tpm_irq>;
683         };
684 };
685
686 &i2c_2 {
687         status = "okay";
688         samsung,i2c-sda-delay = <100>;
689         samsung,i2c-max-bus-freq = <66000>;
690         samsung,i2c-slave-addr = <0x50>;
691 };
692
693 &i2s0 {
694         assigned-clocks = <&i2s0 CLK_I2S_RCLK_SRC>;
695         assigned-clock-parents = <&clock_audss EXYNOS_I2S_BUS>;
696         status = "okay";
697 };
698
699 &mixer {
700         status = "okay";
701 };
702
703 /* eMMC flash */
704 &mmc_0 {
705         status = "okay";
706         mmc-hs200-1_8v;
707         mmc-hs400-1_8v;
708         cap-mmc-highspeed;
709         non-removable;
710         clock-frequency = <800000000>;
711         samsung,dw-mshc-ciu-div = <3>;
712         samsung,dw-mshc-sdr-timing = <0 4>;
713         samsung,dw-mshc-ddr-timing = <0 2>;
714         samsung,dw-mshc-hs400-timing = <0 2>;
715         samsung,read-strobe-delay = <90>;
716         pinctrl-names = "default";
717         pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus1 &sd0_bus4 &sd0_bus8 &sd0_rclk>;
718         bus-width = <8>;
719 };
720
721 /* WiFi SDIO module */
722 &mmc_1 {
723         status = "okay";
724         non-removable;
725         cap-sdio-irq;
726         keep-power-in-suspend;
727         clock-frequency = <400000000>;
728         samsung,dw-mshc-ciu-div = <1>;
729         samsung,dw-mshc-sdr-timing = <0 1>;
730         samsung,dw-mshc-ddr-timing = <0 2>;
731         pinctrl-names = "default";
732         pinctrl-0 = <&sd1_clk>, <&sd1_cmd>, <&sd1_int>, <&sd1_bus1>,
733                     <&sd1_bus4>, <&sd1_bus8>, <&wifi_en>;
734         bus-width = <4>;
735         cap-sd-highspeed;
736         mmc-pwrseq = <&mmc1_pwrseq>;
737         vqmmc-supply = <&buck10_reg>;
738 };
739
740 /* uSD card */
741 &mmc_2 {
742         status = "okay";
743         cap-sd-highspeed;
744         card-detect-delay = <200>;
745         clock-frequency = <400000000>;
746         samsung,dw-mshc-ciu-div = <3>;
747         samsung,dw-mshc-sdr-timing = <2 3>;
748         samsung,dw-mshc-ddr-timing = <1 2>;
749         pinctrl-names = "default";
750         pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus1 &sd2_bus4>;
751         bus-width = <4>;
752 };
753
754
755 &pinctrl_0 {
756         pinctrl-names = "default";
757         pinctrl-0 = <&mask_tpm_reset>;
758
759         wifi_en: wifi-en-pins {
760                 samsung,pins = "gpx0-0";
761                 samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
762                 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
763                 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
764         };
765
766         max98091_irq: max98091-irq-pins {
767                 samsung,pins = "gpx0-2";
768                 samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
769                 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
770                 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
771         };
772
773         /* We need GPX0_6 to be low at sleep time; just keep it low always */
774         mask_tpm_reset: mask-tpm-reset-pins {
775                 samsung,pins = "gpx0-6";
776                 samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
777                 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
778                 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
779                 samsung,pin-val = <0>;
780         };
781
782         tpm_irq: tpm-irq-pins {
783                 samsung,pins = "gpx1-0";
784                 samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
785                 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
786                 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
787         };
788
789         trackpad_irq: trackpad-irq-pins {
790                 samsung,pins = "gpx1-1";
791                 samsung,pin-function = <EXYNOS_PIN_FUNC_F>;
792                 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
793                 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
794         };
795
796         power_key_irq: power-key-irq-pins {
797                 samsung,pins = "gpx1-2";
798                 samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
799                 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
800                 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
801         };
802
803         ec_irq: ec-irq-pins {
804                 samsung,pins = "gpx1-5";
805                 samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
806                 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
807                 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
808         };
809
810         tps65090_irq: tps65090-irq-pins {
811                 samsung,pins = "gpx2-5";
812                 samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
813                 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
814                 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
815         };
816
817         dp_hpd_gpio: dp-hpd-gpio-pins {
818                 samsung,pins = "gpx2-6";
819                 samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
820                 samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
821                 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
822         };
823
824         max77802_irq: max77802-irq-pins {
825                 samsung,pins = "gpx3-1";
826                 samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
827                 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
828                 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
829         };
830
831         lid_irq: lid-irq-pins {
832                 samsung,pins = "gpx3-4";
833                 samsung,pin-function = <EXYNOS_PIN_FUNC_F>;
834                 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
835                 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
836         };
837
838         hdmi_hpd_irq: hdmi-hpd-irq-pins {
839                 samsung,pins = "gpx3-7";
840                 samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
841                 samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>;
842                 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
843         };
844
845         pmic_dvs_1: pmic-dvs-1-pins {
846                 samsung,pins = "gpy7-6";
847                 samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
848                 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
849                 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
850         };
851 };
852
853 /* pinctrl_1 */
854 /* Adjust WiFi drive strengths lower for EMI */
855 &sd1_bus1 {
856         samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV3>;
857 };
858
859 &sd1_bus4 {
860         samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV3>;
861 };
862
863 &sd1_bus8 {
864         samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV3>;
865 };
866
867 &sd1_clk {
868         samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV3>;
869 };
870
871 &sd1_cmd {
872         samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV3>;
873 };
874
875 &pinctrl_2 {
876         pmic_dvs_2: pmic-dvs-2-pins {
877                 samsung,pins = "gpj4-2", "gpj4-3";
878                 samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
879                 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
880                 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
881         };
882 };
883
884 /* pinctrl_3*/
885 /* Drive SPI lines at x2 for better integrity */
886 &spi2_bus {
887         samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV3>;
888 };
889
890 &pinctrl_3 {
891         /* Drive SPI chip select at x2 for better integrity */
892         ec_spi_cs: ec-spi-cs-pins {
893                 samsung,pins = "gpb1-2";
894                 samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
895                 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
896                 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV3>;
897         };
898
899         usb300_vbus_en: usb300-vbus-en-pins {
900                 samsung,pins = "gph0-0";
901                 samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
902                 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
903                 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
904         };
905
906         usb301_vbus_en: usb301-vbus-en-pins {
907                 samsung,pins = "gph0-1";
908                 samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
909                 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
910                 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
911         };
912
913         pmic_selb: pmic-selb-pins {
914                 samsung,pins = "gph0-2", "gph0-3", "gph0-4", "gph0-5",
915                                "gph0-6";
916                 samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
917                 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
918                 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
919         };
920 };
921
922 &pmu_system_controller {
923         assigned-clocks = <&pmu_system_controller 0>;
924         assigned-clock-parents = <&clock CLK_FIN_PLL>;
925 };
926
927 &rtc {
928         status = "okay";
929         clocks = <&clock CLK_RTC>, <&max77802 MAX77802_CLK_32K_AP>;
930         clock-names = "rtc", "rtc_src";
931 };
932
933 &spi_2 {
934         status = "okay";
935         num-cs = <1>;
936         samsung,spi-src-clk = <0>;
937         cs-gpios = <&gpb1 2 GPIO_ACTIVE_HIGH>;
938
939         cros_ec: cros-ec@0 {
940                 compatible = "google,cros-ec-spi";
941                 interrupt-parent = <&gpx1>;
942                 interrupts = <5 IRQ_TYPE_NONE>;
943                 pinctrl-names = "default";
944                 pinctrl-0 = <&ec_spi_cs &ec_irq>;
945                 reg = <0>;
946                 spi-max-frequency = <3125000>;
947                 google,has-vbc-nvram;
948
949                 controller-data {
950                         samsung,spi-feedback-delay = <1>;
951                 };
952
953                 i2c_tunnel: i2c-tunnel {
954                         compatible = "google,cros-ec-i2c-tunnel";
955                         #address-cells = <1>;
956                         #size-cells = <0>;
957                         google,remote-bus = <0>;
958
959                         battery: sbs-battery@b {
960                                 compatible = "sbs,sbs-battery";
961                                 reg = <0xb>;
962                                 sbs,poll-retry-count = <1>;
963                                 sbs,i2c-retry-count = <2>;
964                         };
965
966                         power-regulator@48 {
967                                 compatible = "ti,tps65090";
968                                 reg = <0x48>;
969
970                                 /*
971                                  * Config irq to disable internal pulls
972                                  * even though we run in polling mode.
973                                  */
974                                 pinctrl-names = "default";
975                                 pinctrl-0 = <&tps65090_irq>;
976
977                                 vsys1-supply = <&vbat>;
978                                 vsys2-supply = <&vbat>;
979                                 vsys3-supply = <&vbat>;
980                                 infet1-supply = <&vbat>;
981                                 infet2-supply = <&tps65090_dcdc1>;
982                                 infet3-supply = <&tps65090_dcdc2>;
983                                 infet4-supply = <&tps65090_dcdc2>;
984                                 infet5-supply = <&tps65090_dcdc2>;
985                                 infet6-supply = <&tps65090_dcdc2>;
986                                 infet7-supply = <&tps65090_dcdc1>;
987                                 vsys-l1-supply = <&vbat>;
988                                 vsys-l2-supply = <&vbat>;
989
990                                 regulators {
991                                         tps65090_dcdc1: dcdc1 {
992                                                 ti,enable-ext-control;
993                                         };
994                                         tps65090_dcdc2: dcdc2 {
995                                                 ti,enable-ext-control;
996                                         };
997                                         tps65090_dcdc3: dcdc3 {
998                                                 ti,enable-ext-control;
999                                         };
1000                                         tps65090_fet1: fet1 {
1001                                                 regulator-name = "vcd_led";
1002                                         };
1003                                         tps65090_fet2: fet2 {
1004                                                 regulator-name = "video_mid";
1005                                                 regulator-always-on;
1006                                         };
1007                                         tps65090_fet3: fet3 {
1008                                                 regulator-name = "wwan_r";
1009                                                 regulator-always-on;
1010                                         };
1011                                         tps65090_fet4: fet4 {
1012                                                 regulator-name = "sdcard";
1013                                                 regulator-always-on;
1014                                         };
1015                                         tps65090_fet5: fet5 {
1016                                                 regulator-name = "camout";
1017                                                 regulator-always-on;
1018                                         };
1019                                         tps65090_fet6: fet6 {
1020                                                 regulator-name = "lcd_vdd";
1021                                         };
1022                                         tps65090_fet7: fet7 {
1023                                                 regulator-name = "video_mid_1a";
1024                                                 regulator-always-on;
1025                                         };
1026                                         tps65090_ldo1: ldo1 {
1027                                         };
1028                                         tps65090_ldo2: ldo2 {
1029                                         };
1030                                 };
1031
1032                                 charger {
1033                                         compatible = "ti,tps65090-charger";
1034                                 };
1035                         };
1036                 };
1037         };
1038 };
1039
1040 &serial_3 {
1041         status = "okay";
1042 };
1043
1044 &timer {
1045         arm,cpu-registers-not-fw-configured;
1046 };
1047
1048 &tmu_cpu0 {
1049         vtmu-supply = <&ldo10_reg>;
1050 };
1051
1052 &tmu_cpu1 {
1053         vtmu-supply = <&ldo10_reg>;
1054 };
1055
1056 &tmu_cpu2 {
1057         vtmu-supply = <&ldo10_reg>;
1058 };
1059
1060 &tmu_cpu3 {
1061         vtmu-supply = <&ldo10_reg>;
1062 };
1063
1064 &tmu_gpu {
1065         vtmu-supply = <&ldo10_reg>;
1066 };
1067
1068 &usbdrd3_0 {
1069         vdd10-supply = <&ldo15_reg>;
1070         vdd33-supply = <&ldo12_reg>;
1071 };
1072
1073 &usbdrd3_1 {
1074         vdd10-supply = <&ldo15_reg>;
1075         vdd33-supply = <&ldo12_reg>;
1076 };
1077
1078 &usbdrd_dwc3_0 {
1079         dr_mode = "host";
1080 };
1081
1082 &usbdrd_dwc3_1 {
1083         dr_mode = "host";
1084 };
1085
1086 &usbdrd_phy0 {
1087         vbus-supply = <&usb300_vbus_reg>;
1088 };
1089
1090 &usbdrd_phy1 {
1091         vbus-supply = <&usb301_vbus_reg>;
1092 };
1093
1094 /*
1095  * Use longest HW watchdog in SoC (32 seconds) since the hardware
1096  * watchdog provides no debugging information (compared to soft/hard
1097  * lockup detectors) and so should be last resort.
1098  */
1099 &watchdog {
1100         timeout-sec = <32>;
1101 };
1102
1103 #include "cros-ec-keyboard.dtsi"
1104 #include "cros-adc-thermistors.dtsi"