xref: /OK3568_Linux_fs/kernel/arch/arm/boot/dts/s5pv210-aries.dtsi (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun// SPDX-License-Identifier: GPL-2.0
2*4882a593Smuzhiyun/*
3*4882a593Smuzhiyun * Samsung's S5PV210 based Galaxy Aries board device tree source
4*4882a593Smuzhiyun */
5*4882a593Smuzhiyun
6*4882a593Smuzhiyun/dts-v1/;
7*4882a593Smuzhiyun#include <dt-bindings/gpio/gpio.h>
8*4882a593Smuzhiyun#include <dt-bindings/interrupt-controller/irq.h>
9*4882a593Smuzhiyun#include "s5pv210.dtsi"
10*4882a593Smuzhiyun
11*4882a593Smuzhiyun/ {
12*4882a593Smuzhiyun	compatible = "samsung,aries", "samsung,s5pv210";
13*4882a593Smuzhiyun
14*4882a593Smuzhiyun	aliases: aliases {
15*4882a593Smuzhiyun		i2c4 = &i2c_sound;
16*4882a593Smuzhiyun		i2c5 = &i2c_accel;
17*4882a593Smuzhiyun		i2c6 = &i2c_pmic;
18*4882a593Smuzhiyun		i2c7 = &i2c_musb;
19*4882a593Smuzhiyun		i2c9 = &i2c_fuel;
20*4882a593Smuzhiyun		i2c10 = &i2c_touchkey;
21*4882a593Smuzhiyun		i2c11 = &i2c_prox;
22*4882a593Smuzhiyun		i2c12 = &i2c_magnetometer;
23*4882a593Smuzhiyun	};
24*4882a593Smuzhiyun
25*4882a593Smuzhiyun	memory@30000000 {
26*4882a593Smuzhiyun		device_type = "memory";
27*4882a593Smuzhiyun		reg = <0x30000000 0x05000000
28*4882a593Smuzhiyun			0x40000000 0x10000000
29*4882a593Smuzhiyun			0x50000000 0x08000000>;
30*4882a593Smuzhiyun	};
31*4882a593Smuzhiyun
32*4882a593Smuzhiyun	reserved-memory {
33*4882a593Smuzhiyun		#address-cells = <1>;
34*4882a593Smuzhiyun		#size-cells = <1>;
35*4882a593Smuzhiyun		ranges;
36*4882a593Smuzhiyun
37*4882a593Smuzhiyun		mfc_left: region@43000000 {
38*4882a593Smuzhiyun			compatible = "shared-dma-pool";
39*4882a593Smuzhiyun			no-map;
40*4882a593Smuzhiyun			reg = <0x43000000 0x2000000>;
41*4882a593Smuzhiyun		};
42*4882a593Smuzhiyun
43*4882a593Smuzhiyun		mfc_right: region@51000000 {
44*4882a593Smuzhiyun			compatible = "shared-dma-pool";
45*4882a593Smuzhiyun			no-map;
46*4882a593Smuzhiyun			reg = <0x51000000 0x2000000>;
47*4882a593Smuzhiyun		};
48*4882a593Smuzhiyun	};
49*4882a593Smuzhiyun
50*4882a593Smuzhiyun	pmic_ap_clk: clock-0 {
51*4882a593Smuzhiyun		/* Workaround for missing clock on PMIC */
52*4882a593Smuzhiyun		compatible = "fixed-clock";
53*4882a593Smuzhiyun		#clock-cells = <0>;
54*4882a593Smuzhiyun		clock-frequency = <32768>;
55*4882a593Smuzhiyun	};
56*4882a593Smuzhiyun
57*4882a593Smuzhiyun	bt_codec: bt_sco {
58*4882a593Smuzhiyun		compatible = "linux,bt-sco";
59*4882a593Smuzhiyun		#sound-dai-cells = <0>;
60*4882a593Smuzhiyun	};
61*4882a593Smuzhiyun
62*4882a593Smuzhiyun	vibrator_pwr: regulator-fixed-0 {
63*4882a593Smuzhiyun		compatible = "regulator-fixed";
64*4882a593Smuzhiyun		regulator-name = "vibrator-en";
65*4882a593Smuzhiyun		enable-active-high;
66*4882a593Smuzhiyun		gpio = <&gpj1 1 GPIO_ACTIVE_HIGH>;
67*4882a593Smuzhiyun
68*4882a593Smuzhiyun		pinctrl-names = "default";
69*4882a593Smuzhiyun		pinctrl-0 = <&vibrator_ena>;
70*4882a593Smuzhiyun	};
71*4882a593Smuzhiyun
72*4882a593Smuzhiyun	touchkey_vdd: regulator-fixed-1 {
73*4882a593Smuzhiyun		compatible = "regulator-fixed";
74*4882a593Smuzhiyun		regulator-name = "VTOUCH_3.3V";
75*4882a593Smuzhiyun		regulator-min-microvolt = <3300000>;
76*4882a593Smuzhiyun		regulator-max-microvolt = <3300000>;
77*4882a593Smuzhiyun		enable-active-high;
78*4882a593Smuzhiyun		gpio = <&gpj3 2 GPIO_ACTIVE_HIGH>;
79*4882a593Smuzhiyun
80*4882a593Smuzhiyun		pinctrl-names = "default";
81*4882a593Smuzhiyun		pinctrl-0 = <&touchkey_vdd_ena>;
82*4882a593Smuzhiyun	};
83*4882a593Smuzhiyun
84*4882a593Smuzhiyun	gp2a_vled: regulator-fixed-2 {
85*4882a593Smuzhiyun		compatible = "regulator-fixed";
86*4882a593Smuzhiyun		regulator-name = "VLED";
87*4882a593Smuzhiyun		enable-active-high;
88*4882a593Smuzhiyun		gpio = <&gpj1 4 GPIO_ACTIVE_HIGH>;
89*4882a593Smuzhiyun		regulator-min-microvolt = <2800000>;
90*4882a593Smuzhiyun		regulator-max-microvolt = <2800000>;
91*4882a593Smuzhiyun
92*4882a593Smuzhiyun		pinctrl-names = "default";
93*4882a593Smuzhiyun		pinctrl-0 = <&gp2a_power>;
94*4882a593Smuzhiyun	};
95*4882a593Smuzhiyun
96*4882a593Smuzhiyun	wifi_pwrseq: wifi-pwrseq {
97*4882a593Smuzhiyun		compatible = "mmc-pwrseq-simple";
98*4882a593Smuzhiyun		reset-gpios = <&gpg1 2 GPIO_ACTIVE_LOW>;
99*4882a593Smuzhiyun		pinctrl-names = "default";
100*4882a593Smuzhiyun		pinctrl-0 = <&wlan_gpio_rst>;
101*4882a593Smuzhiyun		post-power-on-delay-ms = <500>;
102*4882a593Smuzhiyun		power-off-delay-us = <500>;
103*4882a593Smuzhiyun	};
104*4882a593Smuzhiyun
105*4882a593Smuzhiyun	i2c_sound: i2c-gpio-0 {
106*4882a593Smuzhiyun		compatible = "i2c-gpio";
107*4882a593Smuzhiyun		sda-gpios = <&mp05 3 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
108*4882a593Smuzhiyun		scl-gpios = <&mp05 2 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
109*4882a593Smuzhiyun		i2c-gpio,delay-us = <2>;
110*4882a593Smuzhiyun		#address-cells = <1>;
111*4882a593Smuzhiyun		#size-cells = <0>;
112*4882a593Smuzhiyun
113*4882a593Smuzhiyun		pinctrl-names = "default";
114*4882a593Smuzhiyun		pinctrl-0 = <&sound_i2c_pins>;
115*4882a593Smuzhiyun
116*4882a593Smuzhiyun		wm8994: wm8994@1a {
117*4882a593Smuzhiyun			compatible = "wlf,wm8994";
118*4882a593Smuzhiyun			reg = <0x1a>;
119*4882a593Smuzhiyun
120*4882a593Smuzhiyun			#sound-dai-cells = <0>;
121*4882a593Smuzhiyun
122*4882a593Smuzhiyun			gpio-controller;
123*4882a593Smuzhiyun			#gpio-cells = <2>;
124*4882a593Smuzhiyun
125*4882a593Smuzhiyun			clocks = <&clocks MOUT_CLKOUT>;
126*4882a593Smuzhiyun			clock-names = "MCLK1";
127*4882a593Smuzhiyun
128*4882a593Smuzhiyun			AVDD2-supply = <&buck3_reg>;
129*4882a593Smuzhiyun			DBVDD-supply = <&buck3_reg>;
130*4882a593Smuzhiyun			CPVDD-supply = <&buck3_reg>;
131*4882a593Smuzhiyun			SPKVDD1-supply = <&buck3_reg>;
132*4882a593Smuzhiyun			SPKVDD2-supply = <&buck3_reg>;
133*4882a593Smuzhiyun
134*4882a593Smuzhiyun			wlf,gpio-cfg = <0xa101 0x8100 0x0100 0x0100 0x8100
135*4882a593Smuzhiyun					0xa101 0x0100 0x8100 0x0100 0x0100
136*4882a593Smuzhiyun					0x0100>;
137*4882a593Smuzhiyun
138*4882a593Smuzhiyun			wlf,ldo1ena = <&gpf3 4 GPIO_ACTIVE_HIGH>;
139*4882a593Smuzhiyun			wlf,ldo2ena = <&gpf3 4 GPIO_ACTIVE_HIGH>;
140*4882a593Smuzhiyun
141*4882a593Smuzhiyun			wlf,lineout1-se;
142*4882a593Smuzhiyun			wlf,lineout2-se;
143*4882a593Smuzhiyun
144*4882a593Smuzhiyun			assigned-clocks = <&clocks MOUT_CLKOUT>;
145*4882a593Smuzhiyun			assigned-clock-rates = <0>;
146*4882a593Smuzhiyun			assigned-clock-parents = <&xusbxti>;
147*4882a593Smuzhiyun
148*4882a593Smuzhiyun			pinctrl-names = "default";
149*4882a593Smuzhiyun			pinctrl-0 = <&codec_ldo>;
150*4882a593Smuzhiyun		};
151*4882a593Smuzhiyun	};
152*4882a593Smuzhiyun
153*4882a593Smuzhiyun	i2c_accel: i2c-gpio-1 {
154*4882a593Smuzhiyun		compatible = "i2c-gpio";
155*4882a593Smuzhiyun		sda-gpios = <&gpj3 6 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
156*4882a593Smuzhiyun		scl-gpios = <&gpj3 7 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
157*4882a593Smuzhiyun		i2c-gpio,delay-us = <2>;
158*4882a593Smuzhiyun		#address-cells = <1>;
159*4882a593Smuzhiyun		#size-cells = <0>;
160*4882a593Smuzhiyun
161*4882a593Smuzhiyun		pinctrl-names = "default";
162*4882a593Smuzhiyun		pinctrl-0 = <&accel_i2c_pins>;
163*4882a593Smuzhiyun
164*4882a593Smuzhiyun		accelerometer@38 {
165*4882a593Smuzhiyun			compatible = "bosch,bma023";
166*4882a593Smuzhiyun			reg = <0x38>;
167*4882a593Smuzhiyun
168*4882a593Smuzhiyun			vdd-supply = <&ldo9_reg>;
169*4882a593Smuzhiyun			vddio-supply = <&ldo9_reg>;
170*4882a593Smuzhiyun		};
171*4882a593Smuzhiyun	};
172*4882a593Smuzhiyun
173*4882a593Smuzhiyun	i2c_pmic: i2c-gpio-2 {
174*4882a593Smuzhiyun		compatible = "i2c-gpio";
175*4882a593Smuzhiyun		sda-gpios = <&gpj4 0 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
176*4882a593Smuzhiyun		scl-gpios = <&gpj4 3 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
177*4882a593Smuzhiyun		i2c-gpio,delay-us = <2>;
178*4882a593Smuzhiyun		#address-cells = <1>;
179*4882a593Smuzhiyun		#size-cells = <0>;
180*4882a593Smuzhiyun
181*4882a593Smuzhiyun		pinctrl-names = "default";
182*4882a593Smuzhiyun		pinctrl-0 = <&pmic_i2c_pins>;
183*4882a593Smuzhiyun
184*4882a593Smuzhiyun		pmic@66 {
185*4882a593Smuzhiyun			compatible = "maxim,max8998";
186*4882a593Smuzhiyun			reg = <0x66>;
187*4882a593Smuzhiyun			interrupt-parent = <&gph0>;
188*4882a593Smuzhiyun			interrupts = <7 IRQ_TYPE_EDGE_FALLING>;
189*4882a593Smuzhiyun
190*4882a593Smuzhiyun			max8998,pmic-buck1-default-dvs-idx = <1>;
191*4882a593Smuzhiyun			max8998,pmic-buck1-dvs-gpios = <&gph0 3 GPIO_ACTIVE_HIGH>,
192*4882a593Smuzhiyun							<&gph0 4 GPIO_ACTIVE_HIGH>;
193*4882a593Smuzhiyun			max8998,pmic-buck1-dvs-voltage = <1275000>, <1200000>,
194*4882a593Smuzhiyun							<1050000>, <950000>;
195*4882a593Smuzhiyun
196*4882a593Smuzhiyun			max8998,pmic-buck2-default-dvs-idx = <0>;
197*4882a593Smuzhiyun			max8998,pmic-buck2-dvs-gpio = <&gph0 5 GPIO_ACTIVE_HIGH>;
198*4882a593Smuzhiyun			max8998,pmic-buck2-dvs-voltage = <1100000>, <1000000>;
199*4882a593Smuzhiyun
200*4882a593Smuzhiyun			pinctrl-names = "default";
201*4882a593Smuzhiyun			pinctrl-0 = <&pmic_dvs_pins &pmic_irq>;
202*4882a593Smuzhiyun
203*4882a593Smuzhiyun			regulators {
204*4882a593Smuzhiyun				ldo2_reg: LDO2 {
205*4882a593Smuzhiyun					regulator-name = "VALIVE_1.2V";
206*4882a593Smuzhiyun					regulator-min-microvolt = <1200000>;
207*4882a593Smuzhiyun					regulator-max-microvolt = <1200000>;
208*4882a593Smuzhiyun					regulator-always-on;
209*4882a593Smuzhiyun
210*4882a593Smuzhiyun					regulator-state-mem {
211*4882a593Smuzhiyun						regulator-on-in-suspend;
212*4882a593Smuzhiyun					};
213*4882a593Smuzhiyun				};
214*4882a593Smuzhiyun
215*4882a593Smuzhiyun				ldo3_reg: LDO3 {
216*4882a593Smuzhiyun					regulator-name = "VUSB_1.1V";
217*4882a593Smuzhiyun					regulator-min-microvolt = <1100000>;
218*4882a593Smuzhiyun					regulator-max-microvolt = <1100000>;
219*4882a593Smuzhiyun
220*4882a593Smuzhiyun					regulator-state-mem {
221*4882a593Smuzhiyun						regulator-off-in-suspend;
222*4882a593Smuzhiyun					};
223*4882a593Smuzhiyun				};
224*4882a593Smuzhiyun
225*4882a593Smuzhiyun				ldo4_reg: LDO4 {
226*4882a593Smuzhiyun					regulator-name = "VADC_3.3V";
227*4882a593Smuzhiyun					regulator-min-microvolt = <3300000>;
228*4882a593Smuzhiyun					regulator-max-microvolt = <3300000>;
229*4882a593Smuzhiyun
230*4882a593Smuzhiyun					regulator-state-mem {
231*4882a593Smuzhiyun						regulator-off-in-suspend;
232*4882a593Smuzhiyun					};
233*4882a593Smuzhiyun				};
234*4882a593Smuzhiyun
235*4882a593Smuzhiyun				ldo5_reg: LDO5 {
236*4882a593Smuzhiyun					regulator-name = "VTF_2.8V";
237*4882a593Smuzhiyun					regulator-min-microvolt = <2800000>;
238*4882a593Smuzhiyun					regulator-max-microvolt = <2800000>;
239*4882a593Smuzhiyun
240*4882a593Smuzhiyun					regulator-state-mem {
241*4882a593Smuzhiyun						regulator-off-in-suspend;
242*4882a593Smuzhiyun					};
243*4882a593Smuzhiyun				};
244*4882a593Smuzhiyun
245*4882a593Smuzhiyun				ldo6_reg: LDO6 {
246*4882a593Smuzhiyun					regulator-name = "LDO6";
247*4882a593Smuzhiyun					regulator-min-microvolt = <1600000>;
248*4882a593Smuzhiyun					regulator-max-microvolt = <3600000>;
249*4882a593Smuzhiyun				};
250*4882a593Smuzhiyun
251*4882a593Smuzhiyun				ldo7_reg: LDO7 {
252*4882a593Smuzhiyun					regulator-name = "VLCD_1.8V";
253*4882a593Smuzhiyun					regulator-min-microvolt = <1800000>;
254*4882a593Smuzhiyun					regulator-max-microvolt = <1800000>;
255*4882a593Smuzhiyun
256*4882a593Smuzhiyun					regulator-state-mem {
257*4882a593Smuzhiyun						regulator-off-in-suspend;
258*4882a593Smuzhiyun					};
259*4882a593Smuzhiyun				};
260*4882a593Smuzhiyun
261*4882a593Smuzhiyun				ldo8_reg: LDO8 {
262*4882a593Smuzhiyun					regulator-name = "VUSB_3.3V";
263*4882a593Smuzhiyun					regulator-min-microvolt = <3300000>;
264*4882a593Smuzhiyun					regulator-max-microvolt = <3300000>;
265*4882a593Smuzhiyun
266*4882a593Smuzhiyun					regulator-state-mem {
267*4882a593Smuzhiyun						regulator-off-in-suspend;
268*4882a593Smuzhiyun					};
269*4882a593Smuzhiyun				};
270*4882a593Smuzhiyun
271*4882a593Smuzhiyun				ldo9_reg: LDO9 {
272*4882a593Smuzhiyun					regulator-name = "VCC_2.8V_PDA";
273*4882a593Smuzhiyun					regulator-min-microvolt = <2800000>;
274*4882a593Smuzhiyun					regulator-max-microvolt = <2800000>;
275*4882a593Smuzhiyun					regulator-always-on;
276*4882a593Smuzhiyun				};
277*4882a593Smuzhiyun
278*4882a593Smuzhiyun				ldo10_reg: LDO10 {
279*4882a593Smuzhiyun					regulator-name = "VPLL_1.2V";
280*4882a593Smuzhiyun					regulator-min-microvolt = <1200000>;
281*4882a593Smuzhiyun					regulator-max-microvolt = <1200000>;
282*4882a593Smuzhiyun					regulator-always-on;
283*4882a593Smuzhiyun
284*4882a593Smuzhiyun					regulator-state-mem {
285*4882a593Smuzhiyun						regulator-on-in-suspend;
286*4882a593Smuzhiyun					};
287*4882a593Smuzhiyun				};
288*4882a593Smuzhiyun
289*4882a593Smuzhiyun				ldo11_reg: LDO11 {
290*4882a593Smuzhiyun					regulator-name = "CAM_AF_3.0V";
291*4882a593Smuzhiyun					regulator-min-microvolt = <3000000>;
292*4882a593Smuzhiyun					regulator-max-microvolt = <3000000>;
293*4882a593Smuzhiyun
294*4882a593Smuzhiyun					regulator-state-mem {
295*4882a593Smuzhiyun						regulator-off-in-suspend;
296*4882a593Smuzhiyun					};
297*4882a593Smuzhiyun				};
298*4882a593Smuzhiyun
299*4882a593Smuzhiyun				ldo12_reg: LDO12 {
300*4882a593Smuzhiyun					regulator-name = "CAM_SENSOR_CORE_1.2V";
301*4882a593Smuzhiyun					regulator-min-microvolt = <1200000>;
302*4882a593Smuzhiyun					regulator-max-microvolt = <1200000>;
303*4882a593Smuzhiyun
304*4882a593Smuzhiyun					regulator-state-mem {
305*4882a593Smuzhiyun						regulator-off-in-suspend;
306*4882a593Smuzhiyun					};
307*4882a593Smuzhiyun				};
308*4882a593Smuzhiyun
309*4882a593Smuzhiyun				ldo13_reg: LDO13 {
310*4882a593Smuzhiyun					regulator-name = "VGA_VDDIO_2.8V";
311*4882a593Smuzhiyun					regulator-min-microvolt = <2800000>;
312*4882a593Smuzhiyun					regulator-max-microvolt = <2800000>;
313*4882a593Smuzhiyun
314*4882a593Smuzhiyun					regulator-state-mem {
315*4882a593Smuzhiyun						regulator-off-in-suspend;
316*4882a593Smuzhiyun					};
317*4882a593Smuzhiyun				};
318*4882a593Smuzhiyun
319*4882a593Smuzhiyun				ldo14_reg: LDO14 {
320*4882a593Smuzhiyun					regulator-name = "VGA_DVDD_1.8V";
321*4882a593Smuzhiyun					regulator-min-microvolt = <1800000>;
322*4882a593Smuzhiyun					regulator-max-microvolt = <1800000>;
323*4882a593Smuzhiyun
324*4882a593Smuzhiyun					regulator-state-mem {
325*4882a593Smuzhiyun						regulator-off-in-suspend;
326*4882a593Smuzhiyun					};
327*4882a593Smuzhiyun				};
328*4882a593Smuzhiyun
329*4882a593Smuzhiyun				ldo15_reg: LDO15 {
330*4882a593Smuzhiyun					regulator-name = "CAM_ISP_HOST_2.8V";
331*4882a593Smuzhiyun					regulator-min-microvolt = <2800000>;
332*4882a593Smuzhiyun					regulator-max-microvolt = <2800000>;
333*4882a593Smuzhiyun
334*4882a593Smuzhiyun					regulator-state-mem {
335*4882a593Smuzhiyun						regulator-off-in-suspend;
336*4882a593Smuzhiyun					};
337*4882a593Smuzhiyun				};
338*4882a593Smuzhiyun
339*4882a593Smuzhiyun				ldo16_reg: LDO16 {
340*4882a593Smuzhiyun					regulator-name = "VGA_AVDD_2.8V";
341*4882a593Smuzhiyun					regulator-min-microvolt = <2800000>;
342*4882a593Smuzhiyun					regulator-max-microvolt = <2800000>;
343*4882a593Smuzhiyun
344*4882a593Smuzhiyun					regulator-state-mem {
345*4882a593Smuzhiyun						regulator-off-in-suspend;
346*4882a593Smuzhiyun					};
347*4882a593Smuzhiyun				};
348*4882a593Smuzhiyun
349*4882a593Smuzhiyun				ldo17_reg: LDO17 {
350*4882a593Smuzhiyun					regulator-name = "VCC_3.0V_LCD";
351*4882a593Smuzhiyun					regulator-min-microvolt = <3000000>;
352*4882a593Smuzhiyun					regulator-max-microvolt = <3000000>;
353*4882a593Smuzhiyun
354*4882a593Smuzhiyun					regulator-state-mem {
355*4882a593Smuzhiyun						regulator-off-in-suspend;
356*4882a593Smuzhiyun					};
357*4882a593Smuzhiyun				};
358*4882a593Smuzhiyun
359*4882a593Smuzhiyun				buck1_reg: BUCK1 {
360*4882a593Smuzhiyun					regulator-name = "vddarm";
361*4882a593Smuzhiyun					regulator-min-microvolt = <750000>;
362*4882a593Smuzhiyun					regulator-max-microvolt = <1500000>;
363*4882a593Smuzhiyun
364*4882a593Smuzhiyun					regulator-state-mem {
365*4882a593Smuzhiyun						regulator-off-in-suspend;
366*4882a593Smuzhiyun						regulator-suspend-microvolt = <1250000>;
367*4882a593Smuzhiyun					};
368*4882a593Smuzhiyun				};
369*4882a593Smuzhiyun
370*4882a593Smuzhiyun				buck2_reg: BUCK2 {
371*4882a593Smuzhiyun					regulator-name = "vddint";
372*4882a593Smuzhiyun					regulator-min-microvolt = <750000>;
373*4882a593Smuzhiyun					regulator-max-microvolt = <1500000>;
374*4882a593Smuzhiyun
375*4882a593Smuzhiyun					regulator-state-mem {
376*4882a593Smuzhiyun						regulator-off-in-suspend;
377*4882a593Smuzhiyun						regulator-suspend-microvolt = <1100000>;
378*4882a593Smuzhiyun					};
379*4882a593Smuzhiyun				};
380*4882a593Smuzhiyun
381*4882a593Smuzhiyun				buck3_reg: BUCK3 {
382*4882a593Smuzhiyun					regulator-name = "VCC_1.8V";
383*4882a593Smuzhiyun					regulator-min-microvolt = <1800000>;
384*4882a593Smuzhiyun					regulator-max-microvolt = <1800000>;
385*4882a593Smuzhiyun					regulator-always-on;
386*4882a593Smuzhiyun				};
387*4882a593Smuzhiyun
388*4882a593Smuzhiyun				buck4_reg: BUCK4 {
389*4882a593Smuzhiyun					regulator-name = "CAM_ISP_CORE_1.2V";
390*4882a593Smuzhiyun					regulator-min-microvolt = <1200000>;
391*4882a593Smuzhiyun					regulator-max-microvolt = <1200000>;
392*4882a593Smuzhiyun
393*4882a593Smuzhiyun					regulator-state-mem {
394*4882a593Smuzhiyun						regulator-off-in-suspend;
395*4882a593Smuzhiyun					};
396*4882a593Smuzhiyun				};
397*4882a593Smuzhiyun
398*4882a593Smuzhiyun				ap32khz_reg: EN32KHz-AP {
399*4882a593Smuzhiyun					regulator-name = "32KHz AP";
400*4882a593Smuzhiyun					regulator-always-on;
401*4882a593Smuzhiyun				};
402*4882a593Smuzhiyun
403*4882a593Smuzhiyun				cp32khz_reg: EN32KHz-CP {
404*4882a593Smuzhiyun					regulator-name = "32KHz CP";
405*4882a593Smuzhiyun				};
406*4882a593Smuzhiyun
407*4882a593Smuzhiyun				vichg_reg: ENVICHG {
408*4882a593Smuzhiyun					regulator-name = "VICHG";
409*4882a593Smuzhiyun					regulator-always-on;
410*4882a593Smuzhiyun				};
411*4882a593Smuzhiyun
412*4882a593Smuzhiyun				safe1_sreg: ESAFEOUT1 {
413*4882a593Smuzhiyun					regulator-name = "SAFEOUT1";
414*4882a593Smuzhiyun				};
415*4882a593Smuzhiyun
416*4882a593Smuzhiyun				safe2_sreg: ESAFEOUT2 {
417*4882a593Smuzhiyun					regulator-name = "SAFEOUT2";
418*4882a593Smuzhiyun				};
419*4882a593Smuzhiyun			};
420*4882a593Smuzhiyun		};
421*4882a593Smuzhiyun	};
422*4882a593Smuzhiyun
423*4882a593Smuzhiyun	i2c_musb: i2c-gpio-3 {
424*4882a593Smuzhiyun		compatible = "i2c-gpio";
425*4882a593Smuzhiyun		sda-gpios = <&gpj3 4 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
426*4882a593Smuzhiyun		scl-gpios = <&gpj3 5 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
427*4882a593Smuzhiyun		i2c-gpio,delay-us = <2>;
428*4882a593Smuzhiyun		#address-cells = <1>;
429*4882a593Smuzhiyun		#size-cells = <0>;
430*4882a593Smuzhiyun
431*4882a593Smuzhiyun		pinctrl-names = "default";
432*4882a593Smuzhiyun		pinctrl-0 = <&musb_i2c_pins>;
433*4882a593Smuzhiyun
434*4882a593Smuzhiyun		fsa9480: musb@25 {
435*4882a593Smuzhiyun			compatible = "fcs,fsa9480";
436*4882a593Smuzhiyun			reg = <0x25>;
437*4882a593Smuzhiyun			interrupt-parent = <&gph2>;
438*4882a593Smuzhiyun			interrupts = <7 IRQ_TYPE_EDGE_FALLING>;
439*4882a593Smuzhiyun
440*4882a593Smuzhiyun			pinctrl-names = "default";
441*4882a593Smuzhiyun			pinctrl-0 = <&musb_irq>;
442*4882a593Smuzhiyun		};
443*4882a593Smuzhiyun	};
444*4882a593Smuzhiyun
445*4882a593Smuzhiyun	i2c_fuel: i2c-gpio-4 {
446*4882a593Smuzhiyun		compatible = "i2c-gpio";
447*4882a593Smuzhiyun		sda-gpios = <&mp05 1 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
448*4882a593Smuzhiyun		scl-gpios = <&mp05 0 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
449*4882a593Smuzhiyun		i2c-gpio,delay-us = <2>;
450*4882a593Smuzhiyun		#address-cells = <1>;
451*4882a593Smuzhiyun		#size-cells = <0>;
452*4882a593Smuzhiyun
453*4882a593Smuzhiyun		pinctrl-names = "default";
454*4882a593Smuzhiyun		pinctrl-0 = <&fg_i2c_pins>;
455*4882a593Smuzhiyun
456*4882a593Smuzhiyun		fg: fuelgauge@36 {
457*4882a593Smuzhiyun			compatible = "maxim,max17040";
458*4882a593Smuzhiyun			reg = <0x36>;
459*4882a593Smuzhiyun		};
460*4882a593Smuzhiyun	};
461*4882a593Smuzhiyun
462*4882a593Smuzhiyun	i2c_touchkey: i2c-gpio-5 {
463*4882a593Smuzhiyun		compatible = "i2c-gpio";
464*4882a593Smuzhiyun		sda-gpios = <&gpj3 0 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
465*4882a593Smuzhiyun		scl-gpios = <&gpj3 1 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
466*4882a593Smuzhiyun		i2c-gpio,delay-us = <2>;
467*4882a593Smuzhiyun		#address-cells = <1>;
468*4882a593Smuzhiyun		#size-cells = <0>;
469*4882a593Smuzhiyun
470*4882a593Smuzhiyun		pinctrl-names = "default";
471*4882a593Smuzhiyun		pinctrl-0 = <&touchkey_i2c_pins>;
472*4882a593Smuzhiyun
473*4882a593Smuzhiyun		touchkey@20 {
474*4882a593Smuzhiyun			compatible = "cypress,aries-touchkey";
475*4882a593Smuzhiyun			reg = <0x20>;
476*4882a593Smuzhiyun			vdd-supply = <&touchkey_vdd>;
477*4882a593Smuzhiyun			vcc-supply = <&buck3_reg>;
478*4882a593Smuzhiyun			linux,keycodes = <KEY_MENU KEY_BACK
479*4882a593Smuzhiyun					  KEY_HOMEPAGE KEY_SEARCH>;
480*4882a593Smuzhiyun			interrupt-parent = <&gpj4>;
481*4882a593Smuzhiyun			interrupts = <1 IRQ_TYPE_LEVEL_LOW>;
482*4882a593Smuzhiyun
483*4882a593Smuzhiyun			pinctrl-names = "default";
484*4882a593Smuzhiyun			pinctrl-0 = <&touchkey_irq>;
485*4882a593Smuzhiyun		};
486*4882a593Smuzhiyun	};
487*4882a593Smuzhiyun
488*4882a593Smuzhiyun	i2c_prox: i2c-gpio-6 {
489*4882a593Smuzhiyun		compatible = "i2c-gpio";
490*4882a593Smuzhiyun		sda-gpios = <&gpg2 2 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
491*4882a593Smuzhiyun		scl-gpios = <&gpg0 2 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
492*4882a593Smuzhiyun		i2c-gpio,delay-us = <2>;
493*4882a593Smuzhiyun		#address-cells = <1>;
494*4882a593Smuzhiyun		#size-cells = <0>;
495*4882a593Smuzhiyun
496*4882a593Smuzhiyun		pinctrl-names = "default";
497*4882a593Smuzhiyun		pinctrl-0 = <&prox_i2c_pins>;
498*4882a593Smuzhiyun
499*4882a593Smuzhiyun		light-sensor@44 {
500*4882a593Smuzhiyun			compatible = "sharp,gp2ap002a00f";
501*4882a593Smuzhiyun			reg = <0x44>;
502*4882a593Smuzhiyun			interrupt-parent = <&gph0>;
503*4882a593Smuzhiyun			interrupts = <2 IRQ_TYPE_EDGE_FALLING>;
504*4882a593Smuzhiyun			vdd-supply = <&gp2a_vled>;
505*4882a593Smuzhiyun			vio-supply = <&gp2a_vled>;
506*4882a593Smuzhiyun			io-channels = <&gp2a_shunt>;
507*4882a593Smuzhiyun			io-channel-names = "alsout";
508*4882a593Smuzhiyun			sharp,proximity-far-hysteresis = /bits/ 8 <0x40>;
509*4882a593Smuzhiyun			sharp,proximity-close-hysteresis = /bits/ 8 <0x20>;
510*4882a593Smuzhiyun
511*4882a593Smuzhiyun			pinctrl-names = "default";
512*4882a593Smuzhiyun			pinctrl-0 = <&gp2a_irq>;
513*4882a593Smuzhiyun		};
514*4882a593Smuzhiyun	};
515*4882a593Smuzhiyun
516*4882a593Smuzhiyun	i2c_magnetometer: i2c-gpio-7 {
517*4882a593Smuzhiyun		compatible = "i2c-gpio";
518*4882a593Smuzhiyun		sda-gpios = <&gpj0 1 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
519*4882a593Smuzhiyun		scl-gpios = <&gpj0 0 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
520*4882a593Smuzhiyun		i2c-gpio,delay-us = <2>;
521*4882a593Smuzhiyun		#address-cells = <1>;
522*4882a593Smuzhiyun		#size-cells = <0>;
523*4882a593Smuzhiyun
524*4882a593Smuzhiyun		pinctrl-names = "default";
525*4882a593Smuzhiyun		pinctrl-0 = <&magnetometer_i2c_pins>;
526*4882a593Smuzhiyun
527*4882a593Smuzhiyun		status = "disabled";
528*4882a593Smuzhiyun
529*4882a593Smuzhiyun		/* Yamaha yas529 magnetometer, no mainline binding */
530*4882a593Smuzhiyun	};
531*4882a593Smuzhiyun
532*4882a593Smuzhiyun	vibrator: pwm-vibrator {
533*4882a593Smuzhiyun		compatible = "pwm-vibrator";
534*4882a593Smuzhiyun		pwms = <&pwm 1 44642 0>;
535*4882a593Smuzhiyun		pwm-names = "enable";
536*4882a593Smuzhiyun		vcc-supply = <&vibrator_pwr>;
537*4882a593Smuzhiyun		pinctrl-names = "default";
538*4882a593Smuzhiyun		pinctrl-0 = <&pwm1_out>;
539*4882a593Smuzhiyun	};
540*4882a593Smuzhiyun
541*4882a593Smuzhiyun	poweroff: syscon-poweroff {
542*4882a593Smuzhiyun		compatible = "syscon-poweroff";
543*4882a593Smuzhiyun		regmap = <&pmu_syscon>;
544*4882a593Smuzhiyun		offset = <0x681c>; /* PS_HOLD_CONTROL */
545*4882a593Smuzhiyun		value = <0x5200>;
546*4882a593Smuzhiyun	};
547*4882a593Smuzhiyun
548*4882a593Smuzhiyun	spi_lcd: spi-2 {
549*4882a593Smuzhiyun		compatible = "spi-gpio";
550*4882a593Smuzhiyun		#address-cells = <1>;
551*4882a593Smuzhiyun		#size-cells = <0>;
552*4882a593Smuzhiyun
553*4882a593Smuzhiyun		sck-gpios = <&mp04 1 GPIO_ACTIVE_HIGH>;
554*4882a593Smuzhiyun		mosi-gpios = <&mp04 3 GPIO_ACTIVE_HIGH>;
555*4882a593Smuzhiyun		cs-gpios = <&mp01 1 GPIO_ACTIVE_HIGH>;
556*4882a593Smuzhiyun		num-chipselects = <1>;
557*4882a593Smuzhiyun
558*4882a593Smuzhiyun		pinctrl-names = "default";
559*4882a593Smuzhiyun		pinctrl-0 = <&lcd_spi_pins>;
560*4882a593Smuzhiyun
561*4882a593Smuzhiyun		panel@0 {
562*4882a593Smuzhiyun			compatible = "samsung,s6e63m0";
563*4882a593Smuzhiyun			reg = <0>;
564*4882a593Smuzhiyun			reset-gpios = <&mp05 5 GPIO_ACTIVE_LOW>;
565*4882a593Smuzhiyun			vdd3-supply = <&ldo7_reg>;
566*4882a593Smuzhiyun			vci-supply = <&ldo17_reg>;
567*4882a593Smuzhiyun			spi-max-frequency = <1200000>;
568*4882a593Smuzhiyun
569*4882a593Smuzhiyun			pinctrl-names = "default";
570*4882a593Smuzhiyun			pinctrl-0 = <&panel_rst>;
571*4882a593Smuzhiyun
572*4882a593Smuzhiyun			port {
573*4882a593Smuzhiyun				lcd_ep: endpoint {
574*4882a593Smuzhiyun					remote-endpoint = <&fimd_ep>;
575*4882a593Smuzhiyun				};
576*4882a593Smuzhiyun			};
577*4882a593Smuzhiyun		};
578*4882a593Smuzhiyun	};
579*4882a593Smuzhiyun};
580*4882a593Smuzhiyun
581*4882a593Smuzhiyun&adc {
582*4882a593Smuzhiyun	vdd-supply = <&ldo4_reg>;
583*4882a593Smuzhiyun
584*4882a593Smuzhiyun	status = "okay";
585*4882a593Smuzhiyun
586*4882a593Smuzhiyun	gp2a_shunt: current-sense-shunt {
587*4882a593Smuzhiyun		compatible = "current-sense-shunt";
588*4882a593Smuzhiyun		io-channels = <&adc 9>;
589*4882a593Smuzhiyun		shunt-resistor-micro-ohms = <47000000>; /* 47 ohms */
590*4882a593Smuzhiyun		#io-channel-cells = <0>;
591*4882a593Smuzhiyun		io-channel-ranges;
592*4882a593Smuzhiyun	};
593*4882a593Smuzhiyun};
594*4882a593Smuzhiyun
595*4882a593Smuzhiyun&fimd {
596*4882a593Smuzhiyun	pinctrl-names = "default";
597*4882a593Smuzhiyun	pinctrl-0 = <&lcd_clk &lcd_data24>;
598*4882a593Smuzhiyun	status = "okay";
599*4882a593Smuzhiyun
600*4882a593Smuzhiyun	samsung,invert-vden;
601*4882a593Smuzhiyun	samsung,invert-vclk;
602*4882a593Smuzhiyun
603*4882a593Smuzhiyun	#address-cells = <1>;
604*4882a593Smuzhiyun	#size-cells = <0>;
605*4882a593Smuzhiyun
606*4882a593Smuzhiyun	port@3 {
607*4882a593Smuzhiyun		reg = <3>;
608*4882a593Smuzhiyun		fimd_ep: endpoint {
609*4882a593Smuzhiyun			remote-endpoint = <&lcd_ep>;
610*4882a593Smuzhiyun		};
611*4882a593Smuzhiyun	};
612*4882a593Smuzhiyun};
613*4882a593Smuzhiyun
614*4882a593Smuzhiyun&hsotg {
615*4882a593Smuzhiyun	vusb_a-supply = <&ldo8_reg>;
616*4882a593Smuzhiyun	vusb_d-supply = <&ldo3_reg>;
617*4882a593Smuzhiyun	dr_mode = "peripheral";
618*4882a593Smuzhiyun	status = "okay";
619*4882a593Smuzhiyun};
620*4882a593Smuzhiyun
621*4882a593Smuzhiyun&i2c2 {
622*4882a593Smuzhiyun	samsung,i2c-sda-delay = <100>;
623*4882a593Smuzhiyun	samsung,i2c-max-bus-freq = <400000>;
624*4882a593Smuzhiyun	samsung,i2c-slave-addr = <0x10>;
625*4882a593Smuzhiyun	status = "okay";
626*4882a593Smuzhiyun
627*4882a593Smuzhiyun	touchscreen@4a {
628*4882a593Smuzhiyun		compatible = "atmel,maxtouch";
629*4882a593Smuzhiyun		reg = <0x4a>;
630*4882a593Smuzhiyun		interrupt-parent = <&gpj0>;
631*4882a593Smuzhiyun		interrupts = <5 IRQ_TYPE_EDGE_FALLING>;
632*4882a593Smuzhiyun		pinctrl-names = "default";
633*4882a593Smuzhiyun		pinctrl-0 = <&ts_irq>;
634*4882a593Smuzhiyun		reset-gpios = <&gpj1 3 GPIO_ACTIVE_LOW>;
635*4882a593Smuzhiyun	};
636*4882a593Smuzhiyun};
637*4882a593Smuzhiyun
638*4882a593Smuzhiyun&i2s0 {
639*4882a593Smuzhiyun	dmas = <&pdma0 10>, <&pdma0 9>, <&pdma0 11>;
640*4882a593Smuzhiyun	status = "okay";
641*4882a593Smuzhiyun};
642*4882a593Smuzhiyun
643*4882a593Smuzhiyun&mfc {
644*4882a593Smuzhiyun	memory-region = <&mfc_left>, <&mfc_right>;
645*4882a593Smuzhiyun};
646*4882a593Smuzhiyun
647*4882a593Smuzhiyun&pinctrl0 {
648*4882a593Smuzhiyun	bt_reset: bt-reset {
649*4882a593Smuzhiyun		samsung,pins = "gpb-3";
650*4882a593Smuzhiyun		samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
651*4882a593Smuzhiyun		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
652*4882a593Smuzhiyun		samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
653*4882a593Smuzhiyun	};
654*4882a593Smuzhiyun
655*4882a593Smuzhiyun	wlan_bt_en: wlan-bt-en {
656*4882a593Smuzhiyun		samsung,pins = "gpb-5";
657*4882a593Smuzhiyun		samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
658*4882a593Smuzhiyun		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
659*4882a593Smuzhiyun		samsung,pin-val = <1>;
660*4882a593Smuzhiyun	};
661*4882a593Smuzhiyun
662*4882a593Smuzhiyun	codec_ldo: codec-ldo {
663*4882a593Smuzhiyun		samsung,pins = "gpf3-4";
664*4882a593Smuzhiyun		samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
665*4882a593Smuzhiyun		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
666*4882a593Smuzhiyun	};
667*4882a593Smuzhiyun
668*4882a593Smuzhiyun	prox_i2c_pins: gp2a-i2c-pins {
669*4882a593Smuzhiyun		samsung,pins = "gpg0-2", "gpg2-2";
670*4882a593Smuzhiyun		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
671*4882a593Smuzhiyun		samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
672*4882a593Smuzhiyun	};
673*4882a593Smuzhiyun
674*4882a593Smuzhiyun	wlan_gpio_rst: wlan-gpio-rst {
675*4882a593Smuzhiyun		samsung,pins = "gpg1-2";
676*4882a593Smuzhiyun		samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
677*4882a593Smuzhiyun		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
678*4882a593Smuzhiyun	};
679*4882a593Smuzhiyun
680*4882a593Smuzhiyun	bt_wake: bt-wake {
681*4882a593Smuzhiyun		samsung,pins = "gpg3-4";
682*4882a593Smuzhiyun		samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
683*4882a593Smuzhiyun		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
684*4882a593Smuzhiyun	};
685*4882a593Smuzhiyun
686*4882a593Smuzhiyun	gp2a_irq: gp2a-irq {
687*4882a593Smuzhiyun		samsung,pins = "gph0-2";
688*4882a593Smuzhiyun		samsung,pin-function = <EXYNOS_PIN_FUNC_F>;
689*4882a593Smuzhiyun		samsung,pin-pud = <S3C64XX_PIN_PULL_DOWN>;
690*4882a593Smuzhiyun		samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
691*4882a593Smuzhiyun	};
692*4882a593Smuzhiyun
693*4882a593Smuzhiyun	pmic_dvs_pins: pmic-dvs-pins {
694*4882a593Smuzhiyun		samsung,pins = "gph0-3", "gph0-4", "gph0-5";
695*4882a593Smuzhiyun		samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
696*4882a593Smuzhiyun		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
697*4882a593Smuzhiyun		samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
698*4882a593Smuzhiyun		samsung,pin-val = <0>;
699*4882a593Smuzhiyun	};
700*4882a593Smuzhiyun
701*4882a593Smuzhiyun	pmic_irq: pmic-irq {
702*4882a593Smuzhiyun		samsung,pins = "gph0-7";
703*4882a593Smuzhiyun		samsung,pin-function = <EXYNOS_PIN_FUNC_F>;
704*4882a593Smuzhiyun		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
705*4882a593Smuzhiyun		samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
706*4882a593Smuzhiyun	};
707*4882a593Smuzhiyun
708*4882a593Smuzhiyun	wifi_host_wake: wifi-host-wake {
709*4882a593Smuzhiyun		samsung,pins = "gph2-4";
710*4882a593Smuzhiyun		samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
711*4882a593Smuzhiyun		samsung,pin-pud = <S3C64XX_PIN_PULL_DOWN>;
712*4882a593Smuzhiyun		samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
713*4882a593Smuzhiyun	};
714*4882a593Smuzhiyun
715*4882a593Smuzhiyun	bt_host_wake: bt-host-wake {
716*4882a593Smuzhiyun		samsung,pins = "gph2-5";
717*4882a593Smuzhiyun		samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
718*4882a593Smuzhiyun		samsung,pin-pud = <S3C64XX_PIN_PULL_DOWN>;
719*4882a593Smuzhiyun		samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
720*4882a593Smuzhiyun	};
721*4882a593Smuzhiyun
722*4882a593Smuzhiyun	musb_irq: musq-irq {
723*4882a593Smuzhiyun		samsung,pins = "gph2-7";
724*4882a593Smuzhiyun		samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
725*4882a593Smuzhiyun		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
726*4882a593Smuzhiyun		samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
727*4882a593Smuzhiyun	};
728*4882a593Smuzhiyun
729*4882a593Smuzhiyun	tf_detect: tf-detect {
730*4882a593Smuzhiyun		samsung,pins = "gph3-4";
731*4882a593Smuzhiyun		samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
732*4882a593Smuzhiyun		samsung,pin-pud = <S3C64XX_PIN_PULL_DOWN>;
733*4882a593Smuzhiyun		samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
734*4882a593Smuzhiyun	};
735*4882a593Smuzhiyun
736*4882a593Smuzhiyun	wifi_wake: wifi-wake {
737*4882a593Smuzhiyun		samsung,pins = "gph3-5";
738*4882a593Smuzhiyun		samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
739*4882a593Smuzhiyun		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
740*4882a593Smuzhiyun	};
741*4882a593Smuzhiyun
742*4882a593Smuzhiyun	magnetometer_i2c_pins: yas529-i2c-pins {
743*4882a593Smuzhiyun		samsung,pins = "gpj0-0", "gpj0-1";
744*4882a593Smuzhiyun		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
745*4882a593Smuzhiyun		samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
746*4882a593Smuzhiyun	};
747*4882a593Smuzhiyun
748*4882a593Smuzhiyun	ts_irq: ts-irq {
749*4882a593Smuzhiyun		samsung,pins = "gpj0-5";
750*4882a593Smuzhiyun		samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
751*4882a593Smuzhiyun		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
752*4882a593Smuzhiyun		samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
753*4882a593Smuzhiyun	};
754*4882a593Smuzhiyun
755*4882a593Smuzhiyun	vibrator_ena: vibrator-ena {
756*4882a593Smuzhiyun		samsung,pins = "gpj1-1";
757*4882a593Smuzhiyun		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
758*4882a593Smuzhiyun		samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
759*4882a593Smuzhiyun	};
760*4882a593Smuzhiyun
761*4882a593Smuzhiyun	gp2a_power: gp2a-power {
762*4882a593Smuzhiyun		samsung,pins = "gpj1-4";
763*4882a593Smuzhiyun		samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
764*4882a593Smuzhiyun		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
765*4882a593Smuzhiyun		samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
766*4882a593Smuzhiyun	};
767*4882a593Smuzhiyun
768*4882a593Smuzhiyun	touchkey_i2c_pins: touchkey-i2c-pins {
769*4882a593Smuzhiyun		samsung,pins = "gpj3-0", "gpj3-1";
770*4882a593Smuzhiyun		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
771*4882a593Smuzhiyun		samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
772*4882a593Smuzhiyun	};
773*4882a593Smuzhiyun
774*4882a593Smuzhiyun	touchkey_vdd_ena: touchkey-vdd-ena {
775*4882a593Smuzhiyun		samsung,pins = "gpj3-2";
776*4882a593Smuzhiyun		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
777*4882a593Smuzhiyun		samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
778*4882a593Smuzhiyun	};
779*4882a593Smuzhiyun
780*4882a593Smuzhiyun	musb_i2c_pins: musb-i2c-pins {
781*4882a593Smuzhiyun		samsung,pins = "gpj3-4", "gpj3-5";
782*4882a593Smuzhiyun		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
783*4882a593Smuzhiyun		samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
784*4882a593Smuzhiyun	};
785*4882a593Smuzhiyun
786*4882a593Smuzhiyun	accel_i2c_pins: accel-i2c-pins {
787*4882a593Smuzhiyun		samsung,pins = "gpj3-6", "gpj3-7";
788*4882a593Smuzhiyun		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
789*4882a593Smuzhiyun		samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
790*4882a593Smuzhiyun	};
791*4882a593Smuzhiyun
792*4882a593Smuzhiyun	pmic_i2c_pins: pmic-i2c-pins {
793*4882a593Smuzhiyun		samsung,pins = "gpj4-0", "gpj4-3";
794*4882a593Smuzhiyun		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
795*4882a593Smuzhiyun		samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
796*4882a593Smuzhiyun	};
797*4882a593Smuzhiyun
798*4882a593Smuzhiyun	touchkey_irq: touchkey-irq {
799*4882a593Smuzhiyun		samsung,pins = "gpj4-1";
800*4882a593Smuzhiyun		samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
801*4882a593Smuzhiyun		samsung,pin-pud = <S3C64XX_PIN_PULL_UP>;
802*4882a593Smuzhiyun		samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
803*4882a593Smuzhiyun	};
804*4882a593Smuzhiyun
805*4882a593Smuzhiyun	lcd_spi_pins: spi-lcd-pins {
806*4882a593Smuzhiyun		samsung,pins = "mp01-1", "mp04-1", "mp04-3";
807*4882a593Smuzhiyun		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
808*4882a593Smuzhiyun		samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
809*4882a593Smuzhiyun	};
810*4882a593Smuzhiyun
811*4882a593Smuzhiyun	fg_i2c_pins: fg-i2c-pins {
812*4882a593Smuzhiyun		samsung,pins = "mp05-0", "mp05-1";
813*4882a593Smuzhiyun		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
814*4882a593Smuzhiyun		samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
815*4882a593Smuzhiyun	};
816*4882a593Smuzhiyun
817*4882a593Smuzhiyun	sound_i2c_pins: sound-i2c-pins {
818*4882a593Smuzhiyun		samsung,pins = "mp05-2", "mp05-3";
819*4882a593Smuzhiyun		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
820*4882a593Smuzhiyun		samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
821*4882a593Smuzhiyun	};
822*4882a593Smuzhiyun
823*4882a593Smuzhiyun	panel_rst: panel-rst {
824*4882a593Smuzhiyun		samsung,pins = "mp05-5";
825*4882a593Smuzhiyun		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
826*4882a593Smuzhiyun		samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
827*4882a593Smuzhiyun	};
828*4882a593Smuzhiyun};
829*4882a593Smuzhiyun
830*4882a593Smuzhiyun&pwm {
831*4882a593Smuzhiyun	samsung,pwm-outputs = <1>;
832*4882a593Smuzhiyun};
833*4882a593Smuzhiyun
834*4882a593Smuzhiyun&rtc {
835*4882a593Smuzhiyun	clocks = <&clocks CLK_RTC>, <&pmic_ap_clk>;
836*4882a593Smuzhiyun	clock-names = "rtc", "rtc_src";
837*4882a593Smuzhiyun};
838*4882a593Smuzhiyun
839*4882a593Smuzhiyun&sdhci1 {
840*4882a593Smuzhiyun	#address-cells = <1>;
841*4882a593Smuzhiyun	#size-cells = <0>;
842*4882a593Smuzhiyun
843*4882a593Smuzhiyun	bus-width = <4>;
844*4882a593Smuzhiyun	max-frequency = <38400000>;
845*4882a593Smuzhiyun	pinctrl-0 = <&sd1_clk &sd1_cmd &sd1_bus4 &wifi_wake &wifi_host_wake &wlan_bt_en>;
846*4882a593Smuzhiyun	pinctrl-names = "default";
847*4882a593Smuzhiyun	cap-sd-highspeed;
848*4882a593Smuzhiyun	cap-mmc-highspeed;
849*4882a593Smuzhiyun	keep-power-in-suspend;
850*4882a593Smuzhiyun
851*4882a593Smuzhiyun	mmc-pwrseq = <&wifi_pwrseq>;
852*4882a593Smuzhiyun	non-removable;
853*4882a593Smuzhiyun	status = "okay";
854*4882a593Smuzhiyun
855*4882a593Smuzhiyun	assigned-clocks = <&clocks MOUT_MMC1>, <&clocks SCLK_MMC1>;
856*4882a593Smuzhiyun	assigned-clock-rates = <0>, <50000000>;
857*4882a593Smuzhiyun	assigned-clock-parents = <&clocks MOUT_MPLL>;
858*4882a593Smuzhiyun
859*4882a593Smuzhiyun	wlan@1 {
860*4882a593Smuzhiyun		reg = <1>;
861*4882a593Smuzhiyun		compatible = "brcm,bcm4329-fmac";
862*4882a593Smuzhiyun		interrupt-parent = <&gph2>;
863*4882a593Smuzhiyun		interrupts = <4 IRQ_TYPE_LEVEL_HIGH>;
864*4882a593Smuzhiyun		interrupt-names = "host-wake";
865*4882a593Smuzhiyun	};
866*4882a593Smuzhiyun};
867*4882a593Smuzhiyun
868*4882a593Smuzhiyun&sdhci2 {
869*4882a593Smuzhiyun	bus-width = <4>;
870*4882a593Smuzhiyun	cd-gpios = <&gph3 4 GPIO_ACTIVE_LOW>;
871*4882a593Smuzhiyun	vmmc-supply = <&ldo5_reg>;
872*4882a593Smuzhiyun	pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_bus4 &tf_detect>;
873*4882a593Smuzhiyun	pinctrl-names = "default";
874*4882a593Smuzhiyun	status = "okay";
875*4882a593Smuzhiyun
876*4882a593Smuzhiyun	assigned-clocks = <&clocks MOUT_MMC2>, <&clocks SCLK_MMC2>;
877*4882a593Smuzhiyun	assigned-clock-rates = <0>, <50000000>;
878*4882a593Smuzhiyun	assigned-clock-parents = <&clocks MOUT_MPLL>;
879*4882a593Smuzhiyun};
880*4882a593Smuzhiyun
881*4882a593Smuzhiyun&uart0 {
882*4882a593Smuzhiyun	assigned-clocks = <&clocks MOUT_UART0>, <&clocks SCLK_UART0>;
883*4882a593Smuzhiyun	assigned-clock-rates = <0>, <111166667>;
884*4882a593Smuzhiyun	assigned-clock-parents = <&clocks MOUT_MPLL>;
885*4882a593Smuzhiyun
886*4882a593Smuzhiyun	status = "okay";
887*4882a593Smuzhiyun
888*4882a593Smuzhiyun	bluetooth {
889*4882a593Smuzhiyun		compatible = "brcm,bcm4329-bt";
890*4882a593Smuzhiyun		max-speed = <3000000>;
891*4882a593Smuzhiyun		pinctrl-names = "default";
892*4882a593Smuzhiyun		pinctrl-0 = <&uart0_data &uart0_fctl &bt_host_wake
893*4882a593Smuzhiyun			     &bt_reset &bt_wake>;
894*4882a593Smuzhiyun		shutdown-gpios = <&gpb 3 GPIO_ACTIVE_HIGH>;
895*4882a593Smuzhiyun		device-wakeup-gpios = <&gpg3 4 GPIO_ACTIVE_HIGH>;
896*4882a593Smuzhiyun		interrupt-parent = <&gph2>;
897*4882a593Smuzhiyun		interrupts = <5 IRQ_TYPE_LEVEL_HIGH>;
898*4882a593Smuzhiyun		interrupt-names = "host-wakeup";
899*4882a593Smuzhiyun	};
900*4882a593Smuzhiyun};
901*4882a593Smuzhiyun
902*4882a593Smuzhiyun&uart1 {
903*4882a593Smuzhiyun	status = "okay";
904*4882a593Smuzhiyun};
905*4882a593Smuzhiyun
906*4882a593Smuzhiyun&uart2 {
907*4882a593Smuzhiyun	status = "okay";
908*4882a593Smuzhiyun};
909*4882a593Smuzhiyun
910*4882a593Smuzhiyun&usbphy {
911*4882a593Smuzhiyun	status = "okay";
912*4882a593Smuzhiyun	vbus-supply = <&safe1_sreg>;
913*4882a593Smuzhiyun};
914*4882a593Smuzhiyun
915*4882a593Smuzhiyun&xusbxti {
916*4882a593Smuzhiyun	clock-frequency = <24000000>;
917*4882a593Smuzhiyun};
918