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