// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
// Copyright (c) 2021 Cezary Jackiewicz
// Copyright (c) 2021, 2022 Lech Perczak
#include "qca9563_zte_mf286.dtsi"

/ {
	model = "ZTE MF286";
	compatible = "zte,mf286", "qca,qca9563";

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

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

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

&led_debug {
	/* Hidden green 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_GREEN>;
	label = "green:debug";
};

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

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

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

		partition@140000 {
			label = "caldata";
			reg = <0x140000 0x140000>;
			read-only;

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

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

			cal_caldata_5000: cal@5000 {
				reg = <0x5000 0x844>;
			};
		};

		partition@280000 {
			label = "mac";
			reg = <0x280000 0x140000>;
			read-only;

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

			macaddr_mac_0: macaddr@0 {
				reg = <0x0 0x6>;
			};
		};

		/* This encompasses stock cfg-param, oops, web partitions,
		 * which can be overwritten safely
		 */
		ubiconcat0: partition@3c0000 {
			label = "ubiconcat0";
			reg = <0x3c0000 0xf40000>;
		};

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

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

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

&wifi_ath10k {
	nvmem-cells = <&macaddr_mac_0>, <&cal_caldata_5000>, <&cal_caldata_5000>;
	nvmem-cell-names = "mac-address", "calibration", "pre-calibration";
	mac-address-increment = <1>;
};

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