// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/*
 * Broadcom BCM470X / BCM5301X ARM platform code.
 * DTS for D-Link DIR-885L
 *
 * Copyright (C) 2016 Rafał Miłecki <zajec5@gmail.com>
 */

/dts-v1/;

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

/ {
	compatible = "dlink,dir-885l", "brcm,bcm47094", "brcm,bcm4708";
	model = "D-Link DIR-885L";

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

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

	nvram@1e3f0000 {
		compatible = "brcm,nvram";
		reg = <0x1e3f0000 0x10000>;

		et2macaddr: et2macaddr {
			#nvmem-cell-cells = <1>;
		};
	};

	nand_controller: nand-controller@18028000 {
		nand@0 {
			partitions {
				compatible = "fixed-partitions";
				#address-cells = <1>;
				#size-cells = <1>;

				partition@0 {
					compatible = "seama";
					label = "firmware";
					reg = <0x00000000 0x08000000>;
				};
			};
		};
	};

	leds {
		compatible = "gpio-leds";

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

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

		led-power-amber {
			label = "bcm53xx:amber:power";
			gpios = <&chipcommon 2 GPIO_ACTIVE_LOW>;
		};

		led-wan-amber {
			label = "bcm53xx:amber:wan";
			gpios = <&chipcommon 3 GPIO_ACTIVE_LOW>;
		};

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

		led-2ghz {
			label = "bcm53xx:white:2ghz";
			gpios = <&chipcommon 13 GPIO_ACTIVE_LOW>;
		};

		led-5ghz {
			label = "bcm53xx:white:5ghz";
			gpios = <&chipcommon 14 GPIO_ACTIVE_LOW>;
		};
	};

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

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

		/* Switch: router / extender */
		button-extender {
			label = "Extender";
			linux,code = <BTN_0>;
			gpios = <&chipcommon 10 GPIO_ACTIVE_LOW>;
		};

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

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

&gmac0 {
	nvmem-cells = <&et2macaddr 0>;
	nvmem-cell-names = "mac-address";
};

&spi_nor {
	status = "okay";
};

&usb3_phy {
	status = "okay";
};

&srab {
	status = "okay";

	ports {
		port@0 {
			label = "lan4";
		};

		port@1 {
			label = "lan3";
		};

		port@2 {
			label = "lan2";
		};

		port@3 {
			label = "lan1";
		};

		port@4 {
			label = "wan";
			nvmem-cells = <&et2macaddr 3>;
			nvmem-cell-names = "mac-address";
		};

		port@5 {
			status = "disabled";
		};

		port@7 {
			status = "disabled";
		};

		port@8 {
			label = "cpu";
		};
	};
};
