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