exynos5800-peach-pi.dts revision 295436
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
19/ {
20	model = "Google Peach Pi Rev 10+";
21
22	compatible = "google,pi-rev16",
23		"google,pi-rev15", "google,pi-rev14",
24		"google,pi-rev13", "google,pi-rev12",
25		"google,pi-rev11", "google,pi-rev10",
26		"google,pi", "google,peach", "samsung,exynos5800",
27		"samsung,exynos5";
28
29	aliases {
30		/* Assign 20 so we don't get confused w/ builtin ones */
31		i2c20 = "/spi@12d40000/cros-ec@0/i2c-tunnel";
32	};
33
34	backlight: backlight {
35		compatible = "pwm-backlight";
36		pwms = <&pwm 0 1000000 0>;
37		brightness-levels = <0 100 500 1000 1500 2000 2500 2800>;
38		default-brightness-level = <7>;
39		enable-gpios = <&gpx2 2 GPIO_ACTIVE_HIGH>;
40		power-supply = <&tps65090_fet1>;
41		pinctrl-0 = <&pwm0_out>;
42		pinctrl-names = "default";
43	};
44
45	chosen {
46		stdout-path = "serial3:115200n8";
47	};
48
49	fixed-rate-clocks {
50		oscclk {
51			compatible = "samsung,exynos5420-oscclk";
52			clock-frequency = <24000000>;
53		};
54	};
55
56	gpio-keys {
57		compatible = "gpio-keys";
58
59		pinctrl-names = "default";
60		pinctrl-0 = <&power_key_irq &lid_irq>;
61
62		power {
63			label = "Power";
64			gpios = <&gpx1 2 GPIO_ACTIVE_LOW>;
65			linux,code = <KEY_POWER>;
66			gpio-key,wakeup;
67		};
68
69		lid-switch {
70			label = "Lid";
71			gpios = <&gpx3 4 GPIO_ACTIVE_LOW>;
72			linux,input-type = <5>; /* EV_SW */
73			linux,code = <0>; /* SW_LID */
74			debounce-interval = <1>;
75			gpio-key,wakeup;
76		};
77
78	};
79
80	memory {
81		reg = <0x20000000 0x80000000>;
82	};
83
84	sound {
85		compatible = "google,snow-audio-max98091";
86
87		samsung,model = "Peach-Pi-I2S-MAX98091";
88		samsung,i2s-controller = <&i2s0>;
89		samsung,audio-codec = <&max98091>;
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 GPIO_ACTIVE_HIGH>;
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 GPIO_ACTIVE_HIGH>;
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,b133htn01";
123		power-supply = <&tps65090_fet6>;
124		backlight = <&backlight>;
125
126		port {
127			panel_in: endpoint {
128				remote-endpoint = <&dp_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 = <0x0a>;
155	samsung,lane-count = <2>;
156	samsung,hpd-gpio = <&gpx2 6 GPIO_ACTIVE_HIGH>;
157
158	ports {
159		port {
160			dp_out: endpoint {
161				remote-endpoint = <&panel_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	max98091: codec@10 {
602		compatible = "maxim,max98091";
603		reg = <0x10>;
604		interrupts = <2 0>;
605		interrupt-parent = <&gpx0>;
606		pinctrl-names = "default";
607		pinctrl-0 = <&max98091_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
619&hsi2c_8 {
620	status = "okay";
621	clock-frequency = <333000>;
622	/* Atmel mXT540S */
623	trackpad@4b {
624		compatible = "atmel,maxtouch";
625		reg = <0x4b>;
626		interrupt-parent = <&gpx1>;
627		interrupts = <1 IRQ_TYPE_EDGE_FALLING>;
628		wakeup-source;
629		pinctrl-names = "default";
630		pinctrl-0 = <&trackpad_irq>;
631		linux,gpio-keymap = <KEY_RESERVED
632				     KEY_RESERVED
633				     KEY_RESERVED	/* GPIO 0 */
634				     KEY_RESERVED	/* GPIO 1 */
635				     BTN_LEFT		/* GPIO 2 */
636				     KEY_RESERVED>;	/* GPIO 3 */
637	};
638};
639
640&hsi2c_9 {
641	status = "okay";
642	clock-frequency = <400000>;
643
644	tpm@20 {
645		compatible = "infineon,slb9645tt";
646		reg = <0x20>;
647
648		/* Unused irq; but still need to configure the pins */
649		pinctrl-names = "default";
650		pinctrl-0 = <&tpm_irq>;
651	};
652};
653
654&i2c_2 {
655	status = "okay";
656	samsung,i2c-sda-delay = <100>;
657	samsung,i2c-max-bus-freq = <66000>;
658	samsung,i2c-slave-addr = <0x50>;
659};
660
661&i2s0 {
662	status = "okay";
663};
664
665&mmc_0 {
666	status = "okay";
667	num-slots = <1>;
668	mmc-hs200-1_8v;
669	mmc-hs400-1_8v;
670	cap-mmc-highspeed;
671	non-removable;
672	clock-frequency = <800000000>;
673	samsung,dw-mshc-ciu-div = <3>;
674	samsung,dw-mshc-sdr-timing = <0 4>;
675	samsung,dw-mshc-ddr-timing = <0 2>;
676	samsung,dw-mshc-hs400-timing = <0 2>;
677	samsung,read-strobe-delay = <90>;
678	pinctrl-names = "default";
679	pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus1 &sd0_bus4 &sd0_bus8 &sd0_rclk>;
680	bus-width = <8>;
681};
682
683&mmc_1 {
684	status = "okay";
685	num-slots = <1>;
686	non-removable;
687	cap-sdio-irq;
688	keep-power-in-suspend;
689	clock-frequency = <400000000>;
690	samsung,dw-mshc-ciu-div = <1>;
691	samsung,dw-mshc-sdr-timing = <0 1>;
692	samsung,dw-mshc-ddr-timing = <0 2>;
693	pinctrl-names = "default";
694	pinctrl-0 = <&sd1_clk>, <&sd1_cmd>, <&sd1_int>, <&sd1_bus1>,
695		    <&sd1_bus4>, <&sd1_bus8>, <&wifi_en>;
696	bus-width = <4>;
697	cap-sd-highspeed;
698	mmc-pwrseq = <&mmc1_pwrseq>;
699	vqmmc-supply = <&buck10_reg>;
700};
701
702&mmc_2 {
703	status = "okay";
704	num-slots = <1>;
705	cap-sd-highspeed;
706	card-detect-delay = <200>;
707	clock-frequency = <400000000>;
708	samsung,dw-mshc-ciu-div = <3>;
709	samsung,dw-mshc-sdr-timing = <2 3>;
710	samsung,dw-mshc-ddr-timing = <1 2>;
711	pinctrl-names = "default";
712	pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus1 &sd2_bus4>;
713	bus-width = <4>;
714};
715
716
717&pinctrl_0 {
718	pinctrl-names = "default";
719	pinctrl-0 = <&mask_tpm_reset>;
720
721	wifi_en: wifi-en {
722		samsung,pins = "gpx0-0";
723		samsung,pin-function = <1>;
724		samsung,pin-pud = <0>;
725		samsung,pin-drv = <0>;
726	};
727
728	max98091_irq: max98091-irq {
729		samsung,pins = "gpx0-2";
730		samsung,pin-function = <0>;
731		samsung,pin-pud = <0>;
732		samsung,pin-drv = <0>;
733	};
734
735	/* We need GPX0_6 to be low at sleep time; just keep it low always */
736	mask_tpm_reset: mask-tpm-reset {
737		samsung,pins = "gpx0-6";
738		samsung,pin-function = <1>;
739		samsung,pin-pud = <0>;
740		samsung,pin-drv = <0>;
741		samsung,pin-val = <0>;
742	};
743
744	tpm_irq: tpm-irq {
745		samsung,pins = "gpx1-0";
746		samsung,pin-function = <0>;
747		samsung,pin-pud = <0>;
748		samsung,pin-drv = <0>;
749	};
750
751	trackpad_irq: trackpad-irq {
752		samsung,pins = "gpx1-1";
753		samsung,pin-function = <0xf>;
754		samsung,pin-pud = <0>;
755		samsung,pin-drv = <0>;
756	};
757
758	power_key_irq: power-key-irq {
759		samsung,pins = "gpx1-2";
760		samsung,pin-function = <0>;
761		samsung,pin-pud = <0>;
762		samsung,pin-drv = <0>;
763	};
764
765	ec_irq: ec-irq {
766		samsung,pins = "gpx1-5";
767		samsung,pin-function = <0>;
768		samsung,pin-pud = <0>;
769		samsung,pin-drv = <0>;
770	};
771
772	tps65090_irq: tps65090-irq {
773		samsung,pins = "gpx2-5";
774		samsung,pin-function = <0>;
775		samsung,pin-pud = <0>;
776		samsung,pin-drv = <0>;
777	};
778
779	dp_hpd_gpio: dp_hpd_gpio {
780		samsung,pins = "gpx2-6";
781		samsung,pin-function = <0>;
782		samsung,pin-pud = <3>;
783		samsung,pin-drv = <0>;
784	};
785
786	max77802_irq: max77802-irq {
787		samsung,pins = "gpx3-1";
788		samsung,pin-function = <0>;
789		samsung,pin-pud = <0>;
790		samsung,pin-drv = <0>;
791	};
792
793	lid_irq: lid-irq {
794		samsung,pins = "gpx3-4";
795		samsung,pin-function = <0xf>;
796		samsung,pin-pud = <0>;
797		samsung,pin-drv = <0>;
798	};
799
800	hdmi_hpd_irq: hdmi-hpd-irq {
801		samsung,pins = "gpx3-7";
802		samsung,pin-function = <0>;
803		samsung,pin-pud = <1>;
804		samsung,pin-drv = <0>;
805	};
806
807	pmic_dvs_1: pmic-dvs-1 {
808		samsung,pins = "gpy7-6";
809		samsung,pin-function = <1>;
810		samsung,pin-pud = <0>;
811		samsung,pin-drv = <0>;
812	};
813};
814
815&pinctrl_1 {
816	/* Adjust WiFi drive strengths lower for EMI */
817	sd1_clk: sd1-clk {
818		samsung,pin-drv = <2>;
819	};
820
821	sd1_cmd: sd1-cmd {
822		samsung,pin-drv = <2>;
823	};
824
825	sd1_bus1: sd1-bus-width1 {
826		samsung,pin-drv = <2>;
827	};
828
829	sd1_bus4: sd1-bus-width4 {
830		samsung,pin-drv = <2>;
831	};
832
833	sd1_bus8: sd1-bus-width8 {
834		samsung,pin-drv = <2>;
835	};
836};
837
838&pinctrl_2 {
839	pmic_dvs_2: pmic-dvs-2 {
840		samsung,pins = "gpj4-2";
841		samsung,pin-function = <1>;
842		samsung,pin-pud = <0>;
843		samsung,pin-drv = <0>;
844	};
845
846	pmic_dvs_3: pmic-dvs-3 {
847		samsung,pins = "gpj4-3";
848		samsung,pin-function = <1>;
849		samsung,pin-pud = <0>;
850		samsung,pin-drv = <0>;
851	};
852};
853
854&pinctrl_3 {
855	/* Drive SPI lines at x2 for better integrity */
856	spi2-bus {
857		samsung,pin-drv = <2>;
858	};
859
860	/* Drive SPI chip select at x2 for better integrity */
861	ec_spi_cs: ec-spi-cs {
862		samsung,pins = "gpb1-2";
863		samsung,pin-function = <1>;
864		samsung,pin-pud = <0>;
865		samsung,pin-drv = <2>;
866	};
867
868	usb300_vbus_en: usb300-vbus-en {
869		samsung,pins = "gph0-0";
870		samsung,pin-function = <1>;
871		samsung,pin-pud = <0>;
872		samsung,pin-drv = <0>;
873	};
874
875	usb301_vbus_en: usb301-vbus-en {
876		samsung,pins = "gph0-1";
877		samsung,pin-function = <1>;
878		samsung,pin-pud = <0>;
879		samsung,pin-drv = <0>;
880	};
881
882	pmic_selb: pmic-selb {
883		samsung,pins = "gph0-2", "gph0-3", "gph0-4", "gph0-5",
884			       "gph0-6";
885		samsung,pin-function = <1>;
886		samsung,pin-pud = <0>;
887		samsung,pin-drv = <0>;
888	};
889};
890
891&pmu_system_controller {
892	assigned-clocks = <&pmu_system_controller 0>;
893	assigned-clock-parents = <&clock CLK_FIN_PLL>;
894};
895
896&rtc {
897	status = "okay";
898	clocks = <&clock CLK_RTC>, <&max77802 MAX77802_CLK_32K_AP>;
899	clock-names = "rtc", "rtc_src";
900};
901
902&spi_2 {
903	status = "okay";
904	num-cs = <1>;
905	samsung,spi-src-clk = <0>;
906	cs-gpios = <&gpb1 2 GPIO_ACTIVE_HIGH>;
907
908	cros_ec: cros-ec@0 {
909		compatible = "google,cros-ec-spi";
910		interrupt-parent = <&gpx1>;
911		interrupts = <5 0>;
912		pinctrl-names = "default";
913		pinctrl-0 = <&ec_spi_cs &ec_irq>;
914		reg = <0>;
915		spi-max-frequency = <3125000>;
916		google,has-vbc-nvram;
917
918		controller-data {
919			samsung,spi-feedback-delay = <1>;
920		};
921
922		i2c-tunnel {
923			compatible = "google,cros-ec-i2c-tunnel";
924			#address-cells = <1>;
925			#size-cells = <0>;
926			google,remote-bus = <0>;
927
928			battery: sbs-battery@b {
929				compatible = "sbs,sbs-battery";
930				reg = <0xb>;
931				sbs,poll-retry-count = <1>;
932				sbs,i2c-retry-count = <2>;
933			};
934
935			power-regulator@48 {
936				compatible = "ti,tps65090";
937				reg = <0x48>;
938
939				/*
940				 * Config irq to disable internal pulls
941				 * even though we run in polling mode.
942				 */
943				pinctrl-names = "default";
944				pinctrl-0 = <&tps65090_irq>;
945
946				vsys1-supply = <&vbat>;
947				vsys2-supply = <&vbat>;
948				vsys3-supply = <&vbat>;
949				infet1-supply = <&vbat>;
950				infet2-supply = <&tps65090_dcdc1>;
951				infet3-supply = <&tps65090_dcdc2>;
952				infet4-supply = <&tps65090_dcdc2>;
953				infet5-supply = <&tps65090_dcdc2>;
954				infet6-supply = <&tps65090_dcdc2>;
955				infet7-supply = <&tps65090_dcdc1>;
956				vsys-l1-supply = <&vbat>;
957				vsys-l2-supply = <&vbat>;
958
959				regulators {
960					tps65090_dcdc1: dcdc1 {
961						ti,enable-ext-control;
962					};
963					tps65090_dcdc2: dcdc2 {
964						ti,enable-ext-control;
965					};
966					tps65090_dcdc3: dcdc3 {
967						ti,enable-ext-control;
968					};
969					tps65090_fet1: fet1 {
970						regulator-name = "vcd_led";
971					};
972					tps65090_fet2: fet2 {
973						regulator-name = "video_mid";
974						regulator-always-on;
975					};
976					tps65090_fet3: fet3 {
977						regulator-name = "wwan_r";
978						regulator-always-on;
979					};
980					tps65090_fet4: fet4 {
981						regulator-name = "sdcard";
982						regulator-always-on;
983					};
984					tps65090_fet5: fet5 {
985						regulator-name = "camout";
986						regulator-always-on;
987					};
988					tps65090_fet6: fet6 {
989						regulator-name = "lcd_vdd";
990					};
991					tps65090_fet7: fet7 {
992						regulator-name = "video_mid_1a";
993						regulator-always-on;
994					};
995					tps65090_ldo1: ldo1 {
996					};
997					tps65090_ldo2: ldo2 {
998					};
999				};
1000
1001				charger {
1002					compatible = "ti,tps65090-charger";
1003				};
1004			};
1005		};
1006	};
1007};
1008
1009&serial_3 {
1010	status = "okay";
1011};
1012
1013&usbdrd_dwc3_0 {
1014	dr_mode = "host";
1015};
1016
1017&usbdrd_dwc3_1 {
1018	dr_mode = "host";
1019};
1020
1021&usbdrd_phy0 {
1022	vbus-supply = <&usb300_vbus_reg>;
1023};
1024
1025&usbdrd_phy1 {
1026	vbus-supply = <&usb301_vbus_reg>;
1027};
1028
1029/*
1030 * Use longest HW watchdog in SoC (32 seconds) since the hardware
1031 * watchdog provides no debugging information (compared to soft/hard
1032 * lockup detectors) and so should be last resort.
1033 */
1034&watchdog {
1035	timeout-sec = <32>;
1036};
1037
1038#include "cros-ec-keyboard.dtsi"
1039#include "cros-adc-thermistors.dtsi"
1040