1// SPDX-License-Identifier: GPL-2.0-or-later
2/*
3 * Copyright (C) 2013 Marek Vasut <marex@denx.de>
4 */
5
6/dts-v1/;
7#include "imx28.dtsi"
8
9/ {
10	model = "MSR M28CU3";
11	compatible = "msr,m28cu3", "fsl,imx28";
12
13	memory@40000000 {
14		device_type = "memory";
15		reg = <0x40000000 0x08000000>;
16	};
17
18	backlight {
19		compatible = "pwm-backlight";
20		pwms = <&pwm 3 5000000>;
21		brightness-levels = <0 4 8 16 32 64 128 255>;
22		default-brightness-level = <6>;
23	};
24
25	leds {
26		compatible = "gpio-leds";
27		pinctrl-names = "default";
28		pinctrl-0 = <&led_pins_gpio>;
29
30		user1 {
31			label = "sd0-led";
32			gpios = <&gpio2 26 0>;
33			linux,default-trigger = "mmc0";
34		};
35
36		user2 {
37			label = "sd1-led";
38			gpios = <&gpio2 24 0>;
39			linux,default-trigger = "mmc2";
40		};
41	};
42
43	regulators {
44		compatible = "simple-bus";
45		#address-cells = <1>;
46		#size-cells = <0>;
47
48		reg_3p3v: regulator@0 {
49			compatible = "regulator-fixed";
50			reg = <0>;
51			regulator-name = "3P3V";
52			regulator-min-microvolt = <3300000>;
53			regulator-max-microvolt = <3300000>;
54			regulator-always-on;
55		};
56
57		reg_vddio_sd0: regulator@1 {
58			compatible = "regulator-fixed";
59			reg = <1>;
60			regulator-name = "vddio-sd0";
61			regulator-min-microvolt = <3300000>;
62			regulator-max-microvolt = <3300000>;
63			gpio = <&gpio3 29 0>;
64		};
65
66		reg_vddio_sd1: regulator@2 {
67			compatible = "regulator-fixed";
68			reg = <2>;
69			regulator-name = "vddio-sd1";
70			regulator-min-microvolt = <3300000>;
71			regulator-max-microvolt = <3300000>;
72			gpio = <&gpio2 19 0>;
73		};
74
75		reg_usb1_vbus: regulator@3 {
76			compatible = "regulator-fixed";
77			reg = <3>;
78			regulator-name = "usb1_vbus";
79			regulator-min-microvolt = <5000000>;
80			regulator-max-microvolt = <5000000>;
81			gpio = <&gpio3 8 0>;
82			enable-active-high;
83		};
84	};
85};
86
87&auart0 {
88	pinctrl-names = "default";
89	pinctrl-0 = <&auart0_2pins_a>;
90	status = "okay";
91};
92
93&auart3 {
94	pinctrl-names = "default";
95	pinctrl-0 = <&auart3_2pins_b>;
96	status = "okay";
97};
98
99&duart {
100	pinctrl-names = "default";
101	pinctrl-0 = <&duart_pins_b>;
102	status = "okay";
103};
104
105&gpmi {
106	#address-cells = <1>;
107	#size-cells = <1>;
108	pinctrl-names = "default";
109	pinctrl-0 = <&gpmi_pins_a &gpmi_status_cfg>;
110	status = "okay";
111
112	partition@0 {
113		label = "gpmi-nfc-0-boot";
114		reg = <0x00000000 0x01400000>;
115		read-only;
116	};
117
118	partition@1 {
119		label = "gpmi-nfc-general-use";
120		reg = <0x01400000 0x0ec00000>;
121	};
122};
123
124&lcdif {
125	pinctrl-names = "default";
126	pinctrl-0 = <&lcdif_24bit_pins_a
127		     &lcdif_pins_m28>;
128	display = <&display0>;
129	status = "okay";
130
131	display0: display0 {
132		bits-per-pixel = <32>;
133		bus-width = <24>;
134
135		display-timings {
136			native-mode = <&timing0>;
137			timing0: timing0 {
138				clock-frequency = <6410256>;
139				hactive = <320>;
140				vactive = <240>;
141				hback-porch = <38>;
142				hfront-porch = <20>;
143				vback-porch = <15>;
144				vfront-porch = <5>;
145				hsync-len = <30>;
146				vsync-len = <3>;
147				hsync-active = <0>;
148				vsync-active = <0>;
149				de-active = <1>;
150				pixelclk-active = <1>;
151			};
152		};
153	};
154};
155
156&mac0 {
157	phy-mode = "rmii";
158	pinctrl-names = "default";
159	pinctrl-0 = <&mac0_pins_a>;
160	phy-reset-gpios = <&gpio4 13 GPIO_ACTIVE_LOW>;
161	phy-reset-duration = <100>;
162	status = "okay";
163};
164
165&mac1 {
166	phy-mode = "rmii";
167	pinctrl-names = "default";
168	pinctrl-0 = <&mac1_pins_a>;
169	status = "okay";
170};
171
172&ocotp {
173	status = "okay";
174};
175
176&pinctrl {
177	pinctrl-names = "default";
178	pinctrl-0 = <&hog_pins_a>;
179
180	hog_pins_a: hog@0 {
181		reg = <0>;
182		fsl,pinmux-ids = <
183			MX28_PAD_SSP2_SS0__GPIO_2_19
184			MX28_PAD_PWM4__GPIO_3_29
185			MX28_PAD_AUART2_RX__GPIO_3_8
186			MX28_PAD_ENET0_RX_CLK__GPIO_4_13
187		>;
188		fsl,drive-strength = <MXS_DRIVE_4mA>;
189		fsl,voltage = <MXS_VOLTAGE_HIGH>;
190		fsl,pull-up = <MXS_PULL_DISABLE>;
191	};
192
193	lcdif_pins_m28: lcdif-m28@0 {
194		reg = <0>;
195		fsl,pinmux-ids = <
196			MX28_PAD_LCD_VSYNC__LCD_VSYNC
197			MX28_PAD_LCD_HSYNC__LCD_HSYNC
198			MX28_PAD_LCD_DOTCLK__LCD_DOTCLK
199			MX28_PAD_LCD_RESET__LCD_RESET
200			MX28_PAD_LCD_CS__LCD_ENABLE
201			MX28_PAD_AUART1_TX__GPIO_3_5
202		>;
203		fsl,drive-strength = <MXS_DRIVE_4mA>;
204		fsl,voltage = <MXS_VOLTAGE_HIGH>;
205		fsl,pull-up = <MXS_PULL_DISABLE>;
206	};
207
208	led_pins_gpio: leds-m28@0 {
209		reg = <0>;
210		fsl,pinmux-ids = <
211			MX28_PAD_SSP3_MISO__GPIO_2_26
212			MX28_PAD_SSP3_SCK__GPIO_2_24
213		>;
214		fsl,drive-strength = <MXS_DRIVE_4mA>;
215		fsl,voltage = <MXS_VOLTAGE_HIGH>;
216		fsl,pull-up = <MXS_PULL_DISABLE>;
217	};
218};
219
220&pwm {
221	pinctrl-names = "default";
222	pinctrl-0 = <&pwm3_pins_a>;
223	status = "okay";
224};
225
226&ssp0 {
227	compatible = "fsl,imx28-mmc";
228	pinctrl-names = "default";
229	pinctrl-0 = <&mmc0_4bit_pins_a
230		     &mmc0_cd_cfg
231		     &mmc0_sck_cfg>;
232	bus-width = <4>;
233	vmmc-supply = <&reg_vddio_sd0>;
234	status = "okay";
235};
236
237&ssp2 {
238	compatible = "fsl,imx28-mmc";
239	pinctrl-names = "default";
240	pinctrl-0 = <&mmc2_4bit_pins_a
241		     &mmc2_cd_cfg
242		     &mmc2_sck_cfg_a>;
243	bus-width = <4>;
244	vmmc-supply = <&reg_vddio_sd1>;
245	status = "okay";
246};
247
248&usb1 {
249	vbus-supply = <&reg_usb1_vbus>;
250	pinctrl-names = "default";
251	pinctrl-0 = <&usb1_pins_a>;
252	disable-over-current;
253	status = "okay";
254};
255
256&usbphy1 {
257	status = "okay";
258};
259