// SPDX-License-Identifier: GPL-2.0-or-later OR MIT

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

#include "bcm4906.dtsi"

/ {
	compatible = "netgear,r8000p", "brcm,bcm4906", "brcm,bcm4908", "brcm,bcmbca";
	model = "Netgear R8000P";

	memory@0 {
		device_type = "memory";
		reg = <0x00 0x00 0x00 0x20000000>;
	};

	leds {
		compatible = "gpio-leds";

		led-power-white {
			function = LED_FUNCTION_POWER;
			color = <LED_COLOR_ID_WHITE>;
			gpios = <&gpio0 8 GPIO_ACTIVE_LOW>;
		};

		led-power-amber {
			function = LED_FUNCTION_POWER;
			color = <LED_COLOR_ID_AMBER>;
			gpios = <&gpio0 9 GPIO_ACTIVE_LOW>;
		};

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

		led-2ghz {
			function = "2ghz";
			color = <LED_COLOR_ID_WHITE>;
			gpios = <&gpio0 14 GPIO_ACTIVE_LOW>;
		};

		led-5ghz-1 {
			function = "5ghz-1";
			color = <LED_COLOR_ID_WHITE>;
			gpios = <&gpio0 15 GPIO_ACTIVE_LOW>;
		};

		led-5ghz-2 {
			function = "5ghz-2";
			color = <LED_COLOR_ID_WHITE>;
			gpios = <&gpio0 16 GPIO_ACTIVE_LOW>;
		};

		led-usb2 {
			function = "usb2";
			color = <LED_COLOR_ID_WHITE>;
			gpios = <&gpio0 17 GPIO_ACTIVE_LOW>;
			trigger-sources = <&ohci_port1>, <&ehci_port1>;
			linux,default-trigger = "usbport";
		};

		led-usb3 {
			function = "usb3";
			color = <LED_COLOR_ID_WHITE>;
			gpios = <&gpio0 18 GPIO_ACTIVE_LOW>;
			trigger-sources = <&ohci_port2>, <&ehci_port2>, <&xhci_port2>;
			linux,default-trigger = "usbport";
		};

		led-wifi {
			function = "wifi";
			color = <LED_COLOR_ID_WHITE>;
			gpios = <&gpio0 56 GPIO_ACTIVE_LOW>;
		};
	};
};

&enet {
	nvmem-cells = <&base_mac_addr>;
	nvmem-cell-names = "mac-address";
};

&usb_phy {
	brcm,ioc = <1>;
	status = "okay";
};

&ehci {
	status = "okay";
};

&ohci {
	status = "okay";
};

&xhci {
	status = "okay";
};

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

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

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

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

	port@7 {
		reg = <7>;
		phy-mode = "internal";
		phy-handle = <&phy12>;
		label = "wan";
	};
};

&nand_controller {
	brcm,wp-not-connected;
	status = "okay";
};

&nandcs {
	nand-ecc-strength = <4>;
	nand-ecc-step-size = <512>;
	nand-on-flash-bbt;

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

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

		partition@0 {
			compatible = "nvmem-cells";
			label = "cferom";
			reg = <0x0 0x100000>;

			#address-cells = <1>;
			#size-cells = <1>;
			ranges = <0 0x0 0x100000>;

			base_mac_addr: mac@106a0 {
				reg = <0x106a0 0x6>;
			};
		};

		partition@100000 {
			compatible = "brcm,bcm4908-firmware";
			label = "firmware";
			reg = <0x100000 0x4400000>;
		};
	};
};
