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

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

/ {
	model = "Linksys WRT1900ACS";
	compatible = "linksys,shelby", "linksys,armada385", "marvell,armada385",
		     "marvell,armada380";
};

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

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

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

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

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

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

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

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

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

&gpio_leds {
	power {
		label = "shelby:white:power";
	};

	sata {
		label = "shelby:white:sata";
	};
};

&nand {
	/* 128MiB */

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