18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0
28c2ecf20Sopenharmony_ci#include "qcom-ipq8064.dtsi"
38c2ecf20Sopenharmony_ci#include <dt-bindings/input/input.h>
48c2ecf20Sopenharmony_ci
58c2ecf20Sopenharmony_ci/ {
68c2ecf20Sopenharmony_ci	model = "MikroTik RB3011UiAS-RM";
78c2ecf20Sopenharmony_ci	compatible = "mikrotik,rb3011";
88c2ecf20Sopenharmony_ci
98c2ecf20Sopenharmony_ci	aliases {
108c2ecf20Sopenharmony_ci		serial0 = &gsbi7_serial;
118c2ecf20Sopenharmony_ci		ethernet0 = &gmac0;
128c2ecf20Sopenharmony_ci		ethernet1 = &gmac3;
138c2ecf20Sopenharmony_ci		mdio-gpio0 = &mdio0;
148c2ecf20Sopenharmony_ci		mdio-gpio1 = &mdio1;
158c2ecf20Sopenharmony_ci	};
168c2ecf20Sopenharmony_ci
178c2ecf20Sopenharmony_ci	chosen {
188c2ecf20Sopenharmony_ci		bootargs = "loglevel=8 console=ttyMSM0,115200";
198c2ecf20Sopenharmony_ci		stdout-path = "serial0:115200n8";
208c2ecf20Sopenharmony_ci	};
218c2ecf20Sopenharmony_ci
228c2ecf20Sopenharmony_ci	memory@42000000 {
238c2ecf20Sopenharmony_ci		reg = <0x42000000 0x3e000000>;
248c2ecf20Sopenharmony_ci		device_type = "memory";
258c2ecf20Sopenharmony_ci	};
268c2ecf20Sopenharmony_ci
278c2ecf20Sopenharmony_ci	mdio0: mdio-0 {
288c2ecf20Sopenharmony_ci		status = "okay";
298c2ecf20Sopenharmony_ci		compatible = "virtual,mdio-gpio";
308c2ecf20Sopenharmony_ci		gpios = <&qcom_pinmux 1 GPIO_ACTIVE_HIGH>,
318c2ecf20Sopenharmony_ci			<&qcom_pinmux 0 GPIO_ACTIVE_HIGH>;
328c2ecf20Sopenharmony_ci		#address-cells = <1>;
338c2ecf20Sopenharmony_ci		#size-cells = <0>;
348c2ecf20Sopenharmony_ci
358c2ecf20Sopenharmony_ci		pinctrl-0 = <&mdio0_pins>;
368c2ecf20Sopenharmony_ci		pinctrl-names = "default";
378c2ecf20Sopenharmony_ci
388c2ecf20Sopenharmony_ci		switch0: switch@10 {
398c2ecf20Sopenharmony_ci			compatible = "qca,qca8337";
408c2ecf20Sopenharmony_ci			#address-cells = <1>;
418c2ecf20Sopenharmony_ci			#size-cells = <0>;
428c2ecf20Sopenharmony_ci
438c2ecf20Sopenharmony_ci			dsa,member = <0 0>;
448c2ecf20Sopenharmony_ci
458c2ecf20Sopenharmony_ci			pinctrl-0 = <&sw0_reset_pin>;
468c2ecf20Sopenharmony_ci			pinctrl-names = "default";
478c2ecf20Sopenharmony_ci
488c2ecf20Sopenharmony_ci			reset-gpios = <&qcom_pinmux 16 GPIO_ACTIVE_LOW>;
498c2ecf20Sopenharmony_ci			reg = <0x10>;
508c2ecf20Sopenharmony_ci
518c2ecf20Sopenharmony_ci			ports {
528c2ecf20Sopenharmony_ci				#address-cells = <1>;
538c2ecf20Sopenharmony_ci				#size-cells = <0>;
548c2ecf20Sopenharmony_ci
558c2ecf20Sopenharmony_ci				switch0cpu: port@0 {
568c2ecf20Sopenharmony_ci					reg = <0>;
578c2ecf20Sopenharmony_ci					label = "cpu";
588c2ecf20Sopenharmony_ci					ethernet = <&gmac0>;
598c2ecf20Sopenharmony_ci					phy-mode = "rgmii-id";
608c2ecf20Sopenharmony_ci					fixed-link {
618c2ecf20Sopenharmony_ci						speed = <1000>;
628c2ecf20Sopenharmony_ci						full-duplex;
638c2ecf20Sopenharmony_ci					};
648c2ecf20Sopenharmony_ci				};
658c2ecf20Sopenharmony_ci
668c2ecf20Sopenharmony_ci				port@1 {
678c2ecf20Sopenharmony_ci					reg = <1>;
688c2ecf20Sopenharmony_ci					label = "sw1";
698c2ecf20Sopenharmony_ci				};
708c2ecf20Sopenharmony_ci
718c2ecf20Sopenharmony_ci				port@2 {
728c2ecf20Sopenharmony_ci					reg = <2>;
738c2ecf20Sopenharmony_ci					label = "sw2";
748c2ecf20Sopenharmony_ci				};
758c2ecf20Sopenharmony_ci
768c2ecf20Sopenharmony_ci				port@3 {
778c2ecf20Sopenharmony_ci					reg = <3>;
788c2ecf20Sopenharmony_ci					label = "sw3";
798c2ecf20Sopenharmony_ci				};
808c2ecf20Sopenharmony_ci
818c2ecf20Sopenharmony_ci				port@4 {
828c2ecf20Sopenharmony_ci					reg = <4>;
838c2ecf20Sopenharmony_ci					label = "sw4";
848c2ecf20Sopenharmony_ci				};
858c2ecf20Sopenharmony_ci
868c2ecf20Sopenharmony_ci				port@5 {
878c2ecf20Sopenharmony_ci					reg = <5>;
888c2ecf20Sopenharmony_ci					label = "sw5";
898c2ecf20Sopenharmony_ci				};
908c2ecf20Sopenharmony_ci			};
918c2ecf20Sopenharmony_ci		};
928c2ecf20Sopenharmony_ci	};
938c2ecf20Sopenharmony_ci
948c2ecf20Sopenharmony_ci	mdio1: mdio-1 {
958c2ecf20Sopenharmony_ci		status = "okay";
968c2ecf20Sopenharmony_ci		compatible = "virtual,mdio-gpio";
978c2ecf20Sopenharmony_ci		gpios = <&qcom_pinmux 11 GPIO_ACTIVE_HIGH>,
988c2ecf20Sopenharmony_ci			<&qcom_pinmux 10 GPIO_ACTIVE_HIGH>;
998c2ecf20Sopenharmony_ci		#address-cells = <1>;
1008c2ecf20Sopenharmony_ci		#size-cells = <0>;
1018c2ecf20Sopenharmony_ci
1028c2ecf20Sopenharmony_ci		pinctrl-0 = <&mdio1_pins>;
1038c2ecf20Sopenharmony_ci		pinctrl-names = "default";
1048c2ecf20Sopenharmony_ci
1058c2ecf20Sopenharmony_ci		switch1: switch@14 {
1068c2ecf20Sopenharmony_ci			compatible = "qca,qca8337";
1078c2ecf20Sopenharmony_ci			#address-cells = <1>;
1088c2ecf20Sopenharmony_ci			#size-cells = <0>;
1098c2ecf20Sopenharmony_ci
1108c2ecf20Sopenharmony_ci			dsa,member = <1 0>;
1118c2ecf20Sopenharmony_ci
1128c2ecf20Sopenharmony_ci			pinctrl-0 = <&sw1_reset_pin>;
1138c2ecf20Sopenharmony_ci			pinctrl-names = "default";
1148c2ecf20Sopenharmony_ci
1158c2ecf20Sopenharmony_ci			reset-gpios = <&qcom_pinmux 17 GPIO_ACTIVE_LOW>;
1168c2ecf20Sopenharmony_ci			reg = <0x10>;
1178c2ecf20Sopenharmony_ci
1188c2ecf20Sopenharmony_ci			ports {
1198c2ecf20Sopenharmony_ci				#address-cells = <1>;
1208c2ecf20Sopenharmony_ci				#size-cells = <0>;
1218c2ecf20Sopenharmony_ci
1228c2ecf20Sopenharmony_ci				switch1cpu: port@0 {
1238c2ecf20Sopenharmony_ci					reg = <0>;
1248c2ecf20Sopenharmony_ci					label = "cpu";
1258c2ecf20Sopenharmony_ci					ethernet = <&gmac3>;
1268c2ecf20Sopenharmony_ci					phy-mode = "sgmii";
1278c2ecf20Sopenharmony_ci					fixed-link {
1288c2ecf20Sopenharmony_ci						speed = <1000>;
1298c2ecf20Sopenharmony_ci						full-duplex;
1308c2ecf20Sopenharmony_ci					};
1318c2ecf20Sopenharmony_ci				};
1328c2ecf20Sopenharmony_ci
1338c2ecf20Sopenharmony_ci				port@1 {
1348c2ecf20Sopenharmony_ci					reg = <1>;
1358c2ecf20Sopenharmony_ci					label = "sw6";
1368c2ecf20Sopenharmony_ci				};
1378c2ecf20Sopenharmony_ci
1388c2ecf20Sopenharmony_ci				port@2 {
1398c2ecf20Sopenharmony_ci					reg = <2>;
1408c2ecf20Sopenharmony_ci					label = "sw7";
1418c2ecf20Sopenharmony_ci				};
1428c2ecf20Sopenharmony_ci
1438c2ecf20Sopenharmony_ci				port@3 {
1448c2ecf20Sopenharmony_ci					reg = <3>;
1458c2ecf20Sopenharmony_ci					label = "sw8";
1468c2ecf20Sopenharmony_ci				};
1478c2ecf20Sopenharmony_ci
1488c2ecf20Sopenharmony_ci				port@4 {
1498c2ecf20Sopenharmony_ci					reg = <4>;
1508c2ecf20Sopenharmony_ci					label = "sw9";
1518c2ecf20Sopenharmony_ci				};
1528c2ecf20Sopenharmony_ci
1538c2ecf20Sopenharmony_ci				port@5 {
1548c2ecf20Sopenharmony_ci					reg = <5>;
1558c2ecf20Sopenharmony_ci					label = "sw10";
1568c2ecf20Sopenharmony_ci				};
1578c2ecf20Sopenharmony_ci			};
1588c2ecf20Sopenharmony_ci		};
1598c2ecf20Sopenharmony_ci	};
1608c2ecf20Sopenharmony_ci
1618c2ecf20Sopenharmony_ci	soc {
1628c2ecf20Sopenharmony_ci		gsbi5: gsbi@1a200000 {
1638c2ecf20Sopenharmony_ci			qcom,mode = <GSBI_PROT_SPI>;
1648c2ecf20Sopenharmony_ci			status = "okay";
1658c2ecf20Sopenharmony_ci
1668c2ecf20Sopenharmony_ci			spi4: spi@1a280000 {
1678c2ecf20Sopenharmony_ci				status = "okay";
1688c2ecf20Sopenharmony_ci				spi-max-frequency = <50000000>;
1698c2ecf20Sopenharmony_ci
1708c2ecf20Sopenharmony_ci				pinctrl-0 = <&spi_pins>;
1718c2ecf20Sopenharmony_ci				pinctrl-names = "default";
1728c2ecf20Sopenharmony_ci
1738c2ecf20Sopenharmony_ci				cs-gpios = <&qcom_pinmux 20 GPIO_ACTIVE_HIGH>;
1748c2ecf20Sopenharmony_ci
1758c2ecf20Sopenharmony_ci				norflash: s25fl016k@0 {
1768c2ecf20Sopenharmony_ci					compatible = "jedec,spi-nor";
1778c2ecf20Sopenharmony_ci					#address-cells = <1>;
1788c2ecf20Sopenharmony_ci					#size-cells = <1>;
1798c2ecf20Sopenharmony_ci					spi-max-frequency = <50000000>;
1808c2ecf20Sopenharmony_ci					reg = <0>;
1818c2ecf20Sopenharmony_ci
1828c2ecf20Sopenharmony_ci					partition@0 {
1838c2ecf20Sopenharmony_ci						label = "RouterBoot";
1848c2ecf20Sopenharmony_ci						reg = <0x0 0x40000>;
1858c2ecf20Sopenharmony_ci					};
1868c2ecf20Sopenharmony_ci				};
1878c2ecf20Sopenharmony_ci			};
1888c2ecf20Sopenharmony_ci		};
1898c2ecf20Sopenharmony_ci
1908c2ecf20Sopenharmony_ci		gpio_keys {
1918c2ecf20Sopenharmony_ci			compatible = "gpio-keys";
1928c2ecf20Sopenharmony_ci			pinctrl-0 = <&buttons_pins>;
1938c2ecf20Sopenharmony_ci			pinctrl-names = "default";
1948c2ecf20Sopenharmony_ci
1958c2ecf20Sopenharmony_ci			button@1 {
1968c2ecf20Sopenharmony_ci				label = "reset";
1978c2ecf20Sopenharmony_ci				linux,code = <KEY_RESTART>;
1988c2ecf20Sopenharmony_ci				gpios = <&qcom_pinmux 66 GPIO_ACTIVE_LOW>;
1998c2ecf20Sopenharmony_ci				linux,input-type = <1>;
2008c2ecf20Sopenharmony_ci				debounce-interval = <60>;
2018c2ecf20Sopenharmony_ci			};
2028c2ecf20Sopenharmony_ci		};
2038c2ecf20Sopenharmony_ci
2048c2ecf20Sopenharmony_ci		leds {
2058c2ecf20Sopenharmony_ci			compatible = "gpio-leds";
2068c2ecf20Sopenharmony_ci			pinctrl-0 = <&leds_pins>;
2078c2ecf20Sopenharmony_ci			pinctrl-names = "default";
2088c2ecf20Sopenharmony_ci
2098c2ecf20Sopenharmony_ci			led@7 {
2108c2ecf20Sopenharmony_ci				label = "rb3011:green:user";
2118c2ecf20Sopenharmony_ci				gpios = <&qcom_pinmux 33 GPIO_ACTIVE_HIGH>;
2128c2ecf20Sopenharmony_ci				default-state = "off";
2138c2ecf20Sopenharmony_ci			};
2148c2ecf20Sopenharmony_ci		};
2158c2ecf20Sopenharmony_ci
2168c2ecf20Sopenharmony_ci	};
2178c2ecf20Sopenharmony_ci};
2188c2ecf20Sopenharmony_ci
2198c2ecf20Sopenharmony_ci&gmac0 {
2208c2ecf20Sopenharmony_ci	status = "okay";
2218c2ecf20Sopenharmony_ci
2228c2ecf20Sopenharmony_ci	phy-mode = "rgmii";
2238c2ecf20Sopenharmony_ci	qcom,id = <0>;
2248c2ecf20Sopenharmony_ci	phy-handle = <&switch0cpu>;
2258c2ecf20Sopenharmony_ci
2268c2ecf20Sopenharmony_ci	fixed-link {
2278c2ecf20Sopenharmony_ci		speed = <1000>;
2288c2ecf20Sopenharmony_ci		full-duplex;
2298c2ecf20Sopenharmony_ci	};
2308c2ecf20Sopenharmony_ci};
2318c2ecf20Sopenharmony_ci
2328c2ecf20Sopenharmony_ci&gmac3 {
2338c2ecf20Sopenharmony_ci	status = "okay";
2348c2ecf20Sopenharmony_ci
2358c2ecf20Sopenharmony_ci	phy-mode = "sgmii";
2368c2ecf20Sopenharmony_ci	qcom,id = <3>;
2378c2ecf20Sopenharmony_ci	phy-handle = <&switch1cpu>;
2388c2ecf20Sopenharmony_ci
2398c2ecf20Sopenharmony_ci	fixed-link {
2408c2ecf20Sopenharmony_ci		speed = <1000>;
2418c2ecf20Sopenharmony_ci		full-duplex;
2428c2ecf20Sopenharmony_ci	};
2438c2ecf20Sopenharmony_ci};
2448c2ecf20Sopenharmony_ci
2458c2ecf20Sopenharmony_ci&gsbi7 {
2468c2ecf20Sopenharmony_ci	status = "okay";
2478c2ecf20Sopenharmony_ci	qcom,mode = <GSBI_PROT_I2C_UART>;
2488c2ecf20Sopenharmony_ci};
2498c2ecf20Sopenharmony_ci
2508c2ecf20Sopenharmony_ci&gsbi7_serial {
2518c2ecf20Sopenharmony_ci	status = "okay";
2528c2ecf20Sopenharmony_ci};
2538c2ecf20Sopenharmony_ci
2548c2ecf20Sopenharmony_ci&qcom_pinmux {
2558c2ecf20Sopenharmony_ci	buttons_pins: buttons_pins {
2568c2ecf20Sopenharmony_ci		mux {
2578c2ecf20Sopenharmony_ci			pins = "gpio66";
2588c2ecf20Sopenharmony_ci			drive-strength = <16>;
2598c2ecf20Sopenharmony_ci			bias-disable;
2608c2ecf20Sopenharmony_ci		};
2618c2ecf20Sopenharmony_ci	};
2628c2ecf20Sopenharmony_ci
2638c2ecf20Sopenharmony_ci	leds_pins: leds_pins {
2648c2ecf20Sopenharmony_ci		mux {
2658c2ecf20Sopenharmony_ci			pins = "gpio33";
2668c2ecf20Sopenharmony_ci			drive-strength = <16>;
2678c2ecf20Sopenharmony_ci			bias-disable;
2688c2ecf20Sopenharmony_ci		};
2698c2ecf20Sopenharmony_ci	};
2708c2ecf20Sopenharmony_ci
2718c2ecf20Sopenharmony_ci	mdio0_pins: mdio0_pins {
2728c2ecf20Sopenharmony_ci		mux {
2738c2ecf20Sopenharmony_ci			pins = "gpio0", "gpio1";
2748c2ecf20Sopenharmony_ci			function = "gpio";
2758c2ecf20Sopenharmony_ci			drive-strength = <8>;
2768c2ecf20Sopenharmony_ci			bias-disable;
2778c2ecf20Sopenharmony_ci		};
2788c2ecf20Sopenharmony_ci	};
2798c2ecf20Sopenharmony_ci
2808c2ecf20Sopenharmony_ci	mdio1_pins: mdio1_pins {
2818c2ecf20Sopenharmony_ci		mux {
2828c2ecf20Sopenharmony_ci			pins = "gpio10", "gpio11";
2838c2ecf20Sopenharmony_ci			function = "gpio";
2848c2ecf20Sopenharmony_ci			drive-strength = <8>;
2858c2ecf20Sopenharmony_ci			bias-disable;
2868c2ecf20Sopenharmony_ci		};
2878c2ecf20Sopenharmony_ci	};
2888c2ecf20Sopenharmony_ci
2898c2ecf20Sopenharmony_ci	sw0_reset_pin: sw0_reset_pin {
2908c2ecf20Sopenharmony_ci		mux {
2918c2ecf20Sopenharmony_ci			pins = "gpio16";
2928c2ecf20Sopenharmony_ci			drive-strength = <16>;
2938c2ecf20Sopenharmony_ci			function = "gpio";
2948c2ecf20Sopenharmony_ci			bias-disable;
2958c2ecf20Sopenharmony_ci			input-disable;
2968c2ecf20Sopenharmony_ci		};
2978c2ecf20Sopenharmony_ci	};
2988c2ecf20Sopenharmony_ci
2998c2ecf20Sopenharmony_ci	sw1_reset_pin: sw1_reset_pin {
3008c2ecf20Sopenharmony_ci		mux {
3018c2ecf20Sopenharmony_ci			pins = "gpio17";
3028c2ecf20Sopenharmony_ci			drive-strength = <16>;
3038c2ecf20Sopenharmony_ci			function = "gpio";
3048c2ecf20Sopenharmony_ci			bias-disable;
3058c2ecf20Sopenharmony_ci			input-disable;
3068c2ecf20Sopenharmony_ci		};
3078c2ecf20Sopenharmony_ci	};
3088c2ecf20Sopenharmony_ci};
309