xref: /linux/arch/arm64/boot/dts/mediatek/mt7986a-bananapi-bpi-r3.dts (revision 4232da23d75d173195c6766729e51947b64f83cd)
18e01fb15SFrank Wunderlich// SPDX-License-Identifier: (GPL-2.0 OR MIT)
28e01fb15SFrank Wunderlich/*
38e01fb15SFrank Wunderlich * Copyright (C) 2021 MediaTek Inc.
48e01fb15SFrank Wunderlich * Authors: Sam.Shih <sam.shih@mediatek.com>
58e01fb15SFrank Wunderlich *          Frank Wunderlich <frank-w@public-files.de>
68e01fb15SFrank Wunderlich *          Daniel Golle <daniel@makrotopia.org>
78e01fb15SFrank Wunderlich */
88e01fb15SFrank Wunderlich
98e01fb15SFrank Wunderlich/dts-v1/;
108e01fb15SFrank Wunderlich#include <dt-bindings/gpio/gpio.h>
118e01fb15SFrank Wunderlich#include <dt-bindings/input/input.h>
128e01fb15SFrank Wunderlich#include <dt-bindings/leds/common.h>
138e01fb15SFrank Wunderlich#include <dt-bindings/pinctrl/mt65xx.h>
148e01fb15SFrank Wunderlich
158e01fb15SFrank Wunderlich#include "mt7986a.dtsi"
168e01fb15SFrank Wunderlich
178e01fb15SFrank Wunderlich/ {
188e01fb15SFrank Wunderlich	model = "Bananapi BPI-R3";
19380d18fbSAngeloGioacchino Del Regno	chassis-type = "embedded";
208e01fb15SFrank Wunderlich	compatible = "bananapi,bpi-r3", "mediatek,mt7986a";
218e01fb15SFrank Wunderlich
228e01fb15SFrank Wunderlich	aliases {
238e01fb15SFrank Wunderlich		serial0 = &uart0;
248e01fb15SFrank Wunderlich		ethernet0 = &gmac0;
258e01fb15SFrank Wunderlich		ethernet1 = &gmac1;
268e01fb15SFrank Wunderlich	};
278e01fb15SFrank Wunderlich
288e01fb15SFrank Wunderlich	chosen {
298e01fb15SFrank Wunderlich		stdout-path = "serial0:115200n8";
308e01fb15SFrank Wunderlich	};
318e01fb15SFrank Wunderlich
328e01fb15SFrank Wunderlich	dcin: regulator-12vd {
338e01fb15SFrank Wunderlich		compatible = "regulator-fixed";
348e01fb15SFrank Wunderlich		regulator-name = "12vd";
358e01fb15SFrank Wunderlich		regulator-min-microvolt = <12000000>;
368e01fb15SFrank Wunderlich		regulator-max-microvolt = <12000000>;
378e01fb15SFrank Wunderlich		regulator-boot-on;
388e01fb15SFrank Wunderlich		regulator-always-on;
398e01fb15SFrank Wunderlich	};
408e01fb15SFrank Wunderlich
41c26f779aSDaniel Golle	fan: pwm-fan {
42c26f779aSDaniel Golle		compatible = "pwm-fan";
43c26f779aSDaniel Golle		#cooling-cells = <2>;
44c26f779aSDaniel Golle		/* cooling level (0, 1, 2) - pwm inverted */
45c26f779aSDaniel Golle		cooling-levels = <255 96 0>;
467865abbbSRafał Miłecki		pwms = <&pwm 0 10000>;
47c26f779aSDaniel Golle		status = "okay";
48c26f779aSDaniel Golle	};
49c26f779aSDaniel Golle
508e01fb15SFrank Wunderlich	gpio-keys {
518e01fb15SFrank Wunderlich		compatible = "gpio-keys";
528e01fb15SFrank Wunderlich
538e01fb15SFrank Wunderlich		reset-key {
548e01fb15SFrank Wunderlich			label = "reset";
558e01fb15SFrank Wunderlich			linux,code = <KEY_RESTART>;
568e01fb15SFrank Wunderlich			gpios = <&pio 9 GPIO_ACTIVE_LOW>;
578e01fb15SFrank Wunderlich		};
588e01fb15SFrank Wunderlich
598e01fb15SFrank Wunderlich		wps-key {
608e01fb15SFrank Wunderlich			label = "wps";
618e01fb15SFrank Wunderlich			linux,code = <KEY_WPS_BUTTON>;
628e01fb15SFrank Wunderlich			gpios = <&pio 10 GPIO_ACTIVE_LOW>;
638e01fb15SFrank Wunderlich		};
648e01fb15SFrank Wunderlich	};
658e01fb15SFrank Wunderlich
668e01fb15SFrank Wunderlich	/* i2c of the left SFP cage (wan) */
678e01fb15SFrank Wunderlich	i2c_sfp1: i2c-gpio-0 {
688e01fb15SFrank Wunderlich		compatible = "i2c-gpio";
698e01fb15SFrank Wunderlich		sda-gpios = <&pio 16 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
708e01fb15SFrank Wunderlich		scl-gpios = <&pio 17 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
718e01fb15SFrank Wunderlich		i2c-gpio,delay-us = <2>;
728e01fb15SFrank Wunderlich		#address-cells = <1>;
738e01fb15SFrank Wunderlich		#size-cells = <0>;
748e01fb15SFrank Wunderlich	};
758e01fb15SFrank Wunderlich
768e01fb15SFrank Wunderlich	/* i2c of the right SFP cage (lan) */
778e01fb15SFrank Wunderlich	i2c_sfp2: i2c-gpio-1 {
788e01fb15SFrank Wunderlich		compatible = "i2c-gpio";
798e01fb15SFrank Wunderlich		sda-gpios = <&pio 18 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
808e01fb15SFrank Wunderlich		scl-gpios = <&pio 19 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
818e01fb15SFrank Wunderlich		i2c-gpio,delay-us = <2>;
828e01fb15SFrank Wunderlich		#address-cells = <1>;
838e01fb15SFrank Wunderlich		#size-cells = <0>;
848e01fb15SFrank Wunderlich	};
858e01fb15SFrank Wunderlich
868e01fb15SFrank Wunderlich	leds {
878e01fb15SFrank Wunderlich		compatible = "gpio-leds";
888e01fb15SFrank Wunderlich
898e01fb15SFrank Wunderlich		green_led: led-0 {
908e01fb15SFrank Wunderlich			color = <LED_COLOR_ID_GREEN>;
918e01fb15SFrank Wunderlich			function = LED_FUNCTION_POWER;
928e01fb15SFrank Wunderlich			gpios = <&pio 69 GPIO_ACTIVE_HIGH>;
938e01fb15SFrank Wunderlich			default-state = "on";
948e01fb15SFrank Wunderlich		};
958e01fb15SFrank Wunderlich
968e01fb15SFrank Wunderlich		blue_led: led-1 {
978e01fb15SFrank Wunderlich			color = <LED_COLOR_ID_BLUE>;
988e01fb15SFrank Wunderlich			function = LED_FUNCTION_STATUS;
998e01fb15SFrank Wunderlich			gpios = <&pio 86 GPIO_ACTIVE_HIGH>;
1008e01fb15SFrank Wunderlich			default-state = "off";
1018e01fb15SFrank Wunderlich		};
1028e01fb15SFrank Wunderlich	};
1038e01fb15SFrank Wunderlich
1048e01fb15SFrank Wunderlich	reg_1p8v: regulator-1p8v {
1058e01fb15SFrank Wunderlich		compatible = "regulator-fixed";
1068e01fb15SFrank Wunderlich		regulator-name = "1.8vd";
1078e01fb15SFrank Wunderlich		regulator-min-microvolt = <1800000>;
1088e01fb15SFrank Wunderlich		regulator-max-microvolt = <1800000>;
1098e01fb15SFrank Wunderlich		regulator-boot-on;
1108e01fb15SFrank Wunderlich		regulator-always-on;
1118e01fb15SFrank Wunderlich		vin-supply = <&dcin>;
1128e01fb15SFrank Wunderlich	};
1138e01fb15SFrank Wunderlich
1148e01fb15SFrank Wunderlich	reg_3p3v: regulator-3p3v {
1158e01fb15SFrank Wunderlich		compatible = "regulator-fixed";
1168e01fb15SFrank Wunderlich		regulator-name = "3.3vd";
1178e01fb15SFrank Wunderlich		regulator-min-microvolt = <3300000>;
1188e01fb15SFrank Wunderlich		regulator-max-microvolt = <3300000>;
1198e01fb15SFrank Wunderlich		regulator-boot-on;
1208e01fb15SFrank Wunderlich		regulator-always-on;
1218e01fb15SFrank Wunderlich		vin-supply = <&dcin>;
1228e01fb15SFrank Wunderlich	};
1238e01fb15SFrank Wunderlich
1248e01fb15SFrank Wunderlich	/* left SFP cage (wan) */
1258e01fb15SFrank Wunderlich	sfp1: sfp-1 {
1268e01fb15SFrank Wunderlich		compatible = "sff,sfp";
1278e01fb15SFrank Wunderlich		i2c-bus = <&i2c_sfp1>;
1288e01fb15SFrank Wunderlich		los-gpios = <&pio 46 GPIO_ACTIVE_HIGH>;
1296413cbc1SFrank Wunderlich		maximum-power-milliwatt = <3000>;
1308e01fb15SFrank Wunderlich		mod-def0-gpios = <&pio 49 GPIO_ACTIVE_LOW>;
1318e01fb15SFrank Wunderlich		tx-disable-gpios = <&pio 20 GPIO_ACTIVE_HIGH>;
1328e01fb15SFrank Wunderlich		tx-fault-gpios = <&pio 7 GPIO_ACTIVE_HIGH>;
1338e01fb15SFrank Wunderlich	};
1348e01fb15SFrank Wunderlich
1358e01fb15SFrank Wunderlich	/* right SFP cage (lan) */
1368e01fb15SFrank Wunderlich	sfp2: sfp-2 {
1378e01fb15SFrank Wunderlich		compatible = "sff,sfp";
1388e01fb15SFrank Wunderlich		i2c-bus = <&i2c_sfp2>;
1398e01fb15SFrank Wunderlich		los-gpios = <&pio 31 GPIO_ACTIVE_HIGH>;
1408e01fb15SFrank Wunderlich		mod-def0-gpios = <&pio 47 GPIO_ACTIVE_LOW>;
1416413cbc1SFrank Wunderlich		maximum-power-milliwatt = <3000>;
1428e01fb15SFrank Wunderlich		tx-disable-gpios = <&pio 15 GPIO_ACTIVE_HIGH>;
1438e01fb15SFrank Wunderlich		tx-fault-gpios = <&pio 48 GPIO_ACTIVE_HIGH>;
1448e01fb15SFrank Wunderlich	};
1458e01fb15SFrank Wunderlich};
1468e01fb15SFrank Wunderlich
147c26f779aSDaniel Golle&cpu_thermal {
148c26f779aSDaniel Golle	cooling-maps {
149*f8c65a5eSRafał Miłecki		map-cpu-active-high {
150c26f779aSDaniel Golle			/* active: set fan to cooling level 2 */
151c26f779aSDaniel Golle			cooling-device = <&fan 2 2>;
152c26f779aSDaniel Golle			trip = <&cpu_trip_active_high>;
153c26f779aSDaniel Golle		};
154c26f779aSDaniel Golle
155*f8c65a5eSRafał Miłecki		map-cpu-active-med {
156c26f779aSDaniel Golle			/* active: set fan to cooling level 1 */
157c26f779aSDaniel Golle			cooling-device = <&fan 1 1>;
1581fcda8ceSFrank Wunderlich			trip = <&cpu_trip_active_med>;
159c26f779aSDaniel Golle		};
160c26f779aSDaniel Golle
161*f8c65a5eSRafał Miłecki		map-cpu-active-low {
1621fcda8ceSFrank Wunderlich			/* active: set fan to cooling level 0 */
163c26f779aSDaniel Golle			cooling-device = <&fan 0 0>;
1641fcda8ceSFrank Wunderlich			trip = <&cpu_trip_active_low>;
165c26f779aSDaniel Golle		};
166c26f779aSDaniel Golle	};
167c26f779aSDaniel Golle};
168c26f779aSDaniel Golle
1698e01fb15SFrank Wunderlich&crypto {
1708e01fb15SFrank Wunderlich	status = "okay";
1718e01fb15SFrank Wunderlich};
1728e01fb15SFrank Wunderlich
1738e01fb15SFrank Wunderlich&eth {
1748e01fb15SFrank Wunderlich	status = "okay";
1758e01fb15SFrank Wunderlich
1768e01fb15SFrank Wunderlich	gmac0: mac@0 {
1778e01fb15SFrank Wunderlich		compatible = "mediatek,eth-mac";
1788e01fb15SFrank Wunderlich		reg = <0>;
1798e01fb15SFrank Wunderlich		phy-mode = "2500base-x";
1808e01fb15SFrank Wunderlich
1818e01fb15SFrank Wunderlich		fixed-link {
1828e01fb15SFrank Wunderlich			speed = <2500>;
1838e01fb15SFrank Wunderlich			full-duplex;
1848e01fb15SFrank Wunderlich			pause;
1858e01fb15SFrank Wunderlich		};
1868e01fb15SFrank Wunderlich	};
1878e01fb15SFrank Wunderlich
1888e01fb15SFrank Wunderlich	gmac1: mac@1 {
1898e01fb15SFrank Wunderlich		compatible = "mediatek,eth-mac";
1908e01fb15SFrank Wunderlich		reg = <1>;
1918e01fb15SFrank Wunderlich		phy-mode = "2500base-x";
1928e01fb15SFrank Wunderlich		sfp = <&sfp1>;
1938e01fb15SFrank Wunderlich		managed = "in-band-status";
1948e01fb15SFrank Wunderlich	};
1958e01fb15SFrank Wunderlich
1968e01fb15SFrank Wunderlich	mdio: mdio-bus {
1978e01fb15SFrank Wunderlich		#address-cells = <1>;
1988e01fb15SFrank Wunderlich		#size-cells = <0>;
1998e01fb15SFrank Wunderlich	};
2008e01fb15SFrank Wunderlich};
2018e01fb15SFrank Wunderlich
2028e01fb15SFrank Wunderlich&mdio {
2038e01fb15SFrank Wunderlich	switch: switch@31 {
2048e01fb15SFrank Wunderlich		compatible = "mediatek,mt7531";
2058e01fb15SFrank Wunderlich		reg = <31>;
2068e01fb15SFrank Wunderlich		interrupt-controller;
2078e01fb15SFrank Wunderlich		#interrupt-cells = <1>;
208de7e42e9SAngeloGioacchino Del Regno		interrupts-extended = <&pio 66 IRQ_TYPE_LEVEL_HIGH>;
2098e01fb15SFrank Wunderlich		reset-gpios = <&pio 5 GPIO_ACTIVE_HIGH>;
2108e01fb15SFrank Wunderlich	};
2118e01fb15SFrank Wunderlich};
2128e01fb15SFrank Wunderlich
2138e01fb15SFrank Wunderlich&mmc0 {
2148e01fb15SFrank Wunderlich	pinctrl-names = "default", "state_uhs";
2158e01fb15SFrank Wunderlich	pinctrl-0 = <&mmc0_pins_default>;
2168e01fb15SFrank Wunderlich	pinctrl-1 = <&mmc0_pins_uhs>;
2178e01fb15SFrank Wunderlich	vmmc-supply = <&reg_3p3v>;
2188e01fb15SFrank Wunderlich	vqmmc-supply = <&reg_1p8v>;
2198e01fb15SFrank Wunderlich};
2208e01fb15SFrank Wunderlich
2218e01fb15SFrank Wunderlich&i2c0 {
2228e01fb15SFrank Wunderlich	pinctrl-names = "default";
2238e01fb15SFrank Wunderlich	pinctrl-0 = <&i2c_pins>;
2248e01fb15SFrank Wunderlich	status = "okay";
2258e01fb15SFrank Wunderlich};
2268e01fb15SFrank Wunderlich
2278e01fb15SFrank Wunderlich&pcie {
2288e01fb15SFrank Wunderlich	pinctrl-names = "default";
2298e01fb15SFrank Wunderlich	pinctrl-0 = <&pcie_pins>;
2308e01fb15SFrank Wunderlich	status = "okay";
2318e01fb15SFrank Wunderlich};
2328e01fb15SFrank Wunderlich
2338e01fb15SFrank Wunderlich&pcie_phy {
2348e01fb15SFrank Wunderlich	status = "okay";
2358e01fb15SFrank Wunderlich};
2368e01fb15SFrank Wunderlich
2378e01fb15SFrank Wunderlich&pio {
2388e01fb15SFrank Wunderlich	i2c_pins: i2c-pins {
2398e01fb15SFrank Wunderlich		mux {
2408e01fb15SFrank Wunderlich			function = "i2c";
2418e01fb15SFrank Wunderlich			groups = "i2c";
2428e01fb15SFrank Wunderlich		};
2438e01fb15SFrank Wunderlich	};
2448e01fb15SFrank Wunderlich
2458e01fb15SFrank Wunderlich	mmc0_pins_default: mmc0-pins {
2468e01fb15SFrank Wunderlich		mux {
2478e01fb15SFrank Wunderlich			function = "emmc";
2488e01fb15SFrank Wunderlich			groups = "emmc_51";
2498e01fb15SFrank Wunderlich		};
2508e01fb15SFrank Wunderlich		conf-cmd-dat {
2518e01fb15SFrank Wunderlich			pins = "EMMC_DATA_0", "EMMC_DATA_1", "EMMC_DATA_2",
2528e01fb15SFrank Wunderlich			       "EMMC_DATA_3", "EMMC_DATA_4", "EMMC_DATA_5",
2538e01fb15SFrank Wunderlich			       "EMMC_DATA_6", "EMMC_DATA_7", "EMMC_CMD";
2548e01fb15SFrank Wunderlich			input-enable;
2558e01fb15SFrank Wunderlich			drive-strength = <4>;
2568e01fb15SFrank Wunderlich			bias-pull-up = <MTK_PUPD_SET_R1R0_01>; /* pull-up 10K */
2578e01fb15SFrank Wunderlich		};
2588e01fb15SFrank Wunderlich		conf-clk {
2598e01fb15SFrank Wunderlich			pins = "EMMC_CK";
2608e01fb15SFrank Wunderlich			drive-strength = <6>;
2618e01fb15SFrank Wunderlich			bias-pull-down = <MTK_PUPD_SET_R1R0_10>; /* pull-down 50K */
2628e01fb15SFrank Wunderlich		};
2638e01fb15SFrank Wunderlich		conf-ds {
2648e01fb15SFrank Wunderlich			pins = "EMMC_DSL";
2658e01fb15SFrank Wunderlich			bias-pull-down = <MTK_PUPD_SET_R1R0_10>; /* pull-down 50K */
2668e01fb15SFrank Wunderlich		};
2678e01fb15SFrank Wunderlich		conf-rst {
2688e01fb15SFrank Wunderlich			pins = "EMMC_RSTB";
2698e01fb15SFrank Wunderlich			drive-strength = <4>;
2708e01fb15SFrank Wunderlich			bias-pull-up = <MTK_PUPD_SET_R1R0_01>; /* pull-up 10K */
2718e01fb15SFrank Wunderlich		};
2728e01fb15SFrank Wunderlich	};
2738e01fb15SFrank Wunderlich
2748e01fb15SFrank Wunderlich	mmc0_pins_uhs: mmc0-uhs-pins {
2758e01fb15SFrank Wunderlich		mux {
2768e01fb15SFrank Wunderlich			function = "emmc";
2778e01fb15SFrank Wunderlich			groups = "emmc_51";
2788e01fb15SFrank Wunderlich		};
2798e01fb15SFrank Wunderlich		conf-cmd-dat {
2808e01fb15SFrank Wunderlich			pins = "EMMC_DATA_0", "EMMC_DATA_1", "EMMC_DATA_2",
2818e01fb15SFrank Wunderlich			       "EMMC_DATA_3", "EMMC_DATA_4", "EMMC_DATA_5",
2828e01fb15SFrank Wunderlich			       "EMMC_DATA_6", "EMMC_DATA_7", "EMMC_CMD";
2838e01fb15SFrank Wunderlich			input-enable;
2848e01fb15SFrank Wunderlich			drive-strength = <4>;
2858e01fb15SFrank Wunderlich			bias-pull-up = <MTK_PUPD_SET_R1R0_01>; /* pull-up 10K */
2868e01fb15SFrank Wunderlich		};
2878e01fb15SFrank Wunderlich		conf-clk {
2888e01fb15SFrank Wunderlich			pins = "EMMC_CK";
2898e01fb15SFrank Wunderlich			drive-strength = <6>;
2908e01fb15SFrank Wunderlich			bias-pull-down = <MTK_PUPD_SET_R1R0_10>; /* pull-down 50K */
2918e01fb15SFrank Wunderlich		};
2928e01fb15SFrank Wunderlich		conf-ds {
2938e01fb15SFrank Wunderlich			pins = "EMMC_DSL";
2948e01fb15SFrank Wunderlich			bias-pull-down = <MTK_PUPD_SET_R1R0_10>; /* pull-down 50K */
2958e01fb15SFrank Wunderlich		};
2968e01fb15SFrank Wunderlich		conf-rst {
2978e01fb15SFrank Wunderlich			pins = "EMMC_RSTB";
2988e01fb15SFrank Wunderlich			drive-strength = <4>;
2998e01fb15SFrank Wunderlich			bias-pull-up = <MTK_PUPD_SET_R1R0_01>; /* pull-up 10K */
3008e01fb15SFrank Wunderlich		};
3018e01fb15SFrank Wunderlich	};
3028e01fb15SFrank Wunderlich
3038e01fb15SFrank Wunderlich	pcie_pins: pcie-pins {
3048e01fb15SFrank Wunderlich		mux {
3058e01fb15SFrank Wunderlich			function = "pcie";
3068e01fb15SFrank Wunderlich			groups = "pcie_clk", "pcie_pereset";
3078e01fb15SFrank Wunderlich		};
3088e01fb15SFrank Wunderlich	};
3098e01fb15SFrank Wunderlich
310cfde46c6SFrank Wunderlich	pwm_pins: pwm-pins {
311cfde46c6SFrank Wunderlich		mux {
312cfde46c6SFrank Wunderlich			function = "pwm";
313cfde46c6SFrank Wunderlich			groups = "pwm0", "pwm1_0";
314cfde46c6SFrank Wunderlich		};
315cfde46c6SFrank Wunderlich	};
316cfde46c6SFrank Wunderlich
3178e01fb15SFrank Wunderlich	spi_flash_pins: spi-flash-pins {
3188e01fb15SFrank Wunderlich		mux {
3198e01fb15SFrank Wunderlich			function = "spi";
3208e01fb15SFrank Wunderlich			groups = "spi0", "spi0_wp_hold";
3218e01fb15SFrank Wunderlich		};
3228e01fb15SFrank Wunderlich	};
3238e01fb15SFrank Wunderlich
3248e01fb15SFrank Wunderlich	spic_pins: spic-pins {
3258e01fb15SFrank Wunderlich		mux {
3268e01fb15SFrank Wunderlich			function = "spi";
3278e01fb15SFrank Wunderlich			groups = "spi1_0";
3288e01fb15SFrank Wunderlich		};
3298e01fb15SFrank Wunderlich	};
3308e01fb15SFrank Wunderlich
3318e01fb15SFrank Wunderlich	uart1_pins: uart1-pins {
3328e01fb15SFrank Wunderlich		mux {
3338e01fb15SFrank Wunderlich			function = "uart";
3348e01fb15SFrank Wunderlich			groups = "uart1_rx_tx";
3358e01fb15SFrank Wunderlich		};
3368e01fb15SFrank Wunderlich	};
3378e01fb15SFrank Wunderlich
3388e01fb15SFrank Wunderlich	uart2_pins: uart2-pins {
3398e01fb15SFrank Wunderlich		mux {
3408e01fb15SFrank Wunderlich			function = "uart";
3418e01fb15SFrank Wunderlich			groups = "uart2_0_rx_tx";
3428e01fb15SFrank Wunderlich		};
3438e01fb15SFrank Wunderlich	};
3448e01fb15SFrank Wunderlich
3458e01fb15SFrank Wunderlich	wf_2g_5g_pins: wf-2g-5g-pins {
3468e01fb15SFrank Wunderlich		mux {
3478e01fb15SFrank Wunderlich			function = "wifi";
3488e01fb15SFrank Wunderlich			groups = "wf_2g", "wf_5g";
3498e01fb15SFrank Wunderlich		};
3508e01fb15SFrank Wunderlich		conf {
3518e01fb15SFrank Wunderlich			pins = "WF0_HB1", "WF0_HB2", "WF0_HB3", "WF0_HB4",
3528e01fb15SFrank Wunderlich			       "WF0_HB0", "WF0_HB0_B", "WF0_HB5", "WF0_HB6",
3538e01fb15SFrank Wunderlich			       "WF0_HB7", "WF0_HB8", "WF0_HB9", "WF0_HB10",
3548e01fb15SFrank Wunderlich			       "WF0_TOP_CLK", "WF0_TOP_DATA", "WF1_HB1",
3558e01fb15SFrank Wunderlich			       "WF1_HB2", "WF1_HB3", "WF1_HB4", "WF1_HB0",
3568e01fb15SFrank Wunderlich			       "WF1_HB5", "WF1_HB6", "WF1_HB7", "WF1_HB8",
3578e01fb15SFrank Wunderlich			       "WF1_TOP_CLK", "WF1_TOP_DATA";
3588e01fb15SFrank Wunderlich			drive-strength = <4>;
3598e01fb15SFrank Wunderlich		};
3608e01fb15SFrank Wunderlich	};
3618e01fb15SFrank Wunderlich
3628e01fb15SFrank Wunderlich	wf_dbdc_pins: wf-dbdc-pins {
3638e01fb15SFrank Wunderlich		mux {
3648e01fb15SFrank Wunderlich			function = "wifi";
3658e01fb15SFrank Wunderlich			groups = "wf_dbdc";
3668e01fb15SFrank Wunderlich		};
3678e01fb15SFrank Wunderlich		conf {
3688e01fb15SFrank Wunderlich			pins = "WF0_HB1", "WF0_HB2", "WF0_HB3", "WF0_HB4",
3698e01fb15SFrank Wunderlich			       "WF0_HB0", "WF0_HB0_B", "WF0_HB5", "WF0_HB6",
3708e01fb15SFrank Wunderlich			       "WF0_HB7", "WF0_HB8", "WF0_HB9", "WF0_HB10",
3718e01fb15SFrank Wunderlich			       "WF0_TOP_CLK", "WF0_TOP_DATA", "WF1_HB1",
3728e01fb15SFrank Wunderlich			       "WF1_HB2", "WF1_HB3", "WF1_HB4", "WF1_HB0",
3738e01fb15SFrank Wunderlich			       "WF1_HB5", "WF1_HB6", "WF1_HB7", "WF1_HB8",
3748e01fb15SFrank Wunderlich			       "WF1_TOP_CLK", "WF1_TOP_DATA";
3758e01fb15SFrank Wunderlich			drive-strength = <4>;
3768e01fb15SFrank Wunderlich		};
3778e01fb15SFrank Wunderlich	};
3788e01fb15SFrank Wunderlich
3798e01fb15SFrank Wunderlich	wf_led_pins: wf-led-pins {
3808e01fb15SFrank Wunderlich		mux {
3818e01fb15SFrank Wunderlich			function = "led";
3828e01fb15SFrank Wunderlich			groups = "wifi_led";
3838e01fb15SFrank Wunderlich		};
3848e01fb15SFrank Wunderlich	};
3858e01fb15SFrank Wunderlich};
3868e01fb15SFrank Wunderlich
387cfde46c6SFrank Wunderlich&pwm {
388cfde46c6SFrank Wunderlich	pinctrl-names = "default";
389cfde46c6SFrank Wunderlich	pinctrl-0 = <&pwm_pins>;
390cfde46c6SFrank Wunderlich	status = "okay";
391cfde46c6SFrank Wunderlich};
392cfde46c6SFrank Wunderlich
3938e01fb15SFrank Wunderlich&spi0 {
3948e01fb15SFrank Wunderlich	pinctrl-names = "default";
3958e01fb15SFrank Wunderlich	pinctrl-0 = <&spi_flash_pins>;
3968e01fb15SFrank Wunderlich	status = "okay";
3978e01fb15SFrank Wunderlich};
3988e01fb15SFrank Wunderlich
3998e01fb15SFrank Wunderlich&spi1 {
4008e01fb15SFrank Wunderlich	pinctrl-names = "default";
4018e01fb15SFrank Wunderlich	pinctrl-0 = <&spic_pins>;
4028e01fb15SFrank Wunderlich	status = "okay";
4038e01fb15SFrank Wunderlich};
4048e01fb15SFrank Wunderlich
4058e01fb15SFrank Wunderlich&ssusb {
4068e01fb15SFrank Wunderlich	status = "okay";
4078e01fb15SFrank Wunderlich};
4088e01fb15SFrank Wunderlich
4098e01fb15SFrank Wunderlich&switch {
4108e01fb15SFrank Wunderlich	ports {
4118e01fb15SFrank Wunderlich		#address-cells = <1>;
4128e01fb15SFrank Wunderlich		#size-cells = <0>;
4138e01fb15SFrank Wunderlich
4148e01fb15SFrank Wunderlich		port@0 {
4158e01fb15SFrank Wunderlich			reg = <0>;
4168e01fb15SFrank Wunderlich			label = "wan";
4178e01fb15SFrank Wunderlich		};
4188e01fb15SFrank Wunderlich
4198e01fb15SFrank Wunderlich		port@1 {
4208e01fb15SFrank Wunderlich			reg = <1>;
4218e01fb15SFrank Wunderlich			label = "lan0";
4228e01fb15SFrank Wunderlich		};
4238e01fb15SFrank Wunderlich
4248e01fb15SFrank Wunderlich		port@2 {
4258e01fb15SFrank Wunderlich			reg = <2>;
4268e01fb15SFrank Wunderlich			label = "lan1";
4278e01fb15SFrank Wunderlich		};
4288e01fb15SFrank Wunderlich
4298e01fb15SFrank Wunderlich		port@3 {
4308e01fb15SFrank Wunderlich			reg = <3>;
4318e01fb15SFrank Wunderlich			label = "lan2";
4328e01fb15SFrank Wunderlich		};
4338e01fb15SFrank Wunderlich
4348e01fb15SFrank Wunderlich		port@4 {
4358e01fb15SFrank Wunderlich			reg = <4>;
4368e01fb15SFrank Wunderlich			label = "lan3";
4378e01fb15SFrank Wunderlich		};
4388e01fb15SFrank Wunderlich
4398e01fb15SFrank Wunderlich		port5: port@5 {
4408e01fb15SFrank Wunderlich			reg = <5>;
4418e01fb15SFrank Wunderlich			label = "lan4";
4428e01fb15SFrank Wunderlich			phy-mode = "2500base-x";
4438e01fb15SFrank Wunderlich			sfp = <&sfp2>;
4448e01fb15SFrank Wunderlich			managed = "in-band-status";
4458e01fb15SFrank Wunderlich		};
4468e01fb15SFrank Wunderlich
4478e01fb15SFrank Wunderlich		port@6 {
4488e01fb15SFrank Wunderlich			reg = <6>;
4498e01fb15SFrank Wunderlich			label = "cpu";
4508e01fb15SFrank Wunderlich			ethernet = <&gmac0>;
4518e01fb15SFrank Wunderlich			phy-mode = "2500base-x";
4528e01fb15SFrank Wunderlich
4538e01fb15SFrank Wunderlich			fixed-link {
4548e01fb15SFrank Wunderlich				speed = <2500>;
4558e01fb15SFrank Wunderlich				full-duplex;
4568e01fb15SFrank Wunderlich				pause;
4578e01fb15SFrank Wunderlich			};
4588e01fb15SFrank Wunderlich		};
4598e01fb15SFrank Wunderlich	};
4608e01fb15SFrank Wunderlich};
4618e01fb15SFrank Wunderlich
4628e01fb15SFrank Wunderlich&trng {
4638e01fb15SFrank Wunderlich	status = "okay";
4648e01fb15SFrank Wunderlich};
4658e01fb15SFrank Wunderlich
4668e01fb15SFrank Wunderlich&uart0 {
4678e01fb15SFrank Wunderlich	status = "okay";
4688e01fb15SFrank Wunderlich};
4698e01fb15SFrank Wunderlich
4708e01fb15SFrank Wunderlich&uart1 {
4718e01fb15SFrank Wunderlich	pinctrl-names = "default";
4728e01fb15SFrank Wunderlich	pinctrl-0 = <&uart1_pins>;
4738e01fb15SFrank Wunderlich	status = "okay";
4748e01fb15SFrank Wunderlich};
4758e01fb15SFrank Wunderlich
4768e01fb15SFrank Wunderlich&uart2 {
4778e01fb15SFrank Wunderlich	pinctrl-names = "default";
4788e01fb15SFrank Wunderlich	pinctrl-0 = <&uart2_pins>;
4798e01fb15SFrank Wunderlich	status = "okay";
4808e01fb15SFrank Wunderlich};
4818e01fb15SFrank Wunderlich
4828e01fb15SFrank Wunderlich&usb_phy {
4838e01fb15SFrank Wunderlich	status = "okay";
4848e01fb15SFrank Wunderlich};
4858e01fb15SFrank Wunderlich
4868e01fb15SFrank Wunderlich&watchdog {
4878e01fb15SFrank Wunderlich	status = "okay";
4888e01fb15SFrank Wunderlich};
4898e01fb15SFrank Wunderlich
4908e01fb15SFrank Wunderlich&wifi {
4918e01fb15SFrank Wunderlich	status = "okay";
4928e01fb15SFrank Wunderlich	pinctrl-names = "default", "dbdc";
4938e01fb15SFrank Wunderlich	pinctrl-0 = <&wf_2g_5g_pins>, <&wf_led_pins>;
4948e01fb15SFrank Wunderlich	pinctrl-1 = <&wf_dbdc_pins>, <&wf_led_pins>;
49542bdf378SFrank Wunderlich
49642bdf378SFrank Wunderlich	led {
49742bdf378SFrank Wunderlich		led-active-low;
49842bdf378SFrank Wunderlich	};
4998e01fb15SFrank Wunderlich};
5008e01fb15SFrank Wunderlich
501