1// SPDX-License-Identifier: (GPL-2.0 OR MIT)
2
3/*
4 * Copyright (C) 2018 Zodiac Inflight Innovations
5 */
6
7/dts-v1/;
8
9#include "imx51.dtsi"
10
11/ {
12	model = "ZII SCU2 Mezz Board";
13	compatible = "zii,imx51-scu2-mezz", "fsl,imx51";
14
15	chosen {
16		stdout-path = &uart1;
17	};
18
19	/* Will be filled by the bootloader */
20	memory@90000000 {
21		device_type = "memory";
22		reg = <0x90000000 0>;
23	};
24
25	aliases {
26		mdio-gpio0 = &mdio_gpio;
27	};
28
29	usb_vbus: regulator-usb-vbus {
30		compatible = "regulator-fixed";
31		pinctrl-names = "default";
32		pinctrl-0 = <&pinctrl_usb_mmc_reset>;
33		gpio = <&gpio3 13 GPIO_ACTIVE_LOW>;
34		startup-delay-us = <150000>;
35		regulator-name = "usb_vbus";
36		regulator-min-microvolt = <5000000>;
37		regulator-max-microvolt = <5000000>;
38	};
39
40	mdio_gpio: mdio-gpio {
41		compatible = "virtual,mdio-gpio";
42		pinctrl-names = "default";
43		pinctrl-0 = <&pinctrl_swmdio>;
44		gpios = <&gpio2 7 GPIO_ACTIVE_HIGH>, /* mdc */
45			<&gpio2 6 GPIO_ACTIVE_HIGH>; /* mdio */
46		#address-cells = <1>;
47		#size-cells = <0>;
48
49		switch@0 {
50			compatible = "marvell,mv88e6085";
51			reg = <0>;
52			dsa,member = <0 0>;
53			eeprom-length = <512>;
54			interrupt-parent = <&gpio1>;
55			interrupts = <7 IRQ_TYPE_LEVEL_LOW>;
56			interrupt-controller;
57			#interrupt-cells = <2>;
58
59			ports {
60				#address-cells = <1>;
61				#size-cells = <0>;
62
63				port@0 {
64					reg = <0>;
65					label = "port4";
66				};
67
68				port@1 {
69					reg = <1>;
70					label = "port5";
71				};
72
73				port@2 {
74					reg = <2>;
75					label = "port6";
76				};
77
78				port@3 {
79					reg = <3>;
80					label = "port7";
81				};
82
83				port@4 {
84					reg = <4>;
85					phy-mode = "rev-mii";
86					ethernet = <&fec>;
87
88					fixed-link {
89						speed = <100>;
90						full-duplex;
91					};
92				};
93
94				port@5 {
95					reg = <5>;
96					label = "mezz2esb";
97					phy-mode = "sgmii";
98
99					fixed-link {
100						speed = <1000>;
101						full-duplex;
102					};
103				};
104			};
105		};
106	};
107};
108
109&cpu {
110	cpu-supply = <&sw1_reg>;
111};
112
113&ecspi1 {
114	pinctrl-names = "default";
115	pinctrl-0 = <&pinctrl_ecspi1>;
116	cs-gpios = <&gpio4 24 GPIO_ACTIVE_HIGH>,
117		   <&gpio4 25 GPIO_ACTIVE_LOW>;
118	status = "okay";
119
120	pmic@0 {
121		compatible = "fsl,mc13892";
122		pinctrl-names = "default";
123		pinctrl-0 = <&pinctrl_pmic>;
124		spi-max-frequency = <6000000>;
125		spi-cs-high;
126		reg = <0>;
127		interrupt-parent = <&gpio1>;
128		interrupts = <8 IRQ_TYPE_LEVEL_HIGH>;
129		fsl,mc13xxx-uses-adc;
130
131		regulators {
132			sw1_reg: sw1 {
133				regulator-min-microvolt = <600000>;
134				regulator-max-microvolt = <1375000>;
135				regulator-boot-on;
136				regulator-always-on;
137			};
138
139			sw2_reg: sw2 {
140				regulator-min-microvolt = <900000>;
141				regulator-max-microvolt = <1850000>;
142				regulator-boot-on;
143				regulator-always-on;
144			};
145
146			sw3_reg: sw3 {
147				regulator-min-microvolt = <1100000>;
148				regulator-max-microvolt = <1850000>;
149				regulator-boot-on;
150				regulator-always-on;
151			};
152
153			sw4_reg: sw4 {
154				regulator-min-microvolt = <1100000>;
155				regulator-max-microvolt = <1850000>;
156				regulator-boot-on;
157				regulator-always-on;
158			};
159
160			vpll_reg: vpll {
161				regulator-min-microvolt = <1050000>;
162				regulator-max-microvolt = <1800000>;
163				regulator-boot-on;
164				regulator-always-on;
165			};
166
167			vdig_reg: vdig {
168				regulator-min-microvolt = <1650000>;
169				regulator-max-microvolt = <1650000>;
170				regulator-boot-on;
171			};
172
173			vsd_reg: vsd {
174				regulator-min-microvolt = <1800000>;
175				regulator-max-microvolt = <3150000>;
176				regulator-always-on;
177			};
178
179			vusb_reg: vusb {
180				regulator-always-on;
181			};
182
183			vusb2_reg: vusb2 {
184				regulator-min-microvolt = <2400000>;
185				regulator-max-microvolt = <2775000>;
186				regulator-boot-on;
187				regulator-always-on;
188			};
189
190			vvideo_reg: vvideo {
191				regulator-min-microvolt = <2775000>;
192				regulator-max-microvolt = <2775000>;
193			};
194
195			vaudio_reg: vaudio {
196				regulator-min-microvolt = <2300000>;
197				regulator-max-microvolt = <3000000>;
198			};
199
200			vcam_reg: vcam {
201				regulator-min-microvolt = <2500000>;
202				regulator-max-microvolt = <3000000>;
203			};
204
205			vgen1_reg: vgen1 {
206				regulator-min-microvolt = <1200000>;
207				regulator-max-microvolt = <1200000>;
208			};
209
210			vgen2_reg: vgen2 {
211				regulator-min-microvolt = <1200000>;
212				regulator-max-microvolt = <3150000>;
213				regulator-always-on;
214			};
215
216			vgen3_reg: vgen3 {
217				regulator-min-microvolt = <1800000>;
218				regulator-max-microvolt = <2900000>;
219				regulator-always-on;
220			};
221		};
222
223		leds {
224			#address-cells = <1>;
225			#size-cells = <0>;
226			led-control = <0x0 0x0 0x3f83f8 0x0>;
227
228			sysled3: led3@3 {
229				reg = <3>;
230				label = "system:red:power";
231				linux,default-trigger = "default-on";
232			};
233
234			sysled4: led4@4 {
235				reg = <4>;
236				label = "system:green:act";
237				linux,default-trigger = "heartbeat";
238			};
239		};
240	};
241
242	flash@1 {
243		compatible = "atmel,at45", "atmel,dataflash";
244		reg = <1>;
245		spi-max-frequency = <25000000>;
246	};
247};
248
249&esdhc1 {
250	pinctrl-names = "default";
251	pinctrl-0 = <&pinctrl_esdhc1>;
252	bus-width = <8>;
253	non-removable;
254	no-1-8-v;
255	no-sdio;
256	no-sd;
257	status = "okay";
258};
259
260&esdhc4 {
261	pinctrl-names = "default";
262	pinctrl-0 = <&pinctrl_esdhc4>;
263	bus-width = <4>;
264	no-1-8-v;
265	no-sdio;
266	cd-gpios = <&gpio4 8 GPIO_ACTIVE_LOW>;
267	status = "okay";
268};
269
270&fec {
271	pinctrl-names = "default";
272	pinctrl-0 = <&pinctrl_fec>;
273	phy-mode = "mii";
274	status = "okay";
275	phy-reset-gpios = <&gpio2 14 GPIO_ACTIVE_LOW>;
276	phy-reset-duration = <1>;
277	phy-supply = <&vgen3_reg>;
278	phy-handle = <&ethphy>;
279
280	mdio {
281		#address-cells = <1>;
282		#size-cells = <0>;
283
284		ethphy: ethernet-phy@0 {
285			reg = <0>;
286			max-speed = <100>;
287		};
288	};
289};
290
291&i2c2 {
292	pinctrl-names = "default";
293	pinctrl-0 = <&pinctrl_i2c2>;
294	status = "okay";
295
296	eeprom@50 {
297		compatible = "atmel,24c04";
298		pagesize = <16>;
299		reg = <0x50>;
300	};
301};
302
303&uart1 {
304	pinctrl-names = "default";
305	pinctrl-0 = <&pinctrl_uart1>;
306	status = "okay";
307};
308
309&uart3 {
310	pinctrl-names = "default";
311	pinctrl-0 = <&pinctrl_uart3>;
312	status = "okay";
313
314	mcu {
315		compatible = "zii,rave-sp-mezz";
316		current-speed = <57600>;
317		#address-cells = <1>;
318		#size-cells = <1>;
319
320		watchdog {
321			compatible = "zii,rave-sp-watchdog-legacy";
322		};
323
324		eeprom@a4 {
325			compatible = "zii,rave-sp-eeprom";
326			reg = <0xa4 0x4000>;
327			#address-cells = <1>;
328			#size-cells = <1>;
329			zii,eeprom-name = "main-eeprom";
330		};
331	};
332};
333
334&usbotg {
335	dr_mode = "host";
336	disable-over-current;
337	phy_type = "utmi_wide";
338	vbus-supply = <&usb_vbus>;
339	status = "okay";
340};
341
342&usbphy0 {
343	vcc-supply = <&vusb2_reg>;
344};
345
346&vpu {
347	status = "disabled";
348};
349
350&wdog1 {
351	status = "disabled";
352};
353
354&iomuxc {
355	pinctrl_ecspi1: ecspi1grp {
356		fsl,pins = <
357			MX51_PAD_CSPI1_MISO__ECSPI1_MISO	0x185
358			MX51_PAD_CSPI1_MOSI__ECSPI1_MOSI	0x185
359			MX51_PAD_CSPI1_SCLK__ECSPI1_SCLK	0x185
360			MX51_PAD_CSPI1_SS0__GPIO4_24		0x85
361			MX51_PAD_CSPI1_SS1__GPIO4_25		0x85
362		>;
363	};
364
365	pinctrl_esdhc1: esdhc1grp {
366		fsl,pins = <
367			MX51_PAD_SD1_CMD__SD1_CMD		0x400020d5
368			MX51_PAD_SD1_CLK__SD1_CLK		0x20d5
369			MX51_PAD_SD1_DATA0__SD1_DATA0		0x20d5
370			MX51_PAD_SD1_DATA1__SD1_DATA1		0x20d5
371			MX51_PAD_SD1_DATA2__SD1_DATA2		0x20d5
372			MX51_PAD_SD1_DATA3__SD1_DATA3		0x20d5
373			MX51_PAD_SD2_DATA0__SD1_DAT4		0x20d5
374			MX51_PAD_SD2_DATA1__SD1_DAT5		0x20d5
375			MX51_PAD_SD2_DATA2__SD1_DAT6		0x20d5
376			MX51_PAD_SD2_DATA3__SD1_DAT7		0x20d5
377		>;
378	};
379
380	pinctrl_esdhc4: esdhc4grp {
381		fsl,pins = <
382			MX51_PAD_NANDF_RB1__SD4_CMD		0x400020d5
383			MX51_PAD_NANDF_CS2__SD4_CLK		0x20d5
384			MX51_PAD_NANDF_CS3__SD4_DAT0		0x20d5
385			MX51_PAD_NANDF_CS4__SD4_DAT1		0x20d5
386			MX51_PAD_NANDF_CS5__SD4_DAT2		0x20d5
387			MX51_PAD_NANDF_CS6__SD4_DAT3		0x20d5
388			MX51_PAD_NANDF_D0__GPIO4_8		0x100
389		>;
390	};
391
392	pinctrl_fec: fecgrp {
393		fsl,pins = <
394			MX51_PAD_DISP2_DAT15__FEC_TDATA0	0x2004
395			MX51_PAD_DISP2_DAT6__FEC_TDATA1		0x2004
396			MX51_PAD_DISP2_DAT7__FEC_TDATA2		0x2004
397			MX51_PAD_DISP2_DAT8__FEC_TDATA3		0x2004
398			MX51_PAD_DISP2_DAT9__FEC_TX_EN		0x2004
399			MX51_PAD_DISP2_DAT10__FEC_COL		0x0180
400			MX51_PAD_DISP2_DAT11__FEC_RX_CLK	0x0180
401			MX51_PAD_DISP2_DAT12__FEC_RX_DV		0x20a4
402			MX51_PAD_DISP2_DAT1__FEC_RX_ER		0x20a4
403			MX51_PAD_DISP2_DAT13__FEC_TX_CLK	0x2180
404			MX51_PAD_DI_GP3__FEC_TX_ER		0x2004
405			MX51_PAD_DISP2_DAT14__FEC_RDATA0	0x2180
406			MX51_PAD_DI2_DISP_CLK__FEC_RDATA1	0x0085
407			MX51_PAD_DI_GP4__FEC_RDATA2		0x0085
408			MX51_PAD_DISP2_DAT0__FEC_RDATA3		0x0085
409			MX51_PAD_DI2_PIN2__FEC_MDC		0x2004
410			MX51_PAD_DI2_PIN3__FEC_MDIO		0x01f5
411			MX51_PAD_DI2_PIN4__FEC_CRS		0x0180
412			MX51_PAD_EIM_A20__GPIO2_14		0x0085
413			MX51_PAD_EIM_A21__GPIO2_15		0x00e5
414		>;
415	};
416
417	pinctrl_i2c2: i2c2grp {
418		fsl,pins = <
419			MX51_PAD_KEY_COL4__I2C2_SCL		0x400001ed
420			MX51_PAD_KEY_COL5__I2C2_SDA		0x400001ed
421		>;
422	};
423
424	pinctrl_pmic: pmicgrp {
425		fsl,pins = <
426			MX51_PAD_GPIO1_4__GPIO1_4		0x85
427			MX51_PAD_GPIO1_8__GPIO1_8		0xe5
428		>;
429	};
430
431	pinctrl_swmdio: swmdiogrp {
432		fsl,pins = <
433			MX51_PAD_EIM_D22__GPIO2_6		0x100
434			MX51_PAD_EIM_D23__GPIO2_7		0x100
435		>;
436	};
437
438	pinctrl_uart1: uart1grp {
439		fsl,pins = <
440			MX51_PAD_UART1_RXD__UART1_RXD		0x1c5
441			MX51_PAD_UART1_TXD__UART1_TXD		0x1c5
442		>;
443	};
444
445	pinctrl_uart3: uart3grp {
446		fsl,pins = <
447			MX51_PAD_UART3_RXD__UART3_RXD		0x1c5
448			MX51_PAD_UART3_TXD__UART3_TXD		0x1c5
449		>;
450	};
451
452	pinctrl_usb_mmc_reset: usbmmcgrp {
453		fsl,pins = <
454			MX51_PAD_CSI1_D9__GPIO3_13		0x85
455		>;
456	};
457};
458