1// SPDX-License-Identifier: GPL-2.0+
2//
3// Copyright 2012 Freescale Semiconductor, Inc.
4
5/dts-v1/;
6#include "imx28.dtsi"
7
8/ {
9	model = "Freescale i.MX28 Evaluation Kit";
10	compatible = "fsl,imx28-evk", "fsl,imx28";
11
12	memory@40000000 {
13		reg = <0x40000000 0x08000000>;
14	};
15
16
17	reg_3p3v: regulator-3p3v {
18		compatible = "regulator-fixed";
19		regulator-name = "3P3V";
20		regulator-min-microvolt = <3300000>;
21		regulator-max-microvolt = <3300000>;
22		regulator-always-on;
23	};
24
25	reg_vddio_sd0: regulator-vddio-sd0 {
26		compatible = "regulator-fixed";
27		regulator-name = "vddio-sd0";
28		regulator-min-microvolt = <3300000>;
29		regulator-max-microvolt = <3300000>;
30		gpio = <&gpio3 28 0>;
31	};
32
33	reg_fec_3v3: regulator-fec-3v3 {
34		compatible = "regulator-fixed";
35		regulator-name = "fec-3v3";
36		regulator-min-microvolt = <3300000>;
37		regulator-max-microvolt = <3300000>;
38		gpio = <&gpio2 15 0>;
39	};
40
41	reg_usb0_vbus: regulator-usb0-vbus {
42		compatible = "regulator-fixed";
43		regulator-name = "usb0_vbus";
44		regulator-min-microvolt = <5000000>;
45		regulator-max-microvolt = <5000000>;
46		gpio = <&gpio3 9 0>;
47		enable-active-high;
48	};
49
50	reg_usb1_vbus: regulator-usb1-vbus {
51		compatible = "regulator-fixed";
52		regulator-name = "usb1_vbus";
53		regulator-min-microvolt = <5000000>;
54		regulator-max-microvolt = <5000000>;
55		gpio = <&gpio3 8 0>;
56		enable-active-high;
57	};
58
59	reg_lcd_3v3: regulator-lcd-3v3 {
60		compatible = "regulator-fixed";
61		regulator-name = "lcd-3v3";
62		regulator-min-microvolt = <3300000>;
63		regulator-max-microvolt = <3300000>;
64		gpio = <&gpio3 30 0>;
65		enable-active-high;
66	};
67
68	reg_can_3v3: regulator-can-3v3 {
69		compatible = "regulator-fixed";
70		regulator-name = "can-3v3";
71		regulator-min-microvolt = <3300000>;
72		regulator-max-microvolt = <3300000>;
73		gpio = <&gpio2 13 0>;
74		enable-active-high;
75	};
76
77	reg_lcd_5v: regulator-lcd-5v {
78		compatible = "regulator-fixed";
79		regulator-name = "lcd-5v";
80		regulator-min-microvolt = <5000000>;
81		regulator-max-microvolt = <5000000>;
82	};
83
84	panel {
85		compatible = "sii,43wvf1g";
86		backlight = <&backlight_display>;
87		dvdd-supply = <&reg_lcd_3v3>;
88		avdd-supply = <&reg_lcd_5v>;
89
90		port {
91			panel_in: endpoint {
92				remote-endpoint = <&display_out>;
93			};
94		};
95	};
96
97	apb@80000000 {
98		apbh@80000000 {
99			gpmi-nand@8000c000 {
100				pinctrl-names = "default";
101				pinctrl-0 = <&gpmi_pins_a &gpmi_status_cfg
102					     &gpmi_pins_evk>;
103				status = "okay";
104			};
105
106			ssp0: ssp@80010000 {
107				compatible = "fsl,imx28-mmc";
108				pinctrl-names = "default";
109				pinctrl-0 = <&mmc0_8bit_pins_a
110					&mmc0_cd_cfg &mmc0_sck_cfg>;
111				bus-width = <8>;
112				wp-gpios = <&gpio2 12 0>;
113				vmmc-supply = <&reg_vddio_sd0>;
114				status = "okay";
115			};
116
117			ssp1: ssp@80012000 {
118				compatible = "fsl,imx28-mmc";
119				bus-width = <8>;
120				wp-gpios = <&gpio0 28 0>;
121			};
122
123			ssp2: ssp@80014000 {
124				#address-cells = <1>;
125				#size-cells = <0>;
126				compatible = "fsl,imx28-spi";
127				pinctrl-names = "default";
128				pinctrl-0 = <&spi2_pins_a>;
129				status = "okay";
130
131				flash: m25p80@0 {
132					#address-cells = <1>;
133					#size-cells = <1>;
134					compatible = "sst,sst25vf016b", "jedec,spi-nor";
135					spi-max-frequency = <40000000>;
136					reg = <0>;
137				};
138			};
139
140			pinctrl@80018000 {
141				pinctrl-names = "default";
142				pinctrl-0 = <&hog_pins_a>;
143
144				hog_pins_a: hog@0 {
145					reg = <0>;
146					fsl,pinmux-ids = <
147						MX28_PAD_SSP1_CMD__GPIO_2_13
148						MX28_PAD_SSP1_DATA3__GPIO_2_15
149						MX28_PAD_ENET0_RX_CLK__GPIO_4_13
150						MX28_PAD_SSP1_SCK__GPIO_2_12
151						MX28_PAD_PWM3__GPIO_3_28
152						MX28_PAD_LCD_RESET__GPIO_3_30
153						MX28_PAD_AUART2_RX__GPIO_3_8
154						MX28_PAD_AUART2_TX__GPIO_3_9
155					>;
156					fsl,drive-strength = <MXS_DRIVE_4mA>;
157					fsl,voltage = <MXS_VOLTAGE_HIGH>;
158					fsl,pull-up = <MXS_PULL_DISABLE>;
159				};
160
161				led_pin_gpio3_5: led_gpio3_5@0 {
162					reg = <0>;
163					fsl,pinmux-ids = <
164						MX28_PAD_AUART1_TX__GPIO_3_5
165					>;
166					fsl,drive-strength = <MXS_DRIVE_4mA>;
167					fsl,voltage = <MXS_VOLTAGE_HIGH>;
168					fsl,pull-up = <MXS_PULL_DISABLE>;
169				};
170
171				gpmi_pins_evk: gpmi-nand-evk@0 {
172					reg = <0>;
173					fsl,pinmux-ids = <
174						MX28_PAD_GPMI_CE1N__GPMI_CE1N
175						MX28_PAD_GPMI_RDY1__GPMI_READY1
176					>;
177					fsl,drive-strength = <MXS_DRIVE_4mA>;
178					fsl,voltage = <MXS_VOLTAGE_HIGH>;
179					fsl,pull-up = <MXS_PULL_DISABLE>;
180				};
181
182				lcdif_pins_evk: lcdif-evk@0 {
183					reg = <0>;
184					fsl,pinmux-ids = <
185						MX28_PAD_LCD_RD_E__LCD_VSYNC
186						MX28_PAD_LCD_WR_RWN__LCD_HSYNC
187						MX28_PAD_LCD_RS__LCD_DOTCLK
188						MX28_PAD_LCD_CS__LCD_ENABLE
189					>;
190					fsl,drive-strength = <MXS_DRIVE_4mA>;
191					fsl,voltage = <MXS_VOLTAGE_HIGH>;
192					fsl,pull-up = <MXS_PULL_DISABLE>;
193				};
194			};
195
196			lcdif@80030000 {
197				pinctrl-names = "default";
198				pinctrl-0 = <&lcdif_24bit_pins_a
199					     &lcdif_pins_evk>;
200				status = "okay";
201
202				port {
203					display_out: endpoint {
204						remote-endpoint = <&panel_in>;
205					};
206				};
207			};
208
209			can0: can@80032000 {
210				pinctrl-names = "default";
211				pinctrl-0 = <&can0_pins_a>;
212				xceiver-supply = <&reg_can_3v3>;
213				status = "okay";
214			};
215
216			can1: can@80034000 {
217				pinctrl-names = "default";
218				pinctrl-0 = <&can1_pins_a>;
219				xceiver-supply = <&reg_can_3v3>;
220				status = "okay";
221			};
222		};
223
224		apbx@80040000 {
225			saif0: saif@80042000 {
226				pinctrl-names = "default";
227				pinctrl-0 = <&saif0_pins_a>;
228				status = "okay";
229			};
230
231			saif1: saif@80046000 {
232				pinctrl-names = "default";
233				pinctrl-0 = <&saif1_pins_a>;
234				fsl,saif-master = <&saif0>;
235				status = "okay";
236			};
237
238			lradc@80050000 {
239				status = "okay";
240				fsl,lradc-touchscreen-wires = <4>;
241				fsl,ave-ctrl = <4>;
242				fsl,ave-delay = <2>;
243				fsl,settling = <10>;
244			};
245
246			i2c0: i2c@80058000 {
247				pinctrl-names = "default";
248				pinctrl-0 = <&i2c0_pins_a>;
249				status = "okay";
250
251				sgtl5000: codec@a {
252					compatible = "fsl,sgtl5000";
253					reg = <0x0a>;
254					#sound-dai-cells = <0>;
255					VDDA-supply = <&reg_3p3v>;
256					VDDIO-supply = <&reg_3p3v>;
257					clocks = <&saif0>;
258				};
259
260				at24@51 {
261					compatible = "atmel,24c32";
262					pagesize = <32>;
263					reg = <0x51>;
264				};
265			};
266
267			pwm: pwm@80064000 {
268				pinctrl-names = "default";
269				pinctrl-0 = <&pwm2_pins_a>;
270				status = "okay";
271			};
272
273			duart: serial@80074000 {
274				pinctrl-names = "default";
275				pinctrl-0 = <&duart_pins_a>;
276				status = "okay";
277			};
278
279			auart0: serial@8006a000 {
280				pinctrl-names = "default";
281				pinctrl-0 = <&auart0_pins_a>;
282				uart-has-rtscts;
283				status = "okay";
284			};
285
286			auart3: serial@80070000 {
287				pinctrl-names = "default";
288				pinctrl-0 = <&auart3_pins_a>;
289				status = "okay";
290			};
291
292			usbphy0: usbphy@8007c000 {
293				status = "okay";
294			};
295
296			usbphy1: usbphy@8007e000 {
297				status = "okay";
298			};
299		};
300	};
301
302	ahb@80080000 {
303		usb0: usb@80080000 {
304			pinctrl-names = "default";
305			pinctrl-0 = <&usb0_id_pins_a>;
306			vbus-supply = <&reg_usb0_vbus>;
307			status = "okay";
308		};
309
310		usb1: usb@80090000 {
311			vbus-supply = <&reg_usb1_vbus>;
312			status = "okay";
313		};
314
315		mac0: ethernet@800f0000 {
316			phy-mode = "rmii";
317			pinctrl-names = "default";
318			pinctrl-0 = <&mac0_pins_a>;
319			phy-supply = <&reg_fec_3v3>;
320			phy-reset-gpios = <&gpio4 13 GPIO_ACTIVE_LOW>;
321			phy-reset-duration = <100>;
322			status = "okay";
323		};
324
325		mac1: ethernet@800f4000 {
326			phy-mode = "rmii";
327			pinctrl-names = "default";
328			pinctrl-0 = <&mac1_pins_a>;
329			status = "okay";
330		};
331	};
332
333	sound {
334		compatible = "fsl,imx28-evk-sgtl5000",
335			     "fsl,mxs-audio-sgtl5000";
336		model = "imx28-evk-sgtl5000";
337		saif-controllers = <&saif0 &saif1>;
338		audio-codec = <&sgtl5000>;
339	};
340
341	leds {
342		compatible = "gpio-leds";
343		pinctrl-names = "default";
344		pinctrl-0 = <&led_pin_gpio3_5>;
345
346		user {
347			label = "Heartbeat";
348			gpios = <&gpio3 5 0>;
349			linux,default-trigger = "heartbeat";
350		};
351	};
352
353	backlight_display: backlight {
354		compatible = "pwm-backlight";
355		pwms = <&pwm 2 5000000>;
356		brightness-levels = <0 4 8 16 32 64 128 255>;
357		default-brightness-level = <6>;
358	};
359};
360