exynos4412-odroid-common.dtsi revision 284090
1/*
2 * Common definition for Hardkernel's Exynos4412 based ODROID-X/X2/U2/U3 boards
3 * device tree source
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License version 2 as
7 * published by the Free Software Foundation.
8*/
9
10#include <dt-bindings/sound/samsung-i2s.h>
11#include <dt-bindings/input/input.h>
12#include "exynos4412.dtsi"
13
14/ {
15	chosen {
16		stdout-path = &serial_1;
17	};
18
19	firmware@0204F000 {
20		compatible = "samsung,secure-firmware";
21		reg = <0x0204F000 0x1000>;
22	};
23
24	gpio_keys {
25		compatible = "gpio-keys";
26		pinctrl-names = "default";
27		pinctrl-0 = <&gpio_power_key>;
28
29		power_key {
30			interrupt-parent = <&gpx1>;
31			interrupts = <3 0>;
32			gpios = <&gpx1 3 1>;
33			linux,code = <KEY_POWER>;
34			label = "power key";
35			debounce-interval = <10>;
36			gpio-key,wakeup;
37		};
38	};
39
40	i2s0: i2s@03830000 {
41		pinctrl-0 = <&i2s0_bus>;
42		pinctrl-names = "default";
43		status = "okay";
44		clocks = <&clock_audss EXYNOS_I2S_BUS>,
45			 <&clock_audss EXYNOS_DOUT_AUD_BUS>,
46			 <&clock_audss EXYNOS_SCLK_I2S>;
47		clock-names = "iis", "i2s_opclk0", "i2s_opclk1";
48	};
49
50	sound: sound {
51		compatible = "simple-audio-card";
52		assigned-clocks = <&clock_audss EXYNOS_MOUT_AUDSS>,
53				<&clock_audss EXYNOS_MOUT_I2S>,
54				<&clock_audss EXYNOS_DOUT_SRP>,
55				<&clock_audss EXYNOS_DOUT_AUD_BUS>;
56		assigned-clock-parents = <&clock CLK_FOUT_EPLL>,
57				<&clock_audss EXYNOS_MOUT_AUDSS>;
58		assigned-clock-rates = <0>,
59				<0>,
60				<192000000>,
61				<19200000>;
62
63		simple-audio-card,format = "i2s";
64		simple-audio-card,bitclock-master = <&link0_codec>;
65		simple-audio-card,frame-master = <&link0_codec>;
66
67		simple-audio-card,cpu {
68			sound-dai = <&i2s0 0>;
69			system-clock-frequency = <19200000>;
70		};
71
72		link0_codec: simple-audio-card,codec {
73			sound-dai = <&max98090>;
74			clocks = <&i2s0 CLK_I2S_CDCLK>;
75		};
76	};
77
78	mmc@12550000 {
79		pinctrl-0 = <&sd4_clk &sd4_cmd &sd4_bus4 &sd4_bus8>;
80		pinctrl-names = "default";
81		vmmc-supply = <&ldo20_reg &buck8_reg>;
82		status = "okay";
83
84		num-slots = <1>;
85		broken-cd;
86		card-detect-delay = <200>;
87		samsung,dw-mshc-ciu-div = <3>;
88		samsung,dw-mshc-sdr-timing = <2 3>;
89		samsung,dw-mshc-ddr-timing = <1 2>;
90		bus-width = <8>;
91		cap-mmc-highspeed;
92	};
93
94	watchdog@10060000 {
95		status = "okay";
96	};
97
98	rtc@10070000 {
99		status = "okay";
100	};
101
102	g2d@10800000 {
103		status = "okay";
104	};
105
106	camera {
107		status = "okay";
108		pinctrl-names = "default";
109		pinctrl-0 = <>;
110
111		fimc_0: fimc@11800000 {
112			status = "okay";
113			assigned-clocks = <&clock CLK_MOUT_FIMC0>,
114					<&clock CLK_SCLK_FIMC0>;
115			assigned-clock-parents = <&clock CLK_MOUT_MPLL_USER_T>;
116			assigned-clock-rates = <0>, <176000000>;
117		};
118
119		fimc_1: fimc@11810000 {
120			status = "okay";
121			assigned-clocks = <&clock CLK_MOUT_FIMC1>,
122					<&clock CLK_SCLK_FIMC1>;
123			assigned-clock-parents = <&clock CLK_MOUT_MPLL_USER_T>;
124			assigned-clock-rates = <0>, <176000000>;
125		};
126
127		fimc_2: fimc@11820000 {
128			status = "okay";
129			assigned-clocks = <&clock CLK_MOUT_FIMC2>,
130					<&clock CLK_SCLK_FIMC2>;
131			assigned-clock-parents = <&clock CLK_MOUT_MPLL_USER_T>;
132			assigned-clock-rates = <0>, <176000000>;
133		};
134
135		fimc_3: fimc@11830000 {
136			status = "okay";
137			assigned-clocks = <&clock CLK_MOUT_FIMC3>,
138					<&clock CLK_SCLK_FIMC3>;
139			assigned-clock-parents = <&clock CLK_MOUT_MPLL_USER_T>;
140			assigned-clock-rates = <0>, <176000000>;
141		};
142	};
143
144	sdhci@12530000 {
145		bus-width = <4>;
146		pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus4>;
147		pinctrl-names = "default";
148		vmmc-supply = <&ldo4_reg &ldo21_reg>;
149		cd-gpios = <&gpk2 2 0>;
150		cd-inverted;
151		status = "okay";
152	};
153
154	serial@13800000 {
155		status = "okay";
156	};
157
158	serial@13810000 {
159		status = "okay";
160	};
161
162	fixed-rate-clocks {
163		xxti {
164			compatible = "samsung,clock-xxti";
165			clock-frequency = <0>;
166		};
167
168		xusbxti {
169			compatible = "samsung,clock-xusbxti";
170			clock-frequency = <24000000>;
171		};
172	};
173
174	i2c@13860000 {
175		pinctrl-0 = <&i2c0_bus>;
176		pinctrl-names = "default";
177		samsung,i2c-sda-delay = <100>;
178		samsung,i2c-max-bus-freq = <400000>;
179		status = "okay";
180
181		usb3503: usb3503@08 {
182			compatible = "smsc,usb3503";
183			reg = <0x08>;
184
185			intn-gpios = <&gpx3 0 0>;
186			connect-gpios = <&gpx3 4 0>;
187			reset-gpios = <&gpx3 5 0>;
188			initial-mode = <1>;
189		};
190
191		max77686: pmic@09 {
192			compatible = "maxim,max77686";
193			interrupt-parent = <&gpx3>;
194			interrupts = <2 0>;
195			pinctrl-names = "default";
196			pinctrl-0 = <&max77686_irq>;
197			reg = <0x09>;
198			#clock-cells = <1>;
199
200			voltage-regulators {
201				ldo1_reg: LDO1 {
202					regulator-name = "VDD_ALIVE_1.0V";
203					regulator-min-microvolt = <1000000>;
204					regulator-max-microvolt = <1000000>;
205					regulator-always-on;
206				};
207
208				ldo2_reg: LDO2 {
209					regulator-name = "VDDQ_M1_2_1.8V";
210					regulator-min-microvolt = <1800000>;
211					regulator-max-microvolt = <1800000>;
212					regulator-always-on;
213				};
214
215				ldo3_reg: LDO3 {
216					regulator-name = "VDDQ_EXT_1.8V";
217					regulator-min-microvolt = <1800000>;
218					regulator-max-microvolt = <1800000>;
219					regulator-always-on;
220				};
221
222				ldo4_reg: LDO4 {
223					regulator-name = "VDDQ_MMC2_2.8V";
224					regulator-min-microvolt = <2800000>;
225					regulator-max-microvolt = <2800000>;
226					regulator-always-on;
227					regulator-boot-on;
228				};
229
230				ldo5_reg: LDO5 {
231					regulator-name = "VDDQ_MMC1_3_1.8V";
232					regulator-min-microvolt = <1800000>;
233					regulator-max-microvolt = <1800000>;
234					regulator-always-on;
235					regulator-boot-on;
236				};
237
238				ldo6_reg: LDO6 {
239					regulator-name = "VDD10_MPLL_1.0V";
240					regulator-min-microvolt = <1000000>;
241					regulator-max-microvolt = <1000000>;
242					regulator-always-on;
243				};
244
245				ldo7_reg: LDO7 {
246					regulator-name = "VDD10_XPLL_1.0V";
247					regulator-min-microvolt = <1000000>;
248					regulator-max-microvolt = <1000000>;
249					regulator-always-on;
250				};
251
252				ldo11_reg: LDO11 {
253					regulator-name = "VDD18_ABB1_1.8V";
254					regulator-min-microvolt = <1800000>;
255					regulator-max-microvolt = <1800000>;
256					regulator-always-on;
257				};
258
259				ldo12_reg: LDO12 {
260					regulator-name = "VDD33_USB_3.3V";
261					regulator-min-microvolt = <3300000>;
262					regulator-max-microvolt = <3300000>;
263					regulator-always-on;
264					regulator-boot-on;
265				};
266
267				ldo13_reg: LDO13 {
268					regulator-name = "VDDQ_C2C_W_1.8V";
269					regulator-min-microvolt = <1800000>;
270					regulator-max-microvolt = <1800000>;
271					regulator-always-on;
272					regulator-boot-on;
273				};
274
275				ldo14_reg: LDO14 {
276					regulator-name = "VDD18_ABB0_2_1.8V";
277					regulator-min-microvolt = <1800000>;
278					regulator-max-microvolt = <1800000>;
279					regulator-always-on;
280					regulator-boot-on;
281				};
282
283				ldo15_reg: LDO15 {
284					regulator-name = "VDD10_HSIC_1.0V";
285					regulator-min-microvolt = <1000000>;
286					regulator-max-microvolt = <1000000>;
287					regulator-always-on;
288					regulator-boot-on;
289				};
290
291				ldo16_reg: LDO16 {
292					regulator-name = "VDD18_HSIC_1.8V";
293					regulator-min-microvolt = <1800000>;
294					regulator-max-microvolt = <1800000>;
295					regulator-always-on;
296					regulator-boot-on;
297				};
298
299				ldo20_reg: LDO20 {
300					regulator-name = "LDO20_1.8V";
301					regulator-min-microvolt = <1800000>;
302					regulator-max-microvolt = <1800000>;
303					regulator-boot-on;
304				};
305
306				ldo21_reg: LDO21 {
307					regulator-name = "LDO21_3.3V";
308					regulator-min-microvolt = <3300000>;
309					regulator-max-microvolt = <3300000>;
310					regulator-always-on;
311					regulator-boot-on;
312				};
313
314				ldo25_reg: LDO25 {
315					regulator-name = "VDDQ_LCD_1.8V";
316					regulator-min-microvolt = <1800000>;
317					regulator-max-microvolt = <1800000>;
318					regulator-always-on;
319					regulator-boot-on;
320				};
321
322				buck1_reg: BUCK1 {
323					regulator-name = "vdd_mif";
324					regulator-min-microvolt = <1000000>;
325					regulator-max-microvolt = <1000000>;
326					regulator-always-on;
327					regulator-boot-on;
328				};
329
330				buck2_reg: BUCK2 {
331					regulator-name = "vdd_arm";
332					regulator-min-microvolt = <900000>;
333					regulator-max-microvolt = <1350000>;
334					regulator-always-on;
335					regulator-boot-on;
336				};
337
338				buck3_reg: BUCK3 {
339					regulator-name = "vdd_int";
340					regulator-min-microvolt = <1000000>;
341					regulator-max-microvolt = <1000000>;
342					regulator-always-on;
343					regulator-boot-on;
344				};
345
346				buck4_reg: BUCK4 {
347					regulator-name = "vdd_g3d";
348					regulator-min-microvolt = <900000>;
349					regulator-max-microvolt = <1100000>;
350					regulator-microvolt-offset = <50000>;
351				};
352
353				buck5_reg: BUCK5 {
354					regulator-name = "VDDQ_CKEM1_2_1.2V";
355					regulator-min-microvolt = <1200000>;
356					regulator-max-microvolt = <1200000>;
357					regulator-always-on;
358					regulator-boot-on;
359				};
360
361				buck6_reg: BUCK6 {
362					regulator-name = "BUCK6_1.35V";
363					regulator-min-microvolt = <1350000>;
364					regulator-max-microvolt = <1350000>;
365					regulator-always-on;
366					regulator-boot-on;
367				};
368
369				buck7_reg: BUCK7 {
370					regulator-name = "BUCK7_2.0V";
371					regulator-min-microvolt = <2000000>;
372					regulator-max-microvolt = <2000000>;
373					regulator-always-on;
374				};
375
376				buck8_reg: BUCK8 {
377					regulator-name = "BUCK8_2.8V";
378					regulator-min-microvolt = <2800000>;
379					regulator-max-microvolt = <2800000>;
380				};
381			};
382		};
383	};
384
385	i2c@13870000 {
386		pinctrl-names = "default";
387		pinctrl-0 = <&i2c1_bus>;
388		status = "okay";
389		max98090: max98090@10 {
390			compatible = "maxim,max98090";
391			reg = <0x10>;
392			interrupt-parent = <&gpx0>;
393			interrupts = <0 0>;
394			clocks = <&i2s0 CLK_I2S_CDCLK>;
395			clock-names = "mclk";
396			#sound-dai-cells = <0>;
397		};
398	};
399
400	exynos-usbphy@125B0000 {
401		status = "okay";
402	};
403
404	hsotg@12480000 {
405		dr_mode = "peripheral";
406		status = "okay";
407		vusb_d-supply = <&ldo15_reg>;
408		vusb_a-supply = <&ldo12_reg>;
409	};
410
411	ehci: ehci@12580000 {
412		status = "okay";
413	};
414};
415
416&pinctrl_1 {
417	gpio_power_key: power_key {
418		samsung,pins = "gpx1-3";
419		samsung,pin-pud = <0>;
420	};
421
422	max77686_irq: max77686-irq {
423		samsung,pins = "gpx3-2";
424		samsung,pin-function = <0>;
425		samsung,pin-pud = <0>;
426		samsung,pin-drv = <0>;
427	};
428};
429