• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/*
2 * Google Peach Pi Rev 10+ 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 "exynos5800.dtsi"
18#include "exynos5420-cpus.dtsi"
19
20/ {
21	model = "Google Peach Pi Rev 10+";
22
23	compatible = "google,pi-rev16",
24		"google,pi-rev15", "google,pi-rev14",
25		"google,pi-rev13", "google,pi-rev12",
26		"google,pi-rev11", "google,pi-rev10",
27		"google,pi", "google,peach", "samsung,exynos5800",
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		enable-gpios = <&gpx2 2 GPIO_ACTIVE_HIGH>;
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
81	memory@20000000 {
82		device_type = "memory";
83		reg = <0x20000000 0x80000000>;
84	};
85
86	sound {
87		compatible = "google,snow-audio-max98091";
88
89		samsung,model = "Peach-Pi-I2S-MAX98091";
90		samsung,i2s-controller = <&i2s0>;
91		samsung,audio-codec = <&max98091>;
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,b133htn01";
125		power-supply = <&tps65090_fet6>;
126		backlight = <&backlight>;
127
128		port {
129			panel_in: endpoint {
130				remote-endpoint = <&dp_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 = <0x0a>;
163	samsung,lane-count = <2>;
164	samsung,hpd-gpio = <&gpx2 6 GPIO_ACTIVE_HIGH>;
165
166	ports {
167		port {
168			dp_out: endpoint {
169				remote-endpoint = <&panel_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	max98091: codec@10 {
608		compatible = "maxim,max98091";
609		reg = <0x10>;
610		interrupts = <2 IRQ_TYPE_NONE>;
611		interrupt-parent = <&gpx0>;
612		pinctrl-names = "default";
613		pinctrl-0 = <&max98091_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
625&hsi2c_8 {
626	status = "okay";
627	clock-frequency = <333000>;
628	/* Atmel mXT540S */
629	trackpad@4b {
630		compatible = "atmel,maxtouch";
631		reg = <0x4b>;
632		interrupt-parent = <&gpx1>;
633		interrupts = <1 IRQ_TYPE_EDGE_FALLING>;
634		wakeup-source;
635		pinctrl-names = "default";
636		pinctrl-0 = <&trackpad_irq>;
637		linux,gpio-keymap = <KEY_RESERVED
638				     KEY_RESERVED
639				     KEY_RESERVED	/* GPIO 0 */
640				     KEY_RESERVED	/* GPIO 1 */
641				     BTN_LEFT		/* GPIO 2 */
642				     KEY_RESERVED>;	/* GPIO 3 */
643	};
644};
645
646&hsi2c_9 {
647	status = "okay";
648	clock-frequency = <400000>;
649
650	tpm@20 {
651		compatible = "infineon,slb9645tt";
652		reg = <0x20>;
653
654		/* Unused irq; but still need to configure the pins */
655		pinctrl-names = "default";
656		pinctrl-0 = <&tpm_irq>;
657	};
658};
659
660&i2c_2 {
661	status = "okay";
662	samsung,i2c-sda-delay = <100>;
663	samsung,i2c-max-bus-freq = <66000>;
664	samsung,i2c-slave-addr = <0x50>;
665};
666
667&i2s0 {
668	status = "okay";
669};
670
671/* eMMC flash */
672&mmc_0 {
673	status = "okay";
674	mmc-hs200-1_8v;
675	mmc-hs400-1_8v;
676	cap-mmc-highspeed;
677	non-removable;
678	clock-frequency = <800000000>;
679	samsung,dw-mshc-ciu-div = <3>;
680	samsung,dw-mshc-sdr-timing = <0 4>;
681	samsung,dw-mshc-ddr-timing = <0 2>;
682	samsung,dw-mshc-hs400-timing = <0 2>;
683	samsung,read-strobe-delay = <90>;
684	pinctrl-names = "default";
685	pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus1 &sd0_bus4 &sd0_bus8 &sd0_rclk>;
686	bus-width = <8>;
687};
688
689/* WiFi SDIO module */
690&mmc_1 {
691	status = "okay";
692	non-removable;
693	cap-sdio-irq;
694	keep-power-in-suspend;
695	clock-frequency = <400000000>;
696	samsung,dw-mshc-ciu-div = <1>;
697	samsung,dw-mshc-sdr-timing = <0 1>;
698	samsung,dw-mshc-ddr-timing = <0 2>;
699	pinctrl-names = "default";
700	pinctrl-0 = <&sd1_clk>, <&sd1_cmd>, <&sd1_int>, <&sd1_bus1>,
701		    <&sd1_bus4>, <&sd1_bus8>, <&wifi_en>;
702	bus-width = <4>;
703	cap-sd-highspeed;
704	mmc-pwrseq = <&mmc1_pwrseq>;
705	vqmmc-supply = <&buck10_reg>;
706};
707
708/* uSD card */
709&mmc_2 {
710	status = "okay";
711	cap-sd-highspeed;
712	card-detect-delay = <200>;
713	clock-frequency = <400000000>;
714	samsung,dw-mshc-ciu-div = <3>;
715	samsung,dw-mshc-sdr-timing = <2 3>;
716	samsung,dw-mshc-ddr-timing = <1 2>;
717	pinctrl-names = "default";
718	pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus1 &sd2_bus4>;
719	bus-width = <4>;
720};
721
722
723&pinctrl_0 {
724	pinctrl-names = "default";
725	pinctrl-0 = <&mask_tpm_reset>;
726
727	wifi_en: wifi-en {
728		samsung,pins = "gpx0-0";
729		samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
730		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
731		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
732	};
733
734	max98091_irq: max98091-irq {
735		samsung,pins = "gpx0-2";
736		samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
737		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
738		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
739	};
740
741	/* We need GPX0_6 to be low at sleep time; just keep it low always */
742	mask_tpm_reset: mask-tpm-reset {
743		samsung,pins = "gpx0-6";
744		samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
745		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
746		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
747		samsung,pin-val = <0>;
748	};
749
750	tpm_irq: tpm-irq {
751		samsung,pins = "gpx1-0";
752		samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
753		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
754		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
755	};
756
757	trackpad_irq: trackpad-irq {
758		samsung,pins = "gpx1-1";
759		samsung,pin-function = <EXYNOS_PIN_FUNC_F>;
760		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
761		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
762	};
763
764	power_key_irq: power-key-irq {
765		samsung,pins = "gpx1-2";
766		samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
767		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
768		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
769	};
770
771	ec_irq: ec-irq {
772		samsung,pins = "gpx1-5";
773		samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
774		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
775		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
776	};
777
778	tps65090_irq: tps65090-irq {
779		samsung,pins = "gpx2-5";
780		samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
781		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
782		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
783	};
784
785	dp_hpd_gpio: dp_hpd_gpio {
786		samsung,pins = "gpx2-6";
787		samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
788		samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
789		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
790	};
791
792	max77802_irq: max77802-irq {
793		samsung,pins = "gpx3-1";
794		samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
795		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
796		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
797	};
798
799	lid_irq: lid-irq {
800		samsung,pins = "gpx3-4";
801		samsung,pin-function = <EXYNOS_PIN_FUNC_F>;
802		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
803		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
804	};
805
806	hdmi_hpd_irq: hdmi-hpd-irq {
807		samsung,pins = "gpx3-7";
808		samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
809		samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>;
810		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
811	};
812
813	pmic_dvs_1: pmic-dvs-1 {
814		samsung,pins = "gpy7-6";
815		samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
816		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
817		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
818	};
819};
820
821&pinctrl_1 {
822	/* Adjust WiFi drive strengths lower for EMI */
823	sd1_clk: sd1-clk {
824		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV3>;
825	};
826
827	sd1_cmd: sd1-cmd {
828		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV3>;
829	};
830
831	sd1_bus1: sd1-bus-width1 {
832		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV3>;
833	};
834
835	sd1_bus4: sd1-bus-width4 {
836		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV3>;
837	};
838
839	sd1_bus8: sd1-bus-width8 {
840		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV3>;
841	};
842};
843
844&pinctrl_2 {
845	pmic_dvs_2: pmic-dvs-2 {
846		samsung,pins = "gpj4-2";
847		samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
848		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
849		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
850	};
851
852	pmic_dvs_3: pmic-dvs-3 {
853		samsung,pins = "gpj4-3";
854		samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
855		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
856		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
857	};
858};
859
860&pinctrl_3 {
861	/* Drive SPI lines at x2 for better integrity */
862	spi2-bus {
863		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV3>;
864	};
865
866	/* Drive SPI chip select at x2 for better integrity */
867	ec_spi_cs: ec-spi-cs {
868		samsung,pins = "gpb1-2";
869		samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
870		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
871		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV3>;
872	};
873
874	usb300_vbus_en: usb300-vbus-en {
875		samsung,pins = "gph0-0";
876		samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
877		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
878		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
879	};
880
881	usb301_vbus_en: usb301-vbus-en {
882		samsung,pins = "gph0-1";
883		samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
884		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
885		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
886	};
887
888	pmic_selb: pmic-selb {
889		samsung,pins = "gph0-2", "gph0-3", "gph0-4", "gph0-5",
890			       "gph0-6";
891		samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
892		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
893		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
894	};
895};
896
897&pmu_system_controller {
898	assigned-clocks = <&pmu_system_controller 0>;
899	assigned-clock-parents = <&clock CLK_FIN_PLL>;
900};
901
902&rtc {
903	status = "okay";
904	clocks = <&clock CLK_RTC>, <&max77802 MAX77802_CLK_32K_AP>;
905	clock-names = "rtc", "rtc_src";
906};
907
908&spi_2 {
909	status = "okay";
910	num-cs = <1>;
911	samsung,spi-src-clk = <0>;
912	cs-gpios = <&gpb1 2 GPIO_ACTIVE_HIGH>;
913
914	cros_ec: cros-ec@0 {
915		compatible = "google,cros-ec-spi";
916		interrupt-parent = <&gpx1>;
917		interrupts = <5 IRQ_TYPE_NONE>;
918		pinctrl-names = "default";
919		pinctrl-0 = <&ec_spi_cs &ec_irq>;
920		reg = <0>;
921		spi-max-frequency = <3125000>;
922		google,has-vbc-nvram;
923
924		controller-data {
925			samsung,spi-feedback-delay = <1>;
926		};
927
928		i2c_tunnel: i2c-tunnel {
929			compatible = "google,cros-ec-i2c-tunnel";
930			#address-cells = <1>;
931			#size-cells = <0>;
932			google,remote-bus = <0>;
933
934			battery: sbs-battery@b {
935				compatible = "sbs,sbs-battery";
936				reg = <0xb>;
937				sbs,poll-retry-count = <1>;
938				sbs,i2c-retry-count = <2>;
939			};
940
941			power-regulator@48 {
942				compatible = "ti,tps65090";
943				reg = <0x48>;
944
945				/*
946				 * Config irq to disable internal pulls
947				 * even though we run in polling mode.
948				 */
949				pinctrl-names = "default";
950				pinctrl-0 = <&tps65090_irq>;
951
952				vsys1-supply = <&vbat>;
953				vsys2-supply = <&vbat>;
954				vsys3-supply = <&vbat>;
955				infet1-supply = <&vbat>;
956				infet2-supply = <&tps65090_dcdc1>;
957				infet3-supply = <&tps65090_dcdc2>;
958				infet4-supply = <&tps65090_dcdc2>;
959				infet5-supply = <&tps65090_dcdc2>;
960				infet6-supply = <&tps65090_dcdc2>;
961				infet7-supply = <&tps65090_dcdc1>;
962				vsys-l1-supply = <&vbat>;
963				vsys-l2-supply = <&vbat>;
964
965				regulators {
966					tps65090_dcdc1: dcdc1 {
967						ti,enable-ext-control;
968					};
969					tps65090_dcdc2: dcdc2 {
970						ti,enable-ext-control;
971					};
972					tps65090_dcdc3: dcdc3 {
973						ti,enable-ext-control;
974					};
975					tps65090_fet1: fet1 {
976						regulator-name = "vcd_led";
977					};
978					tps65090_fet2: fet2 {
979						regulator-name = "video_mid";
980						regulator-always-on;
981					};
982					tps65090_fet3: fet3 {
983						regulator-name = "wwan_r";
984						regulator-always-on;
985					};
986					tps65090_fet4: fet4 {
987						regulator-name = "sdcard";
988						regulator-always-on;
989					};
990					tps65090_fet5: fet5 {
991						regulator-name = "camout";
992						regulator-always-on;
993					};
994					tps65090_fet6: fet6 {
995						regulator-name = "lcd_vdd";
996					};
997					tps65090_fet7: fet7 {
998						regulator-name = "video_mid_1a";
999						regulator-always-on;
1000					};
1001					tps65090_ldo1: ldo1 {
1002					};
1003					tps65090_ldo2: ldo2 {
1004					};
1005				};
1006
1007				charger {
1008					compatible = "ti,tps65090-charger";
1009				};
1010			};
1011		};
1012	};
1013};
1014
1015&serial_3 {
1016	status = "okay";
1017};
1018
1019&tmu_cpu0 {
1020	vtmu-supply = <&ldo10_reg>;
1021};
1022
1023&tmu_cpu1 {
1024	vtmu-supply = <&ldo10_reg>;
1025};
1026
1027&tmu_cpu2 {
1028	vtmu-supply = <&ldo10_reg>;
1029};
1030
1031&tmu_cpu3 {
1032	vtmu-supply = <&ldo10_reg>;
1033};
1034
1035&tmu_gpu {
1036	vtmu-supply = <&ldo10_reg>;
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