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