// SPDX-License-Identifier: GPL-2.0
#include "qcom-ipq8064.dtsi"
#include <dt-bindings/input/input.h>

/ {
	model = "MikroTik RB3011UiAS-RM";
	compatible = "mikrotik,rb3011";

	aliases {
		serial0 = &gsbi7_serial;
		ethernet0 = &gmac0;
		ethernet1 = &gmac3;
		mdio-gpio0 = &mdio0;
		mdio-gpio1 = &mdio1;
	};

	chosen {
		bootargs = "loglevel=8 console=ttyMSM0,115200";
		stdout-path = "serial0:115200n8";
	};

	memory@0 {
		reg = <0x42000000 0x3e000000>;
		device_type = "memory";
	};

	mdio0: mdio@0 {
		status = "okay";
		compatible = "virtual,mdio-gpio";
		gpios = <&qcom_pinmux 1 GPIO_ACTIVE_HIGH>,
			<&qcom_pinmux 0 GPIO_ACTIVE_HIGH>;
		#address-cells = <1>;
		#size-cells = <0>;

		pinctrl-0 = <&mdio0_pins>;
		pinctrl-names = "default";

		switch0: switch@10 {
			compatible = "qca,qca8337";
			#address-cells = <1>;
			#size-cells = <0>;

			dsa,member = <0 0>;

			pinctrl-0 = <&sw0_reset_pin>;
			pinctrl-names = "default";

			reset-gpios = <&qcom_pinmux 16 GPIO_ACTIVE_LOW>;
			reg = <0x10>;

			ports {
				#address-cells = <1>;
				#size-cells = <0>;

				switch0cpu: port@0 {
					reg = <0>;
					label = "cpu";
					ethernet = <&gmac0>;
					phy-mode = "rgmii-id";
					fixed-link {
						speed = <1000>;
						full-duplex;
					};
				};

				port@1 {
					reg = <1>;
					label = "sw1";
				};

				port@2 {
					reg = <2>;
					label = "sw2";
				};

				port@3 {
					reg = <3>;
					label = "sw3";
				};

				port@4 {
					reg = <4>;
					label = "sw4";
				};

				port@5 {
					reg = <5>;
					label = "sw5";
				};
			};
		};
	};

	mdio1: mdio@1 {
		status = "okay";
		compatible = "virtual,mdio-gpio";
		gpios = <&qcom_pinmux 11 GPIO_ACTIVE_HIGH>,
			<&qcom_pinmux 10 GPIO_ACTIVE_HIGH>;
		#address-cells = <1>;
		#size-cells = <0>;

		pinctrl-0 = <&mdio1_pins>;
		pinctrl-names = "default";

		switch1: switch@14 {
			compatible = "qca,qca8337";
			#address-cells = <1>;
			#size-cells = <0>;

			dsa,member = <1 0>;

			pinctrl-0 = <&sw1_reset_pin>;
			pinctrl-names = "default";

			reset-gpios = <&qcom_pinmux 17 GPIO_ACTIVE_LOW>;
			reg = <0x10>;

			ports {
				#address-cells = <1>;
				#size-cells = <0>;

				switch1cpu: port@0 {
					reg = <0>;
					label = "cpu";
					ethernet = <&gmac3>;
					phy-mode = "sgmii";
					fixed-link {
						speed = <1000>;
						full-duplex;
					};
				};

				port@1 {
					reg = <1>;
					label = "sw6";
				};

				port@2 {
					reg = <2>;
					label = "sw7";
				};

				port@3 {
					reg = <3>;
					label = "sw8";
				};

				port@4 {
					reg = <4>;
					label = "sw9";
				};

				port@5 {
					reg = <5>;
					label = "sw10";
				};
			};
		};
	};

	soc {
		gsbi5: gsbi@1a200000 {
			qcom,mode = <GSBI_PROT_SPI>;
			status = "okay";

			spi4: spi@1a280000 {
				status = "okay";
				spi-max-frequency = <50000000>;

				pinctrl-0 = <&spi_pins>;
				pinctrl-names = "default";

				cs-gpios = <&qcom_pinmux 20 GPIO_ACTIVE_HIGH>;

				norflash: s25fl016k@0 {
					compatible = "jedec,spi-nor";
					#address-cells = <1>;
					#size-cells = <1>;
					spi-max-frequency = <50000000>;
					reg = <0>;

					partition@0 {
						label = "RouterBoot";
						reg = <0x0 0x40000>;
					};
				};
			};
		};

		gpio_keys {
			compatible = "gpio-keys";
			pinctrl-0 = <&buttons_pins>;
			pinctrl-names = "default";

			button@1 {
				label = "reset";
				linux,code = <KEY_RESTART>;
				gpios = <&qcom_pinmux 66 GPIO_ACTIVE_LOW>;
				linux,input-type = <1>;
				debounce-interval = <60>;
			};
		};

		leds {
			compatible = "gpio-leds";
			pinctrl-0 = <&leds_pins>;
			pinctrl-names = "default";

			led@7 {
				label = "rb3011:green:user";
				gpios = <&qcom_pinmux 33 GPIO_ACTIVE_HIGH>;
				default-state = "off";
			};
		};

	};
};

&adm_dma {
	status = "okay";
};

&gmac0 {
	status = "okay";

	phy-mode = "rgmii";
	qcom,id = <0>;
	phy-handle = <&switch0cpu>;

	fixed-link {
		speed = <1000>;
		full-duplex;
	};
};

&gmac3 {
	status = "okay";

	phy-mode = "sgmii";
	qcom,id = <3>;
	phy-handle = <&switch1cpu>;

	fixed-link {
		speed = <1000>;
		full-duplex;
	};
};

&gsbi7 {
	status = "okay";
	qcom,mode = <GSBI_PROT_I2C_UART>;
};

&gsbi7_serial {
	status = "okay";
};

&hs_phy_1 {
	status = "okay";
};

&nand {
	status = "okay";

	nandcs@0 {
		compatible = "qcom,nandcs";
		reg = <0>;

		nand-ecc-strength = <4>;
		nand-bus-width = <8>;
		nand-ecc-step-size = <512>;

		partitions {
			compatible = "fixed-partitions";
			#address-cells = <1>;
			#size-cells = <1>;

			boot@0 {
				label = "RouterBoard NAND 1 Boot";
				reg = <0x0000000 0x0800000>;
			};

			main@800000 {
				label = "RouterBoard NAND 1 Main";
				reg = <0x0800000 0x7800000>;
			};
		};
	};
};

&qcom_pinmux {
	buttons_pins: buttons_pins {
		mux {
			pins = "gpio66";
			drive-strength = <16>;
			bias-disable;
		};
	};

	leds_pins: leds_pins {
		mux {
			pins = "gpio33";
			drive-strength = <16>;
			bias-disable;
		};
	};

	mdio0_pins: mdio0_pins {
		mux {
			pins = "gpio0", "gpio1";
			function = "gpio";
			drive-strength = <8>;
			bias-disable;
		};
	};

	mdio1_pins: mdio1_pins {
		mux {
			pins = "gpio10", "gpio11";
			function = "gpio";
			drive-strength = <8>;
			bias-disable;
		};
	};

	sw0_reset_pin: sw0_reset_pin {
		mux {
			pins = "gpio16";
			drive-strength = <16>;
			function = "gpio";
			bias-disable;
			input-disable;
		};
	};

	sw1_reset_pin: sw1_reset_pin {
		mux {
			pins = "gpio17";
			drive-strength = <16>;
			function = "gpio";
			bias-disable;
			input-disable;
		};
	};

	usb1_pwr_en_pins: usb1_pwr_en_pins {
		mux {
			pins = "gpio4";
			function = "gpio";
			drive-strength = <16>;
			bias-disable;
			output-high;
		};
	};
};

&ss_phy_1 {
	status = "okay";
};

&usb3_1 {
	pinctrl-0 = <&usb1_pwr_en_pins>;
	pinctrl-names = "default";

	status = "okay";
};
