xref: /freebsd/sys/contrib/device-tree/src/arm64/freescale/imx8mp-debix-som-a-bmb-08.dts (revision 8d13bc63c0e1d50bc9e47ac1f26329c999bfecf0)
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-supply = <&reg_baseboard_vdd3v3>;
148aa1a8ff2SEmmanuel Vadot	phy-handle = <&ethphy0>;
149aa1a8ff2SEmmanuel Vadot	phy-mode = "rgmii-id";
150aa1a8ff2SEmmanuel Vadot	status = "okay";
151aa1a8ff2SEmmanuel Vadot
152aa1a8ff2SEmmanuel Vadot	mdio {
153aa1a8ff2SEmmanuel Vadot		compatible = "snps,dwmac-mdio";
154aa1a8ff2SEmmanuel Vadot		#address-cells = <1>;
155aa1a8ff2SEmmanuel Vadot		#size-cells = <0>;
156aa1a8ff2SEmmanuel Vadot
157aa1a8ff2SEmmanuel Vadot		ethphy0: ethernet-phy@1 {
158aa1a8ff2SEmmanuel Vadot			compatible = "ethernet-phy-ieee802.3-c22";
159aa1a8ff2SEmmanuel Vadot			reg = <1>;
160aa1a8ff2SEmmanuel Vadot			reset-gpios = <&gpio4 18 GPIO_ACTIVE_LOW>;
161aa1a8ff2SEmmanuel Vadot			reset-assert-us = <20000>;
162aa1a8ff2SEmmanuel Vadot			reset-deassert-us = <150000>;
163aa1a8ff2SEmmanuel Vadot			eee-broken-1000t;
164aa1a8ff2SEmmanuel Vadot			realtek,clkout-disable;
165aa1a8ff2SEmmanuel Vadot		};
166aa1a8ff2SEmmanuel Vadot	};
167aa1a8ff2SEmmanuel Vadot};
168aa1a8ff2SEmmanuel Vadot
169aa1a8ff2SEmmanuel Vadot&fec {
170aa1a8ff2SEmmanuel Vadot	pinctrl-names = "default";
171aa1a8ff2SEmmanuel Vadot	pinctrl-0 = <&pinctrl_fec>;
172aa1a8ff2SEmmanuel Vadot	nvmem-cells = <&ethmac2>;
173aa1a8ff2SEmmanuel Vadot	nvmem-cell-names = "mac-address";
174aa1a8ff2SEmmanuel Vadot	phy-supply = <&reg_baseboard_vdd3v3>;
175aa1a8ff2SEmmanuel Vadot	phy-handle = <&ethphy1>;
176aa1a8ff2SEmmanuel Vadot	phy-mode = "rgmii-id";
177aa1a8ff2SEmmanuel Vadot	fsl,magic-packet;
178aa1a8ff2SEmmanuel Vadot	status = "okay";
179aa1a8ff2SEmmanuel Vadot
180aa1a8ff2SEmmanuel Vadot	mdio {
181aa1a8ff2SEmmanuel Vadot		#address-cells = <1>;
182aa1a8ff2SEmmanuel Vadot		#size-cells = <0>;
183aa1a8ff2SEmmanuel Vadot
184aa1a8ff2SEmmanuel Vadot		ethphy1: ethernet-phy@1 {
185aa1a8ff2SEmmanuel Vadot			compatible = "ethernet-phy-ieee802.3-c22";
186aa1a8ff2SEmmanuel Vadot			reg = <1>;
187aa1a8ff2SEmmanuel Vadot			reset-gpios = <&gpio4 19 GPIO_ACTIVE_LOW>;
188aa1a8ff2SEmmanuel Vadot			reset-assert-us = <20000>;
189aa1a8ff2SEmmanuel Vadot			reset-deassert-us = <150000>;
190aa1a8ff2SEmmanuel Vadot			eee-broken-1000t;
191aa1a8ff2SEmmanuel Vadot			realtek,clkout-disable;
192aa1a8ff2SEmmanuel Vadot		};
193aa1a8ff2SEmmanuel Vadot	};
194aa1a8ff2SEmmanuel Vadot};
195aa1a8ff2SEmmanuel Vadot
196aa1a8ff2SEmmanuel Vadot&flexcan1 {
197aa1a8ff2SEmmanuel Vadot	pinctrl-names = "default";
198aa1a8ff2SEmmanuel Vadot	pinctrl-0 = <&pinctrl_flexcan1>;
199aa1a8ff2SEmmanuel Vadot	xceiver-supply = <&reg_vdd5v0>;
200aa1a8ff2SEmmanuel Vadot	status = "okay";
201aa1a8ff2SEmmanuel Vadot};
202aa1a8ff2SEmmanuel Vadot
203aa1a8ff2SEmmanuel Vadot&flexcan2 {
204aa1a8ff2SEmmanuel Vadot	pinctrl-names = "default";
205aa1a8ff2SEmmanuel Vadot	pinctrl-0 = <&pinctrl_flexcan2>;
206aa1a8ff2SEmmanuel Vadot	xceiver-supply = <&reg_vdd5v0>;
207aa1a8ff2SEmmanuel Vadot	status = "okay";
208aa1a8ff2SEmmanuel Vadot};
209aa1a8ff2SEmmanuel Vadot
210aa1a8ff2SEmmanuel Vadot&flexspi {
211aa1a8ff2SEmmanuel Vadot	pinctrl-names = "default";
212aa1a8ff2SEmmanuel Vadot	pinctrl-0 = <&pinctrl_flexspi0>;
213aa1a8ff2SEmmanuel Vadot	status = "okay";
214aa1a8ff2SEmmanuel Vadot
215aa1a8ff2SEmmanuel Vadot	flash: flash@0 {
216aa1a8ff2SEmmanuel Vadot		compatible = "jedec,spi-nor";
217aa1a8ff2SEmmanuel Vadot		reg = <0>;
218aa1a8ff2SEmmanuel Vadot		spi-max-frequency = <80000000>;
219aa1a8ff2SEmmanuel Vadot		spi-tx-bus-width = <1>;
220aa1a8ff2SEmmanuel Vadot		spi-rx-bus-width = <4>;
221aa1a8ff2SEmmanuel Vadot		#address-cells = <1>;
222aa1a8ff2SEmmanuel Vadot		#size-cells = <1>;
223aa1a8ff2SEmmanuel Vadot	};
224aa1a8ff2SEmmanuel Vadot};
225aa1a8ff2SEmmanuel Vadot
226aa1a8ff2SEmmanuel Vadot&i2c4 {
227aa1a8ff2SEmmanuel Vadot	expander0: gpio@20 {
228aa1a8ff2SEmmanuel Vadot		compatible = "nxp,pca9535";
229aa1a8ff2SEmmanuel Vadot		reg = <0x20>;
230aa1a8ff2SEmmanuel Vadot		gpio-controller;
231aa1a8ff2SEmmanuel Vadot		#gpio-cells = <0x02>;
232aa1a8ff2SEmmanuel Vadot	};
233aa1a8ff2SEmmanuel Vadot
234aa1a8ff2SEmmanuel Vadot	expander1: gpio@23 {
235aa1a8ff2SEmmanuel Vadot		compatible = "nxp,pca9535";
236aa1a8ff2SEmmanuel Vadot		reg = <0x23>;
237aa1a8ff2SEmmanuel Vadot		gpio-controller;
238aa1a8ff2SEmmanuel Vadot		#gpio-cells = <0x02>;
239aa1a8ff2SEmmanuel Vadot
240aa1a8ff2SEmmanuel Vadot		/*
241aa1a8ff2SEmmanuel Vadot		 * Since USB1 is bound to peripheral mode we need to ensure
242aa1a8ff2SEmmanuel Vadot		 * that VBUS is turned off.
243aa1a8ff2SEmmanuel Vadot		 */
244aa1a8ff2SEmmanuel Vadot		usb30-otg-hog {
245aa1a8ff2SEmmanuel Vadot			gpio-hog;
246aa1a8ff2SEmmanuel Vadot			gpios = <13 GPIO_ACTIVE_HIGH>;
247aa1a8ff2SEmmanuel Vadot			output-low;
248aa1a8ff2SEmmanuel Vadot			line-name = "USB30_OTG_EN";
249aa1a8ff2SEmmanuel Vadot		};
250aa1a8ff2SEmmanuel Vadot	};
251aa1a8ff2SEmmanuel Vadot
252aa1a8ff2SEmmanuel Vadot	rtc@51 {
253aa1a8ff2SEmmanuel Vadot		compatible = "haoyu,hym8563";
254aa1a8ff2SEmmanuel Vadot		reg = <0x51>;
255aa1a8ff2SEmmanuel Vadot		pinctrl-names = "default";
256aa1a8ff2SEmmanuel Vadot		pinctrl-0 = <&pinctrl_rtc>;
257aa1a8ff2SEmmanuel Vadot		interrupt-parent = <&gpio4>;
258aa1a8ff2SEmmanuel Vadot		interrupts = <3 IRQ_TYPE_EDGE_FALLING>;
259aa1a8ff2SEmmanuel Vadot		#clock-cells = <0>;
260aa1a8ff2SEmmanuel Vadot	};
261aa1a8ff2SEmmanuel Vadot
262aa1a8ff2SEmmanuel Vadot	eeprom@52 {
263aa1a8ff2SEmmanuel Vadot		compatible = "atmel,24c02";
264aa1a8ff2SEmmanuel Vadot		reg = <0x52>;
265aa1a8ff2SEmmanuel Vadot		pagesize = <16>;
266aa1a8ff2SEmmanuel Vadot		#address-cells = <1>;
26784943d6fSEmmanuel Vadot		#size-cells = <1>;
268aa1a8ff2SEmmanuel Vadot
269aa1a8ff2SEmmanuel Vadot		/* MACs stored in ASCII */
270aa1a8ff2SEmmanuel Vadot		ethmac1: mac-address@0 {
271aa1a8ff2SEmmanuel Vadot			reg = <0x0 0xc>;
272aa1a8ff2SEmmanuel Vadot		};
273aa1a8ff2SEmmanuel Vadot
274aa1a8ff2SEmmanuel Vadot		ethmac2: mac-address@c {
275aa1a8ff2SEmmanuel Vadot			reg = <0xc 0xc>;
276aa1a8ff2SEmmanuel Vadot		};
277aa1a8ff2SEmmanuel Vadot	};
278aa1a8ff2SEmmanuel Vadot};
279aa1a8ff2SEmmanuel Vadot
280aa1a8ff2SEmmanuel Vadot&snvs_pwrkey {
281aa1a8ff2SEmmanuel Vadot	status = "okay";
282aa1a8ff2SEmmanuel Vadot};
283aa1a8ff2SEmmanuel Vadot
284aa1a8ff2SEmmanuel Vadot/* Debug */
285aa1a8ff2SEmmanuel Vadot&uart2 {
286aa1a8ff2SEmmanuel Vadot	pinctrl-names = "default";
287aa1a8ff2SEmmanuel Vadot	pinctrl-0 = <&pinctrl_uart2>;
288aa1a8ff2SEmmanuel Vadot	status = "okay";
289aa1a8ff2SEmmanuel Vadot};
290aa1a8ff2SEmmanuel Vadot
291aa1a8ff2SEmmanuel Vadot&uart3 {
292aa1a8ff2SEmmanuel Vadot	pinctrl-names = "default";
293aa1a8ff2SEmmanuel Vadot	pinctrl-0 = <&pinctrl_uart3>;
294aa1a8ff2SEmmanuel Vadot	status = "okay";
295aa1a8ff2SEmmanuel Vadot};
296aa1a8ff2SEmmanuel Vadot
297aa1a8ff2SEmmanuel Vadot&uart4 {
298aa1a8ff2SEmmanuel Vadot	pinctrl-names = "default";
299aa1a8ff2SEmmanuel Vadot	pinctrl-0 = <&pinctrl_uart4>;
300aa1a8ff2SEmmanuel Vadot	status = "okay";
301aa1a8ff2SEmmanuel Vadot};
302aa1a8ff2SEmmanuel Vadot
303aa1a8ff2SEmmanuel Vadot&usb3_0 {
304aa1a8ff2SEmmanuel Vadot	status = "okay";
305aa1a8ff2SEmmanuel Vadot};
306aa1a8ff2SEmmanuel Vadot
307aa1a8ff2SEmmanuel Vadot&usb3_1 {
308aa1a8ff2SEmmanuel Vadot	status = "okay";
309aa1a8ff2SEmmanuel Vadot};
310aa1a8ff2SEmmanuel Vadot
311aa1a8ff2SEmmanuel Vadot&usb_dwc3_0 {
312aa1a8ff2SEmmanuel Vadot	dr_mode = "peripheral";
313aa1a8ff2SEmmanuel Vadot	status = "okay";
314aa1a8ff2SEmmanuel Vadot};
315aa1a8ff2SEmmanuel Vadot
316aa1a8ff2SEmmanuel Vadot&usb_dwc3_1 {
317aa1a8ff2SEmmanuel Vadot	dr_mode = "host";
318aa1a8ff2SEmmanuel Vadot	#address-cells = <1>;
319aa1a8ff2SEmmanuel Vadot	#size-cells = <0>;
320aa1a8ff2SEmmanuel Vadot	status = "okay";
321aa1a8ff2SEmmanuel Vadot
322aa1a8ff2SEmmanuel Vadot	/* 2.x hub on port 1 */
323aa1a8ff2SEmmanuel Vadot	usb_hub_2_x: hub@1 {
324aa1a8ff2SEmmanuel Vadot		compatible = "usb5e3,610";
325aa1a8ff2SEmmanuel Vadot		reg = <1>;
326aa1a8ff2SEmmanuel Vadot		reset-gpios = <&expander1 9 GPIO_ACTIVE_LOW>;
327aa1a8ff2SEmmanuel Vadot		vdd-supply = <&reg_vdd5v0>;
328aa1a8ff2SEmmanuel Vadot		peer-hub = <&usb_hub_3_x>;
329aa1a8ff2SEmmanuel Vadot	};
330aa1a8ff2SEmmanuel Vadot
331aa1a8ff2SEmmanuel Vadot	/* 3.x hub on port 2 */
332aa1a8ff2SEmmanuel Vadot	usb_hub_3_x: hub@2 {
333aa1a8ff2SEmmanuel Vadot		compatible = "usb5e3,620";
334aa1a8ff2SEmmanuel Vadot		reg = <2>;
335aa1a8ff2SEmmanuel Vadot		reset-gpios = <&expander1 9 GPIO_ACTIVE_LOW>;
336aa1a8ff2SEmmanuel Vadot		vdd-supply = <&reg_vdd5v0>;
337aa1a8ff2SEmmanuel Vadot		peer-hub = <&usb_hub_2_x>;
338aa1a8ff2SEmmanuel Vadot	};
339aa1a8ff2SEmmanuel Vadot};
340aa1a8ff2SEmmanuel Vadot
341aa1a8ff2SEmmanuel Vadot&usb3_phy0 {
342aa1a8ff2SEmmanuel Vadot	status = "okay";
343aa1a8ff2SEmmanuel Vadot};
344aa1a8ff2SEmmanuel Vadot
345aa1a8ff2SEmmanuel Vadot&usb3_phy1 {
346aa1a8ff2SEmmanuel Vadot	status = "okay";
347aa1a8ff2SEmmanuel Vadot};
348aa1a8ff2SEmmanuel Vadot
349aa1a8ff2SEmmanuel Vadot/* µSD Card */
350aa1a8ff2SEmmanuel Vadot&usdhc2 {
351aa1a8ff2SEmmanuel Vadot	pinctrl-names = "default", "state_100mhz", "state_200mhz";
352aa1a8ff2SEmmanuel Vadot	pinctrl-0 = <&pinctrl_usdhc2>;
353aa1a8ff2SEmmanuel Vadot	pinctrl-1 = <&pinctrl_usdhc2_100mhz>;
354aa1a8ff2SEmmanuel Vadot	pinctrl-2 = <&pinctrl_usdhc2_200mhz>;
355aa1a8ff2SEmmanuel Vadot	assigned-clocks = <&clk IMX8MP_CLK_USDHC2>;
356aa1a8ff2SEmmanuel Vadot	assigned-clock-rates = <400000000>;
357aa1a8ff2SEmmanuel Vadot	vmmc-supply = <&reg_usdhc2_vmmc>;
358aa1a8ff2SEmmanuel Vadot	bus-width = <4>;
359aa1a8ff2SEmmanuel Vadot	disable-wp;
360aa1a8ff2SEmmanuel Vadot	no-sdio;
361aa1a8ff2SEmmanuel Vadot	no-mmc;
362aa1a8ff2SEmmanuel Vadot	status = "okay";
363aa1a8ff2SEmmanuel Vadot};
364aa1a8ff2SEmmanuel Vadot
365aa1a8ff2SEmmanuel Vadot&iomuxc {
366aa1a8ff2SEmmanuel Vadot	pinctrl_eqos: eqosgrp {
367aa1a8ff2SEmmanuel Vadot		fsl,pins = <
368aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_ENET_MDC__ENET_QOS_MDC				0x3
369aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_ENET_MDIO__ENET_QOS_MDIO				0x3
370aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_ENET_RD0__ENET_QOS_RGMII_RD0			0x91
371aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_ENET_RD1__ENET_QOS_RGMII_RD1			0x91
372aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_ENET_RD2__ENET_QOS_RGMII_RD2			0x91
373aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_ENET_RD3__ENET_QOS_RGMII_RD3			0x91
374aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_ENET_RXC__CCM_ENET_QOS_CLOCK_GENERATE_RX_CLK	0x91
375aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_ENET_RX_CTL__ENET_QOS_RGMII_RX_CTL			0x91
376aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_ENET_TD0__ENET_QOS_RGMII_TD0			0x1f
377aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_ENET_TD1__ENET_QOS_RGMII_TD1			0x1f
378aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_ENET_TD2__ENET_QOS_RGMII_TD2			0x1f
379aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_ENET_TD3__ENET_QOS_RGMII_TD3			0x1f
380aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_ENET_TX_CTL__ENET_QOS_RGMII_TX_CTL			0x1f
381aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_ENET_TXC__CCM_ENET_QOS_CLOCK_GENERATE_TX_CLK	0x1f
382aa1a8ff2SEmmanuel Vadot
383aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_SAI1_RXFS__ENET1_1588_EVENT0_IN			0x1f
384aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_SAI1_TXD6__GPIO4_IO18				0x19
385aa1a8ff2SEmmanuel Vadot		>;
386aa1a8ff2SEmmanuel Vadot	};
387aa1a8ff2SEmmanuel Vadot
388aa1a8ff2SEmmanuel Vadot	pinctrl_fec: fecgrp {
389aa1a8ff2SEmmanuel Vadot		fsl,pins = <
390aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_SAI1_RXD2__ENET1_MDC		0x3
391aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_SAI1_RXD3__ENET1_MDIO		0x3
392aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_SAI1_RXD4__ENET1_RGMII_RD0		0x91
393aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_SAI1_RXD5__ENET1_RGMII_RD1		0x91
394aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_SAI1_RXD6__ENET1_RGMII_RD2		0x91
395aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_SAI1_RXD7__ENET1_RGMII_RD3		0x91
396aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_SAI1_TXC__ENET1_RGMII_RXC		0x91
397aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_SAI1_TXFS__ENET1_RGMII_RX_CTL	0x91
398aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_SAI1_TXD0__ENET1_RGMII_TD0		0x1f
399aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_SAI1_TXD1__ENET1_RGMII_TD1		0x1f
400aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_SAI1_TXD2__ENET1_RGMII_TD2		0x1f
401aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_SAI1_TXD3__ENET1_RGMII_TD3		0x1f
402aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_SAI1_TXD4__ENET1_RGMII_TX_CTL	0x1f
403aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_SAI1_TXD5__ENET1_RGMII_TXC		0x1f
404aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_SAI1_RXD0__ENET1_1588_EVENT1_IN    0x1f
405aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_SAI1_TXD7__GPIO4_IO19		0x19
406aa1a8ff2SEmmanuel Vadot		>;
407aa1a8ff2SEmmanuel Vadot	};
408aa1a8ff2SEmmanuel Vadot
409aa1a8ff2SEmmanuel Vadot	pinctrl_flexcan1: flexcan1grp {
410aa1a8ff2SEmmanuel Vadot		fsl,pins = <
411aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_SAI5_RXD2__CAN1_RX			0x154
412aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_SAI5_RXD1__CAN1_TX			0x154
413aa1a8ff2SEmmanuel Vadot		>;
414aa1a8ff2SEmmanuel Vadot	};
415aa1a8ff2SEmmanuel Vadot
416aa1a8ff2SEmmanuel Vadot	pinctrl_flexcan2: flexcan2grp {
417aa1a8ff2SEmmanuel Vadot		fsl,pins = <
418aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_SAI5_MCLK__CAN2_RX			0x154
419aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_SAI5_RXD3__CAN2_TX			0x154
420aa1a8ff2SEmmanuel Vadot		>;
421aa1a8ff2SEmmanuel Vadot	};
422aa1a8ff2SEmmanuel Vadot
423aa1a8ff2SEmmanuel Vadot	pinctrl_flexspi0: flexspi0grp {
424aa1a8ff2SEmmanuel Vadot		fsl,pins = <
425aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_NAND_ALE__FLEXSPI_A_SCLK           0x1c2
426aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_NAND_CE0_B__FLEXSPI_A_SS0_B        0x82
427aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_NAND_DATA00__FLEXSPI_A_DATA00      0x82
428aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_NAND_DATA01__FLEXSPI_A_DATA01      0x82
429aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_NAND_DATA02__FLEXSPI_A_DATA02      0x82
430aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_NAND_DATA03__FLEXSPI_A_DATA03      0x82
431aa1a8ff2SEmmanuel Vadot		>;
432aa1a8ff2SEmmanuel Vadot	};
433aa1a8ff2SEmmanuel Vadot
434aa1a8ff2SEmmanuel Vadot	pinctrl_i2c1: i2c1grp {
435aa1a8ff2SEmmanuel Vadot		fsl,pins = <
436aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_I2C1_SCL__I2C1_SCL			0x400001c2
437aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_I2C1_SDA__I2C1_SDA			0x400001c2
438aa1a8ff2SEmmanuel Vadot		>;
439aa1a8ff2SEmmanuel Vadot	};
440aa1a8ff2SEmmanuel Vadot
441aa1a8ff2SEmmanuel Vadot	pinctrl_i2c4: i2c4grp {
442aa1a8ff2SEmmanuel Vadot		fsl,pins = <
443aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_I2C4_SCL__I2C4_SCL			0x400001c3
444aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_I2C4_SDA__I2C4_SDA			0x400001c3
445aa1a8ff2SEmmanuel Vadot		>;
446aa1a8ff2SEmmanuel Vadot	};
447aa1a8ff2SEmmanuel Vadot
448aa1a8ff2SEmmanuel Vadot	pinctrl_rtc: rtcgrp {
449aa1a8ff2SEmmanuel Vadot		fsl,pins = <
450aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_SAI1_RXD1__GPIO4_IO03		0x140
451aa1a8ff2SEmmanuel Vadot		>;
452aa1a8ff2SEmmanuel Vadot	};
453aa1a8ff2SEmmanuel Vadot
454aa1a8ff2SEmmanuel Vadot	pinctrl_pmic: pmicgrp {
455aa1a8ff2SEmmanuel Vadot		fsl,pins = <
456aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_GPIO1_IO03__GPIO1_IO03		0x41
457aa1a8ff2SEmmanuel Vadot		>;
458aa1a8ff2SEmmanuel Vadot	};
459aa1a8ff2SEmmanuel Vadot
460*8d13bc63SEmmanuel Vadot	pinctrl_reg_csi2_1v8: regcsi21v8grp {
461*8d13bc63SEmmanuel Vadot		fsl,pins = <
462*8d13bc63SEmmanuel Vadot			MX8MP_IOMUXC_SAI5_RXD0__GPIO3_IO21		0x19
463*8d13bc63SEmmanuel Vadot		>;
464*8d13bc63SEmmanuel Vadot	};
465*8d13bc63SEmmanuel Vadot
466*8d13bc63SEmmanuel Vadot	pinctrl_reg_csi2_3v3: regcsi23v3grp {
467*8d13bc63SEmmanuel Vadot		fsl,pins = <
468*8d13bc63SEmmanuel Vadot			MX8MP_IOMUXC_SAI2_TXC__GPIO4_IO25		0x19
469*8d13bc63SEmmanuel Vadot		>;
470*8d13bc63SEmmanuel Vadot	};
471*8d13bc63SEmmanuel Vadot
472aa1a8ff2SEmmanuel Vadot	pinctrl_uart2: uart2grp {
473aa1a8ff2SEmmanuel Vadot		fsl,pins = <
474aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_UART2_RXD__UART2_DCE_RX		0x14f
475aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_UART2_TXD__UART2_DCE_TX		0x14f
476aa1a8ff2SEmmanuel Vadot		>;
477aa1a8ff2SEmmanuel Vadot	};
478aa1a8ff2SEmmanuel Vadot
479aa1a8ff2SEmmanuel Vadot	pinctrl_uart3: uart3grp {
480aa1a8ff2SEmmanuel Vadot		fsl,pins = <
481aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_UART3_RXD__UART3_DCE_RX		0x49
482aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_UART3_TXD__UART3_DCE_TX		0x49
483aa1a8ff2SEmmanuel Vadot		>;
484aa1a8ff2SEmmanuel Vadot	};
485aa1a8ff2SEmmanuel Vadot
486aa1a8ff2SEmmanuel Vadot	pinctrl_uart4: uart4grp {
487aa1a8ff2SEmmanuel Vadot		fsl,pins = <
488aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_UART4_RXD__UART4_DCE_RX		0x49
489aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_UART4_TXD__UART4_DCE_TX		0x49
490aa1a8ff2SEmmanuel Vadot		>;
491aa1a8ff2SEmmanuel Vadot	};
492aa1a8ff2SEmmanuel Vadot
493aa1a8ff2SEmmanuel Vadot	pinctrl_usdhc2: usdhc2grp {
494aa1a8ff2SEmmanuel Vadot		fsl,pins = <
495aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_SD2_CLK__USDHC2_CLK		0x190
496aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_SD2_CMD__USDHC2_CMD		0x1d0
497aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_SD2_DATA0__USDHC2_DATA0		0x1d0
498aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_SD2_DATA1__USDHC2_DATA1		0x1d0
499aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_SD2_DATA2__USDHC2_DATA2		0x1d0
500aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3		0x1d0
501aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_GPIO1_IO04__USDHC2_VSELECT		0xc1
502aa1a8ff2SEmmanuel Vadot		>;
503aa1a8ff2SEmmanuel Vadot	};
504aa1a8ff2SEmmanuel Vadot
505aa1a8ff2SEmmanuel Vadot	pinctrl_usdhc2_100mhz: usdhc2-100mhzgrp {
506aa1a8ff2SEmmanuel Vadot		fsl,pins = <
507aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_SD2_CLK__USDHC2_CLK		0x194
508aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_SD2_CMD__USDHC2_CMD		0x1d4
509aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_SD2_DATA0__USDHC2_DATA0		0x1d4
510aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_SD2_DATA1__USDHC2_DATA1		0x1d4
511aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_SD2_DATA2__USDHC2_DATA2		0x1d4
512aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3		0x1d4
513aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_GPIO1_IO04__USDHC2_VSELECT		0xc1
514aa1a8ff2SEmmanuel Vadot		>;
515aa1a8ff2SEmmanuel Vadot	};
516aa1a8ff2SEmmanuel Vadot
517aa1a8ff2SEmmanuel Vadot	pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp {
518aa1a8ff2SEmmanuel Vadot		fsl,pins = <
519aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_SD2_CLK__USDHC2_CLK		0x196
520aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_SD2_CMD__USDHC2_CMD		0x1d6
521aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_SD2_DATA0__USDHC2_DATA0		0x1d6
522aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_SD2_DATA1__USDHC2_DATA1		0x1d6
523aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_SD2_DATA2__USDHC2_DATA2		0x1d6
524aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3		0x1d6
525aa1a8ff2SEmmanuel Vadot			MX8MP_IOMUXC_GPIO1_IO04__USDHC2_VSELECT		0xc1
526aa1a8ff2SEmmanuel Vadot		>;
527aa1a8ff2SEmmanuel Vadot	};
528aa1a8ff2SEmmanuel Vadot};
529