xref: /openbmc/linux/arch/arm64/boot/dts/freescale/imx8mp-beacon-kit.dts (revision f3c3091b98d5d52df40aaf27f11530701d02ac56)
125a5ccdcSAdam Ford// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
225a5ccdcSAdam Ford/*
325a5ccdcSAdam Ford * Copyright 2023 Logic PD, Inc dba Beacon EmbeddedWorks
425a5ccdcSAdam Ford */
525a5ccdcSAdam Ford
625a5ccdcSAdam Ford/dts-v1/;
725a5ccdcSAdam Ford
825a5ccdcSAdam Ford#include <dt-bindings/usb/pd.h>
925a5ccdcSAdam Ford#include <dt-bindings/phy/phy-imx8-pcie.h>
1025a5ccdcSAdam Ford#include "imx8mp.dtsi"
1125a5ccdcSAdam Ford#include "imx8mp-beacon-som.dtsi"
1225a5ccdcSAdam Ford
1325a5ccdcSAdam Ford/ {
1425a5ccdcSAdam Ford	model = "Beacon EmbeddedWorks i.MX8MPlus Development kit";
1525a5ccdcSAdam Ford	compatible = "beacon,imx8mp-beacon-kit", "fsl,imx8mp";
1625a5ccdcSAdam Ford
1725a5ccdcSAdam Ford	aliases {
1825a5ccdcSAdam Ford		ethernet0 = &eqos;
1925a5ccdcSAdam Ford		ethernet1 = &fec;
2025a5ccdcSAdam Ford	};
2125a5ccdcSAdam Ford
2225a5ccdcSAdam Ford	chosen {
2325a5ccdcSAdam Ford		stdout-path = &uart2;
2425a5ccdcSAdam Ford	};
2525a5ccdcSAdam Ford
2625a5ccdcSAdam Ford	connector {
2725a5ccdcSAdam Ford		compatible = "usb-c-connector";
2825a5ccdcSAdam Ford		label = "USB-C";
2925a5ccdcSAdam Ford		data-role = "dual";
3025a5ccdcSAdam Ford
3125a5ccdcSAdam Ford		ports {
3225a5ccdcSAdam Ford			#address-cells = <1>;
3325a5ccdcSAdam Ford			#size-cells = <0>;
3425a5ccdcSAdam Ford
3525a5ccdcSAdam Ford			port@0 {
3625a5ccdcSAdam Ford				reg = <0>;
3725a5ccdcSAdam Ford
3825a5ccdcSAdam Ford				hs_ep: endpoint {
3925a5ccdcSAdam Ford					remote-endpoint = <&usb3_hs_ep>;
4025a5ccdcSAdam Ford				};
4125a5ccdcSAdam Ford			};
4225a5ccdcSAdam Ford			port@1 {
4325a5ccdcSAdam Ford				reg = <1>;
4425a5ccdcSAdam Ford
4525a5ccdcSAdam Ford				ss_ep: endpoint {
4625a5ccdcSAdam Ford					remote-endpoint = <&hd3ss3220_in_ep>;
4725a5ccdcSAdam Ford				};
4825a5ccdcSAdam Ford			};
4925a5ccdcSAdam Ford		};
5025a5ccdcSAdam Ford	};
5125a5ccdcSAdam Ford
5225a5ccdcSAdam Ford	gpio-keys {
5325a5ccdcSAdam Ford		compatible = "gpio-keys";
5425a5ccdcSAdam Ford		autorepeat;
5525a5ccdcSAdam Ford
5625a5ccdcSAdam Ford		button-0 {
5725a5ccdcSAdam Ford			label = "btn0";
5825a5ccdcSAdam Ford			linux,code = <BTN_0>;
5925a5ccdcSAdam Ford			gpios = <&pca6416_1 12 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
6025a5ccdcSAdam Ford			wakeup-source;
6125a5ccdcSAdam Ford		};
6225a5ccdcSAdam Ford
6325a5ccdcSAdam Ford		button-1 {
6425a5ccdcSAdam Ford			label = "btn1";
6525a5ccdcSAdam Ford			linux,code = <BTN_1>;
6625a5ccdcSAdam Ford			gpios = <&pca6416_1 13 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
6725a5ccdcSAdam Ford			wakeup-source;
6825a5ccdcSAdam Ford		};
6925a5ccdcSAdam Ford
7025a5ccdcSAdam Ford		button-2 {
7125a5ccdcSAdam Ford			label = "btn2";
7225a5ccdcSAdam Ford			linux,code = <BTN_2>;
7325a5ccdcSAdam Ford			gpios = <&pca6416_1 14 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
7425a5ccdcSAdam Ford			wakeup-source;
7525a5ccdcSAdam Ford		};
7625a5ccdcSAdam Ford
7725a5ccdcSAdam Ford		button-3 {
7825a5ccdcSAdam Ford			label = "btn3";
7925a5ccdcSAdam Ford			linux,code = <BTN_3>;
8025a5ccdcSAdam Ford			gpios = <&pca6416_1 15 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
8125a5ccdcSAdam Ford			wakeup-source;
8225a5ccdcSAdam Ford		};
8325a5ccdcSAdam Ford	};
8425a5ccdcSAdam Ford
8525a5ccdcSAdam Ford	leds {
8625a5ccdcSAdam Ford		compatible = "gpio-leds";
8725a5ccdcSAdam Ford		pinctrl-names = "default";
8825a5ccdcSAdam Ford		pinctrl-0 = <&pinctrl_led3>;
8925a5ccdcSAdam Ford
9025a5ccdcSAdam Ford		led-0 {
9125a5ccdcSAdam Ford			label = "gen_led0";
9225a5ccdcSAdam Ford			gpios = <&pca6416_1 4 GPIO_ACTIVE_HIGH>;
9325a5ccdcSAdam Ford			default-state = "off";
9425a5ccdcSAdam Ford		};
9525a5ccdcSAdam Ford
9625a5ccdcSAdam Ford		led-1 {
9725a5ccdcSAdam Ford			label = "gen_led1";
9825a5ccdcSAdam Ford			gpios = <&pca6416_1 5 GPIO_ACTIVE_HIGH>;
9925a5ccdcSAdam Ford			default-state = "off";
10025a5ccdcSAdam Ford		};
10125a5ccdcSAdam Ford
10225a5ccdcSAdam Ford		led-2 {
10325a5ccdcSAdam Ford			label = "gen_led2";
10425a5ccdcSAdam Ford			gpios = <&pca6416_1 6 GPIO_ACTIVE_HIGH>;
10525a5ccdcSAdam Ford			default-state = "off";
10625a5ccdcSAdam Ford		};
10725a5ccdcSAdam Ford
10825a5ccdcSAdam Ford		led-3 {
10925a5ccdcSAdam Ford			label = "heartbeat";
11025a5ccdcSAdam Ford			gpios = <&gpio4 28 GPIO_ACTIVE_HIGH>;
11125a5ccdcSAdam Ford			linux,default-trigger = "heartbeat";
11225a5ccdcSAdam Ford		};
11325a5ccdcSAdam Ford	};
11425a5ccdcSAdam Ford
11525a5ccdcSAdam Ford	pcie0_refclk: clock-pcie {
11625a5ccdcSAdam Ford		compatible = "fixed-clock";
11725a5ccdcSAdam Ford		#clock-cells = <0>;
11825a5ccdcSAdam Ford		clock-frequency = <100000000>;
11925a5ccdcSAdam Ford	};
12025a5ccdcSAdam Ford
12169e2f37aSAdam Ford	reg_audio: regulator-wm8962 {
12269e2f37aSAdam Ford		compatible = "regulator-fixed";
12369e2f37aSAdam Ford		regulator-name = "3v3_aud";
12469e2f37aSAdam Ford		regulator-min-microvolt = <3300000>;
12569e2f37aSAdam Ford		regulator-max-microvolt = <3300000>;
12669e2f37aSAdam Ford		gpio = <&pca6416_1 11 GPIO_ACTIVE_HIGH>;
12769e2f37aSAdam Ford		enable-active-high;
12869e2f37aSAdam Ford	};
12969e2f37aSAdam Ford
13025a5ccdcSAdam Ford	reg_usdhc2_vmmc: regulator-usdhc2 {
13125a5ccdcSAdam Ford		compatible = "regulator-fixed";
13225a5ccdcSAdam Ford		regulator-name = "VSD_3V3";
13325a5ccdcSAdam Ford		regulator-min-microvolt = <3300000>;
13425a5ccdcSAdam Ford		regulator-max-microvolt = <3300000>;
13525a5ccdcSAdam Ford		gpio = <&gpio2 19 GPIO_ACTIVE_HIGH>;
13625a5ccdcSAdam Ford		enable-active-high;
13725a5ccdcSAdam Ford		startup-delay-us = <100>;
13825a5ccdcSAdam Ford		off-on-delay-us = <20000>;
13925a5ccdcSAdam Ford	};
14025a5ccdcSAdam Ford
14125a5ccdcSAdam Ford	reg_usb1_host_vbus: regulator-usb1-vbus {
14225a5ccdcSAdam Ford		compatible = "regulator-fixed";
14325a5ccdcSAdam Ford		regulator-name = "usb1_host_vbus";
14425a5ccdcSAdam Ford		regulator-max-microvolt = <5000000>;
14525a5ccdcSAdam Ford		regulator-min-microvolt = <5000000>;
14625a5ccdcSAdam Ford		gpio = <&pca6416_1 0 GPIO_ACTIVE_HIGH>;
14725a5ccdcSAdam Ford		enable-active-high;
14825a5ccdcSAdam Ford	};
14969e2f37aSAdam Ford
15069e2f37aSAdam Ford	sound-wm8962 {
15169e2f37aSAdam Ford		compatible = "simple-audio-card";
15269e2f37aSAdam Ford		simple-audio-card,name = "wm8962";
15369e2f37aSAdam Ford		simple-audio-card,format = "i2s";
15469e2f37aSAdam Ford		simple-audio-card,widgets = "Headphone", "Headphones",
15569e2f37aSAdam Ford					    "Microphone", "Headset Mic",
15669e2f37aSAdam Ford					    "Speaker", "Speaker";
15769e2f37aSAdam Ford		simple-audio-card,routing = "Headphones", "HPOUTL",
15869e2f37aSAdam Ford					    "Headphones", "HPOUTR",
15969e2f37aSAdam Ford					    "Speaker", "SPKOUTL",
16069e2f37aSAdam Ford					    "Speaker", "SPKOUTR",
16169e2f37aSAdam Ford					    "Headset Mic", "MICBIAS",
16269e2f37aSAdam Ford					    "IN3R", "Headset Mic";
16369e2f37aSAdam Ford
16469e2f37aSAdam Ford		simple-audio-card,cpu {
16569e2f37aSAdam Ford			sound-dai = <&sai3>;
166*228d69f9SAdam Ford			frame-master;
167*228d69f9SAdam Ford			bitclock-master;
16869e2f37aSAdam Ford		};
16969e2f37aSAdam Ford
17069e2f37aSAdam Ford		simple-audio-card,codec {
17169e2f37aSAdam Ford			sound-dai = <&wm8962>;
17269e2f37aSAdam Ford		};
17369e2f37aSAdam Ford	};
17425a5ccdcSAdam Ford};
17525a5ccdcSAdam Ford
17625a5ccdcSAdam Ford&ecspi2 {
17725a5ccdcSAdam Ford	pinctrl-names = "default";
17825a5ccdcSAdam Ford	pinctrl-0 = <&pinctrl_ecspi2>;
17925a5ccdcSAdam Ford	cs-gpios = <&gpio5 13 GPIO_ACTIVE_LOW>;
18025a5ccdcSAdam Ford	status = "okay";
18125a5ccdcSAdam Ford
18225a5ccdcSAdam Ford	tpm: tpm@0 {
18325a5ccdcSAdam Ford		compatible = "infineon,slb9670";
18425a5ccdcSAdam Ford		reg = <0>;
18525a5ccdcSAdam Ford		pinctrl-names = "default";
18625a5ccdcSAdam Ford		pinctrl-0 = <&pinctrl_tpm>;
18725a5ccdcSAdam Ford		reset-gpios = <&gpio4 0 GPIO_ACTIVE_LOW>;
18825a5ccdcSAdam Ford		spi-max-frequency = <18500000>;
18925a5ccdcSAdam Ford	};
19025a5ccdcSAdam Ford};
19125a5ccdcSAdam Ford
19225a5ccdcSAdam Ford&fec {
19325a5ccdcSAdam Ford	pinctrl-names = "default";
19425a5ccdcSAdam Ford	pinctrl-0 = <&pinctrl_fec>;
19525a5ccdcSAdam Ford	phy-mode = "rgmii-id";
19625a5ccdcSAdam Ford	phy-handle = <&ethphy1>;
19725a5ccdcSAdam Ford	fsl,magic-packet;
19825a5ccdcSAdam Ford	status = "okay";
19925a5ccdcSAdam Ford
20025a5ccdcSAdam Ford	mdio {
20125a5ccdcSAdam Ford		#address-cells = <1>;
20225a5ccdcSAdam Ford		#size-cells = <0>;
20325a5ccdcSAdam Ford
20425a5ccdcSAdam Ford		ethphy1: ethernet-phy@3 {
20525a5ccdcSAdam Ford			compatible = "ethernet-phy-id0022.1640",
20625a5ccdcSAdam Ford				     "ethernet-phy-ieee802.3-c22";
20725a5ccdcSAdam Ford			reg = <3>;
20825a5ccdcSAdam Ford			reset-gpios = <&gpio4 18 GPIO_ACTIVE_LOW>;
20925a5ccdcSAdam Ford			reset-assert-us = <10000>;
21025a5ccdcSAdam Ford			reset-deassert-us = <150000>;
21125a5ccdcSAdam Ford			interrupt-parent = <&gpio4>;
21225a5ccdcSAdam Ford			interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
21325a5ccdcSAdam Ford		};
21425a5ccdcSAdam Ford	};
21525a5ccdcSAdam Ford};
21625a5ccdcSAdam Ford
21725a5ccdcSAdam Ford&flexcan1 {
21825a5ccdcSAdam Ford	pinctrl-names = "default";
21925a5ccdcSAdam Ford	pinctrl-0 = <&pinctrl_flexcan1>;
22025a5ccdcSAdam Ford	status = "okay";
22125a5ccdcSAdam Ford};
22225a5ccdcSAdam Ford
22325a5ccdcSAdam Ford&gpio2 {
22425a5ccdcSAdam Ford	usb-mux-hog {
22525a5ccdcSAdam Ford		gpio-hog;
22625a5ccdcSAdam Ford		gpios = <20 0>;
22725a5ccdcSAdam Ford		output-low;
22825a5ccdcSAdam Ford		line-name = "USB-C Mux En";
22925a5ccdcSAdam Ford	};
23025a5ccdcSAdam Ford};
23125a5ccdcSAdam Ford
23225a5ccdcSAdam Ford&i2c2 {
23325a5ccdcSAdam Ford	clock-frequency = <384000>;
23425a5ccdcSAdam Ford	pinctrl-names = "default";
23525a5ccdcSAdam Ford	pinctrl-0 = <&pinctrl_i2c2>;
23625a5ccdcSAdam Ford	status = "okay";
23725a5ccdcSAdam Ford
23825a5ccdcSAdam Ford	pca6416_3: gpio@20 {
23925a5ccdcSAdam Ford		compatible = "nxp,pcal6416";
24025a5ccdcSAdam Ford		reg = <0x20>;
24125a5ccdcSAdam Ford		gpio-controller;
24225a5ccdcSAdam Ford		#gpio-cells = <2>;
24325a5ccdcSAdam Ford		interrupt-parent = <&gpio4>;
24425a5ccdcSAdam Ford		interrupts = <27 IRQ_TYPE_EDGE_FALLING>;
24525a5ccdcSAdam Ford		interrupt-controller;
24625a5ccdcSAdam Ford		#interrupt-cells = <2>;
24725a5ccdcSAdam Ford	};
24825a5ccdcSAdam Ford};
24925a5ccdcSAdam Ford
25025a5ccdcSAdam Ford&i2c3 {
25125a5ccdcSAdam Ford	/* Connected to USB Hub */
25225a5ccdcSAdam Ford	usb-typec@52 {
25325a5ccdcSAdam Ford		compatible = "nxp,ptn5110";
25425a5ccdcSAdam Ford		reg = <0x52>;
25525a5ccdcSAdam Ford		pinctrl-names = "default";
25625a5ccdcSAdam Ford		pinctrl-0 = <&pinctrl_typec>;
25725a5ccdcSAdam Ford		interrupt-parent = <&gpio4>;
25825a5ccdcSAdam Ford		interrupts = <1 IRQ_TYPE_LEVEL_LOW>;
25925a5ccdcSAdam Ford
26025a5ccdcSAdam Ford		connector {
26125a5ccdcSAdam Ford			compatible = "usb-c-connector";
26225a5ccdcSAdam Ford			label = "USB-C";
26325a5ccdcSAdam Ford			power-role = "source";
26425a5ccdcSAdam Ford			data-role = "host";
26525a5ccdcSAdam Ford			source-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
26625a5ccdcSAdam Ford		};
26725a5ccdcSAdam Ford	};
26825a5ccdcSAdam Ford};
26925a5ccdcSAdam Ford
27025a5ccdcSAdam Ford&i2c4 {
27125a5ccdcSAdam Ford	pinctrl-names = "default";
27225a5ccdcSAdam Ford	pinctrl-0 = <&pinctrl_i2c4>;
27325a5ccdcSAdam Ford	clock-frequency = <384000>;
27425a5ccdcSAdam Ford	status = "okay";
27525a5ccdcSAdam Ford
27669e2f37aSAdam Ford	wm8962: audio-codec@1a {
27769e2f37aSAdam Ford		compatible = "wlf,wm8962";
27869e2f37aSAdam Ford		reg = <0x1a>;
27969e2f37aSAdam Ford		pinctrl-names = "default";
28069e2f37aSAdam Ford		pinctrl-0 = <&pinctrl_wm8962>;
28169e2f37aSAdam Ford		clocks = <&clk IMX8MP_CLK_IPP_DO_CLKO1>;
28269e2f37aSAdam Ford		assigned-clocks = <&clk IMX8MP_CLK_IPP_DO_CLKO1>;
28369e2f37aSAdam Ford		assigned-clock-parents = <&clk IMX8MP_AUDIO_PLL2_OUT>;
28469e2f37aSAdam Ford		assigned-clock-rates = <22576000>;
28569e2f37aSAdam Ford		DCVDD-supply = <&reg_audio>;
28669e2f37aSAdam Ford		DBVDD-supply = <&reg_audio>;
28769e2f37aSAdam Ford		AVDD-supply = <&reg_audio>;
28869e2f37aSAdam Ford		CPVDD-supply = <&reg_audio>;
28969e2f37aSAdam Ford		MICVDD-supply = <&reg_audio>;
29069e2f37aSAdam Ford		PLLVDD-supply = <&reg_audio>;
29169e2f37aSAdam Ford		SPKVDD1-supply = <&reg_audio>;
29269e2f37aSAdam Ford		SPKVDD2-supply = <&reg_audio>;
29369e2f37aSAdam Ford		gpio-cfg = <
29469e2f37aSAdam Ford			0x0000 /* 0:Default */
29569e2f37aSAdam Ford			0x0000 /* 1:Default */
29669e2f37aSAdam Ford			0x0000 /* 2:FN_DMICCLK */
29769e2f37aSAdam Ford			0x0000 /* 3:Default */
29869e2f37aSAdam Ford			0x0000 /* 4:FN_DMICCDAT */
29969e2f37aSAdam Ford			0x0000 /* 5:Default */
30069e2f37aSAdam Ford		>;
30169e2f37aSAdam Ford		#sound-dai-cells = <0>;
30269e2f37aSAdam Ford	};
30369e2f37aSAdam Ford
30425a5ccdcSAdam Ford	pca6416: gpio@20 {
30525a5ccdcSAdam Ford		compatible = "nxp,pcal6416";
30625a5ccdcSAdam Ford		reg = <0x20>;
30725a5ccdcSAdam Ford		pinctrl-names = "default";
30825a5ccdcSAdam Ford		pinctrl-0 = <&pinctrl_pcal6414>;
30925a5ccdcSAdam Ford		gpio-controller;
31025a5ccdcSAdam Ford		#gpio-cells = <2>;
31125a5ccdcSAdam Ford		interrupt-parent = <&gpio4>;
31225a5ccdcSAdam Ford		interrupts = <27 IRQ_TYPE_EDGE_FALLING>;
31325a5ccdcSAdam Ford		interrupt-controller;
31425a5ccdcSAdam Ford		#interrupt-cells = <2>;
31525a5ccdcSAdam Ford	};
31625a5ccdcSAdam Ford
31725a5ccdcSAdam Ford	pca6416_1: gpio@21 {
31825a5ccdcSAdam Ford		compatible = "nxp,pcal6416";
31925a5ccdcSAdam Ford		reg = <0x21>;
32025a5ccdcSAdam Ford		gpio-controller;
32125a5ccdcSAdam Ford		#gpio-cells = <2>;
32225a5ccdcSAdam Ford		interrupt-parent = <&gpio4>;
32325a5ccdcSAdam Ford		interrupts = <27 IRQ_TYPE_EDGE_FALLING>;
32425a5ccdcSAdam Ford		interrupt-controller;
32525a5ccdcSAdam Ford		#interrupt-cells = <2>;
32625a5ccdcSAdam Ford
32725a5ccdcSAdam Ford		usb-hub-hog {
32825a5ccdcSAdam Ford			gpio-hog;
32925a5ccdcSAdam Ford			gpios = <7 0>;
33025a5ccdcSAdam Ford			output-low;
33125a5ccdcSAdam Ford			line-name = "USB Hub Enable";
33225a5ccdcSAdam Ford		};
33325a5ccdcSAdam Ford	};
33425a5ccdcSAdam Ford
33525a5ccdcSAdam Ford	usb-typec@47 {
33625a5ccdcSAdam Ford		compatible = "ti,hd3ss3220";
33725a5ccdcSAdam Ford		reg = <0x47>;
33825a5ccdcSAdam Ford		pinctrl-names = "default";
33925a5ccdcSAdam Ford		pinctrl-0 = <&pinctrl_hd3ss3220>;
34025a5ccdcSAdam Ford		interrupt-parent = <&gpio4>;
34125a5ccdcSAdam Ford		interrupts = <19 IRQ_TYPE_LEVEL_LOW>;
34225a5ccdcSAdam Ford
34325a5ccdcSAdam Ford		ports {
34425a5ccdcSAdam Ford			#address-cells = <1>;
34525a5ccdcSAdam Ford			#size-cells = <0>;
34625a5ccdcSAdam Ford
34725a5ccdcSAdam Ford			port@0 {
34825a5ccdcSAdam Ford				reg = <0>;
34925a5ccdcSAdam Ford
35025a5ccdcSAdam Ford				hd3ss3220_in_ep: endpoint {
35125a5ccdcSAdam Ford					remote-endpoint = <&ss_ep>;
35225a5ccdcSAdam Ford				};
35325a5ccdcSAdam Ford			};
35425a5ccdcSAdam Ford
35525a5ccdcSAdam Ford			port@1 {
35625a5ccdcSAdam Ford				reg = <1>;
35725a5ccdcSAdam Ford
35825a5ccdcSAdam Ford				hd3ss3220_out_ep: endpoint {
35925a5ccdcSAdam Ford					remote-endpoint = <&usb3_role_switch>;
36025a5ccdcSAdam Ford				};
36125a5ccdcSAdam Ford			};
36225a5ccdcSAdam Ford		};
36325a5ccdcSAdam Ford	};
36425a5ccdcSAdam Ford};
36525a5ccdcSAdam Ford
36625a5ccdcSAdam Ford&pcie {
36725a5ccdcSAdam Ford	pinctrl-names = "default";
36825a5ccdcSAdam Ford	pinctrl-0 = <&pinctrl_pcie>;
36925a5ccdcSAdam Ford	reset-gpio = <&gpio4 21 GPIO_ACTIVE_LOW>;
37025a5ccdcSAdam Ford	status = "okay";
37125a5ccdcSAdam Ford};
37225a5ccdcSAdam Ford
37325a5ccdcSAdam Ford&pcie_phy {
37425a5ccdcSAdam Ford	fsl,refclk-pad-mode = <IMX8_PCIE_REFCLK_PAD_INPUT>;
37525a5ccdcSAdam Ford	clocks = <&pcie0_refclk>;
37625a5ccdcSAdam Ford	clock-names = "ref";
37725a5ccdcSAdam Ford	status = "okay";
37825a5ccdcSAdam Ford};
37925a5ccdcSAdam Ford
38069e2f37aSAdam Ford&sai3 {
38169e2f37aSAdam Ford	pinctrl-names = "default";
38269e2f37aSAdam Ford	pinctrl-0 = <&pinctrl_sai3>;
383*228d69f9SAdam Ford	assigned-clocks = <&clk IMX8MP_CLK_SAI3>;
384*228d69f9SAdam Ford	assigned-clock-parents = <&clk IMX8MP_AUDIO_PLL1_OUT>;
385*228d69f9SAdam Ford	assigned-clock-rates = <12288000>;
38669e2f37aSAdam Ford	fsl,sai-mclk-direction-output;
38769e2f37aSAdam Ford	status = "okay";
38869e2f37aSAdam Ford};
38969e2f37aSAdam Ford
39025a5ccdcSAdam Ford&snvs_pwrkey {
39125a5ccdcSAdam Ford	status = "okay";
39225a5ccdcSAdam Ford};
39325a5ccdcSAdam Ford
39425a5ccdcSAdam Ford&uart2 {
39525a5ccdcSAdam Ford	pinctrl-names = "default";
39625a5ccdcSAdam Ford	pinctrl-0 = <&pinctrl_uart2>;
39725a5ccdcSAdam Ford	status = "okay";
39825a5ccdcSAdam Ford};
39925a5ccdcSAdam Ford
40025a5ccdcSAdam Ford&uart3 {
40125a5ccdcSAdam Ford	pinctrl-names = "default";
40225a5ccdcSAdam Ford	pinctrl-0 = <&pinctrl_uart3>;
40325a5ccdcSAdam Ford	assigned-clocks = <&clk IMX8MP_CLK_UART3>;
40425a5ccdcSAdam Ford	assigned-clock-parents = <&clk IMX8MP_SYS_PLL1_80M>;
40525a5ccdcSAdam Ford	uart-has-rtscts;
40625a5ccdcSAdam Ford	status = "okay";
40725a5ccdcSAdam Ford};
40825a5ccdcSAdam Ford
40925a5ccdcSAdam Ford&usb3_0 {
41025a5ccdcSAdam Ford	status = "okay";
41125a5ccdcSAdam Ford};
41225a5ccdcSAdam Ford
41325a5ccdcSAdam Ford&usb_dwc3_0 {
41425a5ccdcSAdam Ford	dr_mode = "otg";
41525a5ccdcSAdam Ford	hnp-disable;
41625a5ccdcSAdam Ford	srp-disable;
41725a5ccdcSAdam Ford	adp-disable;
41825a5ccdcSAdam Ford	usb-role-switch;
41925a5ccdcSAdam Ford	status = "okay";
42025a5ccdcSAdam Ford
42125a5ccdcSAdam Ford	ports {
42225a5ccdcSAdam Ford		#address-cells = <1>;
42325a5ccdcSAdam Ford		#size-cells = <0>;
42425a5ccdcSAdam Ford
42525a5ccdcSAdam Ford		port@0 {
42625a5ccdcSAdam Ford			reg = <0>;
42725a5ccdcSAdam Ford			usb3_hs_ep: endpoint {
42825a5ccdcSAdam Ford				remote-endpoint = <&hs_ep>;
42925a5ccdcSAdam Ford			};
43025a5ccdcSAdam Ford		};
43125a5ccdcSAdam Ford		port@1 {
43225a5ccdcSAdam Ford			reg = <1>;
43325a5ccdcSAdam Ford			usb3_role_switch: endpoint {
43425a5ccdcSAdam Ford				remote-endpoint = <&hd3ss3220_out_ep>;
43525a5ccdcSAdam Ford			};
43625a5ccdcSAdam Ford		};
43725a5ccdcSAdam Ford	};
43825a5ccdcSAdam Ford};
43925a5ccdcSAdam Ford
44025a5ccdcSAdam Ford&usb3_phy0 {
44125a5ccdcSAdam Ford	vbus-supply = <&reg_usb1_host_vbus>;
44225a5ccdcSAdam Ford	status = "okay";
44325a5ccdcSAdam Ford};
44425a5ccdcSAdam Ford
44525a5ccdcSAdam Ford&usb3_1 {
44625a5ccdcSAdam Ford	status = "okay";
44725a5ccdcSAdam Ford};
44825a5ccdcSAdam Ford
44925a5ccdcSAdam Ford&usb_dwc3_1 {
45025a5ccdcSAdam Ford	dr_mode = "host";
45125a5ccdcSAdam Ford	status = "okay";
45225a5ccdcSAdam Ford};
45325a5ccdcSAdam Ford
45425a5ccdcSAdam Ford&usb3_phy1 {
45525a5ccdcSAdam Ford	status = "okay";
45625a5ccdcSAdam Ford};
45725a5ccdcSAdam Ford
45825a5ccdcSAdam Ford&usdhc2 {
45925a5ccdcSAdam Ford	pinctrl-names = "default", "state_100mhz", "state_200mhz";
46025a5ccdcSAdam Ford	pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>;
46125a5ccdcSAdam Ford	pinctrl-1 = <&pinctrl_usdhc2_100mhz>, <&pinctrl_usdhc2_gpio>;
46225a5ccdcSAdam Ford	pinctrl-2 = <&pinctrl_usdhc2_200mhz>, <&pinctrl_usdhc2_gpio>;
46325a5ccdcSAdam Ford	cd-gpios = <&gpio2 12 GPIO_ACTIVE_LOW>;
46425a5ccdcSAdam Ford	vmmc-supply = <&reg_usdhc2_vmmc>;
46525a5ccdcSAdam Ford	bus-width = <4>;
46625a5ccdcSAdam Ford	status = "okay";
46725a5ccdcSAdam Ford};
46825a5ccdcSAdam Ford
46925a5ccdcSAdam Ford&iomuxc {
47025a5ccdcSAdam Ford	pinctrl_ecspi2: ecspi2grp {
47125a5ccdcSAdam Ford		fsl,pins = <
47225a5ccdcSAdam Ford			MX8MP_IOMUXC_ECSPI2_SCLK__ECSPI2_SCLK	0x82
47325a5ccdcSAdam Ford			MX8MP_IOMUXC_ECSPI2_MOSI__ECSPI2_MOSI	0x82
47425a5ccdcSAdam Ford			MX8MP_IOMUXC_ECSPI2_MISO__ECSPI2_MISO	0x82
47525a5ccdcSAdam Ford			MX8MP_IOMUXC_ECSPI2_SS0__GPIO5_IO13	0x40000
47625a5ccdcSAdam Ford		>;
47725a5ccdcSAdam Ford	};
47825a5ccdcSAdam Ford
47925a5ccdcSAdam Ford	pinctrl_fec: fecgrp {
48025a5ccdcSAdam Ford		fsl,pins = <
48125a5ccdcSAdam Ford			MX8MP_IOMUXC_SAI1_RXD2__ENET1_MDC	0x2
48225a5ccdcSAdam Ford			MX8MP_IOMUXC_SAI1_RXD3__ENET1_MDIO	0x2
48325a5ccdcSAdam Ford			MX8MP_IOMUXC_SAI1_RXD4__ENET1_RGMII_RD0	0x90
48425a5ccdcSAdam Ford			MX8MP_IOMUXC_SAI1_RXD5__ENET1_RGMII_RD1	0x90
48525a5ccdcSAdam Ford			MX8MP_IOMUXC_SAI1_RXD6__ENET1_RGMII_RD2	0x90
48625a5ccdcSAdam Ford			MX8MP_IOMUXC_SAI1_RXD7__ENET1_RGMII_RD3	0x90
48725a5ccdcSAdam Ford			MX8MP_IOMUXC_SAI1_TXC__ENET1_RGMII_RXC	0x90
48825a5ccdcSAdam Ford			MX8MP_IOMUXC_SAI1_TXFS__ENET1_RGMII_RX_CTL	0x90
48925a5ccdcSAdam Ford			MX8MP_IOMUXC_SAI1_TXD0__ENET1_RGMII_TD0	0x16
49025a5ccdcSAdam Ford			MX8MP_IOMUXC_SAI1_TXD1__ENET1_RGMII_TD1	0x16
49125a5ccdcSAdam Ford			MX8MP_IOMUXC_SAI1_TXD2__ENET1_RGMII_TD2	0x16
49225a5ccdcSAdam Ford			MX8MP_IOMUXC_SAI1_TXD3__ENET1_RGMII_TD3	0x16
49325a5ccdcSAdam Ford			MX8MP_IOMUXC_SAI1_TXD4__ENET1_RGMII_TX_CTL	0x16
49425a5ccdcSAdam Ford			MX8MP_IOMUXC_SAI1_TXD5__ENET1_RGMII_TXC	0x16
49525a5ccdcSAdam Ford			MX8MP_IOMUXC_SAI1_RXD0__GPIO4_IO02	0x140
49625a5ccdcSAdam Ford			MX8MP_IOMUXC_SAI1_TXD6__GPIO4_IO18	0x10
49725a5ccdcSAdam Ford		>;
49825a5ccdcSAdam Ford	};
49925a5ccdcSAdam Ford
50025a5ccdcSAdam Ford	pinctrl_flexcan1: flexcan1grp {
50125a5ccdcSAdam Ford		fsl,pins = <
50225a5ccdcSAdam Ford			MX8MP_IOMUXC_SPDIF_RX__CAN1_RX	0x154
50325a5ccdcSAdam Ford			MX8MP_IOMUXC_SPDIF_TX__CAN1_TX	0x154
50425a5ccdcSAdam Ford		>;
50525a5ccdcSAdam Ford	};
50625a5ccdcSAdam Ford
50725a5ccdcSAdam Ford	pinctrl_hd3ss3220: hd3ss3220grp {
50825a5ccdcSAdam Ford		fsl,pins = <
50925a5ccdcSAdam Ford			MX8MP_IOMUXC_SAI1_TXD7__GPIO4_IO19	0x140
51025a5ccdcSAdam Ford		>;
51125a5ccdcSAdam Ford	};
51225a5ccdcSAdam Ford
51325a5ccdcSAdam Ford	pinctrl_i2c2: i2c2grp {
51425a5ccdcSAdam Ford		fsl,pins = <
51525a5ccdcSAdam Ford			MX8MP_IOMUXC_I2C2_SCL__I2C2_SCL	0x400001c2
51625a5ccdcSAdam Ford			MX8MP_IOMUXC_I2C2_SDA__I2C2_SDA	0x400001c2
51725a5ccdcSAdam Ford		>;
51825a5ccdcSAdam Ford	};
51925a5ccdcSAdam Ford
52025a5ccdcSAdam Ford	pinctrl_i2c4: i2c4grp {
52125a5ccdcSAdam Ford		fsl,pins = <
52225a5ccdcSAdam Ford			MX8MP_IOMUXC_I2C4_SCL__I2C4_SCL	0x400001c2
52325a5ccdcSAdam Ford			MX8MP_IOMUXC_I2C4_SDA__I2C4_SDA	0x400001c2
52425a5ccdcSAdam Ford		>;
52525a5ccdcSAdam Ford	};
52625a5ccdcSAdam Ford
52725a5ccdcSAdam Ford	pinctrl_led3: led3grp {
52825a5ccdcSAdam Ford		fsl,pins = <
52925a5ccdcSAdam Ford			MX8MP_IOMUXC_SAI3_RXFS__GPIO4_IO28	0x41
53025a5ccdcSAdam Ford		>;
53125a5ccdcSAdam Ford	};
53225a5ccdcSAdam Ford
53325a5ccdcSAdam Ford	pinctrl_pcal6414: pcal6414-gpiogrp {
53425a5ccdcSAdam Ford		fsl,pins = <
53525a5ccdcSAdam Ford			MX8MP_IOMUXC_SAI2_MCLK__GPIO4_IO27	0x10
53625a5ccdcSAdam Ford		>;
53725a5ccdcSAdam Ford	};
53825a5ccdcSAdam Ford
53925a5ccdcSAdam Ford	pinctrl_pcie: pciegrp {
54025a5ccdcSAdam Ford		fsl,pins = <
54125a5ccdcSAdam Ford			MX8MP_IOMUXC_GPIO1_IO05__GPIO1_IO05	0x10 /* PCIe_nDIS */
54225a5ccdcSAdam Ford			MX8MP_IOMUXC_SAI2_RXFS__GPIO4_IO21 0x10	/* PCIe_nRST */
54325a5ccdcSAdam Ford		>;
54425a5ccdcSAdam Ford	};
54525a5ccdcSAdam Ford
54625a5ccdcSAdam Ford	pinctrl_reg_usdhc2_vmmc: regusdhc2vmmcgrp {
54725a5ccdcSAdam Ford		fsl,pins = <
54825a5ccdcSAdam Ford			MX8MP_IOMUXC_SD2_RESET_B__GPIO2_IO19	0x40
54925a5ccdcSAdam Ford		>;
55025a5ccdcSAdam Ford	};
55125a5ccdcSAdam Ford
55269e2f37aSAdam Ford	pinctrl_sai3: sai3grp {
55369e2f37aSAdam Ford		fsl,pins = <
55469e2f37aSAdam Ford			MX8MP_IOMUXC_SAI3_TXFS__AUDIOMIX_SAI3_TX_SYNC	0xd6
55569e2f37aSAdam Ford			MX8MP_IOMUXC_SAI3_TXC__AUDIOMIX_SAI3_TX_BCLK	0xd6
55669e2f37aSAdam Ford			MX8MP_IOMUXC_SAI3_RXD__AUDIOMIX_SAI3_RX_DATA00	0xd6
55769e2f37aSAdam Ford			MX8MP_IOMUXC_SAI3_TXD__AUDIOMIX_SAI3_TX_DATA00	0xd6
55869e2f37aSAdam Ford			MX8MP_IOMUXC_SAI3_MCLK__AUDIOMIX_SAI3_MCLK	0xd6
55969e2f37aSAdam Ford		>;
56069e2f37aSAdam Ford	};
56169e2f37aSAdam Ford
56225a5ccdcSAdam Ford	pinctrl_tpm: tpmgrp {
56325a5ccdcSAdam Ford		fsl,pins = <
56425a5ccdcSAdam Ford			MX8MP_IOMUXC_SAI1_RXFS__GPIO4_IO00	0x19 /* Reset */
56525a5ccdcSAdam Ford			MX8MP_IOMUXC_SAI3_RXC__GPIO4_IO29	0x1d6 /* IRQ */
56625a5ccdcSAdam Ford		>;
56725a5ccdcSAdam Ford	};
56825a5ccdcSAdam Ford
56925a5ccdcSAdam Ford	pinctrl_typec: typec1grp {
57025a5ccdcSAdam Ford		fsl,pins = <
57125a5ccdcSAdam Ford			MX8MP_IOMUXC_SAI1_RXC__GPIO4_IO01	0xc4
57225a5ccdcSAdam Ford		>;
57325a5ccdcSAdam Ford	};
57425a5ccdcSAdam Ford
57525a5ccdcSAdam Ford	pinctrl_uart2: uart2grp {
57625a5ccdcSAdam Ford		fsl,pins = <
57725a5ccdcSAdam Ford			MX8MP_IOMUXC_UART2_RXD__UART2_DCE_RX	0x140
57825a5ccdcSAdam Ford			MX8MP_IOMUXC_UART2_TXD__UART2_DCE_TX	0x140
57925a5ccdcSAdam Ford		>;
58025a5ccdcSAdam Ford	};
58125a5ccdcSAdam Ford
58225a5ccdcSAdam Ford	pinctrl_uart3: uart3grp {
58325a5ccdcSAdam Ford		fsl,pins = <
58425a5ccdcSAdam Ford			MX8MP_IOMUXC_ECSPI1_SCLK__UART3_DCE_RX		0x140
58525a5ccdcSAdam Ford			MX8MP_IOMUXC_ECSPI1_MOSI__UART3_DCE_TX		0x140
58625a5ccdcSAdam Ford			MX8MP_IOMUXC_ECSPI1_SS0__UART3_DCE_RTS		0x140
58725a5ccdcSAdam Ford			MX8MP_IOMUXC_ECSPI1_MISO__UART3_DCE_CTS		0x140
58825a5ccdcSAdam Ford		>;
58925a5ccdcSAdam Ford	};
59025a5ccdcSAdam Ford
59125a5ccdcSAdam Ford	pinctrl_usdhc2: usdhc2grp {
59225a5ccdcSAdam Ford		fsl,pins = <
59325a5ccdcSAdam Ford			MX8MP_IOMUXC_SD2_CLK__USDHC2_CLK	0x190
59425a5ccdcSAdam Ford			MX8MP_IOMUXC_SD2_CMD__USDHC2_CMD	0x1d0
59525a5ccdcSAdam Ford			MX8MP_IOMUXC_SD2_DATA0__USDHC2_DATA0	0x1d0
59625a5ccdcSAdam Ford			MX8MP_IOMUXC_SD2_DATA1__USDHC2_DATA1	0x1d0
59725a5ccdcSAdam Ford			MX8MP_IOMUXC_SD2_DATA2__USDHC2_DATA2	0x1d0
59825a5ccdcSAdam Ford			MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3	0x1d0
59925a5ccdcSAdam Ford			MX8MP_IOMUXC_GPIO1_IO04__USDHC2_VSELECT	0xc0
60025a5ccdcSAdam Ford		>;
60125a5ccdcSAdam Ford	};
60225a5ccdcSAdam Ford
60325a5ccdcSAdam Ford	pinctrl_usdhc2_100mhz: usdhc2-100mhzgrp {
60425a5ccdcSAdam Ford		fsl,pins = <
60525a5ccdcSAdam Ford			MX8MP_IOMUXC_SD2_CLK__USDHC2_CLK	0x194
60625a5ccdcSAdam Ford			MX8MP_IOMUXC_SD2_CMD__USDHC2_CMD	0x1d4
60725a5ccdcSAdam Ford			MX8MP_IOMUXC_SD2_DATA0__USDHC2_DATA0	0x1d4
60825a5ccdcSAdam Ford			MX8MP_IOMUXC_SD2_DATA1__USDHC2_DATA1	0x1d4
60925a5ccdcSAdam Ford			MX8MP_IOMUXC_SD2_DATA2__USDHC2_DATA2	0x1d4
61025a5ccdcSAdam Ford			MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3	0x1d4
61125a5ccdcSAdam Ford			MX8MP_IOMUXC_GPIO1_IO04__USDHC2_VSELECT 0xc0
61225a5ccdcSAdam Ford		>;
61325a5ccdcSAdam Ford	};
61425a5ccdcSAdam Ford
61525a5ccdcSAdam Ford	pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp {
61625a5ccdcSAdam Ford		fsl,pins = <
61725a5ccdcSAdam Ford			MX8MP_IOMUXC_SD2_CLK__USDHC2_CLK	0x196
61825a5ccdcSAdam Ford			MX8MP_IOMUXC_SD2_CMD__USDHC2_CMD	0x1d6
61925a5ccdcSAdam Ford			MX8MP_IOMUXC_SD2_DATA0__USDHC2_DATA0	0x1d6
62025a5ccdcSAdam Ford			MX8MP_IOMUXC_SD2_DATA1__USDHC2_DATA1	0x1d6
62125a5ccdcSAdam Ford			MX8MP_IOMUXC_SD2_DATA2__USDHC2_DATA2	0x1d6
62225a5ccdcSAdam Ford			MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3	0x1d6
62325a5ccdcSAdam Ford			MX8MP_IOMUXC_GPIO1_IO04__USDHC2_VSELECT 0xc0
62425a5ccdcSAdam Ford		>;
62525a5ccdcSAdam Ford	};
62625a5ccdcSAdam Ford
62725a5ccdcSAdam Ford	pinctrl_usdhc2_gpio: usdhc2gpiogrp {
62825a5ccdcSAdam Ford		fsl,pins = <
62925a5ccdcSAdam Ford			MX8MP_IOMUXC_SD2_CD_B__GPIO2_IO12	0x1c4
63025a5ccdcSAdam Ford		>;
63125a5ccdcSAdam Ford	};
63269e2f37aSAdam Ford
63369e2f37aSAdam Ford	pinctrl_wm8962: wm8962grp {
63469e2f37aSAdam Ford		fsl,pins = <
63569e2f37aSAdam Ford			MX8MP_IOMUXC_GPIO1_IO14__CCM_CLKO1	0x59
63669e2f37aSAdam Ford		>;
63769e2f37aSAdam Ford	};
63825a5ccdcSAdam Ford};
639