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