exynos4412-odroid-common.dtsi revision 279377
124122Smpp/*
224122Smpp * Common definition for Hardkernel's Exynos4412 based ODROID-X/X2/U2/U3 boards
324122Smpp * device tree source
424122Smpp *
524122Smpp * This program is free software; you can redistribute it and/or modify
624122Smpp * it under the terms of the GNU General Public License version 2 as
724122Smpp * published by the Free Software Foundation.
824122Smpp*/
924122Smpp
1024122Smpp#include <dt-bindings/sound/samsung-i2s.h>
1124122Smpp#include <dt-bindings/input/input.h>
1224122Smpp#include "exynos4412.dtsi"
1324122Smpp
1424122Smpp/ {
1524122Smpp	chosen {
1624122Smpp		stdout-path = &serial_1;
1724122Smpp	};
1824122Smpp
1924122Smpp	firmware@0204F000 {
2024122Smpp		compatible = "samsung,secure-firmware";
2124122Smpp		reg = <0x0204F000 0x1000>;
2224122Smpp	};
2324122Smpp
2424122Smpp	gpio_keys {
2524122Smpp		compatible = "gpio-keys";
2624122Smpp		pinctrl-names = "default";
2724122Smpp		pinctrl-0 = <&gpio_power_key>;
2824122Smpp
2924122Smpp		power_key {
3050476Speter			interrupt-parent = <&gpx1>;
3148795Snik			interrupts = <3 0>;
32239829Spluknet			gpios = <&gpx1 3 1>;
3324122Smpp			linux,code = <KEY_POWER>;
3479538Sru			label = "power key";
3524122Smpp			debounce-interval = <10>;
3624122Smpp			gpio-key,wakeup;
3724122Smpp		};
3824122Smpp	};
3924122Smpp
4088509Sdavidc	i2s0: i2s@03830000 {
4188509Sdavidc		pinctrl-0 = <&i2s0_bus>;
4284306Sru		pinctrl-names = "default";
4384306Sru		status = "okay";
44127014Struckman		clocks = <&clock_audss EXYNOS_I2S_BUS>,
45127014Struckman			 <&clock_audss EXYNOS_DOUT_AUD_BUS>,
4624122Smpp			 <&clock_audss EXYNOS_SCLK_I2S>;
47127014Struckman		clock-names = "iis", "i2s_opclk0", "i2s_opclk1";
4824122Smpp	};
4924122Smpp
5024122Smpp	sound: sound {
5124122Smpp		compatible = "simple-audio-card";
5224122Smpp		assigned-clocks = <&clock_audss EXYNOS_MOUT_AUDSS>,
5324122Smpp				<&clock_audss EXYNOS_MOUT_I2S>,
5424122Smpp				<&clock_audss EXYNOS_DOUT_SRP>,
5524122Smpp				<&clock_audss EXYNOS_DOUT_AUD_BUS>;
5624122Smpp		assigned-clock-parents = <&clock CLK_FOUT_EPLL>,
5724122Smpp				<&clock_audss EXYNOS_MOUT_AUDSS>;
5824122Smpp		assigned-clock-rates = <0>,
5924122Smpp				<0>,
6024122Smpp				<192000000>,
6124122Smpp				<19200000>;
6224122Smpp
6324122Smpp		simple-audio-card,format = "i2s";
6424122Smpp		simple-audio-card,bitclock-master = <&link0_codec>;
65127014Struckman		simple-audio-card,frame-master = <&link0_codec>;
66127014Struckman
67127014Struckman		simple-audio-card,cpu {
68127014Struckman			sound-dai = <&i2s0 0>;
69127014Struckman			system-clock-frequency = <19200000>;
70127014Struckman		};
71127014Struckman
72127014Struckman		link0_codec: simple-audio-card,codec {
73127014Struckman			sound-dai = <&max98090>;
74127014Struckman			clocks = <&i2s0 CLK_I2S_CDCLK>;
75127014Struckman		};
76127014Struckman	};
77127014Struckman
78127014Struckman	mmc@12550000 {
79127014Struckman		pinctrl-0 = <&sd4_clk &sd4_cmd &sd4_bus4 &sd4_bus8>;
80127014Struckman		pinctrl-names = "default";
81127014Struckman		vmmc-supply = <&ldo20_reg &buck8_reg>;
82127014Struckman		status = "okay";
83127014Struckman
84127014Struckman		num-slots = <1>;
85127014Struckman		broken-cd;
86127014Struckman		card-detect-delay = <200>;
87127014Struckman		samsung,dw-mshc-ciu-div = <3>;
88130582Sru		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