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