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