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	reg_3p3v: regulator-0 {
44		compatible = "regulator-fixed";
45		regulator-name = "3P3V";
46		regulator-min-microvolt = <3300000>;
47		regulator-max-microvolt = <3300000>;
48		regulator-always-on;
49	};
50
51	reg_vddio_sd0: regulator-1 {
52		compatible = "regulator-fixed";
53		regulator-name = "vddio-sd0";
54		regulator-min-microvolt = <3300000>;
55		regulator-max-microvolt = <3300000>;
56		gpio = <&gpio3 29 0>;
57	};
58
59	reg_vddio_sd1: regulator-2 {
60		compatible = "regulator-fixed";
61		regulator-name = "vddio-sd1";
62		regulator-min-microvolt = <3300000>;
63		regulator-max-microvolt = <3300000>;
64		gpio = <&gpio2 19 0>;
65	};
66
67	reg_usb1_vbus: regulator-3 {
68		compatible = "regulator-fixed";
69		regulator-name = "usb1_vbus";
70		regulator-min-microvolt = <5000000>;
71		regulator-max-microvolt = <5000000>;
72		gpio = <&gpio3 8 0>;
73		enable-active-high;
74	};
75};
76
77&auart0 {
78	pinctrl-names = "default";
79	pinctrl-0 = <&auart0_2pins_a>;
80	status = "okay";
81};
82
83&auart3 {
84	pinctrl-names = "default";
85	pinctrl-0 = <&auart3_2pins_b>;
86	status = "okay";
87};
88
89&duart {
90	pinctrl-names = "default";
91	pinctrl-0 = <&duart_pins_b>;
92	status = "okay";
93};
94
95&gpmi {
96	#address-cells = <1>;
97	#size-cells = <1>;
98	pinctrl-names = "default";
99	pinctrl-0 = <&gpmi_pins_a &gpmi_status_cfg>;
100	status = "okay";
101
102	partition@0 {
103		label = "gpmi-nfc-0-boot";
104		reg = <0x00000000 0x01400000>;
105		read-only;
106	};
107
108	partition@1 {
109		label = "gpmi-nfc-general-use";
110		reg = <0x01400000 0x0ec00000>;
111	};
112};
113
114&lcdif {
115	pinctrl-names = "default";
116	pinctrl-0 = <&lcdif_24bit_pins_a
117		     &lcdif_pins_m28>;
118	display = <&display0>;
119	status = "okay";
120
121	display0: display0 {
122		bits-per-pixel = <32>;
123		bus-width = <24>;
124
125		display-timings {
126			native-mode = <&timing0>;
127			timing0: timing0 {
128				clock-frequency = <6410256>;
129				hactive = <320>;
130				vactive = <240>;
131				hback-porch = <38>;
132				hfront-porch = <20>;
133				vback-porch = <15>;
134				vfront-porch = <5>;
135				hsync-len = <30>;
136				vsync-len = <3>;
137				hsync-active = <0>;
138				vsync-active = <0>;
139				de-active = <1>;
140				pixelclk-active = <1>;
141			};
142		};
143	};
144};
145
146&mac0 {
147	phy-mode = "rmii";
148	pinctrl-names = "default";
149	pinctrl-0 = <&mac0_pins_a>;
150	phy-reset-gpios = <&gpio4 13 GPIO_ACTIVE_LOW>;
151	phy-reset-duration = <100>;
152	status = "okay";
153};
154
155&mac1 {
156	phy-mode = "rmii";
157	pinctrl-names = "default";
158	pinctrl-0 = <&mac1_pins_a>;
159	status = "okay";
160};
161
162&ocotp {
163	status = "okay";
164};
165
166&pinctrl {
167	pinctrl-names = "default";
168	pinctrl-0 = <&hog_pins_a>;
169
170	hog_pins_a: hog@0 {
171		reg = <0>;
172		fsl,pinmux-ids = <
173			MX28_PAD_SSP2_SS0__GPIO_2_19
174			MX28_PAD_PWM4__GPIO_3_29
175			MX28_PAD_AUART2_RX__GPIO_3_8
176			MX28_PAD_ENET0_RX_CLK__GPIO_4_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_VSYNC__LCD_VSYNC
187			MX28_PAD_LCD_HSYNC__LCD_HSYNC
188			MX28_PAD_LCD_DOTCLK__LCD_DOTCLK
189			MX28_PAD_LCD_RESET__LCD_RESET
190			MX28_PAD_LCD_CS__LCD_ENABLE
191			MX28_PAD_AUART1_TX__GPIO_3_5
192		>;
193		fsl,drive-strength = <MXS_DRIVE_4mA>;
194		fsl,voltage = <MXS_VOLTAGE_HIGH>;
195		fsl,pull-up = <MXS_PULL_DISABLE>;
196	};
197
198	led_pins_gpio: leds-m28@0 {
199		reg = <0>;
200		fsl,pinmux-ids = <
201			MX28_PAD_SSP3_MISO__GPIO_2_26
202			MX28_PAD_SSP3_SCK__GPIO_2_24
203		>;
204		fsl,drive-strength = <MXS_DRIVE_4mA>;
205		fsl,voltage = <MXS_VOLTAGE_HIGH>;
206		fsl,pull-up = <MXS_PULL_DISABLE>;
207	};
208};
209
210&pwm {
211	pinctrl-names = "default";
212	pinctrl-0 = <&pwm3_pins_a>;
213	status = "okay";
214};
215
216&ssp0 {
217	compatible = "fsl,imx28-mmc";
218	pinctrl-names = "default";
219	pinctrl-0 = <&mmc0_4bit_pins_a
220		     &mmc0_cd_cfg
221		     &mmc0_sck_cfg>;
222	bus-width = <4>;
223	vmmc-supply = <&reg_vddio_sd0>;
224	status = "okay";
225};
226
227&ssp2 {
228	compatible = "fsl,imx28-mmc";
229	pinctrl-names = "default";
230	pinctrl-0 = <&mmc2_4bit_pins_a
231		     &mmc2_cd_cfg
232		     &mmc2_sck_cfg_a>;
233	bus-width = <4>;
234	vmmc-supply = <&reg_vddio_sd1>;
235	status = "okay";
236};
237
238&usb1 {
239	vbus-supply = <&reg_usb1_vbus>;
240	pinctrl-names = "default";
241	pinctrl-0 = <&usb1_pins_a>;
242	disable-over-current;
243	status = "okay";
244};
245
246&usbphy1 {
247	status = "okay";
248};
249