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