1/*
2 * Copyright (C) 2013 Marek Vasut <marex@denx.de>
3 *
4 * The code contained herein is licensed under the GNU General Public
5 * License. You may obtain a copy of the GNU General Public License
6 * Version 2 or later at the following locations:
7 *
8 * http://www.opensource.org/licenses/gpl-license.html
9 * http://www.gnu.org/copyleft/gpl.html
10 */
11
12/dts-v1/;
13#include "imx28.dtsi"
14
15/ {
16	model = "MSR M28CU3";
17	compatible = "msr,m28cu3", "fsl,imx28";
18
19	memory {
20		reg = <0x40000000 0x08000000>;
21	};
22
23	apb@80000000 {
24		apbh@80000000 {
25			gpmi-nand@8000c000 {
26				#address-cells = <1>;
27				#size-cells = <1>;
28				pinctrl-names = "default";
29				pinctrl-0 = <&gpmi_pins_a &gpmi_status_cfg>;
30				status = "okay";
31
32				partition@0 {
33					label = "gpmi-nfc-0-boot";
34					reg = <0x00000000 0x01400000>;
35					read-only;
36				};
37
38				partition@1 {
39					label = "gpmi-nfc-general-use";
40					reg = <0x01400000 0x0ec00000>;
41				};
42			};
43
44			ssp0: ssp@80010000 {
45				compatible = "fsl,imx28-mmc";
46				pinctrl-names = "default";
47				pinctrl-0 = <&mmc0_4bit_pins_a
48					     &mmc0_cd_cfg
49					     &mmc0_sck_cfg>;
50				bus-width = <4>;
51				vmmc-supply = <&reg_vddio_sd0>;
52				status = "okay";
53			};
54
55			ssp2: ssp@80014000 {
56				compatible = "fsl,imx28-mmc";
57				pinctrl-names = "default";
58				pinctrl-0 = <&mmc2_4bit_pins_a
59					     &mmc2_cd_cfg
60					     &mmc2_sck_cfg>;
61				bus-width = <4>;
62				vmmc-supply = <&reg_vddio_sd1>;
63				status = "okay";
64			};
65
66			pinctrl@80018000 {
67				pinctrl-names = "default";
68				pinctrl-0 = <&hog_pins_a>;
69
70				hog_pins_a: hog@0 {
71					reg = <0>;
72					fsl,pinmux-ids = <
73						MX28_PAD_SSP2_SS0__GPIO_2_19
74						MX28_PAD_PWM4__GPIO_3_29
75						MX28_PAD_AUART2_RX__GPIO_3_8
76						MX28_PAD_ENET0_RX_CLK__GPIO_4_13
77					>;
78					fsl,drive-strength = <MXS_DRIVE_4mA>;
79					fsl,voltage = <MXS_VOLTAGE_HIGH>;
80					fsl,pull-up = <MXS_PULL_DISABLE>;
81				};
82
83				lcdif_pins_m28: lcdif-m28@0 {
84					reg = <0>;
85					fsl,pinmux-ids = <
86						MX28_PAD_LCD_VSYNC__LCD_VSYNC
87						MX28_PAD_LCD_HSYNC__LCD_HSYNC
88						MX28_PAD_LCD_DOTCLK__LCD_DOTCLK
89						MX28_PAD_LCD_RESET__LCD_RESET
90						MX28_PAD_LCD_CS__LCD_ENABLE
91						MX28_PAD_AUART1_TX__GPIO_3_5
92					>;
93					fsl,drive-strength = <MXS_DRIVE_4mA>;
94					fsl,voltage = <MXS_VOLTAGE_HIGH>;
95					fsl,pull-up = <MXS_PULL_DISABLE>;
96				};
97
98				led_pins_gpio: leds-m28@0 {
99					reg = <0>;
100					fsl,pinmux-ids = <
101						MX28_PAD_SSP3_MISO__GPIO_2_26
102						MX28_PAD_SSP3_SCK__GPIO_2_24
103					>;
104					fsl,drive-strength = <MXS_DRIVE_4mA>;
105					fsl,voltage = <MXS_VOLTAGE_HIGH>;
106					fsl,pull-up = <MXS_PULL_DISABLE>;
107				};
108			};
109
110			ocotp@8002c000 {
111				status = "okay";
112			};
113
114			lcdif@80030000 {
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
147		apbx@80040000 {
148			duart: serial@80074000 {
149				pinctrl-names = "default";
150				pinctrl-0 = <&duart_pins_b>;
151				status = "okay";
152			};
153
154			usbphy1: usbphy@8007e000 {
155				status = "okay";
156			};
157
158			auart0: serial@8006a000 {
159				pinctrl-names = "default";
160				pinctrl-0 = <&auart0_2pins_a>;
161				status = "okay";
162			};
163
164			auart3: serial@80070000 {
165				pinctrl-names = "default";
166				pinctrl-0 = <&auart3_2pins_b>;
167				status = "okay";
168			};
169
170			pwm: pwm@80064000 {
171				pinctrl-names = "default";
172				pinctrl-0 = <&pwm3_pins_a>;
173				status = "okay";
174			};
175		};
176	};
177
178	ahb@80080000 {
179		usb1: usb@80090000 {
180			vbus-supply = <&reg_usb1_vbus>;
181			pinctrl-names = "default";
182			pinctrl-0 = <&usb1_pins_a>;
183			disable-over-current;
184			status = "okay";
185		};
186
187		mac0: ethernet@800f0000 {
188			phy-mode = "rmii";
189			pinctrl-names = "default";
190			pinctrl-0 = <&mac0_pins_a>;
191			phy-reset-gpios = <&gpio4 13 0>;
192			phy-reset-duration = <100>;
193			status = "okay";
194		};
195
196		mac1: ethernet@800f4000 {
197			phy-mode = "rmii";
198			pinctrl-names = "default";
199			pinctrl-0 = <&mac1_pins_a>;
200			status = "okay";
201		};
202	};
203
204	backlight {
205		compatible = "pwm-backlight";
206		pwms = <&pwm 3 5000000>;
207		brightness-levels = <0 4 8 16 32 64 128 255>;
208		default-brightness-level = <6>;
209	};
210
211	leds {
212		compatible = "gpio-leds";
213		pinctrl-names = "default";
214		pinctrl-0 = <&led_pins_gpio>;
215
216		user1 {
217			label = "sd0-led";
218			gpios = <&gpio2 26 0>;
219			linux,default-trigger = "mmc0";
220		};
221
222		user2 {
223			label = "sd1-led";
224			gpios = <&gpio2 24 0>;
225			linux,default-trigger = "mmc2";
226		};
227	};
228
229	regulators {
230		compatible = "simple-bus";
231		#address-cells = <1>;
232		#size-cells = <0>;
233
234		reg_3p3v: regulator@0 {
235			compatible = "regulator-fixed";
236			reg = <0>;
237			regulator-name = "3P3V";
238			regulator-min-microvolt = <3300000>;
239			regulator-max-microvolt = <3300000>;
240			regulator-always-on;
241		};
242
243		reg_vddio_sd0: regulator@1 {
244			compatible = "regulator-fixed";
245			reg = <1>;
246			regulator-name = "vddio-sd0";
247			regulator-min-microvolt = <3300000>;
248			regulator-max-microvolt = <3300000>;
249			gpio = <&gpio3 29 0>;
250		};
251
252		reg_vddio_sd1: regulator@2 {
253			compatible = "regulator-fixed";
254			reg = <2>;
255			regulator-name = "vddio-sd1";
256			regulator-min-microvolt = <3300000>;
257			regulator-max-microvolt = <3300000>;
258			gpio = <&gpio2 19 0>;
259		};
260
261		reg_usb1_vbus: regulator@3 {
262			compatible = "regulator-fixed";
263			reg = <3>;
264			regulator-name = "usb1_vbus";
265			regulator-min-microvolt = <5000000>;
266			regulator-max-microvolt = <5000000>;
267			gpio = <&gpio3 8 0>;
268			enable-active-high;
269		};
270	};
271};
272