1// SPDX-License-Identifier: GPL-2.0
2/*
3 * Samsung SMDK5420 board device tree source
4 *
5 * Copyright (c) 2013 Samsung Electronics Co., Ltd.
6 *		http://www.samsung.com
7 */
8
9/dts-v1/;
10#include "exynos5420.dtsi"
11#include "exynos5420-cpus.dtsi"
12#include <dt-bindings/clock/samsung,s2mps11.h>
13#include <dt-bindings/gpio/gpio.h>
14
15/ {
16	model = "Samsung SMDK5420 board based on Exynos5420";
17	compatible = "samsung,smdk5420", "samsung,exynos5420", "samsung,exynos5";
18
19	memory@20000000 {
20		device_type = "memory";
21		reg = <0x20000000 0x80000000>;
22	};
23
24	chosen {
25		bootargs = "init=/linuxrc";
26		stdout-path = "serial2:115200n8";
27	};
28
29	fixed-rate-clocks {
30		oscclk {
31			compatible = "samsung,exynos5420-oscclk";
32			clock-frequency = <24000000>;
33		};
34	};
35
36	vdd: regulator-0 {
37		compatible = "regulator-fixed";
38		regulator-name = "vdd-supply";
39		regulator-min-microvolt = <1800000>;
40		regulator-max-microvolt = <1800000>;
41		regulator-always-on;
42	};
43
44	dbvdd: regulator-1 {
45		compatible = "regulator-fixed";
46		regulator-name = "dbvdd-supply";
47		regulator-min-microvolt = <3300000>;
48		regulator-max-microvolt = <3300000>;
49		regulator-always-on;
50	};
51
52	spkvdd: regulator-2 {
53		compatible = "regulator-fixed";
54		regulator-name = "spkvdd-supply";
55		regulator-min-microvolt = <5000000>;
56		regulator-max-microvolt = <5000000>;
57		regulator-always-on;
58	};
59
60	usb300_vbus_reg: regulator-3 {
61		compatible = "regulator-fixed";
62		regulator-name = "VBUS0";
63		regulator-min-microvolt = <5000000>;
64		regulator-max-microvolt = <5000000>;
65		gpio = <&gpg0 5 GPIO_ACTIVE_HIGH>;
66		pinctrl-names = "default";
67		pinctrl-0 = <&usb300_vbus_en>;
68		enable-active-high;
69	};
70
71	usb301_vbus_reg: regulator-4 {
72		compatible = "regulator-fixed";
73		regulator-name = "VBUS1";
74		regulator-min-microvolt = <5000000>;
75		regulator-max-microvolt = <5000000>;
76		gpio = <&gpg1 4 GPIO_ACTIVE_HIGH>;
77		pinctrl-names = "default";
78		pinctrl-0 = <&usb301_vbus_en>;
79		enable-active-high;
80	};
81
82};
83
84&cpu0 {
85	cpu-supply = <&buck2_reg>;
86};
87
88&cpu4 {
89	cpu-supply = <&buck6_reg>;
90};
91
92&dp {
93	pinctrl-names = "default";
94	pinctrl-0 = <&dp_hpd>;
95	samsung,color-space = <0>;
96	samsung,color-depth = <1>;
97	samsung,link-rate = <0x0a>;
98	samsung,lane-count = <4>;
99	status = "okay";
100
101	display-timings {
102		native-mode = <&timing0>;
103		timing0: timing {
104			clock-frequency = <50000>;
105			hactive = <2560>;
106			vactive = <1600>;
107			hfront-porch = <48>;
108			hback-porch = <80>;
109			hsync-len = <32>;
110			vback-porch = <16>;
111			vfront-porch = <8>;
112			vsync-len = <6>;
113		};
114	};
115};
116
117&fimd {
118	status = "okay";
119};
120
121&hdmi {
122	status = "okay";
123	ddc = <&i2c_2>;
124	hpd-gpios = <&gpx3 7 GPIO_ACTIVE_HIGH>;
125	pinctrl-names = "default";
126	pinctrl-0 = <&hdmi_hpd_irq>;
127};
128
129&hsi2c_4 {
130	status = "okay";
131
132	pmic@66 {
133		compatible = "samsung,s2mps11-pmic";
134		reg = <0x66>;
135
136		s2mps11_osc: clocks {
137			compatible = "samsung,s2mps11-clk";
138			#clock-cells = <1>;
139			clock-output-names = "s2mps11_ap",
140					"s2mps11_cp", "s2mps11_bt";
141		};
142
143		regulators {
144			ldo1_reg: LDO1 {
145				regulator-name = "vdd_ldo1";
146				regulator-min-microvolt = <1000000>;
147				regulator-max-microvolt = <1000000>;
148				regulator-always-on;
149			};
150
151			ldo3_reg: LDO3 {
152				regulator-name = "vdd_ldo3";
153				regulator-min-microvolt = <1800000>;
154				regulator-max-microvolt = <1800000>;
155				regulator-always-on;
156			};
157
158			ldo5_reg: LDO5 {
159				regulator-name = "vdd_ldo5";
160				regulator-min-microvolt = <1800000>;
161				regulator-max-microvolt = <1800000>;
162				regulator-always-on;
163			};
164
165			ldo6_reg: LDO6 {
166				regulator-name = "vdd_ldo6";
167				regulator-min-microvolt = <1000000>;
168				regulator-max-microvolt = <1000000>;
169				regulator-always-on;
170			};
171
172			ldo7_reg: LDO7 {
173				regulator-name = "vdd_ldo7";
174				regulator-min-microvolt = <1800000>;
175				regulator-max-microvolt = <1800000>;
176				regulator-always-on;
177			};
178
179			ldo8_reg: LDO8 {
180				regulator-name = "vdd_ldo8";
181				regulator-min-microvolt = <1800000>;
182				regulator-max-microvolt = <1800000>;
183				regulator-always-on;
184			};
185
186			ldo9_reg: LDO9 {
187				regulator-name = "vdd_ldo9";
188				regulator-min-microvolt = <3000000>;
189				regulator-max-microvolt = <3000000>;
190				regulator-always-on;
191			};
192
193			ldo10_reg: LDO10 {
194				regulator-name = "vdd_ldo10";
195				regulator-min-microvolt = <1800000>;
196				regulator-max-microvolt = <1800000>;
197				regulator-always-on;
198			};
199
200			ldo11_reg: LDO11 {
201				regulator-name = "vdd_ldo11";
202				regulator-min-microvolt = <1000000>;
203				regulator-max-microvolt = <1000000>;
204				regulator-always-on;
205			};
206
207			ldo12_reg: LDO12 {
208				regulator-name = "vdd_ldo12";
209				regulator-min-microvolt = <1800000>;
210				regulator-max-microvolt = <1800000>;
211				regulator-always-on;
212			};
213
214			ldo13_reg: LDO13 {
215				regulator-name = "vdd_ldo13";
216				regulator-min-microvolt = <2800000>;
217				regulator-max-microvolt = <2800000>;
218				regulator-always-on;
219			};
220
221			ldo15_reg: LDO15 {
222				regulator-name = "vdd_ldo15";
223				regulator-min-microvolt = <3100000>;
224				regulator-max-microvolt = <3100000>;
225				regulator-always-on;
226			};
227
228			ldo16_reg: LDO16 {
229				regulator-name = "vdd_ldo16";
230				regulator-min-microvolt = <2200000>;
231				regulator-max-microvolt = <2200000>;
232				regulator-always-on;
233			};
234
235			ldo17_reg: LDO17 {
236				regulator-name = "tsp_avdd";
237				regulator-min-microvolt = <3300000>;
238				regulator-max-microvolt = <3300000>;
239				regulator-always-on;
240			};
241
242			ldo19_reg: LDO19 {
243				regulator-name = "vdd_sd";
244				regulator-min-microvolt = <2800000>;
245				regulator-max-microvolt = <2800000>;
246				regulator-always-on;
247			};
248
249			ldo24_reg: LDO24 {
250				regulator-name = "tsp_io";
251				regulator-min-microvolt = <2800000>;
252				regulator-max-microvolt = <2800000>;
253				regulator-always-on;
254			};
255
256			buck1_reg: BUCK1 {
257				regulator-name = "vdd_mif";
258				regulator-min-microvolt = <800000>;
259				regulator-max-microvolt = <1300000>;
260				regulator-always-on;
261				regulator-boot-on;
262			};
263
264			buck2_reg: BUCK2 {
265				regulator-name = "vdd_arm";
266				regulator-min-microvolt = <800000>;
267				regulator-max-microvolt = <1500000>;
268				regulator-always-on;
269				regulator-boot-on;
270			};
271
272			buck3_reg: BUCK3 {
273				regulator-name = "vdd_int";
274				regulator-min-microvolt = <800000>;
275				regulator-max-microvolt = <1400000>;
276				regulator-always-on;
277				regulator-boot-on;
278			};
279
280			buck4_reg: BUCK4 {
281				regulator-name = "vdd_g3d";
282				regulator-min-microvolt = <800000>;
283				regulator-max-microvolt = <1400000>;
284				regulator-always-on;
285				regulator-boot-on;
286			};
287
288			buck5_reg: BUCK5 {
289				regulator-name = "vdd_mem";
290				regulator-min-microvolt = <800000>;
291				regulator-max-microvolt = <1400000>;
292				regulator-always-on;
293				regulator-boot-on;
294			};
295
296			buck6_reg: BUCK6 {
297				regulator-name = "vdd_kfc";
298				regulator-min-microvolt = <800000>;
299				regulator-max-microvolt = <1500000>;
300				regulator-always-on;
301				regulator-boot-on;
302			};
303
304			buck7_reg: BUCK7 {
305				regulator-name = "vdd_1.0v_ldo";
306				regulator-min-microvolt = <800000>;
307				regulator-max-microvolt = <1500000>;
308				regulator-always-on;
309				regulator-boot-on;
310			};
311
312			buck8_reg: BUCK8 {
313				regulator-name = "vdd_1.8v_ldo";
314				regulator-min-microvolt = <800000>;
315				regulator-max-microvolt = <1500000>;
316				regulator-always-on;
317				regulator-boot-on;
318			};
319
320			buck9_reg: BUCK9 {
321				regulator-name = "vdd_2.8v_ldo";
322				regulator-min-microvolt = <3000000>;
323				regulator-max-microvolt = <3750000>;
324				regulator-always-on;
325				regulator-boot-on;
326			};
327
328			buck10_reg: BUCK10 {
329				regulator-name = "vdd_vmem";
330				regulator-min-microvolt = <2850000>;
331				regulator-max-microvolt = <2850000>;
332				regulator-always-on;
333				regulator-boot-on;
334			};
335		};
336	};
337};
338
339&i2c_2 {
340	samsung,i2c-sda-delay = <100>;
341	samsung,i2c-max-bus-freq = <66000>;
342	/* used by HDMI DDC */
343	status = "okay";
344};
345
346&mixer {
347	status = "okay";
348};
349
350&mmc_0 {
351	status = "okay";
352	broken-cd;
353	card-detect-delay = <200>;
354	samsung,dw-mshc-ciu-div = <3>;
355	samsung,dw-mshc-sdr-timing = <0 4>;
356	samsung,dw-mshc-ddr-timing = <0 2>;
357	samsung,dw-mshc-hs400-timing = <0 2>;
358	samsung,read-strobe-delay = <90>;
359	pinctrl-names = "default";
360	pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus1 &sd0_bus4 &sd0_bus8
361		     &sd0_rclk>;
362	bus-width = <8>;
363	cap-mmc-highspeed;
364};
365
366&mmc_2 {
367	status = "okay";
368	card-detect-delay = <200>;
369	samsung,dw-mshc-ciu-div = <3>;
370	samsung,dw-mshc-sdr-timing = <2 3>;
371	samsung,dw-mshc-ddr-timing = <1 2>;
372	pinctrl-names = "default";
373	pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus1 &sd2_bus4>;
374	bus-width = <4>;
375	cap-sd-highspeed;
376};
377
378&pinctrl_0 {
379	hdmi_hpd_irq: hdmi-hpd-irq {
380		samsung,pins = "gpx3-7";
381		samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
382		samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>;
383		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
384	};
385};
386
387&pinctrl_2 {
388	usb300_vbus_en: usb300-vbus-en {
389		samsung,pins = "gpg0-5";
390		samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
391		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
392		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
393	};
394
395	usb301_vbus_en: usb301-vbus-en {
396		samsung,pins = "gpg1-4";
397		samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
398		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
399		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
400	};
401};
402
403&rtc {
404	status = "okay";
405	clocks = <&clock CLK_RTC>, <&s2mps11_osc S2MPS11_CLK_AP>;
406	clock-names = "rtc", "rtc_src";
407};
408
409&usbdrd_phy0 {
410	vbus-supply = <&usb300_vbus_reg>;
411};
412
413&usbdrd_phy1 {
414	vbus-supply = <&usb301_vbus_reg>;
415};
416