xref: /OK3568_Linux_fs/kernel/arch/arm/boot/dts/exynos5250-arndale.dts (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun// SPDX-License-Identifier: GPL-2.0
2*4882a593Smuzhiyun/*
3*4882a593Smuzhiyun * Samsung's Exynos5250 based Arndale board device tree source
4*4882a593Smuzhiyun *
5*4882a593Smuzhiyun * Copyright (c) 2013 Samsung Electronics Co., Ltd.
6*4882a593Smuzhiyun *		http://www.samsung.com
7*4882a593Smuzhiyun */
8*4882a593Smuzhiyun
9*4882a593Smuzhiyun/dts-v1/;
10*4882a593Smuzhiyun#include <dt-bindings/gpio/gpio.h>
11*4882a593Smuzhiyun#include <dt-bindings/interrupt-controller/irq.h>
12*4882a593Smuzhiyun#include <dt-bindings/input/input.h>
13*4882a593Smuzhiyun#include <dt-bindings/clock/samsung,s2mps11.h>
14*4882a593Smuzhiyun#include <dt-bindings/sound/samsung-i2s.h>
15*4882a593Smuzhiyun#include "exynos5250.dtsi"
16*4882a593Smuzhiyun
17*4882a593Smuzhiyun/ {
18*4882a593Smuzhiyun	model = "Insignal Arndale evaluation board based on Exynos5250";
19*4882a593Smuzhiyun	compatible = "insignal,arndale", "samsung,exynos5250", "samsung,exynos5";
20*4882a593Smuzhiyun
21*4882a593Smuzhiyun	memory@40000000 {
22*4882a593Smuzhiyun		device_type = "memory";
23*4882a593Smuzhiyun		reg = <0x40000000 0x80000000>;
24*4882a593Smuzhiyun	};
25*4882a593Smuzhiyun
26*4882a593Smuzhiyun	chosen {
27*4882a593Smuzhiyun		stdout-path = "serial2:115200n8";
28*4882a593Smuzhiyun	};
29*4882a593Smuzhiyun
30*4882a593Smuzhiyun	gpio_keys {
31*4882a593Smuzhiyun		compatible = "gpio-keys";
32*4882a593Smuzhiyun
33*4882a593Smuzhiyun		menu {
34*4882a593Smuzhiyun			label = "SW-TACT2";
35*4882a593Smuzhiyun			gpios = <&gpx1 4 GPIO_ACTIVE_LOW>;
36*4882a593Smuzhiyun			linux,code = <KEY_MENU>;
37*4882a593Smuzhiyun			wakeup-source;
38*4882a593Smuzhiyun		};
39*4882a593Smuzhiyun
40*4882a593Smuzhiyun		home {
41*4882a593Smuzhiyun			label = "SW-TACT3";
42*4882a593Smuzhiyun			gpios = <&gpx1 5 GPIO_ACTIVE_LOW>;
43*4882a593Smuzhiyun			linux,code = <KEY_HOME>;
44*4882a593Smuzhiyun			wakeup-source;
45*4882a593Smuzhiyun		};
46*4882a593Smuzhiyun
47*4882a593Smuzhiyun		up {
48*4882a593Smuzhiyun			label = "SW-TACT4";
49*4882a593Smuzhiyun			gpios = <&gpx1 6 GPIO_ACTIVE_LOW>;
50*4882a593Smuzhiyun			linux,code = <KEY_UP>;
51*4882a593Smuzhiyun			wakeup-source;
52*4882a593Smuzhiyun		};
53*4882a593Smuzhiyun
54*4882a593Smuzhiyun		down {
55*4882a593Smuzhiyun			label = "SW-TACT5";
56*4882a593Smuzhiyun			gpios = <&gpx1 7 GPIO_ACTIVE_LOW>;
57*4882a593Smuzhiyun			linux,code = <KEY_DOWN>;
58*4882a593Smuzhiyun			wakeup-source;
59*4882a593Smuzhiyun		};
60*4882a593Smuzhiyun
61*4882a593Smuzhiyun		back {
62*4882a593Smuzhiyun			label = "SW-TACT6";
63*4882a593Smuzhiyun			gpios = <&gpx2 0 GPIO_ACTIVE_LOW>;
64*4882a593Smuzhiyun			linux,code = <KEY_BACK>;
65*4882a593Smuzhiyun			wakeup-source;
66*4882a593Smuzhiyun		};
67*4882a593Smuzhiyun
68*4882a593Smuzhiyun		wakeup {
69*4882a593Smuzhiyun			label = "SW-TACT7";
70*4882a593Smuzhiyun			gpios = <&gpx2 1 GPIO_ACTIVE_LOW>;
71*4882a593Smuzhiyun			linux,code = <KEY_WAKEUP>;
72*4882a593Smuzhiyun			wakeup-source;
73*4882a593Smuzhiyun		};
74*4882a593Smuzhiyun	};
75*4882a593Smuzhiyun
76*4882a593Smuzhiyun	panel: panel {
77*4882a593Smuzhiyun		compatible = "boe,hv070wsa-100";
78*4882a593Smuzhiyun		power-supply = <&vcc_3v3_reg>;
79*4882a593Smuzhiyun		enable-gpios = <&gpd1 3 GPIO_ACTIVE_HIGH>;
80*4882a593Smuzhiyun		port {
81*4882a593Smuzhiyun			panel_ep: endpoint {
82*4882a593Smuzhiyun				remote-endpoint = <&bridge_out_ep>;
83*4882a593Smuzhiyun			};
84*4882a593Smuzhiyun		};
85*4882a593Smuzhiyun	};
86*4882a593Smuzhiyun
87*4882a593Smuzhiyun	main_dc_reg: regulator-0 {
88*4882a593Smuzhiyun		compatible = "regulator-fixed";
89*4882a593Smuzhiyun		regulator-name = "MAIN_DC";
90*4882a593Smuzhiyun		regulator-always-on;
91*4882a593Smuzhiyun	};
92*4882a593Smuzhiyun
93*4882a593Smuzhiyun	mmc_reg: regulator-1 {
94*4882a593Smuzhiyun		compatible = "regulator-fixed";
95*4882a593Smuzhiyun		regulator-name = "VDD_MMC";
96*4882a593Smuzhiyun		regulator-min-microvolt = <2800000>;
97*4882a593Smuzhiyun		regulator-max-microvolt = <2800000>;
98*4882a593Smuzhiyun		regulator-always-on;
99*4882a593Smuzhiyun	};
100*4882a593Smuzhiyun
101*4882a593Smuzhiyun	reg_hdmi_en: regulator-2 {
102*4882a593Smuzhiyun		compatible = "regulator-fixed";
103*4882a593Smuzhiyun		regulator-name = "hdmi-en";
104*4882a593Smuzhiyun		regulator-always-on;
105*4882a593Smuzhiyun	};
106*4882a593Smuzhiyun
107*4882a593Smuzhiyun	vcc_1v2_reg: regulator-3 {
108*4882a593Smuzhiyun		compatible = "regulator-fixed";
109*4882a593Smuzhiyun		regulator-name = "VCC_1V2";
110*4882a593Smuzhiyun		regulator-min-microvolt = <1200000>;
111*4882a593Smuzhiyun		regulator-max-microvolt = <1200000>;
112*4882a593Smuzhiyun		regulator-always-on;
113*4882a593Smuzhiyun	};
114*4882a593Smuzhiyun
115*4882a593Smuzhiyun	vcc_1v8_reg: regulator-4 {
116*4882a593Smuzhiyun		compatible = "regulator-fixed";
117*4882a593Smuzhiyun		regulator-name = "VCC_1V8";
118*4882a593Smuzhiyun		regulator-min-microvolt = <1800000>;
119*4882a593Smuzhiyun		regulator-max-microvolt = <1800000>;
120*4882a593Smuzhiyun		regulator-always-on;
121*4882a593Smuzhiyun	};
122*4882a593Smuzhiyun
123*4882a593Smuzhiyun	vcc_3v3_reg: regulator-5 {
124*4882a593Smuzhiyun		compatible = "regulator-fixed";
125*4882a593Smuzhiyun		regulator-name = "VCC_3V3";
126*4882a593Smuzhiyun		regulator-min-microvolt = <3300000>;
127*4882a593Smuzhiyun		regulator-max-microvolt = <3300000>;
128*4882a593Smuzhiyun		regulator-always-on;
129*4882a593Smuzhiyun	};
130*4882a593Smuzhiyun
131*4882a593Smuzhiyun	sound {
132*4882a593Smuzhiyun		compatible = "samsung,arndale-wm1811";
133*4882a593Smuzhiyun		samsung,audio-cpu = <&i2s0>;
134*4882a593Smuzhiyun		samsung,audio-codec = <&wm1811>;
135*4882a593Smuzhiyun	};
136*4882a593Smuzhiyun
137*4882a593Smuzhiyun	fixed-rate-clocks {
138*4882a593Smuzhiyun		xxti {
139*4882a593Smuzhiyun			compatible = "samsung,clock-xxti";
140*4882a593Smuzhiyun			clock-frequency = <24000000>;
141*4882a593Smuzhiyun		};
142*4882a593Smuzhiyun	};
143*4882a593Smuzhiyun
144*4882a593Smuzhiyun	// SMSC USB3503 connected in hardware only mode as a PHY
145*4882a593Smuzhiyun	usb_hub: usb-hub {
146*4882a593Smuzhiyun		compatible = "smsc,usb3503a";
147*4882a593Smuzhiyun
148*4882a593Smuzhiyun		reset-gpios = <&gpx3 5 GPIO_ACTIVE_LOW>;
149*4882a593Smuzhiyun		connect-gpios = <&gpd1 7 GPIO_ACTIVE_HIGH>;
150*4882a593Smuzhiyun	};
151*4882a593Smuzhiyun};
152*4882a593Smuzhiyun
153*4882a593Smuzhiyun&clock {
154*4882a593Smuzhiyun	assigned-clocks = <&clock CLK_FOUT_EPLL>;
155*4882a593Smuzhiyun	assigned-clock-rates = <49152000>;
156*4882a593Smuzhiyun};
157*4882a593Smuzhiyun
158*4882a593Smuzhiyun&clock_audss {
159*4882a593Smuzhiyun	assigned-clocks = <&clock_audss EXYNOS_MOUT_AUDSS>;
160*4882a593Smuzhiyun	assigned-clock-parents = <&clock CLK_FOUT_EPLL>;
161*4882a593Smuzhiyun};
162*4882a593Smuzhiyun
163*4882a593Smuzhiyun&cpu0 {
164*4882a593Smuzhiyun	cpu0-supply = <&buck2_reg>;
165*4882a593Smuzhiyun};
166*4882a593Smuzhiyun
167*4882a593Smuzhiyun&dsi_0 {
168*4882a593Smuzhiyun	vddcore-supply = <&ldo8_reg>;
169*4882a593Smuzhiyun	vddio-supply = <&ldo10_reg>;
170*4882a593Smuzhiyun	samsung,pll-clock-frequency = <24000000>;
171*4882a593Smuzhiyun	samsung,burst-clock-frequency = <320000000>;
172*4882a593Smuzhiyun	samsung,esc-clock-frequency = <10000000>;
173*4882a593Smuzhiyun	status = "okay";
174*4882a593Smuzhiyun
175*4882a593Smuzhiyun	bridge@0 {
176*4882a593Smuzhiyun		reg = <0>;
177*4882a593Smuzhiyun		compatible = "toshiba,tc358764";
178*4882a593Smuzhiyun		vddc-supply = <&vcc_1v2_reg>;
179*4882a593Smuzhiyun		vddio-supply = <&vcc_1v8_reg>;
180*4882a593Smuzhiyun		vddlvds-supply = <&vcc_3v3_reg>;
181*4882a593Smuzhiyun		reset-gpios = <&gpd1 6 GPIO_ACTIVE_LOW>;
182*4882a593Smuzhiyun		#address-cells = <1>;
183*4882a593Smuzhiyun		#size-cells = <0>;
184*4882a593Smuzhiyun		port@1 {
185*4882a593Smuzhiyun			reg = <1>;
186*4882a593Smuzhiyun			bridge_out_ep: endpoint {
187*4882a593Smuzhiyun				remote-endpoint = <&panel_ep>;
188*4882a593Smuzhiyun			};
189*4882a593Smuzhiyun		};
190*4882a593Smuzhiyun	};
191*4882a593Smuzhiyun};
192*4882a593Smuzhiyun
193*4882a593Smuzhiyun&fimd {
194*4882a593Smuzhiyun	status = "okay";
195*4882a593Smuzhiyun};
196*4882a593Smuzhiyun
197*4882a593Smuzhiyun&hdmi {
198*4882a593Smuzhiyun	pinctrl-names = "default";
199*4882a593Smuzhiyun	pinctrl-0 = <&hdmi_hpd>;
200*4882a593Smuzhiyun	status = "okay";
201*4882a593Smuzhiyun	ddc = <&i2c_ddc>;
202*4882a593Smuzhiyun	hpd-gpios = <&gpx3 7 GPIO_ACTIVE_HIGH>;
203*4882a593Smuzhiyun	vdd_osc-supply = <&ldo10_reg>;
204*4882a593Smuzhiyun	vdd_pll-supply = <&ldo8_reg>;
205*4882a593Smuzhiyun	vdd-supply = <&ldo8_reg>;
206*4882a593Smuzhiyun};
207*4882a593Smuzhiyun
208*4882a593Smuzhiyun&i2c_0 {
209*4882a593Smuzhiyun	status = "okay";
210*4882a593Smuzhiyun	samsung,i2c-sda-delay = <100>;
211*4882a593Smuzhiyun	samsung,i2c-max-bus-freq = <20000>;
212*4882a593Smuzhiyun	samsung,i2c-slave-addr = <0x66>;
213*4882a593Smuzhiyun
214*4882a593Smuzhiyun	s5m8767_pmic@66 {
215*4882a593Smuzhiyun		compatible = "samsung,s5m8767-pmic";
216*4882a593Smuzhiyun		reg = <0x66>;
217*4882a593Smuzhiyun		interrupt-parent = <&gpx3>;
218*4882a593Smuzhiyun		interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
219*4882a593Smuzhiyun		pinctrl-names = "default";
220*4882a593Smuzhiyun		pinctrl-0 = <&s5m8767_irq>;
221*4882a593Smuzhiyun
222*4882a593Smuzhiyun		vinb1-supply = <&main_dc_reg>;
223*4882a593Smuzhiyun		vinb2-supply = <&main_dc_reg>;
224*4882a593Smuzhiyun		vinb3-supply = <&main_dc_reg>;
225*4882a593Smuzhiyun		vinb4-supply = <&main_dc_reg>;
226*4882a593Smuzhiyun		vinb5-supply = <&main_dc_reg>;
227*4882a593Smuzhiyun		vinb6-supply = <&main_dc_reg>;
228*4882a593Smuzhiyun		vinb7-supply = <&main_dc_reg>;
229*4882a593Smuzhiyun		vinb8-supply = <&main_dc_reg>;
230*4882a593Smuzhiyun		vinb9-supply = <&main_dc_reg>;
231*4882a593Smuzhiyun
232*4882a593Smuzhiyun		vinl1-supply = <&buck7_reg>;
233*4882a593Smuzhiyun		vinl2-supply = <&buck7_reg>;
234*4882a593Smuzhiyun		vinl3-supply = <&buck7_reg>;
235*4882a593Smuzhiyun		vinl4-supply = <&main_dc_reg>;
236*4882a593Smuzhiyun		vinl5-supply = <&main_dc_reg>;
237*4882a593Smuzhiyun		vinl6-supply = <&main_dc_reg>;
238*4882a593Smuzhiyun		vinl7-supply = <&main_dc_reg>;
239*4882a593Smuzhiyun		vinl8-supply = <&buck8_reg>;
240*4882a593Smuzhiyun		vinl9-supply = <&buck8_reg>;
241*4882a593Smuzhiyun
242*4882a593Smuzhiyun		s5m8767,pmic-buck2-dvs-voltage = <1300000>;
243*4882a593Smuzhiyun		s5m8767,pmic-buck3-dvs-voltage = <1100000>;
244*4882a593Smuzhiyun		s5m8767,pmic-buck4-dvs-voltage = <1200000>;
245*4882a593Smuzhiyun		s5m8767,pmic-buck-dvs-gpios = <&gpd1 0 GPIO_ACTIVE_HIGH>,
246*4882a593Smuzhiyun					      <&gpd1 1 GPIO_ACTIVE_HIGH>,
247*4882a593Smuzhiyun					      <&gpd1 2 GPIO_ACTIVE_HIGH>;
248*4882a593Smuzhiyun		s5m8767,pmic-buck-ds-gpios = <&gpx2 3 GPIO_ACTIVE_HIGH>,
249*4882a593Smuzhiyun					     <&gpx2 4 GPIO_ACTIVE_HIGH>,
250*4882a593Smuzhiyun					     <&gpx2 5 GPIO_ACTIVE_HIGH>;
251*4882a593Smuzhiyun
252*4882a593Smuzhiyun		s5m8767_osc: clocks {
253*4882a593Smuzhiyun			compatible = "samsung,s5m8767-clk";
254*4882a593Smuzhiyun			#clock-cells = <1>;
255*4882a593Smuzhiyun			clock-output-names = "s5m8767_ap", "unused1", "unused2";
256*4882a593Smuzhiyun		};
257*4882a593Smuzhiyun
258*4882a593Smuzhiyun		regulators {
259*4882a593Smuzhiyun			ldo1_reg: LDO1 {
260*4882a593Smuzhiyun				regulator-name = "VDD_ALIVE_1.0V";
261*4882a593Smuzhiyun				regulator-min-microvolt = <1100000>;
262*4882a593Smuzhiyun				regulator-max-microvolt = <1100000>;
263*4882a593Smuzhiyun				regulator-always-on;
264*4882a593Smuzhiyun				regulator-boot-on;
265*4882a593Smuzhiyun				op_mode = <1>;
266*4882a593Smuzhiyun			};
267*4882a593Smuzhiyun
268*4882a593Smuzhiyun			ldo2_reg: LDO2 {
269*4882a593Smuzhiyun				regulator-name = "VDD_28IO_DP_1.35V";
270*4882a593Smuzhiyun				regulator-min-microvolt = <1200000>;
271*4882a593Smuzhiyun				regulator-max-microvolt = <1200000>;
272*4882a593Smuzhiyun				regulator-always-on;
273*4882a593Smuzhiyun				regulator-boot-on;
274*4882a593Smuzhiyun				op_mode = <1>;
275*4882a593Smuzhiyun			};
276*4882a593Smuzhiyun
277*4882a593Smuzhiyun			ldo3_reg: LDO3 {
278*4882a593Smuzhiyun				regulator-name = "VDD_COMMON1_1.8V";
279*4882a593Smuzhiyun				regulator-min-microvolt = <1800000>;
280*4882a593Smuzhiyun				regulator-max-microvolt = <1800000>;
281*4882a593Smuzhiyun				regulator-always-on;
282*4882a593Smuzhiyun				regulator-boot-on;
283*4882a593Smuzhiyun				op_mode = <1>;
284*4882a593Smuzhiyun			};
285*4882a593Smuzhiyun
286*4882a593Smuzhiyun			ldo4_reg: LDO4 {
287*4882a593Smuzhiyun				regulator-name = "VDD_IOPERI_1.8V";
288*4882a593Smuzhiyun				regulator-min-microvolt = <1800000>;
289*4882a593Smuzhiyun				regulator-max-microvolt = <1800000>;
290*4882a593Smuzhiyun				regulator-always-on;
291*4882a593Smuzhiyun				op_mode = <1>;
292*4882a593Smuzhiyun			};
293*4882a593Smuzhiyun
294*4882a593Smuzhiyun			ldo5_reg: LDO5 {
295*4882a593Smuzhiyun				regulator-name = "VDD_EXT_1.8V";
296*4882a593Smuzhiyun				regulator-min-microvolt = <1800000>;
297*4882a593Smuzhiyun				regulator-max-microvolt = <1800000>;
298*4882a593Smuzhiyun				regulator-always-on;
299*4882a593Smuzhiyun				regulator-boot-on;
300*4882a593Smuzhiyun				op_mode = <1>;
301*4882a593Smuzhiyun			};
302*4882a593Smuzhiyun
303*4882a593Smuzhiyun			ldo6_reg: LDO6 {
304*4882a593Smuzhiyun				regulator-name = "VDD_MPLL_1.1V";
305*4882a593Smuzhiyun				regulator-min-microvolt = <1100000>;
306*4882a593Smuzhiyun				regulator-max-microvolt = <1100000>;
307*4882a593Smuzhiyun				regulator-always-on;
308*4882a593Smuzhiyun				regulator-boot-on;
309*4882a593Smuzhiyun				op_mode = <1>;
310*4882a593Smuzhiyun			};
311*4882a593Smuzhiyun
312*4882a593Smuzhiyun			ldo7_reg: LDO7 {
313*4882a593Smuzhiyun				regulator-name = "VDD_XPLL_1.1V";
314*4882a593Smuzhiyun				regulator-min-microvolt = <1100000>;
315*4882a593Smuzhiyun				regulator-max-microvolt = <1100000>;
316*4882a593Smuzhiyun				regulator-always-on;
317*4882a593Smuzhiyun				regulator-boot-on;
318*4882a593Smuzhiyun				op_mode = <1>;
319*4882a593Smuzhiyun			};
320*4882a593Smuzhiyun
321*4882a593Smuzhiyun			ldo8_reg: LDO8 {
322*4882a593Smuzhiyun				regulator-name = "VDD_COMMON2_1.0V";
323*4882a593Smuzhiyun				regulator-min-microvolt = <1000000>;
324*4882a593Smuzhiyun				regulator-max-microvolt = <1000000>;
325*4882a593Smuzhiyun				regulator-always-on;
326*4882a593Smuzhiyun				regulator-boot-on;
327*4882a593Smuzhiyun				op_mode = <1>;
328*4882a593Smuzhiyun			};
329*4882a593Smuzhiyun
330*4882a593Smuzhiyun			ldo9_reg: LDO9 {
331*4882a593Smuzhiyun				regulator-name = "VDD_33ON_3.0V";
332*4882a593Smuzhiyun				regulator-min-microvolt = <3000000>;
333*4882a593Smuzhiyun				regulator-max-microvolt = <3000000>;
334*4882a593Smuzhiyun				op_mode = <1>;
335*4882a593Smuzhiyun			};
336*4882a593Smuzhiyun
337*4882a593Smuzhiyun			ldo10_reg: LDO10 {
338*4882a593Smuzhiyun				regulator-name = "VDD_COMMON3_1.8V";
339*4882a593Smuzhiyun				regulator-min-microvolt = <1800000>;
340*4882a593Smuzhiyun				regulator-max-microvolt = <1800000>;
341*4882a593Smuzhiyun				regulator-always-on;
342*4882a593Smuzhiyun				regulator-boot-on;
343*4882a593Smuzhiyun				op_mode = <1>;
344*4882a593Smuzhiyun			};
345*4882a593Smuzhiyun
346*4882a593Smuzhiyun			ldo11_reg: LDO11 {
347*4882a593Smuzhiyun				regulator-name = "VDD_ABB2_1.8V";
348*4882a593Smuzhiyun				regulator-min-microvolt = <1800000>;
349*4882a593Smuzhiyun				regulator-max-microvolt = <1800000>;
350*4882a593Smuzhiyun				regulator-always-on;
351*4882a593Smuzhiyun				regulator-boot-on;
352*4882a593Smuzhiyun				op_mode = <1>;
353*4882a593Smuzhiyun			};
354*4882a593Smuzhiyun
355*4882a593Smuzhiyun			ldo12_reg: LDO12 {
356*4882a593Smuzhiyun				regulator-name = "VDD_USB_3.0V";
357*4882a593Smuzhiyun				regulator-min-microvolt = <3000000>;
358*4882a593Smuzhiyun				regulator-max-microvolt = <3000000>;
359*4882a593Smuzhiyun				regulator-always-on;
360*4882a593Smuzhiyun				regulator-boot-on;
361*4882a593Smuzhiyun				op_mode = <1>;
362*4882a593Smuzhiyun			};
363*4882a593Smuzhiyun
364*4882a593Smuzhiyun			ldo13_reg: LDO13 {
365*4882a593Smuzhiyun				regulator-name = "VDDQ_C2C_W_1.8V";
366*4882a593Smuzhiyun				regulator-min-microvolt = <1800000>;
367*4882a593Smuzhiyun				regulator-max-microvolt = <1800000>;
368*4882a593Smuzhiyun				regulator-always-on;
369*4882a593Smuzhiyun				regulator-boot-on;
370*4882a593Smuzhiyun				op_mode = <1>;
371*4882a593Smuzhiyun			};
372*4882a593Smuzhiyun
373*4882a593Smuzhiyun			ldo14_reg: LDO14 {
374*4882a593Smuzhiyun				regulator-name = "VDD18_ABB0_3_1.8V";
375*4882a593Smuzhiyun				regulator-min-microvolt = <1800000>;
376*4882a593Smuzhiyun				regulator-max-microvolt = <1800000>;
377*4882a593Smuzhiyun				regulator-always-on;
378*4882a593Smuzhiyun				regulator-boot-on;
379*4882a593Smuzhiyun				op_mode = <1>;
380*4882a593Smuzhiyun			};
381*4882a593Smuzhiyun
382*4882a593Smuzhiyun			ldo15_reg: LDO15 {
383*4882a593Smuzhiyun				regulator-name = "VDD10_COMMON4_1.0V";
384*4882a593Smuzhiyun				regulator-min-microvolt = <1000000>;
385*4882a593Smuzhiyun				regulator-max-microvolt = <1000000>;
386*4882a593Smuzhiyun				regulator-always-on;
387*4882a593Smuzhiyun				regulator-boot-on;
388*4882a593Smuzhiyun				op_mode = <1>;
389*4882a593Smuzhiyun			};
390*4882a593Smuzhiyun
391*4882a593Smuzhiyun			ldo16_reg: LDO16 {
392*4882a593Smuzhiyun				regulator-name = "VDD18_HSIC_1.8V";
393*4882a593Smuzhiyun				regulator-min-microvolt = <1800000>;
394*4882a593Smuzhiyun				regulator-max-microvolt = <1800000>;
395*4882a593Smuzhiyun				regulator-always-on;
396*4882a593Smuzhiyun				regulator-boot-on;
397*4882a593Smuzhiyun				op_mode = <1>;
398*4882a593Smuzhiyun			};
399*4882a593Smuzhiyun
400*4882a593Smuzhiyun			ldo17_reg: LDO17 {
401*4882a593Smuzhiyun				regulator-name = "VDDQ_MMC2_3_2.8V";
402*4882a593Smuzhiyun				regulator-min-microvolt = <2800000>;
403*4882a593Smuzhiyun				regulator-max-microvolt = <2800000>;
404*4882a593Smuzhiyun				regulator-always-on;
405*4882a593Smuzhiyun				regulator-boot-on;
406*4882a593Smuzhiyun				op_mode = <1>;
407*4882a593Smuzhiyun			};
408*4882a593Smuzhiyun
409*4882a593Smuzhiyun			ldo18_reg: LDO18 {
410*4882a593Smuzhiyun				regulator-name = "VDD_33ON_2.8V";
411*4882a593Smuzhiyun				regulator-min-microvolt = <2800000>;
412*4882a593Smuzhiyun				regulator-max-microvolt = <2800000>;
413*4882a593Smuzhiyun				op_mode = <1>;
414*4882a593Smuzhiyun			};
415*4882a593Smuzhiyun
416*4882a593Smuzhiyun			ldo22_reg: LDO22 {
417*4882a593Smuzhiyun				regulator-name = "EXT_33_OFF";
418*4882a593Smuzhiyun				regulator-min-microvolt = <3300000>;
419*4882a593Smuzhiyun				regulator-max-microvolt = <3300000>;
420*4882a593Smuzhiyun				op_mode = <1>;
421*4882a593Smuzhiyun			};
422*4882a593Smuzhiyun
423*4882a593Smuzhiyun			ldo23_reg: LDO23 {
424*4882a593Smuzhiyun				regulator-name = "EXT_28_OFF";
425*4882a593Smuzhiyun				regulator-min-microvolt = <2800000>;
426*4882a593Smuzhiyun				regulator-max-microvolt = <2800000>;
427*4882a593Smuzhiyun				op_mode = <1>;
428*4882a593Smuzhiyun			};
429*4882a593Smuzhiyun
430*4882a593Smuzhiyun			ldo25_reg: LDO25 {
431*4882a593Smuzhiyun				regulator-name = "PVDD_LDO25";
432*4882a593Smuzhiyun				regulator-min-microvolt = <1200000>;
433*4882a593Smuzhiyun				regulator-max-microvolt = <1200000>;
434*4882a593Smuzhiyun				op_mode = <1>;
435*4882a593Smuzhiyun			};
436*4882a593Smuzhiyun
437*4882a593Smuzhiyun			ldo26_reg: LDO26 {
438*4882a593Smuzhiyun				regulator-name = "EXT_18_OFF";
439*4882a593Smuzhiyun				regulator-min-microvolt = <1800000>;
440*4882a593Smuzhiyun				regulator-max-microvolt = <1800000>;
441*4882a593Smuzhiyun				op_mode = <1>;
442*4882a593Smuzhiyun			};
443*4882a593Smuzhiyun
444*4882a593Smuzhiyun			buck1_reg: BUCK1 {
445*4882a593Smuzhiyun				regulator-name = "VDD_MIF";
446*4882a593Smuzhiyun				regulator-min-microvolt = <950000>;
447*4882a593Smuzhiyun				regulator-max-microvolt = <1200000>;
448*4882a593Smuzhiyun				regulator-always-on;
449*4882a593Smuzhiyun				regulator-boot-on;
450*4882a593Smuzhiyun				op_mode = <1>;
451*4882a593Smuzhiyun			};
452*4882a593Smuzhiyun
453*4882a593Smuzhiyun			buck2_reg: BUCK2 {
454*4882a593Smuzhiyun				regulator-name = "VDD_ARM";
455*4882a593Smuzhiyun				regulator-min-microvolt = <912500>;
456*4882a593Smuzhiyun				regulator-max-microvolt = <1300000>;
457*4882a593Smuzhiyun				regulator-always-on;
458*4882a593Smuzhiyun				regulator-boot-on;
459*4882a593Smuzhiyun				op_mode = <1>;
460*4882a593Smuzhiyun			};
461*4882a593Smuzhiyun
462*4882a593Smuzhiyun			buck3_reg: BUCK3 {
463*4882a593Smuzhiyun				regulator-name = "VDD_INT";
464*4882a593Smuzhiyun				regulator-min-microvolt = <900000>;
465*4882a593Smuzhiyun				regulator-max-microvolt = <1200000>;
466*4882a593Smuzhiyun				regulator-always-on;
467*4882a593Smuzhiyun				regulator-boot-on;
468*4882a593Smuzhiyun				op_mode = <1>;
469*4882a593Smuzhiyun			};
470*4882a593Smuzhiyun
471*4882a593Smuzhiyun			buck4_reg: BUCK4 {
472*4882a593Smuzhiyun				regulator-name = "VDD_G3D";
473*4882a593Smuzhiyun				regulator-min-microvolt = <850000>;
474*4882a593Smuzhiyun				regulator-max-microvolt = <1300000>;
475*4882a593Smuzhiyun				regulator-always-on;
476*4882a593Smuzhiyun				regulator-boot-on;
477*4882a593Smuzhiyun				op_mode = <1>;
478*4882a593Smuzhiyun			};
479*4882a593Smuzhiyun
480*4882a593Smuzhiyun			buck5_reg: BUCK5 {
481*4882a593Smuzhiyun				regulator-name = "VDD_MEM_1.35V";
482*4882a593Smuzhiyun				regulator-min-microvolt = <750000>;
483*4882a593Smuzhiyun				regulator-max-microvolt = <1355000>;
484*4882a593Smuzhiyun				regulator-always-on;
485*4882a593Smuzhiyun				regulator-boot-on;
486*4882a593Smuzhiyun				op_mode = <1>;
487*4882a593Smuzhiyun			};
488*4882a593Smuzhiyun
489*4882a593Smuzhiyun			buck7_reg: BUCK7 {
490*4882a593Smuzhiyun				regulator-name = "PVDD_BUCK7";
491*4882a593Smuzhiyun				regulator-always-on;
492*4882a593Smuzhiyun				op_mode = <1>;
493*4882a593Smuzhiyun			};
494*4882a593Smuzhiyun
495*4882a593Smuzhiyun			buck8_reg: BUCK8 {
496*4882a593Smuzhiyun				regulator-name = "PVDD_BUCK8";
497*4882a593Smuzhiyun				regulator-always-on;
498*4882a593Smuzhiyun				op_mode = <1>;
499*4882a593Smuzhiyun			};
500*4882a593Smuzhiyun
501*4882a593Smuzhiyun			buck9_reg: BUCK9 {
502*4882a593Smuzhiyun				regulator-name = "VDD_33_OFF_EXT1";
503*4882a593Smuzhiyun				regulator-min-microvolt = <750000>;
504*4882a593Smuzhiyun				regulator-max-microvolt = <3000000>;
505*4882a593Smuzhiyun				op_mode = <1>;
506*4882a593Smuzhiyun			};
507*4882a593Smuzhiyun		};
508*4882a593Smuzhiyun	};
509*4882a593Smuzhiyun};
510*4882a593Smuzhiyun
511*4882a593Smuzhiyun&i2c_3 {
512*4882a593Smuzhiyun	status = "okay";
513*4882a593Smuzhiyun
514*4882a593Smuzhiyun	wm1811: codec@1a {
515*4882a593Smuzhiyun		compatible = "wlf,wm1811";
516*4882a593Smuzhiyun		reg = <0x1a>;
517*4882a593Smuzhiyun		clocks = <&i2s0 CLK_I2S_CDCLK>;
518*4882a593Smuzhiyun		clock-names = "MCLK1";
519*4882a593Smuzhiyun
520*4882a593Smuzhiyun		AVDD2-supply = <&main_dc_reg>;
521*4882a593Smuzhiyun		CPVDD-supply = <&main_dc_reg>;
522*4882a593Smuzhiyun		DBVDD1-supply = <&main_dc_reg>;
523*4882a593Smuzhiyun		DBVDD2-supply = <&main_dc_reg>;
524*4882a593Smuzhiyun		DBVDD3-supply = <&main_dc_reg>;
525*4882a593Smuzhiyun		LDO1VDD-supply = <&main_dc_reg>;
526*4882a593Smuzhiyun		SPKVDD1-supply = <&main_dc_reg>;
527*4882a593Smuzhiyun		SPKVDD2-supply = <&main_dc_reg>;
528*4882a593Smuzhiyun
529*4882a593Smuzhiyun		wlf,ldo1ena = <&gpb0 0 GPIO_ACTIVE_HIGH>;
530*4882a593Smuzhiyun		wlf,ldo2ena = <&gpb0 1 GPIO_ACTIVE_HIGH>;
531*4882a593Smuzhiyun	};
532*4882a593Smuzhiyun};
533*4882a593Smuzhiyun
534*4882a593Smuzhiyun&i2c_8 {
535*4882a593Smuzhiyun	status = "okay";
536*4882a593Smuzhiyun	/* used by HDMI PHY */
537*4882a593Smuzhiyun	samsung,i2c-sda-delay = <100>;
538*4882a593Smuzhiyun	samsung,i2c-max-bus-freq = <66000>;
539*4882a593Smuzhiyun};
540*4882a593Smuzhiyun
541*4882a593Smuzhiyun&i2c_9 {
542*4882a593Smuzhiyun	status = "okay";
543*4882a593Smuzhiyun	samsung,i2c-sda-delay = <100>;
544*4882a593Smuzhiyun	samsung,i2c-max-bus-freq = <40000>;
545*4882a593Smuzhiyun};
546*4882a593Smuzhiyun
547*4882a593Smuzhiyun&i2s0 {
548*4882a593Smuzhiyun	assigned-clocks = <&i2s0 CLK_I2S_RCLK_SRC>;
549*4882a593Smuzhiyun	assigned-clock-parents = <&clock_audss EXYNOS_I2S_BUS>;
550*4882a593Smuzhiyun	status = "okay";
551*4882a593Smuzhiyun};
552*4882a593Smuzhiyun
553*4882a593Smuzhiyun&i2s0_bus {
554*4882a593Smuzhiyun	samsung,pin-drv = <EXYNOS4_PIN_DRV_LV2>;
555*4882a593Smuzhiyun};
556*4882a593Smuzhiyun
557*4882a593Smuzhiyun&mali {
558*4882a593Smuzhiyun	mali-supply = <&buck4_reg>;
559*4882a593Smuzhiyun	status = "okay";
560*4882a593Smuzhiyun};
561*4882a593Smuzhiyun
562*4882a593Smuzhiyun&mixer {
563*4882a593Smuzhiyun	status = "okay";
564*4882a593Smuzhiyun};
565*4882a593Smuzhiyun
566*4882a593Smuzhiyun&mmc_0 {
567*4882a593Smuzhiyun	status = "okay";
568*4882a593Smuzhiyun	broken-cd;
569*4882a593Smuzhiyun	card-detect-delay = <200>;
570*4882a593Smuzhiyun	samsung,dw-mshc-ciu-div = <3>;
571*4882a593Smuzhiyun	samsung,dw-mshc-sdr-timing = <2 3>;
572*4882a593Smuzhiyun	samsung,dw-mshc-ddr-timing = <1 2>;
573*4882a593Smuzhiyun	vmmc-supply = <&mmc_reg>;
574*4882a593Smuzhiyun	pinctrl-names = "default";
575*4882a593Smuzhiyun	pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus4 &sd0_bus8>;
576*4882a593Smuzhiyun	bus-width = <8>;
577*4882a593Smuzhiyun	cap-mmc-highspeed;
578*4882a593Smuzhiyun};
579*4882a593Smuzhiyun
580*4882a593Smuzhiyun&mmc_2 {
581*4882a593Smuzhiyun	status = "okay";
582*4882a593Smuzhiyun	card-detect-delay = <200>;
583*4882a593Smuzhiyun	samsung,dw-mshc-ciu-div = <3>;
584*4882a593Smuzhiyun	samsung,dw-mshc-sdr-timing = <2 3>;
585*4882a593Smuzhiyun	samsung,dw-mshc-ddr-timing = <1 2>;
586*4882a593Smuzhiyun	vmmc-supply = <&mmc_reg>;
587*4882a593Smuzhiyun	pinctrl-names = "default";
588*4882a593Smuzhiyun	pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus4>;
589*4882a593Smuzhiyun	bus-width = <4>;
590*4882a593Smuzhiyun	disable-wp;
591*4882a593Smuzhiyun	cap-sd-highspeed;
592*4882a593Smuzhiyun};
593*4882a593Smuzhiyun
594*4882a593Smuzhiyun&pinctrl_0 {
595*4882a593Smuzhiyun	s5m8767_irq: s5m8767-irq {
596*4882a593Smuzhiyun		samsung,pins = "gpx3-2";
597*4882a593Smuzhiyun		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
598*4882a593Smuzhiyun	};
599*4882a593Smuzhiyun};
600*4882a593Smuzhiyun
601*4882a593Smuzhiyun&rtc {
602*4882a593Smuzhiyun	clocks = <&clock CLK_RTC>, <&s5m8767_osc S2MPS11_CLK_AP>;
603*4882a593Smuzhiyun	clock-names = "rtc", "rtc_src";
604*4882a593Smuzhiyun	status = "okay";
605*4882a593Smuzhiyun};
606*4882a593Smuzhiyun
607*4882a593Smuzhiyun&sata {
608*4882a593Smuzhiyun	status = "okay";
609*4882a593Smuzhiyun};
610*4882a593Smuzhiyun
611*4882a593Smuzhiyun&sata_phy {
612*4882a593Smuzhiyun	status = "okay";
613*4882a593Smuzhiyun	samsung,exynos-sataphy-i2c-phandle = <&sata_phy_i2c>;
614*4882a593Smuzhiyun};
615*4882a593Smuzhiyun
616*4882a593Smuzhiyun&sata_phy_i2c {
617*4882a593Smuzhiyun	status = "okay";
618*4882a593Smuzhiyun};
619*4882a593Smuzhiyun
620*4882a593Smuzhiyun&soc {
621*4882a593Smuzhiyun	/*
622*4882a593Smuzhiyun	 * For unknown reasons HDMI-DDC does not work with Exynos I2C
623*4882a593Smuzhiyun	 * controllers. Lets use software I2C over GPIO pins as a workaround.
624*4882a593Smuzhiyun	 */
625*4882a593Smuzhiyun	i2c_ddc: i2c-10 {
626*4882a593Smuzhiyun		pinctrl-names = "default";
627*4882a593Smuzhiyun		pinctrl-0 = <&i2c2_gpio_bus>;
628*4882a593Smuzhiyun		status = "okay";
629*4882a593Smuzhiyun		compatible = "i2c-gpio";
630*4882a593Smuzhiyun		sda-gpios = <&gpa0 6 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
631*4882a593Smuzhiyun		scl-gpios = <&gpa0 7 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
632*4882a593Smuzhiyun		i2c-gpio,delay-us = <2>;
633*4882a593Smuzhiyun		#address-cells = <1>;
634*4882a593Smuzhiyun		#size-cells = <0>;
635*4882a593Smuzhiyun	};
636*4882a593Smuzhiyun};
637