// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
// Copyright (c) 2021 Cezary Jackiewicz

#include <dt-bindings/leds/common.h>
// Copyright (c) 2021, 2022 Lech Perczak
#include "qca9563_zte_mf286.dtsi"

/ {
	ubi-concat {
		compatible = "mtd-concat";
		devices = <&ubiconcat0 &ubiconcat1>;

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

			partition@0 {
				reg = <0x0 0x7a60000>;
				label = "ubi";
			};
		};
	};
};

&led_debug {
	/* Hidden blue SMD LED below signal strength LEDs
	 * Visible through slits underside of the case,
	 * and slightly through the case below signal state LEDs
	 */
	color = <LED_COLOR_ID_BLUE>;
	function = LED_FUNCTION_DEBUG;
	color = <LED_COLOR_ID_BLUE>;
};

&boot_flash {
	partitions {
		partition@0 {
			label = "u-boot";
			reg = <0x000000 0x0a0000>;
			read-only;
		};

		partition@a0000 {
			label = "u-boot-env";
			reg = <0x0a0000 0x020000>;
			read-only;
		};

		partition@c0000 {
			label = "reserved1";
			reg = <0x0c0000 0x140000>;
			read-only;
		};
	};
};

&system_flash {
	partitions {
		partition@0 {
			label = "fota-flag";
			reg = <0x00000 0xa0000>;
			read-only;
		};

		partition@a0000 {
			label = "art";
			reg = <0xa0000 0x80000>;
			read-only;

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

				cal_art_1000: cal@1000 {
					reg = <0x1000 0x440>;
				};

				precal_art_5000: precal@5000 {
					reg = <0x5000 0x2f20>;
				};
			};
		};

		partition@120000 {
			label = "mac";
			reg = <0x120000 0x80000>;
			read-only;

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

				macaddr_mac_0: mac-address@0 {
					compatible = "mac-base";
					reg = <0x0 0x6>;
					#nvmem-cell-cells = <1>;
				};
			};
		};

		/* This encompasses stock reserved2, cfg-param, log, oops,
		 * reserved3, web partitions,
		 * which can be overwritten safely
		 */
		ubiconcat0: partition@1a0000 {
			label = "ubiconcat0";
			reg = <0x1a0000 0x1660000>;
		};

		/* Kernel MTD size is increased to 4MB from stock 3MB */
		partition@1800000 {
			label = "kernel";
			reg = <0x1800000 0x400000>;
		};

		/* This encompasses stock rootfs, data, fota partitions,
		 * which can be overwritten safely
		 */
		ubiconcat1: partition@1c00000 {
			label = "ubiconcat1";
			reg = <0x1c00000 0x6400000>;
		};
	};
};

&eth0 {
	nvmem-cells = <&macaddr_mac_0 0>;
	nvmem-cell-names = "mac-address";
};

&wifi_ath10k {
	nvmem-cells = <&macaddr_mac_0 0x20000>, <&precal_art_5000>;
	nvmem-cell-names = "mac-address", "pre-calibration";
};

&wmac {
	nvmem-cells = <&macaddr_mac_0 0>, <&cal_art_1000>;
	nvmem-cell-names = "mac-address", "calibration";
};