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	vdd-supply = <&ldo6_reg>;
128	vdd_osc-supply = <&ldo7_reg>;
129	vdd_pll-supply = <&ldo6_reg>;
130};
131
132&hsi2c_4 {
133	status = "okay";
134
135	pmic@66 {
136		compatible = "samsung,s2mps11-pmic";
137		reg = <0x66>;
138		wakeup-source;
139
140		s2mps11_osc: clocks {
141			compatible = "samsung,s2mps11-clk";
142			#clock-cells = <1>;
143			clock-output-names = "s2mps11_ap",
144					"s2mps11_cp", "s2mps11_bt";
145		};
146
147		regulators {
148			ldo1_reg: LDO1 {
149				regulator-name = "vdd_ldo1";
150				regulator-min-microvolt = <1000000>;
151				regulator-max-microvolt = <1000000>;
152				regulator-always-on;
153			};
154
155			ldo3_reg: LDO3 {
156				regulator-name = "vdd_ldo3";
157				regulator-min-microvolt = <1800000>;
158				regulator-max-microvolt = <1800000>;
159				regulator-always-on;
160			};
161
162			ldo5_reg: LDO5 {
163				regulator-name = "vdd_ldo5";
164				regulator-min-microvolt = <1800000>;
165				regulator-max-microvolt = <1800000>;
166				regulator-always-on;
167			};
168
169			ldo6_reg: LDO6 {
170				regulator-name = "vdd_ldo6";
171				regulator-min-microvolt = <1000000>;
172				regulator-max-microvolt = <1000000>;
173				regulator-always-on;
174			};
175
176			ldo7_reg: LDO7 {
177				regulator-name = "vdd_ldo7";
178				regulator-min-microvolt = <1800000>;
179				regulator-max-microvolt = <1800000>;
180				regulator-always-on;
181			};
182
183			ldo8_reg: LDO8 {
184				regulator-name = "vdd_ldo8";
185				regulator-min-microvolt = <1800000>;
186				regulator-max-microvolt = <1800000>;
187				regulator-always-on;
188			};
189
190			ldo9_reg: LDO9 {
191				regulator-name = "vdd_ldo9";
192				regulator-min-microvolt = <3000000>;
193				regulator-max-microvolt = <3000000>;
194				regulator-always-on;
195			};
196
197			ldo10_reg: LDO10 {
198				regulator-name = "vdd_ldo10";
199				regulator-min-microvolt = <1800000>;
200				regulator-max-microvolt = <1800000>;
201				regulator-always-on;
202			};
203
204			ldo11_reg: LDO11 {
205				regulator-name = "vdd_ldo11";
206				regulator-min-microvolt = <1000000>;
207				regulator-max-microvolt = <1000000>;
208				regulator-always-on;
209			};
210
211			ldo12_reg: LDO12 {
212				regulator-name = "vdd_ldo12";
213				regulator-min-microvolt = <1800000>;
214				regulator-max-microvolt = <1800000>;
215				regulator-always-on;
216			};
217
218			ldo13_reg: LDO13 {
219				regulator-name = "vdd_ldo13";
220				regulator-min-microvolt = <2800000>;
221				regulator-max-microvolt = <2800000>;
222				regulator-always-on;
223			};
224
225			ldo15_reg: LDO15 {
226				regulator-name = "vdd_ldo15";
227				regulator-min-microvolt = <3100000>;
228				regulator-max-microvolt = <3100000>;
229				regulator-always-on;
230			};
231
232			ldo16_reg: LDO16 {
233				regulator-name = "vdd_ldo16";
234				regulator-min-microvolt = <2200000>;
235				regulator-max-microvolt = <2200000>;
236				regulator-always-on;
237			};
238
239			ldo17_reg: LDO17 {
240				regulator-name = "tsp_avdd";
241				regulator-min-microvolt = <3300000>;
242				regulator-max-microvolt = <3300000>;
243				regulator-always-on;
244			};
245
246			ldo19_reg: LDO19 {
247				regulator-name = "vdd_sd";
248				regulator-min-microvolt = <2800000>;
249				regulator-max-microvolt = <2800000>;
250				regulator-always-on;
251			};
252
253			ldo24_reg: LDO24 {
254				regulator-name = "tsp_io";
255				regulator-min-microvolt = <2800000>;
256				regulator-max-microvolt = <2800000>;
257				regulator-always-on;
258			};
259
260			buck1_reg: BUCK1 {
261				regulator-name = "vdd_mif";
262				regulator-min-microvolt = <800000>;
263				regulator-max-microvolt = <1300000>;
264				regulator-always-on;
265				regulator-boot-on;
266			};
267
268			buck2_reg: BUCK2 {
269				regulator-name = "vdd_arm";
270				regulator-min-microvolt = <800000>;
271				regulator-max-microvolt = <1500000>;
272				regulator-always-on;
273				regulator-boot-on;
274			};
275
276			buck3_reg: BUCK3 {
277				regulator-name = "vdd_int";
278				regulator-min-microvolt = <800000>;
279				regulator-max-microvolt = <1400000>;
280				regulator-always-on;
281				regulator-boot-on;
282			};
283
284			buck4_reg: BUCK4 {
285				regulator-name = "vdd_g3d";
286				regulator-min-microvolt = <800000>;
287				regulator-max-microvolt = <1400000>;
288				regulator-always-on;
289				regulator-boot-on;
290			};
291
292			buck5_reg: BUCK5 {
293				regulator-name = "vdd_mem";
294				regulator-min-microvolt = <800000>;
295				regulator-max-microvolt = <1400000>;
296				regulator-always-on;
297				regulator-boot-on;
298			};
299
300			buck6_reg: BUCK6 {
301				regulator-name = "vdd_kfc";
302				regulator-min-microvolt = <800000>;
303				regulator-max-microvolt = <1500000>;
304				regulator-always-on;
305				regulator-boot-on;
306			};
307
308			buck7_reg: BUCK7 {
309				regulator-name = "vdd_1.0v_ldo";
310				regulator-min-microvolt = <800000>;
311				regulator-max-microvolt = <1500000>;
312				regulator-always-on;
313				regulator-boot-on;
314			};
315
316			buck8_reg: BUCK8 {
317				regulator-name = "vdd_1.8v_ldo";
318				regulator-min-microvolt = <800000>;
319				regulator-max-microvolt = <1500000>;
320				regulator-always-on;
321				regulator-boot-on;
322			};
323
324			buck9_reg: BUCK9 {
325				regulator-name = "vdd_2.8v_ldo";
326				regulator-min-microvolt = <3000000>;
327				regulator-max-microvolt = <3750000>;
328				regulator-always-on;
329				regulator-boot-on;
330			};
331
332			buck10_reg: BUCK10 {
333				regulator-name = "vdd_vmem";
334				regulator-min-microvolt = <2850000>;
335				regulator-max-microvolt = <2850000>;
336				regulator-always-on;
337				regulator-boot-on;
338			};
339		};
340	};
341};
342
343&i2c_2 {
344	samsung,i2c-sda-delay = <100>;
345	samsung,i2c-max-bus-freq = <66000>;
346	/* used by HDMI DDC */
347	status = "okay";
348};
349
350&mixer {
351	status = "okay";
352};
353
354&mmc_0 {
355	status = "okay";
356	broken-cd;
357	card-detect-delay = <200>;
358	samsung,dw-mshc-ciu-div = <3>;
359	samsung,dw-mshc-sdr-timing = <0 4>;
360	samsung,dw-mshc-ddr-timing = <0 2>;
361	samsung,dw-mshc-hs400-timing = <0 2>;
362	samsung,read-strobe-delay = <90>;
363	pinctrl-names = "default";
364	pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus1 &sd0_bus4 &sd0_bus8
365		     &sd0_rclk>;
366	bus-width = <8>;
367	cap-mmc-highspeed;
368};
369
370&mmc_2 {
371	status = "okay";
372	card-detect-delay = <200>;
373	samsung,dw-mshc-ciu-div = <3>;
374	samsung,dw-mshc-sdr-timing = <2 3>;
375	samsung,dw-mshc-ddr-timing = <1 2>;
376	pinctrl-names = "default";
377	pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus1 &sd2_bus4>;
378	bus-width = <4>;
379	cap-sd-highspeed;
380};
381
382&pinctrl_0 {
383	hdmi_hpd_irq: hdmi-hpd-irq-pins {
384		samsung,pins = "gpx3-7";
385		samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
386		samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>;
387		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
388	};
389};
390
391&pinctrl_2 {
392	usb300_vbus_en: usb300-vbus-en-pins {
393		samsung,pins = "gpg0-5";
394		samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
395		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
396		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
397	};
398
399	usb301_vbus_en: usb301-vbus-en-pins {
400		samsung,pins = "gpg1-4";
401		samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
402		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
403		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
404	};
405};
406
407&rtc {
408	status = "okay";
409	clocks = <&clock CLK_RTC>, <&s2mps11_osc S2MPS11_CLK_AP>;
410	clock-names = "rtc", "rtc_src";
411};
412
413&usbdrd3_0 {
414	vdd10-supply = <&ldo11_reg>;
415	vdd33-supply = <&ldo9_reg>;
416};
417
418&usbdrd3_1 {
419	vdd10-supply = <&ldo11_reg>;
420	vdd33-supply = <&ldo9_reg>;
421};
422
423&usbdrd_phy0 {
424	vbus-supply = <&usb300_vbus_reg>;
425};
426
427&usbdrd_phy1 {
428	vbus-supply = <&usb301_vbus_reg>;
429};
430