10b6286ddSRyder Lee/*
20b6286ddSRyder Lee * Copyright (c) 2018 MediaTek Inc.
30b6286ddSRyder Lee * Author: Ryder Lee <ryder.lee@mediatek.com>
40b6286ddSRyder Lee *
50b6286ddSRyder Lee * SPDX-License-Identifier: (GPL-2.0 OR MIT)
60b6286ddSRyder Lee */
70b6286ddSRyder Lee
80b6286ddSRyder Lee/dts-v1/;
90b6286ddSRyder Lee#include <dt-bindings/input/input.h>
100b6286ddSRyder Lee#include <dt-bindings/gpio/gpio.h>
117db5dfd3SKrzysztof Kozlowski#include <dt-bindings/leds/common.h>
120b6286ddSRyder Lee
130b6286ddSRyder Lee#include "mt7622.dtsi"
140b6286ddSRyder Lee#include "mt6380.dtsi"
150b6286ddSRyder Lee
160b6286ddSRyder Lee/ {
170b6286ddSRyder Lee	model = "Bananapi BPI-R64";
18380d18fbSAngeloGioacchino Del Regno	chassis-type = "embedded";
190b6286ddSRyder Lee	compatible = "bananapi,bpi-r64", "mediatek,mt7622";
200b6286ddSRyder Lee
21396defa8SRyder Lee	aliases {
22396defa8SRyder Lee		serial0 = &uart0;
23396defa8SRyder Lee	};
24396defa8SRyder Lee
250b6286ddSRyder Lee	chosen {
26396defa8SRyder Lee		stdout-path = "serial0:115200n8";
27396defa8SRyder Lee		bootargs = "earlycon=uart8250,mmio32,0x11002000 swiotlb=512";
280b6286ddSRyder Lee	};
290b6286ddSRyder Lee
300b6286ddSRyder Lee	cpus {
310b6286ddSRyder Lee		cpu@0 {
320b6286ddSRyder Lee			proc-supply = <&mt6380_vcpu_reg>;
330b6286ddSRyder Lee			sram-supply = <&mt6380_vm_reg>;
340b6286ddSRyder Lee		};
350b6286ddSRyder Lee
360b6286ddSRyder Lee		cpu@1 {
370b6286ddSRyder Lee			proc-supply = <&mt6380_vcpu_reg>;
380b6286ddSRyder Lee			sram-supply = <&mt6380_vm_reg>;
390b6286ddSRyder Lee		};
400b6286ddSRyder Lee	};
410b6286ddSRyder Lee
420b6286ddSRyder Lee	gpio-keys {
430b6286ddSRyder Lee		compatible = "gpio-keys";
440b6286ddSRyder Lee
45335d1603SKrzysztof Kozlowski		factory-key {
460b6286ddSRyder Lee			label = "factory";
470b6286ddSRyder Lee			linux,code = <BTN_0>;
480b6286ddSRyder Lee			gpios = <&pio 0 GPIO_ACTIVE_HIGH>;
490b6286ddSRyder Lee		};
500b6286ddSRyder Lee
51335d1603SKrzysztof Kozlowski		wps-key {
520b6286ddSRyder Lee			label = "wps";
530b6286ddSRyder Lee			linux,code = <KEY_WPS_BUTTON>;
54c98e6e68SNick Hainke			gpios = <&pio 102 GPIO_ACTIVE_LOW>;
550b6286ddSRyder Lee		};
560b6286ddSRyder Lee	};
570b6286ddSRyder Lee
580b6286ddSRyder Lee	leds {
590b6286ddSRyder Lee		compatible = "gpio-leds";
600b6286ddSRyder Lee
617db5dfd3SKrzysztof Kozlowski		led-0 {
620b6286ddSRyder Lee			label = "bpi-r64:pio:green";
637db5dfd3SKrzysztof Kozlowski			color = <LED_COLOR_ID_GREEN>;
640b6286ddSRyder Lee			gpios = <&pio 89 GPIO_ACTIVE_HIGH>;
650b6286ddSRyder Lee			default-state = "off";
660b6286ddSRyder Lee		};
670b6286ddSRyder Lee
687db5dfd3SKrzysztof Kozlowski		led-1 {
690b6286ddSRyder Lee			label = "bpi-r64:pio:red";
707db5dfd3SKrzysztof Kozlowski			color = <LED_COLOR_ID_RED>;
710b6286ddSRyder Lee			gpios = <&pio 88 GPIO_ACTIVE_HIGH>;
720b6286ddSRyder Lee			default-state = "off";
730b6286ddSRyder Lee		};
740b6286ddSRyder Lee	};
750b6286ddSRyder Lee
766a6df679SEugen Hristev	memory@40000000 {
770b6286ddSRyder Lee		reg = <0 0x40000000 0 0x40000000>;
78*248ebf21SRafał Miłecki		device_type = "memory";
790b6286ddSRyder Lee	};
800b6286ddSRyder Lee
810b6286ddSRyder Lee	reg_1p8v: regulator-1p8v {
820b6286ddSRyder Lee		compatible = "regulator-fixed";
830b6286ddSRyder Lee		regulator-name = "fixed-1.8V";
840b6286ddSRyder Lee		regulator-min-microvolt = <1800000>;
850b6286ddSRyder Lee		regulator-max-microvolt = <1800000>;
860b6286ddSRyder Lee		regulator-always-on;
870b6286ddSRyder Lee	};
880b6286ddSRyder Lee
890b6286ddSRyder Lee	reg_3p3v: regulator-3p3v {
900b6286ddSRyder Lee		compatible = "regulator-fixed";
910b6286ddSRyder Lee		regulator-name = "fixed-3.3V";
920b6286ddSRyder Lee		regulator-min-microvolt = <3300000>;
930b6286ddSRyder Lee		regulator-max-microvolt = <3300000>;
940b6286ddSRyder Lee		regulator-boot-on;
950b6286ddSRyder Lee		regulator-always-on;
960b6286ddSRyder Lee	};
970b6286ddSRyder Lee
980b6286ddSRyder Lee	reg_5v: regulator-5v {
990b6286ddSRyder Lee		compatible = "regulator-fixed";
1000b6286ddSRyder Lee		regulator-name = "fixed-5V";
1010b6286ddSRyder Lee		regulator-min-microvolt = <5000000>;
1020b6286ddSRyder Lee		regulator-max-microvolt = <5000000>;
1030b6286ddSRyder Lee		regulator-boot-on;
1040b6286ddSRyder Lee		regulator-always-on;
1050b6286ddSRyder Lee	};
1060b6286ddSRyder Lee};
1070b6286ddSRyder Lee
1080b6286ddSRyder Lee&bch {
1090b6286ddSRyder Lee	status = "disabled";
1100b6286ddSRyder Lee};
1110b6286ddSRyder Lee
1120b6286ddSRyder Lee&btif {
1130b6286ddSRyder Lee	status = "okay";
1140b6286ddSRyder Lee};
1150b6286ddSRyder Lee
1160b6286ddSRyder Lee&cir {
1170b6286ddSRyder Lee	pinctrl-names = "default";
1180b6286ddSRyder Lee	pinctrl-0 = <&irrx_pins>;
1190b6286ddSRyder Lee	status = "okay";
1200b6286ddSRyder Lee};
1210b6286ddSRyder Lee
1220b6286ddSRyder Lee&eth {
1230b6286ddSRyder Lee	status = "okay";
124bd69baaaSRené van Dorst	gmac0: mac@0 {
125bd69baaaSRené van Dorst		compatible = "mediatek,eth-mac";
126bd69baaaSRené van Dorst		reg = <0>;
127bd69baaaSRené van Dorst		phy-mode = "2500base-x";
128bd69baaaSRené van Dorst
129bd69baaaSRené van Dorst		fixed-link {
130bd69baaaSRené van Dorst			speed = <2500>;
131bd69baaaSRené van Dorst			full-duplex;
132bd69baaaSRené van Dorst			pause;
133bd69baaaSRené van Dorst		};
134bd69baaaSRené van Dorst	};
1350b6286ddSRyder Lee
1360b6286ddSRyder Lee	gmac1: mac@1 {
1370b6286ddSRyder Lee		compatible = "mediatek,eth-mac";
1380b6286ddSRyder Lee		reg = <1>;
139bd69baaaSRené van Dorst		phy-mode = "rgmii";
140bd69baaaSRené van Dorst
141bd69baaaSRené van Dorst		fixed-link {
142bd69baaaSRené van Dorst			speed = <1000>;
143bd69baaaSRené van Dorst			full-duplex;
144bd69baaaSRené van Dorst			pause;
145bd69baaaSRené van Dorst		};
1460b6286ddSRyder Lee	};
1470b6286ddSRyder Lee
148bd69baaaSRené van Dorst	mdio: mdio-bus {
1490b6286ddSRyder Lee		#address-cells = <1>;
1500b6286ddSRyder Lee		#size-cells = <0>;
15179a675e6SLanden Chao
15279a675e6SLanden Chao		switch@0 {
15379a675e6SLanden Chao			compatible = "mediatek,mt7531";
15479a675e6SLanden Chao			reg = <0>;
155983f37eeSDaniel Golle			interrupt-controller;
156983f37eeSDaniel Golle			#interrupt-cells = <1>;
157983f37eeSDaniel Golle			interrupt-parent = <&pio>;
158983f37eeSDaniel Golle			interrupts = <53 IRQ_TYPE_LEVEL_HIGH>;
15979a675e6SLanden Chao			reset-gpios = <&pio 54 0>;
16079a675e6SLanden Chao
16179a675e6SLanden Chao			ports {
16279a675e6SLanden Chao				#address-cells = <1>;
16379a675e6SLanden Chao				#size-cells = <0>;
16479a675e6SLanden Chao
16579a675e6SLanden Chao				port@0 {
16679a675e6SLanden Chao					reg = <0>;
16779a675e6SLanden Chao					label = "wan";
16879a675e6SLanden Chao				};
16979a675e6SLanden Chao
17079a675e6SLanden Chao				port@1 {
17179a675e6SLanden Chao					reg = <1>;
17279a675e6SLanden Chao					label = "lan0";
17379a675e6SLanden Chao				};
17479a675e6SLanden Chao
17579a675e6SLanden Chao				port@2 {
17679a675e6SLanden Chao					reg = <2>;
17779a675e6SLanden Chao					label = "lan1";
17879a675e6SLanden Chao				};
17979a675e6SLanden Chao
18079a675e6SLanden Chao				port@3 {
18179a675e6SLanden Chao					reg = <3>;
18279a675e6SLanden Chao					label = "lan2";
18379a675e6SLanden Chao				};
18479a675e6SLanden Chao
18579a675e6SLanden Chao				port@4 {
18679a675e6SLanden Chao					reg = <4>;
18779a675e6SLanden Chao					label = "lan3";
18879a675e6SLanden Chao				};
18979a675e6SLanden Chao
19079a675e6SLanden Chao				port@6 {
19179a675e6SLanden Chao					reg = <6>;
19279a675e6SLanden Chao					label = "cpu";
19379a675e6SLanden Chao					ethernet = <&gmac0>;
19479a675e6SLanden Chao					phy-mode = "2500base-x";
19579a675e6SLanden Chao
19679a675e6SLanden Chao					fixed-link {
19779a675e6SLanden Chao						speed = <2500>;
19879a675e6SLanden Chao						full-duplex;
19979a675e6SLanden Chao						pause;
20079a675e6SLanden Chao					};
20179a675e6SLanden Chao				};
20279a675e6SLanden Chao			};
20379a675e6SLanden Chao		};
20479a675e6SLanden Chao
2050b6286ddSRyder Lee	};
2060b6286ddSRyder Lee};
2070b6286ddSRyder Lee
2080b6286ddSRyder Lee&i2c1 {
2090b6286ddSRyder Lee	pinctrl-names = "default";
2100b6286ddSRyder Lee	pinctrl-0 = <&i2c1_pins>;
2110b6286ddSRyder Lee	status = "okay";
2120b6286ddSRyder Lee};
2130b6286ddSRyder Lee
2140b6286ddSRyder Lee&i2c2 {
2150b6286ddSRyder Lee	pinctrl-names = "default";
2160b6286ddSRyder Lee	pinctrl-0 = <&i2c2_pins>;
2170b6286ddSRyder Lee	status = "okay";
2180b6286ddSRyder Lee};
2190b6286ddSRyder Lee
2200b6286ddSRyder Lee&mmc0 {
2210b6286ddSRyder Lee	pinctrl-names = "default", "state_uhs";
2220b6286ddSRyder Lee	pinctrl-0 = <&emmc_pins_default>;
2230b6286ddSRyder Lee	pinctrl-1 = <&emmc_pins_uhs>;
2240b6286ddSRyder Lee	status = "okay";
2250b6286ddSRyder Lee	bus-width = <8>;
2260b6286ddSRyder Lee	max-frequency = <50000000>;
2270b6286ddSRyder Lee	cap-mmc-highspeed;
2280b6286ddSRyder Lee	mmc-hs200-1_8v;
2290b6286ddSRyder Lee	vmmc-supply = <&reg_3p3v>;
2300b6286ddSRyder Lee	vqmmc-supply = <&reg_1p8v>;
2310b6286ddSRyder Lee	assigned-clocks = <&topckgen CLK_TOP_MSDC30_0_SEL>;
2320b6286ddSRyder Lee	assigned-clock-parents = <&topckgen CLK_TOP_UNIV48M>;
2330b6286ddSRyder Lee	non-removable;
2340b6286ddSRyder Lee};
2350b6286ddSRyder Lee
2360b6286ddSRyder Lee&mmc1 {
2370b6286ddSRyder Lee	pinctrl-names = "default", "state_uhs";
2380b6286ddSRyder Lee	pinctrl-0 = <&sd0_pins_default>;
2390b6286ddSRyder Lee	pinctrl-1 = <&sd0_pins_uhs>;
2400b6286ddSRyder Lee	status = "okay";
2410b6286ddSRyder Lee	bus-width = <4>;
2420b6286ddSRyder Lee	max-frequency = <50000000>;
2430b6286ddSRyder Lee	cap-sd-highspeed;
2440b6286ddSRyder Lee	cd-gpios = <&pio 81 GPIO_ACTIVE_LOW>;
2450b6286ddSRyder Lee	vmmc-supply = <&reg_3p3v>;
2460b6286ddSRyder Lee	vqmmc-supply = <&reg_3p3v>;
2470b6286ddSRyder Lee	assigned-clocks = <&topckgen CLK_TOP_MSDC30_1_SEL>;
2480b6286ddSRyder Lee	assigned-clock-parents = <&topckgen CLK_TOP_UNIV48M>;
2490b6286ddSRyder Lee};
2500b6286ddSRyder Lee
2510b6286ddSRyder Lee&nandc {
2520b6286ddSRyder Lee	pinctrl-names = "default";
2530b6286ddSRyder Lee	pinctrl-0 = <&parallel_nand_pins>;
2540b6286ddSRyder Lee	status = "disabled";
2550b6286ddSRyder Lee};
2560b6286ddSRyder Lee
257d278f43fSDaniel Golle&bch {
258d278f43fSDaniel Golle	status = "okay";
259d278f43fSDaniel Golle};
2600b6286ddSRyder Lee
261d278f43fSDaniel Golle&snfi {
262d278f43fSDaniel Golle	pinctrl-names = "default";
263d278f43fSDaniel Golle	pinctrl-0 = <&serial_nand_pins>;
264d278f43fSDaniel Golle	status = "okay";
2650b6286ddSRyder Lee	flash@0 {
266d278f43fSDaniel Golle		compatible = "spi-nand";
2670b6286ddSRyder Lee		reg = <0>;
268d278f43fSDaniel Golle		spi-tx-bus-width = <4>;
269d278f43fSDaniel Golle		spi-rx-bus-width = <4>;
270d278f43fSDaniel Golle		nand-ecc-engine = <&snfi>;
271d278f43fSDaniel Golle		partitions {
272d278f43fSDaniel Golle			compatible = "fixed-partitions";
273d278f43fSDaniel Golle			#address-cells = <1>;
274d278f43fSDaniel Golle			#size-cells = <1>;
275d278f43fSDaniel Golle
276d278f43fSDaniel Golle			partition@0 {
277d278f43fSDaniel Golle				label = "bl2";
278d278f43fSDaniel Golle				reg = <0x0 0x80000>;
279d278f43fSDaniel Golle				read-only;
280d278f43fSDaniel Golle			};
281d278f43fSDaniel Golle
282d278f43fSDaniel Golle			partition@80000 {
283d278f43fSDaniel Golle				label = "fip";
284d278f43fSDaniel Golle				reg = <0x80000 0x200000>;
285d278f43fSDaniel Golle				read-only;
286d278f43fSDaniel Golle			};
287d278f43fSDaniel Golle
288d278f43fSDaniel Golle			ubi: partition@280000 {
289d278f43fSDaniel Golle				label = "ubi";
290d278f43fSDaniel Golle				reg = <0x280000 0x7d80000>;
291d278f43fSDaniel Golle			};
292d278f43fSDaniel Golle		};
2930b6286ddSRyder Lee	};
2940b6286ddSRyder Lee};
2950b6286ddSRyder Lee
296c99c4733SChuanjia Liu&pcie0 {
2970b6286ddSRyder Lee	pinctrl-names = "default";
298c99c4733SChuanjia Liu	pinctrl-0 = <&pcie0_pins>;
2990b6286ddSRyder Lee	status = "okay";
3000b6286ddSRyder Lee};
3010b6286ddSRyder Lee
302c99c4733SChuanjia Liu&pcie1 {
303c99c4733SChuanjia Liu	pinctrl-names = "default";
304c99c4733SChuanjia Liu	pinctrl-0 = <&pcie1_pins>;
3050b6286ddSRyder Lee	status = "okay";
3060b6286ddSRyder Lee};
3070b6286ddSRyder Lee
3080b6286ddSRyder Lee&pio {
3090b6286ddSRyder Lee	/* Attention: GPIO 90 is used to switch between PCIe@1,0 and
3100b6286ddSRyder Lee	 * SATA functions. i.e. output-high: PCIe, output-low: SATA
3110b6286ddSRyder Lee	 */
3120b6286ddSRyder Lee	asm_sel {
3130b6286ddSRyder Lee		gpio-hog;
3140b6286ddSRyder Lee		gpios = <90 GPIO_ACTIVE_HIGH>;
3150b6286ddSRyder Lee		output-high;
3160b6286ddSRyder Lee	};
3170b6286ddSRyder Lee
3180b6286ddSRyder Lee	/* eMMC is shared pin with parallel NAND */
3190b6286ddSRyder Lee	emmc_pins_default: emmc-pins-default {
3200b6286ddSRyder Lee		mux {
3210b6286ddSRyder Lee			function = "emmc", "emmc_rst";
3220b6286ddSRyder Lee			groups = "emmc";
3230b6286ddSRyder Lee		};
3240b6286ddSRyder Lee
3250b6286ddSRyder Lee		/* "NDL0","NDL1","NDL2","NDL3","NDL4","NDL5","NDL6","NDL7",
3260b6286ddSRyder Lee		 * "NRB","NCLE" pins are used as DAT0,DAT1,DAT2,DAT3,DAT4,
3270b6286ddSRyder Lee		 * DAT5,DAT6,DAT7,CMD,CLK for eMMC respectively
3280b6286ddSRyder Lee		 */
3290b6286ddSRyder Lee		conf-cmd-dat {
3300b6286ddSRyder Lee			pins = "NDL0", "NDL1", "NDL2",
3310b6286ddSRyder Lee			       "NDL3", "NDL4", "NDL5",
3320b6286ddSRyder Lee			       "NDL6", "NDL7", "NRB";
3330b6286ddSRyder Lee			input-enable;
3340b6286ddSRyder Lee			bias-pull-up;
3350b6286ddSRyder Lee		};
3360b6286ddSRyder Lee
3370b6286ddSRyder Lee		conf-clk {
3380b6286ddSRyder Lee			pins = "NCLE";
3390b6286ddSRyder Lee			bias-pull-down;
3400b6286ddSRyder Lee		};
3410b6286ddSRyder Lee	};
3420b6286ddSRyder Lee
3430b6286ddSRyder Lee	emmc_pins_uhs: emmc-pins-uhs {
3440b6286ddSRyder Lee		mux {
3450b6286ddSRyder Lee			function = "emmc";
3460b6286ddSRyder Lee			groups = "emmc";
3470b6286ddSRyder Lee		};
3480b6286ddSRyder Lee
3490b6286ddSRyder Lee		conf-cmd-dat {
3500b6286ddSRyder Lee			pins = "NDL0", "NDL1", "NDL2",
3510b6286ddSRyder Lee			       "NDL3", "NDL4", "NDL5",
3520b6286ddSRyder Lee			       "NDL6", "NDL7", "NRB";
3530b6286ddSRyder Lee			input-enable;
3540b6286ddSRyder Lee			drive-strength = <4>;
3550b6286ddSRyder Lee			bias-pull-up;
3560b6286ddSRyder Lee		};
3570b6286ddSRyder Lee
3580b6286ddSRyder Lee		conf-clk {
3590b6286ddSRyder Lee			pins = "NCLE";
3600b6286ddSRyder Lee			drive-strength = <4>;
3610b6286ddSRyder Lee			bias-pull-down;
3620b6286ddSRyder Lee		};
3630b6286ddSRyder Lee	};
3640b6286ddSRyder Lee
3650b6286ddSRyder Lee	eth_pins: eth-pins {
3660b6286ddSRyder Lee		mux {
3670b6286ddSRyder Lee			function = "eth";
3680b6286ddSRyder Lee			groups = "mdc_mdio", "rgmii_via_gmac2";
3690b6286ddSRyder Lee		};
3700b6286ddSRyder Lee	};
3710b6286ddSRyder Lee
3720b6286ddSRyder Lee	i2c1_pins: i2c1-pins {
3730b6286ddSRyder Lee		mux {
3740b6286ddSRyder Lee			function = "i2c";
3750b6286ddSRyder Lee			groups = "i2c1_0";
3760b6286ddSRyder Lee		};
3770b6286ddSRyder Lee	};
3780b6286ddSRyder Lee
3790b6286ddSRyder Lee	i2c2_pins: i2c2-pins {
3800b6286ddSRyder Lee		mux {
3810b6286ddSRyder Lee			function = "i2c";
3820b6286ddSRyder Lee			groups = "i2c2_0";
3830b6286ddSRyder Lee		};
3840b6286ddSRyder Lee	};
3850b6286ddSRyder Lee
3860b6286ddSRyder Lee	i2s1_pins: i2s1-pins {
3870b6286ddSRyder Lee		mux {
3880b6286ddSRyder Lee			function = "i2s";
3890b6286ddSRyder Lee			groups =  "i2s_out_mclk_bclk_ws",
3900b6286ddSRyder Lee				  "i2s1_in_data",
3910b6286ddSRyder Lee				  "i2s1_out_data";
3920b6286ddSRyder Lee		};
3930b6286ddSRyder Lee
3940b6286ddSRyder Lee		conf {
3950b6286ddSRyder Lee			pins = "I2S1_IN", "I2S1_OUT", "I2S_BCLK",
3960b6286ddSRyder Lee			       "I2S_WS", "I2S_MCLK";
3970b6286ddSRyder Lee			drive-strength = <12>;
3980b6286ddSRyder Lee			bias-pull-down;
3990b6286ddSRyder Lee		};
4000b6286ddSRyder Lee	};
4010b6286ddSRyder Lee
4020b6286ddSRyder Lee	irrx_pins: irrx-pins {
4030b6286ddSRyder Lee		mux {
4040b6286ddSRyder Lee			function = "ir";
4050b6286ddSRyder Lee			groups = "ir_1_rx";
4060b6286ddSRyder Lee		};
4070b6286ddSRyder Lee	};
4080b6286ddSRyder Lee
4090b6286ddSRyder Lee	irtx_pins: irtx-pins {
4100b6286ddSRyder Lee		mux {
4110b6286ddSRyder Lee			function = "ir";
4120b6286ddSRyder Lee			groups = "ir_1_tx";
4130b6286ddSRyder Lee		};
4140b6286ddSRyder Lee	};
4150b6286ddSRyder Lee
4160b6286ddSRyder Lee	/* Parallel nand is shared pin with eMMC */
4170b6286ddSRyder Lee	parallel_nand_pins: parallel-nand-pins {
4180b6286ddSRyder Lee		mux {
4190b6286ddSRyder Lee			function = "flash";
4200b6286ddSRyder Lee			groups = "par_nand";
4210b6286ddSRyder Lee		};
4220b6286ddSRyder Lee	};
4230b6286ddSRyder Lee
4240b6286ddSRyder Lee	pcie0_pins: pcie0-pins {
4250b6286ddSRyder Lee		mux {
4260b6286ddSRyder Lee			function = "pcie";
4270b6286ddSRyder Lee			groups = "pcie0_pad_perst",
4280b6286ddSRyder Lee				 "pcie0_1_waken",
4290b6286ddSRyder Lee				 "pcie0_1_clkreq";
4300b6286ddSRyder Lee		};
4310b6286ddSRyder Lee	};
4320b6286ddSRyder Lee
4330b6286ddSRyder Lee	pcie1_pins: pcie1-pins {
4340b6286ddSRyder Lee		mux {
4350b6286ddSRyder Lee			function = "pcie";
4360b6286ddSRyder Lee			groups = "pcie1_pad_perst",
4370b6286ddSRyder Lee				 "pcie1_0_waken",
4380b6286ddSRyder Lee				 "pcie1_0_clkreq";
4390b6286ddSRyder Lee		};
4400b6286ddSRyder Lee	};
4410b6286ddSRyder Lee
4420b6286ddSRyder Lee	pmic_bus_pins: pmic-bus-pins {
4430b6286ddSRyder Lee		mux {
4440b6286ddSRyder Lee			function = "pmic";
4450b6286ddSRyder Lee			groups = "pmic_bus";
4460b6286ddSRyder Lee		};
4470b6286ddSRyder Lee	};
4480b6286ddSRyder Lee
4493f071671SFrank Wunderlich	pwm_pins: pwm-pins {
4500b6286ddSRyder Lee		mux {
4510b6286ddSRyder Lee			function = "pwm";
4523f071671SFrank Wunderlich			groups = "pwm_ch1_0", /* mt7622_pwm_ch1_0_pins[] = { 51, }; */
4533f071671SFrank Wunderlich				 "pwm_ch2_0", /* mt7622_pwm_ch2_0_pins[] = { 52, }; */
4543f071671SFrank Wunderlich				 "pwm_ch3_2", /* mt7622_pwm_ch3_2_pins[] = { 97, }; */
4553f071671SFrank Wunderlich				 "pwm_ch4_1", /* mt7622_pwm_ch4_1_pins[] = { 67, }; */
4563f071671SFrank Wunderlich				 "pwm_ch5_0", /* mt7622_pwm_ch5_0_pins[] = { 68, }; */
4573f071671SFrank Wunderlich				 "pwm_ch6_0"; /* mt7622_pwm_ch6_0_pins[] = { 69, }; */
4580b6286ddSRyder Lee		};
4590b6286ddSRyder Lee	};
4600b6286ddSRyder Lee
4610b6286ddSRyder Lee	wled_pins: wled-pins {
4620b6286ddSRyder Lee		mux {
4630b6286ddSRyder Lee			function = "led";
4640b6286ddSRyder Lee			groups = "wled";
4650b6286ddSRyder Lee		};
4660b6286ddSRyder Lee	};
4670b6286ddSRyder Lee
4680b6286ddSRyder Lee	sd0_pins_default: sd0-pins-default {
4690b6286ddSRyder Lee		mux {
4700b6286ddSRyder Lee			function = "sd";
4710b6286ddSRyder Lee			groups = "sd_0";
4720b6286ddSRyder Lee		};
4730b6286ddSRyder Lee
4740b6286ddSRyder Lee		/* "I2S2_OUT, "I2S4_IN"", "I2S3_IN", "I2S2_IN",
4750b6286ddSRyder Lee		 *  "I2S4_OUT", "I2S3_OUT" are used as DAT0, DAT1,
4760b6286ddSRyder Lee		 *  DAT2, DAT3, CMD, CLK for SD respectively.
4770b6286ddSRyder Lee		 */
4780b6286ddSRyder Lee		conf-cmd-data {
4790b6286ddSRyder Lee			pins = "I2S2_OUT", "I2S4_IN", "I2S3_IN",
4800b6286ddSRyder Lee			       "I2S2_IN","I2S4_OUT";
4810b6286ddSRyder Lee			input-enable;
4820b6286ddSRyder Lee			drive-strength = <8>;
4830b6286ddSRyder Lee			bias-pull-up;
4840b6286ddSRyder Lee		};
4850b6286ddSRyder Lee		conf-clk {
4860b6286ddSRyder Lee			pins = "I2S3_OUT";
4870b6286ddSRyder Lee			drive-strength = <12>;
4880b6286ddSRyder Lee			bias-pull-down;
4890b6286ddSRyder Lee		};
4900b6286ddSRyder Lee		conf-cd {
4910b6286ddSRyder Lee			pins = "TXD3";
4920b6286ddSRyder Lee			bias-pull-up;
4930b6286ddSRyder Lee		};
4940b6286ddSRyder Lee	};
4950b6286ddSRyder Lee
4960b6286ddSRyder Lee	sd0_pins_uhs: sd0-pins-uhs {
4970b6286ddSRyder Lee		mux {
4980b6286ddSRyder Lee			function = "sd";
4990b6286ddSRyder Lee			groups = "sd_0";
5000b6286ddSRyder Lee		};
5010b6286ddSRyder Lee
5020b6286ddSRyder Lee		conf-cmd-data {
5030b6286ddSRyder Lee			pins = "I2S2_OUT", "I2S4_IN", "I2S3_IN",
5040b6286ddSRyder Lee			       "I2S2_IN","I2S4_OUT";
5050b6286ddSRyder Lee			input-enable;
5060b6286ddSRyder Lee			bias-pull-up;
5070b6286ddSRyder Lee		};
5080b6286ddSRyder Lee
5090b6286ddSRyder Lee		conf-clk {
5100b6286ddSRyder Lee			pins = "I2S3_OUT";
5110b6286ddSRyder Lee			bias-pull-down;
5120b6286ddSRyder Lee		};
5130b6286ddSRyder Lee	};
5140b6286ddSRyder Lee
5150b6286ddSRyder Lee	/* Serial NAND is shared pin with SPI-NOR */
5160b6286ddSRyder Lee	serial_nand_pins: serial-nand-pins {
5170b6286ddSRyder Lee		mux {
5180b6286ddSRyder Lee			function = "flash";
5190b6286ddSRyder Lee			groups = "snfi";
5200b6286ddSRyder Lee		};
5210b6286ddSRyder Lee	};
5220b6286ddSRyder Lee
5230b6286ddSRyder Lee	spic0_pins: spic0-pins {
5240b6286ddSRyder Lee		mux {
5250b6286ddSRyder Lee			function = "spi";
5260b6286ddSRyder Lee			groups = "spic0_0";
5270b6286ddSRyder Lee		};
5280b6286ddSRyder Lee	};
5290b6286ddSRyder Lee
5300b6286ddSRyder Lee	spic1_pins: spic1-pins {
5310b6286ddSRyder Lee		mux {
5320b6286ddSRyder Lee			function = "spi";
5330b6286ddSRyder Lee			groups = "spic1_0";
5340b6286ddSRyder Lee		};
5350b6286ddSRyder Lee	};
5360b6286ddSRyder Lee
5370b6286ddSRyder Lee	/* SPI-NOR is shared pin with serial NAND */
5380b6286ddSRyder Lee	spi_nor_pins: spi-nor-pins {
5390b6286ddSRyder Lee		mux {
5400b6286ddSRyder Lee			function = "flash";
5410b6286ddSRyder Lee			groups = "spi_nor";
5420b6286ddSRyder Lee		};
5430b6286ddSRyder Lee	};
5440b6286ddSRyder Lee
5450b6286ddSRyder Lee	/* serial NAND is shared pin with SPI-NOR */
5460b6286ddSRyder Lee	serial_nand_pins: serial-nand-pins {
5470b6286ddSRyder Lee		mux {
5480b6286ddSRyder Lee			function = "flash";
5490b6286ddSRyder Lee			groups = "snfi";
5500b6286ddSRyder Lee		};
5510b6286ddSRyder Lee	};
5520b6286ddSRyder Lee
5530b6286ddSRyder Lee	uart0_pins: uart0-pins {
5540b6286ddSRyder Lee		mux {
5550b6286ddSRyder Lee			function = "uart";
5560b6286ddSRyder Lee			groups = "uart0_0_tx_rx" ;
5570b6286ddSRyder Lee		};
5580b6286ddSRyder Lee	};
5590b6286ddSRyder Lee
5600b6286ddSRyder Lee	uart2_pins: uart2-pins {
5610b6286ddSRyder Lee		mux {
5620b6286ddSRyder Lee			function = "uart";
5630b6286ddSRyder Lee			groups = "uart2_1_tx_rx" ;
5640b6286ddSRyder Lee		};
5650b6286ddSRyder Lee	};
5660b6286ddSRyder Lee
5670b6286ddSRyder Lee	watchdog_pins: watchdog-pins {
5680b6286ddSRyder Lee		mux {
5690b6286ddSRyder Lee			function = "watchdog";
5700b6286ddSRyder Lee			groups = "watchdog";
5710b6286ddSRyder Lee		};
5720b6286ddSRyder Lee	};
5730b6286ddSRyder Lee};
5740b6286ddSRyder Lee
5750b6286ddSRyder Lee&pwm {
5760b6286ddSRyder Lee	pinctrl-names = "default";
5773f071671SFrank Wunderlich	pinctrl-0 = <&pwm_pins>;
5780b6286ddSRyder Lee	status = "okay";
5790b6286ddSRyder Lee};
5800b6286ddSRyder Lee
5810b6286ddSRyder Lee&pwrap {
5820b6286ddSRyder Lee	pinctrl-names = "default";
5830b6286ddSRyder Lee	pinctrl-0 = <&pmic_bus_pins>;
5840b6286ddSRyder Lee
5850b6286ddSRyder Lee	status = "okay";
5860b6286ddSRyder Lee};
5870b6286ddSRyder Lee
5880b6286ddSRyder Lee&sata {
589c718f36cSRob Herring	status = "disabled";
5900b6286ddSRyder Lee};
5910b6286ddSRyder Lee
5920b6286ddSRyder Lee&sata_phy {
593c718f36cSRob Herring	status = "disabled";
5940b6286ddSRyder Lee};
5950b6286ddSRyder Lee
5960b6286ddSRyder Lee&spi0 {
5970b6286ddSRyder Lee	pinctrl-names = "default";
5980b6286ddSRyder Lee	pinctrl-0 = <&spic0_pins>;
5990b6286ddSRyder Lee	status = "okay";
6000b6286ddSRyder Lee};
6010b6286ddSRyder Lee
6020b6286ddSRyder Lee&spi1 {
6030b6286ddSRyder Lee	pinctrl-names = "default";
6040b6286ddSRyder Lee	pinctrl-0 = <&spic1_pins>;
6050b6286ddSRyder Lee};
6060b6286ddSRyder Lee
6070b6286ddSRyder Lee&ssusb {
6080b6286ddSRyder Lee	vusb33-supply = <&reg_3p3v>;
6090b6286ddSRyder Lee	vbus-supply = <&reg_5v>;
6100b6286ddSRyder Lee	status = "okay";
6110b6286ddSRyder Lee};
6120b6286ddSRyder Lee
6130b6286ddSRyder Lee&u3phy {
6140b6286ddSRyder Lee	status = "okay";
6150b6286ddSRyder Lee};
6160b6286ddSRyder Lee
6170b6286ddSRyder Lee&uart0 {
6180b6286ddSRyder Lee	pinctrl-names = "default";
6190b6286ddSRyder Lee	pinctrl-0 = <&uart0_pins>;
6200b6286ddSRyder Lee	status = "okay";
6210b6286ddSRyder Lee};
6220b6286ddSRyder Lee
6230b6286ddSRyder Lee&uart2 {
6240b6286ddSRyder Lee	pinctrl-names = "default";
6250b6286ddSRyder Lee	pinctrl-0 = <&uart2_pins>;
6260b6286ddSRyder Lee};
6270b6286ddSRyder Lee
6280b6286ddSRyder Lee&watchdog {
6290b6286ddSRyder Lee	pinctrl-names = "default";
6300b6286ddSRyder Lee	pinctrl-0 = <&watchdog_pins>;
6310b6286ddSRyder Lee	status = "okay";
6320b6286ddSRyder Lee};
6331ba2ed77SRyder Lee
6341ba2ed77SRyder Lee&wmac {
6351ba2ed77SRyder Lee	status = "okay";
6361ba2ed77SRyder Lee};
637