1// SPDX-License-Identifier: GPL-2.0-or-later
2/*
3
4 * Copyright (C) 2012 Marek Vasut <marex@denx.de>
5 */
6
7/dts-v1/;
8#include "imx28-m28.dtsi"
9
10/ {
11	model = "Aries/DENX M28EVK";
12	compatible = "aries,m28evk", "denx,m28evk", "fsl,imx28";
13
14	backlight {
15		compatible = "pwm-backlight";
16		pwms = <&pwm 4 5000000 0>;
17		brightness-levels = <0 4 8 16 32 64 128 255>;
18		default-brightness-level = <6>;
19	};
20
21	reg_vddio_sd0: regulator-1 {
22		compatible = "regulator-fixed";
23		regulator-name = "vddio-sd0";
24		regulator-min-microvolt = <3300000>;
25		regulator-max-microvolt = <3300000>;
26		gpio = <&gpio3 28 0>;
27	};
28
29	reg_usb0_vbus: regulator-2 {
30		compatible = "regulator-fixed";
31		regulator-name = "usb0_vbus";
32		regulator-min-microvolt = <5000000>;
33		regulator-max-microvolt = <5000000>;
34		gpio = <&gpio3 12 0>;
35	};
36
37	reg_usb1_vbus: regulator-3 {
38		compatible = "regulator-fixed";
39		regulator-name = "usb1_vbus";
40		regulator-min-microvolt = <5000000>;
41		regulator-max-microvolt = <5000000>;
42		gpio = <&gpio3 13 0>;
43	};
44
45	sound {
46		compatible = "denx,m28evk-sgtl5000",
47			     "fsl,mxs-audio-sgtl5000";
48		model = "m28evk-sgtl5000";
49		saif-controllers = <&saif0 &saif1>;
50		audio-codec = <&sgtl5000>;
51	};
52};
53
54&auart0 {
55	pinctrl-names = "default";
56	pinctrl-0 = <&auart0_pins_a>;
57	status = "okay";
58};
59
60&auart1 {
61	pinctrl-names = "default";
62	pinctrl-0 = <&auart1_pins_a>;
63	status = "okay";
64};
65
66&auart2 {
67	pinctrl-names = "default";
68	pinctrl-0 = <&auart2_2pins_b>;
69	status = "okay";
70};
71
72&duart {
73	pinctrl-names = "default";
74	pinctrl-0 = <&duart_pins_a>;
75	status = "okay";
76};
77
78&i2c0 {
79	sgtl5000: codec@a {
80		compatible = "fsl,sgtl5000";
81		reg = <0x0a>;
82		#sound-dai-cells = <0>;
83		VDDA-supply = <&reg_3p3v>;
84		VDDIO-supply = <&reg_3p3v>;
85		clocks = <&saif0>;
86	};
87
88	eeprom: eeprom@51 {
89		compatible = "atmel,24c128";
90		reg = <0x51>;
91		pagesize = <32>;
92	};
93};
94
95&lcdif {
96	pinctrl-names = "default";
97	pinctrl-0 = <&lcdif_24bit_pins_a
98		     &lcdif_pins_m28>;
99	display = <&display0>;
100	status = "okay";
101
102	display0: display0 {
103		bits-per-pixel = <16>;
104		bus-width = <18>;
105
106		display-timings {
107			native-mode = <&timing0>;
108			timing0: timing0 {
109				clock-frequency = <33260000>;
110				hactive = <800>;
111				vactive = <480>;
112				hback-porch = <0>;
113				hfront-porch = <256>;
114				vback-porch = <0>;
115				vfront-porch = <45>;
116				hsync-len = <1>;
117				vsync-len = <1>;
118				hsync-active = <0>;
119				vsync-active = <0>;
120				de-active = <1>;
121				pixelclk-active = <1>;
122			};
123		};
124	};
125};
126
127&lradc {
128	status = "okay";
129	fsl,lradc-touchscreen-wires = <4>;
130};
131
132&can0 {
133	pinctrl-names = "default";
134	pinctrl-0 = <&can0_pins_a>;
135	status = "okay";
136};
137
138&can1 {
139	pinctrl-names = "default";
140	pinctrl-0 = <&can1_pins_a>;
141	status = "okay";
142};
143
144&mac0 {
145	phy-mode = "rmii";
146	pinctrl-names = "default";
147	pinctrl-0 = <&mac0_pins_a>;
148	clocks = <&clks 57>, <&clks 57>;
149	clock-names = "ipg", "ahb";
150	status = "okay";
151};
152
153&mac1 {
154	phy-mode = "rmii";
155	pinctrl-names = "default";
156	pinctrl-0 = <&mac1_pins_a>;
157	status = "okay";
158};
159
160&pinctrl {
161	pinctrl-names = "default";
162	pinctrl-0 = <&hog_pins_a>;
163
164	hog_pins_a: hog@0 {
165		reg = <0>;
166		fsl,pinmux-ids = <
167			MX28_PAD_PWM3__GPIO_3_28
168			MX28_PAD_AUART2_CTS__GPIO_3_10
169			MX28_PAD_AUART2_RTS__GPIO_3_11
170			MX28_PAD_AUART3_RX__GPIO_3_12
171			MX28_PAD_AUART3_TX__GPIO_3_13
172		>;
173		fsl,drive-strength = <MXS_DRIVE_4mA>;
174		fsl,voltage = <MXS_VOLTAGE_HIGH>;
175		fsl,pull-up = <MXS_PULL_DISABLE>;
176	};
177
178	lcdif_pins_m28: lcdif-m28@0 {
179		reg = <0>;
180		fsl,pinmux-ids = <
181			MX28_PAD_LCD_DOTCLK__LCD_DOTCLK
182			MX28_PAD_LCD_ENABLE__LCD_ENABLE
183		>;
184		fsl,drive-strength = <MXS_DRIVE_4mA>;
185		fsl,voltage = <MXS_VOLTAGE_HIGH>;
186		fsl,pull-up = <MXS_PULL_DISABLE>;
187	};
188};
189
190&pwm {
191	pinctrl-names = "default";
192	pinctrl-0 = <&pwm4_pins_a>;
193	status = "okay";
194};
195
196&saif0 {
197	pinctrl-names = "default";
198	pinctrl-0 = <&saif0_pins_a>;
199	status = "okay";
200};
201
202&saif1 {
203	pinctrl-names = "default";
204	pinctrl-0 = <&saif1_pins_a>;
205	fsl,saif-master = <&saif0>;
206	status = "okay";
207};
208
209&ssp0 {
210	compatible = "fsl,imx28-mmc";
211	pinctrl-names = "default";
212	pinctrl-0 = <&mmc0_8bit_pins_a
213		     &mmc0_cd_cfg
214		     &mmc0_sck_cfg>;
215	bus-width = <8>;
216	wp-gpios = <&gpio3 10 0>;
217	vmmc-supply = <&reg_vddio_sd0>;
218	status = "okay";
219};
220
221&ssp2 {
222	#address-cells = <1>;
223	#size-cells = <0>;
224	compatible = "fsl,imx28-spi";
225	pinctrl-names = "default";
226	pinctrl-0 = <&spi2_pins_a>;
227	status = "okay";
228
229	flash: flash@0 {
230		#address-cells = <1>;
231		#size-cells = <1>;
232		compatible = "m25p80", "jedec,spi-nor";
233		spi-max-frequency = <40000000>;
234		reg = <0>;
235	};
236};
237
238&usb0 {
239	vbus-supply = <&reg_usb0_vbus>;
240	pinctrl-names = "default";
241	pinctrl-0 = <&usb0_pins_a>;
242	status = "okay";
243};
244
245&usb1 {
246	vbus-supply = <&reg_usb1_vbus>;
247	pinctrl-names = "default";
248	pinctrl-0 = <&usb1_pins_a>;
249	status = "okay";
250};
251
252&usbphy0 {
253	status = "okay";
254};
255
256&usbphy1 {
257	status = "okay";
258};
259