1*724ba675SRob Herring// SPDX-License-Identifier: (GPL-2.0 OR BSD-3-Clause)
2*724ba675SRob Herring/*
3*724ba675SRob Herring * Copyright (C) 2022 Marek Vasut <marex@denx.de>
4*724ba675SRob Herring */
5*724ba675SRob Herring
6*724ba675SRob Herring/ {
7*724ba675SRob Herring	aliases {
8*724ba675SRob Herring		ethernet0 = &ethernet0;
9*724ba675SRob Herring		ethernet1 = &ksz8851;
10*724ba675SRob Herring		mmc0 = &sdmmc1;
11*724ba675SRob Herring		rtc0 = &hwrtc;
12*724ba675SRob Herring		rtc1 = &rtc;
13*724ba675SRob Herring		serial0 = &uart4;
14*724ba675SRob Herring		serial1 = &uart8;
15*724ba675SRob Herring		serial2 = &usart3;
16*724ba675SRob Herring		serial3 = &uart5;
17*724ba675SRob Herring		spi0 = &qspi;
18*724ba675SRob Herring	};
19*724ba675SRob Herring
20*724ba675SRob Herring	chosen {
21*724ba675SRob Herring		stdout-path = "serial0:115200n8";
22*724ba675SRob Herring	};
23*724ba675SRob Herring
24*724ba675SRob Herring	led {
25*724ba675SRob Herring		compatible = "gpio-leds";
26*724ba675SRob Herring		led1 {
27*724ba675SRob Herring			label = "yellow:user0";
28*724ba675SRob Herring			gpios = <&gpioz 6 GPIO_ACTIVE_LOW>;
29*724ba675SRob Herring			default-state = "off";
30*724ba675SRob Herring		};
31*724ba675SRob Herring
32*724ba675SRob Herring		led2 {
33*724ba675SRob Herring			label = "red:user1";
34*724ba675SRob Herring			gpios = <&gpioz 3 GPIO_ACTIVE_LOW>;
35*724ba675SRob Herring			default-state = "off";
36*724ba675SRob Herring		};
37*724ba675SRob Herring	};
38*724ba675SRob Herring
39*724ba675SRob Herring	ethernet_vio: vioregulator {
40*724ba675SRob Herring		compatible = "regulator-fixed";
41*724ba675SRob Herring		regulator-name = "vio";
42*724ba675SRob Herring		regulator-min-microvolt = <3300000>;
43*724ba675SRob Herring		regulator-max-microvolt = <3300000>;
44*724ba675SRob Herring		gpio = <&gpioh 2 GPIO_ACTIVE_LOW>;
45*724ba675SRob Herring		regulator-always-on;
46*724ba675SRob Herring		regulator-boot-on;
47*724ba675SRob Herring		vin-supply = <&vdd>;
48*724ba675SRob Herring	};
49*724ba675SRob Herring};
50*724ba675SRob Herring
51*724ba675SRob Herring&adc {	/* X11 ADC inputs */
52*724ba675SRob Herring	pinctrl-names = "default";
53*724ba675SRob Herring	pinctrl-0 = <&adc12_ain_pins_b>;
54*724ba675SRob Herring	vdd-supply = <&vdd>;
55*724ba675SRob Herring	vdda-supply = <&vdda>;
56*724ba675SRob Herring	vref-supply = <&vdda>;
57*724ba675SRob Herring	status = "okay";
58*724ba675SRob Herring
59*724ba675SRob Herring	adc1: adc@0 {
60*724ba675SRob Herring		status = "okay";
61*724ba675SRob Herring		channel@0 {
62*724ba675SRob Herring			reg = <0>;
63*724ba675SRob Herring			st,min-sample-time-ns = <5000>;
64*724ba675SRob Herring		};
65*724ba675SRob Herring		channel@1 {
66*724ba675SRob Herring			reg = <1>;
67*724ba675SRob Herring			st,min-sample-time-ns = <5000>;
68*724ba675SRob Herring		};
69*724ba675SRob Herring		channel@6 {
70*724ba675SRob Herring			reg = <6>;
71*724ba675SRob Herring			st,min-sample-time-ns = <5000>;
72*724ba675SRob Herring		};
73*724ba675SRob Herring	};
74*724ba675SRob Herring
75*724ba675SRob Herring	adc2: adc@100 {
76*724ba675SRob Herring		status = "okay";
77*724ba675SRob Herring		channel@0 {
78*724ba675SRob Herring			reg = <0>;
79*724ba675SRob Herring			st,min-sample-time-ns = <5000>;
80*724ba675SRob Herring		};
81*724ba675SRob Herring		channel@1 {
82*724ba675SRob Herring			reg = <1>;
83*724ba675SRob Herring			st,min-sample-time-ns = <5000>;
84*724ba675SRob Herring		};
85*724ba675SRob Herring		channel@2 {
86*724ba675SRob Herring			reg = <2>;
87*724ba675SRob Herring			st,min-sample-time-ns = <5000>;
88*724ba675SRob Herring		};
89*724ba675SRob Herring	};
90*724ba675SRob Herring};
91*724ba675SRob Herring
92*724ba675SRob Herring&ethernet0 {
93*724ba675SRob Herring	status = "okay";
94*724ba675SRob Herring	pinctrl-0 = <&ethernet0_rgmii_pins_c>;
95*724ba675SRob Herring	pinctrl-1 = <&ethernet0_rgmii_sleep_pins_c>;
96*724ba675SRob Herring	pinctrl-names = "default", "sleep";
97*724ba675SRob Herring	phy-mode = "rgmii";
98*724ba675SRob Herring	max-speed = <1000>;
99*724ba675SRob Herring	phy-handle = <&phy0>;
100*724ba675SRob Herring
101*724ba675SRob Herring	mdio {
102*724ba675SRob Herring		#address-cells = <1>;
103*724ba675SRob Herring		#size-cells = <0>;
104*724ba675SRob Herring		compatible = "snps,dwmac-mdio";
105*724ba675SRob Herring		reset-gpios = <&gpioz 2 GPIO_ACTIVE_LOW>;
106*724ba675SRob Herring		reset-delay-us = <1000>;
107*724ba675SRob Herring		reset-post-delay-us = <1000>;
108*724ba675SRob Herring
109*724ba675SRob Herring		phy0: ethernet-phy@7 {
110*724ba675SRob Herring			reg = <7>;
111*724ba675SRob Herring
112*724ba675SRob Herring			rxc-skew-ps = <1500>;
113*724ba675SRob Herring			rxdv-skew-ps = <540>;
114*724ba675SRob Herring			rxd0-skew-ps = <420>;
115*724ba675SRob Herring			rxd1-skew-ps = <420>;
116*724ba675SRob Herring			rxd2-skew-ps = <420>;
117*724ba675SRob Herring			rxd3-skew-ps = <420>;
118*724ba675SRob Herring
119*724ba675SRob Herring			txc-skew-ps = <1440>;
120*724ba675SRob Herring			txen-skew-ps = <540>;
121*724ba675SRob Herring			txd0-skew-ps = <420>;
122*724ba675SRob Herring			txd1-skew-ps = <420>;
123*724ba675SRob Herring			txd2-skew-ps = <420>;
124*724ba675SRob Herring			txd3-skew-ps = <420>;
125*724ba675SRob Herring		};
126*724ba675SRob Herring	};
127*724ba675SRob Herring};
128*724ba675SRob Herring
129*724ba675SRob Herring&fmc {
130*724ba675SRob Herring	pinctrl-names = "default", "sleep";
131*724ba675SRob Herring	pinctrl-0 = <&fmc_pins_b>;
132*724ba675SRob Herring	pinctrl-1 = <&fmc_sleep_pins_b>;
133*724ba675SRob Herring	status = "okay";
134*724ba675SRob Herring
135*724ba675SRob Herring	ksz8851: ethernet@1,0 {
136*724ba675SRob Herring		compatible = "micrel,ks8851-mll";
137*724ba675SRob Herring		reg = <1 0x0 0x2>, <1 0x2 0x20000>;
138*724ba675SRob Herring		interrupt-parent = <&gpioc>;
139*724ba675SRob Herring		interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
140*724ba675SRob Herring		bank-width = <2>;
141*724ba675SRob Herring
142*724ba675SRob Herring		/* Timing values are in nS */
143*724ba675SRob Herring		st,fmc2-ebi-cs-mux-enable;
144*724ba675SRob Herring		st,fmc2-ebi-cs-transaction-type = <4>;
145*724ba675SRob Herring		st,fmc2-ebi-cs-buswidth = <16>;
146*724ba675SRob Herring		st,fmc2-ebi-cs-address-setup-ns = <5>;
147*724ba675SRob Herring		st,fmc2-ebi-cs-address-hold-ns = <5>;
148*724ba675SRob Herring		st,fmc2-ebi-cs-bus-turnaround-ns = <5>;
149*724ba675SRob Herring		st,fmc2-ebi-cs-data-setup-ns = <45>;
150*724ba675SRob Herring		st,fmc2-ebi-cs-data-hold-ns = <1>;
151*724ba675SRob Herring		st,fmc2-ebi-cs-write-address-setup-ns = <5>;
152*724ba675SRob Herring		st,fmc2-ebi-cs-write-address-hold-ns = <5>;
153*724ba675SRob Herring		st,fmc2-ebi-cs-write-bus-turnaround-ns = <5>;
154*724ba675SRob Herring		st,fmc2-ebi-cs-write-data-setup-ns = <45>;
155*724ba675SRob Herring		st,fmc2-ebi-cs-write-data-hold-ns = <1>;
156*724ba675SRob Herring	};
157*724ba675SRob Herring};
158*724ba675SRob Herring
159*724ba675SRob Herring&gpioa {
160*724ba675SRob Herring	gpio-line-names = "", "", "", "",
161*724ba675SRob Herring			  "DRCC-VAR2", "", "", "",
162*724ba675SRob Herring			  "", "", "", "",
163*724ba675SRob Herring			  "", "", "", "";
164*724ba675SRob Herring};
165*724ba675SRob Herring
166*724ba675SRob Herring&gpioe {
167*724ba675SRob Herring	gpio-line-names = "", "", "", "",
168*724ba675SRob Herring			  "", "DRCC-GPIO0", "", "",
169*724ba675SRob Herring			  "", "", "", "",
170*724ba675SRob Herring			  "", "", "", "";
171*724ba675SRob Herring};
172*724ba675SRob Herring
173*724ba675SRob Herring&gpiog {
174*724ba675SRob Herring	gpio-line-names = "", "", "", "",
175*724ba675SRob Herring			  "", "", "", "",
176*724ba675SRob Herring			  "", "", "", "",
177*724ba675SRob Herring			  "DRCC-GPIO5", "", "", "";
178*724ba675SRob Herring};
179*724ba675SRob Herring
180*724ba675SRob Herring&gpioh {
181*724ba675SRob Herring	gpio-line-names = "", "", "", "DRCC-HW2",
182*724ba675SRob Herring			  "DRCC-GPIO4", "", "", "",
183*724ba675SRob Herring			  "DRCC-HW1", "DRCC-HW0", "", "DRCC-VAR1",
184*724ba675SRob Herring			  "DRCC-VAR0", "", "", "DRCC-GPIO6";
185*724ba675SRob Herring};
186*724ba675SRob Herring
187*724ba675SRob Herring&gpioi {
188*724ba675SRob Herring	gpio-line-names = "", "", "", "",
189*724ba675SRob Herring			  "", "", "", "DRCC-GPIO2",
190*724ba675SRob Herring			  "", "DRCC-GPIO1", "", "",
191*724ba675SRob Herring			  "", "", "", "";
192*724ba675SRob Herring};
193*724ba675SRob Herring
194*724ba675SRob Herring&i2c1 {	/* X11 I2C1 */
195*724ba675SRob Herring	pinctrl-names = "default";
196*724ba675SRob Herring	pinctrl-0 = <&i2c1_pins_b>;
197*724ba675SRob Herring	i2c-scl-rising-time-ns = <185>;
198*724ba675SRob Herring	i2c-scl-falling-time-ns = <20>;
199*724ba675SRob Herring	status = "okay";
200*724ba675SRob Herring	/delete-property/dmas;
201*724ba675SRob Herring	/delete-property/dma-names;
202*724ba675SRob Herring};
203*724ba675SRob Herring
204*724ba675SRob Herring&i2c4 {
205*724ba675SRob Herring	hwrtc: rtc@32 {
206*724ba675SRob Herring		compatible = "microcrystal,rv8803";
207*724ba675SRob Herring		reg = <0x32>;
208*724ba675SRob Herring	};
209*724ba675SRob Herring
210*724ba675SRob Herring	eeprom@50 {
211*724ba675SRob Herring		compatible = "atmel,24c04";
212*724ba675SRob Herring		reg = <0x50>;
213*724ba675SRob Herring		pagesize = <16>;
214*724ba675SRob Herring	};
215*724ba675SRob Herring
216*724ba675SRob Herring	dh_mac_eeprom: eeprom@53 {
217*724ba675SRob Herring		compatible = "atmel,24c02";
218*724ba675SRob Herring		reg = <0x53>;
219*724ba675SRob Herring		pagesize = <16>;
220*724ba675SRob Herring	};
221*724ba675SRob Herring};
222*724ba675SRob Herring
223*724ba675SRob Herring&sdmmc1 {	/* MicroSD */
224*724ba675SRob Herring	pinctrl-names = "default", "opendrain", "sleep";
225*724ba675SRob Herring	pinctrl-0 = <&sdmmc1_b4_pins_a>;
226*724ba675SRob Herring	pinctrl-1 = <&sdmmc1_b4_od_pins_a>;
227*724ba675SRob Herring	pinctrl-2 = <&sdmmc1_b4_sleep_pins_a>;
228*724ba675SRob Herring	cd-gpios = <&gpioi 8 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
229*724ba675SRob Herring	disable-wp;
230*724ba675SRob Herring	st,neg-edge;
231*724ba675SRob Herring	bus-width = <4>;
232*724ba675SRob Herring	vmmc-supply = <&vdd>;
233*724ba675SRob Herring	vqmmc-supply = <&vdd>;
234*724ba675SRob Herring	status = "okay";
235*724ba675SRob Herring};
236*724ba675SRob Herring
237*724ba675SRob Herring&sdmmc2 {	/* eMMC */
238*724ba675SRob Herring	pinctrl-names = "default", "opendrain", "sleep";
239*724ba675SRob Herring	pinctrl-0 = <&sdmmc2_b4_pins_a &sdmmc2_d47_pins_c>;
240*724ba675SRob Herring	pinctrl-1 = <&sdmmc2_b4_od_pins_a &sdmmc2_d47_pins_c>;
241*724ba675SRob Herring	pinctrl-2 = <&sdmmc2_b4_sleep_pins_a &sdmmc2_d47_sleep_pins_c>;
242*724ba675SRob Herring	bus-width = <8>;
243*724ba675SRob Herring	no-sd;
244*724ba675SRob Herring	no-sdio;
245*724ba675SRob Herring	non-removable;
246*724ba675SRob Herring	st,neg-edge;
247*724ba675SRob Herring	vmmc-supply = <&v3v3>;
248*724ba675SRob Herring	vqmmc-supply = <&vdd>;
249*724ba675SRob Herring	status = "okay";
250*724ba675SRob Herring};
251*724ba675SRob Herring
252*724ba675SRob Herring&sdmmc3 {	/* SDIO Wi-Fi */
253*724ba675SRob Herring	pinctrl-names = "default", "opendrain", "sleep";
254*724ba675SRob Herring	pinctrl-0 = <&sdmmc3_b4_pins_a>;
255*724ba675SRob Herring	pinctrl-1 = <&sdmmc3_b4_od_pins_a>;
256*724ba675SRob Herring	pinctrl-2 = <&sdmmc3_b4_sleep_pins_a>;
257*724ba675SRob Herring	broken-cd;
258*724ba675SRob Herring	bus-width = <4>;
259*724ba675SRob Herring	mmc-ddr-3_3v;
260*724ba675SRob Herring	st,neg-edge;
261*724ba675SRob Herring	vmmc-supply = <&v3v3>;
262*724ba675SRob Herring	vqmmc-supply = <&v3v3>;
263*724ba675SRob Herring	status = "okay";
264*724ba675SRob Herring};
265*724ba675SRob Herring
266*724ba675SRob Herring&spi2 {	/* X11 SPI */
267*724ba675SRob Herring	pinctrl-names = "default";
268*724ba675SRob Herring	pinctrl-0 = <&spi2_pins_b>;
269*724ba675SRob Herring	cs-gpios = <&gpioi 0 0>;
270*724ba675SRob Herring	status = "disabled";
271*724ba675SRob Herring	/delete-property/dmas;
272*724ba675SRob Herring	/delete-property/dma-names;
273*724ba675SRob Herring};
274*724ba675SRob Herring
275*724ba675SRob Herring&uart4 {
276*724ba675SRob Herring	label = "UART0";
277*724ba675SRob Herring	pinctrl-names = "default";
278*724ba675SRob Herring	pinctrl-0 = <&uart4_pins_d>;
279*724ba675SRob Herring	/delete-property/dmas;
280*724ba675SRob Herring	/delete-property/dma-names;
281*724ba675SRob Herring	status = "okay";
282*724ba675SRob Herring};
283*724ba675SRob Herring
284*724ba675SRob Herring&uart5 {	/* X11 UART */
285*724ba675SRob Herring	label = "X11-UART5";
286*724ba675SRob Herring	pinctrl-names = "default";
287*724ba675SRob Herring	pinctrl-0 = <&uart5_pins_a>;
288*724ba675SRob Herring	/delete-property/dmas;
289*724ba675SRob Herring	/delete-property/dma-names;
290*724ba675SRob Herring	status = "okay";
291*724ba675SRob Herring};
292*724ba675SRob Herring
293*724ba675SRob Herring&uart8 {
294*724ba675SRob Herring	label = "RS485-1";
295*724ba675SRob Herring	pinctrl-names = "default";
296*724ba675SRob Herring	pinctrl-0 = <&uart8_pins_a &uart8_rtscts_pins_a>;
297*724ba675SRob Herring	uart-has-rtscts;
298*724ba675SRob Herring	/delete-property/dmas;
299*724ba675SRob Herring	/delete-property/dma-names;
300*724ba675SRob Herring	status = "okay";
301*724ba675SRob Herring};
302*724ba675SRob Herring
303*724ba675SRob Herring&usart3 {	/* RS485 or RS232 */
304*724ba675SRob Herring	label = "RS485-2";
305*724ba675SRob Herring	pinctrl-names = "default", "sleep";
306*724ba675SRob Herring	pinctrl-0 = <&usart3_pins_e>;
307*724ba675SRob Herring	pinctrl-1 = <&usart3_sleep_pins_e>;
308*724ba675SRob Herring	uart-has-rtscts;
309*724ba675SRob Herring	/delete-property/dmas;
310*724ba675SRob Herring	/delete-property/dma-names;
311*724ba675SRob Herring	status = "okay";
312*724ba675SRob Herring};
313*724ba675SRob Herring
314*724ba675SRob Herring&usbh_ehci {
315*724ba675SRob Herring	phys = <&usbphyc_port0>;
316*724ba675SRob Herring	status = "okay";
317*724ba675SRob Herring};
318*724ba675SRob Herring
319*724ba675SRob Herring&usbh_ohci {
320*724ba675SRob Herring	phys = <&usbphyc_port0>;
321*724ba675SRob Herring	status = "okay";
322*724ba675SRob Herring};
323*724ba675SRob Herring
324*724ba675SRob Herring&usbotg_hs {
325*724ba675SRob Herring	dr_mode = "otg";
326*724ba675SRob Herring	pinctrl-0 = <&usbotg_hs_pins_a>;
327*724ba675SRob Herring	pinctrl-names = "default";
328*724ba675SRob Herring	phy-names = "usb2-phy";
329*724ba675SRob Herring	phys = <&usbphyc_port1 0>;
330*724ba675SRob Herring	vbus-supply = <&vbus_otg>;
331*724ba675SRob Herring	status = "okay";
332*724ba675SRob Herring};
333*724ba675SRob Herring
334*724ba675SRob Herring&usbphyc {
335*724ba675SRob Herring	status = "okay";
336*724ba675SRob Herring};
337*724ba675SRob Herring
338*724ba675SRob Herring&usbphyc_port0 {
339*724ba675SRob Herring	phy-supply = <&vdd_usb>;
340*724ba675SRob Herring	connector {
341*724ba675SRob Herring		compatible = "usb-a-connector";
342*724ba675SRob Herring		vbus-supply = <&vbus_sw>;
343*724ba675SRob Herring	};
344*724ba675SRob Herring};
345*724ba675SRob Herring
346*724ba675SRob Herring&usbphyc_port1 {
347*724ba675SRob Herring	phy-supply = <&vdd_usb>;
348*724ba675SRob Herring};
349