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