xref: /linux/arch/arm64/boot/dts/mediatek/mt7986a-bananapi-bpi-r3-mini.dts (revision a1ff5a7d78a036d6c2178ee5acd6ba4946243800)
1*a098310bSFrank Wunderlich// SPDX-License-Identifier: (GPL-2.0 OR MIT)
2*a098310bSFrank Wunderlich/*
3*a098310bSFrank Wunderlich * Copyright (C) 2021 MediaTek Inc.
4*a098310bSFrank Wunderlich * Authors: Frank Wunderlich <frank-w@public-files.de>
5*a098310bSFrank Wunderlich *          Eric Woudstra <ericwouds@gmail.com>
6*a098310bSFrank Wunderlich *          Tianling Shen <cnsztl@immortalwrt.org>
7*a098310bSFrank Wunderlich */
8*a098310bSFrank Wunderlich
9*a098310bSFrank Wunderlich/dts-v1/;
10*a098310bSFrank Wunderlich
11*a098310bSFrank Wunderlich#include <dt-bindings/gpio/gpio.h>
12*a098310bSFrank Wunderlich#include <dt-bindings/input/input.h>
13*a098310bSFrank Wunderlich#include <dt-bindings/leds/common.h>
14*a098310bSFrank Wunderlich#include <dt-bindings/pinctrl/mt65xx.h>
15*a098310bSFrank Wunderlich
16*a098310bSFrank Wunderlich#include "mt7986a.dtsi"
17*a098310bSFrank Wunderlich
18*a098310bSFrank Wunderlich/ {
19*a098310bSFrank Wunderlich	model = "Bananapi BPI-R3 Mini";
20*a098310bSFrank Wunderlich	chassis-type = "embedded";
21*a098310bSFrank Wunderlich	compatible = "bananapi,bpi-r3mini", "mediatek,mt7986a";
22*a098310bSFrank Wunderlich
23*a098310bSFrank Wunderlich	aliases {
24*a098310bSFrank Wunderlich		serial0 = &uart0;
25*a098310bSFrank Wunderlich		ethernet0 = &gmac0;
26*a098310bSFrank Wunderlich		ethernet1 = &gmac1;
27*a098310bSFrank Wunderlich	};
28*a098310bSFrank Wunderlich
29*a098310bSFrank Wunderlich	chosen {
30*a098310bSFrank Wunderlich		stdout-path = "serial0:115200n8";
31*a098310bSFrank Wunderlich	};
32*a098310bSFrank Wunderlich
33*a098310bSFrank Wunderlich	dcin: regulator-12v {
34*a098310bSFrank Wunderlich		compatible = "regulator-fixed";
35*a098310bSFrank Wunderlich		regulator-name = "12vd";
36*a098310bSFrank Wunderlich		regulator-min-microvolt = <12000000>;
37*a098310bSFrank Wunderlich		regulator-max-microvolt = <12000000>;
38*a098310bSFrank Wunderlich		regulator-boot-on;
39*a098310bSFrank Wunderlich		regulator-always-on;
40*a098310bSFrank Wunderlich	};
41*a098310bSFrank Wunderlich
42*a098310bSFrank Wunderlich	fan: pwm-fan {
43*a098310bSFrank Wunderlich		compatible = "pwm-fan";
44*a098310bSFrank Wunderlich		#cooling-cells = <2>;
45*a098310bSFrank Wunderlich		/*
46*a098310bSFrank Wunderlich		 * The signal is inverted on this board and the PWM driver
47*a098310bSFrank Wunderlich		 * does not support polarity inversion.
48*a098310bSFrank Wunderlich		 */
49*a098310bSFrank Wunderlich		/* cooling level (0, 1, 2) */
50*a098310bSFrank Wunderlich		cooling-levels = <255 96 0>;
51*a098310bSFrank Wunderlich		pwms = <&pwm 0 10000>;
52*a098310bSFrank Wunderlich	};
53*a098310bSFrank Wunderlich
54*a098310bSFrank Wunderlich	reg_1p8v: regulator-1v8 {
55*a098310bSFrank Wunderlich		compatible = "regulator-fixed";
56*a098310bSFrank Wunderlich		regulator-name = "1.8vd";
57*a098310bSFrank Wunderlich		regulator-min-microvolt = <1800000>;
58*a098310bSFrank Wunderlich		regulator-max-microvolt = <1800000>;
59*a098310bSFrank Wunderlich		regulator-boot-on;
60*a098310bSFrank Wunderlich		regulator-always-on;
61*a098310bSFrank Wunderlich		vin-supply = <&dcin>;
62*a098310bSFrank Wunderlich	};
63*a098310bSFrank Wunderlich
64*a098310bSFrank Wunderlich	reg_3p3v: regulator-3v3 {
65*a098310bSFrank Wunderlich		compatible = "regulator-fixed";
66*a098310bSFrank Wunderlich		regulator-name = "3.3vd";
67*a098310bSFrank Wunderlich		regulator-min-microvolt = <3300000>;
68*a098310bSFrank Wunderlich		regulator-max-microvolt = <3300000>;
69*a098310bSFrank Wunderlich		regulator-boot-on;
70*a098310bSFrank Wunderlich		regulator-always-on;
71*a098310bSFrank Wunderlich		vin-supply = <&dcin>;
72*a098310bSFrank Wunderlich	};
73*a098310bSFrank Wunderlich
74*a098310bSFrank Wunderlich	usb_vbus: regulator-5v {
75*a098310bSFrank Wunderlich		compatible = "regulator-fixed";
76*a098310bSFrank Wunderlich		regulator-name = "usb_vbus";
77*a098310bSFrank Wunderlich		regulator-min-microvolt = <5000000>;
78*a098310bSFrank Wunderlich		regulator-max-microvolt = <5000000>;
79*a098310bSFrank Wunderlich		gpios = <&pio 20 GPIO_ACTIVE_LOW>;
80*a098310bSFrank Wunderlich		regulator-boot-on;
81*a098310bSFrank Wunderlich	};
82*a098310bSFrank Wunderlich
83*a098310bSFrank Wunderlich	en8811_a: regulator-phy1 {
84*a098310bSFrank Wunderlich		compatible = "regulator-fixed";
85*a098310bSFrank Wunderlich		regulator-name = "phy1";
86*a098310bSFrank Wunderlich		regulator-min-microvolt = <3300000>;
87*a098310bSFrank Wunderlich		regulator-max-microvolt = <3300000>;
88*a098310bSFrank Wunderlich		gpio = <&pio 16 GPIO_ACTIVE_LOW>;
89*a098310bSFrank Wunderlich		regulator-always-on;
90*a098310bSFrank Wunderlich	};
91*a098310bSFrank Wunderlich
92*a098310bSFrank Wunderlich	en8811_b: regulator-phy2 {
93*a098310bSFrank Wunderlich		compatible = "regulator-fixed";
94*a098310bSFrank Wunderlich		regulator-name = "phy2";
95*a098310bSFrank Wunderlich		regulator-min-microvolt = <3300000>;
96*a098310bSFrank Wunderlich		regulator-max-microvolt = <3300000>;
97*a098310bSFrank Wunderlich		gpio = <&pio 17 GPIO_ACTIVE_LOW>;
98*a098310bSFrank Wunderlich		regulator-always-on;
99*a098310bSFrank Wunderlich	};
100*a098310bSFrank Wunderlich
101*a098310bSFrank Wunderlich	leds {
102*a098310bSFrank Wunderlich		compatible = "gpio-leds";
103*a098310bSFrank Wunderlich
104*a098310bSFrank Wunderlich		green_led: led-0 {
105*a098310bSFrank Wunderlich			color = <LED_COLOR_ID_GREEN>;
106*a098310bSFrank Wunderlich			function = LED_FUNCTION_POWER;
107*a098310bSFrank Wunderlich			gpios = <&pio 19 GPIO_ACTIVE_HIGH>;
108*a098310bSFrank Wunderlich			default-state = "on";
109*a098310bSFrank Wunderlich		};
110*a098310bSFrank Wunderlich	};
111*a098310bSFrank Wunderlich
112*a098310bSFrank Wunderlich	gpio-keys {
113*a098310bSFrank Wunderlich		compatible = "gpio-keys";
114*a098310bSFrank Wunderlich
115*a098310bSFrank Wunderlich		reset-key {
116*a098310bSFrank Wunderlich			label = "reset";
117*a098310bSFrank Wunderlich			linux,code = <KEY_RESTART>;
118*a098310bSFrank Wunderlich			gpios = <&pio 7 GPIO_ACTIVE_LOW>;
119*a098310bSFrank Wunderlich		};
120*a098310bSFrank Wunderlich	};
121*a098310bSFrank Wunderlich
122*a098310bSFrank Wunderlich};
123*a098310bSFrank Wunderlich
124*a098310bSFrank Wunderlich&cpu_thermal {
125*a098310bSFrank Wunderlich	cooling-maps {
126*a098310bSFrank Wunderlich		map0 {
127*a098310bSFrank Wunderlich			/* active: set fan to cooling level 2 */
128*a098310bSFrank Wunderlich			cooling-device = <&fan 2 2>;
129*a098310bSFrank Wunderlich			trip = <&cpu_trip_active_high>;
130*a098310bSFrank Wunderlich		};
131*a098310bSFrank Wunderlich
132*a098310bSFrank Wunderlich		map1 {
133*a098310bSFrank Wunderlich			/* active: set fan to cooling level 1 */
134*a098310bSFrank Wunderlich			cooling-device = <&fan 1 1>;
135*a098310bSFrank Wunderlich			trip = <&cpu_trip_active_med>;
136*a098310bSFrank Wunderlich		};
137*a098310bSFrank Wunderlich
138*a098310bSFrank Wunderlich		map2 {
139*a098310bSFrank Wunderlich			/* active: set fan to cooling level 0 */
140*a098310bSFrank Wunderlich			cooling-device = <&fan 0 0>;
141*a098310bSFrank Wunderlich			trip = <&cpu_trip_active_low>;
142*a098310bSFrank Wunderlich		};
143*a098310bSFrank Wunderlich	};
144*a098310bSFrank Wunderlich};
145*a098310bSFrank Wunderlich
146*a098310bSFrank Wunderlich&crypto {
147*a098310bSFrank Wunderlich	status = "okay";
148*a098310bSFrank Wunderlich};
149*a098310bSFrank Wunderlich
150*a098310bSFrank Wunderlich&eth {
151*a098310bSFrank Wunderlich	status = "okay";
152*a098310bSFrank Wunderlich
153*a098310bSFrank Wunderlich	gmac0: mac@0 {
154*a098310bSFrank Wunderlich		compatible = "mediatek,eth-mac";
155*a098310bSFrank Wunderlich		reg = <0>;
156*a098310bSFrank Wunderlich		phy-mode = "2500base-x";
157*a098310bSFrank Wunderlich		phy-handle = <&phy0>;
158*a098310bSFrank Wunderlich	};
159*a098310bSFrank Wunderlich
160*a098310bSFrank Wunderlich	gmac1: mac@1 {
161*a098310bSFrank Wunderlich		compatible = "mediatek,eth-mac";
162*a098310bSFrank Wunderlich		reg = <1>;
163*a098310bSFrank Wunderlich		phy-mode = "2500base-x";
164*a098310bSFrank Wunderlich		phy-handle = <&phy1>;
165*a098310bSFrank Wunderlich	};
166*a098310bSFrank Wunderlich
167*a098310bSFrank Wunderlich	mdio: mdio-bus {
168*a098310bSFrank Wunderlich		#address-cells = <1>;
169*a098310bSFrank Wunderlich		#size-cells = <0>;
170*a098310bSFrank Wunderlich	};
171*a098310bSFrank Wunderlich};
172*a098310bSFrank Wunderlich
173*a098310bSFrank Wunderlich&mmc0 {
174*a098310bSFrank Wunderlich	pinctrl-names = "default", "state_uhs";
175*a098310bSFrank Wunderlich	pinctrl-0 = <&mmc0_pins_default>;
176*a098310bSFrank Wunderlich	pinctrl-1 = <&mmc0_pins_uhs>;
177*a098310bSFrank Wunderlich	vmmc-supply = <&reg_3p3v>;
178*a098310bSFrank Wunderlich	vqmmc-supply = <&reg_1p8v>;
179*a098310bSFrank Wunderlich};
180*a098310bSFrank Wunderlich
181*a098310bSFrank Wunderlich
182*a098310bSFrank Wunderlich&i2c0 {
183*a098310bSFrank Wunderlich	pinctrl-names = "default";
184*a098310bSFrank Wunderlich	pinctrl-0 = <&i2c_pins>;
185*a098310bSFrank Wunderlich	status = "okay";
186*a098310bSFrank Wunderlich
187*a098310bSFrank Wunderlich	/* MAC Address EEPROM */
188*a098310bSFrank Wunderlich	eeprom@50 {
189*a098310bSFrank Wunderlich		compatible = "atmel,24c02";
190*a098310bSFrank Wunderlich		reg = <0x50>;
191*a098310bSFrank Wunderlich
192*a098310bSFrank Wunderlich		address-width = <8>;
193*a098310bSFrank Wunderlich		pagesize = <8>;
194*a098310bSFrank Wunderlich		size = <256>;
195*a098310bSFrank Wunderlich	};
196*a098310bSFrank Wunderlich};
197*a098310bSFrank Wunderlich
198*a098310bSFrank Wunderlich&mdio {
199*a098310bSFrank Wunderlich	phy0: ethernet-phy@14 {
200*a098310bSFrank Wunderlich		reg = <14>;
201*a098310bSFrank Wunderlich		interrupts-extended = <&pio 48 IRQ_TYPE_EDGE_FALLING>;
202*a098310bSFrank Wunderlich		reset-gpios = <&pio 49 GPIO_ACTIVE_LOW>;
203*a098310bSFrank Wunderlich		reset-assert-us = <10000>;
204*a098310bSFrank Wunderlich		reset-deassert-us = <20000>;
205*a098310bSFrank Wunderlich		phy-mode = "2500base-x";
206*a098310bSFrank Wunderlich		full-duplex;
207*a098310bSFrank Wunderlich		pause;
208*a098310bSFrank Wunderlich		airoha,pnswap-rx;
209*a098310bSFrank Wunderlich
210*a098310bSFrank Wunderlich		leds {
211*a098310bSFrank Wunderlich			#address-cells = <1>;
212*a098310bSFrank Wunderlich			#size-cells = <0>;
213*a098310bSFrank Wunderlich
214*a098310bSFrank Wunderlich			led@0 { /* en8811_a_gpio5 */
215*a098310bSFrank Wunderlich				reg = <0>;
216*a098310bSFrank Wunderlich				color = <LED_COLOR_ID_YELLOW>;
217*a098310bSFrank Wunderlich				function = LED_FUNCTION_LAN;
218*a098310bSFrank Wunderlich				function-enumerator = <1>;
219*a098310bSFrank Wunderlich				default-state = "keep";
220*a098310bSFrank Wunderlich			};
221*a098310bSFrank Wunderlich			led@1 { /* en8811_a_gpio4 */
222*a098310bSFrank Wunderlich				reg = <1>;
223*a098310bSFrank Wunderlich				color = <LED_COLOR_ID_GREEN>;
224*a098310bSFrank Wunderlich				function = LED_FUNCTION_LAN;
225*a098310bSFrank Wunderlich				function-enumerator = <2>;
226*a098310bSFrank Wunderlich				default-state = "keep";
227*a098310bSFrank Wunderlich			};
228*a098310bSFrank Wunderlich		};
229*a098310bSFrank Wunderlich	};
230*a098310bSFrank Wunderlich
231*a098310bSFrank Wunderlich	phy1: ethernet-phy@15 {
232*a098310bSFrank Wunderlich		reg = <15>;
233*a098310bSFrank Wunderlich		interrupts-extended = <&pio 46 IRQ_TYPE_EDGE_FALLING>;
234*a098310bSFrank Wunderlich		reset-gpios = <&pio 47 GPIO_ACTIVE_LOW>;
235*a098310bSFrank Wunderlich		reset-assert-us = <10000>;
236*a098310bSFrank Wunderlich		reset-deassert-us = <20000>;
237*a098310bSFrank Wunderlich		phy-mode = "2500base-x";
238*a098310bSFrank Wunderlich		full-duplex;
239*a098310bSFrank Wunderlich		pause;
240*a098310bSFrank Wunderlich		airoha,pnswap-rx;
241*a098310bSFrank Wunderlich
242*a098310bSFrank Wunderlich		leds {
243*a098310bSFrank Wunderlich			#address-cells = <1>;
244*a098310bSFrank Wunderlich			#size-cells = <0>;
245*a098310bSFrank Wunderlich
246*a098310bSFrank Wunderlich			led@0 { /* en8811_b_gpio5 */
247*a098310bSFrank Wunderlich				reg = <0>;
248*a098310bSFrank Wunderlich				color = <LED_COLOR_ID_YELLOW>;
249*a098310bSFrank Wunderlich				function = LED_FUNCTION_WAN;
250*a098310bSFrank Wunderlich				function-enumerator = <1>;
251*a098310bSFrank Wunderlich				default-state = "keep";
252*a098310bSFrank Wunderlich			};
253*a098310bSFrank Wunderlich			led@1 { /* en8811_b_gpio4 */
254*a098310bSFrank Wunderlich				reg = <1>;
255*a098310bSFrank Wunderlich				color = <LED_COLOR_ID_GREEN>;
256*a098310bSFrank Wunderlich				function = LED_FUNCTION_WAN;
257*a098310bSFrank Wunderlich				function-enumerator = <2>;
258*a098310bSFrank Wunderlich				default-state = "keep";
259*a098310bSFrank Wunderlich			};
260*a098310bSFrank Wunderlich		};
261*a098310bSFrank Wunderlich	};
262*a098310bSFrank Wunderlich};
263*a098310bSFrank Wunderlich
264*a098310bSFrank Wunderlich&pcie {
265*a098310bSFrank Wunderlich	pinctrl-names = "default";
266*a098310bSFrank Wunderlich	pinctrl-0 = <&pcie_pins>;
267*a098310bSFrank Wunderlich	status = "okay";
268*a098310bSFrank Wunderlich};
269*a098310bSFrank Wunderlich
270*a098310bSFrank Wunderlich&pcie_phy {
271*a098310bSFrank Wunderlich	status = "okay";
272*a098310bSFrank Wunderlich};
273*a098310bSFrank Wunderlich
274*a098310bSFrank Wunderlich&pio {
275*a098310bSFrank Wunderlich	i2c_pins: i2c-pins {
276*a098310bSFrank Wunderlich		mux {
277*a098310bSFrank Wunderlich			function = "i2c";
278*a098310bSFrank Wunderlich			groups = "i2c";
279*a098310bSFrank Wunderlich		};
280*a098310bSFrank Wunderlich	};
281*a098310bSFrank Wunderlich
282*a098310bSFrank Wunderlich	mmc0_pins_default: mmc0-pins {
283*a098310bSFrank Wunderlich		mux {
284*a098310bSFrank Wunderlich			function = "emmc";
285*a098310bSFrank Wunderlich			groups = "emmc_51";
286*a098310bSFrank Wunderlich		};
287*a098310bSFrank Wunderlich		conf-cmd-dat {
288*a098310bSFrank Wunderlich			pins = "EMMC_DATA_0", "EMMC_DATA_1", "EMMC_DATA_2",
289*a098310bSFrank Wunderlich			       "EMMC_DATA_3", "EMMC_DATA_4", "EMMC_DATA_5",
290*a098310bSFrank Wunderlich			       "EMMC_DATA_6", "EMMC_DATA_7", "EMMC_CMD";
291*a098310bSFrank Wunderlich			input-enable;
292*a098310bSFrank Wunderlich			drive-strength = <4>;
293*a098310bSFrank Wunderlich			bias-pull-up = <MTK_PUPD_SET_R1R0_01>; /* pull-up 10K */
294*a098310bSFrank Wunderlich		};
295*a098310bSFrank Wunderlich		conf-clk {
296*a098310bSFrank Wunderlich			pins = "EMMC_CK";
297*a098310bSFrank Wunderlich			drive-strength = <6>;
298*a098310bSFrank Wunderlich			bias-pull-down = <MTK_PUPD_SET_R1R0_10>; /* pull-down 50K */
299*a098310bSFrank Wunderlich		};
300*a098310bSFrank Wunderlich		conf-ds {
301*a098310bSFrank Wunderlich			pins = "EMMC_DSL";
302*a098310bSFrank Wunderlich			bias-pull-down = <MTK_PUPD_SET_R1R0_10>; /* pull-down 50K */
303*a098310bSFrank Wunderlich		};
304*a098310bSFrank Wunderlich		conf-rst {
305*a098310bSFrank Wunderlich			pins = "EMMC_RSTB";
306*a098310bSFrank Wunderlich			drive-strength = <4>;
307*a098310bSFrank Wunderlich			bias-pull-up = <MTK_PUPD_SET_R1R0_01>; /* pull-up 10K */
308*a098310bSFrank Wunderlich		};
309*a098310bSFrank Wunderlich	};
310*a098310bSFrank Wunderlich
311*a098310bSFrank Wunderlich	mmc0_pins_uhs: mmc0-uhs-pins {
312*a098310bSFrank Wunderlich		mux {
313*a098310bSFrank Wunderlich			function = "emmc";
314*a098310bSFrank Wunderlich			groups = "emmc_51";
315*a098310bSFrank Wunderlich		};
316*a098310bSFrank Wunderlich		conf-cmd-dat {
317*a098310bSFrank Wunderlich			pins = "EMMC_DATA_0", "EMMC_DATA_1", "EMMC_DATA_2",
318*a098310bSFrank Wunderlich			       "EMMC_DATA_3", "EMMC_DATA_4", "EMMC_DATA_5",
319*a098310bSFrank Wunderlich			       "EMMC_DATA_6", "EMMC_DATA_7", "EMMC_CMD";
320*a098310bSFrank Wunderlich			input-enable;
321*a098310bSFrank Wunderlich			drive-strength = <4>;
322*a098310bSFrank Wunderlich			bias-pull-up = <MTK_PUPD_SET_R1R0_01>; /* pull-up 10K */
323*a098310bSFrank Wunderlich		};
324*a098310bSFrank Wunderlich		conf-clk {
325*a098310bSFrank Wunderlich			pins = "EMMC_CK";
326*a098310bSFrank Wunderlich			drive-strength = <6>;
327*a098310bSFrank Wunderlich			bias-pull-down = <MTK_PUPD_SET_R1R0_10>; /* pull-down 50K */
328*a098310bSFrank Wunderlich		};
329*a098310bSFrank Wunderlich		conf-ds {
330*a098310bSFrank Wunderlich			pins = "EMMC_DSL";
331*a098310bSFrank Wunderlich			bias-pull-down = <MTK_PUPD_SET_R1R0_10>; /* pull-down 50K */
332*a098310bSFrank Wunderlich		};
333*a098310bSFrank Wunderlich		conf-rst {
334*a098310bSFrank Wunderlich			pins = "EMMC_RSTB";
335*a098310bSFrank Wunderlich			drive-strength = <4>;
336*a098310bSFrank Wunderlich			bias-pull-up = <MTK_PUPD_SET_R1R0_01>; /* pull-up 10K */
337*a098310bSFrank Wunderlich		};
338*a098310bSFrank Wunderlich	};
339*a098310bSFrank Wunderlich
340*a098310bSFrank Wunderlich	pcie_pins: pcie-pins {
341*a098310bSFrank Wunderlich		mux {
342*a098310bSFrank Wunderlich			function = "pcie";
343*a098310bSFrank Wunderlich			groups = "pcie_clk", "pcie_wake", "pcie_pereset";
344*a098310bSFrank Wunderlich		};
345*a098310bSFrank Wunderlich	};
346*a098310bSFrank Wunderlich
347*a098310bSFrank Wunderlich	pwm_pins: pwm-pins {
348*a098310bSFrank Wunderlich		mux {
349*a098310bSFrank Wunderlich			function = "pwm";
350*a098310bSFrank Wunderlich			groups = "pwm0";
351*a098310bSFrank Wunderlich		};
352*a098310bSFrank Wunderlich	};
353*a098310bSFrank Wunderlich
354*a098310bSFrank Wunderlich	spi_flash_pins: spi-flash-pins {
355*a098310bSFrank Wunderlich		mux {
356*a098310bSFrank Wunderlich			function = "spi";
357*a098310bSFrank Wunderlich			groups = "spi0", "spi0_wp_hold";
358*a098310bSFrank Wunderlich		};
359*a098310bSFrank Wunderlich	};
360*a098310bSFrank Wunderlich
361*a098310bSFrank Wunderlich	usb_ngff_pins: usb-ngff-pins {
362*a098310bSFrank Wunderlich		ngff-gnss-off-conf {
363*a098310bSFrank Wunderlich			pins = "GPIO_6";
364*a098310bSFrank Wunderlich			drive-strength = <8>;
365*a098310bSFrank Wunderlich			mediatek,pull-up-adv = <1>;
366*a098310bSFrank Wunderlich		};
367*a098310bSFrank Wunderlich		ngff-pe-rst-conf {
368*a098310bSFrank Wunderlich			pins = "GPIO_7";
369*a098310bSFrank Wunderlich			drive-strength = <8>;
370*a098310bSFrank Wunderlich			mediatek,pull-up-adv = <1>;
371*a098310bSFrank Wunderlich		};
372*a098310bSFrank Wunderlich		ngff-wwan-off-conf {
373*a098310bSFrank Wunderlich			pins = "GPIO_8";
374*a098310bSFrank Wunderlich			drive-strength = <8>;
375*a098310bSFrank Wunderlich			mediatek,pull-up-adv = <1>;
376*a098310bSFrank Wunderlich		};
377*a098310bSFrank Wunderlich		ngff-pwr-off-conf {
378*a098310bSFrank Wunderlich			pins = "GPIO_9";
379*a098310bSFrank Wunderlich			drive-strength = <8>;
380*a098310bSFrank Wunderlich			mediatek,pull-up-adv = <1>;
381*a098310bSFrank Wunderlich		};
382*a098310bSFrank Wunderlich		ngff-rst-conf {
383*a098310bSFrank Wunderlich			pins = "GPIO_10";
384*a098310bSFrank Wunderlich			drive-strength = <8>;
385*a098310bSFrank Wunderlich			mediatek,pull-up-adv = <1>;
386*a098310bSFrank Wunderlich		};
387*a098310bSFrank Wunderlich		ngff-coex-conf {
388*a098310bSFrank Wunderlich			pins = "SPI1_CS";
389*a098310bSFrank Wunderlich			drive-strength = <8>;
390*a098310bSFrank Wunderlich			mediatek,pull-up-adv = <1>;
391*a098310bSFrank Wunderlich		};
392*a098310bSFrank Wunderlich	};
393*a098310bSFrank Wunderlich
394*a098310bSFrank Wunderlich	wf_2g_5g_pins: wf-2g-5g-pins {
395*a098310bSFrank Wunderlich		mux {
396*a098310bSFrank Wunderlich			function = "wifi";
397*a098310bSFrank Wunderlich			groups = "wf_2g", "wf_5g";
398*a098310bSFrank Wunderlich		};
399*a098310bSFrank Wunderlich		conf {
400*a098310bSFrank Wunderlich			pins = "WF0_HB1", "WF0_HB2", "WF0_HB3", "WF0_HB4",
401*a098310bSFrank Wunderlich			       "WF0_HB0", "WF0_HB0_B", "WF0_HB5", "WF0_HB6",
402*a098310bSFrank Wunderlich			       "WF0_HB7", "WF0_HB8", "WF0_HB9", "WF0_HB10",
403*a098310bSFrank Wunderlich			       "WF0_TOP_CLK", "WF0_TOP_DATA", "WF1_HB1",
404*a098310bSFrank Wunderlich			       "WF1_HB2", "WF1_HB3", "WF1_HB4", "WF1_HB0",
405*a098310bSFrank Wunderlich			       "WF1_HB5", "WF1_HB6", "WF1_HB7", "WF1_HB8",
406*a098310bSFrank Wunderlich			       "WF1_TOP_CLK", "WF1_TOP_DATA";
407*a098310bSFrank Wunderlich			drive-strength = <4>;
408*a098310bSFrank Wunderlich		};
409*a098310bSFrank Wunderlich	};
410*a098310bSFrank Wunderlich
411*a098310bSFrank Wunderlich	wf_dbdc_pins: wf-dbdc-pins {
412*a098310bSFrank Wunderlich		mux {
413*a098310bSFrank Wunderlich			function = "wifi";
414*a098310bSFrank Wunderlich			groups = "wf_dbdc";
415*a098310bSFrank Wunderlich		};
416*a098310bSFrank Wunderlich		conf {
417*a098310bSFrank Wunderlich			pins = "WF0_HB1", "WF0_HB2", "WF0_HB3", "WF0_HB4",
418*a098310bSFrank Wunderlich			       "WF0_HB0", "WF0_HB0_B", "WF0_HB5", "WF0_HB6",
419*a098310bSFrank Wunderlich			       "WF0_HB7", "WF0_HB8", "WF0_HB9", "WF0_HB10",
420*a098310bSFrank Wunderlich			       "WF0_TOP_CLK", "WF0_TOP_DATA", "WF1_HB1",
421*a098310bSFrank Wunderlich			       "WF1_HB2", "WF1_HB3", "WF1_HB4", "WF1_HB0",
422*a098310bSFrank Wunderlich			       "WF1_HB5", "WF1_HB6", "WF1_HB7", "WF1_HB8",
423*a098310bSFrank Wunderlich			       "WF1_TOP_CLK", "WF1_TOP_DATA";
424*a098310bSFrank Wunderlich			drive-strength = <4>;
425*a098310bSFrank Wunderlich		};
426*a098310bSFrank Wunderlich	};
427*a098310bSFrank Wunderlich
428*a098310bSFrank Wunderlich	wf_led_pins: wf-led-pins {
429*a098310bSFrank Wunderlich		mux {
430*a098310bSFrank Wunderlich			function = "led";
431*a098310bSFrank Wunderlich			groups = "wifi_led";
432*a098310bSFrank Wunderlich		};
433*a098310bSFrank Wunderlich	};
434*a098310bSFrank Wunderlich};
435*a098310bSFrank Wunderlich
436*a098310bSFrank Wunderlich&pwm {
437*a098310bSFrank Wunderlich	pinctrl-names = "default";
438*a098310bSFrank Wunderlich	pinctrl-0 = <&pwm_pins>;
439*a098310bSFrank Wunderlich	status = "okay";
440*a098310bSFrank Wunderlich};
441*a098310bSFrank Wunderlich
442*a098310bSFrank Wunderlich&spi0 {
443*a098310bSFrank Wunderlich	pinctrl-names = "default";
444*a098310bSFrank Wunderlich	pinctrl-0 = <&spi_flash_pins>;
445*a098310bSFrank Wunderlich	status = "okay";
446*a098310bSFrank Wunderlich
447*a098310bSFrank Wunderlich	flash@0 {
448*a098310bSFrank Wunderlich		compatible = "spi-nand";
449*a098310bSFrank Wunderlich		#address-cells = <1>;
450*a098310bSFrank Wunderlich		#size-cells = <1>;
451*a098310bSFrank Wunderlich		reg = <0>;
452*a098310bSFrank Wunderlich
453*a098310bSFrank Wunderlich		spi-max-frequency = <20000000>;
454*a098310bSFrank Wunderlich		spi-tx-bus-width = <4>;
455*a098310bSFrank Wunderlich		spi-rx-bus-width = <4>;
456*a098310bSFrank Wunderlich	};
457*a098310bSFrank Wunderlich};
458*a098310bSFrank Wunderlich
459*a098310bSFrank Wunderlich&ssusb {
460*a098310bSFrank Wunderlich	pinctrl-names = "default";
461*a098310bSFrank Wunderlich	pinctrl-0 = <&usb_ngff_pins>;
462*a098310bSFrank Wunderlich	vusb33-supply = <&reg_3p3v>;
463*a098310bSFrank Wunderlich	vbus-supply = <&usb_vbus>;
464*a098310bSFrank Wunderlich	status = "okay";
465*a098310bSFrank Wunderlich};
466*a098310bSFrank Wunderlich
467*a098310bSFrank Wunderlich&trng {
468*a098310bSFrank Wunderlich	status = "okay";
469*a098310bSFrank Wunderlich};
470*a098310bSFrank Wunderlich
471*a098310bSFrank Wunderlich&uart0 {
472*a098310bSFrank Wunderlich	status = "okay";
473*a098310bSFrank Wunderlich};
474*a098310bSFrank Wunderlich
475*a098310bSFrank Wunderlich&usb_phy {
476*a098310bSFrank Wunderlich	status = "okay";
477*a098310bSFrank Wunderlich};
478*a098310bSFrank Wunderlich
479*a098310bSFrank Wunderlich&watchdog {
480*a098310bSFrank Wunderlich	status = "okay";
481*a098310bSFrank Wunderlich};
482*a098310bSFrank Wunderlich
483*a098310bSFrank Wunderlich&wifi {
484*a098310bSFrank Wunderlich	status = "okay";
485*a098310bSFrank Wunderlich	pinctrl-names = "default", "dbdc";
486*a098310bSFrank Wunderlich	pinctrl-0 = <&wf_2g_5g_pins>, <&wf_led_pins>;
487*a098310bSFrank Wunderlich	pinctrl-1 = <&wf_dbdc_pins>, <&wf_led_pins>;
488*a098310bSFrank Wunderlich
489*a098310bSFrank Wunderlich	led {
490*a098310bSFrank Wunderlich		led-active-low;
491*a098310bSFrank Wunderlich	};
492*a098310bSFrank Wunderlich};
493*a098310bSFrank Wunderlich
494