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