xref: /linux/scripts/dtc/include-prefixes/arm64/freescale/imx8mn-solidsense-n8-compact.dts (revision 0fc8f6200d2313278fbf4539bbab74677c685531)
1*79f63593SJosua Mayer// SPDX-License-Identifier: (GPL-2.0 OR MIT)
2*79f63593SJosua Mayer/*
3*79f63593SJosua Mayer * Device Tree file for SolidSense N8 Compact
4*79f63593SJosua Mayer *
5*79f63593SJosua Mayer * Copyright 2024 Josua Mayer <josua@solid-run.com>
6*79f63593SJosua Mayer */
7*79f63593SJosua Mayer
8*79f63593SJosua Mayer/dts-v1/;
9*79f63593SJosua Mayer
10*79f63593SJosua Mayer#include <dt-bindings/leds/common.h>
11*79f63593SJosua Mayer
12*79f63593SJosua Mayer#include "imx8mn.dtsi"
13*79f63593SJosua Mayer
14*79f63593SJosua Mayer/ {
15*79f63593SJosua Mayer	compatible = "solidrun,solidsense-n8-compact", "fsl,imx8mn";
16*79f63593SJosua Mayer	model = "SolidRun SolidSense N8 Compact";
17*79f63593SJosua Mayer
18*79f63593SJosua Mayer	/* LED labels based on enclosure, schematic names differ. */
19*79f63593SJosua Mayer	leds {
20*79f63593SJosua Mayer		compatible = "gpio-leds";
21*79f63593SJosua Mayer		pinctrl-0 = <&led_pins>;
22*79f63593SJosua Mayer		pinctrl-names = "default";
23*79f63593SJosua Mayer
24*79f63593SJosua Mayer		/* D20 */
25*79f63593SJosua Mayer		led1 {
26*79f63593SJosua Mayer			default-state = "off";
27*79f63593SJosua Mayer			gpios = <&gpio1 13 GPIO_ACTIVE_HIGH>;
28*79f63593SJosua Mayer			label = "led1";
29*79f63593SJosua Mayer		};
30*79f63593SJosua Mayer
31*79f63593SJosua Mayer		/* D18 */
32*79f63593SJosua Mayer		led2 {
33*79f63593SJosua Mayer			default-state = "off";
34*79f63593SJosua Mayer			gpios = <&gpio1 11 GPIO_ACTIVE_HIGH>;
35*79f63593SJosua Mayer			label = "led2";
36*79f63593SJosua Mayer		};
37*79f63593SJosua Mayer
38*79f63593SJosua Mayer		/* D19 */
39*79f63593SJosua Mayer		led3 {
40*79f63593SJosua Mayer			default-state = "off";
41*79f63593SJosua Mayer			gpios = <&gpio1 12 GPIO_ACTIVE_HIGH>;
42*79f63593SJosua Mayer			label = "led3";
43*79f63593SJosua Mayer		};
44*79f63593SJosua Mayer	};
45*79f63593SJosua Mayer
46*79f63593SJosua Mayer	aliases {
47*79f63593SJosua Mayer		gpio5 = &expander;
48*79f63593SJosua Mayer		rtc0 = &rtc;
49*79f63593SJosua Mayer		rtc1 = &snvs_rtc;
50*79f63593SJosua Mayer		usb0 = &usbotg1;
51*79f63593SJosua Mayer		watchdog0 = &wdog1;
52*79f63593SJosua Mayer		watchdog1 = &rtc;
53*79f63593SJosua Mayer	};
54*79f63593SJosua Mayer
55*79f63593SJosua Mayer	chosen {
56*79f63593SJosua Mayer		stdout-path = &uart2;
57*79f63593SJosua Mayer	};
58*79f63593SJosua Mayer
59*79f63593SJosua Mayer	reg_modem_vbat: regulator-modem-vbat {
60*79f63593SJosua Mayer		compatible = "regulator-fixed";
61*79f63593SJosua Mayer		regulator-name = "modem-vbat";
62*79f63593SJosua Mayer		pinctrl-0 = <&regulator_modem_vbat_pins>;
63*79f63593SJosua Mayer		pinctrl-names = "default";
64*79f63593SJosua Mayer		regulator-always-on;
65*79f63593SJosua Mayer		regulator-max-microvolt = <3800000>;
66*79f63593SJosua Mayer		regulator-min-microvolt = <3800000>;
67*79f63593SJosua Mayer		gpio = <&gpio3 25 GPIO_ACTIVE_HIGH>;
68*79f63593SJosua Mayer		enable-active-high;
69*79f63593SJosua Mayer	};
70*79f63593SJosua Mayer
71*79f63593SJosua Mayer	/* power to lte modems behind hub ports 2/3 */
72*79f63593SJosua Mayer	reg_modem_vbus: regulator-modem-vbus {
73*79f63593SJosua Mayer		compatible = "regulator-fixed";
74*79f63593SJosua Mayer		regulator-name = "modem-vbus";
75*79f63593SJosua Mayer		pinctrl-0 = <&regulator_modem_vbus_pins>;
76*79f63593SJosua Mayer		pinctrl-names = "default";
77*79f63593SJosua Mayer		regulator-always-on;
78*79f63593SJosua Mayer		regulator-max-microvolt = <5000000>;
79*79f63593SJosua Mayer		regulator-min-microvolt = <5000000>;
80*79f63593SJosua Mayer		gpio = <&gpio5 4 GPIO_ACTIVE_HIGH>;
81*79f63593SJosua Mayer		enable-active-high;
82*79f63593SJosua Mayer	};
83*79f63593SJosua Mayer
84*79f63593SJosua Mayer	/* power to usb hub, and type-a behind hub port 1 */
85*79f63593SJosua Mayer	reg_usb1_vbus: regulator-usb1-vbus {
86*79f63593SJosua Mayer		compatible = "regulator-fixed";
87*79f63593SJosua Mayer		regulator-name = "usb1-vbus";
88*79f63593SJosua Mayer		pinctrl-0 = <&regulator_usb1_vbus_pins>;
89*79f63593SJosua Mayer		pinctrl-names = "default";
90*79f63593SJosua Mayer		regulator-max-microvolt = <5000000>;
91*79f63593SJosua Mayer		regulator-min-microvolt = <5000000>;
92*79f63593SJosua Mayer		gpio = <&gpio5 5 GPIO_ACTIVE_HIGH>;
93*79f63593SJosua Mayer		enable-active-high;
94*79f63593SJosua Mayer	};
95*79f63593SJosua Mayer
96*79f63593SJosua Mayer	reg_usdhc2_vmmc: regulator-usdhc2-vmmc {
97*79f63593SJosua Mayer		compatible = "regulator-fixed";
98*79f63593SJosua Mayer		regulator-name = "usdhc2-vmmc";
99*79f63593SJosua Mayer		off-on-delay-us = <250>;
100*79f63593SJosua Mayer		pinctrl-0 = <&regulator_usdhc2_vmmc_pins>;
101*79f63593SJosua Mayer		pinctrl-names = "default";
102*79f63593SJosua Mayer		regulator-max-microvolt = <3300000>;
103*79f63593SJosua Mayer		regulator-min-microvolt = <3300000>;
104*79f63593SJosua Mayer		vin-supply = <&reg_vdd_3v3>;
105*79f63593SJosua Mayer		gpio = <&gpio2 19 GPIO_ACTIVE_HIGH>;
106*79f63593SJosua Mayer		enable-active-high;
107*79f63593SJosua Mayer	};
108*79f63593SJosua Mayer
109*79f63593SJosua Mayer	reg_vdd_1v8: regulator-vdd-1v8 {
110*79f63593SJosua Mayer		compatible = "regulator-fixed";
111*79f63593SJosua Mayer		regulator-name = "vdd-1v8";
112*79f63593SJosua Mayer		regulator-max-microvolt = <1800000>;
113*79f63593SJosua Mayer		regulator-min-microvolt = <1800000>;
114*79f63593SJosua Mayer	};
115*79f63593SJosua Mayer
116*79f63593SJosua Mayer	reg_vdd_3v3: regulator-vdd-3v3 {
117*79f63593SJosua Mayer		compatible = "regulator-fixed";
118*79f63593SJosua Mayer		regulator-name = "vdd-3v3";
119*79f63593SJosua Mayer		regulator-max-microvolt = <3300000>;
120*79f63593SJosua Mayer		regulator-min-microvolt = <3300000>;
121*79f63593SJosua Mayer	};
122*79f63593SJosua Mayer
123*79f63593SJosua Mayer	rfkill {
124*79f63593SJosua Mayer		compatible = "rfkill-gpio";
125*79f63593SJosua Mayer		/* rfkill-gpio inverts internally */
126*79f63593SJosua Mayer		shutdown-gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
127*79f63593SJosua Mayer		label = "rfkill-wwan";
128*79f63593SJosua Mayer		pinctrl-0 = <&modem_pins>;
129*79f63593SJosua Mayer		pinctrl-names = "default";
130*79f63593SJosua Mayer		radio-type = "wwan";
131*79f63593SJosua Mayer	};
132*79f63593SJosua Mayer
133*79f63593SJosua Mayer	usdhc1_pwrseq: usdhc1-pwrseq {
134*79f63593SJosua Mayer		compatible = "mmc-pwrseq-simple";
135*79f63593SJosua Mayer		reset-gpios = <&gpio2 10 GPIO_ACTIVE_LOW>;
136*79f63593SJosua Mayer	};
137*79f63593SJosua Mayer
138*79f63593SJosua Mayer	memory@40000000 {
139*79f63593SJosua Mayer		reg = <0x0 0x40000000 0 0x80000000>;
140*79f63593SJosua Mayer		device_type = "memory";
141*79f63593SJosua Mayer	};
142*79f63593SJosua Mayer};
143*79f63593SJosua Mayer
144*79f63593SJosua Mayer&A53_0 {
145*79f63593SJosua Mayer	cpu-supply = <&buck2_reg>;
146*79f63593SJosua Mayer};
147*79f63593SJosua Mayer
148*79f63593SJosua Mayer&A53_1 {
149*79f63593SJosua Mayer	cpu-supply = <&buck2_reg>;
150*79f63593SJosua Mayer};
151*79f63593SJosua Mayer
152*79f63593SJosua Mayer&A53_2 {
153*79f63593SJosua Mayer	cpu-supply = <&buck2_reg>;
154*79f63593SJosua Mayer};
155*79f63593SJosua Mayer
156*79f63593SJosua Mayer&A53_3 {
157*79f63593SJosua Mayer	cpu-supply = <&buck2_reg>;
158*79f63593SJosua Mayer};
159*79f63593SJosua Mayer
160*79f63593SJosua Mayer&ddrc {
161*79f63593SJosua Mayer	operating-points-v2 = <&ddrc_opp_table>;
162*79f63593SJosua Mayer
163*79f63593SJosua Mayer	ddrc_opp_table: opp-table {
164*79f63593SJosua Mayer		compatible = "operating-points-v2";
165*79f63593SJosua Mayer
166*79f63593SJosua Mayer		opp-266500000 {
167*79f63593SJosua Mayer			opp-hz = /bits/ 64 <266500000>;
168*79f63593SJosua Mayer		};
169*79f63593SJosua Mayer
170*79f63593SJosua Mayer		opp-600000000 {
171*79f63593SJosua Mayer			opp-hz = /bits/ 64 <600000000>;
172*79f63593SJosua Mayer		};
173*79f63593SJosua Mayer	};
174*79f63593SJosua Mayer};
175*79f63593SJosua Mayer
176*79f63593SJosua Mayer&ecspi2 {
177*79f63593SJosua Mayer	/* native chip-select causes reading 0xffffffff */
178*79f63593SJosua Mayer	cs-gpios = <&gpio5 13 GPIO_ACTIVE_LOW>;
179*79f63593SJosua Mayer	num-cs = <1>;
180*79f63593SJosua Mayer	pinctrl-0 = <&ecspi2_pins>;
181*79f63593SJosua Mayer	pinctrl-names = "default";
182*79f63593SJosua Mayer	status = "okay";
183*79f63593SJosua Mayer
184*79f63593SJosua Mayer	can@0 {
185*79f63593SJosua Mayer		compatible = "microchip,mcp2518fd";
186*79f63593SJosua Mayer		reg = <0>;
187*79f63593SJosua Mayer		interrupt-parent = <&gpio5>;
188*79f63593SJosua Mayer		interrupts = <1 IRQ_TYPE_EDGE_FALLING>;
189*79f63593SJosua Mayer		clocks = <&clk IMX8MN_CLK_CLKOUT1>;
190*79f63593SJosua Mayer		/* generate 8MHz clock from soc-internal 24mhz reference */
191*79f63593SJosua Mayer		assigned-clock-parents = <&clk IMX8MN_CLK_24M>, <0>;
192*79f63593SJosua Mayer		assigned-clock-rates = <0>, <8000000>;
193*79f63593SJosua Mayer		assigned-clocks = <&clk IMX8MN_CLK_CLKOUT1_SEL>,
194*79f63593SJosua Mayer			  <&clk IMX8MN_CLK_CLKOUT1_DIV>;
195*79f63593SJosua Mayer		pinctrl-0 = <&can_pins>;
196*79f63593SJosua Mayer		pinctrl-names = "default";
197*79f63593SJosua Mayer		spi-max-frequency = <20000000>;
198*79f63593SJosua Mayer	};
199*79f63593SJosua Mayer};
200*79f63593SJosua Mayer
201*79f63593SJosua Mayer&fec1 {
202*79f63593SJosua Mayer	phy-handle = <&phy4>;
203*79f63593SJosua Mayer	phy-mode = "rgmii-id";
204*79f63593SJosua Mayer	pinctrl-0 = <&fec1_pins>;
205*79f63593SJosua Mayer	pinctrl-names = "default";
206*79f63593SJosua Mayer	status = "okay";
207*79f63593SJosua Mayer
208*79f63593SJosua Mayer	mdio {
209*79f63593SJosua Mayer		#address-cells = <1>;
210*79f63593SJosua Mayer		#size-cells = <0>;
211*79f63593SJosua Mayer
212*79f63593SJosua Mayer		/*
213*79f63593SJosua Mayer		 * Depending on board revision two different phys are used:
214*79f63593SJosua Mayer		 * - v1.1: atheros phy at address 4
215*79f63593SJosua Mayer		 * - v1.2+: analog devices phy at address 0
216*79f63593SJosua Mayer		 * Configure first version by default.
217*79f63593SJosua Mayer		 * On v1.2 and later, U-Boot will enable the correct phy
218*79f63593SJosua Mayer		 * based on runtime detection and patch dtb accordingly.
219*79f63593SJosua Mayer		 */
220*79f63593SJosua Mayer
221*79f63593SJosua Mayer		/* ADIN1300 */
222*79f63593SJosua Mayer		phy0: ethernet-phy@0 {
223*79f63593SJosua Mayer			reg = <0>;
224*79f63593SJosua Mayer			interrupt-parent = <&gpio1>;
225*79f63593SJosua Mayer			interrupts = <10 IRQ_TYPE_LEVEL_LOW>;
226*79f63593SJosua Mayer			reset-assert-us = <10>;
227*79f63593SJosua Mayer			reset-deassert-us = <5000>;
228*79f63593SJosua Mayer			reset-gpios = <&gpio3 19 GPIO_ACTIVE_LOW>;
229*79f63593SJosua Mayer			adi,led-polarity = <GPIO_ACTIVE_LOW>;
230*79f63593SJosua Mayer			adi,link-st-polarity = <GPIO_ACTIVE_LOW>;
231*79f63593SJosua Mayer			status = "disabled";
232*79f63593SJosua Mayer
233*79f63593SJosua Mayer			leds {
234*79f63593SJosua Mayer				#address-cells = <1>;
235*79f63593SJosua Mayer				#size-cells = <0>;
236*79f63593SJosua Mayer
237*79f63593SJosua Mayer				led@0 {
238*79f63593SJosua Mayer					reg = <0>;
239*79f63593SJosua Mayer					active-low;
240*79f63593SJosua Mayer					color = <LED_COLOR_ID_YELLOW>;
241*79f63593SJosua Mayer					default-state = "keep";
242*79f63593SJosua Mayer					function = LED_FUNCTION_LAN;
243*79f63593SJosua Mayer				};
244*79f63593SJosua Mayer			};
245*79f63593SJosua Mayer		};
246*79f63593SJosua Mayer
247*79f63593SJosua Mayer		/* AR8035 */
248*79f63593SJosua Mayer		phy4: ethernet-phy@4 {
249*79f63593SJosua Mayer			reg = <4>;
250*79f63593SJosua Mayer			reset-assert-us = <10000>;
251*79f63593SJosua Mayer			reset-gpios = <&gpio3 19 GPIO_ACTIVE_LOW>;
252*79f63593SJosua Mayer			status = "okay";
253*79f63593SJosua Mayer		};
254*79f63593SJosua Mayer	};
255*79f63593SJosua Mayer};
256*79f63593SJosua Mayer
257*79f63593SJosua Mayer&gpio5 {
258*79f63593SJosua Mayer	usb-hub-reset-hog {
259*79f63593SJosua Mayer		line-name = "usb-hub-reset";
260*79f63593SJosua Mayer		gpios = <3 GPIO_ACTIVE_LOW>;
261*79f63593SJosua Mayer		gpio-hog;
262*79f63593SJosua Mayer		/* deasserted */
263*79f63593SJosua Mayer		output-low;
264*79f63593SJosua Mayer	};
265*79f63593SJosua Mayer};
266*79f63593SJosua Mayer
267*79f63593SJosua Mayer&i2c1 {
268*79f63593SJosua Mayer	pinctrl-0 = <&i2c1_pins>;
269*79f63593SJosua Mayer	pinctrl-names = "default";
270*79f63593SJosua Mayer	status = "okay";
271*79f63593SJosua Mayer
272*79f63593SJosua Mayer	pmic@4b {
273*79f63593SJosua Mayer		compatible = "rohm,bd71847";
274*79f63593SJosua Mayer		reg = <0x4b>;
275*79f63593SJosua Mayer		interrupt-parent = <&gpio1>;
276*79f63593SJosua Mayer		interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
277*79f63593SJosua Mayer		clocks = <&osc_32k>;
278*79f63593SJosua Mayer		#clock-cells = <0>;
279*79f63593SJosua Mayer		clock-output-names = "clk-32k-out";
280*79f63593SJosua Mayer		pinctrl-0 = <&pmic_pins>;
281*79f63593SJosua Mayer		pinctrl-names = "default";
282*79f63593SJosua Mayer		rohm,reset-snvs-powered;
283*79f63593SJosua Mayer
284*79f63593SJosua Mayer		regulators {
285*79f63593SJosua Mayer			BUCK1 {
286*79f63593SJosua Mayer				regulator-always-on;
287*79f63593SJosua Mayer				regulator-boot-on;
288*79f63593SJosua Mayer				regulator-max-microvolt = <1300000>;
289*79f63593SJosua Mayer				regulator-min-microvolt = <700000>;
290*79f63593SJosua Mayer				regulator-ramp-delay = <1250>;
291*79f63593SJosua Mayer				// supplies soc vdd, soc mipi vdd @ 0.9V
292*79f63593SJosua Mayer				regulator-name = "buck1";
293*79f63593SJosua Mayer				rohm,dvs-run-voltage = <850000>;
294*79f63593SJosua Mayer				rohm,dvs-suspend-voltage = <750000>;
295*79f63593SJosua Mayer			};
296*79f63593SJosua Mayer
297*79f63593SJosua Mayer			buck2_reg: BUCK2 {
298*79f63593SJosua Mayer				regulator-name = "buck2";
299*79f63593SJosua Mayer				regulator-always-on;
300*79f63593SJosua Mayer				regulator-boot-on;
301*79f63593SJosua Mayer				regulator-max-microvolt = <1300000>;
302*79f63593SJosua Mayer				regulator-min-microvolt = <700000>;
303*79f63593SJosua Mayer				regulator-ramp-delay = <1250>;
304*79f63593SJosua Mayer				rohm,dvs-idle-voltage = <900000>;
305*79f63593SJosua Mayer				rohm,dvs-run-voltage = <1000000>;
306*79f63593SJosua Mayer				rohm,dvs-suspend-voltage = <0>;
307*79f63593SJosua Mayer			};
308*79f63593SJosua Mayer
309*79f63593SJosua Mayer			BUCK3 {
310*79f63593SJosua Mayer				// BUCK5 in datasheet
311*79f63593SJosua Mayer				// output floating
312*79f63593SJosua Mayer				regulator-name = "buck3";
313*79f63593SJosua Mayer				regulator-max-microvolt = <1350000>;
314*79f63593SJosua Mayer				regulator-min-microvolt = <700000>;
315*79f63593SJosua Mayer			};
316*79f63593SJosua Mayer
317*79f63593SJosua Mayer			BUCK4 {
318*79f63593SJosua Mayer				regulator-always-on;
319*79f63593SJosua Mayer				regulator-boot-on;
320*79f63593SJosua Mayer				regulator-max-microvolt = <3300000>;
321*79f63593SJosua Mayer				regulator-min-microvolt = <3000000>;
322*79f63593SJosua Mayer				// BUCK6 in datasheet
323*79f63593SJosua Mayer				// supplies ldo3, ldo5, muxsw
324*79f63593SJosua Mayer				regulator-name = "buck4";
325*79f63593SJosua Mayer			};
326*79f63593SJosua Mayer
327*79f63593SJosua Mayer			BUCK5 {
328*79f63593SJosua Mayer				regulator-always-on;
329*79f63593SJosua Mayer				regulator-boot-on;
330*79f63593SJosua Mayer				regulator-max-microvolt = <1995000>;
331*79f63593SJosua Mayer				regulator-min-microvolt = <1605000>;
332*79f63593SJosua Mayer				// BUCK7 in datasheet
333*79f63593SJosua Mayer				// supplies ldo4, ldo6, muxsw
334*79f63593SJosua Mayer				// enables dram vpp @ 2.5V
335*79f63593SJosua Mayer				regulator-name = "buck5";
336*79f63593SJosua Mayer			};
337*79f63593SJosua Mayer
338*79f63593SJosua Mayer			BUCK6 {
339*79f63593SJosua Mayer				// BUCK8 in datasheet
340*79f63593SJosua Mayer				// supplies dram @ 1.2V
341*79f63593SJosua Mayer				regulator-name = "buck6";
342*79f63593SJosua Mayer				regulator-always-on;
343*79f63593SJosua Mayer				regulator-boot-on;
344*79f63593SJosua Mayer				regulator-max-microvolt = <1400000>;
345*79f63593SJosua Mayer				regulator-min-microvolt = <800000>;
346*79f63593SJosua Mayer			};
347*79f63593SJosua Mayer
348*79f63593SJosua Mayer			LDO1 {
349*79f63593SJosua Mayer				// supplies soc snvs @ 1.8V
350*79f63593SJosua Mayer				regulator-name = "ldo1";
351*79f63593SJosua Mayer				regulator-always-on;
352*79f63593SJosua Mayer				regulator-boot-on;
353*79f63593SJosua Mayer				regulator-max-microvolt = <3300000>;
354*79f63593SJosua Mayer				regulator-min-microvolt = <1600000>;
355*79f63593SJosua Mayer			};
356*79f63593SJosua Mayer
357*79f63593SJosua Mayer			LDO2 {
358*79f63593SJosua Mayer				// supplies soc snvs @ 0.8V
359*79f63593SJosua Mayer				regulator-name = "ldo2";
360*79f63593SJosua Mayer				regulator-always-on;
361*79f63593SJosua Mayer				regulator-boot-on;
362*79f63593SJosua Mayer				regulator-max-microvolt = <900000>;
363*79f63593SJosua Mayer				regulator-min-microvolt = <800000>;
364*79f63593SJosua Mayer			};
365*79f63593SJosua Mayer
366*79f63593SJosua Mayer			LDO3 {
367*79f63593SJosua Mayer				// supplies soc vdd @ 1.8V
368*79f63593SJosua Mayer				regulator-name = "ldo3";
369*79f63593SJosua Mayer				regulator-always-on;
370*79f63593SJosua Mayer				regulator-boot-on;
371*79f63593SJosua Mayer				regulator-max-microvolt = <3300000>;
372*79f63593SJosua Mayer				regulator-min-microvolt = <1800000>;
373*79f63593SJosua Mayer			};
374*79f63593SJosua Mayer
375*79f63593SJosua Mayer			LDO4 {
376*79f63593SJosua Mayer				// output floating
377*79f63593SJosua Mayer				regulator-name = "ldo4";
378*79f63593SJosua Mayer				regulator-max-microvolt = <1800000>;
379*79f63593SJosua Mayer				regulator-min-microvolt = <900000>;
380*79f63593SJosua Mayer			};
381*79f63593SJosua Mayer
382*79f63593SJosua Mayer			LDO5 {
383*79f63593SJosua Mayer				// output floating
384*79f63593SJosua Mayer				regulator-name = "ldo5";
385*79f63593SJosua Mayer				regulator-max-microvolt = <3300000>;
386*79f63593SJosua Mayer				regulator-min-microvolt = <800000>;
387*79f63593SJosua Mayer			};
388*79f63593SJosua Mayer
389*79f63593SJosua Mayer			LDO6 {
390*79f63593SJosua Mayer				// supplies soc vdd mipi @ 1.2V
391*79f63593SJosua Mayer				regulator-name = "ldo6";
392*79f63593SJosua Mayer				regulator-always-on;
393*79f63593SJosua Mayer				regulator-boot-on;
394*79f63593SJosua Mayer				regulator-max-microvolt = <1800000>;
395*79f63593SJosua Mayer				regulator-min-microvolt = <900000>;
396*79f63593SJosua Mayer			};
397*79f63593SJosua Mayer		};
398*79f63593SJosua Mayer	};
399*79f63593SJosua Mayer};
400*79f63593SJosua Mayer
401*79f63593SJosua Mayer&i2c2 {
402*79f63593SJosua Mayer	/*
403*79f63593SJosua Mayer	 * routed to various connectors:
404*79f63593SJosua Mayer	 * - basler camera (CON2)
405*79f63593SJosua Mayer	 * - touchscreen (J3)
406*79f63593SJosua Mayer	 * - expansion connector (J14)
407*79f63593SJosua Mayer	 */
408*79f63593SJosua Mayer	pinctrl-names = "default";
409*79f63593SJosua Mayer	pinctrl-0 = <&i2c2_pins>;
410*79f63593SJosua Mayer	status = "okay";
411*79f63593SJosua Mayer};
412*79f63593SJosua Mayer
413*79f63593SJosua Mayer&i2c3 {
414*79f63593SJosua Mayer	pinctrl-0 = <&i2c3_pins>;
415*79f63593SJosua Mayer	pinctrl-names = "default";
416*79f63593SJosua Mayer	status = "okay";
417*79f63593SJosua Mayer
418*79f63593SJosua Mayer	expander: gpio@20 {
419*79f63593SJosua Mayer		compatible = "ti,tca6408";
420*79f63593SJosua Mayer		reg = <0x20>;
421*79f63593SJosua Mayer		#interrupt-cells = <2>;
422*79f63593SJosua Mayer		interrupt-controller;
423*79f63593SJosua Mayer		interrupt-parent = <&gpio2>;
424*79f63593SJosua Mayer		interrupts = <11 IRQ_TYPE_EDGE_FALLING>;
425*79f63593SJosua Mayer		#gpio-cells = <2>;
426*79f63593SJosua Mayer		gpio-controller;
427*79f63593SJosua Mayer		gpio-line-names = "SYSGD", "PFO#", "CAPGD", "CAPFLT#",
428*79f63593SJosua Mayer				  "CHGEN#", "BSTEN#", "", "";
429*79f63593SJosua Mayer		pinctrl-0 = <&gpio_expander_pins>;
430*79f63593SJosua Mayer		pinctrl-names = "default";
431*79f63593SJosua Mayer		reset-gpios = <&gpio3 16 GPIO_ACTIVE_LOW>;
432*79f63593SJosua Mayer	};
433*79f63593SJosua Mayer
434*79f63593SJosua Mayer	light-sensor@44 {
435*79f63593SJosua Mayer		compatible = "isil,isl29023";
436*79f63593SJosua Mayer		reg = <0x44>;
437*79f63593SJosua Mayer	};
438*79f63593SJosua Mayer
439*79f63593SJosua Mayer	accelerometer@53 {
440*79f63593SJosua Mayer		compatible = "adi,adxl345";
441*79f63593SJosua Mayer		reg = <0x53>;
442*79f63593SJosua Mayer	};
443*79f63593SJosua Mayer
444*79f63593SJosua Mayer	/* battery-charger@68 */
445*79f63593SJosua Mayer
446*79f63593SJosua Mayer	rtc: rtc@69 {
447*79f63593SJosua Mayer		compatible = "abracon,abx80x";
448*79f63593SJosua Mayer		reg = <0x69>;
449*79f63593SJosua Mayer		interrupt-parent = <&gpio1>;
450*79f63593SJosua Mayer		interrupts = <1 IRQ_TYPE_EDGE_FALLING>;
451*79f63593SJosua Mayer		pinctrl-0 = <&rtc_pins>;
452*79f63593SJosua Mayer		pinctrl-names = "default";
453*79f63593SJosua Mayer		abracon,tc-diode = "schottky";
454*79f63593SJosua Mayer		abracon,tc-resistor = <3>;
455*79f63593SJosua Mayer	};
456*79f63593SJosua Mayer};
457*79f63593SJosua Mayer
458*79f63593SJosua Mayer&i2c4 {
459*79f63593SJosua Mayer	/* routed to expansion connector (J14) */
460*79f63593SJosua Mayer	pinctrl-names = "default";
461*79f63593SJosua Mayer	pinctrl-0 = <&i2c4_pins>;
462*79f63593SJosua Mayer	status = "okay";
463*79f63593SJosua Mayer};
464*79f63593SJosua Mayer
465*79f63593SJosua Mayer&iomuxc {
466*79f63593SJosua Mayer	pinctrl-0 = <&tamper_pins>, <&usb_hub_pins>;
467*79f63593SJosua Mayer	pinctrl-names = "default";
468*79f63593SJosua Mayer
469*79f63593SJosua Mayer	can_pins: pinctrl-can-grp {
470*79f63593SJosua Mayer		fsl,pins = <
471*79f63593SJosua Mayer			MX8MN_IOMUXC_SAI3_TXD_GPIO5_IO1		0x140
472*79f63593SJosua Mayer		>;
473*79f63593SJosua Mayer	};
474*79f63593SJosua Mayer
475*79f63593SJosua Mayer	ecspi2_pins: pinctrl-ecspi2-grp {
476*79f63593SJosua Mayer		fsl,pins = <
477*79f63593SJosua Mayer			MX8MN_IOMUXC_ECSPI2_SCLK_ECSPI2_SCLK	0x96
478*79f63593SJosua Mayer			MX8MN_IOMUXC_ECSPI2_MOSI_ECSPI2_MOSI	0x1d6
479*79f63593SJosua Mayer			MX8MN_IOMUXC_ECSPI2_MISO_ECSPI2_MISO	0x1d6
480*79f63593SJosua Mayer			MX8MN_IOMUXC_ECSPI2_SS0_GPIO5_IO13	0x1d6
481*79f63593SJosua Mayer		>;
482*79f63593SJosua Mayer	};
483*79f63593SJosua Mayer
484*79f63593SJosua Mayer	fec1_pins: pinctrl-fec1-grp {
485*79f63593SJosua Mayer		/*
486*79f63593SJosua Mayer		 * Some pins are sampled at phy reset to apply configuration:
487*79f63593SJosua Mayer		 * - AR803x PHY (revision 1.1)
488*79f63593SJosua Mayer		 *   - RXD[1:0]: phy address bits [1:0]
489*79f63593SJosua Mayer		 *   - RXD[3:2],RX_CTL: mac interface select bits 3,1,0
490*79f63593SJosua Mayer		 * - ADIN1300 PHY (revision 1.2 or later)
491*79f63593SJosua Mayer		 *   - RXD[3:0]: phy address bits [3:0]
492*79f63593SJosua Mayer		 *   - RX_CTL,RXC: mac interface select bits 1,0
493*79f63593SJosua Mayer		 * SoC enables pull-down at reset, PHYs have internal
494*79f63593SJosua Mayer		 * pull-down, so pinmux may unset pull-enable.
495*79f63593SJosua Mayer		 */
496*79f63593SJosua Mayer		fsl,pins = <
497*79f63593SJosua Mayer			MX8MN_IOMUXC_ENET_MDC_ENET1_MDC			0x2
498*79f63593SJosua Mayer			MX8MN_IOMUXC_ENET_MDIO_ENET1_MDIO		0x2
499*79f63593SJosua Mayer			MX8MN_IOMUXC_ENET_TD3_ENET1_RGMII_TD3		0x1e
500*79f63593SJosua Mayer			MX8MN_IOMUXC_ENET_TD2_ENET1_RGMII_TD2		0x1e
501*79f63593SJosua Mayer			MX8MN_IOMUXC_ENET_TD1_ENET1_RGMII_TD1		0x1e
502*79f63593SJosua Mayer			MX8MN_IOMUXC_ENET_TD0_ENET1_RGMII_TD0		0x1e
503*79f63593SJosua Mayer			/* RD[3:0] sampled at phy reset for address bits [3:0] */
504*79f63593SJosua Mayer			MX8MN_IOMUXC_ENET_RD3_ENET1_RGMII_RD3		0x90
505*79f63593SJosua Mayer			MX8MN_IOMUXC_ENET_RD2_ENET1_RGMII_RD2		0x90
506*79f63593SJosua Mayer			MX8MN_IOMUXC_ENET_RD1_ENET1_RGMII_RD1		0x90
507*79f63593SJosua Mayer			MX8MN_IOMUXC_ENET_RD0_ENET1_RGMII_RD0		0x90
508*79f63593SJosua Mayer			MX8MN_IOMUXC_ENET_TXC_ENET1_RGMII_TXC		0x10
509*79f63593SJosua Mayer			MX8MN_IOMUXC_ENET_RXC_ENET1_RGMII_RXC		0x90
510*79f63593SJosua Mayer			MX8MN_IOMUXC_ENET_RX_CTL_ENET1_RGMII_RX_CTL	0x90
511*79f63593SJosua Mayer			MX8MN_IOMUXC_ENET_TX_CTL_ENET1_RGMII_TX_CTL	0x10
512*79f63593SJosua Mayer			/* phy reset */
513*79f63593SJosua Mayer			MX8MN_IOMUXC_SAI5_RXFS_GPIO3_IO19		0x0
514*79f63593SJosua Mayer			/* phy interrupt */
515*79f63593SJosua Mayer			MX8MN_IOMUXC_GPIO1_IO10_GPIO1_IO10		0x140
516*79f63593SJosua Mayer		>;
517*79f63593SJosua Mayer	};
518*79f63593SJosua Mayer
519*79f63593SJosua Mayer	gpio_expander_pins: pinctrl-gpio-expander-grp {
520*79f63593SJosua Mayer		fsl,pins = <
521*79f63593SJosua Mayer			MX8MN_IOMUXC_NAND_READY_B_GPIO3_IO16	0x140
522*79f63593SJosua Mayer			MX8MN_IOMUXC_SD1_STROBE_GPIO2_IO11	0x140
523*79f63593SJosua Mayer		>;
524*79f63593SJosua Mayer	};
525*79f63593SJosua Mayer
526*79f63593SJosua Mayer	i2c1_pins: pinctrl-i2c1-grp {
527*79f63593SJosua Mayer		fsl,pins = <
528*79f63593SJosua Mayer			MX8MN_IOMUXC_I2C1_SCL_I2C1_SCL		0x400001c2
529*79f63593SJosua Mayer			MX8MN_IOMUXC_I2C1_SDA_I2C1_SDA		0x400001c2
530*79f63593SJosua Mayer		>;
531*79f63593SJosua Mayer	};
532*79f63593SJosua Mayer
533*79f63593SJosua Mayer	i2c2_pins: pinctrl-i2c2-grp {
534*79f63593SJosua Mayer		fsl,pins = <
535*79f63593SJosua Mayer			MX8MN_IOMUXC_I2C2_SCL_I2C2_SCL		0x400001c2
536*79f63593SJosua Mayer			MX8MN_IOMUXC_I2C2_SDA_I2C2_SDA		0x400001c2
537*79f63593SJosua Mayer		>;
538*79f63593SJosua Mayer	};
539*79f63593SJosua Mayer
540*79f63593SJosua Mayer	i2c3_pins: pinctrl-i2c3-grp {
541*79f63593SJosua Mayer		fsl,pins = <
542*79f63593SJosua Mayer			MX8MN_IOMUXC_I2C3_SCL_I2C3_SCL		0x400001c2
543*79f63593SJosua Mayer			MX8MN_IOMUXC_I2C3_SDA_I2C3_SDA		0x400001c2
544*79f63593SJosua Mayer		>;
545*79f63593SJosua Mayer	};
546*79f63593SJosua Mayer
547*79f63593SJosua Mayer	i2c4_pins: pinctrl-i2c4-grp {
548*79f63593SJosua Mayer		fsl,pins = <
549*79f63593SJosua Mayer			MX8MN_IOMUXC_I2C4_SCL_I2C4_SCL		0x400001c2
550*79f63593SJosua Mayer			MX8MN_IOMUXC_I2C4_SDA_I2C4_SDA		0x400001c2
551*79f63593SJosua Mayer		>;
552*79f63593SJosua Mayer	};
553*79f63593SJosua Mayer
554*79f63593SJosua Mayer	ieee802151_radio_pins: pinctrl-ieee802151-radio-grp {
555*79f63593SJosua Mayer		fsl,pins = <
556*79f63593SJosua Mayer			/* RESETN */
557*79f63593SJosua Mayer			MX8MN_IOMUXC_GPIO1_IO05_GPIO1_IO5	0x0
558*79f63593SJosua Mayer			/* VDD_EN */
559*79f63593SJosua Mayer			MX8MN_IOMUXC_GPIO1_IO06_GPIO1_IO6	0x0
560*79f63593SJosua Mayer			/* SWDCLK */
561*79f63593SJosua Mayer			MX8MN_IOMUXC_GPIO1_IO14_GPIO1_IO14	0x0
562*79f63593SJosua Mayer			/* SDIO */
563*79f63593SJosua Mayer			MX8MN_IOMUXC_GPIO1_IO15_GPIO1_IO15	0x0
564*79f63593SJosua Mayer		>;
565*79f63593SJosua Mayer	};
566*79f63593SJosua Mayer
567*79f63593SJosua Mayer	led_pins: pinctrl-led-grp {
568*79f63593SJosua Mayer		fsl,pins = <
569*79f63593SJosua Mayer			MX8MN_IOMUXC_GPIO1_IO11_GPIO1_IO11	0x100
570*79f63593SJosua Mayer			MX8MN_IOMUXC_GPIO1_IO12_GPIO1_IO12	0x100
571*79f63593SJosua Mayer			MX8MN_IOMUXC_GPIO1_IO13_GPIO1_IO13	0x100
572*79f63593SJosua Mayer		>;
573*79f63593SJosua Mayer	};
574*79f63593SJosua Mayer
575*79f63593SJosua Mayer	modem_pins: pinctrl-modem-grp {
576*79f63593SJosua Mayer		fsl,pins = <
577*79f63593SJosua Mayer			/* RESET_N: modem-internal pull-down */
578*79f63593SJosua Mayer			MX8MN_IOMUXC_GPIO1_IO07_GPIO1_IO7	0x0
579*79f63593SJosua Mayer			/* PWRKEY: pull-down ensures always-on */
580*79f63593SJosua Mayer			MX8MN_IOMUXC_GPIO1_IO08_GPIO1_IO8	0x100
581*79f63593SJosua Mayer		>;
582*79f63593SJosua Mayer	};
583*79f63593SJosua Mayer
584*79f63593SJosua Mayer	pmic_pins: pinctrl-pmic-grp {
585*79f63593SJosua Mayer		fsl,pins = <
586*79f63593SJosua Mayer			MX8MN_IOMUXC_GPIO1_IO03_GPIO1_IO3	0x140
587*79f63593SJosua Mayer		>;
588*79f63593SJosua Mayer	};
589*79f63593SJosua Mayer
590*79f63593SJosua Mayer	regulator_modem_vbat_pins: pinctrl-regulator-modem-vbat-grp {
591*79f63593SJosua Mayer		fsl,pins = <
592*79f63593SJosua Mayer			MX8MN_IOMUXC_SAI5_MCLK_GPIO3_IO25	0x0
593*79f63593SJosua Mayer		>;
594*79f63593SJosua Mayer	};
595*79f63593SJosua Mayer
596*79f63593SJosua Mayer	regulator_modem_vbus_pins: pinctrl-regulator-modem-vbus-grp {
597*79f63593SJosua Mayer		fsl,pins = <
598*79f63593SJosua Mayer			MX8MN_IOMUXC_SPDIF_RX_GPIO5_IO4		0x0
599*79f63593SJosua Mayer		>;
600*79f63593SJosua Mayer	};
601*79f63593SJosua Mayer
602*79f63593SJosua Mayer	regulator_usb1_vbus_pins: pinctrl-regulator-usb1-vbus-grp {
603*79f63593SJosua Mayer		fsl,pins = <
604*79f63593SJosua Mayer			MX8MN_IOMUXC_SPDIF_EXT_CLK_GPIO5_IO5	0x0
605*79f63593SJosua Mayer		>;
606*79f63593SJosua Mayer	};
607*79f63593SJosua Mayer
608*79f63593SJosua Mayer	regulator_usdhc2_vmmc_pins: pinctrl-regulator-usdhc2-vmmc-grp {
609*79f63593SJosua Mayer		fsl,pins = <
610*79f63593SJosua Mayer			MX8MN_IOMUXC_SD2_RESET_B_GPIO2_IO19	0x0
611*79f63593SJosua Mayer		>;
612*79f63593SJosua Mayer	};
613*79f63593SJosua Mayer
614*79f63593SJosua Mayer	rtc_pins: pinctrl-rtc-grp {
615*79f63593SJosua Mayer		fsl,pins = <
616*79f63593SJosua Mayer			MX8MN_IOMUXC_GPIO1_IO01_GPIO1_IO1	0x140
617*79f63593SJosua Mayer			MX8MN_IOMUXC_SAI3_RXFS_GPIO4_IO28	0x100
618*79f63593SJosua Mayer		>;
619*79f63593SJosua Mayer	};
620*79f63593SJosua Mayer
621*79f63593SJosua Mayer	tamper_pins: pinctrl-tamper-grp {
622*79f63593SJosua Mayer		/*
623*79f63593SJosua Mayer		 * Routed to physical tamper input (J12),
624*79f63593SJosua Mayer		 * accelerometer and light-sensor interrupts.
625*79f63593SJosua Mayer		 */
626*79f63593SJosua Mayer		fsl,pins = <
627*79f63593SJosua Mayer			MX8MN_IOMUXC_GPIO1_IO09_GPIO1_IO9	0x140
628*79f63593SJosua Mayer		>;
629*79f63593SJosua Mayer	};
630*79f63593SJosua Mayer
631*79f63593SJosua Mayer	uart1_pins: pinctrl-uart1-grp {
632*79f63593SJosua Mayer		fsl,pins = <
633*79f63593SJosua Mayer			MX8MN_IOMUXC_UART1_RXD_UART1_DCE_RX	0x140
634*79f63593SJosua Mayer			MX8MN_IOMUXC_UART1_TXD_UART1_DCE_TX	0x140
635*79f63593SJosua Mayer			MX8MN_IOMUXC_UART3_RXD_UART1_DCE_CTS_B	0x140
636*79f63593SJosua Mayer			MX8MN_IOMUXC_UART3_TXD_UART1_DCE_RTS_B	0x140
637*79f63593SJosua Mayer			/* BT_REG_ON */
638*79f63593SJosua Mayer			MX8MN_IOMUXC_SD1_DATA4_GPIO2_IO6	0x0
639*79f63593SJosua Mayer			/* BT_WAKE_DEV */
640*79f63593SJosua Mayer			MX8MN_IOMUXC_SD1_DATA5_GPIO2_IO7	0x0
641*79f63593SJosua Mayer			/* BT_WAKE_HOST */
642*79f63593SJosua Mayer			MX8MN_IOMUXC_SD1_DATA6_GPIO2_IO8	0x100
643*79f63593SJosua Mayer		>;
644*79f63593SJosua Mayer	};
645*79f63593SJosua Mayer
646*79f63593SJosua Mayer	uart2_pins: pinctrl-uart2-grp {
647*79f63593SJosua Mayer		fsl,pins = <
648*79f63593SJosua Mayer			MX8MN_IOMUXC_UART2_RXD_UART2_DCE_RX	0x140
649*79f63593SJosua Mayer			MX8MN_IOMUXC_UART2_TXD_UART2_DCE_TX	0x140
650*79f63593SJosua Mayer		>;
651*79f63593SJosua Mayer	};
652*79f63593SJosua Mayer
653*79f63593SJosua Mayer	uart3_pins: pinctrl-uart3-grp {
654*79f63593SJosua Mayer		fsl,pins = <
655*79f63593SJosua Mayer			MX8MN_IOMUXC_ECSPI1_MOSI_UART3_DTE_RX	0x140
656*79f63593SJosua Mayer			MX8MN_IOMUXC_ECSPI1_SCLK_UART3_DTE_TX	0x140
657*79f63593SJosua Mayer			MX8MN_IOMUXC_ECSPI1_MISO_UART3_DTE_RTS_B	0x140
658*79f63593SJosua Mayer			MX8MN_IOMUXC_ECSPI1_SS0_UART3_DTE_CTS_B	0x140
659*79f63593SJosua Mayer		>;
660*79f63593SJosua Mayer	};
661*79f63593SJosua Mayer
662*79f63593SJosua Mayer	uart4_pins: pinctrl-uart4-grp {
663*79f63593SJosua Mayer		fsl,pins = <
664*79f63593SJosua Mayer			MX8MN_IOMUXC_UART4_RXD_UART4_DCE_RX	0x140
665*79f63593SJosua Mayer			MX8MN_IOMUXC_UART4_TXD_UART4_DCE_TX	0x140
666*79f63593SJosua Mayer		>;
667*79f63593SJosua Mayer	};
668*79f63593SJosua Mayer
669*79f63593SJosua Mayer	usb_hub_pins: pinctrl-usb-hub-grp {
670*79f63593SJosua Mayer		fsl,pins = <
671*79f63593SJosua Mayer			MX8MN_IOMUXC_SPDIF_TX_GPIO5_IO3		0x0
672*79f63593SJosua Mayer		>;
673*79f63593SJosua Mayer	};
674*79f63593SJosua Mayer
675*79f63593SJosua Mayer	usdhc1_pins: pinctrl-usdhc1-grp {
676*79f63593SJosua Mayer		fsl,pins = <
677*79f63593SJosua Mayer			MX8MN_IOMUXC_SD1_CLK_USDHC1_CLK		0x190
678*79f63593SJosua Mayer			MX8MN_IOMUXC_SD1_CMD_USDHC1_CMD		0x1d0
679*79f63593SJosua Mayer			MX8MN_IOMUXC_SD1_DATA0_USDHC1_DATA0	0x1d0
680*79f63593SJosua Mayer			MX8MN_IOMUXC_SD1_DATA1_USDHC1_DATA1	0x1d0
681*79f63593SJosua Mayer			MX8MN_IOMUXC_SD1_DATA2_USDHC1_DATA2	0x1d0
682*79f63593SJosua Mayer			MX8MN_IOMUXC_SD1_DATA3_USDHC1_DATA3	0x1d0
683*79f63593SJosua Mayer			/* wifi refclk */
684*79f63593SJosua Mayer			MX8MN_IOMUXC_GPIO1_IO00_ANAMIX_REF_CLK_32K	0x0
685*79f63593SJosua Mayer			/* WL_WAKE_HOST */
686*79f63593SJosua Mayer			MX8MN_IOMUXC_SD1_DATA7_GPIO2_IO9	0x100
687*79f63593SJosua Mayer			/* WL_REG_ON */
688*79f63593SJosua Mayer			MX8MN_IOMUXC_SD1_RESET_B_GPIO2_IO10	0x0
689*79f63593SJosua Mayer		>;
690*79f63593SJosua Mayer	};
691*79f63593SJosua Mayer
692*79f63593SJosua Mayer	usdhc2_100mhz_pins: pinctrl-usdhc2-100mhz-grp {
693*79f63593SJosua Mayer		fsl,pins = <
694*79f63593SJosua Mayer			MX8MN_IOMUXC_SD2_CLK_USDHC2_CLK		0x194
695*79f63593SJosua Mayer			MX8MN_IOMUXC_SD2_CMD_USDHC2_CMD		0x1d4
696*79f63593SJosua Mayer			MX8MN_IOMUXC_SD2_DATA0_USDHC2_DATA0	0x1d4
697*79f63593SJosua Mayer			MX8MN_IOMUXC_SD2_DATA1_USDHC2_DATA1	0x1d4
698*79f63593SJosua Mayer			MX8MN_IOMUXC_SD2_DATA2_USDHC2_DATA2	0x1d4
699*79f63593SJosua Mayer			MX8MN_IOMUXC_SD2_DATA3_USDHC2_DATA3	0x1d4
700*79f63593SJosua Mayer			MX8MN_IOMUXC_SD2_CD_B_USDHC2_CD_B	0x0
701*79f63593SJosua Mayer			/* usdhc2 signalling voltage pmic control */
702*79f63593SJosua Mayer			MX8MN_IOMUXC_GPIO1_IO04_USDHC2_VSELECT	0x140
703*79f63593SJosua Mayer		>;
704*79f63593SJosua Mayer	};
705*79f63593SJosua Mayer
706*79f63593SJosua Mayer	usdhc2_200mhz_pins: pinctrl-usdhc2-100mhz-grp {
707*79f63593SJosua Mayer		fsl,pins = <
708*79f63593SJosua Mayer			MX8MN_IOMUXC_SD2_CLK_USDHC2_CLK		0x196
709*79f63593SJosua Mayer			MX8MN_IOMUXC_SD2_CMD_USDHC2_CMD		0x1d6
710*79f63593SJosua Mayer			MX8MN_IOMUXC_SD2_DATA0_USDHC2_DATA0	0x1d6
711*79f63593SJosua Mayer			MX8MN_IOMUXC_SD2_DATA1_USDHC2_DATA1	0x1d6
712*79f63593SJosua Mayer			MX8MN_IOMUXC_SD2_DATA2_USDHC2_DATA2	0x1d6
713*79f63593SJosua Mayer			MX8MN_IOMUXC_SD2_DATA3_USDHC2_DATA3	0x1d6
714*79f63593SJosua Mayer			MX8MN_IOMUXC_SD2_CD_B_USDHC2_CD_B	0x0
715*79f63593SJosua Mayer			/* usdhc2 signalling voltage pmic control */
716*79f63593SJosua Mayer			MX8MN_IOMUXC_GPIO1_IO04_USDHC2_VSELECT	0x140
717*79f63593SJosua Mayer		>;
718*79f63593SJosua Mayer	};
719*79f63593SJosua Mayer
720*79f63593SJosua Mayer	usdhc2_pins: pinctrl-usdhc2-grp {
721*79f63593SJosua Mayer		fsl,pins = <
722*79f63593SJosua Mayer			MX8MN_IOMUXC_SD2_CLK_USDHC2_CLK		0x190
723*79f63593SJosua Mayer			MX8MN_IOMUXC_SD2_CMD_USDHC2_CMD		0x1d0
724*79f63593SJosua Mayer			MX8MN_IOMUXC_SD2_DATA0_USDHC2_DATA0	0x1d0
725*79f63593SJosua Mayer			MX8MN_IOMUXC_SD2_DATA1_USDHC2_DATA1	0x1d0
726*79f63593SJosua Mayer			MX8MN_IOMUXC_SD2_DATA2_USDHC2_DATA2	0x1d0
727*79f63593SJosua Mayer			MX8MN_IOMUXC_SD2_DATA3_USDHC2_DATA3	0x1d0
728*79f63593SJosua Mayer			MX8MN_IOMUXC_SD2_CD_B_USDHC2_CD_B	0x0
729*79f63593SJosua Mayer			/* usdhc2 signalling voltage pmic control */
730*79f63593SJosua Mayer			MX8MN_IOMUXC_GPIO1_IO04_USDHC2_VSELECT	0x140
731*79f63593SJosua Mayer		>;
732*79f63593SJosua Mayer	};
733*79f63593SJosua Mayer
734*79f63593SJosua Mayer	usdhc3_pins: pinctrl-usdhc3-grp {
735*79f63593SJosua Mayer		fsl,pins = <
736*79f63593SJosua Mayer			MX8MN_IOMUXC_NAND_WE_B_USDHC3_CLK	0x190
737*79f63593SJosua Mayer			MX8MN_IOMUXC_NAND_WP_B_USDHC3_CMD	0x1d0
738*79f63593SJosua Mayer			MX8MN_IOMUXC_NAND_DATA04_USDHC3_DATA0	0x1d0
739*79f63593SJosua Mayer			MX8MN_IOMUXC_NAND_DATA05_USDHC3_DATA1	0x1d0
740*79f63593SJosua Mayer			MX8MN_IOMUXC_NAND_DATA06_USDHC3_DATA2	0x1d0
741*79f63593SJosua Mayer			MX8MN_IOMUXC_NAND_DATA07_USDHC3_DATA3	0x1d0
742*79f63593SJosua Mayer			MX8MN_IOMUXC_NAND_RE_B_USDHC3_DATA4	0x1d0
743*79f63593SJosua Mayer			MX8MN_IOMUXC_NAND_CE2_B_USDHC3_DATA5	0x1d0
744*79f63593SJosua Mayer			MX8MN_IOMUXC_NAND_CE3_B_USDHC3_DATA6	0x1d0
745*79f63593SJosua Mayer			MX8MN_IOMUXC_NAND_CLE_USDHC3_DATA7	0x1d0
746*79f63593SJosua Mayer			MX8MN_IOMUXC_NAND_CE1_B_USDHC3_STROBE	0x190
747*79f63593SJosua Mayer		>;
748*79f63593SJosua Mayer	};
749*79f63593SJosua Mayer
750*79f63593SJosua Mayer	wdog1_pins: pinctrl-wdog1-grp {
751*79f63593SJosua Mayer		fsl,pins = <
752*79f63593SJosua Mayer			MX8MN_IOMUXC_GPIO1_IO02_WDOG1_WDOG_B	0x140
753*79f63593SJosua Mayer		>;
754*79f63593SJosua Mayer	};
755*79f63593SJosua Mayer};
756*79f63593SJosua Mayer
757*79f63593SJosua Mayer/* Bluetooth */
758*79f63593SJosua Mayer&uart1 {
759*79f63593SJosua Mayer	assigned-clock-parents = <&clk IMX8MN_SYS_PLL1_80M>;
760*79f63593SJosua Mayer	/* select 80MHz parent clock to support maximum baudrate 4Mbps */
761*79f63593SJosua Mayer	assigned-clocks = <&clk IMX8MN_CLK_UART1>;
762*79f63593SJosua Mayer	pinctrl-0 = <&uart1_pins>;
763*79f63593SJosua Mayer	pinctrl-names = "default";
764*79f63593SJosua Mayer	uart-has-rtscts;
765*79f63593SJosua Mayer	status = "okay";
766*79f63593SJosua Mayer
767*79f63593SJosua Mayer	bluetooth {
768*79f63593SJosua Mayer		compatible = "brcm,bcm4330-bt";
769*79f63593SJosua Mayer		device-wakeup-gpios = <&gpio2 7 GPIO_ACTIVE_HIGH>;
770*79f63593SJosua Mayer		host-wakeup-gpios = <&gpio2 8 GPIO_ACTIVE_HIGH>;
771*79f63593SJosua Mayer		max-speed = <3000000>;
772*79f63593SJosua Mayer		shutdown-gpios = <&gpio2 6 GPIO_ACTIVE_HIGH>;
773*79f63593SJosua Mayer	};
774*79f63593SJosua Mayer};
775*79f63593SJosua Mayer
776*79f63593SJosua Mayer/* console */
777*79f63593SJosua Mayer&uart2 {
778*79f63593SJosua Mayer	pinctrl-0 = <&uart2_pins>;
779*79f63593SJosua Mayer	pinctrl-names = "default";
780*79f63593SJosua Mayer	status = "okay";
781*79f63593SJosua Mayer};
782*79f63593SJosua Mayer
783*79f63593SJosua Mayer/* RS485 */
784*79f63593SJosua Mayer&uart3 {
785*79f63593SJosua Mayer	pinctrl-0 = <&uart3_pins>;
786*79f63593SJosua Mayer	pinctrl-names = "default";
787*79f63593SJosua Mayer	uart-has-rtscts;
788*79f63593SJosua Mayer	fsl,dte-mode;
789*79f63593SJosua Mayer	linux,rs485-enabled-at-boot-time;
790*79f63593SJosua Mayer	status = "okay";
791*79f63593SJosua Mayer};
792*79f63593SJosua Mayer
793*79f63593SJosua Mayer/* 802.15.1 radio */
794*79f63593SJosua Mayer&uart4 {
795*79f63593SJosua Mayer	pinctrl-0 = <&uart4_pins &ieee802151_radio_pins>;
796*79f63593SJosua Mayer	pinctrl-names = "default";
797*79f63593SJosua Mayer	status = "okay";
798*79f63593SJosua Mayer};
799*79f63593SJosua Mayer
800*79f63593SJosua Mayer&usbotg1 {
801*79f63593SJosua Mayer	disable-over-current;
802*79f63593SJosua Mayer	dr_mode = "host";
803*79f63593SJosua Mayer	vbus-supply = <&reg_usb1_vbus>;
804*79f63593SJosua Mayer	status = "okay";
805*79f63593SJosua Mayer};
806*79f63593SJosua Mayer
807*79f63593SJosua Mayer/* WiFi */
808*79f63593SJosua Mayer&usdhc1 {
809*79f63593SJosua Mayer	bus-width = <4>;
810*79f63593SJosua Mayer	mmc-pwrseq = <&usdhc1_pwrseq>;
811*79f63593SJosua Mayer	pinctrl-0 = <&usdhc1_pins>;
812*79f63593SJosua Mayer	pinctrl-names = "default";
813*79f63593SJosua Mayer	vmmc-supply = <&reg_vdd_3v3>;
814*79f63593SJosua Mayer	vqmmc-supply = <&reg_vdd_1v8>;
815*79f63593SJosua Mayer	status = "okay";
816*79f63593SJosua Mayer};
817*79f63593SJosua Mayer
818*79f63593SJosua Mayer/* microSD */
819*79f63593SJosua Mayer&usdhc2 {
820*79f63593SJosua Mayer	broken-cd;
821*79f63593SJosua Mayer	bus-width = <4>;
822*79f63593SJosua Mayer	pinctrl-0 = <&usdhc2_pins>;
823*79f63593SJosua Mayer	pinctrl-1 = <&usdhc2_100mhz_pins>;
824*79f63593SJosua Mayer	pinctrl-2 = <&usdhc2_200mhz_pins>;
825*79f63593SJosua Mayer	pinctrl-names = "default", "state_100mhz", "state_200mhz";
826*79f63593SJosua Mayer	vmmc-supply = <&reg_usdhc2_vmmc>;
827*79f63593SJosua Mayer	status = "okay";
828*79f63593SJosua Mayer};
829*79f63593SJosua Mayer
830*79f63593SJosua Mayer/* eMMC */
831*79f63593SJosua Mayer&usdhc3 {
832*79f63593SJosua Mayer	bus-width = <8>;
833*79f63593SJosua Mayer	non-removable;
834*79f63593SJosua Mayer	pinctrl-0 = <&usdhc3_pins>;
835*79f63593SJosua Mayer	vmmc-supply = <&reg_vdd_3v3>;
836*79f63593SJosua Mayer	vqmmc-supply = <&reg_vdd_1v8>;
837*79f63593SJosua Mayer	/*
838*79f63593SJosua Mayer	 * Use lowest drive strength for all high-speed modes to minimise
839*79f63593SJosua Mayer	 * electro-magnetic emissions.
840*79f63593SJosua Mayer	 * In this particular design HS-400 still works okay, no extra
841*79f63593SJosua Mayer	 * pinctrl for 100mhz and 200mhz are required.
842*79f63593SJosua Mayer	 */
843*79f63593SJosua Mayer	pinctrl-names = "default";
844*79f63593SJosua Mayer	status = "okay";
845*79f63593SJosua Mayer};
846*79f63593SJosua Mayer
847*79f63593SJosua Mayer&wdog1 {
848*79f63593SJosua Mayer	pinctrl-0 = <&wdog1_pins>;
849*79f63593SJosua Mayer	pinctrl-names = "default";
850*79f63593SJosua Mayer	status = "okay";
851*79f63593SJosua Mayer};
852