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