xref: /linux/arch/arm64/boot/dts/freescale/imx8mp-sr-som.dtsi (revision 4f38da1f027ea2c9f01bb71daa7a299c191b6940)
1*a009c0c6SJosua Mayer// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2*a009c0c6SJosua Mayer/*
3*a009c0c6SJosua Mayer * Copyright 2025 Josua Mayer <josua@solid-run.com>
4*a009c0c6SJosua Mayer */
5*a009c0c6SJosua Mayer
6*a009c0c6SJosua Mayer#include "imx8mp.dtsi"
7*a009c0c6SJosua Mayer
8*a009c0c6SJosua Mayer/ {
9*a009c0c6SJosua Mayer	model = "SolidRun i.MX8MP SoM";
10*a009c0c6SJosua Mayer	compatible = "solidrun,imx8mp-sr-som", "fsl,imx8mp";
11*a009c0c6SJosua Mayer
12*a009c0c6SJosua Mayer	chosen {
13*a009c0c6SJosua Mayer		bootargs = "earlycon=ec_imx6q,0x30890000,115200";
14*a009c0c6SJosua Mayer		stdout-path = &uart2;
15*a009c0c6SJosua Mayer	};
16*a009c0c6SJosua Mayer
17*a009c0c6SJosua Mayer	memory@40000000 {
18*a009c0c6SJosua Mayer		device_type = "memory";
19*a009c0c6SJosua Mayer		reg = <0x0 0x40000000 0 0xc0000000>,
20*a009c0c6SJosua Mayer		      <0x1 0x00000000 0 0xc0000000>;
21*a009c0c6SJosua Mayer	};
22*a009c0c6SJosua Mayer
23*a009c0c6SJosua Mayer	usdhc1_pwrseq: usdhc1-pwrseq {
24*a009c0c6SJosua Mayer		compatible = "mmc-pwrseq-simple";
25*a009c0c6SJosua Mayer		reset-gpios = <&gpio2 11 GPIO_ACTIVE_LOW>;
26*a009c0c6SJosua Mayer	};
27*a009c0c6SJosua Mayer
28*a009c0c6SJosua Mayer	v_1_8: regulator-1-8 {
29*a009c0c6SJosua Mayer		compatible = "regulator-fixed";
30*a009c0c6SJosua Mayer		regulator-name = "1v8";
31*a009c0c6SJosua Mayer		regulator-min-microvolt = <1800000>;
32*a009c0c6SJosua Mayer		regulator-max-microvolt = <1800000>;
33*a009c0c6SJosua Mayer	};
34*a009c0c6SJosua Mayer
35*a009c0c6SJosua Mayer	v_3_3: regulator-3-3 {
36*a009c0c6SJosua Mayer		compatible = "regulator-fixed";
37*a009c0c6SJosua Mayer		regulator-name = "3v3";
38*a009c0c6SJosua Mayer		regulator-min-microvolt = <3300000>;
39*a009c0c6SJosua Mayer		regulator-max-microvolt = <3300000>;
40*a009c0c6SJosua Mayer	};
41*a009c0c6SJosua Mayer};
42*a009c0c6SJosua Mayer
43*a009c0c6SJosua Mayer/*
44*a009c0c6SJosua Mayer * Reserve all physical memory from within the first 1GB of DDR address
45*a009c0c6SJosua Mayer * space to avoid panic on low memory systems.
46*a009c0c6SJosua Mayer */
47*a009c0c6SJosua Mayer&dsp_reserved {
48*a009c0c6SJosua Mayer	reg = <0 0x6f000000 0 0x1000000>;
49*a009c0c6SJosua Mayer};
50*a009c0c6SJosua Mayer
51*a009c0c6SJosua Mayer&eqos {
52*a009c0c6SJosua Mayer	pinctrl-names = "default";
53*a009c0c6SJosua Mayer	pinctrl-0 = <&eqos_pins>, <&phy0_pins>;
54*a009c0c6SJosua Mayer	phy-mode = "rgmii-id";
55*a009c0c6SJosua Mayer	phy = <&phy0>;
56*a009c0c6SJosua Mayer	snps,force_thresh_dma_mode;
57*a009c0c6SJosua Mayer	snps,mtl-tx-config = <&mtl_tx_setup>;
58*a009c0c6SJosua Mayer	snps,mtl-rx-config = <&mtl_rx_setup>;
59*a009c0c6SJosua Mayer	status = "okay";
60*a009c0c6SJosua Mayer
61*a009c0c6SJosua Mayer	mdio {
62*a009c0c6SJosua Mayer		compatible = "snps,dwmac-mdio";
63*a009c0c6SJosua Mayer		#address-cells = <1>;
64*a009c0c6SJosua Mayer		#size-cells = <0>;
65*a009c0c6SJosua Mayer
66*a009c0c6SJosua Mayer		phy0: ethernet-phy@0 {
67*a009c0c6SJosua Mayer			compatible = "ethernet-phy-ieee802.3-c22";
68*a009c0c6SJosua Mayer			reg = <0>;
69*a009c0c6SJosua Mayer			reset-gpios = <&gpio4 19 GPIO_ACTIVE_LOW>;
70*a009c0c6SJosua Mayer			interrupt-parent = <&gpio4>;
71*a009c0c6SJosua Mayer			interrupts = <18 IRQ_TYPE_LEVEL_LOW>;
72*a009c0c6SJosua Mayer		};
73*a009c0c6SJosua Mayer	};
74*a009c0c6SJosua Mayer
75*a009c0c6SJosua Mayer	mtl_tx_setup: tx-queues-config {
76*a009c0c6SJosua Mayer		snps,tx-queues-to-use = <5>;
77*a009c0c6SJosua Mayer
78*a009c0c6SJosua Mayer		queue0 {
79*a009c0c6SJosua Mayer			snps,dcb-algorithm;
80*a009c0c6SJosua Mayer			snps,priority = <0x1>;
81*a009c0c6SJosua Mayer		};
82*a009c0c6SJosua Mayer
83*a009c0c6SJosua Mayer		queue1 {
84*a009c0c6SJosua Mayer			snps,dcb-algorithm;
85*a009c0c6SJosua Mayer			snps,priority = <0x2>;
86*a009c0c6SJosua Mayer		};
87*a009c0c6SJosua Mayer
88*a009c0c6SJosua Mayer		queue2 {
89*a009c0c6SJosua Mayer			snps,dcb-algorithm;
90*a009c0c6SJosua Mayer			snps,priority = <0x4>;
91*a009c0c6SJosua Mayer		};
92*a009c0c6SJosua Mayer
93*a009c0c6SJosua Mayer		queue3 {
94*a009c0c6SJosua Mayer			snps,dcb-algorithm;
95*a009c0c6SJosua Mayer			snps,priority = <0x8>;
96*a009c0c6SJosua Mayer		};
97*a009c0c6SJosua Mayer
98*a009c0c6SJosua Mayer		queue4 {
99*a009c0c6SJosua Mayer			snps,dcb-algorithm;
100*a009c0c6SJosua Mayer			snps,priority = <0xf0>;
101*a009c0c6SJosua Mayer		};
102*a009c0c6SJosua Mayer	};
103*a009c0c6SJosua Mayer
104*a009c0c6SJosua Mayer	mtl_rx_setup: rx-queues-config {
105*a009c0c6SJosua Mayer		snps,rx-queues-to-use = <5>;
106*a009c0c6SJosua Mayer		snps,rx-sched-sp;
107*a009c0c6SJosua Mayer
108*a009c0c6SJosua Mayer		queue0 {
109*a009c0c6SJosua Mayer			snps,dcb-algorithm;
110*a009c0c6SJosua Mayer			snps,priority = <0x1>;
111*a009c0c6SJosua Mayer			snps,map-to-dma-channel = <0>;
112*a009c0c6SJosua Mayer		};
113*a009c0c6SJosua Mayer
114*a009c0c6SJosua Mayer		queue1 {
115*a009c0c6SJosua Mayer			snps,dcb-algorithm;
116*a009c0c6SJosua Mayer			snps,priority = <0x2>;
117*a009c0c6SJosua Mayer			snps,map-to-dma-channel = <1>;
118*a009c0c6SJosua Mayer		};
119*a009c0c6SJosua Mayer
120*a009c0c6SJosua Mayer		queue2 {
121*a009c0c6SJosua Mayer			snps,dcb-algorithm;
122*a009c0c6SJosua Mayer			snps,priority = <0x4>;
123*a009c0c6SJosua Mayer			snps,map-to-dma-channel = <2>;
124*a009c0c6SJosua Mayer		};
125*a009c0c6SJosua Mayer
126*a009c0c6SJosua Mayer		queue3 {
127*a009c0c6SJosua Mayer			snps,dcb-algorithm;
128*a009c0c6SJosua Mayer			snps,priority = <0x8>;
129*a009c0c6SJosua Mayer			snps,map-to-dma-channel = <3>;
130*a009c0c6SJosua Mayer		};
131*a009c0c6SJosua Mayer
132*a009c0c6SJosua Mayer		queue4 {
133*a009c0c6SJosua Mayer			snps,dcb-algorithm;
134*a009c0c6SJosua Mayer			snps,priority = <0xf0>;
135*a009c0c6SJosua Mayer			snps,map-to-dma-channel = <4>;
136*a009c0c6SJosua Mayer		};
137*a009c0c6SJosua Mayer	};
138*a009c0c6SJosua Mayer};
139*a009c0c6SJosua Mayer
140*a009c0c6SJosua Mayer&fec {
141*a009c0c6SJosua Mayer	pinctrl-names = "default";
142*a009c0c6SJosua Mayer	pinctrl-0 = <&fec_pins>, <&phy1_pins>;
143*a009c0c6SJosua Mayer	phy-mode = "rgmii-id";
144*a009c0c6SJosua Mayer	phy = <&phy1>;
145*a009c0c6SJosua Mayer	fsl,magic-packet;
146*a009c0c6SJosua Mayer	status = "okay";
147*a009c0c6SJosua Mayer
148*a009c0c6SJosua Mayer	mdio {
149*a009c0c6SJosua Mayer		#address-cells = <1>;
150*a009c0c6SJosua Mayer		#size-cells = <0>;
151*a009c0c6SJosua Mayer
152*a009c0c6SJosua Mayer		phy1: ethernet-phy@1 {
153*a009c0c6SJosua Mayer			compatible = "ethernet-phy-ieee802.3-c22";
154*a009c0c6SJosua Mayer			reg = <0x1>;
155*a009c0c6SJosua Mayer			reset-gpios = <&gpio4 2 GPIO_ACTIVE_LOW>;
156*a009c0c6SJosua Mayer			interrupt-parent = <&gpio4>;
157*a009c0c6SJosua Mayer			interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
158*a009c0c6SJosua Mayer		};
159*a009c0c6SJosua Mayer	};
160*a009c0c6SJosua Mayer};
161*a009c0c6SJosua Mayer
162*a009c0c6SJosua Mayer&i2c1 {
163*a009c0c6SJosua Mayer	clock-frequency = <400000>;
164*a009c0c6SJosua Mayer	pinctrl-names = "default", "gpio";
165*a009c0c6SJosua Mayer	pinctrl-0 = <&i2c1_pins>;
166*a009c0c6SJosua Mayer	pinctrl-1 = <&i2c1_gpio_pins>;
167*a009c0c6SJosua Mayer	scl-gpios = <&gpio5 14 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
168*a009c0c6SJosua Mayer	sda-gpios = <&gpio5 15 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
169*a009c0c6SJosua Mayer	status = "okay";
170*a009c0c6SJosua Mayer
171*a009c0c6SJosua Mayer	pmic: pmic@25 {
172*a009c0c6SJosua Mayer		compatible = "nxp,pca9450c";
173*a009c0c6SJosua Mayer		reg = <0x25>;
174*a009c0c6SJosua Mayer		pinctrl-0 = <&pmic_pins>;
175*a009c0c6SJosua Mayer		pinctrl-names = "default";
176*a009c0c6SJosua Mayer		interrupt-parent = <&gpio1>;
177*a009c0c6SJosua Mayer		interrupts = <3 GPIO_ACTIVE_LOW>;
178*a009c0c6SJosua Mayer		nxp,i2c-lt-enable;
179*a009c0c6SJosua Mayer
180*a009c0c6SJosua Mayer		regulators {
181*a009c0c6SJosua Mayer			buck1: BUCK1 {
182*a009c0c6SJosua Mayer				regulator-name = "BUCK1";
183*a009c0c6SJosua Mayer				regulator-min-microvolt = <600000>;
184*a009c0c6SJosua Mayer				regulator-max-microvolt = <2187500>;
185*a009c0c6SJosua Mayer				regulator-boot-on;
186*a009c0c6SJosua Mayer				regulator-always-on;
187*a009c0c6SJosua Mayer				regulator-ramp-delay = <3125>;
188*a009c0c6SJosua Mayer			};
189*a009c0c6SJosua Mayer
190*a009c0c6SJosua Mayer			buck2: BUCK2 {
191*a009c0c6SJosua Mayer				regulator-name = "BUCK2";
192*a009c0c6SJosua Mayer				regulator-min-microvolt = <600000>;
193*a009c0c6SJosua Mayer				regulator-max-microvolt = <2187500>;
194*a009c0c6SJosua Mayer				regulator-boot-on;
195*a009c0c6SJosua Mayer				regulator-always-on;
196*a009c0c6SJosua Mayer				regulator-ramp-delay = <3125>;
197*a009c0c6SJosua Mayer				nxp,dvs-run-voltage = <950000>;
198*a009c0c6SJosua Mayer				nxp,dvs-standby-voltage = <850000>;
199*a009c0c6SJosua Mayer			};
200*a009c0c6SJosua Mayer
201*a009c0c6SJosua Mayer			buck4: BUCK4{
202*a009c0c6SJosua Mayer				regulator-name = "BUCK4";
203*a009c0c6SJosua Mayer				regulator-min-microvolt = <600000>;
204*a009c0c6SJosua Mayer				regulator-max-microvolt = <3400000>;
205*a009c0c6SJosua Mayer				regulator-boot-on;
206*a009c0c6SJosua Mayer				regulator-always-on;
207*a009c0c6SJosua Mayer			};
208*a009c0c6SJosua Mayer
209*a009c0c6SJosua Mayer			buck5: BUCK5{
210*a009c0c6SJosua Mayer				regulator-name = "BUCK5";
211*a009c0c6SJosua Mayer				regulator-min-microvolt = <600000>;
212*a009c0c6SJosua Mayer				regulator-max-microvolt = <3400000>;
213*a009c0c6SJosua Mayer				regulator-boot-on;
214*a009c0c6SJosua Mayer				regulator-always-on;
215*a009c0c6SJosua Mayer			};
216*a009c0c6SJosua Mayer
217*a009c0c6SJosua Mayer			buck6: BUCK6 {
218*a009c0c6SJosua Mayer				regulator-name = "BUCK6";
219*a009c0c6SJosua Mayer				regulator-min-microvolt = <600000>;
220*a009c0c6SJosua Mayer				regulator-max-microvolt = <3400000>;
221*a009c0c6SJosua Mayer				regulator-boot-on;
222*a009c0c6SJosua Mayer				regulator-always-on;
223*a009c0c6SJosua Mayer			};
224*a009c0c6SJosua Mayer
225*a009c0c6SJosua Mayer			ldo1: LDO1 {
226*a009c0c6SJosua Mayer				regulator-name = "LDO1";
227*a009c0c6SJosua Mayer				regulator-min-microvolt = <1600000>;
228*a009c0c6SJosua Mayer				regulator-max-microvolt = <3300000>;
229*a009c0c6SJosua Mayer				regulator-boot-on;
230*a009c0c6SJosua Mayer				regulator-always-on;
231*a009c0c6SJosua Mayer			};
232*a009c0c6SJosua Mayer
233*a009c0c6SJosua Mayer			ldo2: LDO2 {
234*a009c0c6SJosua Mayer				regulator-name = "LDO2";
235*a009c0c6SJosua Mayer				regulator-min-microvolt = <800000>;
236*a009c0c6SJosua Mayer				regulator-max-microvolt = <1150000>;
237*a009c0c6SJosua Mayer				regulator-boot-on;
238*a009c0c6SJosua Mayer				regulator-always-on;
239*a009c0c6SJosua Mayer			};
240*a009c0c6SJosua Mayer
241*a009c0c6SJosua Mayer			ldo3: LDO3 {
242*a009c0c6SJosua Mayer				regulator-name = "LDO3";
243*a009c0c6SJosua Mayer				regulator-min-microvolt = <800000>;
244*a009c0c6SJosua Mayer				regulator-max-microvolt = <3300000>;
245*a009c0c6SJosua Mayer				regulator-boot-on;
246*a009c0c6SJosua Mayer				regulator-always-on;
247*a009c0c6SJosua Mayer			};
248*a009c0c6SJosua Mayer
249*a009c0c6SJosua Mayer			ldo4: LDO4 {
250*a009c0c6SJosua Mayer				regulator-name = "LDO4";
251*a009c0c6SJosua Mayer				regulator-min-microvolt = <800000>;
252*a009c0c6SJosua Mayer				regulator-max-microvolt = <3300000>;
253*a009c0c6SJosua Mayer				regulator-boot-on;
254*a009c0c6SJosua Mayer				regulator-always-on;
255*a009c0c6SJosua Mayer			};
256*a009c0c6SJosua Mayer
257*a009c0c6SJosua Mayer			ldo5: LDO5 {
258*a009c0c6SJosua Mayer				regulator-name = "LDO5";
259*a009c0c6SJosua Mayer				regulator-min-microvolt = <1800000>;
260*a009c0c6SJosua Mayer				regulator-max-microvolt = <3300000>;
261*a009c0c6SJosua Mayer				regulator-boot-on;
262*a009c0c6SJosua Mayer				regulator-always-on;
263*a009c0c6SJosua Mayer			};
264*a009c0c6SJosua Mayer		};
265*a009c0c6SJosua Mayer	};
266*a009c0c6SJosua Mayer
267*a009c0c6SJosua Mayer	som_eeprom: eeprom@50{
268*a009c0c6SJosua Mayer		compatible = "st,24c01", "atmel,24c01";
269*a009c0c6SJosua Mayer		reg = <0x50>;
270*a009c0c6SJosua Mayer		pagesize = <16>;
271*a009c0c6SJosua Mayer	};
272*a009c0c6SJosua Mayer};
273*a009c0c6SJosua Mayer
274*a009c0c6SJosua Mayer&i2c2 {
275*a009c0c6SJosua Mayer	clock-frequency = <100000>;
276*a009c0c6SJosua Mayer	pinctrl-names = "default", "gpio";
277*a009c0c6SJosua Mayer	pinctrl-0 = <&i2c2_pins>;
278*a009c0c6SJosua Mayer	pinctrl-1 = <&i2c2_gpio_pins>;
279*a009c0c6SJosua Mayer	scl-gpios = <&gpio5 16 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
280*a009c0c6SJosua Mayer	sda-gpios = <&gpio5 17 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
281*a009c0c6SJosua Mayer	status = "okay";
282*a009c0c6SJosua Mayer};
283*a009c0c6SJosua Mayer
284*a009c0c6SJosua Mayer&i2c3 {
285*a009c0c6SJosua Mayer	clock-frequency = <100000>;
286*a009c0c6SJosua Mayer	pinctrl-names = "default", "gpio";
287*a009c0c6SJosua Mayer	pinctrl-0 = <&i2c3_pins>;
288*a009c0c6SJosua Mayer	pinctrl-1 = <&i2c3_gpio_pins>;
289*a009c0c6SJosua Mayer	scl-gpios = <&gpio5 18 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
290*a009c0c6SJosua Mayer	sda-gpios = <&gpio5 19 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
291*a009c0c6SJosua Mayer	status = "okay";
292*a009c0c6SJosua Mayer};
293*a009c0c6SJosua Mayer
294*a009c0c6SJosua Mayer&i2c4 {
295*a009c0c6SJosua Mayer	/* routed to basler camera connector */
296*a009c0c6SJosua Mayer	clock-frequency = <100000>;
297*a009c0c6SJosua Mayer	pinctrl-names = "default", "gpio";
298*a009c0c6SJosua Mayer	pinctrl-0 = <&i2c4_pins>;
299*a009c0c6SJosua Mayer	pinctrl-1 = <&i2c4_gpio_pins>;
300*a009c0c6SJosua Mayer	scl-gpios = <&gpio5 20 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
301*a009c0c6SJosua Mayer	sda-gpios = <&gpio5 21 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
302*a009c0c6SJosua Mayer	status = "okay";
303*a009c0c6SJosua Mayer};
304*a009c0c6SJosua Mayer
305*a009c0c6SJosua Mayer&iomuxc {
306*a009c0c6SJosua Mayer	eqos_pins: pinctrl-eqos-grp {
307*a009c0c6SJosua Mayer		fsl,pins = <
308*a009c0c6SJosua Mayer			MX8MP_IOMUXC_ENET_MDC__ENET_QOS_MDC		0x3
309*a009c0c6SJosua Mayer			MX8MP_IOMUXC_ENET_MDIO__ENET_QOS_MDIO		0x3
310*a009c0c6SJosua Mayer			MX8MP_IOMUXC_ENET_RD0__ENET_QOS_RGMII_RD0	0x91
311*a009c0c6SJosua Mayer			MX8MP_IOMUXC_ENET_RD1__ENET_QOS_RGMII_RD1	0x91
312*a009c0c6SJosua Mayer			MX8MP_IOMUXC_ENET_RD2__ENET_QOS_RGMII_RD2	0x91
313*a009c0c6SJosua Mayer			MX8MP_IOMUXC_ENET_RD3__ENET_QOS_RGMII_RD3	0x91
314*a009c0c6SJosua Mayer			MX8MP_IOMUXC_ENET_RXC__CCM_ENET_QOS_CLOCK_GENERATE_RX_CLK	0x91
315*a009c0c6SJosua Mayer			MX8MP_IOMUXC_ENET_RX_CTL__ENET_QOS_RGMII_RX_CTL	0x91
316*a009c0c6SJosua Mayer			MX8MP_IOMUXC_ENET_TD0__ENET_QOS_RGMII_TD0	0x1f
317*a009c0c6SJosua Mayer			MX8MP_IOMUXC_ENET_TD1__ENET_QOS_RGMII_TD1	0x1f
318*a009c0c6SJosua Mayer			MX8MP_IOMUXC_ENET_TD2__ENET_QOS_RGMII_TD2	0x1f
319*a009c0c6SJosua Mayer			MX8MP_IOMUXC_ENET_TD3__ENET_QOS_RGMII_TD3	0x1f
320*a009c0c6SJosua Mayer			MX8MP_IOMUXC_ENET_TX_CTL__ENET_QOS_RGMII_TX_CTL	0x1f
321*a009c0c6SJosua Mayer			MX8MP_IOMUXC_ENET_TXC__CCM_ENET_QOS_CLOCK_GENERATE_TX_CLK	0x1f
322*a009c0c6SJosua Mayer		>;
323*a009c0c6SJosua Mayer	};
324*a009c0c6SJosua Mayer
325*a009c0c6SJosua Mayer	fec_pins: pinctrl-fec-grp {
326*a009c0c6SJosua Mayer		fsl,pins = <
327*a009c0c6SJosua Mayer			MX8MP_IOMUXC_SAI1_RXD2__ENET1_MDC		0x3
328*a009c0c6SJosua Mayer			MX8MP_IOMUXC_SAI1_RXD3__ENET1_MDIO		0x3
329*a009c0c6SJosua Mayer			MX8MP_IOMUXC_SAI1_RXD4__ENET1_RGMII_RD0		0x91
330*a009c0c6SJosua Mayer			MX8MP_IOMUXC_SAI1_RXD5__ENET1_RGMII_RD1		0x91
331*a009c0c6SJosua Mayer			MX8MP_IOMUXC_SAI1_RXD6__ENET1_RGMII_RD2		0x91
332*a009c0c6SJosua Mayer			MX8MP_IOMUXC_SAI1_RXD7__ENET1_RGMII_RD3		0x91
333*a009c0c6SJosua Mayer			MX8MP_IOMUXC_SAI1_TXC__ENET1_RGMII_RXC		0x91
334*a009c0c6SJosua Mayer			MX8MP_IOMUXC_SAI1_TXFS__ENET1_RGMII_RX_CTL	0x91
335*a009c0c6SJosua Mayer			MX8MP_IOMUXC_SAI1_TXD0__ENET1_RGMII_TD0		0x1f
336*a009c0c6SJosua Mayer			MX8MP_IOMUXC_SAI1_TXD1__ENET1_RGMII_TD1		0x1f
337*a009c0c6SJosua Mayer			MX8MP_IOMUXC_SAI1_TXD2__ENET1_RGMII_TD2		0x1f
338*a009c0c6SJosua Mayer			MX8MP_IOMUXC_SAI1_TXD3__ENET1_RGMII_TD3		0x1f
339*a009c0c6SJosua Mayer			MX8MP_IOMUXC_SAI1_TXD4__ENET1_RGMII_TX_CTL	0x1f
340*a009c0c6SJosua Mayer			MX8MP_IOMUXC_SAI1_TXD5__ENET1_RGMII_TXC		0x1f
341*a009c0c6SJosua Mayer		>;
342*a009c0c6SJosua Mayer	};
343*a009c0c6SJosua Mayer
344*a009c0c6SJosua Mayer	i2c1_pins: pinctrl-i2c1-grp {
345*a009c0c6SJosua Mayer		fsl,pins = <
346*a009c0c6SJosua Mayer			MX8MP_IOMUXC_I2C1_SCL__I2C1_SCL			0x400001c3
347*a009c0c6SJosua Mayer			MX8MP_IOMUXC_I2C1_SDA__I2C1_SDA			0x400001c3
348*a009c0c6SJosua Mayer		>;
349*a009c0c6SJosua Mayer	};
350*a009c0c6SJosua Mayer
351*a009c0c6SJosua Mayer	i2c1_gpio_pins: pinctrl-i2c1-gpio-grp {
352*a009c0c6SJosua Mayer		fsl,pins = <
353*a009c0c6SJosua Mayer			MX8MP_IOMUXC_I2C1_SCL__GPIO5_IO14		0x400001c3
354*a009c0c6SJosua Mayer			MX8MP_IOMUXC_I2C1_SDA__GPIO5_IO15		0x400001c3
355*a009c0c6SJosua Mayer		>;
356*a009c0c6SJosua Mayer	};
357*a009c0c6SJosua Mayer
358*a009c0c6SJosua Mayer	i2c2_pins: pinctrl-i2c2-grp {
359*a009c0c6SJosua Mayer		fsl,pins = <
360*a009c0c6SJosua Mayer			MX8MP_IOMUXC_I2C2_SCL__I2C2_SCL			0x400001c3
361*a009c0c6SJosua Mayer			MX8MP_IOMUXC_I2C2_SDA__I2C2_SDA			0x400001c3
362*a009c0c6SJosua Mayer		>;
363*a009c0c6SJosua Mayer	};
364*a009c0c6SJosua Mayer
365*a009c0c6SJosua Mayer	i2c2_gpio_pins: pinctrl-i2c2-gpio-grp {
366*a009c0c6SJosua Mayer		fsl,pins = <
367*a009c0c6SJosua Mayer			MX8MP_IOMUXC_I2C2_SCL__GPIO5_IO16		0x400001c3
368*a009c0c6SJosua Mayer			MX8MP_IOMUXC_I2C2_SDA__GPIO5_IO17		0x400001c3
369*a009c0c6SJosua Mayer		>;
370*a009c0c6SJosua Mayer	};
371*a009c0c6SJosua Mayer
372*a009c0c6SJosua Mayer	i2c3_pins: pinctrl-i2c3-grp {
373*a009c0c6SJosua Mayer		fsl,pins = <
374*a009c0c6SJosua Mayer			MX8MP_IOMUXC_I2C3_SCL__I2C3_SCL			0x400001c3
375*a009c0c6SJosua Mayer			MX8MP_IOMUXC_I2C3_SDA__I2C3_SDA			0x400001c3
376*a009c0c6SJosua Mayer		>;
377*a009c0c6SJosua Mayer	};
378*a009c0c6SJosua Mayer
379*a009c0c6SJosua Mayer	i2c3_gpio_pins: pinctrl-i2c3-gpio-grp {
380*a009c0c6SJosua Mayer		fsl,pins = <
381*a009c0c6SJosua Mayer			MX8MP_IOMUXC_I2C3_SCL__GPIO5_IO18		0x400001c3
382*a009c0c6SJosua Mayer			MX8MP_IOMUXC_I2C3_SDA__GPIO5_IO19		0x400001c3
383*a009c0c6SJosua Mayer		>;
384*a009c0c6SJosua Mayer	};
385*a009c0c6SJosua Mayer
386*a009c0c6SJosua Mayer	i2c4_pins: pinctrl-i2c4-grp {
387*a009c0c6SJosua Mayer		fsl,pins = <
388*a009c0c6SJosua Mayer			MX8MP_IOMUXC_I2C4_SCL__I2C4_SCL			0x400001c3
389*a009c0c6SJosua Mayer			MX8MP_IOMUXC_I2C4_SDA__I2C4_SDA			0x400001c3
390*a009c0c6SJosua Mayer		>;
391*a009c0c6SJosua Mayer	};
392*a009c0c6SJosua Mayer
393*a009c0c6SJosua Mayer	i2c4_gpio_pins: pinctrl-i2c4-gpio-grp {
394*a009c0c6SJosua Mayer		fsl,pins = <
395*a009c0c6SJosua Mayer			MX8MP_IOMUXC_I2C4_SCL__GPIO5_IO20			0x400001c3
396*a009c0c6SJosua Mayer			MX8MP_IOMUXC_I2C4_SDA__GPIO5_IO21			0x400001c3
397*a009c0c6SJosua Mayer		>;
398*a009c0c6SJosua Mayer	};
399*a009c0c6SJosua Mayer
400*a009c0c6SJosua Mayer	phy0_pins: pinctrl-phy0-grp {
401*a009c0c6SJosua Mayer		fsl,pins = <
402*a009c0c6SJosua Mayer			/* RESET_N: weak i/o, open drain, external 1k pull-up */
403*a009c0c6SJosua Mayer			MX8MP_IOMUXC_SAI1_TXD7__GPIO4_IO19		0x20
404*a009c0c6SJosua Mayer			/* INT_N: weak i/o, open drain, internal pull-up */
405*a009c0c6SJosua Mayer			MX8MP_IOMUXC_SAI1_TXD6__GPIO4_IO18		0x160
406*a009c0c6SJosua Mayer		>;
407*a009c0c6SJosua Mayer	};
408*a009c0c6SJosua Mayer
409*a009c0c6SJosua Mayer	phy1_pins: pinctrl-phy-1-grp {
410*a009c0c6SJosua Mayer		fsl,pins = <
411*a009c0c6SJosua Mayer			/* RESET_N: weak i/o, open drain, external 1k pull-up */
412*a009c0c6SJosua Mayer			MX8MP_IOMUXC_SAI1_RXD0__GPIO4_IO02		0x20
413*a009c0c6SJosua Mayer			/* INT_N: weak i/o, open drain, internal pull-up */
414*a009c0c6SJosua Mayer			MX8MP_IOMUXC_SAI1_RXD1__GPIO4_IO03		0x160
415*a009c0c6SJosua Mayer		>;
416*a009c0c6SJosua Mayer	};
417*a009c0c6SJosua Mayer
418*a009c0c6SJosua Mayer	pmic_pins: pinctrl-pmic-grp {
419*a009c0c6SJosua Mayer		fsl,pins = <
420*a009c0c6SJosua Mayer			MX8MP_IOMUXC_GPIO1_IO03__GPIO1_IO03		0x41
421*a009c0c6SJosua Mayer		>;
422*a009c0c6SJosua Mayer	};
423*a009c0c6SJosua Mayer
424*a009c0c6SJosua Mayer	uart1_pins: pinctrl-uart1-grp {
425*a009c0c6SJosua Mayer		fsl,pins = <
426*a009c0c6SJosua Mayer			MX8MP_IOMUXC_UART1_RXD__UART1_DCE_RX		0x140
427*a009c0c6SJosua Mayer			MX8MP_IOMUXC_UART1_TXD__UART1_DCE_TX		0x140
428*a009c0c6SJosua Mayer			MX8MP_IOMUXC_UART3_RXD__UART1_DCE_CTS		0x140
429*a009c0c6SJosua Mayer			MX8MP_IOMUXC_UART3_TXD__UART1_DCE_RTS		0x140
430*a009c0c6SJosua Mayer			/* BT_REG_ON */
431*a009c0c6SJosua Mayer			MX8MP_IOMUXC_SD1_RESET_B__GPIO2_IO10		0x0
432*a009c0c6SJosua Mayer			/* BT_WAKE_DEV */
433*a009c0c6SJosua Mayer			MX8MP_IOMUXC_SD1_DATA5__GPIO2_IO07		0x0
434*a009c0c6SJosua Mayer			/* BT_WAKE_HOST */
435*a009c0c6SJosua Mayer			MX8MP_IOMUXC_SD1_DATA6__GPIO2_IO08		0x100
436*a009c0c6SJosua Mayer		>;
437*a009c0c6SJosua Mayer	};
438*a009c0c6SJosua Mayer
439*a009c0c6SJosua Mayer	uart2_pins: pinctrl-uart2-grp {
440*a009c0c6SJosua Mayer		fsl,pins = <
441*a009c0c6SJosua Mayer			MX8MP_IOMUXC_UART2_RXD__UART2_DCE_RX		0x49
442*a009c0c6SJosua Mayer			MX8MP_IOMUXC_UART2_TXD__UART2_DCE_TX		0x49
443*a009c0c6SJosua Mayer		>;
444*a009c0c6SJosua Mayer	};
445*a009c0c6SJosua Mayer
446*a009c0c6SJosua Mayer	usdhc1_pins: pinctrl-usdhc1-grp {
447*a009c0c6SJosua Mayer		fsl,pins = <
448*a009c0c6SJosua Mayer			MX8MP_IOMUXC_SD1_CLK__USDHC1_CLK		0x190
449*a009c0c6SJosua Mayer			MX8MP_IOMUXC_SD1_CMD__USDHC1_CMD		0x1d0
450*a009c0c6SJosua Mayer			MX8MP_IOMUXC_SD1_DATA0__USDHC1_DATA0		0x1d0
451*a009c0c6SJosua Mayer			MX8MP_IOMUXC_SD1_DATA1__USDHC1_DATA1		0x1d0
452*a009c0c6SJosua Mayer			MX8MP_IOMUXC_SD1_DATA2__USDHC1_DATA2		0x1d0
453*a009c0c6SJosua Mayer			MX8MP_IOMUXC_SD1_DATA3__USDHC1_DATA3		0x1d0
454*a009c0c6SJosua Mayer			/* WL_REG_ON */
455*a009c0c6SJosua Mayer			MX8MP_IOMUXC_SD1_STROBE__GPIO2_IO11		0x0
456*a009c0c6SJosua Mayer			/* WL_WAKE_HOST */
457*a009c0c6SJosua Mayer			MX8MP_IOMUXC_SD1_DATA7__GPIO2_IO09		0x100
458*a009c0c6SJosua Mayer		>;
459*a009c0c6SJosua Mayer	};
460*a009c0c6SJosua Mayer
461*a009c0c6SJosua Mayer	usdhc1_100mhz_pins: pinctrl-usdhc1g-100mhz-grp {
462*a009c0c6SJosua Mayer		fsl,pins = <
463*a009c0c6SJosua Mayer			MX8MP_IOMUXC_SD1_CLK__USDHC1_CLK		0x194
464*a009c0c6SJosua Mayer			MX8MP_IOMUXC_SD1_CMD__USDHC1_CMD		0x1d4
465*a009c0c6SJosua Mayer			MX8MP_IOMUXC_SD1_DATA0__USDHC1_DATA0		0x1d4
466*a009c0c6SJosua Mayer			MX8MP_IOMUXC_SD1_DATA1__USDHC1_DATA1		0x1d4
467*a009c0c6SJosua Mayer			MX8MP_IOMUXC_SD1_DATA2__USDHC1_DATA2		0x1d4
468*a009c0c6SJosua Mayer			MX8MP_IOMUXC_SD1_DATA3__USDHC1_DATA3		0x1d4
469*a009c0c6SJosua Mayer		>;
470*a009c0c6SJosua Mayer	};
471*a009c0c6SJosua Mayer
472*a009c0c6SJosua Mayer	usdhc1_200mhz_pins: pinctrl-usdhc1-200mhz-grp {
473*a009c0c6SJosua Mayer		fsl,pins = <
474*a009c0c6SJosua Mayer			MX8MP_IOMUXC_SD1_CLK__USDHC1_CLK		0x196
475*a009c0c6SJosua Mayer			MX8MP_IOMUXC_SD1_CMD__USDHC1_CMD		0x1d6
476*a009c0c6SJosua Mayer			MX8MP_IOMUXC_SD1_DATA0__USDHC1_DATA0		0x1d6
477*a009c0c6SJosua Mayer			MX8MP_IOMUXC_SD1_DATA1__USDHC1_DATA1		0x1d6
478*a009c0c6SJosua Mayer			MX8MP_IOMUXC_SD1_DATA2__USDHC1_DATA2		0x1d6
479*a009c0c6SJosua Mayer			MX8MP_IOMUXC_SD1_DATA3__USDHC1_DATA3		0x1d6
480*a009c0c6SJosua Mayer		>;
481*a009c0c6SJosua Mayer	};
482*a009c0c6SJosua Mayer
483*a009c0c6SJosua Mayer	usdhc3_pins: pinctrl-usdhc3-grp {
484*a009c0c6SJosua Mayer		fsl,pins = <
485*a009c0c6SJosua Mayer			MX8MP_IOMUXC_NAND_WE_B__USDHC3_CLK		0x190
486*a009c0c6SJosua Mayer			MX8MP_IOMUXC_NAND_WP_B__USDHC3_CMD		0x1d0
487*a009c0c6SJosua Mayer			MX8MP_IOMUXC_NAND_DATA04__USDHC3_DATA0		0x1d0
488*a009c0c6SJosua Mayer			MX8MP_IOMUXC_NAND_DATA05__USDHC3_DATA1		0x1d0
489*a009c0c6SJosua Mayer			MX8MP_IOMUXC_NAND_DATA06__USDHC3_DATA2		0x1d0
490*a009c0c6SJosua Mayer			MX8MP_IOMUXC_NAND_DATA07__USDHC3_DATA3		0x1d0
491*a009c0c6SJosua Mayer			MX8MP_IOMUXC_NAND_RE_B__USDHC3_DATA4		0x1d0
492*a009c0c6SJosua Mayer			MX8MP_IOMUXC_NAND_CE2_B__USDHC3_DATA5		0x1d0
493*a009c0c6SJosua Mayer			MX8MP_IOMUXC_NAND_CE3_B__USDHC3_DATA6		0x1d0
494*a009c0c6SJosua Mayer			MX8MP_IOMUXC_NAND_CLE__USDHC3_DATA7		0x1d0
495*a009c0c6SJosua Mayer			MX8MP_IOMUXC_NAND_CE1_B__USDHC3_STROBE		0x190
496*a009c0c6SJosua Mayer		>;
497*a009c0c6SJosua Mayer	};
498*a009c0c6SJosua Mayer
499*a009c0c6SJosua Mayer	usdhc3_100mhz_pins: pinctrl-usdhc3-100mhz-grp {
500*a009c0c6SJosua Mayer		fsl,pins = <
501*a009c0c6SJosua Mayer			MX8MP_IOMUXC_NAND_WE_B__USDHC3_CLK		0x194
502*a009c0c6SJosua Mayer			MX8MP_IOMUXC_NAND_WP_B__USDHC3_CMD		0x1d4
503*a009c0c6SJosua Mayer			MX8MP_IOMUXC_NAND_DATA04__USDHC3_DATA0		0x1d4
504*a009c0c6SJosua Mayer			MX8MP_IOMUXC_NAND_DATA05__USDHC3_DATA1		0x1d4
505*a009c0c6SJosua Mayer			MX8MP_IOMUXC_NAND_DATA06__USDHC3_DATA2		0x1d4
506*a009c0c6SJosua Mayer			MX8MP_IOMUXC_NAND_DATA07__USDHC3_DATA3		0x1d4
507*a009c0c6SJosua Mayer			MX8MP_IOMUXC_NAND_RE_B__USDHC3_DATA4		0x1d4
508*a009c0c6SJosua Mayer			MX8MP_IOMUXC_NAND_CE2_B__USDHC3_DATA5		0x1d4
509*a009c0c6SJosua Mayer			MX8MP_IOMUXC_NAND_CE3_B__USDHC3_DATA6		0x1d4
510*a009c0c6SJosua Mayer			MX8MP_IOMUXC_NAND_CLE__USDHC3_DATA7		0x1d4
511*a009c0c6SJosua Mayer			MX8MP_IOMUXC_NAND_CE1_B__USDHC3_STROBE		0x194
512*a009c0c6SJosua Mayer		>;
513*a009c0c6SJosua Mayer	};
514*a009c0c6SJosua Mayer
515*a009c0c6SJosua Mayer	usdhc3_200mhz_pins: pinctrl-usdhc3-200mhz-grp {
516*a009c0c6SJosua Mayer		fsl,pins = <
517*a009c0c6SJosua Mayer			MX8MP_IOMUXC_NAND_WE_B__USDHC3_CLK		0x196
518*a009c0c6SJosua Mayer			MX8MP_IOMUXC_NAND_WP_B__USDHC3_CMD		0x1d6
519*a009c0c6SJosua Mayer			MX8MP_IOMUXC_NAND_DATA04__USDHC3_DATA0		0x1d6
520*a009c0c6SJosua Mayer			MX8MP_IOMUXC_NAND_DATA05__USDHC3_DATA1		0x1d6
521*a009c0c6SJosua Mayer			MX8MP_IOMUXC_NAND_DATA06__USDHC3_DATA2		0x1d6
522*a009c0c6SJosua Mayer			MX8MP_IOMUXC_NAND_DATA07__USDHC3_DATA3		0x1d6
523*a009c0c6SJosua Mayer			MX8MP_IOMUXC_NAND_RE_B__USDHC3_DATA4		0x1d6
524*a009c0c6SJosua Mayer			MX8MP_IOMUXC_NAND_CE2_B__USDHC3_DATA5		0x1d6
525*a009c0c6SJosua Mayer			MX8MP_IOMUXC_NAND_CE3_B__USDHC3_DATA6		0x1d6
526*a009c0c6SJosua Mayer			MX8MP_IOMUXC_NAND_CLE__USDHC3_DATA7		0x1d6
527*a009c0c6SJosua Mayer			MX8MP_IOMUXC_NAND_CE1_B__USDHC3_STROBE		0x196
528*a009c0c6SJosua Mayer		>;
529*a009c0c6SJosua Mayer	};
530*a009c0c6SJosua Mayer
531*a009c0c6SJosua Mayer	wdog1_pins: pinctrl-wdog1-grp {
532*a009c0c6SJosua Mayer		fsl,pins = <
533*a009c0c6SJosua Mayer			MX8MP_IOMUXC_GPIO1_IO02__WDOG1_WDOG_B		0x140
534*a009c0c6SJosua Mayer		>;
535*a009c0c6SJosua Mayer	};
536*a009c0c6SJosua Mayer};
537*a009c0c6SJosua Mayer
538*a009c0c6SJosua Mayer&uart1 {
539*a009c0c6SJosua Mayer	pinctrl-names = "default";
540*a009c0c6SJosua Mayer	pinctrl-0 = <&uart1_pins>;
541*a009c0c6SJosua Mayer	uart-has-rtscts;
542*a009c0c6SJosua Mayer	/* select 80MHz parent clock to support maximum baudrate 4Mbps */
543*a009c0c6SJosua Mayer	assigned-clocks = <&clk IMX8MP_CLK_UART1>;
544*a009c0c6SJosua Mayer	assigned-clock-parents = <&clk IMX8MP_SYS_PLL1_80M>;
545*a009c0c6SJosua Mayer	status = "okay";
546*a009c0c6SJosua Mayer
547*a009c0c6SJosua Mayer	bluetooth {
548*a009c0c6SJosua Mayer		compatible = "brcm,bcm4345c5";
549*a009c0c6SJosua Mayer		device-wakeup-gpios = <&gpio2 7 GPIO_ACTIVE_HIGH>;
550*a009c0c6SJosua Mayer		host-wakeup-gpios = <&gpio2 8 GPIO_ACTIVE_HIGH>;
551*a009c0c6SJosua Mayer		shutdown-gpios = <&gpio2 10 GPIO_ACTIVE_HIGH>;
552*a009c0c6SJosua Mayer		/* Murata 1MW module supports max. 3M baud */
553*a009c0c6SJosua Mayer		max-speed = <3000000>;
554*a009c0c6SJosua Mayer	};
555*a009c0c6SJosua Mayer};
556*a009c0c6SJosua Mayer
557*a009c0c6SJosua Mayer&uart2 {
558*a009c0c6SJosua Mayer	pinctrl-names = "default";
559*a009c0c6SJosua Mayer	pinctrl-0 = <&uart2_pins>;
560*a009c0c6SJosua Mayer	status = "okay";
561*a009c0c6SJosua Mayer};
562*a009c0c6SJosua Mayer
563*a009c0c6SJosua Mayer&usdhc1 {
564*a009c0c6SJosua Mayer	pinctrl-names = "default";
565*a009c0c6SJosua Mayer	pinctrl-0 = <&usdhc1_pins>;
566*a009c0c6SJosua Mayer	pinctrl-1 = <&usdhc1_100mhz_pins>;
567*a009c0c6SJosua Mayer	pinctrl-2 = <&usdhc1_200mhz_pins>;
568*a009c0c6SJosua Mayer	vmmc-supply = <&v_3_3>;
569*a009c0c6SJosua Mayer	vqmmc-supply = <&v_1_8>;
570*a009c0c6SJosua Mayer	bus-width = <4>;
571*a009c0c6SJosua Mayer	mmc-pwrseq = <&usdhc1_pwrseq>;
572*a009c0c6SJosua Mayer	status = "okay";
573*a009c0c6SJosua Mayer};
574*a009c0c6SJosua Mayer
575*a009c0c6SJosua Mayer&usdhc3 {
576*a009c0c6SJosua Mayer	pinctrl-names = "default", "state_100mhz", "state_200mhz";
577*a009c0c6SJosua Mayer	pinctrl-0 = <&usdhc3_pins>;
578*a009c0c6SJosua Mayer	pinctrl-1 = <&usdhc3_100mhz_pins>;
579*a009c0c6SJosua Mayer	pinctrl-2 = <&usdhc3_200mhz_pins>;
580*a009c0c6SJosua Mayer	vmmc-supply = <&v_3_3>;
581*a009c0c6SJosua Mayer	vqmmc-supply = <&v_1_8>;
582*a009c0c6SJosua Mayer	bus-width = <8>;
583*a009c0c6SJosua Mayer	non-removable;
584*a009c0c6SJosua Mayer	status = "okay";
585*a009c0c6SJosua Mayer};
586*a009c0c6SJosua Mayer
587*a009c0c6SJosua Mayer&wdog1 {
588*a009c0c6SJosua Mayer	pinctrl-names = "default";
589*a009c0c6SJosua Mayer	pinctrl-0 = <&wdog1_pins>;
590*a009c0c6SJosua Mayer	status = "okay";
591*a009c0c6SJosua Mayer};
592