// 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>;
	};

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

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

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

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

	leds {
		compatible = "gpio-leds";

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

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

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

		power {
			label = "bcm53xx:white:power";
			gpios = <&chipcommon 4 GPIO_ACTIVE_HIGH>;
		};

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

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

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

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

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

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

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

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

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

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

	mdio-bus-mux {
		#address-cells = <1>;
		#size-cells = <0>;

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

	mdio-mii-mux {
		compatible = "mdio-mux-mmioreg";
		mdio-parent-bus = <&mdio_ext>;
		#address-cells = <1>;
		#size-cells = <0>;
		reg = <0x1800c1c0 0x4>;

		/* BIT(6) = mdc, BIT(7) = mdio */
		mux-mask = <0xc0>;

		mdio-mii@0 {
			/* Enable MII function */
			reg = <0x0>;
			#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>;

				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 {
		#address-cells = <1>;
		#size-cells = <0>;

		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@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";
};
