1279377Simp/*
2279377Simp * Copyright 2012 Freescale Semiconductor, Inc.
3279377Simp *
4279377Simp * The code contained herein is licensed under the GNU General Public
5279377Simp * License. You may obtain a copy of the GNU General Public License
6279377Simp * Version 2 or later at the following locations:
7279377Simp *
8279377Simp * http://www.opensource.org/licenses/gpl-license.html
9279377Simp * http://www.gnu.org/copyleft/gpl.html
10279377Simp */
11279377Simp
12279377Simp/dts-v1/;
13279377Simp#include "imx28.dtsi"
14279377Simp
15279377Simp/ {
16279377Simp	model = "Freescale i.MX28 Evaluation Kit";
17279377Simp	compatible = "fsl,imx28-evk", "fsl,imx28";
18279377Simp
19279377Simp	memory {
20279377Simp		reg = <0x40000000 0x08000000>;
21279377Simp	};
22279377Simp
23279377Simp	apb@80000000 {
24279377Simp		apbh@80000000 {
25279377Simp			gpmi-nand@8000c000 {
26279377Simp				pinctrl-names = "default";
27279377Simp				pinctrl-0 = <&gpmi_pins_a &gpmi_status_cfg
28279377Simp					     &gpmi_pins_evk>;
29279377Simp				status = "okay";
30279377Simp			};
31279377Simp
32279377Simp			ssp0: ssp@80010000 {
33279377Simp				compatible = "fsl,imx28-mmc";
34279377Simp				pinctrl-names = "default";
35279377Simp				pinctrl-0 = <&mmc0_8bit_pins_a
36279377Simp					&mmc0_cd_cfg &mmc0_sck_cfg>;
37279377Simp				bus-width = <8>;
38279377Simp				wp-gpios = <&gpio2 12 0>;
39279377Simp				vmmc-supply = <&reg_vddio_sd0>;
40279377Simp				status = "okay";
41279377Simp			};
42279377Simp
43279377Simp			ssp1: ssp@80012000 {
44279377Simp				compatible = "fsl,imx28-mmc";
45279377Simp				bus-width = <8>;
46279377Simp				wp-gpios = <&gpio0 28 0>;
47279377Simp			};
48279377Simp
49279377Simp			ssp2: ssp@80014000 {
50279377Simp				#address-cells = <1>;
51279377Simp				#size-cells = <0>;
52279377Simp				compatible = "fsl,imx28-spi";
53279377Simp				pinctrl-names = "default";
54279377Simp				pinctrl-0 = <&spi2_pins_a>;
55279377Simp				status = "okay";
56279377Simp
57279377Simp				flash: m25p80@0 {
58279377Simp					#address-cells = <1>;
59279377Simp					#size-cells = <1>;
60295436Sandrew					compatible = "sst,sst25vf016b", "jedec,spi-nor";
61279377Simp					spi-max-frequency = <40000000>;
62279377Simp					reg = <0>;
63279377Simp				};
64279377Simp			};
65279377Simp
66279377Simp			pinctrl@80018000 {
67279377Simp				pinctrl-names = "default";
68279377Simp				pinctrl-0 = <&hog_pins_a>;
69279377Simp
70279377Simp				hog_pins_a: hog@0 {
71279377Simp					reg = <0>;
72279377Simp					fsl,pinmux-ids = <
73279377Simp						MX28_PAD_SSP1_CMD__GPIO_2_13
74279377Simp						MX28_PAD_SSP1_DATA3__GPIO_2_15
75279377Simp						MX28_PAD_ENET0_RX_CLK__GPIO_4_13
76279377Simp						MX28_PAD_SSP1_SCK__GPIO_2_12
77279377Simp						MX28_PAD_PWM3__GPIO_3_28
78279377Simp						MX28_PAD_LCD_RESET__GPIO_3_30
79279377Simp						MX28_PAD_AUART2_RX__GPIO_3_8
80279377Simp						MX28_PAD_AUART2_TX__GPIO_3_9
81279377Simp					>;
82279377Simp					fsl,drive-strength = <MXS_DRIVE_4mA>;
83279377Simp					fsl,voltage = <MXS_VOLTAGE_HIGH>;
84279377Simp					fsl,pull-up = <MXS_PULL_DISABLE>;
85279377Simp				};
86279377Simp
87279377Simp				led_pin_gpio3_5: led_gpio3_5@0 {
88279377Simp					reg = <0>;
89279377Simp					fsl,pinmux-ids = <
90279377Simp						MX28_PAD_AUART1_TX__GPIO_3_5
91279377Simp					>;
92279377Simp					fsl,drive-strength = <MXS_DRIVE_4mA>;
93279377Simp					fsl,voltage = <MXS_VOLTAGE_HIGH>;
94279377Simp					fsl,pull-up = <MXS_PULL_DISABLE>;
95279377Simp				};
96279377Simp
97279377Simp				gpmi_pins_evk: gpmi-nand-evk@0 {
98279377Simp					reg = <0>;
99279377Simp					fsl,pinmux-ids = <
100279377Simp						MX28_PAD_GPMI_CE1N__GPMI_CE1N
101279377Simp						MX28_PAD_GPMI_RDY1__GPMI_READY1
102279377Simp					>;
103279377Simp					fsl,drive-strength = <MXS_DRIVE_4mA>;
104279377Simp					fsl,voltage = <MXS_VOLTAGE_HIGH>;
105279377Simp					fsl,pull-up = <MXS_PULL_DISABLE>;
106279377Simp				};
107279377Simp
108279377Simp				lcdif_pins_evk: lcdif-evk@0 {
109279377Simp					reg = <0>;
110279377Simp					fsl,pinmux-ids = <
111279377Simp						MX28_PAD_LCD_RD_E__LCD_VSYNC
112279377Simp						MX28_PAD_LCD_WR_RWN__LCD_HSYNC
113279377Simp						MX28_PAD_LCD_RS__LCD_DOTCLK
114279377Simp						MX28_PAD_LCD_CS__LCD_ENABLE
115279377Simp					>;
116279377Simp					fsl,drive-strength = <MXS_DRIVE_4mA>;
117279377Simp					fsl,voltage = <MXS_VOLTAGE_HIGH>;
118279377Simp					fsl,pull-up = <MXS_PULL_DISABLE>;
119279377Simp				};
120279377Simp			};
121279377Simp
122279377Simp			lcdif@80030000 {
123279377Simp				pinctrl-names = "default";
124279377Simp				pinctrl-0 = <&lcdif_24bit_pins_a
125279377Simp					     &lcdif_pins_evk>;
126279377Simp				lcd-supply = <&reg_lcd_3v3>;
127279377Simp				display = <&display0>;
128279377Simp				status = "okay";
129279377Simp
130279377Simp				display0: display0 {
131279377Simp					bits-per-pixel = <32>;
132279377Simp					bus-width = <24>;
133279377Simp
134279377Simp					display-timings {
135279377Simp						native-mode = <&timing0>;
136279377Simp						timing0: timing0 {
137279377Simp							clock-frequency = <33500000>;
138279377Simp							hactive = <800>;
139279377Simp							vactive = <480>;
140279377Simp							hback-porch = <89>;
141279377Simp							hfront-porch = <164>;
142279377Simp							vback-porch = <23>;
143279377Simp							vfront-porch = <10>;
144279377Simp							hsync-len = <10>;
145279377Simp							vsync-len = <10>;
146279377Simp							hsync-active = <0>;
147279377Simp							vsync-active = <0>;
148279377Simp							de-active = <1>;
149279377Simp							pixelclk-active = <0>;
150279377Simp						};
151279377Simp					};
152279377Simp				};
153279377Simp			};
154279377Simp
155279377Simp			can0: can@80032000 {
156279377Simp				pinctrl-names = "default";
157279377Simp				pinctrl-0 = <&can0_pins_a>;
158279377Simp				xceiver-supply = <&reg_can_3v3>;
159279377Simp				status = "okay";
160279377Simp			};
161279377Simp
162279377Simp			can1: can@80034000 {
163279377Simp				pinctrl-names = "default";
164279377Simp				pinctrl-0 = <&can1_pins_a>;
165279377Simp				xceiver-supply = <&reg_can_3v3>;
166279377Simp				status = "okay";
167279377Simp			};
168279377Simp		};
169279377Simp
170279377Simp		apbx@80040000 {
171279377Simp			saif0: saif@80042000 {
172279377Simp				pinctrl-names = "default";
173279377Simp				pinctrl-0 = <&saif0_pins_a>;
174279377Simp				status = "okay";
175279377Simp			};
176279377Simp
177279377Simp			saif1: saif@80046000 {
178279377Simp				pinctrl-names = "default";
179279377Simp				pinctrl-0 = <&saif1_pins_a>;
180279377Simp				fsl,saif-master = <&saif0>;
181279377Simp				status = "okay";
182279377Simp			};
183279377Simp
184279377Simp			lradc@80050000 {
185279377Simp				status = "okay";
186279377Simp				fsl,lradc-touchscreen-wires = <4>;
187279377Simp				fsl,ave-ctrl = <4>;
188279377Simp				fsl,ave-delay = <2>;
189279377Simp				fsl,settling = <10>;
190279377Simp			};
191279377Simp
192279377Simp			i2c0: i2c@80058000 {
193279377Simp				pinctrl-names = "default";
194279377Simp				pinctrl-0 = <&i2c0_pins_a>;
195279377Simp				status = "okay";
196279377Simp
197279377Simp				sgtl5000: codec@0a {
198279377Simp					compatible = "fsl,sgtl5000";
199279377Simp					reg = <0x0a>;
200279377Simp					VDDA-supply = <&reg_3p3v>;
201279377Simp					VDDIO-supply = <&reg_3p3v>;
202279377Simp					clocks = <&saif0>;
203279377Simp				};
204279377Simp
205279377Simp				at24@51 {
206279377Simp					compatible = "at24,24c32";
207279377Simp					pagesize = <32>;
208279377Simp					reg = <0x51>;
209279377Simp				};
210279377Simp			};
211279377Simp
212279377Simp			pwm: pwm@80064000 {
213279377Simp				pinctrl-names = "default";
214279377Simp				pinctrl-0 = <&pwm2_pins_a>;
215279377Simp				status = "okay";
216279377Simp			};
217279377Simp
218279377Simp			duart: serial@80074000 {
219279377Simp				pinctrl-names = "default";
220279377Simp				pinctrl-0 = <&duart_pins_a>;
221279377Simp				status = "okay";
222279377Simp			};
223279377Simp
224279377Simp			auart0: serial@8006a000 {
225279377Simp				pinctrl-names = "default";
226279377Simp				pinctrl-0 = <&auart0_pins_a>;
227279377Simp				fsl,uart-has-rtscts;
228279377Simp				status = "okay";
229279377Simp			};
230279377Simp
231279377Simp			auart3: serial@80070000 {
232279377Simp				pinctrl-names = "default";
233279377Simp				pinctrl-0 = <&auart3_pins_a>;
234279377Simp				status = "okay";
235279377Simp			};
236279377Simp
237279377Simp			usbphy0: usbphy@8007c000 {
238279377Simp				status = "okay";
239279377Simp			};
240279377Simp
241279377Simp			usbphy1: usbphy@8007e000 {
242279377Simp				status = "okay";
243279377Simp			};
244279377Simp		};
245279377Simp	};
246279377Simp
247279377Simp	ahb@80080000 {
248279377Simp		usb0: usb@80080000 {
249279377Simp			pinctrl-names = "default";
250279377Simp			pinctrl-0 = <&usb0_id_pins_a>;
251279377Simp			vbus-supply = <&reg_usb0_vbus>;
252279377Simp			status = "okay";
253279377Simp		};
254279377Simp
255279377Simp		usb1: usb@80090000 {
256279377Simp			vbus-supply = <&reg_usb1_vbus>;
257279377Simp			status = "okay";
258279377Simp		};
259279377Simp
260279377Simp		mac0: ethernet@800f0000 {
261279377Simp			phy-mode = "rmii";
262279377Simp			pinctrl-names = "default";
263279377Simp			pinctrl-0 = <&mac0_pins_a>;
264279377Simp			phy-supply = <&reg_fec_3v3>;
265279377Simp			phy-reset-gpios = <&gpio4 13 0>;
266279377Simp			phy-reset-duration = <100>;
267279377Simp			status = "okay";
268279377Simp		};
269279377Simp
270279377Simp		mac1: ethernet@800f4000 {
271279377Simp			phy-mode = "rmii";
272279377Simp			pinctrl-names = "default";
273279377Simp			pinctrl-0 = <&mac1_pins_a>;
274279377Simp			status = "okay";
275279377Simp		};
276279377Simp	};
277279377Simp
278279377Simp	regulators {
279279377Simp		compatible = "simple-bus";
280279377Simp		#address-cells = <1>;
281279377Simp		#size-cells = <0>;
282279377Simp
283279377Simp		reg_3p3v: regulator@0 {
284279377Simp			compatible = "regulator-fixed";
285279377Simp			reg = <0>;
286279377Simp			regulator-name = "3P3V";
287279377Simp			regulator-min-microvolt = <3300000>;
288279377Simp			regulator-max-microvolt = <3300000>;
289279377Simp			regulator-always-on;
290279377Simp		};
291279377Simp
292279377Simp		reg_vddio_sd0: regulator@1 {
293279377Simp			compatible = "regulator-fixed";
294279377Simp			reg = <1>;
295279377Simp			regulator-name = "vddio-sd0";
296279377Simp			regulator-min-microvolt = <3300000>;
297279377Simp			regulator-max-microvolt = <3300000>;
298279377Simp			gpio = <&gpio3 28 0>;
299279377Simp		};
300279377Simp
301279377Simp		reg_fec_3v3: regulator@2 {
302279377Simp			compatible = "regulator-fixed";
303279377Simp			reg = <2>;
304279377Simp			regulator-name = "fec-3v3";
305279377Simp			regulator-min-microvolt = <3300000>;
306279377Simp			regulator-max-microvolt = <3300000>;
307279377Simp			gpio = <&gpio2 15 0>;
308279377Simp		};
309279377Simp
310279377Simp		reg_usb0_vbus: regulator@3 {
311279377Simp			compatible = "regulator-fixed";
312279377Simp			reg = <3>;
313279377Simp			regulator-name = "usb0_vbus";
314279377Simp			regulator-min-microvolt = <5000000>;
315279377Simp			regulator-max-microvolt = <5000000>;
316279377Simp			gpio = <&gpio3 9 0>;
317279377Simp			enable-active-high;
318279377Simp		};
319279377Simp
320279377Simp		reg_usb1_vbus: regulator@4 {
321279377Simp			compatible = "regulator-fixed";
322279377Simp			reg = <4>;
323279377Simp			regulator-name = "usb1_vbus";
324279377Simp			regulator-min-microvolt = <5000000>;
325279377Simp			regulator-max-microvolt = <5000000>;
326279377Simp			gpio = <&gpio3 8 0>;
327279377Simp			enable-active-high;
328279377Simp		};
329279377Simp
330279377Simp		reg_lcd_3v3: regulator@5 {
331279377Simp			compatible = "regulator-fixed";
332279377Simp			reg = <5>;
333279377Simp			regulator-name = "lcd-3v3";
334279377Simp			regulator-min-microvolt = <3300000>;
335279377Simp			regulator-max-microvolt = <3300000>;
336279377Simp			gpio = <&gpio3 30 0>;
337279377Simp			enable-active-high;
338279377Simp		};
339279377Simp
340279377Simp		reg_can_3v3: regulator@6 {
341279377Simp			compatible = "regulator-fixed";
342279377Simp			reg = <6>;
343279377Simp			regulator-name = "can-3v3";
344279377Simp			regulator-min-microvolt = <3300000>;
345279377Simp			regulator-max-microvolt = <3300000>;
346279377Simp			gpio = <&gpio2 13 0>;
347279377Simp			enable-active-high;
348279377Simp		};
349279377Simp
350279377Simp	};
351279377Simp
352279377Simp	sound {
353279377Simp		compatible = "fsl,imx28-evk-sgtl5000",
354279377Simp			     "fsl,mxs-audio-sgtl5000";
355279377Simp		model = "imx28-evk-sgtl5000";
356279377Simp		saif-controllers = <&saif0 &saif1>;
357279377Simp		audio-codec = <&sgtl5000>;
358279377Simp	};
359279377Simp
360279377Simp	leds {
361279377Simp		compatible = "gpio-leds";
362279377Simp		pinctrl-names = "default";
363279377Simp		pinctrl-0 = <&led_pin_gpio3_5>;
364279377Simp
365279377Simp		user {
366279377Simp			label = "Heartbeat";
367279377Simp			gpios = <&gpio3 5 0>;
368279377Simp			linux,default-trigger = "heartbeat";
369279377Simp		};
370279377Simp	};
371279377Simp
372279377Simp	backlight {
373279377Simp		compatible = "pwm-backlight";
374279377Simp		pwms = <&pwm 2 5000000>;
375279377Simp		brightness-levels = <0 4 8 16 32 64 128 255>;
376279377Simp		default-brightness-level = <6>;
377279377Simp	};
378279377Simp};
379