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