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

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

#include <dt-bindings/leds/common.h>

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

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

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

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

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

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

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

	leds {
		compatible = "gpio-leds";

		led-lan {
			color = <LED_COLOR_ID_WHITE>;
			function = LED_FUNCTION_LAN;
			gpios = <&chipcommon 21 GPIO_ACTIVE_LOW>;
		};

		led-power {
			color = <LED_COLOR_ID_WHITE>;
			function = LED_FUNCTION_POWER;
			gpios = <&chipcommon 3 GPIO_ACTIVE_LOW>;
			linux,default-trigger = "default-on";
		};

		led-usb2 {
			color = <LED_COLOR_ID_WHITE>;
			function = LED_FUNCTION_USB;
			function-enumerator = <1>;
			gpios = <&chipcommon 16 GPIO_ACTIVE_LOW>;
			trigger-sources = <&ehci_port2>;
			linux,default-trigger = "usbport";
		};

		led-usb3 {
			color = <LED_COLOR_ID_WHITE>;
			function = LED_FUNCTION_USB;
			function-enumerator = <2>;
			gpios = <&chipcommon 17 GPIO_ACTIVE_LOW>;
			trigger-sources = <&ehci_port1>, <&xhci_port1>;
			linux,default-trigger = "usbport";
		};

		led-wan-red {
			color = <LED_COLOR_ID_RED>;
			function = LED_FUNCTION_WAN;
			gpios = <&chipcommon 5 GPIO_ACTIVE_HIGH>;
		};

		led-wps {
			color = <LED_COLOR_ID_WHITE>;
			function = LED_FUNCTION_WPS;
			gpios = <&chipcommon 19 GPIO_ACTIVE_LOW>;
		};
	};
};

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

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

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

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

&srab {
	status = "okay";

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

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

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

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

		port@4 {
			label = "wan";
		};

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

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

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

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

&usb3_phy {
	status = "okay";
};
