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