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