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

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

/ {
	model = "Linksys WRT1200AC";
	compatible = "linksys,caiman", "linksys,armada385", "marvell,armada385",
		     "marvell,armada380";
};

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

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

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

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

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

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

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

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

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

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

	led-sata {
		label = "caiman: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 */
		};
	};
};
