18c2ecf20Sopenharmony_ci/*
28c2ecf20Sopenharmony_ci * Copyright (c) 2018 MediaTek Inc.
38c2ecf20Sopenharmony_ci * Author: Ryder Lee <ryder.lee@mediatek.com>
48c2ecf20Sopenharmony_ci *
58c2ecf20Sopenharmony_ci * SPDX-License-Identifier: (GPL-2.0 OR MIT)
68c2ecf20Sopenharmony_ci */
78c2ecf20Sopenharmony_ci
88c2ecf20Sopenharmony_ci/dts-v1/;
98c2ecf20Sopenharmony_ci#include <dt-bindings/input/input.h>
108c2ecf20Sopenharmony_ci#include <dt-bindings/gpio/gpio.h>
118c2ecf20Sopenharmony_ci
128c2ecf20Sopenharmony_ci#include "mt7622.dtsi"
138c2ecf20Sopenharmony_ci#include "mt6380.dtsi"
148c2ecf20Sopenharmony_ci
158c2ecf20Sopenharmony_ci/ {
168c2ecf20Sopenharmony_ci	model = "Bananapi BPI-R64";
178c2ecf20Sopenharmony_ci	compatible = "bananapi,bpi-r64", "mediatek,mt7622";
188c2ecf20Sopenharmony_ci
198c2ecf20Sopenharmony_ci	aliases {
208c2ecf20Sopenharmony_ci		serial0 = &uart0;
218c2ecf20Sopenharmony_ci	};
228c2ecf20Sopenharmony_ci
238c2ecf20Sopenharmony_ci	chosen {
248c2ecf20Sopenharmony_ci		stdout-path = "serial0:115200n8";
258c2ecf20Sopenharmony_ci		bootargs = "earlycon=uart8250,mmio32,0x11002000 swiotlb=512";
268c2ecf20Sopenharmony_ci	};
278c2ecf20Sopenharmony_ci
288c2ecf20Sopenharmony_ci	cpus {
298c2ecf20Sopenharmony_ci		cpu@0 {
308c2ecf20Sopenharmony_ci			proc-supply = <&mt6380_vcpu_reg>;
318c2ecf20Sopenharmony_ci			sram-supply = <&mt6380_vm_reg>;
328c2ecf20Sopenharmony_ci		};
338c2ecf20Sopenharmony_ci
348c2ecf20Sopenharmony_ci		cpu@1 {
358c2ecf20Sopenharmony_ci			proc-supply = <&mt6380_vcpu_reg>;
368c2ecf20Sopenharmony_ci			sram-supply = <&mt6380_vm_reg>;
378c2ecf20Sopenharmony_ci		};
388c2ecf20Sopenharmony_ci	};
398c2ecf20Sopenharmony_ci
408c2ecf20Sopenharmony_ci	gpio-keys {
418c2ecf20Sopenharmony_ci		compatible = "gpio-keys";
428c2ecf20Sopenharmony_ci
438c2ecf20Sopenharmony_ci		factory {
448c2ecf20Sopenharmony_ci			label = "factory";
458c2ecf20Sopenharmony_ci			linux,code = <BTN_0>;
468c2ecf20Sopenharmony_ci			gpios = <&pio 0 GPIO_ACTIVE_HIGH>;
478c2ecf20Sopenharmony_ci		};
488c2ecf20Sopenharmony_ci
498c2ecf20Sopenharmony_ci		wps {
508c2ecf20Sopenharmony_ci			label = "wps";
518c2ecf20Sopenharmony_ci			linux,code = <KEY_WPS_BUTTON>;
528c2ecf20Sopenharmony_ci			gpios = <&pio 102 GPIO_ACTIVE_LOW>;
538c2ecf20Sopenharmony_ci		};
548c2ecf20Sopenharmony_ci	};
558c2ecf20Sopenharmony_ci
568c2ecf20Sopenharmony_ci	leds {
578c2ecf20Sopenharmony_ci		compatible = "gpio-leds";
588c2ecf20Sopenharmony_ci
598c2ecf20Sopenharmony_ci		green {
608c2ecf20Sopenharmony_ci			label = "bpi-r64:pio:green";
618c2ecf20Sopenharmony_ci			gpios = <&pio 89 GPIO_ACTIVE_HIGH>;
628c2ecf20Sopenharmony_ci			default-state = "off";
638c2ecf20Sopenharmony_ci		};
648c2ecf20Sopenharmony_ci
658c2ecf20Sopenharmony_ci		red {
668c2ecf20Sopenharmony_ci			label = "bpi-r64:pio:red";
678c2ecf20Sopenharmony_ci			gpios = <&pio 88 GPIO_ACTIVE_HIGH>;
688c2ecf20Sopenharmony_ci			default-state = "off";
698c2ecf20Sopenharmony_ci		};
708c2ecf20Sopenharmony_ci	};
718c2ecf20Sopenharmony_ci
728c2ecf20Sopenharmony_ci	memory@40000000 {
738c2ecf20Sopenharmony_ci		reg = <0 0x40000000 0 0x40000000>;
748c2ecf20Sopenharmony_ci	};
758c2ecf20Sopenharmony_ci
768c2ecf20Sopenharmony_ci	reg_1p8v: regulator-1p8v {
778c2ecf20Sopenharmony_ci		compatible = "regulator-fixed";
788c2ecf20Sopenharmony_ci		regulator-name = "fixed-1.8V";
798c2ecf20Sopenharmony_ci		regulator-min-microvolt = <1800000>;
808c2ecf20Sopenharmony_ci		regulator-max-microvolt = <1800000>;
818c2ecf20Sopenharmony_ci		regulator-always-on;
828c2ecf20Sopenharmony_ci	};
838c2ecf20Sopenharmony_ci
848c2ecf20Sopenharmony_ci	reg_3p3v: regulator-3p3v {
858c2ecf20Sopenharmony_ci		compatible = "regulator-fixed";
868c2ecf20Sopenharmony_ci		regulator-name = "fixed-3.3V";
878c2ecf20Sopenharmony_ci		regulator-min-microvolt = <3300000>;
888c2ecf20Sopenharmony_ci		regulator-max-microvolt = <3300000>;
898c2ecf20Sopenharmony_ci		regulator-boot-on;
908c2ecf20Sopenharmony_ci		regulator-always-on;
918c2ecf20Sopenharmony_ci	};
928c2ecf20Sopenharmony_ci
938c2ecf20Sopenharmony_ci	reg_5v: regulator-5v {
948c2ecf20Sopenharmony_ci		compatible = "regulator-fixed";
958c2ecf20Sopenharmony_ci		regulator-name = "fixed-5V";
968c2ecf20Sopenharmony_ci		regulator-min-microvolt = <5000000>;
978c2ecf20Sopenharmony_ci		regulator-max-microvolt = <5000000>;
988c2ecf20Sopenharmony_ci		regulator-boot-on;
998c2ecf20Sopenharmony_ci		regulator-always-on;
1008c2ecf20Sopenharmony_ci	};
1018c2ecf20Sopenharmony_ci};
1028c2ecf20Sopenharmony_ci
1038c2ecf20Sopenharmony_ci&bch {
1048c2ecf20Sopenharmony_ci	status = "disabled";
1058c2ecf20Sopenharmony_ci};
1068c2ecf20Sopenharmony_ci
1078c2ecf20Sopenharmony_ci&btif {
1088c2ecf20Sopenharmony_ci	status = "okay";
1098c2ecf20Sopenharmony_ci};
1108c2ecf20Sopenharmony_ci
1118c2ecf20Sopenharmony_ci&cir {
1128c2ecf20Sopenharmony_ci	pinctrl-names = "default";
1138c2ecf20Sopenharmony_ci	pinctrl-0 = <&irrx_pins>;
1148c2ecf20Sopenharmony_ci	status = "okay";
1158c2ecf20Sopenharmony_ci};
1168c2ecf20Sopenharmony_ci
1178c2ecf20Sopenharmony_ci&eth {
1188c2ecf20Sopenharmony_ci	status = "okay";
1198c2ecf20Sopenharmony_ci	gmac0: mac@0 {
1208c2ecf20Sopenharmony_ci		compatible = "mediatek,eth-mac";
1218c2ecf20Sopenharmony_ci		reg = <0>;
1228c2ecf20Sopenharmony_ci		phy-mode = "2500base-x";
1238c2ecf20Sopenharmony_ci
1248c2ecf20Sopenharmony_ci		fixed-link {
1258c2ecf20Sopenharmony_ci			speed = <2500>;
1268c2ecf20Sopenharmony_ci			full-duplex;
1278c2ecf20Sopenharmony_ci			pause;
1288c2ecf20Sopenharmony_ci		};
1298c2ecf20Sopenharmony_ci	};
1308c2ecf20Sopenharmony_ci
1318c2ecf20Sopenharmony_ci	gmac1: mac@1 {
1328c2ecf20Sopenharmony_ci		compatible = "mediatek,eth-mac";
1338c2ecf20Sopenharmony_ci		reg = <1>;
1348c2ecf20Sopenharmony_ci		phy-mode = "rgmii";
1358c2ecf20Sopenharmony_ci
1368c2ecf20Sopenharmony_ci		fixed-link {
1378c2ecf20Sopenharmony_ci			speed = <1000>;
1388c2ecf20Sopenharmony_ci			full-duplex;
1398c2ecf20Sopenharmony_ci			pause;
1408c2ecf20Sopenharmony_ci		};
1418c2ecf20Sopenharmony_ci	};
1428c2ecf20Sopenharmony_ci
1438c2ecf20Sopenharmony_ci	mdio: mdio-bus {
1448c2ecf20Sopenharmony_ci		#address-cells = <1>;
1458c2ecf20Sopenharmony_ci		#size-cells = <0>;
1468c2ecf20Sopenharmony_ci
1478c2ecf20Sopenharmony_ci		switch@0 {
1488c2ecf20Sopenharmony_ci			compatible = "mediatek,mt7531";
1498c2ecf20Sopenharmony_ci			reg = <0>;
1508c2ecf20Sopenharmony_ci			reset-gpios = <&pio 54 0>;
1518c2ecf20Sopenharmony_ci
1528c2ecf20Sopenharmony_ci			ports {
1538c2ecf20Sopenharmony_ci				#address-cells = <1>;
1548c2ecf20Sopenharmony_ci				#size-cells = <0>;
1558c2ecf20Sopenharmony_ci
1568c2ecf20Sopenharmony_ci				port@0 {
1578c2ecf20Sopenharmony_ci					reg = <0>;
1588c2ecf20Sopenharmony_ci					label = "wan";
1598c2ecf20Sopenharmony_ci				};
1608c2ecf20Sopenharmony_ci
1618c2ecf20Sopenharmony_ci				port@1 {
1628c2ecf20Sopenharmony_ci					reg = <1>;
1638c2ecf20Sopenharmony_ci					label = "lan0";
1648c2ecf20Sopenharmony_ci				};
1658c2ecf20Sopenharmony_ci
1668c2ecf20Sopenharmony_ci				port@2 {
1678c2ecf20Sopenharmony_ci					reg = <2>;
1688c2ecf20Sopenharmony_ci					label = "lan1";
1698c2ecf20Sopenharmony_ci				};
1708c2ecf20Sopenharmony_ci
1718c2ecf20Sopenharmony_ci				port@3 {
1728c2ecf20Sopenharmony_ci					reg = <3>;
1738c2ecf20Sopenharmony_ci					label = "lan2";
1748c2ecf20Sopenharmony_ci				};
1758c2ecf20Sopenharmony_ci
1768c2ecf20Sopenharmony_ci				port@4 {
1778c2ecf20Sopenharmony_ci					reg = <4>;
1788c2ecf20Sopenharmony_ci					label = "lan3";
1798c2ecf20Sopenharmony_ci				};
1808c2ecf20Sopenharmony_ci
1818c2ecf20Sopenharmony_ci				port@6 {
1828c2ecf20Sopenharmony_ci					reg = <6>;
1838c2ecf20Sopenharmony_ci					label = "cpu";
1848c2ecf20Sopenharmony_ci					ethernet = <&gmac0>;
1858c2ecf20Sopenharmony_ci					phy-mode = "2500base-x";
1868c2ecf20Sopenharmony_ci
1878c2ecf20Sopenharmony_ci					fixed-link {
1888c2ecf20Sopenharmony_ci						speed = <2500>;
1898c2ecf20Sopenharmony_ci						full-duplex;
1908c2ecf20Sopenharmony_ci						pause;
1918c2ecf20Sopenharmony_ci					};
1928c2ecf20Sopenharmony_ci				};
1938c2ecf20Sopenharmony_ci			};
1948c2ecf20Sopenharmony_ci		};
1958c2ecf20Sopenharmony_ci
1968c2ecf20Sopenharmony_ci	};
1978c2ecf20Sopenharmony_ci};
1988c2ecf20Sopenharmony_ci
1998c2ecf20Sopenharmony_ci&i2c1 {
2008c2ecf20Sopenharmony_ci	pinctrl-names = "default";
2018c2ecf20Sopenharmony_ci	pinctrl-0 = <&i2c1_pins>;
2028c2ecf20Sopenharmony_ci	status = "okay";
2038c2ecf20Sopenharmony_ci};
2048c2ecf20Sopenharmony_ci
2058c2ecf20Sopenharmony_ci&i2c2 {
2068c2ecf20Sopenharmony_ci	pinctrl-names = "default";
2078c2ecf20Sopenharmony_ci	pinctrl-0 = <&i2c2_pins>;
2088c2ecf20Sopenharmony_ci	status = "okay";
2098c2ecf20Sopenharmony_ci};
2108c2ecf20Sopenharmony_ci
2118c2ecf20Sopenharmony_ci&mmc0 {
2128c2ecf20Sopenharmony_ci	pinctrl-names = "default", "state_uhs";
2138c2ecf20Sopenharmony_ci	pinctrl-0 = <&emmc_pins_default>;
2148c2ecf20Sopenharmony_ci	pinctrl-1 = <&emmc_pins_uhs>;
2158c2ecf20Sopenharmony_ci	status = "okay";
2168c2ecf20Sopenharmony_ci	bus-width = <8>;
2178c2ecf20Sopenharmony_ci	max-frequency = <50000000>;
2188c2ecf20Sopenharmony_ci	cap-mmc-highspeed;
2198c2ecf20Sopenharmony_ci	mmc-hs200-1_8v;
2208c2ecf20Sopenharmony_ci	vmmc-supply = <&reg_3p3v>;
2218c2ecf20Sopenharmony_ci	vqmmc-supply = <&reg_1p8v>;
2228c2ecf20Sopenharmony_ci	assigned-clocks = <&topckgen CLK_TOP_MSDC30_0_SEL>;
2238c2ecf20Sopenharmony_ci	assigned-clock-parents = <&topckgen CLK_TOP_UNIV48M>;
2248c2ecf20Sopenharmony_ci	non-removable;
2258c2ecf20Sopenharmony_ci};
2268c2ecf20Sopenharmony_ci
2278c2ecf20Sopenharmony_ci&mmc1 {
2288c2ecf20Sopenharmony_ci	pinctrl-names = "default", "state_uhs";
2298c2ecf20Sopenharmony_ci	pinctrl-0 = <&sd0_pins_default>;
2308c2ecf20Sopenharmony_ci	pinctrl-1 = <&sd0_pins_uhs>;
2318c2ecf20Sopenharmony_ci	status = "okay";
2328c2ecf20Sopenharmony_ci	bus-width = <4>;
2338c2ecf20Sopenharmony_ci	max-frequency = <50000000>;
2348c2ecf20Sopenharmony_ci	cap-sd-highspeed;
2358c2ecf20Sopenharmony_ci	r_smpl = <1>;
2368c2ecf20Sopenharmony_ci	cd-gpios = <&pio 81 GPIO_ACTIVE_LOW>;
2378c2ecf20Sopenharmony_ci	vmmc-supply = <&reg_3p3v>;
2388c2ecf20Sopenharmony_ci	vqmmc-supply = <&reg_3p3v>;
2398c2ecf20Sopenharmony_ci	assigned-clocks = <&topckgen CLK_TOP_MSDC30_1_SEL>;
2408c2ecf20Sopenharmony_ci	assigned-clock-parents = <&topckgen CLK_TOP_UNIV48M>;
2418c2ecf20Sopenharmony_ci};
2428c2ecf20Sopenharmony_ci
2438c2ecf20Sopenharmony_ci&nandc {
2448c2ecf20Sopenharmony_ci	pinctrl-names = "default";
2458c2ecf20Sopenharmony_ci	pinctrl-0 = <&parallel_nand_pins>;
2468c2ecf20Sopenharmony_ci	status = "disabled";
2478c2ecf20Sopenharmony_ci};
2488c2ecf20Sopenharmony_ci
2498c2ecf20Sopenharmony_ci&nor_flash {
2508c2ecf20Sopenharmony_ci	pinctrl-names = "default";
2518c2ecf20Sopenharmony_ci	pinctrl-0 = <&spi_nor_pins>;
2528c2ecf20Sopenharmony_ci	status = "disabled";
2538c2ecf20Sopenharmony_ci
2548c2ecf20Sopenharmony_ci	flash@0 {
2558c2ecf20Sopenharmony_ci		compatible = "jedec,spi-nor";
2568c2ecf20Sopenharmony_ci		reg = <0>;
2578c2ecf20Sopenharmony_ci	};
2588c2ecf20Sopenharmony_ci};
2598c2ecf20Sopenharmony_ci
2608c2ecf20Sopenharmony_ci&pcie {
2618c2ecf20Sopenharmony_ci	pinctrl-names = "default";
2628c2ecf20Sopenharmony_ci	pinctrl-0 = <&pcie0_pins>, <&pcie1_pins>;
2638c2ecf20Sopenharmony_ci	status = "okay";
2648c2ecf20Sopenharmony_ci
2658c2ecf20Sopenharmony_ci	pcie@0,0 {
2668c2ecf20Sopenharmony_ci		status = "okay";
2678c2ecf20Sopenharmony_ci	};
2688c2ecf20Sopenharmony_ci
2698c2ecf20Sopenharmony_ci	pcie@1,0 {
2708c2ecf20Sopenharmony_ci		status = "okay";
2718c2ecf20Sopenharmony_ci	};
2728c2ecf20Sopenharmony_ci};
2738c2ecf20Sopenharmony_ci
2748c2ecf20Sopenharmony_ci&pio {
2758c2ecf20Sopenharmony_ci	/* Attention: GPIO 90 is used to switch between PCIe@1,0 and
2768c2ecf20Sopenharmony_ci	 * SATA functions. i.e. output-high: PCIe, output-low: SATA
2778c2ecf20Sopenharmony_ci	 */
2788c2ecf20Sopenharmony_ci	asm_sel {
2798c2ecf20Sopenharmony_ci		gpio-hog;
2808c2ecf20Sopenharmony_ci		gpios = <90 GPIO_ACTIVE_HIGH>;
2818c2ecf20Sopenharmony_ci		output-high;
2828c2ecf20Sopenharmony_ci	};
2838c2ecf20Sopenharmony_ci
2848c2ecf20Sopenharmony_ci	/* eMMC is shared pin with parallel NAND */
2858c2ecf20Sopenharmony_ci	emmc_pins_default: emmc-pins-default {
2868c2ecf20Sopenharmony_ci		mux {
2878c2ecf20Sopenharmony_ci			function = "emmc", "emmc_rst";
2888c2ecf20Sopenharmony_ci			groups = "emmc";
2898c2ecf20Sopenharmony_ci		};
2908c2ecf20Sopenharmony_ci
2918c2ecf20Sopenharmony_ci		/* "NDL0","NDL1","NDL2","NDL3","NDL4","NDL5","NDL6","NDL7",
2928c2ecf20Sopenharmony_ci		 * "NRB","NCLE" pins are used as DAT0,DAT1,DAT2,DAT3,DAT4,
2938c2ecf20Sopenharmony_ci		 * DAT5,DAT6,DAT7,CMD,CLK for eMMC respectively
2948c2ecf20Sopenharmony_ci		 */
2958c2ecf20Sopenharmony_ci		conf-cmd-dat {
2968c2ecf20Sopenharmony_ci			pins = "NDL0", "NDL1", "NDL2",
2978c2ecf20Sopenharmony_ci			       "NDL3", "NDL4", "NDL5",
2988c2ecf20Sopenharmony_ci			       "NDL6", "NDL7", "NRB";
2998c2ecf20Sopenharmony_ci			input-enable;
3008c2ecf20Sopenharmony_ci			bias-pull-up;
3018c2ecf20Sopenharmony_ci		};
3028c2ecf20Sopenharmony_ci
3038c2ecf20Sopenharmony_ci		conf-clk {
3048c2ecf20Sopenharmony_ci			pins = "NCLE";
3058c2ecf20Sopenharmony_ci			bias-pull-down;
3068c2ecf20Sopenharmony_ci		};
3078c2ecf20Sopenharmony_ci	};
3088c2ecf20Sopenharmony_ci
3098c2ecf20Sopenharmony_ci	emmc_pins_uhs: emmc-pins-uhs {
3108c2ecf20Sopenharmony_ci		mux {
3118c2ecf20Sopenharmony_ci			function = "emmc";
3128c2ecf20Sopenharmony_ci			groups = "emmc";
3138c2ecf20Sopenharmony_ci		};
3148c2ecf20Sopenharmony_ci
3158c2ecf20Sopenharmony_ci		conf-cmd-dat {
3168c2ecf20Sopenharmony_ci			pins = "NDL0", "NDL1", "NDL2",
3178c2ecf20Sopenharmony_ci			       "NDL3", "NDL4", "NDL5",
3188c2ecf20Sopenharmony_ci			       "NDL6", "NDL7", "NRB";
3198c2ecf20Sopenharmony_ci			input-enable;
3208c2ecf20Sopenharmony_ci			drive-strength = <4>;
3218c2ecf20Sopenharmony_ci			bias-pull-up;
3228c2ecf20Sopenharmony_ci		};
3238c2ecf20Sopenharmony_ci
3248c2ecf20Sopenharmony_ci		conf-clk {
3258c2ecf20Sopenharmony_ci			pins = "NCLE";
3268c2ecf20Sopenharmony_ci			drive-strength = <4>;
3278c2ecf20Sopenharmony_ci			bias-pull-down;
3288c2ecf20Sopenharmony_ci		};
3298c2ecf20Sopenharmony_ci	};
3308c2ecf20Sopenharmony_ci
3318c2ecf20Sopenharmony_ci	eth_pins: eth-pins {
3328c2ecf20Sopenharmony_ci		mux {
3338c2ecf20Sopenharmony_ci			function = "eth";
3348c2ecf20Sopenharmony_ci			groups = "mdc_mdio", "rgmii_via_gmac2";
3358c2ecf20Sopenharmony_ci		};
3368c2ecf20Sopenharmony_ci	};
3378c2ecf20Sopenharmony_ci
3388c2ecf20Sopenharmony_ci	i2c1_pins: i2c1-pins {
3398c2ecf20Sopenharmony_ci		mux {
3408c2ecf20Sopenharmony_ci			function = "i2c";
3418c2ecf20Sopenharmony_ci			groups =  "i2c1_0";
3428c2ecf20Sopenharmony_ci		};
3438c2ecf20Sopenharmony_ci	};
3448c2ecf20Sopenharmony_ci
3458c2ecf20Sopenharmony_ci	i2c2_pins: i2c2-pins {
3468c2ecf20Sopenharmony_ci		mux {
3478c2ecf20Sopenharmony_ci			function = "i2c";
3488c2ecf20Sopenharmony_ci			groups =  "i2c2_0";
3498c2ecf20Sopenharmony_ci		};
3508c2ecf20Sopenharmony_ci	};
3518c2ecf20Sopenharmony_ci
3528c2ecf20Sopenharmony_ci	i2s1_pins: i2s1-pins {
3538c2ecf20Sopenharmony_ci		mux {
3548c2ecf20Sopenharmony_ci			function = "i2s";
3558c2ecf20Sopenharmony_ci			groups =  "i2s_out_mclk_bclk_ws",
3568c2ecf20Sopenharmony_ci				  "i2s1_in_data",
3578c2ecf20Sopenharmony_ci				  "i2s1_out_data";
3588c2ecf20Sopenharmony_ci		};
3598c2ecf20Sopenharmony_ci
3608c2ecf20Sopenharmony_ci		conf {
3618c2ecf20Sopenharmony_ci			pins = "I2S1_IN", "I2S1_OUT", "I2S_BCLK",
3628c2ecf20Sopenharmony_ci			       "I2S_WS", "I2S_MCLK";
3638c2ecf20Sopenharmony_ci			drive-strength = <12>;
3648c2ecf20Sopenharmony_ci			bias-pull-down;
3658c2ecf20Sopenharmony_ci		};
3668c2ecf20Sopenharmony_ci	};
3678c2ecf20Sopenharmony_ci
3688c2ecf20Sopenharmony_ci	irrx_pins: irrx-pins {
3698c2ecf20Sopenharmony_ci		mux {
3708c2ecf20Sopenharmony_ci			function = "ir";
3718c2ecf20Sopenharmony_ci			groups =  "ir_1_rx";
3728c2ecf20Sopenharmony_ci		};
3738c2ecf20Sopenharmony_ci	};
3748c2ecf20Sopenharmony_ci
3758c2ecf20Sopenharmony_ci	irtx_pins: irtx-pins {
3768c2ecf20Sopenharmony_ci		mux {
3778c2ecf20Sopenharmony_ci			function = "ir";
3788c2ecf20Sopenharmony_ci			groups =  "ir_1_tx";
3798c2ecf20Sopenharmony_ci		};
3808c2ecf20Sopenharmony_ci	};
3818c2ecf20Sopenharmony_ci
3828c2ecf20Sopenharmony_ci	/* Parallel nand is shared pin with eMMC */
3838c2ecf20Sopenharmony_ci	parallel_nand_pins: parallel-nand-pins {
3848c2ecf20Sopenharmony_ci		mux {
3858c2ecf20Sopenharmony_ci			function = "flash";
3868c2ecf20Sopenharmony_ci			groups = "par_nand";
3878c2ecf20Sopenharmony_ci		};
3888c2ecf20Sopenharmony_ci	};
3898c2ecf20Sopenharmony_ci
3908c2ecf20Sopenharmony_ci	pcie0_pins: pcie0-pins {
3918c2ecf20Sopenharmony_ci		mux {
3928c2ecf20Sopenharmony_ci			function = "pcie";
3938c2ecf20Sopenharmony_ci			groups = "pcie0_pad_perst",
3948c2ecf20Sopenharmony_ci				 "pcie0_1_waken",
3958c2ecf20Sopenharmony_ci				 "pcie0_1_clkreq";
3968c2ecf20Sopenharmony_ci		};
3978c2ecf20Sopenharmony_ci	};
3988c2ecf20Sopenharmony_ci
3998c2ecf20Sopenharmony_ci	pcie1_pins: pcie1-pins {
4008c2ecf20Sopenharmony_ci		mux {
4018c2ecf20Sopenharmony_ci			function = "pcie";
4028c2ecf20Sopenharmony_ci			groups = "pcie1_pad_perst",
4038c2ecf20Sopenharmony_ci				 "pcie1_0_waken",
4048c2ecf20Sopenharmony_ci				 "pcie1_0_clkreq";
4058c2ecf20Sopenharmony_ci		};
4068c2ecf20Sopenharmony_ci	};
4078c2ecf20Sopenharmony_ci
4088c2ecf20Sopenharmony_ci	pmic_bus_pins: pmic-bus-pins {
4098c2ecf20Sopenharmony_ci		mux {
4108c2ecf20Sopenharmony_ci			function = "pmic";
4118c2ecf20Sopenharmony_ci			groups = "pmic_bus";
4128c2ecf20Sopenharmony_ci		};
4138c2ecf20Sopenharmony_ci	};
4148c2ecf20Sopenharmony_ci
4158c2ecf20Sopenharmony_ci	pwm7_pins: pwm1-2-pins {
4168c2ecf20Sopenharmony_ci		mux {
4178c2ecf20Sopenharmony_ci			function = "pwm";
4188c2ecf20Sopenharmony_ci			groups = "pwm_ch7_2";
4198c2ecf20Sopenharmony_ci		};
4208c2ecf20Sopenharmony_ci	};
4218c2ecf20Sopenharmony_ci
4228c2ecf20Sopenharmony_ci	wled_pins: wled-pins {
4238c2ecf20Sopenharmony_ci		mux {
4248c2ecf20Sopenharmony_ci			function = "led";
4258c2ecf20Sopenharmony_ci			groups = "wled";
4268c2ecf20Sopenharmony_ci		};
4278c2ecf20Sopenharmony_ci	};
4288c2ecf20Sopenharmony_ci
4298c2ecf20Sopenharmony_ci	sd0_pins_default: sd0-pins-default {
4308c2ecf20Sopenharmony_ci		mux {
4318c2ecf20Sopenharmony_ci			function = "sd";
4328c2ecf20Sopenharmony_ci			groups = "sd_0";
4338c2ecf20Sopenharmony_ci		};
4348c2ecf20Sopenharmony_ci
4358c2ecf20Sopenharmony_ci		/* "I2S2_OUT, "I2S4_IN"", "I2S3_IN", "I2S2_IN",
4368c2ecf20Sopenharmony_ci		 *  "I2S4_OUT", "I2S3_OUT" are used as DAT0, DAT1,
4378c2ecf20Sopenharmony_ci		 *  DAT2, DAT3, CMD, CLK for SD respectively.
4388c2ecf20Sopenharmony_ci		 */
4398c2ecf20Sopenharmony_ci		conf-cmd-data {
4408c2ecf20Sopenharmony_ci			pins = "I2S2_OUT", "I2S4_IN", "I2S3_IN",
4418c2ecf20Sopenharmony_ci			       "I2S2_IN","I2S4_OUT";
4428c2ecf20Sopenharmony_ci			input-enable;
4438c2ecf20Sopenharmony_ci			drive-strength = <8>;
4448c2ecf20Sopenharmony_ci			bias-pull-up;
4458c2ecf20Sopenharmony_ci		};
4468c2ecf20Sopenharmony_ci		conf-clk {
4478c2ecf20Sopenharmony_ci			pins = "I2S3_OUT";
4488c2ecf20Sopenharmony_ci			drive-strength = <12>;
4498c2ecf20Sopenharmony_ci			bias-pull-down;
4508c2ecf20Sopenharmony_ci		};
4518c2ecf20Sopenharmony_ci		conf-cd {
4528c2ecf20Sopenharmony_ci			pins = "TXD3";
4538c2ecf20Sopenharmony_ci			bias-pull-up;
4548c2ecf20Sopenharmony_ci		};
4558c2ecf20Sopenharmony_ci	};
4568c2ecf20Sopenharmony_ci
4578c2ecf20Sopenharmony_ci	sd0_pins_uhs: sd0-pins-uhs {
4588c2ecf20Sopenharmony_ci		mux {
4598c2ecf20Sopenharmony_ci			function = "sd";
4608c2ecf20Sopenharmony_ci			groups = "sd_0";
4618c2ecf20Sopenharmony_ci		};
4628c2ecf20Sopenharmony_ci
4638c2ecf20Sopenharmony_ci		conf-cmd-data {
4648c2ecf20Sopenharmony_ci			pins = "I2S2_OUT", "I2S4_IN", "I2S3_IN",
4658c2ecf20Sopenharmony_ci			       "I2S2_IN","I2S4_OUT";
4668c2ecf20Sopenharmony_ci			input-enable;
4678c2ecf20Sopenharmony_ci			bias-pull-up;
4688c2ecf20Sopenharmony_ci		};
4698c2ecf20Sopenharmony_ci
4708c2ecf20Sopenharmony_ci		conf-clk {
4718c2ecf20Sopenharmony_ci			pins = "I2S3_OUT";
4728c2ecf20Sopenharmony_ci			bias-pull-down;
4738c2ecf20Sopenharmony_ci		};
4748c2ecf20Sopenharmony_ci	};
4758c2ecf20Sopenharmony_ci
4768c2ecf20Sopenharmony_ci	/* Serial NAND is shared pin with SPI-NOR */
4778c2ecf20Sopenharmony_ci	serial_nand_pins: serial-nand-pins {
4788c2ecf20Sopenharmony_ci		mux {
4798c2ecf20Sopenharmony_ci			function = "flash";
4808c2ecf20Sopenharmony_ci			groups = "snfi";
4818c2ecf20Sopenharmony_ci		};
4828c2ecf20Sopenharmony_ci	};
4838c2ecf20Sopenharmony_ci
4848c2ecf20Sopenharmony_ci	spic0_pins: spic0-pins {
4858c2ecf20Sopenharmony_ci		mux {
4868c2ecf20Sopenharmony_ci			function = "spi";
4878c2ecf20Sopenharmony_ci			groups = "spic0_0";
4888c2ecf20Sopenharmony_ci		};
4898c2ecf20Sopenharmony_ci	};
4908c2ecf20Sopenharmony_ci
4918c2ecf20Sopenharmony_ci	spic1_pins: spic1-pins {
4928c2ecf20Sopenharmony_ci		mux {
4938c2ecf20Sopenharmony_ci			function = "spi";
4948c2ecf20Sopenharmony_ci			groups = "spic1_0";
4958c2ecf20Sopenharmony_ci		};
4968c2ecf20Sopenharmony_ci	};
4978c2ecf20Sopenharmony_ci
4988c2ecf20Sopenharmony_ci	/* SPI-NOR is shared pin with serial NAND */
4998c2ecf20Sopenharmony_ci	spi_nor_pins: spi-nor-pins {
5008c2ecf20Sopenharmony_ci		mux {
5018c2ecf20Sopenharmony_ci			function = "flash";
5028c2ecf20Sopenharmony_ci			groups = "spi_nor";
5038c2ecf20Sopenharmony_ci		};
5048c2ecf20Sopenharmony_ci	};
5058c2ecf20Sopenharmony_ci
5068c2ecf20Sopenharmony_ci	/* serial NAND is shared pin with SPI-NOR */
5078c2ecf20Sopenharmony_ci	serial_nand_pins: serial-nand-pins {
5088c2ecf20Sopenharmony_ci		mux {
5098c2ecf20Sopenharmony_ci			function = "flash";
5108c2ecf20Sopenharmony_ci			groups = "snfi";
5118c2ecf20Sopenharmony_ci		};
5128c2ecf20Sopenharmony_ci	};
5138c2ecf20Sopenharmony_ci
5148c2ecf20Sopenharmony_ci	uart0_pins: uart0-pins {
5158c2ecf20Sopenharmony_ci		mux {
5168c2ecf20Sopenharmony_ci			function = "uart";
5178c2ecf20Sopenharmony_ci			groups = "uart0_0_tx_rx" ;
5188c2ecf20Sopenharmony_ci		};
5198c2ecf20Sopenharmony_ci	};
5208c2ecf20Sopenharmony_ci
5218c2ecf20Sopenharmony_ci	uart2_pins: uart2-pins {
5228c2ecf20Sopenharmony_ci		mux {
5238c2ecf20Sopenharmony_ci			function = "uart";
5248c2ecf20Sopenharmony_ci			groups = "uart2_1_tx_rx" ;
5258c2ecf20Sopenharmony_ci		};
5268c2ecf20Sopenharmony_ci	};
5278c2ecf20Sopenharmony_ci
5288c2ecf20Sopenharmony_ci	watchdog_pins: watchdog-pins {
5298c2ecf20Sopenharmony_ci		mux {
5308c2ecf20Sopenharmony_ci			function = "watchdog";
5318c2ecf20Sopenharmony_ci			groups = "watchdog";
5328c2ecf20Sopenharmony_ci		};
5338c2ecf20Sopenharmony_ci	};
5348c2ecf20Sopenharmony_ci};
5358c2ecf20Sopenharmony_ci
5368c2ecf20Sopenharmony_ci&pwm {
5378c2ecf20Sopenharmony_ci	pinctrl-names = "default";
5388c2ecf20Sopenharmony_ci	pinctrl-0 = <&pwm7_pins>;
5398c2ecf20Sopenharmony_ci	status = "okay";
5408c2ecf20Sopenharmony_ci};
5418c2ecf20Sopenharmony_ci
5428c2ecf20Sopenharmony_ci&pwrap {
5438c2ecf20Sopenharmony_ci	pinctrl-names = "default";
5448c2ecf20Sopenharmony_ci	pinctrl-0 = <&pmic_bus_pins>;
5458c2ecf20Sopenharmony_ci
5468c2ecf20Sopenharmony_ci	status = "okay";
5478c2ecf20Sopenharmony_ci};
5488c2ecf20Sopenharmony_ci
5498c2ecf20Sopenharmony_ci&sata {
5508c2ecf20Sopenharmony_ci	status = "disable";
5518c2ecf20Sopenharmony_ci};
5528c2ecf20Sopenharmony_ci
5538c2ecf20Sopenharmony_ci&sata_phy {
5548c2ecf20Sopenharmony_ci	status = "disable";
5558c2ecf20Sopenharmony_ci};
5568c2ecf20Sopenharmony_ci
5578c2ecf20Sopenharmony_ci&spi0 {
5588c2ecf20Sopenharmony_ci	pinctrl-names = "default";
5598c2ecf20Sopenharmony_ci	pinctrl-0 = <&spic0_pins>;
5608c2ecf20Sopenharmony_ci	status = "okay";
5618c2ecf20Sopenharmony_ci};
5628c2ecf20Sopenharmony_ci
5638c2ecf20Sopenharmony_ci&spi1 {
5648c2ecf20Sopenharmony_ci	pinctrl-names = "default";
5658c2ecf20Sopenharmony_ci	pinctrl-0 = <&spic1_pins>;
5668c2ecf20Sopenharmony_ci	status = "okay";
5678c2ecf20Sopenharmony_ci};
5688c2ecf20Sopenharmony_ci
5698c2ecf20Sopenharmony_ci&ssusb {
5708c2ecf20Sopenharmony_ci	vusb33-supply = <&reg_3p3v>;
5718c2ecf20Sopenharmony_ci	vbus-supply = <&reg_5v>;
5728c2ecf20Sopenharmony_ci	status = "okay";
5738c2ecf20Sopenharmony_ci};
5748c2ecf20Sopenharmony_ci
5758c2ecf20Sopenharmony_ci&u3phy {
5768c2ecf20Sopenharmony_ci	status = "okay";
5778c2ecf20Sopenharmony_ci};
5788c2ecf20Sopenharmony_ci
5798c2ecf20Sopenharmony_ci&uart0 {
5808c2ecf20Sopenharmony_ci	pinctrl-names = "default";
5818c2ecf20Sopenharmony_ci	pinctrl-0 = <&uart0_pins>;
5828c2ecf20Sopenharmony_ci	status = "okay";
5838c2ecf20Sopenharmony_ci};
5848c2ecf20Sopenharmony_ci
5858c2ecf20Sopenharmony_ci&uart2 {
5868c2ecf20Sopenharmony_ci	pinctrl-names = "default";
5878c2ecf20Sopenharmony_ci	pinctrl-0 = <&uart2_pins>;
5888c2ecf20Sopenharmony_ci	status = "okay";
5898c2ecf20Sopenharmony_ci};
5908c2ecf20Sopenharmony_ci
5918c2ecf20Sopenharmony_ci&watchdog {
5928c2ecf20Sopenharmony_ci	pinctrl-names = "default";
5938c2ecf20Sopenharmony_ci	pinctrl-0 = <&watchdog_pins>;
5948c2ecf20Sopenharmony_ci	status = "okay";
5958c2ecf20Sopenharmony_ci};
5968c2ecf20Sopenharmony_ci
5978c2ecf20Sopenharmony_ci&wmac {
5988c2ecf20Sopenharmony_ci	status = "okay";
5998c2ecf20Sopenharmony_ci};
600