// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/*
 * Copyright (C) 2021 Arınç ÜNAL <arinc.unal@arinc9.com>
 */

/dts-v1/;

#include "bcm47094.dtsi"
#include "bcm5301x-nand-cs0-bch8.dtsi"

/ {
	compatible = "asus,rt-ac88u", "brcm,bcm47094", "brcm,bcm4708";
	model = "Asus RT-AC88U";

	chosen {
		bootargs = "earlycon";
	};

	memory@0 {
		device_type = "memory";
		reg = <0x00000000 0x08000000>,
		      <0x88000000 0x18000000>;
	};

	nvram@1c080000 {
		compatible = "brcm,nvram";
		reg = <0x1c080000 0x00180000>;
	};

	leds {
		compatible = "gpio-leds";

		power {
			label = "white:power";
			gpios = <&chipcommon 3 GPIO_ACTIVE_LOW>;
			linux,default-trigger = "default-on";
		};

		wan-red {
			label = "red:wan";
			gpios = <&chipcommon 5 GPIO_ACTIVE_HIGH>;
		};

		lan {
			label = "white:lan";
			gpios = <&chipcommon 21 GPIO_ACTIVE_LOW>;
		};

		usb2 {
			label = "white:usb2";
			gpios = <&chipcommon 16 GPIO_ACTIVE_LOW>;
			trigger-sources = <&ehci_port2>;
			linux,default-trigger = "usbport";
		};

		usb3 {
			label = "white:usb3";
			gpios = <&chipcommon 17 GPIO_ACTIVE_LOW>;
			trigger-sources = <&ehci_port1>, <&xhci_port1>;
			linux,default-trigger = "usbport";
		};

		wps {
			label = "white:wps";
			gpios = <&chipcommon 19 GPIO_ACTIVE_LOW>;
		};
	};

	gpio-keys {
		compatible = "gpio-keys";
		#address-cells = <1>;
		#size-cells = <0>;

		wps {
			label = "WPS";
			linux,code = <KEY_WPS_BUTTON>;
			gpios = <&chipcommon 20 GPIO_ACTIVE_LOW>;
		};

		reset {
			label = "Reset";
			linux,code = <KEY_RESTART>;
			gpios = <&chipcommon 11 GPIO_ACTIVE_LOW>;
		};

		wifi {
			label = "Wi-Fi";
			linux,code = <KEY_RFKILL>;
			gpios = <&chipcommon 18 GPIO_ACTIVE_LOW>;
		};

		led {
			label = "Backlight";
			linux,code = <KEY_BRIGHTNESS_ZERO>;
			gpios = <&chipcommon 4 GPIO_ACTIVE_LOW>;
		};
	};
};

&srab {
	compatible = "brcm,bcm53012-srab", "brcm,bcm5301x-srab";
	status = "okay";
	dsa,member = <0 0>;

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

		port@0 {
			reg = <0>;
			label = "lan4";
		};

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

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

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

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

		sw0_p5: port@5 {
			reg = <5>;
			label = "extsw";

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

		port@7 {
			reg = <7>;
			ethernet = <&gmac1>;
			label = "cpu";

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

		port@8 {
			reg = <8>;
			ethernet = <&gmac2>;
			label = "cpu";
			status = "disabled";

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

&usb2 {
	vcc-gpio = <&chipcommon 9 GPIO_ACTIVE_HIGH>;
};

&usb3_phy {
	status = "okay";
};

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

		partition@0 {
			label = "boot";
			reg = <0x00000000 0x00080000>;
			read-only;
		};

		partition@80000 {
			label = "nvram";
			reg = <0x00080000 0x00180000>;
		};

		partition@200000 {
			label = "firmware";
			reg = <0x00200000 0x07e00000>;
			compatible = "brcm,trx";
		};
	};
};
