// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/*
 * Copyright (C) 2017 Rafał Miłecki <rafal@milecki.pl>
 */

/dts-v1/;

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

/ {
	compatible = "linksys,panamera", "brcm,bcm47094", "brcm,bcm4708";
	model = "Linksys EA9500";

	chosen {
		bootargs = "console=ttyS0,115200";
	};

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

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

	gpio-keys {
		compatible = "gpio-keys";

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

		button-rfkill {
				label = "WiFi";
				linux,code = <KEY_RFKILL>;
				gpios = <&chipcommon 16 GPIO_ACTIVE_LOW>;
		};

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

	leds {
		compatible = "gpio-leds";

		led-wps {
			label = "bcm53xx:white:wps";
			gpios = <&chipcommon 22 GPIO_ACTIVE_LOW>;
		};

		led-usb2 {
			label = "bcm53xx:green:usb2";
			gpios = <&chipcommon 1 GPIO_ACTIVE_LOW>;
			trigger-sources = <&ohci_port2>, <&ehci_port2>;
			linux,default-trigger = "usbport";
		};

		led-usb3 {
			label = "bcm53xx:green:usb3";
			gpios = <&chipcommon 2 GPIO_ACTIVE_LOW>;
			trigger-sources = <&ohci_port1>, <&ehci_port1>,
					  <&xhci_port1>;
			linux,default-trigger = "usbport";
		};

		led-power {
			label = "bcm53xx:white:power";
			gpios = <&chipcommon 4 GPIO_ACTIVE_HIGH>;
			linux,default-trigger = "default-on";
		};

		led-wifi-disabled {
			label = "bcm53xx:amber:wifi-disabled";
			gpios = <&chipcommon 0 GPIO_ACTIVE_LOW>;
		};

		led-wifi-enabled {
			label = "bcm53xx:white:wifi-enabled";
			gpios = <&chipcommon 5 GPIO_ACTIVE_HIGH>;
		};

		led-bluebar1 {
			label = "bcm53xx:white:bluebar1";
			gpios = <&chipcommon 11 GPIO_ACTIVE_HIGH>;
		};

		led-bluebar2 {
			label = "bcm53xx:white:bluebar2";
			gpios = <&chipcommon 12 GPIO_ACTIVE_HIGH>;
		};

		led-bluebar3 {
			label = "bcm53xx:white:bluebar3";
			gpios = <&chipcommon 15 GPIO_ACTIVE_LOW>;
		};

		led-bluebar4 {
			label = "bcm53xx:white:bluebar4";
			gpios = <&chipcommon 18 GPIO_ACTIVE_HIGH>;
		};

		led-bluebar5 {
			label = "bcm53xx:white:bluebar5";
			gpios = <&chipcommon 19 GPIO_ACTIVE_HIGH>;
		};

		led-bluebar6 {
			label = "bcm53xx:white:bluebar6";
			gpios = <&chipcommon 20 GPIO_ACTIVE_HIGH>;
		};

		led-bluebar7 {
			label = "bcm53xx:white:bluebar7";
			gpios = <&chipcommon 21 GPIO_ACTIVE_HIGH>;
		};

		led-bluebar8 {
			label = "bcm53xx:white:bluebar8";
			gpios = <&chipcommon 8 GPIO_ACTIVE_HIGH>;
		};
	};

	mdio-mux@18003000 {

		/* BIT(9) = 1 => external mdio */
		mdio@200 {
			reg = <0x200>;
			#address-cells = <1>;
			#size-cells = <0>;

			switch@0  {
				compatible = "brcm,bcm53125";
				#address-cells = <1>;
				#size-cells = <0>;
				reset-gpios = <&chipcommon 10 GPIO_ACTIVE_LOW>;
				reset-names = "robo_reset";
				reg = <0>;
				dsa,member = <1 0>;
				pinctrl-names = "default";
				pinctrl-0 = <&pinmux_mdio>;

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

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

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

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

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

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

					sw1_p8: port@8 {
						reg = <8>;
						ethernet = <&sw0_p0>;
						label = "cpu";

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

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

&usb3 {
	vcc-gpio = <&chipcommon 14 GPIO_ACTIVE_HIGH>;
};

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

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

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

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

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

		port@5 {
			reg = <5>;
			ethernet = <&gmac0>;
			label = "cpu";
			status = "disabled";

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

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

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

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

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

		sw0_p0: port@0 {
			reg = <0>;
			label = "extsw";

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

&usb3_phy {
	status = "okay";
};

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

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

		partition@80000 {
			label = "nvram";
			reg = <0x080000 0x0100000>;
		};

		partition@180000{
			label = "devinfo";
			reg = <0x0180000 0x080000>;
		};

		partition@200000 {
			reg = <0x0200000 0x01d00000>;
			compatible = "linksys,ns-firmware", "brcm,trx";
		};

		partition@1f00000 {
			reg = <0x01f00000 0x01d00000>;
			compatible = "linksys,ns-firmware", "brcm,trx";
		};

		partition@5200000 {
			label = "system";
			reg = <0x05200000 0x02e00000>;
		};
	};
};
