xref: /freebsd-src/sys/contrib/device-tree/src/arm64/freescale/imx8mp-debix-som-a-bmb-08.dts (revision 7d0873ebb83b19ba1e8a89e679470d885efe12e3)
1aa1a8ff2SEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2aa1a8ff2SEmmanuel Vadot/*
3aa1a8ff2SEmmanuel Vadot * Copyright 2019 NXP
4aa1a8ff2SEmmanuel Vadot * Copyright (C) 2023 Pengutronix, Marco Felsch <kernel@pengutronix.de>
5aa1a8ff2SEmmanuel Vadot */
6aa1a8ff2SEmmanuel Vadot
7aa1a8ff2SEmmanuel Vadot/dts-v1/;
8aa1a8ff2SEmmanuel Vadot
9aa1a8ff2SEmmanuel Vadot#include "imx8mp-debix-som-a.dtsi"
10aa1a8ff2SEmmanuel Vadot
11aa1a8ff2SEmmanuel Vadot/ {
12aa1a8ff2SEmmanuel Vadot	model = "Polyhex i.MX8MPlus Debix SOM A on BMB-08";
13aa1a8ff2SEmmanuel Vadot	compatible = "polyhex,imx8mp-debix-som-a-bmb-08", "polyhex,imx8mp-debix-som-a",
14aa1a8ff2SEmmanuel Vadot		     "fsl,imx8mp";
15aa1a8ff2SEmmanuel Vadot
16aa1a8ff2SEmmanuel Vadot	aliases {
17aa1a8ff2SEmmanuel Vadot		ethernet0 = &eqos;
18aa1a8ff2SEmmanuel Vadot		ethernet1 = &fec;
19aa1a8ff2SEmmanuel Vadot	};
20aa1a8ff2SEmmanuel Vadot
21aa1a8ff2SEmmanuel Vadot	chosen {
22aa1a8ff2SEmmanuel Vadot		stdout-path = &uart2;
23aa1a8ff2SEmmanuel Vadot	};
24aa1a8ff2SEmmanuel Vadot
25aa1a8ff2SEmmanuel Vadot	reg_baseboard_vdd3v3: regulator-baseboard-vdd3v3 {
26aa1a8ff2SEmmanuel Vadot		compatible = "regulator-fixed";
27aa1a8ff2SEmmanuel Vadot		regulator-min-microvolt = <3300000>;
28aa1a8ff2SEmmanuel Vadot		regulator-max-microvolt = <3300000>;
29aa1a8ff2SEmmanuel Vadot		regulator-name = "BB_VDD3V3";
30aa1a8ff2SEmmanuel Vadot		/* Required timings for ethernet phy's */
31aa1a8ff2SEmmanuel Vadot		startup-delay-us = <50000>;
32aa1a8ff2SEmmanuel Vadot		off-on-delay-us = <110000>;
33aa1a8ff2SEmmanuel Vadot		gpio = <&expander0 10 GPIO_ACTIVE_HIGH>;
34aa1a8ff2SEmmanuel Vadot		enable-active-high;
35aa1a8ff2SEmmanuel Vadot	};
36aa1a8ff2SEmmanuel Vadot
37aa1a8ff2SEmmanuel Vadot	reg_baseboard_vdd5v0: regulator-baseboard-vdd5v0 {
38aa1a8ff2SEmmanuel Vadot		compatible = "regulator-fixed";
39aa1a8ff2SEmmanuel Vadot		regulator-min-microvolt = <5000000>;
40aa1a8ff2SEmmanuel Vadot		regulator-max-microvolt = <5000000>;
41aa1a8ff2SEmmanuel Vadot		regulator-name = "BB_VDD5V";
42aa1a8ff2SEmmanuel Vadot		gpio = <&expander0 9 GPIO_ACTIVE_HIGH>;
43aa1a8ff2SEmmanuel Vadot		enable-active-high;
44aa1a8ff2SEmmanuel Vadot	};
45aa1a8ff2SEmmanuel Vadot
46aa1a8ff2SEmmanuel Vadot	regulator-som-vdd1v8 {
47aa1a8ff2SEmmanuel Vadot		compatible = "regulator-fixed";
48aa1a8ff2SEmmanuel Vadot		regulator-min-microvolt = <1800000>;
49aa1a8ff2SEmmanuel Vadot		regulator-max-microvolt = <1800000>;
50aa1a8ff2SEmmanuel Vadot		regulator-name = "SOM_VDD1V8_SW";
51aa1a8ff2SEmmanuel Vadot		gpio = <&expander0 12 GPIO_ACTIVE_HIGH>;
52aa1a8ff2SEmmanuel Vadot		enable-active-high;
53aa1a8ff2SEmmanuel Vadot		regulator-always-on;
54aa1a8ff2SEmmanuel Vadot	};
55aa1a8ff2SEmmanuel Vadot
56aa1a8ff2SEmmanuel Vadot	regulator-som-vdd3v3 {
57aa1a8ff2SEmmanuel Vadot		compatible = "regulator-fixed";
58aa1a8ff2SEmmanuel Vadot		regulator-min-microvolt = <3300000>;
59aa1a8ff2SEmmanuel Vadot		regulator-max-microvolt = <3300000>;
60aa1a8ff2SEmmanuel Vadot		regulator-name = "SOM_VDD3V3_SW";
61aa1a8ff2SEmmanuel Vadot		gpio = <&expander0 11 GPIO_ACTIVE_HIGH>;
62aa1a8ff2SEmmanuel Vadot		enable-active-high;
63aa1a8ff2SEmmanuel Vadot		regulator-always-on;
64aa1a8ff2SEmmanuel Vadot	};
65aa1a8ff2SEmmanuel Vadot
66*8d13bc63SEmmanuel Vadot	reg_csi1_1v8: regulator-csi1-vdd1v8 {
67*8d13bc63SEmmanuel Vadot		compatible = "regulator-fixed";
68*8d13bc63SEmmanuel Vadot		regulator-min-microvolt = <1800000>;
69*8d13bc63SEmmanuel Vadot		regulator-max-microvolt = <1800000>;
70*8d13bc63SEmmanuel Vadot		regulator-name = "CSI1_VDD1V8";
71*8d13bc63SEmmanuel Vadot		gpio = <&expander0 13 GPIO_ACTIVE_HIGH>;
72*8d13bc63SEmmanuel Vadot		enable-active-high;
73*8d13bc63SEmmanuel Vadot		vin-supply = <&reg_baseboard_vdd3v3>;
74*8d13bc63SEmmanuel Vadot	};
75*8d13bc63SEmmanuel Vadot
76*8d13bc63SEmmanuel Vadot	reg_csi1_3v3: regulator-csi1-vdd3v3 {
77*8d13bc63SEmmanuel Vadot		compatible = "regulator-fixed";
78*8d13bc63SEmmanuel Vadot		regulator-min-microvolt = <3300000>;
79*8d13bc63SEmmanuel Vadot		regulator-max-microvolt = <3300000>;
80*8d13bc63SEmmanuel Vadot		regulator-name = "CSI1_VDD3V3";
81*8d13bc63SEmmanuel Vadot		gpio = <&expander0 14 GPIO_ACTIVE_HIGH>;
82*8d13bc63SEmmanuel Vadot		enable-active-high;
83*8d13bc63SEmmanuel Vadot		vin-supply = <&reg_vdd5v0>;
84*8d13bc63SEmmanuel Vadot	};
85*8d13bc63SEmmanuel Vadot
86*8d13bc63SEmmanuel Vadot	reg_csi2_1v8: regulator-csi2-vdd1v8 {
87*8d13bc63SEmmanuel Vadot		compatible = "regulator-fixed";
88*8d13bc63SEmmanuel Vadot		pinctrl-names = "default";
89*8d13bc63SEmmanuel Vadot		pinctrl-0 = <&pinctrl_reg_csi2_1v8>;
90*8d13bc63SEmmanuel Vadot		regulator-min-microvolt = <1800000>;
91*8d13bc63SEmmanuel Vadot		regulator-max-microvolt = <1800000>;
92*8d13bc63SEmmanuel Vadot		regulator-name = "CSI2_VDD1V8";
93*8d13bc63SEmmanuel Vadot		gpio = <&gpio3 21 GPIO_ACTIVE_HIGH>;
94*8d13bc63SEmmanuel Vadot		enable-active-high;
95*8d13bc63SEmmanuel Vadot		vin-supply = <&reg_baseboard_vdd3v3>;
96*8d13bc63SEmmanuel Vadot	};
97*8d13bc63SEmmanuel Vadot
98*8d13bc63SEmmanuel Vadot	reg_csi2_3v3: regulator-csi2-vdd3v3 {
99*8d13bc63SEmmanuel Vadot		compatible = "regulator-fixed";
100*8d13bc63SEmmanuel Vadot		pinctrl-names = "default";
101*8d13bc63SEmmanuel Vadot		pinctrl-0 = <&pinctrl_reg_csi2_3v3>;
102*8d13bc63SEmmanuel Vadot		regulator-min-microvolt = <3300000>;
103*8d13bc63SEmmanuel Vadot		regulator-max-microvolt = <3300000>;
104*8d13bc63SEmmanuel Vadot		regulator-name = "CSI2_VDD3V3";
105*8d13bc63SEmmanuel Vadot		gpio = <&gpio4 25 GPIO_ACTIVE_HIGH>;
106*8d13bc63SEmmanuel Vadot		enable-active-high;
107*8d13bc63SEmmanuel Vadot		vin-supply = <&reg_vdd5v0>;
108*8d13bc63SEmmanuel Vadot	};
109*8d13bc63SEmmanuel Vadot
110aa1a8ff2SEmmanuel Vadot	regulator-vbus-usb20 {
111aa1a8ff2SEmmanuel Vadot		compatible = "regulator-fixed";
112aa1a8ff2SEmmanuel Vadot		regulator-min-microvolt = <5000000>;
113aa1a8ff2SEmmanuel Vadot		regulator-max-microvolt = <5000000>;
114aa1a8ff2SEmmanuel Vadot		regulator-name = "USB20_5V";
115aa1a8ff2SEmmanuel Vadot		gpio = <&expander1 14 GPIO_ACTIVE_HIGH>;
116aa1a8ff2SEmmanuel Vadot		enable-active-high;
117aa1a8ff2SEmmanuel Vadot		regulator-always-on;
118aa1a8ff2SEmmanuel Vadot		vin-supply = <&reg_baseboard_vdd5v0>;
119aa1a8ff2SEmmanuel Vadot	};
120aa1a8ff2SEmmanuel Vadot
121aa1a8ff2SEmmanuel Vadot	regulator-vbus-usb30 {
122aa1a8ff2SEmmanuel Vadot		compatible = "regulator-fixed";
123aa1a8ff2SEmmanuel Vadot		regulator-min-microvolt = <5000000>;
124aa1a8ff2SEmmanuel Vadot		regulator-max-microvolt = <5000000>;
125aa1a8ff2SEmmanuel Vadot		regulator-name = "USB30_5V";
126aa1a8ff2SEmmanuel Vadot		gpio = <&expander1 12 GPIO_ACTIVE_HIGH>;
127aa1a8ff2SEmmanuel Vadot		enable-active-high;
128aa1a8ff2SEmmanuel Vadot		regulator-always-on;
129aa1a8ff2SEmmanuel Vadot		vin-supply = <&reg_baseboard_vdd5v0>;
130aa1a8ff2SEmmanuel Vadot	};
131aa1a8ff2SEmmanuel Vadot
132aa1a8ff2SEmmanuel Vadot	reg_vdd5v0: regulator-vdd5v0 {
133aa1a8ff2SEmmanuel Vadot		compatible = "regulator-fixed";
134aa1a8ff2SEmmanuel Vadot		regulator-min-microvolt = <5000000>;
135aa1a8ff2SEmmanuel Vadot		regulator-max-microvolt = <5000000>;
136aa1a8ff2SEmmanuel Vadot		regulator-name = "VDD_5V";
137aa1a8ff2SEmmanuel Vadot		gpio = <&expander0 8 GPIO_ACTIVE_HIGH>;
138aa1a8ff2SEmmanuel Vadot		enable-active-high;
139aa1a8ff2SEmmanuel Vadot	};
140aa1a8ff2SEmmanuel Vadot};
141aa1a8ff2SEmmanuel Vadot
142aa1a8ff2SEmmanuel Vadot&eqos {
143aa1a8ff2SEmmanuel Vadot	pinctrl-names = "default";
144aa1a8ff2SEmmanuel Vadot	pinctrl-0 = <&pinctrl_eqos>;
145aa1a8ff2SEmmanuel Vadot	nvmem-cells = <&ethmac1>;
146aa1a8ff2SEmmanuel Vadot	nvmem-cell-names = "mac-address";
147aa1a8ff2SEmmanuel Vadot	phy-handle = <&ethphy0>;
148aa1a8ff2SEmmanuel Vadot	phy-mode = "rgmii-id";
149aa1a8ff2SEmmanuel Vadot	status = "okay";
150aa1a8ff2SEmmanuel Vadot
151aa1a8ff2SEmmanuel Vadot	mdio {
152aa1a8ff2SEmmanuel Vadot		compatible = "snps,dwmac-mdio";
153aa1a8ff2SEmmanuel Vadot		#address-cells = <1>;
154aa1a8ff2SEmmanuel Vadot		#size-cells = <0>;
155aa1a8ff2SEmmanuel Vadot
156aa1a8ff2SEmmanuel Vadot		ethphy0: ethernet-phy@1 {
157aa1a8ff2SEmmanuel Vadot			compatible = "ethernet-phy-ieee802.3-c22";
158aa1a8ff2SEmmanuel Vadot			reg = <1>;
159aa1a8ff2SEmmanuel Vadot			reset-gpios = <&gpio4 18 GPIO_ACTIVE_LOW>;
160aa1a8ff2SEmmanuel Vadot			reset-assert-us = <20000>;
161aa1a8ff2SEmmanuel Vadot			reset-deassert-us = <150000>;
162aa1a8ff2SEmmanuel Vadot			eee-broken-1000t;
163aa1a8ff2SEmmanuel Vadot			realtek,clkout-disable;
164aa1a8ff2SEmmanuel Vadot		};
165aa1a8ff2SEmmanuel Vadot	};
166aa1a8ff2SEmmanuel Vadot};
167aa1a8ff2SEmmanuel Vadot
168aa1a8ff2SEmmanuel Vadot&fec {
169aa1a8ff2SEmmanuel Vadot	pinctrl-names = "default";
170aa1a8ff2SEmmanuel Vadot	pinctrl-0 = <&pinctrl_fec>;
171aa1a8ff2SEmmanuel Vadot	nvmem-cells = <&ethmac2>;
172aa1a8ff2SEmmanuel Vadot	nvmem-cell-names = "mac-address";
173aa1a8ff2SEmmanuel Vadot	phy-supply = <&reg_baseboard_vdd3v3>;
174aa1a8ff2SEmmanuel Vadot	phy-handle = <&ethphy1>;
175aa1a8ff2SEmmanuel Vadot	phy-mode = "rgmii-id";
176aa1a8ff2SEmmanuel Vadot	fsl,magic-packet;
177aa1a8ff2SEmmanuel Vadot	status = "okay";
178aa1a8ff2SEmmanuel Vadot
179aa1a8ff2SEmmanuel Vadot	mdio {
180aa1a8ff2SEmmanuel Vadot		#address-cells = <1>;
181aa1a8ff2SEmmanuel Vadot		#size-cells = <0>;
182aa1a8ff2SEmmanuel Vadot
183aa1a8ff2SEmmanuel Vadot		ethphy1: ethernet-phy@1 {
184aa1a8ff2SEmmanuel Vadot			compatible = "ethernet-phy-ieee802.3-c22";
185aa1a8ff2SEmmanuel Vadot			reg = <1>;
186aa1a8ff2SEmmanuel Vadot			reset-gpios = <&gpio4 19 GPIO_ACTIVE_LOW>;
187aa1a8ff2SEmmanuel Vadot			reset-assert-us = <20000>;
188aa1a8ff2SEmmanuel Vadot			reset-deassert-us = <150000>;
189aa1a8ff2SEmmanuel Vadot			eee-broken-1000t;
190aa1a8ff2SEmmanuel Vadot			realtek,clkout-disable;
191aa1a8ff2SEmmanuel Vadot		};
192aa1a8ff2SEmmanuel Vadot	};
193aa1a8ff2SEmmanuel Vadot};
194aa1a8ff2SEmmanuel Vadot
195aa1a8ff2SEmmanuel Vadot&flexcan1 {
196aa1a8ff2SEmmanuel Vadot	pinctrl-names = "default";
197aa1a8ff2SEmmanuel Vadot	pinctrl-0 = <&pinctrl_flexcan1>;
198aa1a8ff2SEmmanuel Vadot	xceiver-supply = <&reg_vdd5v0>;
199aa1a8ff2SEmmanuel Vadot	status = "okay";
200aa1a8ff2SEmmanuel Vadot};
201aa1a8ff2SEmmanuel Vadot
202aa1a8ff2SEmmanuel Vadot&flexcan2 {
203aa1a8ff2SEmmanuel Vadot	pinctrl-names = "default";
204aa1a8ff2SEmmanuel Vadot	pinctrl-0 = <&pinctrl_flexcan2>;
205aa1a8ff2SEmmanuel Vadot	xceiver-supply = <&reg_vdd5v0>;
206aa1a8ff2SEmmanuel Vadot	status = "okay";
207aa1a8ff2SEmmanuel Vadot};
208aa1a8ff2SEmmanuel Vadot
209aa1a8ff2SEmmanuel Vadot&flexspi {
210aa1a8ff2SEmmanuel Vadot	pinctrl-names = "default";
211aa1a8ff2SEmmanuel Vadot	pinctrl-0 = <&pinctrl_flexspi0>;
212aa1a8ff2SEmmanuel Vadot	status = "okay";
213aa1a8ff2SEmmanuel Vadot
214aa1a8ff2SEmmanuel Vadot	flash: flash@0 {
215aa1a8ff2SEmmanuel Vadot		compatible = "jedec,spi-nor";
216aa1a8ff2SEmmanuel Vadot		reg = <0>;
217aa1a8ff2SEmmanuel Vadot		spi-max-frequency = <80000000>;
218aa1a8ff2SEmmanuel Vadot		spi-tx-bus-width = <1>;
219aa1a8ff2SEmmanuel Vadot		spi-rx-bus-width = <4>;
220aa1a8ff2SEmmanuel Vadot		#address-cells = <1>;
221aa1a8ff2SEmmanuel Vadot		#size-cells = <1>;
222aa1a8ff2SEmmanuel Vadot	};
223aa1a8ff2SEmmanuel Vadot};
224aa1a8ff2SEmmanuel Vadot
225aa1a8ff2SEmmanuel Vadot&i2c4 {
226aa1a8ff2SEmmanuel Vadot	expander0: gpio@20 {
227aa1a8ff2SEmmanuel Vadot		compatible = "nxp,pca9535";
228aa1a8ff2SEmmanuel Vadot		reg = <0x20>;
229aa1a8ff2SEmmanuel Vadot		gpio-controller;
230aa1a8ff2SEmmanuel Vadot		#gpio-cells = <0x02>;
231aa1a8ff2SEmmanuel Vadot	};
232aa1a8ff2SEmmanuel Vadot
233aa1a8ff2SEmmanuel Vadot	expander1: gpio@23 {
234aa1a8ff2SEmmanuel Vadot		compatible = "nxp,pca9535";
235aa1a8ff2SEmmanuel Vadot		reg = <0x23>;
236aa1a8ff2SEmmanuel Vadot		gpio-controller;
237aa1a8ff2SEmmanuel Vadot		#gpio-cells = <0x02>;
238aa1a8ff2SEmmanuel Vadot
239aa1a8ff2SEmmanuel Vadot		/*
240aa1a8ff2SEmmanuel Vadot		 * Since USB1 is bound to peripheral mode we need to ensure
241aa1a8ff2SEmmanuel Vadot		 * that VBUS is turned off.
242aa1a8ff2SEmmanuel Vadot		 */
243aa1a8ff2SEmmanuel Vadot		usb30-otg-hog {
244aa1a8ff2SEmmanuel Vadot			gpio-hog;
245aa1a8ff2SEmmanuel Vadot			gpios = <13 GPIO_ACTIVE_HIGH>;
246aa1a8ff2SEmmanuel Vadot			output-low;
247aa1a8ff2SEmmanuel Vadot			line-name = "USB30_OTG_EN";
248aa1a8ff2SEmmanuel Vadot		};
249aa1a8ff2SEmmanuel Vadot	};
250aa1a8ff2SEmmanuel Vadot
251aa1a8ff2SEmmanuel Vadot	rtc@51 {
252aa1a8ff2SEmmanuel Vadot		compatible = "haoyu,hym8563";
253aa1a8ff2SEmmanuel Vadot		reg = <0x51>;
254aa1a8ff2SEmmanuel Vadot		pinctrl-names = "default";
255aa1a8ff2SEmmanuel Vadot		pinctrl-0 = <&pinctrl_rtc>;
256aa1a8ff2SEmmanuel Vadot		interrupt-parent = <&gpio4>;
257aa1a8ff2SEmmanuel Vadot		interrupts = <3 IRQ_TYPE_EDGE_FALLING>;
258aa1a8ff2SEmmanuel Vadot		#clock-cells = <0>;
259aa1a8ff2SEmmanuel Vadot	};
260aa1a8ff2SEmmanuel Vadot
261aa1a8ff2SEmmanuel Vadot	eeprom@52 {
262aa1a8ff2SEmmanuel Vadot		compatible = "atmel,24c02";
263aa1a8ff2SEmmanuel Vadot		reg = <0x52>;
264aa1a8ff2SEmmanuel Vadot		pagesize = <16>;
265aa1a8ff2SEmmanuel Vadot		#address-cells = <1>;
26684943d6fSEmmanuel Vadot		#size-cells = <1>;
267aa1a8ff2SEmmanuel Vadot
268aa1a8ff2SEmmanuel Vadot		/* MACs stored in ASCII */
269aa1a8ff2SEmmanuel Vadot		ethmac1: mac-address@0 {
270aa1a8ff2SEmmanuel Vadot			reg = <0x0 0xc>;
271aa1a8ff2SEmmanuel Vadot		};
272aa1a8ff2SEmmanuel Vadot
273aa1a8ff2SEmmanuel Vadot		ethmac2: mac-address@c {
274aa1a8ff2SEmmanuel Vadot			reg = <0xc 0xc>;
275aa1a8ff2SEmmanuel Vadot		};
276aa1a8ff2SEmmanuel Vadot	};
277aa1a8ff2SEmmanuel Vadot};
278aa1a8ff2SEmmanuel Vadot
279aa1a8ff2SEmmanuel Vadot&snvs_pwrkey {
280aa1a8ff2SEmmanuel Vadot	status = "okay";
281aa1a8ff2SEmmanuel Vadot};
282aa1a8ff2SEmmanuel Vadot
283aa1a8ff2SEmmanuel Vadot/* Debug */
284aa1a8ff2SEmmanuel Vadot&uart2 {
285aa1a8ff2SEmmanuel Vadot	pinctrl-names = "default";
286aa1a8ff2SEmmanuel Vadot	pinctrl-0 = <&pinctrl_uart2>;
287aa1a8ff2SEmmanuel Vadot	status = "okay";
288aa1a8ff2SEmmanuel Vadot};
289aa1a8ff2SEmmanuel Vadot
290aa1a8ff2SEmmanuel Vadot&uart3 {
291aa1a8ff2SEmmanuel Vadot	pinctrl-names = "default";
292aa1a8ff2SEmmanuel Vadot	pinctrl-0 = <&pinctrl_uart3>;
293aa1a8ff2SEmmanuel Vadot	status = "okay";
294aa1a8ff2SEmmanuel Vadot};
295aa1a8ff2SEmmanuel Vadot
296aa1a8ff2SEmmanuel Vadot&uart4 {
297aa1a8ff2SEmmanuel Vadot	pinctrl-names = "default";
298aa1a8ff2SEmmanuel Vadot	pinctrl-0 = <&pinctrl_uart4>;
299aa1a8ff2SEmmanuel Vadot	status = "okay";
300aa1a8ff2SEmmanuel Vadot};
301aa1a8ff2SEmmanuel Vadot
302aa1a8ff2SEmmanuel Vadot&usb3_0 {
303aa1a8ff2SEmmanuel Vadot	status = "okay";
304aa1a8ff2SEmmanuel Vadot};
305aa1a8ff2SEmmanuel Vadot
306aa1a8ff2SEmmanuel Vadot&usb3_1 {
307aa1a8ff2SEmmanuel Vadot	status = "okay";
308aa1a8ff2SEmmanuel Vadot};
309aa1a8ff2SEmmanuel Vadot
310aa1a8ff2SEmmanuel Vadot&usb_dwc3_0 {
311aa1a8ff2SEmmanuel Vadot	dr_mode = "peripheral";
312aa1a8ff2SEmmanuel Vadot	status = "okay";
313aa1a8ff2SEmmanuel Vadot};
314aa1a8ff2SEmmanuel Vadot
315aa1a8ff2SEmmanuel Vadot&usb_dwc3_1 {
316aa1a8ff2SEmmanuel Vadot	dr_mode = "host";
317aa1a8ff2SEmmanuel Vadot	#address-cells = <1>;
318aa1a8ff2SEmmanuel Vadot	#size-cells = <0>;
319aa1a8ff2SEmmanuel Vadot	status = "okay";
320aa1a8ff2SEmmanuel Vadot
321aa1a8ff2SEmmanuel Vadot	/* 2.x hub on port 1 */
322aa1a8ff2SEmmanuel Vadot	usb_hub_2_x: hub@1 {
323aa1a8ff2SEmmanuel Vadot		compatible = "usb5e3,610";
324aa1a8ff2SEmmanuel Vadot		reg = <1>;
325aa1a8ff2SEmmanuel Vadot		reset-gpios = <&expander1 9 GPIO_ACTIVE_LOW>;
326aa1a8ff2SEmmanuel Vadot		vdd-supply = <&reg_vdd5v0>;
327aa1a8ff2SEmmanuel Vadot		peer-hub = <&usb_hub_3_x>;
328aa1a8ff2SEmmanuel Vadot	};
329aa1a8ff2SEmmanuel Vadot
330aa1a8ff2SEmmanuel Vadot	/* 3.x hub on port 2 */
331aa1a8ff2SEmmanuel Vadot	usb_hub_3_x: hub@2 {
332aa1a8ff2SEmmanuel Vadot		compatible = "usb5e3,620";
333aa1a8ff2SEmmanuel Vadot		reg = <2>;
334aa1a8ff2SEmmanuel Vadot		reset-gpios = <&expander1 9 GPIO_ACTIVE_LOW>;
335aa1a8ff2SEmmanuel Vadot		vdd-supply = <&reg_vdd5v0>;
336aa1a8ff2SEmmanuel Vadot		peer-hub = <&usb_hub_2_x>;
337aa1a8ff2SEmmanuel Vadot	};
338aa1a8ff2SEmmanuel Vadot};
339aa1a8ff2SEmmanuel Vadot
340aa1a8ff2SEmmanuel Vadot&usb3_phy0 {
341aa1a8ff2SEmmanuel Vadot	status = "okay";
342aa1a8ff2SEmmanuel Vadot};
343aa1a8ff2SEmmanuel Vadot
344aa1a8ff2SEmmanuel Vadot&usb3_phy1 {
345aa1a8ff2SEmmanuel Vadot	status = "okay";
346aa1a8ff2SEmmanuel Vadot};
347aa1a8ff2SEmmanuel Vadot
348aa1a8ff2SEmmanuel Vadot/* µSD Card */
349aa1a8ff2SEmmanuel Vadot&usdhc2 {
350aa1a8ff2SEmmanuel Vadot	pinctrl-names = "default", "state_100mhz", "state_200mhz";
351aa1a8ff2SEmmanuel Vadot	pinctrl-0 = <&pinctrl_usdhc2>;
352aa1a8ff2SEmmanuel Vadot	pinctrl-1 = <&pinctrl_usdhc2_100mhz>;
353aa1a8ff2SEmmanuel Vadot	pinctrl-2 = <&pinctrl_usdhc2_200mhz>;
354aa1a8ff2SEmmanuel Vadot	assigned-clocks = <&clk IMX8MP_CLK_USDHC2>;
355aa1a8ff2SEmmanuel Vadot	assigned-clock-rates = <400000000>;
356aa1a8ff2SEmmanuel Vadot	vmmc-supply = <&reg_usdhc2_vmmc>;
357aa1a8ff2SEmmanuel Vadot	bus-width = <4>;
358aa1a8ff2SEmmanuel Vadot	disable-wp;
359aa1a8ff2SEmmanuel Vadot	no-sdio;
360aa1a8ff2SEmmanuel Vadot	no-mmc;
361aa1a8ff2SEmmanuel Vadot	status = "okay";
362aa1a8ff2SEmmanuel Vadot};
363aa1a8ff2SEmmanuel Vadot
364aa1a8ff2SEmmanuel Vadot&iomuxc {
365aa1a8ff2SEmmanuel Vadot	pinctrl_eqos: eqosgrp {
366aa1a8ff2SEmmanuel Vadot		fsl,pins = <
367aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_ENET_MDC__ENET_QOS_MDC				0x3
368aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_ENET_MDIO__ENET_QOS_MDIO				0x3
369aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_ENET_RD0__ENET_QOS_RGMII_RD0			0x91
370aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_ENET_RD1__ENET_QOS_RGMII_RD1			0x91
371aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_ENET_RD2__ENET_QOS_RGMII_RD2			0x91
372aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_ENET_RD3__ENET_QOS_RGMII_RD3			0x91
373aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_ENET_RXC__CCM_ENET_QOS_CLOCK_GENERATE_RX_CLK	0x91
374aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_ENET_RX_CTL__ENET_QOS_RGMII_RX_CTL			0x91
375aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_ENET_TD0__ENET_QOS_RGMII_TD0			0x1f
376aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_ENET_TD1__ENET_QOS_RGMII_TD1			0x1f
377aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_ENET_TD2__ENET_QOS_RGMII_TD2			0x1f
378aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_ENET_TD3__ENET_QOS_RGMII_TD3			0x1f
379aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_ENET_TX_CTL__ENET_QOS_RGMII_TX_CTL			0x1f
380aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_ENET_TXC__CCM_ENET_QOS_CLOCK_GENERATE_TX_CLK	0x1f
381aa1a8ff2SEmmanuel Vadot
382aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_SAI1_RXFS__ENET1_1588_EVENT0_IN			0x1f
383aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_SAI1_TXD6__GPIO4_IO18				0x19
384aa1a8ff2SEmmanuel Vadot		>;
385aa1a8ff2SEmmanuel Vadot	};
386aa1a8ff2SEmmanuel Vadot
387aa1a8ff2SEmmanuel Vadot	pinctrl_fec: fecgrp {
388aa1a8ff2SEmmanuel Vadot		fsl,pins = <
389aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_SAI1_RXD2__ENET1_MDC		0x3
390aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_SAI1_RXD3__ENET1_MDIO		0x3
391aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_SAI1_RXD4__ENET1_RGMII_RD0		0x91
392aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_SAI1_RXD5__ENET1_RGMII_RD1		0x91
393aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_SAI1_RXD6__ENET1_RGMII_RD2		0x91
394aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_SAI1_RXD7__ENET1_RGMII_RD3		0x91
395aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_SAI1_TXC__ENET1_RGMII_RXC		0x91
396aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_SAI1_TXFS__ENET1_RGMII_RX_CTL	0x91
397aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_SAI1_TXD0__ENET1_RGMII_TD0		0x1f
398aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_SAI1_TXD1__ENET1_RGMII_TD1		0x1f
399aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_SAI1_TXD2__ENET1_RGMII_TD2		0x1f
400aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_SAI1_TXD3__ENET1_RGMII_TD3		0x1f
401aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_SAI1_TXD4__ENET1_RGMII_TX_CTL	0x1f
402aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_SAI1_TXD5__ENET1_RGMII_TXC		0x1f
403aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_SAI1_RXD0__ENET1_1588_EVENT1_IN    0x1f
404aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_SAI1_TXD7__GPIO4_IO19		0x19
405aa1a8ff2SEmmanuel Vadot		>;
406aa1a8ff2SEmmanuel Vadot	};
407aa1a8ff2SEmmanuel Vadot
408aa1a8ff2SEmmanuel Vadot	pinctrl_flexcan1: flexcan1grp {
409aa1a8ff2SEmmanuel Vadot		fsl,pins = <
410aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_SAI5_RXD2__CAN1_RX			0x154
411aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_SAI5_RXD1__CAN1_TX			0x154
412aa1a8ff2SEmmanuel Vadot		>;
413aa1a8ff2SEmmanuel Vadot	};
414aa1a8ff2SEmmanuel Vadot
415aa1a8ff2SEmmanuel Vadot	pinctrl_flexcan2: flexcan2grp {
416aa1a8ff2SEmmanuel Vadot		fsl,pins = <
417aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_SAI5_MCLK__CAN2_RX			0x154
418aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_SAI5_RXD3__CAN2_TX			0x154
419aa1a8ff2SEmmanuel Vadot		>;
420aa1a8ff2SEmmanuel Vadot	};
421aa1a8ff2SEmmanuel Vadot
422aa1a8ff2SEmmanuel Vadot	pinctrl_flexspi0: flexspi0grp {
423aa1a8ff2SEmmanuel Vadot		fsl,pins = <
424aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_NAND_ALE__FLEXSPI_A_SCLK           0x1c2
425aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_NAND_CE0_B__FLEXSPI_A_SS0_B        0x82
426aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_NAND_DATA00__FLEXSPI_A_DATA00      0x82
427aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_NAND_DATA01__FLEXSPI_A_DATA01      0x82
428aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_NAND_DATA02__FLEXSPI_A_DATA02      0x82
429aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_NAND_DATA03__FLEXSPI_A_DATA03      0x82
430aa1a8ff2SEmmanuel Vadot		>;
431aa1a8ff2SEmmanuel Vadot	};
432aa1a8ff2SEmmanuel Vadot
433aa1a8ff2SEmmanuel Vadot	pinctrl_i2c1: i2c1grp {
434aa1a8ff2SEmmanuel Vadot		fsl,pins = <
435aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_I2C1_SCL__I2C1_SCL			0x400001c2
436aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_I2C1_SDA__I2C1_SDA			0x400001c2
437aa1a8ff2SEmmanuel Vadot		>;
438aa1a8ff2SEmmanuel Vadot	};
439aa1a8ff2SEmmanuel Vadot
440aa1a8ff2SEmmanuel Vadot	pinctrl_i2c4: i2c4grp {
441aa1a8ff2SEmmanuel Vadot		fsl,pins = <
442aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_I2C4_SCL__I2C4_SCL			0x400001c3
443aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_I2C4_SDA__I2C4_SDA			0x400001c3
444aa1a8ff2SEmmanuel Vadot		>;
445aa1a8ff2SEmmanuel Vadot	};
446aa1a8ff2SEmmanuel Vadot
447aa1a8ff2SEmmanuel Vadot	pinctrl_rtc: rtcgrp {
448aa1a8ff2SEmmanuel Vadot		fsl,pins = <
449aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_SAI1_RXD1__GPIO4_IO03		0x140
450aa1a8ff2SEmmanuel Vadot		>;
451aa1a8ff2SEmmanuel Vadot	};
452aa1a8ff2SEmmanuel Vadot
453aa1a8ff2SEmmanuel Vadot	pinctrl_pmic: pmicgrp {
454aa1a8ff2SEmmanuel Vadot		fsl,pins = <
455aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_GPIO1_IO03__GPIO1_IO03		0x41
456aa1a8ff2SEmmanuel Vadot		>;
457aa1a8ff2SEmmanuel Vadot	};
458aa1a8ff2SEmmanuel Vadot
459*8d13bc63SEmmanuel Vadot	pinctrl_reg_csi2_1v8: regcsi21v8grp {
460*8d13bc63SEmmanuel Vadot		fsl,pins = <
461*8d13bc63SEmmanuel Vadot			MX8MP_IOMUXC_SAI5_RXD0__GPIO3_IO21		0x19
462*8d13bc63SEmmanuel Vadot		>;
463*8d13bc63SEmmanuel Vadot	};
464*8d13bc63SEmmanuel Vadot
465*8d13bc63SEmmanuel Vadot	pinctrl_reg_csi2_3v3: regcsi23v3grp {
466*8d13bc63SEmmanuel Vadot		fsl,pins = <
467*8d13bc63SEmmanuel Vadot			MX8MP_IOMUXC_SAI2_TXC__GPIO4_IO25		0x19
468*8d13bc63SEmmanuel Vadot		>;
469*8d13bc63SEmmanuel Vadot	};
470*8d13bc63SEmmanuel Vadot
471aa1a8ff2SEmmanuel Vadot	pinctrl_uart2: uart2grp {
472aa1a8ff2SEmmanuel Vadot		fsl,pins = <
473aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_UART2_RXD__UART2_DCE_RX		0x14f
474aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_UART2_TXD__UART2_DCE_TX		0x14f
475aa1a8ff2SEmmanuel Vadot		>;
476aa1a8ff2SEmmanuel Vadot	};
477aa1a8ff2SEmmanuel Vadot
478aa1a8ff2SEmmanuel Vadot	pinctrl_uart3: uart3grp {
479aa1a8ff2SEmmanuel Vadot		fsl,pins = <
480aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_UART3_RXD__UART3_DCE_RX		0x49
481aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_UART3_TXD__UART3_DCE_TX		0x49
482aa1a8ff2SEmmanuel Vadot		>;
483aa1a8ff2SEmmanuel Vadot	};
484aa1a8ff2SEmmanuel Vadot
485aa1a8ff2SEmmanuel Vadot	pinctrl_uart4: uart4grp {
486aa1a8ff2SEmmanuel Vadot		fsl,pins = <
487aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_UART4_RXD__UART4_DCE_RX		0x49
488aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_UART4_TXD__UART4_DCE_TX		0x49
489aa1a8ff2SEmmanuel Vadot		>;
490aa1a8ff2SEmmanuel Vadot	};
491aa1a8ff2SEmmanuel Vadot
492aa1a8ff2SEmmanuel Vadot	pinctrl_usdhc2: usdhc2grp {
493aa1a8ff2SEmmanuel Vadot		fsl,pins = <
494aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_SD2_CLK__USDHC2_CLK		0x190
495aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_SD2_CMD__USDHC2_CMD		0x1d0
496aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_SD2_DATA0__USDHC2_DATA0		0x1d0
497aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_SD2_DATA1__USDHC2_DATA1		0x1d0
498aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_SD2_DATA2__USDHC2_DATA2		0x1d0
499aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3		0x1d0
500aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_GPIO1_IO04__USDHC2_VSELECT		0xc1
501aa1a8ff2SEmmanuel Vadot		>;
502aa1a8ff2SEmmanuel Vadot	};
503aa1a8ff2SEmmanuel Vadot
504aa1a8ff2SEmmanuel Vadot	pinctrl_usdhc2_100mhz: usdhc2-100mhzgrp {
505aa1a8ff2SEmmanuel Vadot		fsl,pins = <
506aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_SD2_CLK__USDHC2_CLK		0x194
507aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_SD2_CMD__USDHC2_CMD		0x1d4
508aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_SD2_DATA0__USDHC2_DATA0		0x1d4
509aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_SD2_DATA1__USDHC2_DATA1		0x1d4
510aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_SD2_DATA2__USDHC2_DATA2		0x1d4
511aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3		0x1d4
512aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_GPIO1_IO04__USDHC2_VSELECT		0xc1
513aa1a8ff2SEmmanuel Vadot		>;
514aa1a8ff2SEmmanuel Vadot	};
515aa1a8ff2SEmmanuel Vadot
516aa1a8ff2SEmmanuel Vadot	pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp {
517aa1a8ff2SEmmanuel Vadot		fsl,pins = <
518aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_SD2_CLK__USDHC2_CLK		0x196
519aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_SD2_CMD__USDHC2_CMD		0x1d6
520aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_SD2_DATA0__USDHC2_DATA0		0x1d6
521aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_SD2_DATA1__USDHC2_DATA1		0x1d6
522aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_SD2_DATA2__USDHC2_DATA2		0x1d6
523aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3		0x1d6
524aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_GPIO1_IO04__USDHC2_VSELECT		0xc1
525aa1a8ff2SEmmanuel Vadot		>;
526aa1a8ff2SEmmanuel Vadot	};
527aa1a8ff2SEmmanuel Vadot};
528