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