// SPDX-License-Identifier: (GPL-2.0 OR MIT)
/*
 * Device Tree file for the Linksys WRT1900ACv2 (Cobra)
 *
 * Copyright (C) 2015 Imre Kaloz <kaloz@openwrt.org>
 */

/dts-v1/;
#include "armada-385-linksys.dtsi"

/ {
	model = "Linksys WRT1900ACv2";
	compatible = "linksys,cobra", "linksys,armada385", "marvell,armada385",
		     "marvell,armada380";
};

&expander0 {
	wan_amber@0 {
		label = "cobra:amber:wan";
		reg = <0x0>;
	};

	wan_white@1 {
		label = "cobra:white:wan";
		reg = <0x1>;
	};

	wlan_2g@2 {
		label = "cobra:white:wlan_2g";
		reg = <0x2>;
	};

	wlan_5g@3 {
		label = "cobra:white:wlan_5g";
		reg = <0x3>;
	};

	usb2@5 {
		label = "cobra:white:usb2";
		reg = <0x5>;
	};

	usb3_1@6 {
		label = "cobra:white:usb3_1";
		reg = <0x6>;
	};

	usb3_2@7 {
		label = "cobra:white:usb3_2";
		reg = <0x7>;
	};

	wps_white@8 {
		label = "cobra:white:wps";
		reg = <0x8>;
	};

	wps_amber@9 {
		label = "cobra:amber:wps";
		reg = <0x9>;
	};
};

&gpio_leds {
	led-power {
		label = "cobra:white:power";
	};

	led-sata {
		label = "cobra:white:sata";
	};
};

&nand {
	/* 128MiB */
	partitions {
		compatible = "fixed-partitions";
		#address-cells = <1>;
		#size-cells = <1>;

		partition@0 {
			label = "u-boot";
			reg = <0x0000000 0x200000>;  /* 2MiB */
			read-only;
		};

		partition@100000 {
			label = "u_env";
			reg = <0x200000 0x40000>;    /* 256KiB */
		};

		partition@140000 {
			label = "s_env";
			reg = <0x240000 0x40000>;    /* 256KiB */
		};

		partition@900000 {
			label = "devinfo";
			reg = <0x900000 0x100000>;   /* 1MiB */
			read-only;
		};

		/* kernel1 overlaps with rootfs1 by design */
		partition@a00000 {
			label = "kernel1";
			reg = <0xa00000 0x2800000>;  /* 40MiB */
		};

		partition@1000000 {
			label = "rootfs1";
			reg = <0x1000000 0x2200000>;  /* 34MiB */
		};

		/* kernel2 overlaps with rootfs2 by design */
		partition@3200000 {
			label = "kernel2";
			reg = <0x3200000 0x2800000>; /* 40MiB */
		};

		partition@3800000 {
			label = "rootfs2";
			reg = <0x3800000 0x2200000>; /* 34MiB */
		};

		/*
		 * 38MiB, last MiB is for the BBT, not writable
		 */
		partition@5a00000 {
			label = "syscfg";
			reg = <0x5a00000 0x2600000>;
		};

		/*
		 * Unused area between "s_env" and "devinfo".
		 * Moved here because otherwise the renumbered
		 * partitions would break the bootloader
		 * supplied bootargs
		 */
		partition@180000 {
			label = "unused_area";
			reg = <0x280000 0x680000>;   /* 6.5MiB */
		};
	};
};
