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