162306a36Sopenharmony_ci// SPDX-License-Identifier: (GPL-2.0 OR MIT)
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Copyright (C) 2021 MediaTek Inc.
462306a36Sopenharmony_ci * Authors: Sam.Shih <sam.shih@mediatek.com>
562306a36Sopenharmony_ci *          Frank Wunderlich <frank-w@public-files.de>
662306a36Sopenharmony_ci *          Daniel Golle <daniel@makrotopia.org>
762306a36Sopenharmony_ci */
862306a36Sopenharmony_ci
962306a36Sopenharmony_ci/dts-v1/;
1062306a36Sopenharmony_ci#include <dt-bindings/gpio/gpio.h>
1162306a36Sopenharmony_ci#include <dt-bindings/input/input.h>
1262306a36Sopenharmony_ci#include <dt-bindings/leds/common.h>
1362306a36Sopenharmony_ci#include <dt-bindings/pinctrl/mt65xx.h>
1462306a36Sopenharmony_ci
1562306a36Sopenharmony_ci#include "mt7986a.dtsi"
1662306a36Sopenharmony_ci
1762306a36Sopenharmony_ci/ {
1862306a36Sopenharmony_ci	model = "Bananapi BPI-R3";
1962306a36Sopenharmony_ci	chassis-type = "embedded";
2062306a36Sopenharmony_ci	compatible = "bananapi,bpi-r3", "mediatek,mt7986a";
2162306a36Sopenharmony_ci
2262306a36Sopenharmony_ci	aliases {
2362306a36Sopenharmony_ci		serial0 = &uart0;
2462306a36Sopenharmony_ci		ethernet0 = &gmac0;
2562306a36Sopenharmony_ci		ethernet1 = &gmac1;
2662306a36Sopenharmony_ci	};
2762306a36Sopenharmony_ci
2862306a36Sopenharmony_ci	chosen {
2962306a36Sopenharmony_ci		stdout-path = "serial0:115200n8";
3062306a36Sopenharmony_ci	};
3162306a36Sopenharmony_ci
3262306a36Sopenharmony_ci	dcin: regulator-12vd {
3362306a36Sopenharmony_ci		compatible = "regulator-fixed";
3462306a36Sopenharmony_ci		regulator-name = "12vd";
3562306a36Sopenharmony_ci		regulator-min-microvolt = <12000000>;
3662306a36Sopenharmony_ci		regulator-max-microvolt = <12000000>;
3762306a36Sopenharmony_ci		regulator-boot-on;
3862306a36Sopenharmony_ci		regulator-always-on;
3962306a36Sopenharmony_ci	};
4062306a36Sopenharmony_ci
4162306a36Sopenharmony_ci	fan: pwm-fan {
4262306a36Sopenharmony_ci		compatible = "pwm-fan";
4362306a36Sopenharmony_ci		#cooling-cells = <2>;
4462306a36Sopenharmony_ci		/* cooling level (0, 1, 2) - pwm inverted */
4562306a36Sopenharmony_ci		cooling-levels = <255 96 0>;
4662306a36Sopenharmony_ci		pwms = <&pwm 0 10000>;
4762306a36Sopenharmony_ci		status = "okay";
4862306a36Sopenharmony_ci	};
4962306a36Sopenharmony_ci
5062306a36Sopenharmony_ci	gpio-keys {
5162306a36Sopenharmony_ci		compatible = "gpio-keys";
5262306a36Sopenharmony_ci
5362306a36Sopenharmony_ci		reset-key {
5462306a36Sopenharmony_ci			label = "reset";
5562306a36Sopenharmony_ci			linux,code = <KEY_RESTART>;
5662306a36Sopenharmony_ci			gpios = <&pio 9 GPIO_ACTIVE_LOW>;
5762306a36Sopenharmony_ci		};
5862306a36Sopenharmony_ci
5962306a36Sopenharmony_ci		wps-key {
6062306a36Sopenharmony_ci			label = "wps";
6162306a36Sopenharmony_ci			linux,code = <KEY_WPS_BUTTON>;
6262306a36Sopenharmony_ci			gpios = <&pio 10 GPIO_ACTIVE_LOW>;
6362306a36Sopenharmony_ci		};
6462306a36Sopenharmony_ci	};
6562306a36Sopenharmony_ci
6662306a36Sopenharmony_ci	/* i2c of the left SFP cage (wan) */
6762306a36Sopenharmony_ci	i2c_sfp1: i2c-gpio-0 {
6862306a36Sopenharmony_ci		compatible = "i2c-gpio";
6962306a36Sopenharmony_ci		sda-gpios = <&pio 16 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
7062306a36Sopenharmony_ci		scl-gpios = <&pio 17 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
7162306a36Sopenharmony_ci		i2c-gpio,delay-us = <2>;
7262306a36Sopenharmony_ci		#address-cells = <1>;
7362306a36Sopenharmony_ci		#size-cells = <0>;
7462306a36Sopenharmony_ci	};
7562306a36Sopenharmony_ci
7662306a36Sopenharmony_ci	/* i2c of the right SFP cage (lan) */
7762306a36Sopenharmony_ci	i2c_sfp2: i2c-gpio-1 {
7862306a36Sopenharmony_ci		compatible = "i2c-gpio";
7962306a36Sopenharmony_ci		sda-gpios = <&pio 18 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
8062306a36Sopenharmony_ci		scl-gpios = <&pio 19 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
8162306a36Sopenharmony_ci		i2c-gpio,delay-us = <2>;
8262306a36Sopenharmony_ci		#address-cells = <1>;
8362306a36Sopenharmony_ci		#size-cells = <0>;
8462306a36Sopenharmony_ci	};
8562306a36Sopenharmony_ci
8662306a36Sopenharmony_ci	leds {
8762306a36Sopenharmony_ci		compatible = "gpio-leds";
8862306a36Sopenharmony_ci
8962306a36Sopenharmony_ci		green_led: led-0 {
9062306a36Sopenharmony_ci			color = <LED_COLOR_ID_GREEN>;
9162306a36Sopenharmony_ci			function = LED_FUNCTION_POWER;
9262306a36Sopenharmony_ci			gpios = <&pio 69 GPIO_ACTIVE_HIGH>;
9362306a36Sopenharmony_ci			default-state = "on";
9462306a36Sopenharmony_ci		};
9562306a36Sopenharmony_ci
9662306a36Sopenharmony_ci		blue_led: led-1 {
9762306a36Sopenharmony_ci			color = <LED_COLOR_ID_BLUE>;
9862306a36Sopenharmony_ci			function = LED_FUNCTION_STATUS;
9962306a36Sopenharmony_ci			gpios = <&pio 86 GPIO_ACTIVE_HIGH>;
10062306a36Sopenharmony_ci			default-state = "off";
10162306a36Sopenharmony_ci		};
10262306a36Sopenharmony_ci	};
10362306a36Sopenharmony_ci
10462306a36Sopenharmony_ci	reg_1p8v: regulator-1p8v {
10562306a36Sopenharmony_ci		compatible = "regulator-fixed";
10662306a36Sopenharmony_ci		regulator-name = "1.8vd";
10762306a36Sopenharmony_ci		regulator-min-microvolt = <1800000>;
10862306a36Sopenharmony_ci		regulator-max-microvolt = <1800000>;
10962306a36Sopenharmony_ci		regulator-boot-on;
11062306a36Sopenharmony_ci		regulator-always-on;
11162306a36Sopenharmony_ci		vin-supply = <&dcin>;
11262306a36Sopenharmony_ci	};
11362306a36Sopenharmony_ci
11462306a36Sopenharmony_ci	reg_3p3v: regulator-3p3v {
11562306a36Sopenharmony_ci		compatible = "regulator-fixed";
11662306a36Sopenharmony_ci		regulator-name = "3.3vd";
11762306a36Sopenharmony_ci		regulator-min-microvolt = <3300000>;
11862306a36Sopenharmony_ci		regulator-max-microvolt = <3300000>;
11962306a36Sopenharmony_ci		regulator-boot-on;
12062306a36Sopenharmony_ci		regulator-always-on;
12162306a36Sopenharmony_ci		vin-supply = <&dcin>;
12262306a36Sopenharmony_ci	};
12362306a36Sopenharmony_ci
12462306a36Sopenharmony_ci	/* left SFP cage (wan) */
12562306a36Sopenharmony_ci	sfp1: sfp-1 {
12662306a36Sopenharmony_ci		compatible = "sff,sfp";
12762306a36Sopenharmony_ci		i2c-bus = <&i2c_sfp1>;
12862306a36Sopenharmony_ci		los-gpios = <&pio 46 GPIO_ACTIVE_HIGH>;
12962306a36Sopenharmony_ci		maximum-power-milliwatt = <3000>;
13062306a36Sopenharmony_ci		mod-def0-gpios = <&pio 49 GPIO_ACTIVE_LOW>;
13162306a36Sopenharmony_ci		tx-disable-gpios = <&pio 20 GPIO_ACTIVE_HIGH>;
13262306a36Sopenharmony_ci		tx-fault-gpios = <&pio 7 GPIO_ACTIVE_HIGH>;
13362306a36Sopenharmony_ci	};
13462306a36Sopenharmony_ci
13562306a36Sopenharmony_ci	/* right SFP cage (lan) */
13662306a36Sopenharmony_ci	sfp2: sfp-2 {
13762306a36Sopenharmony_ci		compatible = "sff,sfp";
13862306a36Sopenharmony_ci		i2c-bus = <&i2c_sfp2>;
13962306a36Sopenharmony_ci		los-gpios = <&pio 31 GPIO_ACTIVE_HIGH>;
14062306a36Sopenharmony_ci		mod-def0-gpios = <&pio 47 GPIO_ACTIVE_LOW>;
14162306a36Sopenharmony_ci		maximum-power-milliwatt = <3000>;
14262306a36Sopenharmony_ci		tx-disable-gpios = <&pio 15 GPIO_ACTIVE_HIGH>;
14362306a36Sopenharmony_ci		tx-fault-gpios = <&pio 48 GPIO_ACTIVE_HIGH>;
14462306a36Sopenharmony_ci	};
14562306a36Sopenharmony_ci};
14662306a36Sopenharmony_ci
14762306a36Sopenharmony_ci&cpu_thermal {
14862306a36Sopenharmony_ci	cooling-maps {
14962306a36Sopenharmony_ci		cpu-active-high {
15062306a36Sopenharmony_ci			/* active: set fan to cooling level 2 */
15162306a36Sopenharmony_ci			cooling-device = <&fan 2 2>;
15262306a36Sopenharmony_ci			trip = <&cpu_trip_active_high>;
15362306a36Sopenharmony_ci		};
15462306a36Sopenharmony_ci
15562306a36Sopenharmony_ci		cpu-active-med {
15662306a36Sopenharmony_ci			/* active: set fan to cooling level 1 */
15762306a36Sopenharmony_ci			cooling-device = <&fan 1 1>;
15862306a36Sopenharmony_ci			trip = <&cpu_trip_active_med>;
15962306a36Sopenharmony_ci		};
16062306a36Sopenharmony_ci
16162306a36Sopenharmony_ci		cpu-active-low {
16262306a36Sopenharmony_ci			/* active: set fan to cooling level 0 */
16362306a36Sopenharmony_ci			cooling-device = <&fan 0 0>;
16462306a36Sopenharmony_ci			trip = <&cpu_trip_active_low>;
16562306a36Sopenharmony_ci		};
16662306a36Sopenharmony_ci	};
16762306a36Sopenharmony_ci};
16862306a36Sopenharmony_ci
16962306a36Sopenharmony_ci&crypto {
17062306a36Sopenharmony_ci	status = "okay";
17162306a36Sopenharmony_ci};
17262306a36Sopenharmony_ci
17362306a36Sopenharmony_ci&eth {
17462306a36Sopenharmony_ci	status = "okay";
17562306a36Sopenharmony_ci
17662306a36Sopenharmony_ci	gmac0: mac@0 {
17762306a36Sopenharmony_ci		compatible = "mediatek,eth-mac";
17862306a36Sopenharmony_ci		reg = <0>;
17962306a36Sopenharmony_ci		phy-mode = "2500base-x";
18062306a36Sopenharmony_ci
18162306a36Sopenharmony_ci		fixed-link {
18262306a36Sopenharmony_ci			speed = <2500>;
18362306a36Sopenharmony_ci			full-duplex;
18462306a36Sopenharmony_ci			pause;
18562306a36Sopenharmony_ci		};
18662306a36Sopenharmony_ci	};
18762306a36Sopenharmony_ci
18862306a36Sopenharmony_ci	gmac1: mac@1 {
18962306a36Sopenharmony_ci		compatible = "mediatek,eth-mac";
19062306a36Sopenharmony_ci		reg = <1>;
19162306a36Sopenharmony_ci		phy-mode = "2500base-x";
19262306a36Sopenharmony_ci		sfp = <&sfp1>;
19362306a36Sopenharmony_ci		managed = "in-band-status";
19462306a36Sopenharmony_ci	};
19562306a36Sopenharmony_ci
19662306a36Sopenharmony_ci	mdio: mdio-bus {
19762306a36Sopenharmony_ci		#address-cells = <1>;
19862306a36Sopenharmony_ci		#size-cells = <0>;
19962306a36Sopenharmony_ci	};
20062306a36Sopenharmony_ci};
20162306a36Sopenharmony_ci
20262306a36Sopenharmony_ci&mdio {
20362306a36Sopenharmony_ci	switch: switch@31 {
20462306a36Sopenharmony_ci		compatible = "mediatek,mt7531";
20562306a36Sopenharmony_ci		reg = <31>;
20662306a36Sopenharmony_ci		interrupt-controller;
20762306a36Sopenharmony_ci		#interrupt-cells = <1>;
20862306a36Sopenharmony_ci		interrupt-parent = <&pio>;
20962306a36Sopenharmony_ci		interrupts = <66 IRQ_TYPE_LEVEL_HIGH>;
21062306a36Sopenharmony_ci		reset-gpios = <&pio 5 GPIO_ACTIVE_HIGH>;
21162306a36Sopenharmony_ci	};
21262306a36Sopenharmony_ci};
21362306a36Sopenharmony_ci
21462306a36Sopenharmony_ci&mmc0 {
21562306a36Sopenharmony_ci	pinctrl-names = "default", "state_uhs";
21662306a36Sopenharmony_ci	pinctrl-0 = <&mmc0_pins_default>;
21762306a36Sopenharmony_ci	pinctrl-1 = <&mmc0_pins_uhs>;
21862306a36Sopenharmony_ci	vmmc-supply = <&reg_3p3v>;
21962306a36Sopenharmony_ci	vqmmc-supply = <&reg_1p8v>;
22062306a36Sopenharmony_ci};
22162306a36Sopenharmony_ci
22262306a36Sopenharmony_ci&i2c0 {
22362306a36Sopenharmony_ci	pinctrl-names = "default";
22462306a36Sopenharmony_ci	pinctrl-0 = <&i2c_pins>;
22562306a36Sopenharmony_ci	status = "okay";
22662306a36Sopenharmony_ci};
22762306a36Sopenharmony_ci
22862306a36Sopenharmony_ci&pcie {
22962306a36Sopenharmony_ci	pinctrl-names = "default";
23062306a36Sopenharmony_ci	pinctrl-0 = <&pcie_pins>;
23162306a36Sopenharmony_ci	status = "okay";
23262306a36Sopenharmony_ci};
23362306a36Sopenharmony_ci
23462306a36Sopenharmony_ci&pcie_phy {
23562306a36Sopenharmony_ci	status = "okay";
23662306a36Sopenharmony_ci};
23762306a36Sopenharmony_ci
23862306a36Sopenharmony_ci&pio {
23962306a36Sopenharmony_ci	i2c_pins: i2c-pins {
24062306a36Sopenharmony_ci		mux {
24162306a36Sopenharmony_ci			function = "i2c";
24262306a36Sopenharmony_ci			groups = "i2c";
24362306a36Sopenharmony_ci		};
24462306a36Sopenharmony_ci	};
24562306a36Sopenharmony_ci
24662306a36Sopenharmony_ci	mmc0_pins_default: mmc0-pins {
24762306a36Sopenharmony_ci		mux {
24862306a36Sopenharmony_ci			function = "emmc";
24962306a36Sopenharmony_ci			groups = "emmc_51";
25062306a36Sopenharmony_ci		};
25162306a36Sopenharmony_ci		conf-cmd-dat {
25262306a36Sopenharmony_ci			pins = "EMMC_DATA_0", "EMMC_DATA_1", "EMMC_DATA_2",
25362306a36Sopenharmony_ci			       "EMMC_DATA_3", "EMMC_DATA_4", "EMMC_DATA_5",
25462306a36Sopenharmony_ci			       "EMMC_DATA_6", "EMMC_DATA_7", "EMMC_CMD";
25562306a36Sopenharmony_ci			input-enable;
25662306a36Sopenharmony_ci			drive-strength = <4>;
25762306a36Sopenharmony_ci			bias-pull-up = <MTK_PUPD_SET_R1R0_01>; /* pull-up 10K */
25862306a36Sopenharmony_ci		};
25962306a36Sopenharmony_ci		conf-clk {
26062306a36Sopenharmony_ci			pins = "EMMC_CK";
26162306a36Sopenharmony_ci			drive-strength = <6>;
26262306a36Sopenharmony_ci			bias-pull-down = <MTK_PUPD_SET_R1R0_10>; /* pull-down 50K */
26362306a36Sopenharmony_ci		};
26462306a36Sopenharmony_ci		conf-ds {
26562306a36Sopenharmony_ci			pins = "EMMC_DSL";
26662306a36Sopenharmony_ci			bias-pull-down = <MTK_PUPD_SET_R1R0_10>; /* pull-down 50K */
26762306a36Sopenharmony_ci		};
26862306a36Sopenharmony_ci		conf-rst {
26962306a36Sopenharmony_ci			pins = "EMMC_RSTB";
27062306a36Sopenharmony_ci			drive-strength = <4>;
27162306a36Sopenharmony_ci			bias-pull-up = <MTK_PUPD_SET_R1R0_01>; /* pull-up 10K */
27262306a36Sopenharmony_ci		};
27362306a36Sopenharmony_ci	};
27462306a36Sopenharmony_ci
27562306a36Sopenharmony_ci	mmc0_pins_uhs: mmc0-uhs-pins {
27662306a36Sopenharmony_ci		mux {
27762306a36Sopenharmony_ci			function = "emmc";
27862306a36Sopenharmony_ci			groups = "emmc_51";
27962306a36Sopenharmony_ci		};
28062306a36Sopenharmony_ci		conf-cmd-dat {
28162306a36Sopenharmony_ci			pins = "EMMC_DATA_0", "EMMC_DATA_1", "EMMC_DATA_2",
28262306a36Sopenharmony_ci			       "EMMC_DATA_3", "EMMC_DATA_4", "EMMC_DATA_5",
28362306a36Sopenharmony_ci			       "EMMC_DATA_6", "EMMC_DATA_7", "EMMC_CMD";
28462306a36Sopenharmony_ci			input-enable;
28562306a36Sopenharmony_ci			drive-strength = <4>;
28662306a36Sopenharmony_ci			bias-pull-up = <MTK_PUPD_SET_R1R0_01>; /* pull-up 10K */
28762306a36Sopenharmony_ci		};
28862306a36Sopenharmony_ci		conf-clk {
28962306a36Sopenharmony_ci			pins = "EMMC_CK";
29062306a36Sopenharmony_ci			drive-strength = <6>;
29162306a36Sopenharmony_ci			bias-pull-down = <MTK_PUPD_SET_R1R0_10>; /* pull-down 50K */
29262306a36Sopenharmony_ci		};
29362306a36Sopenharmony_ci		conf-ds {
29462306a36Sopenharmony_ci			pins = "EMMC_DSL";
29562306a36Sopenharmony_ci			bias-pull-down = <MTK_PUPD_SET_R1R0_10>; /* pull-down 50K */
29662306a36Sopenharmony_ci		};
29762306a36Sopenharmony_ci		conf-rst {
29862306a36Sopenharmony_ci			pins = "EMMC_RSTB";
29962306a36Sopenharmony_ci			drive-strength = <4>;
30062306a36Sopenharmony_ci			bias-pull-up = <MTK_PUPD_SET_R1R0_01>; /* pull-up 10K */
30162306a36Sopenharmony_ci		};
30262306a36Sopenharmony_ci	};
30362306a36Sopenharmony_ci
30462306a36Sopenharmony_ci	pcie_pins: pcie-pins {
30562306a36Sopenharmony_ci		mux {
30662306a36Sopenharmony_ci			function = "pcie";
30762306a36Sopenharmony_ci			groups = "pcie_clk", "pcie_pereset";
30862306a36Sopenharmony_ci		};
30962306a36Sopenharmony_ci	};
31062306a36Sopenharmony_ci
31162306a36Sopenharmony_ci	pwm_pins: pwm-pins {
31262306a36Sopenharmony_ci		mux {
31362306a36Sopenharmony_ci			function = "pwm";
31462306a36Sopenharmony_ci			groups = "pwm0", "pwm1_0";
31562306a36Sopenharmony_ci		};
31662306a36Sopenharmony_ci	};
31762306a36Sopenharmony_ci
31862306a36Sopenharmony_ci	spi_flash_pins: spi-flash-pins {
31962306a36Sopenharmony_ci		mux {
32062306a36Sopenharmony_ci			function = "spi";
32162306a36Sopenharmony_ci			groups = "spi0", "spi0_wp_hold";
32262306a36Sopenharmony_ci		};
32362306a36Sopenharmony_ci	};
32462306a36Sopenharmony_ci
32562306a36Sopenharmony_ci	spic_pins: spic-pins {
32662306a36Sopenharmony_ci		mux {
32762306a36Sopenharmony_ci			function = "spi";
32862306a36Sopenharmony_ci			groups = "spi1_0";
32962306a36Sopenharmony_ci		};
33062306a36Sopenharmony_ci	};
33162306a36Sopenharmony_ci
33262306a36Sopenharmony_ci	uart1_pins: uart1-pins {
33362306a36Sopenharmony_ci		mux {
33462306a36Sopenharmony_ci			function = "uart";
33562306a36Sopenharmony_ci			groups = "uart1_rx_tx";
33662306a36Sopenharmony_ci		};
33762306a36Sopenharmony_ci	};
33862306a36Sopenharmony_ci
33962306a36Sopenharmony_ci	uart2_pins: uart2-pins {
34062306a36Sopenharmony_ci		mux {
34162306a36Sopenharmony_ci			function = "uart";
34262306a36Sopenharmony_ci			groups = "uart2_0_rx_tx";
34362306a36Sopenharmony_ci		};
34462306a36Sopenharmony_ci	};
34562306a36Sopenharmony_ci
34662306a36Sopenharmony_ci	wf_2g_5g_pins: wf-2g-5g-pins {
34762306a36Sopenharmony_ci		mux {
34862306a36Sopenharmony_ci			function = "wifi";
34962306a36Sopenharmony_ci			groups = "wf_2g", "wf_5g";
35062306a36Sopenharmony_ci		};
35162306a36Sopenharmony_ci		conf {
35262306a36Sopenharmony_ci			pins = "WF0_HB1", "WF0_HB2", "WF0_HB3", "WF0_HB4",
35362306a36Sopenharmony_ci			       "WF0_HB0", "WF0_HB0_B", "WF0_HB5", "WF0_HB6",
35462306a36Sopenharmony_ci			       "WF0_HB7", "WF0_HB8", "WF0_HB9", "WF0_HB10",
35562306a36Sopenharmony_ci			       "WF0_TOP_CLK", "WF0_TOP_DATA", "WF1_HB1",
35662306a36Sopenharmony_ci			       "WF1_HB2", "WF1_HB3", "WF1_HB4", "WF1_HB0",
35762306a36Sopenharmony_ci			       "WF1_HB5", "WF1_HB6", "WF1_HB7", "WF1_HB8",
35862306a36Sopenharmony_ci			       "WF1_TOP_CLK", "WF1_TOP_DATA";
35962306a36Sopenharmony_ci			drive-strength = <4>;
36062306a36Sopenharmony_ci		};
36162306a36Sopenharmony_ci	};
36262306a36Sopenharmony_ci
36362306a36Sopenharmony_ci	wf_dbdc_pins: wf-dbdc-pins {
36462306a36Sopenharmony_ci		mux {
36562306a36Sopenharmony_ci			function = "wifi";
36662306a36Sopenharmony_ci			groups = "wf_dbdc";
36762306a36Sopenharmony_ci		};
36862306a36Sopenharmony_ci		conf {
36962306a36Sopenharmony_ci			pins = "WF0_HB1", "WF0_HB2", "WF0_HB3", "WF0_HB4",
37062306a36Sopenharmony_ci			       "WF0_HB0", "WF0_HB0_B", "WF0_HB5", "WF0_HB6",
37162306a36Sopenharmony_ci			       "WF0_HB7", "WF0_HB8", "WF0_HB9", "WF0_HB10",
37262306a36Sopenharmony_ci			       "WF0_TOP_CLK", "WF0_TOP_DATA", "WF1_HB1",
37362306a36Sopenharmony_ci			       "WF1_HB2", "WF1_HB3", "WF1_HB4", "WF1_HB0",
37462306a36Sopenharmony_ci			       "WF1_HB5", "WF1_HB6", "WF1_HB7", "WF1_HB8",
37562306a36Sopenharmony_ci			       "WF1_TOP_CLK", "WF1_TOP_DATA";
37662306a36Sopenharmony_ci			drive-strength = <4>;
37762306a36Sopenharmony_ci		};
37862306a36Sopenharmony_ci	};
37962306a36Sopenharmony_ci
38062306a36Sopenharmony_ci	wf_led_pins: wf-led-pins {
38162306a36Sopenharmony_ci		mux {
38262306a36Sopenharmony_ci			function = "led";
38362306a36Sopenharmony_ci			groups = "wifi_led";
38462306a36Sopenharmony_ci		};
38562306a36Sopenharmony_ci	};
38662306a36Sopenharmony_ci};
38762306a36Sopenharmony_ci
38862306a36Sopenharmony_ci&pwm {
38962306a36Sopenharmony_ci	pinctrl-names = "default";
39062306a36Sopenharmony_ci	pinctrl-0 = <&pwm_pins>;
39162306a36Sopenharmony_ci	status = "okay";
39262306a36Sopenharmony_ci};
39362306a36Sopenharmony_ci
39462306a36Sopenharmony_ci&spi0 {
39562306a36Sopenharmony_ci	pinctrl-names = "default";
39662306a36Sopenharmony_ci	pinctrl-0 = <&spi_flash_pins>;
39762306a36Sopenharmony_ci	status = "okay";
39862306a36Sopenharmony_ci};
39962306a36Sopenharmony_ci
40062306a36Sopenharmony_ci&spi1 {
40162306a36Sopenharmony_ci	pinctrl-names = "default";
40262306a36Sopenharmony_ci	pinctrl-0 = <&spic_pins>;
40362306a36Sopenharmony_ci	status = "okay";
40462306a36Sopenharmony_ci};
40562306a36Sopenharmony_ci
40662306a36Sopenharmony_ci&ssusb {
40762306a36Sopenharmony_ci	status = "okay";
40862306a36Sopenharmony_ci};
40962306a36Sopenharmony_ci
41062306a36Sopenharmony_ci&switch {
41162306a36Sopenharmony_ci	ports {
41262306a36Sopenharmony_ci		#address-cells = <1>;
41362306a36Sopenharmony_ci		#size-cells = <0>;
41462306a36Sopenharmony_ci
41562306a36Sopenharmony_ci		port@0 {
41662306a36Sopenharmony_ci			reg = <0>;
41762306a36Sopenharmony_ci			label = "wan";
41862306a36Sopenharmony_ci		};
41962306a36Sopenharmony_ci
42062306a36Sopenharmony_ci		port@1 {
42162306a36Sopenharmony_ci			reg = <1>;
42262306a36Sopenharmony_ci			label = "lan0";
42362306a36Sopenharmony_ci		};
42462306a36Sopenharmony_ci
42562306a36Sopenharmony_ci		port@2 {
42662306a36Sopenharmony_ci			reg = <2>;
42762306a36Sopenharmony_ci			label = "lan1";
42862306a36Sopenharmony_ci		};
42962306a36Sopenharmony_ci
43062306a36Sopenharmony_ci		port@3 {
43162306a36Sopenharmony_ci			reg = <3>;
43262306a36Sopenharmony_ci			label = "lan2";
43362306a36Sopenharmony_ci		};
43462306a36Sopenharmony_ci
43562306a36Sopenharmony_ci		port@4 {
43662306a36Sopenharmony_ci			reg = <4>;
43762306a36Sopenharmony_ci			label = "lan3";
43862306a36Sopenharmony_ci		};
43962306a36Sopenharmony_ci
44062306a36Sopenharmony_ci		port5: port@5 {
44162306a36Sopenharmony_ci			reg = <5>;
44262306a36Sopenharmony_ci			label = "lan4";
44362306a36Sopenharmony_ci			phy-mode = "2500base-x";
44462306a36Sopenharmony_ci			sfp = <&sfp2>;
44562306a36Sopenharmony_ci			managed = "in-band-status";
44662306a36Sopenharmony_ci		};
44762306a36Sopenharmony_ci
44862306a36Sopenharmony_ci		port@6 {
44962306a36Sopenharmony_ci			reg = <6>;
45062306a36Sopenharmony_ci			label = "cpu";
45162306a36Sopenharmony_ci			ethernet = <&gmac0>;
45262306a36Sopenharmony_ci			phy-mode = "2500base-x";
45362306a36Sopenharmony_ci
45462306a36Sopenharmony_ci			fixed-link {
45562306a36Sopenharmony_ci				speed = <2500>;
45662306a36Sopenharmony_ci				full-duplex;
45762306a36Sopenharmony_ci				pause;
45862306a36Sopenharmony_ci			};
45962306a36Sopenharmony_ci		};
46062306a36Sopenharmony_ci	};
46162306a36Sopenharmony_ci};
46262306a36Sopenharmony_ci
46362306a36Sopenharmony_ci&trng {
46462306a36Sopenharmony_ci	status = "okay";
46562306a36Sopenharmony_ci};
46662306a36Sopenharmony_ci
46762306a36Sopenharmony_ci&uart0 {
46862306a36Sopenharmony_ci	status = "okay";
46962306a36Sopenharmony_ci};
47062306a36Sopenharmony_ci
47162306a36Sopenharmony_ci&uart1 {
47262306a36Sopenharmony_ci	pinctrl-names = "default";
47362306a36Sopenharmony_ci	pinctrl-0 = <&uart1_pins>;
47462306a36Sopenharmony_ci	status = "okay";
47562306a36Sopenharmony_ci};
47662306a36Sopenharmony_ci
47762306a36Sopenharmony_ci&uart2 {
47862306a36Sopenharmony_ci	pinctrl-names = "default";
47962306a36Sopenharmony_ci	pinctrl-0 = <&uart2_pins>;
48062306a36Sopenharmony_ci	status = "okay";
48162306a36Sopenharmony_ci};
48262306a36Sopenharmony_ci
48362306a36Sopenharmony_ci&usb_phy {
48462306a36Sopenharmony_ci	status = "okay";
48562306a36Sopenharmony_ci};
48662306a36Sopenharmony_ci
48762306a36Sopenharmony_ci&watchdog {
48862306a36Sopenharmony_ci	status = "okay";
48962306a36Sopenharmony_ci};
49062306a36Sopenharmony_ci
49162306a36Sopenharmony_ci&wifi {
49262306a36Sopenharmony_ci	status = "okay";
49362306a36Sopenharmony_ci	pinctrl-names = "default", "dbdc";
49462306a36Sopenharmony_ci	pinctrl-0 = <&wf_2g_5g_pins>, <&wf_led_pins>;
49562306a36Sopenharmony_ci	pinctrl-1 = <&wf_dbdc_pins>, <&wf_led_pins>;
49662306a36Sopenharmony_ci
49762306a36Sopenharmony_ci	led {
49862306a36Sopenharmony_ci		led-active-low;
49962306a36Sopenharmony_ci	};
50062306a36Sopenharmony_ci};
50162306a36Sopenharmony_ci
502