xref: /openbmc/linux/arch/arm64/boot/dts/freescale/imx8mp-beacon-kit.dts (revision 25a5ccdce76753fc62c8668c53128791f2adfd8f)
1*25a5ccdcSAdam Ford// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2*25a5ccdcSAdam Ford/*
3*25a5ccdcSAdam Ford * Copyright 2023 Logic PD, Inc dba Beacon EmbeddedWorks
4*25a5ccdcSAdam Ford */
5*25a5ccdcSAdam Ford
6*25a5ccdcSAdam Ford/dts-v1/;
7*25a5ccdcSAdam Ford
8*25a5ccdcSAdam Ford#include <dt-bindings/usb/pd.h>
9*25a5ccdcSAdam Ford#include <dt-bindings/phy/phy-imx8-pcie.h>
10*25a5ccdcSAdam Ford#include "imx8mp.dtsi"
11*25a5ccdcSAdam Ford#include "imx8mp-beacon-som.dtsi"
12*25a5ccdcSAdam Ford
13*25a5ccdcSAdam Ford/ {
14*25a5ccdcSAdam Ford	model = "Beacon EmbeddedWorks i.MX8MPlus Development kit";
15*25a5ccdcSAdam Ford	compatible = "beacon,imx8mp-beacon-kit", "fsl,imx8mp";
16*25a5ccdcSAdam Ford
17*25a5ccdcSAdam Ford	aliases {
18*25a5ccdcSAdam Ford		ethernet0 = &eqos;
19*25a5ccdcSAdam Ford		ethernet1 = &fec;
20*25a5ccdcSAdam Ford	};
21*25a5ccdcSAdam Ford
22*25a5ccdcSAdam Ford	chosen {
23*25a5ccdcSAdam Ford		stdout-path = &uart2;
24*25a5ccdcSAdam Ford	};
25*25a5ccdcSAdam Ford
26*25a5ccdcSAdam Ford	connector {
27*25a5ccdcSAdam Ford		compatible = "usb-c-connector";
28*25a5ccdcSAdam Ford		label = "USB-C";
29*25a5ccdcSAdam Ford		data-role = "dual";
30*25a5ccdcSAdam Ford
31*25a5ccdcSAdam Ford		ports {
32*25a5ccdcSAdam Ford			#address-cells = <1>;
33*25a5ccdcSAdam Ford			#size-cells = <0>;
34*25a5ccdcSAdam Ford
35*25a5ccdcSAdam Ford			port@0 {
36*25a5ccdcSAdam Ford				reg = <0>;
37*25a5ccdcSAdam Ford
38*25a5ccdcSAdam Ford				hs_ep: endpoint {
39*25a5ccdcSAdam Ford					remote-endpoint = <&usb3_hs_ep>;
40*25a5ccdcSAdam Ford				};
41*25a5ccdcSAdam Ford			};
42*25a5ccdcSAdam Ford			port@1 {
43*25a5ccdcSAdam Ford				reg = <1>;
44*25a5ccdcSAdam Ford
45*25a5ccdcSAdam Ford				ss_ep: endpoint {
46*25a5ccdcSAdam Ford					remote-endpoint = <&hd3ss3220_in_ep>;
47*25a5ccdcSAdam Ford				};
48*25a5ccdcSAdam Ford			};
49*25a5ccdcSAdam Ford		};
50*25a5ccdcSAdam Ford	};
51*25a5ccdcSAdam Ford
52*25a5ccdcSAdam Ford	gpio-keys {
53*25a5ccdcSAdam Ford		compatible = "gpio-keys";
54*25a5ccdcSAdam Ford		autorepeat;
55*25a5ccdcSAdam Ford
56*25a5ccdcSAdam Ford		button-0 {
57*25a5ccdcSAdam Ford			label = "btn0";
58*25a5ccdcSAdam Ford			linux,code = <BTN_0>;
59*25a5ccdcSAdam Ford			gpios = <&pca6416_1 12 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
60*25a5ccdcSAdam Ford			wakeup-source;
61*25a5ccdcSAdam Ford		};
62*25a5ccdcSAdam Ford
63*25a5ccdcSAdam Ford		button-1 {
64*25a5ccdcSAdam Ford			label = "btn1";
65*25a5ccdcSAdam Ford			linux,code = <BTN_1>;
66*25a5ccdcSAdam Ford			gpios = <&pca6416_1 13 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
67*25a5ccdcSAdam Ford			wakeup-source;
68*25a5ccdcSAdam Ford		};
69*25a5ccdcSAdam Ford
70*25a5ccdcSAdam Ford		button-2 {
71*25a5ccdcSAdam Ford			label = "btn2";
72*25a5ccdcSAdam Ford			linux,code = <BTN_2>;
73*25a5ccdcSAdam Ford			gpios = <&pca6416_1 14 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
74*25a5ccdcSAdam Ford			wakeup-source;
75*25a5ccdcSAdam Ford		};
76*25a5ccdcSAdam Ford
77*25a5ccdcSAdam Ford		button-3 {
78*25a5ccdcSAdam Ford			label = "btn3";
79*25a5ccdcSAdam Ford			linux,code = <BTN_3>;
80*25a5ccdcSAdam Ford			gpios = <&pca6416_1 15 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
81*25a5ccdcSAdam Ford			wakeup-source;
82*25a5ccdcSAdam Ford		};
83*25a5ccdcSAdam Ford	};
84*25a5ccdcSAdam Ford
85*25a5ccdcSAdam Ford	leds {
86*25a5ccdcSAdam Ford		compatible = "gpio-leds";
87*25a5ccdcSAdam Ford		pinctrl-names = "default";
88*25a5ccdcSAdam Ford		pinctrl-0 = <&pinctrl_led3>;
89*25a5ccdcSAdam Ford
90*25a5ccdcSAdam Ford		led-0 {
91*25a5ccdcSAdam Ford			label = "gen_led0";
92*25a5ccdcSAdam Ford			gpios = <&pca6416_1 4 GPIO_ACTIVE_HIGH>;
93*25a5ccdcSAdam Ford			default-state = "off";
94*25a5ccdcSAdam Ford		};
95*25a5ccdcSAdam Ford
96*25a5ccdcSAdam Ford		led-1 {
97*25a5ccdcSAdam Ford			label = "gen_led1";
98*25a5ccdcSAdam Ford			gpios = <&pca6416_1 5 GPIO_ACTIVE_HIGH>;
99*25a5ccdcSAdam Ford			default-state = "off";
100*25a5ccdcSAdam Ford		};
101*25a5ccdcSAdam Ford
102*25a5ccdcSAdam Ford		led-2 {
103*25a5ccdcSAdam Ford			label = "gen_led2";
104*25a5ccdcSAdam Ford			gpios = <&pca6416_1 6 GPIO_ACTIVE_HIGH>;
105*25a5ccdcSAdam Ford			default-state = "off";
106*25a5ccdcSAdam Ford		};
107*25a5ccdcSAdam Ford
108*25a5ccdcSAdam Ford		led-3 {
109*25a5ccdcSAdam Ford			label = "heartbeat";
110*25a5ccdcSAdam Ford			gpios = <&gpio4 28 GPIO_ACTIVE_HIGH>;
111*25a5ccdcSAdam Ford			linux,default-trigger = "heartbeat";
112*25a5ccdcSAdam Ford		};
113*25a5ccdcSAdam Ford	};
114*25a5ccdcSAdam Ford
115*25a5ccdcSAdam Ford	pcie0_refclk: clock-pcie {
116*25a5ccdcSAdam Ford		compatible = "fixed-clock";
117*25a5ccdcSAdam Ford		#clock-cells = <0>;
118*25a5ccdcSAdam Ford		clock-frequency = <100000000>;
119*25a5ccdcSAdam Ford	};
120*25a5ccdcSAdam Ford
121*25a5ccdcSAdam Ford	reg_usdhc2_vmmc: regulator-usdhc2 {
122*25a5ccdcSAdam Ford		compatible = "regulator-fixed";
123*25a5ccdcSAdam Ford		regulator-name = "VSD_3V3";
124*25a5ccdcSAdam Ford		regulator-min-microvolt = <3300000>;
125*25a5ccdcSAdam Ford		regulator-max-microvolt = <3300000>;
126*25a5ccdcSAdam Ford		gpio = <&gpio2 19 GPIO_ACTIVE_HIGH>;
127*25a5ccdcSAdam Ford		enable-active-high;
128*25a5ccdcSAdam Ford		startup-delay-us = <100>;
129*25a5ccdcSAdam Ford		off-on-delay-us = <20000>;
130*25a5ccdcSAdam Ford	};
131*25a5ccdcSAdam Ford
132*25a5ccdcSAdam Ford	reg_usb1_host_vbus: regulator-usb1-vbus {
133*25a5ccdcSAdam Ford		compatible = "regulator-fixed";
134*25a5ccdcSAdam Ford		regulator-name = "usb1_host_vbus";
135*25a5ccdcSAdam Ford		regulator-max-microvolt = <5000000>;
136*25a5ccdcSAdam Ford		regulator-min-microvolt = <5000000>;
137*25a5ccdcSAdam Ford		gpio = <&pca6416_1 0 GPIO_ACTIVE_HIGH>;
138*25a5ccdcSAdam Ford		enable-active-high;
139*25a5ccdcSAdam Ford	};
140*25a5ccdcSAdam Ford};
141*25a5ccdcSAdam Ford
142*25a5ccdcSAdam Ford&ecspi2 {
143*25a5ccdcSAdam Ford	pinctrl-names = "default";
144*25a5ccdcSAdam Ford	pinctrl-0 = <&pinctrl_ecspi2>;
145*25a5ccdcSAdam Ford	cs-gpios = <&gpio5 13 GPIO_ACTIVE_LOW>;
146*25a5ccdcSAdam Ford	status = "okay";
147*25a5ccdcSAdam Ford
148*25a5ccdcSAdam Ford	tpm: tpm@0 {
149*25a5ccdcSAdam Ford		compatible = "infineon,slb9670";
150*25a5ccdcSAdam Ford		reg = <0>;
151*25a5ccdcSAdam Ford		pinctrl-names = "default";
152*25a5ccdcSAdam Ford		pinctrl-0 = <&pinctrl_tpm>;
153*25a5ccdcSAdam Ford		reset-gpios = <&gpio4 0 GPIO_ACTIVE_LOW>;
154*25a5ccdcSAdam Ford		spi-max-frequency = <18500000>;
155*25a5ccdcSAdam Ford	};
156*25a5ccdcSAdam Ford};
157*25a5ccdcSAdam Ford
158*25a5ccdcSAdam Ford&fec {
159*25a5ccdcSAdam Ford	pinctrl-names = "default";
160*25a5ccdcSAdam Ford	pinctrl-0 = <&pinctrl_fec>;
161*25a5ccdcSAdam Ford	phy-mode = "rgmii-id";
162*25a5ccdcSAdam Ford	phy-handle = <&ethphy1>;
163*25a5ccdcSAdam Ford	fsl,magic-packet;
164*25a5ccdcSAdam Ford	status = "okay";
165*25a5ccdcSAdam Ford
166*25a5ccdcSAdam Ford	mdio {
167*25a5ccdcSAdam Ford		#address-cells = <1>;
168*25a5ccdcSAdam Ford		#size-cells = <0>;
169*25a5ccdcSAdam Ford
170*25a5ccdcSAdam Ford		ethphy1: ethernet-phy@3 {
171*25a5ccdcSAdam Ford			compatible = "ethernet-phy-id0022.1640",
172*25a5ccdcSAdam Ford				     "ethernet-phy-ieee802.3-c22";
173*25a5ccdcSAdam Ford			reg = <3>;
174*25a5ccdcSAdam Ford			reset-gpios = <&gpio4 18 GPIO_ACTIVE_LOW>;
175*25a5ccdcSAdam Ford			reset-assert-us = <10000>;
176*25a5ccdcSAdam Ford			reset-deassert-us = <150000>;
177*25a5ccdcSAdam Ford			interrupt-parent = <&gpio4>;
178*25a5ccdcSAdam Ford			interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
179*25a5ccdcSAdam Ford		};
180*25a5ccdcSAdam Ford	};
181*25a5ccdcSAdam Ford};
182*25a5ccdcSAdam Ford
183*25a5ccdcSAdam Ford&flexcan1 {
184*25a5ccdcSAdam Ford	pinctrl-names = "default";
185*25a5ccdcSAdam Ford	pinctrl-0 = <&pinctrl_flexcan1>;
186*25a5ccdcSAdam Ford	status = "okay";
187*25a5ccdcSAdam Ford};
188*25a5ccdcSAdam Ford
189*25a5ccdcSAdam Ford&gpio2 {
190*25a5ccdcSAdam Ford	usb-mux-hog {
191*25a5ccdcSAdam Ford		gpio-hog;
192*25a5ccdcSAdam Ford		gpios = <20 0>;
193*25a5ccdcSAdam Ford		output-low;
194*25a5ccdcSAdam Ford		line-name = "USB-C Mux En";
195*25a5ccdcSAdam Ford	};
196*25a5ccdcSAdam Ford};
197*25a5ccdcSAdam Ford
198*25a5ccdcSAdam Ford&i2c2 {
199*25a5ccdcSAdam Ford	clock-frequency = <384000>;
200*25a5ccdcSAdam Ford	pinctrl-names = "default";
201*25a5ccdcSAdam Ford	pinctrl-0 = <&pinctrl_i2c2>;
202*25a5ccdcSAdam Ford	status = "okay";
203*25a5ccdcSAdam Ford
204*25a5ccdcSAdam Ford	pca6416_3: gpio@20 {
205*25a5ccdcSAdam Ford		compatible = "nxp,pcal6416";
206*25a5ccdcSAdam Ford		reg = <0x20>;
207*25a5ccdcSAdam Ford		gpio-controller;
208*25a5ccdcSAdam Ford		#gpio-cells = <2>;
209*25a5ccdcSAdam Ford		interrupt-parent = <&gpio4>;
210*25a5ccdcSAdam Ford		interrupts = <27 IRQ_TYPE_EDGE_FALLING>;
211*25a5ccdcSAdam Ford		interrupt-controller;
212*25a5ccdcSAdam Ford		#interrupt-cells = <2>;
213*25a5ccdcSAdam Ford	};
214*25a5ccdcSAdam Ford};
215*25a5ccdcSAdam Ford
216*25a5ccdcSAdam Ford&i2c3 {
217*25a5ccdcSAdam Ford	/* Connected to USB Hub */
218*25a5ccdcSAdam Ford	usb-typec@52 {
219*25a5ccdcSAdam Ford		compatible = "nxp,ptn5110";
220*25a5ccdcSAdam Ford		reg = <0x52>;
221*25a5ccdcSAdam Ford		pinctrl-names = "default";
222*25a5ccdcSAdam Ford		pinctrl-0 = <&pinctrl_typec>;
223*25a5ccdcSAdam Ford		interrupt-parent = <&gpio4>;
224*25a5ccdcSAdam Ford		interrupts = <1 IRQ_TYPE_LEVEL_LOW>;
225*25a5ccdcSAdam Ford
226*25a5ccdcSAdam Ford		connector {
227*25a5ccdcSAdam Ford			compatible = "usb-c-connector";
228*25a5ccdcSAdam Ford			label = "USB-C";
229*25a5ccdcSAdam Ford			power-role = "source";
230*25a5ccdcSAdam Ford			data-role = "host";
231*25a5ccdcSAdam Ford			source-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
232*25a5ccdcSAdam Ford		};
233*25a5ccdcSAdam Ford	};
234*25a5ccdcSAdam Ford};
235*25a5ccdcSAdam Ford
236*25a5ccdcSAdam Ford&i2c4 {
237*25a5ccdcSAdam Ford	pinctrl-names = "default";
238*25a5ccdcSAdam Ford	pinctrl-0 = <&pinctrl_i2c4>;
239*25a5ccdcSAdam Ford	clock-frequency = <384000>;
240*25a5ccdcSAdam Ford	status = "okay";
241*25a5ccdcSAdam Ford
242*25a5ccdcSAdam Ford	pca6416: gpio@20 {
243*25a5ccdcSAdam Ford		compatible = "nxp,pcal6416";
244*25a5ccdcSAdam Ford		reg = <0x20>;
245*25a5ccdcSAdam Ford		pinctrl-names = "default";
246*25a5ccdcSAdam Ford		pinctrl-0 = <&pinctrl_pcal6414>;
247*25a5ccdcSAdam Ford		gpio-controller;
248*25a5ccdcSAdam Ford		#gpio-cells = <2>;
249*25a5ccdcSAdam Ford		interrupt-parent = <&gpio4>;
250*25a5ccdcSAdam Ford		interrupts = <27 IRQ_TYPE_EDGE_FALLING>;
251*25a5ccdcSAdam Ford		interrupt-controller;
252*25a5ccdcSAdam Ford		#interrupt-cells = <2>;
253*25a5ccdcSAdam Ford	};
254*25a5ccdcSAdam Ford
255*25a5ccdcSAdam Ford	pca6416_1: gpio@21 {
256*25a5ccdcSAdam Ford		compatible = "nxp,pcal6416";
257*25a5ccdcSAdam Ford		reg = <0x21>;
258*25a5ccdcSAdam Ford		gpio-controller;
259*25a5ccdcSAdam Ford		#gpio-cells = <2>;
260*25a5ccdcSAdam Ford		interrupt-parent = <&gpio4>;
261*25a5ccdcSAdam Ford		interrupts = <27 IRQ_TYPE_EDGE_FALLING>;
262*25a5ccdcSAdam Ford		interrupt-controller;
263*25a5ccdcSAdam Ford		#interrupt-cells = <2>;
264*25a5ccdcSAdam Ford
265*25a5ccdcSAdam Ford		usb-hub-hog {
266*25a5ccdcSAdam Ford			gpio-hog;
267*25a5ccdcSAdam Ford			gpios = <7 0>;
268*25a5ccdcSAdam Ford			output-low;
269*25a5ccdcSAdam Ford			line-name = "USB Hub Enable";
270*25a5ccdcSAdam Ford		};
271*25a5ccdcSAdam Ford	};
272*25a5ccdcSAdam Ford
273*25a5ccdcSAdam Ford	usb-typec@47 {
274*25a5ccdcSAdam Ford		compatible = "ti,hd3ss3220";
275*25a5ccdcSAdam Ford		reg = <0x47>;
276*25a5ccdcSAdam Ford		pinctrl-names = "default";
277*25a5ccdcSAdam Ford		pinctrl-0 = <&pinctrl_hd3ss3220>;
278*25a5ccdcSAdam Ford		interrupt-parent = <&gpio4>;
279*25a5ccdcSAdam Ford		interrupts = <19 IRQ_TYPE_LEVEL_LOW>;
280*25a5ccdcSAdam Ford
281*25a5ccdcSAdam Ford		ports {
282*25a5ccdcSAdam Ford			#address-cells = <1>;
283*25a5ccdcSAdam Ford			#size-cells = <0>;
284*25a5ccdcSAdam Ford
285*25a5ccdcSAdam Ford			port@0 {
286*25a5ccdcSAdam Ford				reg = <0>;
287*25a5ccdcSAdam Ford
288*25a5ccdcSAdam Ford				hd3ss3220_in_ep: endpoint {
289*25a5ccdcSAdam Ford					remote-endpoint = <&ss_ep>;
290*25a5ccdcSAdam Ford				};
291*25a5ccdcSAdam Ford			};
292*25a5ccdcSAdam Ford
293*25a5ccdcSAdam Ford			port@1 {
294*25a5ccdcSAdam Ford				reg = <1>;
295*25a5ccdcSAdam Ford
296*25a5ccdcSAdam Ford				hd3ss3220_out_ep: endpoint {
297*25a5ccdcSAdam Ford					remote-endpoint = <&usb3_role_switch>;
298*25a5ccdcSAdam Ford				};
299*25a5ccdcSAdam Ford			};
300*25a5ccdcSAdam Ford		};
301*25a5ccdcSAdam Ford	};
302*25a5ccdcSAdam Ford};
303*25a5ccdcSAdam Ford
304*25a5ccdcSAdam Ford&pcie {
305*25a5ccdcSAdam Ford	pinctrl-names = "default";
306*25a5ccdcSAdam Ford	pinctrl-0 = <&pinctrl_pcie>;
307*25a5ccdcSAdam Ford	reset-gpio = <&gpio4 21 GPIO_ACTIVE_LOW>;
308*25a5ccdcSAdam Ford	status = "okay";
309*25a5ccdcSAdam Ford};
310*25a5ccdcSAdam Ford
311*25a5ccdcSAdam Ford&pcie_phy {
312*25a5ccdcSAdam Ford	fsl,refclk-pad-mode = <IMX8_PCIE_REFCLK_PAD_INPUT>;
313*25a5ccdcSAdam Ford	clocks = <&pcie0_refclk>;
314*25a5ccdcSAdam Ford	clock-names = "ref";
315*25a5ccdcSAdam Ford	status = "okay";
316*25a5ccdcSAdam Ford};
317*25a5ccdcSAdam Ford
318*25a5ccdcSAdam Ford&snvs_pwrkey {
319*25a5ccdcSAdam Ford	status = "okay";
320*25a5ccdcSAdam Ford};
321*25a5ccdcSAdam Ford
322*25a5ccdcSAdam Ford&uart2 {
323*25a5ccdcSAdam Ford	pinctrl-names = "default";
324*25a5ccdcSAdam Ford	pinctrl-0 = <&pinctrl_uart2>;
325*25a5ccdcSAdam Ford	status = "okay";
326*25a5ccdcSAdam Ford};
327*25a5ccdcSAdam Ford
328*25a5ccdcSAdam Ford&uart3 {
329*25a5ccdcSAdam Ford	pinctrl-names = "default";
330*25a5ccdcSAdam Ford	pinctrl-0 = <&pinctrl_uart3>;
331*25a5ccdcSAdam Ford	assigned-clocks = <&clk IMX8MP_CLK_UART3>;
332*25a5ccdcSAdam Ford	assigned-clock-parents = <&clk IMX8MP_SYS_PLL1_80M>;
333*25a5ccdcSAdam Ford	uart-has-rtscts;
334*25a5ccdcSAdam Ford	status = "okay";
335*25a5ccdcSAdam Ford};
336*25a5ccdcSAdam Ford
337*25a5ccdcSAdam Ford&usb3_0 {
338*25a5ccdcSAdam Ford	status = "okay";
339*25a5ccdcSAdam Ford};
340*25a5ccdcSAdam Ford
341*25a5ccdcSAdam Ford&usb_dwc3_0 {
342*25a5ccdcSAdam Ford	dr_mode = "otg";
343*25a5ccdcSAdam Ford	hnp-disable;
344*25a5ccdcSAdam Ford	srp-disable;
345*25a5ccdcSAdam Ford	adp-disable;
346*25a5ccdcSAdam Ford	usb-role-switch;
347*25a5ccdcSAdam Ford	status = "okay";
348*25a5ccdcSAdam Ford
349*25a5ccdcSAdam Ford	ports {
350*25a5ccdcSAdam Ford		#address-cells = <1>;
351*25a5ccdcSAdam Ford		#size-cells = <0>;
352*25a5ccdcSAdam Ford
353*25a5ccdcSAdam Ford		port@0 {
354*25a5ccdcSAdam Ford			reg = <0>;
355*25a5ccdcSAdam Ford			usb3_hs_ep: endpoint {
356*25a5ccdcSAdam Ford				remote-endpoint = <&hs_ep>;
357*25a5ccdcSAdam Ford			};
358*25a5ccdcSAdam Ford		};
359*25a5ccdcSAdam Ford		port@1 {
360*25a5ccdcSAdam Ford			reg = <1>;
361*25a5ccdcSAdam Ford			usb3_role_switch: endpoint {
362*25a5ccdcSAdam Ford				remote-endpoint = <&hd3ss3220_out_ep>;
363*25a5ccdcSAdam Ford			};
364*25a5ccdcSAdam Ford		};
365*25a5ccdcSAdam Ford	};
366*25a5ccdcSAdam Ford};
367*25a5ccdcSAdam Ford
368*25a5ccdcSAdam Ford&usb3_phy0 {
369*25a5ccdcSAdam Ford	vbus-supply = <&reg_usb1_host_vbus>;
370*25a5ccdcSAdam Ford	status = "okay";
371*25a5ccdcSAdam Ford};
372*25a5ccdcSAdam Ford
373*25a5ccdcSAdam Ford&usb3_1 {
374*25a5ccdcSAdam Ford	status = "okay";
375*25a5ccdcSAdam Ford};
376*25a5ccdcSAdam Ford
377*25a5ccdcSAdam Ford&usb_dwc3_1 {
378*25a5ccdcSAdam Ford	dr_mode = "host";
379*25a5ccdcSAdam Ford	status = "okay";
380*25a5ccdcSAdam Ford};
381*25a5ccdcSAdam Ford
382*25a5ccdcSAdam Ford&usb3_phy1 {
383*25a5ccdcSAdam Ford	status = "okay";
384*25a5ccdcSAdam Ford};
385*25a5ccdcSAdam Ford
386*25a5ccdcSAdam Ford&usdhc2 {
387*25a5ccdcSAdam Ford	pinctrl-names = "default", "state_100mhz", "state_200mhz";
388*25a5ccdcSAdam Ford	pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>;
389*25a5ccdcSAdam Ford	pinctrl-1 = <&pinctrl_usdhc2_100mhz>, <&pinctrl_usdhc2_gpio>;
390*25a5ccdcSAdam Ford	pinctrl-2 = <&pinctrl_usdhc2_200mhz>, <&pinctrl_usdhc2_gpio>;
391*25a5ccdcSAdam Ford	cd-gpios = <&gpio2 12 GPIO_ACTIVE_LOW>;
392*25a5ccdcSAdam Ford	vmmc-supply = <&reg_usdhc2_vmmc>;
393*25a5ccdcSAdam Ford	bus-width = <4>;
394*25a5ccdcSAdam Ford	status = "okay";
395*25a5ccdcSAdam Ford};
396*25a5ccdcSAdam Ford
397*25a5ccdcSAdam Ford&iomuxc {
398*25a5ccdcSAdam Ford	pinctrl_ecspi2: ecspi2grp {
399*25a5ccdcSAdam Ford		fsl,pins = <
400*25a5ccdcSAdam Ford			MX8MP_IOMUXC_ECSPI2_SCLK__ECSPI2_SCLK	0x82
401*25a5ccdcSAdam Ford			MX8MP_IOMUXC_ECSPI2_MOSI__ECSPI2_MOSI	0x82
402*25a5ccdcSAdam Ford			MX8MP_IOMUXC_ECSPI2_MISO__ECSPI2_MISO	0x82
403*25a5ccdcSAdam Ford			MX8MP_IOMUXC_ECSPI2_SS0__GPIO5_IO13	0x40000
404*25a5ccdcSAdam Ford		>;
405*25a5ccdcSAdam Ford	};
406*25a5ccdcSAdam Ford
407*25a5ccdcSAdam Ford	pinctrl_fec: fecgrp {
408*25a5ccdcSAdam Ford		fsl,pins = <
409*25a5ccdcSAdam Ford			MX8MP_IOMUXC_SAI1_RXD2__ENET1_MDC	0x2
410*25a5ccdcSAdam Ford			MX8MP_IOMUXC_SAI1_RXD3__ENET1_MDIO	0x2
411*25a5ccdcSAdam Ford			MX8MP_IOMUXC_SAI1_RXD4__ENET1_RGMII_RD0	0x90
412*25a5ccdcSAdam Ford			MX8MP_IOMUXC_SAI1_RXD5__ENET1_RGMII_RD1	0x90
413*25a5ccdcSAdam Ford			MX8MP_IOMUXC_SAI1_RXD6__ENET1_RGMII_RD2	0x90
414*25a5ccdcSAdam Ford			MX8MP_IOMUXC_SAI1_RXD7__ENET1_RGMII_RD3	0x90
415*25a5ccdcSAdam Ford			MX8MP_IOMUXC_SAI1_TXC__ENET1_RGMII_RXC	0x90
416*25a5ccdcSAdam Ford			MX8MP_IOMUXC_SAI1_TXFS__ENET1_RGMII_RX_CTL	0x90
417*25a5ccdcSAdam Ford			MX8MP_IOMUXC_SAI1_TXD0__ENET1_RGMII_TD0	0x16
418*25a5ccdcSAdam Ford			MX8MP_IOMUXC_SAI1_TXD1__ENET1_RGMII_TD1	0x16
419*25a5ccdcSAdam Ford			MX8MP_IOMUXC_SAI1_TXD2__ENET1_RGMII_TD2	0x16
420*25a5ccdcSAdam Ford			MX8MP_IOMUXC_SAI1_TXD3__ENET1_RGMII_TD3	0x16
421*25a5ccdcSAdam Ford			MX8MP_IOMUXC_SAI1_TXD4__ENET1_RGMII_TX_CTL	0x16
422*25a5ccdcSAdam Ford			MX8MP_IOMUXC_SAI1_TXD5__ENET1_RGMII_TXC	0x16
423*25a5ccdcSAdam Ford			MX8MP_IOMUXC_SAI1_RXD0__GPIO4_IO02	0x140
424*25a5ccdcSAdam Ford			MX8MP_IOMUXC_SAI1_TXD6__GPIO4_IO18	0x10
425*25a5ccdcSAdam Ford		>;
426*25a5ccdcSAdam Ford	};
427*25a5ccdcSAdam Ford
428*25a5ccdcSAdam Ford	pinctrl_flexcan1: flexcan1grp {
429*25a5ccdcSAdam Ford		fsl,pins = <
430*25a5ccdcSAdam Ford			MX8MP_IOMUXC_SPDIF_RX__CAN1_RX	0x154
431*25a5ccdcSAdam Ford			MX8MP_IOMUXC_SPDIF_TX__CAN1_TX	0x154
432*25a5ccdcSAdam Ford		>;
433*25a5ccdcSAdam Ford	};
434*25a5ccdcSAdam Ford
435*25a5ccdcSAdam Ford	pinctrl_hd3ss3220: hd3ss3220grp {
436*25a5ccdcSAdam Ford		fsl,pins = <
437*25a5ccdcSAdam Ford			MX8MP_IOMUXC_SAI1_TXD7__GPIO4_IO19	0x140
438*25a5ccdcSAdam Ford		>;
439*25a5ccdcSAdam Ford	};
440*25a5ccdcSAdam Ford
441*25a5ccdcSAdam Ford	pinctrl_i2c2: i2c2grp {
442*25a5ccdcSAdam Ford		fsl,pins = <
443*25a5ccdcSAdam Ford			MX8MP_IOMUXC_I2C2_SCL__I2C2_SCL	0x400001c2
444*25a5ccdcSAdam Ford			MX8MP_IOMUXC_I2C2_SDA__I2C2_SDA	0x400001c2
445*25a5ccdcSAdam Ford		>;
446*25a5ccdcSAdam Ford	};
447*25a5ccdcSAdam Ford
448*25a5ccdcSAdam Ford	pinctrl_i2c4: i2c4grp {
449*25a5ccdcSAdam Ford		fsl,pins = <
450*25a5ccdcSAdam Ford			MX8MP_IOMUXC_I2C4_SCL__I2C4_SCL	0x400001c2
451*25a5ccdcSAdam Ford			MX8MP_IOMUXC_I2C4_SDA__I2C4_SDA	0x400001c2
452*25a5ccdcSAdam Ford		>;
453*25a5ccdcSAdam Ford	};
454*25a5ccdcSAdam Ford
455*25a5ccdcSAdam Ford	pinctrl_led3: led3grp {
456*25a5ccdcSAdam Ford		fsl,pins = <
457*25a5ccdcSAdam Ford			MX8MP_IOMUXC_SAI3_RXFS__GPIO4_IO28	0x41
458*25a5ccdcSAdam Ford		>;
459*25a5ccdcSAdam Ford	};
460*25a5ccdcSAdam Ford
461*25a5ccdcSAdam Ford	pinctrl_pcal6414: pcal6414-gpiogrp {
462*25a5ccdcSAdam Ford		fsl,pins = <
463*25a5ccdcSAdam Ford			MX8MP_IOMUXC_SAI2_MCLK__GPIO4_IO27	0x10
464*25a5ccdcSAdam Ford		>;
465*25a5ccdcSAdam Ford	};
466*25a5ccdcSAdam Ford
467*25a5ccdcSAdam Ford	pinctrl_pcie: pciegrp {
468*25a5ccdcSAdam Ford		fsl,pins = <
469*25a5ccdcSAdam Ford			MX8MP_IOMUXC_GPIO1_IO05__GPIO1_IO05	0x10 /* PCIe_nDIS */
470*25a5ccdcSAdam Ford			MX8MP_IOMUXC_SAI2_RXFS__GPIO4_IO21 0x10	/* PCIe_nRST */
471*25a5ccdcSAdam Ford		>;
472*25a5ccdcSAdam Ford	};
473*25a5ccdcSAdam Ford
474*25a5ccdcSAdam Ford	pinctrl_reg_usdhc2_vmmc: regusdhc2vmmcgrp {
475*25a5ccdcSAdam Ford		fsl,pins = <
476*25a5ccdcSAdam Ford			MX8MP_IOMUXC_SD2_RESET_B__GPIO2_IO19	0x40
477*25a5ccdcSAdam Ford		>;
478*25a5ccdcSAdam Ford	};
479*25a5ccdcSAdam Ford
480*25a5ccdcSAdam Ford	pinctrl_tpm: tpmgrp {
481*25a5ccdcSAdam Ford		fsl,pins = <
482*25a5ccdcSAdam Ford			MX8MP_IOMUXC_SAI1_RXFS__GPIO4_IO00	0x19 /* Reset */
483*25a5ccdcSAdam Ford			MX8MP_IOMUXC_SAI3_RXC__GPIO4_IO29	0x1d6 /* IRQ */
484*25a5ccdcSAdam Ford		>;
485*25a5ccdcSAdam Ford	};
486*25a5ccdcSAdam Ford
487*25a5ccdcSAdam Ford	pinctrl_typec: typec1grp {
488*25a5ccdcSAdam Ford		fsl,pins = <
489*25a5ccdcSAdam Ford			MX8MP_IOMUXC_SAI1_RXC__GPIO4_IO01	0xc4
490*25a5ccdcSAdam Ford		>;
491*25a5ccdcSAdam Ford	};
492*25a5ccdcSAdam Ford
493*25a5ccdcSAdam Ford	pinctrl_uart2: uart2grp {
494*25a5ccdcSAdam Ford		fsl,pins = <
495*25a5ccdcSAdam Ford			MX8MP_IOMUXC_UART2_RXD__UART2_DCE_RX	0x140
496*25a5ccdcSAdam Ford			MX8MP_IOMUXC_UART2_TXD__UART2_DCE_TX	0x140
497*25a5ccdcSAdam Ford		>;
498*25a5ccdcSAdam Ford	};
499*25a5ccdcSAdam Ford
500*25a5ccdcSAdam Ford	pinctrl_uart3: uart3grp {
501*25a5ccdcSAdam Ford		fsl,pins = <
502*25a5ccdcSAdam Ford			MX8MP_IOMUXC_ECSPI1_SCLK__UART3_DCE_RX		0x140
503*25a5ccdcSAdam Ford			MX8MP_IOMUXC_ECSPI1_MOSI__UART3_DCE_TX		0x140
504*25a5ccdcSAdam Ford			MX8MP_IOMUXC_ECSPI1_SS0__UART3_DCE_RTS		0x140
505*25a5ccdcSAdam Ford			MX8MP_IOMUXC_ECSPI1_MISO__UART3_DCE_CTS		0x140
506*25a5ccdcSAdam Ford		>;
507*25a5ccdcSAdam Ford	};
508*25a5ccdcSAdam Ford
509*25a5ccdcSAdam Ford	pinctrl_usdhc2: usdhc2grp {
510*25a5ccdcSAdam Ford		fsl,pins = <
511*25a5ccdcSAdam Ford			MX8MP_IOMUXC_SD2_CLK__USDHC2_CLK	0x190
512*25a5ccdcSAdam Ford			MX8MP_IOMUXC_SD2_CMD__USDHC2_CMD	0x1d0
513*25a5ccdcSAdam Ford			MX8MP_IOMUXC_SD2_DATA0__USDHC2_DATA0	0x1d0
514*25a5ccdcSAdam Ford			MX8MP_IOMUXC_SD2_DATA1__USDHC2_DATA1	0x1d0
515*25a5ccdcSAdam Ford			MX8MP_IOMUXC_SD2_DATA2__USDHC2_DATA2	0x1d0
516*25a5ccdcSAdam Ford			MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3	0x1d0
517*25a5ccdcSAdam Ford			MX8MP_IOMUXC_GPIO1_IO04__USDHC2_VSELECT	0xc0
518*25a5ccdcSAdam Ford		>;
519*25a5ccdcSAdam Ford	};
520*25a5ccdcSAdam Ford
521*25a5ccdcSAdam Ford	pinctrl_usdhc2_100mhz: usdhc2-100mhzgrp {
522*25a5ccdcSAdam Ford		fsl,pins = <
523*25a5ccdcSAdam Ford			MX8MP_IOMUXC_SD2_CLK__USDHC2_CLK	0x194
524*25a5ccdcSAdam Ford			MX8MP_IOMUXC_SD2_CMD__USDHC2_CMD	0x1d4
525*25a5ccdcSAdam Ford			MX8MP_IOMUXC_SD2_DATA0__USDHC2_DATA0	0x1d4
526*25a5ccdcSAdam Ford			MX8MP_IOMUXC_SD2_DATA1__USDHC2_DATA1	0x1d4
527*25a5ccdcSAdam Ford			MX8MP_IOMUXC_SD2_DATA2__USDHC2_DATA2	0x1d4
528*25a5ccdcSAdam Ford			MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3	0x1d4
529*25a5ccdcSAdam Ford			MX8MP_IOMUXC_GPIO1_IO04__USDHC2_VSELECT 0xc0
530*25a5ccdcSAdam Ford		>;
531*25a5ccdcSAdam Ford	};
532*25a5ccdcSAdam Ford
533*25a5ccdcSAdam Ford	pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp {
534*25a5ccdcSAdam Ford		fsl,pins = <
535*25a5ccdcSAdam Ford			MX8MP_IOMUXC_SD2_CLK__USDHC2_CLK	0x196
536*25a5ccdcSAdam Ford			MX8MP_IOMUXC_SD2_CMD__USDHC2_CMD	0x1d6
537*25a5ccdcSAdam Ford			MX8MP_IOMUXC_SD2_DATA0__USDHC2_DATA0	0x1d6
538*25a5ccdcSAdam Ford			MX8MP_IOMUXC_SD2_DATA1__USDHC2_DATA1	0x1d6
539*25a5ccdcSAdam Ford			MX8MP_IOMUXC_SD2_DATA2__USDHC2_DATA2	0x1d6
540*25a5ccdcSAdam Ford			MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3	0x1d6
541*25a5ccdcSAdam Ford			MX8MP_IOMUXC_GPIO1_IO04__USDHC2_VSELECT 0xc0
542*25a5ccdcSAdam Ford		>;
543*25a5ccdcSAdam Ford	};
544*25a5ccdcSAdam Ford
545*25a5ccdcSAdam Ford	pinctrl_usdhc2_gpio: usdhc2gpiogrp {
546*25a5ccdcSAdam Ford		fsl,pins = <
547*25a5ccdcSAdam Ford			MX8MP_IOMUXC_SD2_CD_B__GPIO2_IO12	0x1c4
548*25a5ccdcSAdam Ford		>;
549*25a5ccdcSAdam Ford	};
550*25a5ccdcSAdam Ford};
551