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