1// SPDX-License-Identifier: GPL-2.0
2/*
3 * Samsung SMDK5250 board device tree source
4 *
5 * Copyright (c) 2012 Samsung Electronics Co., Ltd.
6 *		http://www.samsung.com
7 */
8
9/dts-v1/;
10#include <dt-bindings/clock/maxim,max77686.h>
11#include <dt-bindings/gpio/gpio.h>
12#include <dt-bindings/interrupt-controller/irq.h>
13#include "exynos5250.dtsi"
14
15/ {
16	model = "Samsung SMDK5250 board based on Exynos5250";
17	compatible = "samsung,smdk5250", "samsung,exynos5250", "samsung,exynos5";
18
19	aliases {
20		mmc0 = &mmc_0;
21		mmc1 = &mmc_2;
22	};
23
24	memory@40000000 {
25		device_type = "memory";
26		reg = <0x40000000 0x80000000>;
27	};
28
29	chosen {
30		bootargs = "root=/dev/ram0 rw ramdisk=8192 initrd=0x41000000,8M init=/linuxrc";
31		stdout-path = "serial2:115200n8";
32	};
33
34	vdd: fixed-regulator-vdd {
35		compatible = "regulator-fixed";
36		regulator-name = "vdd-supply";
37		regulator-min-microvolt = <1800000>;
38		regulator-max-microvolt = <1800000>;
39		regulator-always-on;
40	};
41
42	dbvdd: fixed-regulator-dbvdd {
43		compatible = "regulator-fixed";
44		regulator-name = "dbvdd-supply";
45		regulator-min-microvolt = <3300000>;
46		regulator-max-microvolt = <3300000>;
47		regulator-always-on;
48	};
49
50	spkvdd: fixed-regulator-spkvdd {
51		compatible = "regulator-fixed";
52		regulator-name = "spkvdd-supply";
53		regulator-min-microvolt = <5000000>;
54		regulator-max-microvolt = <5000000>;
55		regulator-always-on;
56	};
57
58	sound {
59		compatible = "samsung,smdk-wm8994";
60
61		samsung,i2s-controller = <&i2s0>;
62		samsung,audio-codec = <&wm8994>;
63	};
64
65	fixed-rate-clocks {
66		xxti {
67			compatible = "samsung,clock-xxti";
68			clock-frequency = <24000000>;
69		};
70
71		codec_mclk: codec-mclk {
72			compatible = "fixed-clock";
73			#clock-cells = <0>;
74			clock-frequency = <16934000>;
75		};
76	};
77};
78
79&cpu0 {
80	cpu0-supply = <&buck2_reg>;
81};
82
83&dp {
84	samsung,color-space = <0>;
85	samsung,color-depth = <1>;
86	samsung,link-rate = <0x0a>;
87	samsung,lane-count = <4>;
88
89	pinctrl-names = "default";
90	pinctrl-0 = <&dp_hpd>;
91	status = "okay";
92
93	display-timings {
94		native-mode = <&timing0>;
95
96		timing0: timing {
97			/* 1280x800 */
98			clock-frequency = <50000>;
99			hactive = <1280>;
100			vactive = <800>;
101			hfront-porch = <4>;
102			hback-porch = <4>;
103			hsync-len = <4>;
104			vback-porch = <4>;
105			vfront-porch = <4>;
106			vsync-len = <4>;
107		};
108	};
109};
110
111&ehci {
112	samsung,vbus-gpio = <&gpx2 6 GPIO_ACTIVE_HIGH>;
113};
114
115&fimd {
116	status = "okay";
117};
118
119&hdmi {
120	status = "okay";
121	ddc = <&i2c_2>;
122	hpd-gpios = <&gpx3 7 GPIO_ACTIVE_HIGH>;
123	vdd-supply = <&ldo8_reg>;
124	vdd_osc-supply = <&ldo10_reg>;
125	vdd_pll-supply = <&ldo8_reg>;
126};
127
128&i2c_0 {
129	status = "okay";
130	samsung,i2c-sda-delay = <100>;
131	samsung,i2c-max-bus-freq = <20000>;
132
133	eeprom@50 {
134		compatible = "samsung,s524ad0xd1", "atmel,24c128";
135		reg = <0x50>;
136	};
137
138	max77686: pmic@9 {
139		compatible = "maxim,max77686";
140		reg = <0x09>;
141		interrupt-parent = <&gpx3>;
142		interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
143		pinctrl-names = "default";
144		pinctrl-0 = <&max77686_irq>;
145		#clock-cells = <1>;
146		wakeup-source;
147
148		voltage-regulators {
149			ldo1_reg: LDO1 {
150				regulator-name = "P1.0V_LDO_OUT1";
151				regulator-min-microvolt = <1000000>;
152				regulator-max-microvolt = <1000000>;
153				regulator-always-on;
154			};
155
156			ldo2_reg: LDO2 {
157				regulator-name = "P1.2V_LDO_OUT2";
158				regulator-min-microvolt = <1200000>;
159				regulator-max-microvolt = <1200000>;
160				regulator-always-on;
161			};
162
163			ldo3_reg: LDO3 {
164				regulator-name = "P1.8V_LDO_OUT3";
165				regulator-min-microvolt = <1800000>;
166				regulator-max-microvolt = <1800000>;
167				regulator-always-on;
168			};
169
170			ldo4_reg: LDO4 {
171				regulator-name = "P2.8V_LDO_OUT4";
172				regulator-min-microvolt = <2800000>;
173				regulator-max-microvolt = <2800000>;
174			};
175
176			ldo5_reg: LDO5 {
177				regulator-name = "P1.8V_LDO_OUT5";
178				regulator-min-microvolt = <1800000>;
179				regulator-max-microvolt = <1800000>;
180			};
181
182			ldo6_reg: LDO6 {
183				regulator-name = "P1.1V_LDO_OUT6";
184				regulator-min-microvolt = <1100000>;
185				regulator-max-microvolt = <1100000>;
186				regulator-always-on;
187			};
188
189			ldo7_reg: LDO7 {
190				regulator-name = "P1.1V_LDO_OUT7";
191				regulator-min-microvolt = <1100000>;
192				regulator-max-microvolt = <1100000>;
193				regulator-always-on;
194			};
195
196			ldo8_reg: LDO8 {
197				regulator-name = "P1.0V_LDO_OUT8";
198				regulator-min-microvolt = <1000000>;
199				regulator-max-microvolt = <1000000>;
200			};
201
202			ldo10_reg: LDO10 {
203				regulator-name = "P1.8V_LDO_OUT10";
204				regulator-min-microvolt = <1800000>;
205				regulator-max-microvolt = <1800000>;
206				regulator-always-on;
207			};
208
209			ldo11_reg: LDO11 {
210				regulator-name = "P1.8V_LDO_OUT11";
211				regulator-min-microvolt = <1800000>;
212				regulator-max-microvolt = <1800000>;
213			};
214
215			ldo12_reg: LDO12 {
216				regulator-name = "P3.0V_LDO_OUT12";
217				regulator-min-microvolt = <3000000>;
218				regulator-max-microvolt = <3000000>;
219			};
220
221			ldo13_reg: LDO13 {
222				regulator-name = "P1.8V_LDO_OUT13";
223				regulator-min-microvolt = <1800000>;
224				regulator-max-microvolt = <1800000>;
225			};
226
227			ldo14_reg: LDO14 {
228				regulator-name = "P1.8V_LDO_OUT14";
229				regulator-min-microvolt = <1800000>;
230				regulator-max-microvolt = <1800000>;
231			};
232
233			ldo15_reg: LDO15 {
234				regulator-name = "P1.0V_LDO_OUT15";
235				regulator-min-microvolt = <1000000>;
236				regulator-max-microvolt = <1000000>;
237			};
238
239			ldo16_reg: LDO16 {
240				regulator-name = "P1.8V_LDO_OUT16";
241				regulator-min-microvolt = <1800000>;
242				regulator-max-microvolt = <1800000>;
243			};
244
245			buck1_reg: BUCK1 {
246				regulator-name = "vdd_mif";
247				regulator-min-microvolt = <950000>;
248				regulator-max-microvolt = <1300000>;
249				regulator-always-on;
250				regulator-boot-on;
251			};
252
253			buck2_reg: BUCK2 {
254				regulator-name = "vdd_arm";
255				regulator-min-microvolt = <850000>;
256				regulator-max-microvolt = <1350000>;
257				regulator-always-on;
258				regulator-boot-on;
259			};
260
261			buck3_reg: BUCK3 {
262				regulator-name = "vdd_int";
263				regulator-min-microvolt = <900000>;
264				regulator-max-microvolt = <1200000>;
265				regulator-always-on;
266				regulator-boot-on;
267			};
268
269			buck4_reg: BUCK4 {
270				regulator-name = "vdd_g3d";
271				regulator-min-microvolt = <850000>;
272				regulator-max-microvolt = <1300000>;
273				regulator-always-on;
274				regulator-boot-on;
275			};
276
277			buck5_reg: BUCK5 {
278				regulator-name = "P1.8V_BUCK_OUT5";
279				regulator-min-microvolt = <1800000>;
280				regulator-max-microvolt = <1800000>;
281				regulator-always-on;
282				regulator-boot-on;
283			};
284		};
285	};
286};
287
288&i2c_1 {
289	status = "okay";
290	samsung,i2c-sda-delay = <100>;
291	samsung,i2c-max-bus-freq = <20000>;
292
293	eeprom@51 {
294		compatible = "samsung,s524ad0xd1", "atmel,24c128";
295		reg = <0x51>;
296	};
297
298	wm8994: audio-codec@1a {
299		compatible = "wlf,wm8994";
300		reg = <0x1a>;
301
302		gpio-controller;
303		#gpio-cells = <2>;
304
305		clocks = <&codec_mclk>;
306		clock-names = "MCLK1";
307
308		AVDD2-supply = <&vdd>;
309		CPVDD-supply = <&vdd>;
310		DBVDD-supply = <&dbvdd>;
311		SPKVDD1-supply = <&spkvdd>;
312		SPKVDD2-supply = <&spkvdd>;
313	};
314};
315
316&i2c_2 {
317	status = "okay";
318	/* used by HDMI DDC */
319	samsung,i2c-sda-delay = <100>;
320	samsung,i2c-max-bus-freq = <66000>;
321};
322
323&i2c_8 {
324	status = "okay";
325	/* used by HDMI PHY */
326	samsung,i2c-sda-delay = <100>;
327	samsung,i2c-max-bus-freq = <66000>;
328};
329
330&i2c_9 {
331	status = "okay";
332	samsung,i2c-sda-delay = <100>;
333	samsung,i2c-max-bus-freq = <40000>;
334};
335
336&i2s0 {
337	status = "okay";
338};
339
340&mixer {
341	status = "okay";
342};
343
344&mmc_0 {
345	status = "okay";
346	broken-cd;
347	card-detect-delay = <200>;
348	samsung,dw-mshc-ciu-div = <3>;
349	samsung,dw-mshc-sdr-timing = <2 3>;
350	samsung,dw-mshc-ddr-timing = <1 2>;
351	pinctrl-names = "default";
352	pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus4 &sd0_bus8>;
353	bus-width = <8>;
354	cap-mmc-highspeed;
355	mmc-ddr-1_8v;
356};
357
358&mmc_2 {
359	status = "okay";
360	card-detect-delay = <200>;
361	samsung,dw-mshc-ciu-div = <3>;
362	samsung,dw-mshc-sdr-timing = <2 3>;
363	samsung,dw-mshc-ddr-timing = <1 2>;
364	pinctrl-names = "default";
365	pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus4>;
366	bus-width = <4>;
367	disable-wp;
368	cap-sd-highspeed;
369};
370
371&rtc {
372	status = "okay";
373	clocks = <&clock CLK_RTC>, <&max77686 MAX77686_CLK_AP>;
374	clock-names = "rtc", "rtc_src";
375};
376
377&sata {
378	status = "okay";
379};
380
381&sata_phy {
382	status = "okay";
383	samsung,exynos-sataphy-i2c-phandle = <&sata_phy_i2c>;
384};
385
386&sata_phy_i2c {
387	status = "okay";
388};
389
390&spi_1 {
391	status = "okay";
392	cs-gpios = <&gpa2 5 GPIO_ACTIVE_HIGH>;
393
394	flash@0 {
395		#address-cells = <1>;
396		#size-cells = <1>;
397		compatible = "winbond,w25x80", "jedec,spi-nor";
398		reg = <0>;
399		spi-max-frequency = <1000000>;
400
401		controller-data {
402			samsung,spi-feedback-delay = <0>;
403		};
404
405		partition@0 {
406			label = "U-Boot";
407			reg = <0x0 0x40000>;
408			read-only;
409		};
410
411		partition@40000 {
412			label = "Kernel";
413			reg = <0x40000 0xc0000>;
414		};
415	};
416};
417
418&pinctrl_0 {
419	max77686_irq: max77686-irq-pins {
420		samsung,pins = "gpx3-2";
421		samsung,pin-function = <EXYNOS_PIN_FUNC_F>;
422		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
423		samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
424	};
425};
426
427&usbdrd {
428	vdd10-supply = <&ldo15_reg>;
429	vdd33-supply = <&ldo12_reg>;
430};
431