1// SPDX-License-Identifier: GPL-2.0
2/*
3 * Google Peach Pit Rev 6+ 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 "exynos5420.dtsi"
16#include "exynos5420-cpus.dtsi"
17
18/ {
19	model = "Google Peach Pit Rev 6+";
20
21	compatible = "google,pit-rev16",
22		"google,pit-rev15", "google,pit-rev14",
23		"google,pit-rev13", "google,pit-rev12",
24		"google,pit-rev11", "google,pit-rev10",
25		"google,pit-rev9", "google,pit-rev8",
26		"google,pit-rev7", "google,pit-rev6",
27		"google,pit", "google,peach","samsung,exynos5420",
28		"samsung,exynos5";
29
30	aliases {
31		/* Assign 20 so we don't get confused w/ builtin ones */
32		i2c20 = &i2c_tunnel;
33	};
34
35	backlight: backlight {
36		compatible = "pwm-backlight";
37		pwms = <&pwm 0 1000000 0>;
38		brightness-levels = <0 100 500 1000 1500 2000 2500 2800>;
39		default-brightness-level = <7>;
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 {
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	memory@20000000 {
80		device_type = "memory";
81		reg = <0x20000000 0x80000000>;
82	};
83
84	sound {
85		compatible = "google,snow-audio-max98090";
86
87		samsung,model = "Peach-Pit-I2S-MAX98090";
88		samsung,i2s-controller = <&i2s0>;
89		samsung,audio-codec = <&max98090>;
90
91		cpu {
92			sound-dai = <&i2s0 0>;
93		};
94
95		codec {
96			sound-dai = <&max98090>, <&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,b116xw03";
131		power-supply = <&tps65090_fet6>;
132		backlight = <&backlight>;
133
134		port {
135			panel_in: endpoint {
136				remote-endpoint = <&bridge_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 = <0x06>;
174	samsung,lane-count = <2>;
175	hpd-gpios = <&gpx2 6 GPIO_ACTIVE_HIGH>;
176
177	ports {
178		port {
179			dp_out: endpoint {
180				remote-endpoint = <&bridge_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: 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	max98090: audio-codec@10 {
619		compatible = "maxim,max98090";
620		reg = <0x10>;
621		interrupts = <2 IRQ_TYPE_NONE>;
622		interrupt-parent = <&gpx0>;
623		pinctrl-names = "default";
624		pinctrl-0 = <&max98090_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	ps8625: lvds-bridge@48 {
637		compatible = "parade,ps8625";
638		reg = <0x48>;
639		sleep-gpios = <&gpx3 5 GPIO_ACTIVE_HIGH>;
640		reset-gpios = <&gpy7 7 GPIO_ACTIVE_HIGH>;
641		lane-count = <2>;
642		use-external-pwm;
643
644		ports {
645			#address-cells = <1>;
646			#size-cells = <0>;
647
648			port@0 {
649				reg = <0>;
650
651				bridge_out: endpoint {
652					remote-endpoint = <&panel_in>;
653				};
654			};
655
656			port@1 {
657				reg = <1>;
658
659				bridge_in: endpoint {
660					remote-endpoint = <&dp_out>;
661				};
662			};
663		};
664
665	};
666};
667
668&hsi2c_8 {
669	status = "okay";
670	clock-frequency = <333000>;
671
672	/* Atmel mXT336S */
673	trackpad@4b {
674		compatible = "atmel,maxtouch";
675		reg = <0x4b>;
676		interrupt-parent = <&gpx1>;
677		interrupts = <1 IRQ_TYPE_EDGE_FALLING>;
678		wakeup-source;
679		pinctrl-names = "default";
680		pinctrl-0 = <&trackpad_irq>;
681		linux,gpio-keymap = <KEY_RESERVED
682				     KEY_RESERVED
683				     KEY_RESERVED	/* GPIO0 */
684				     KEY_RESERVED	/* GPIO1 */
685				     KEY_RESERVED	/* GPIO2 */
686				     BTN_LEFT>;		/* GPIO3 */
687	};
688};
689
690&hsi2c_9 {
691	status = "okay";
692	clock-frequency = <400000>;
693
694	tpm@20 {
695		compatible = "infineon,slb9645tt";
696		reg = <0x20>;
697
698		/* Unused irq; but still need to configure the pins */
699		pinctrl-names = "default";
700		pinctrl-0 = <&tpm_irq>;
701	};
702};
703
704&i2c_2 {
705	status = "okay";
706	samsung,i2c-sda-delay = <100>;
707	samsung,i2c-max-bus-freq = <66000>;
708	samsung,i2c-slave-addr = <0x50>;
709};
710
711&i2s0 {
712	assigned-clocks = <&i2s0 CLK_I2S_RCLK_SRC>;
713	assigned-clock-parents = <&clock_audss EXYNOS_I2S_BUS>;
714	status = "okay";
715};
716
717&mixer {
718	status = "okay";
719};
720
721/* eMMC flash */
722&mmc_0 {
723	status = "okay";
724	mmc-hs200-1_8v;
725	cap-mmc-highspeed;
726	non-removable;
727	clock-frequency = <400000000>;
728	samsung,dw-mshc-ciu-div = <3>;
729	samsung,dw-mshc-sdr-timing = <0 4>;
730	samsung,dw-mshc-ddr-timing = <0 2>;
731	samsung,dw-mshc-hs400-timing = <0 2>;
732	samsung,read-strobe-delay = <90>;
733	pinctrl-names = "default";
734	pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus1 &sd0_bus4 &sd0_bus8 &sd0_rclk>;
735	bus-width = <8>;
736};
737
738/* WiFi SDIO module */
739&mmc_1 {
740	status = "okay";
741	non-removable;
742	cap-sdio-irq;
743	keep-power-in-suspend;
744	clock-frequency = <400000000>;
745	samsung,dw-mshc-ciu-div = <1>;
746	samsung,dw-mshc-sdr-timing = <0 1>;
747	samsung,dw-mshc-ddr-timing = <0 2>;
748	pinctrl-names = "default";
749	pinctrl-0 = <&sd1_clk>, <&sd1_cmd>, <&sd1_int>, <&sd1_bus1>,
750		    <&sd1_bus4>, <&sd1_bus8>, <&wifi_en>;
751	bus-width = <4>;
752	cap-sd-highspeed;
753	mmc-pwrseq = <&mmc1_pwrseq>;
754	vqmmc-supply = <&buck10_reg>;
755};
756
757/* uSD card */
758&mmc_2 {
759	status = "okay";
760	cap-sd-highspeed;
761	card-detect-delay = <200>;
762	clock-frequency = <400000000>;
763	samsung,dw-mshc-ciu-div = <3>;
764	samsung,dw-mshc-sdr-timing = <2 3>;
765	samsung,dw-mshc-ddr-timing = <1 2>;
766	pinctrl-names = "default";
767	pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus1 &sd2_bus4>;
768	bus-width = <4>;
769};
770
771
772&pinctrl_0 {
773	pinctrl-names = "default";
774	pinctrl-0 = <&mask_tpm_reset>;
775
776	wifi_en: wifi-en {
777		samsung,pins = "gpx0-0";
778		samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
779		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
780		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
781	};
782
783	max98090_irq: max98090-irq {
784		samsung,pins = "gpx0-2";
785		samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
786		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
787		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
788	};
789
790	/* We need GPX0_6 to be low at sleep time; just keep it low always */
791	mask_tpm_reset: mask-tpm-reset {
792		samsung,pins = "gpx0-6";
793		samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
794		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
795		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
796		samsung,pin-val = <0>;
797	};
798
799	tpm_irq: tpm-irq {
800		samsung,pins = "gpx1-0";
801		samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
802		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
803		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
804	};
805
806	trackpad_irq: trackpad-irq {
807		samsung,pins = "gpx1-1";
808		samsung,pin-function = <EXYNOS_PIN_FUNC_F>;
809		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
810		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
811	};
812
813	power_key_irq: power-key-irq {
814		samsung,pins = "gpx1-2";
815		samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
816		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
817		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
818	};
819
820	ec_irq: ec-irq {
821		samsung,pins = "gpx1-5";
822		samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
823		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
824		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
825	};
826
827	tps65090_irq: tps65090-irq {
828		samsung,pins = "gpx2-5";
829		samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
830		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
831		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
832	};
833
834	dp_hpd_gpio: dp_hpd_gpio {
835		samsung,pins = "gpx2-6";
836		samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
837		samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
838		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
839	};
840
841	max77802_irq: max77802-irq {
842		samsung,pins = "gpx3-1";
843		samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
844		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
845		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
846	};
847
848	lid_irq: lid-irq {
849		samsung,pins = "gpx3-4";
850		samsung,pin-function = <EXYNOS_PIN_FUNC_F>;
851		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
852		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
853	};
854
855	hdmi_hpd_irq: hdmi-hpd-irq {
856		samsung,pins = "gpx3-7";
857		samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
858		samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>;
859		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
860	};
861
862	pmic_dvs_1: pmic-dvs-1 {
863		samsung,pins = "gpy7-6";
864		samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
865		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
866		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
867	};
868};
869
870&pinctrl_1 {
871	/* Adjust WiFi drive strengths lower for EMI */
872	sd1_clk: sd1-clk {
873		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV3>;
874	};
875
876	sd1_cmd: sd1-cmd {
877		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV3>;
878	};
879
880	sd1_bus1: sd1-bus-width1 {
881		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV3>;
882	};
883
884	sd1_bus4: sd1-bus-width4 {
885		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV3>;
886	};
887
888	sd1_bus8: sd1-bus-width8 {
889		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV3>;
890	};
891};
892
893&pinctrl_2 {
894	pmic_dvs_2: pmic-dvs-2 {
895		samsung,pins = "gpj4-2";
896		samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
897		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
898		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
899	};
900
901	pmic_dvs_3: pmic-dvs-3 {
902		samsung,pins = "gpj4-3";
903		samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
904		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
905		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
906	};
907};
908
909&pinctrl_3 {
910	/* Drive SPI lines at x2 for better integrity */
911	spi2-bus {
912		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV3>;
913	};
914
915	/* Drive SPI chip select at x2 for better integrity */
916	ec_spi_cs: ec-spi-cs {
917		samsung,pins = "gpb1-2";
918		samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
919		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
920		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV3>;
921	};
922
923	usb300_vbus_en: usb300-vbus-en {
924		samsung,pins = "gph0-0";
925		samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
926		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
927		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
928	};
929
930	usb301_vbus_en: usb301-vbus-en {
931		samsung,pins = "gph0-1";
932		samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
933		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
934		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
935	};
936
937	pmic_selb: pmic-selb {
938		samsung,pins = "gph0-2", "gph0-3", "gph0-4", "gph0-5",
939			       "gph0-6";
940		samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
941		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
942		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
943	};
944};
945
946&pmu_system_controller {
947	assigned-clocks = <&pmu_system_controller 0>;
948	assigned-clock-parents = <&clock CLK_FIN_PLL>;
949};
950
951&rtc {
952	status = "okay";
953	clocks = <&clock CLK_RTC>, <&max77802 MAX77802_CLK_32K_AP>;
954	clock-names = "rtc", "rtc_src";
955};
956
957&spi_2 {
958	status = "okay";
959	num-cs = <1>;
960	samsung,spi-src-clk = <0>;
961	cs-gpios = <&gpb1 2 GPIO_ACTIVE_HIGH>;
962
963	cros_ec: cros-ec@0 {
964		compatible = "google,cros-ec-spi";
965		interrupt-parent = <&gpx1>;
966		interrupts = <5 IRQ_TYPE_NONE>;
967		pinctrl-names = "default";
968		pinctrl-0 = <&ec_spi_cs &ec_irq>;
969		reg = <0>;
970		spi-max-frequency = <3125000>;
971		google,has-vbc-nvram;
972
973		controller-data {
974			samsung,spi-feedback-delay = <1>;
975		};
976
977		i2c_tunnel: i2c-tunnel {
978			compatible = "google,cros-ec-i2c-tunnel";
979			#address-cells = <1>;
980			#size-cells = <0>;
981			google,remote-bus = <0>;
982
983			battery: sbs-battery@b {
984				compatible = "sbs,sbs-battery";
985				reg = <0xb>;
986				sbs,poll-retry-count = <1>;
987				sbs,i2c-retry-count = <2>;
988			};
989
990			power-regulator@48 {
991				compatible = "ti,tps65090";
992				reg = <0x48>;
993
994				/*
995				 * Config irq to disable internal pulls
996				 * even though we run in polling mode.
997				 */
998				pinctrl-names = "default";
999				pinctrl-0 = <&tps65090_irq>;
1000
1001				vsys1-supply = <&vbat>;
1002				vsys2-supply = <&vbat>;
1003				vsys3-supply = <&vbat>;
1004				infet1-supply = <&vbat>;
1005				infet2-supply = <&tps65090_dcdc1>;
1006				infet3-supply = <&tps65090_dcdc2>;
1007				infet4-supply = <&tps65090_dcdc2>;
1008				infet5-supply = <&tps65090_dcdc2>;
1009				infet6-supply = <&tps65090_dcdc2>;
1010				infet7-supply = <&tps65090_dcdc1>;
1011				vsys-l1-supply = <&vbat>;
1012				vsys-l2-supply = <&vbat>;
1013
1014				regulators {
1015					tps65090_dcdc1: dcdc1 {
1016						ti,enable-ext-control;
1017					};
1018					tps65090_dcdc2: dcdc2 {
1019						ti,enable-ext-control;
1020					};
1021					tps65090_dcdc3: dcdc3 {
1022						ti,enable-ext-control;
1023					};
1024					tps65090_fet1: fet1 {
1025						regulator-name = "vcd_led";
1026					};
1027					tps65090_fet2: fet2 {
1028						regulator-name = "video_mid";
1029						regulator-always-on;
1030					};
1031					tps65090_fet3: fet3 {
1032						regulator-name = "wwan_r";
1033						regulator-always-on;
1034					};
1035					tps65090_fet4: fet4 {
1036						regulator-name = "sdcard";
1037						regulator-always-on;
1038					};
1039					tps65090_fet5: fet5 {
1040						regulator-name = "camout";
1041						regulator-always-on;
1042					};
1043					tps65090_fet6: fet6 {
1044						regulator-name = "lcd_vdd";
1045					};
1046					tps65090_fet7: fet7 {
1047						regulator-name = "video_mid_1a";
1048						regulator-always-on;
1049					};
1050					tps65090_ldo1: ldo1 {
1051					};
1052					tps65090_ldo2: ldo2 {
1053					};
1054				};
1055
1056				charger {
1057					compatible = "ti,tps65090-charger";
1058				};
1059			};
1060		};
1061	};
1062};
1063
1064&serial_3 {
1065	status = "okay";
1066};
1067
1068&timer {
1069	arm,cpu-registers-not-fw-configured;
1070};
1071
1072&tmu_cpu0 {
1073	vtmu-supply = <&ldo10_reg>;
1074};
1075
1076&tmu_cpu1 {
1077	vtmu-supply = <&ldo10_reg>;
1078};
1079
1080&tmu_cpu2 {
1081	vtmu-supply = <&ldo10_reg>;
1082};
1083
1084&tmu_cpu3 {
1085	vtmu-supply = <&ldo10_reg>;
1086};
1087
1088&tmu_gpu {
1089	vtmu-supply = <&ldo10_reg>;
1090};
1091
1092&usbdrd_dwc3_0 {
1093	dr_mode = "host";
1094};
1095
1096&usbdrd_dwc3_1 {
1097	dr_mode = "host";
1098};
1099
1100&usbdrd_phy0 {
1101	vbus-supply = <&usb300_vbus_reg>;
1102};
1103
1104&usbdrd_phy1 {
1105	vbus-supply = <&usb301_vbus_reg>;
1106};
1107
1108/*
1109 * Use longest HW watchdog in SoC (32 seconds) since the hardware
1110 * watchdog provides no debugging information (compared to soft/hard
1111 * lockup detectors) and so should be last resort.
1112 */
1113&watchdog {
1114	timeout-sec = <32>;
1115};
1116
1117#include "cros-ec-keyboard.dtsi"
1118#include "cros-adc-thermistors.dtsi"
1119