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