// 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"

/ {
	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>;
	function = LED_FUNCTION_DEBUG;
	color = <LED_COLOR_ID_GREEN>;
};

&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;

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

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

				/* ath10k wave1 in plain MF286 */
				cal_caldata_5000: cal@5000 {
					reg = <0x5000 0x844>;
				};

				/* ath10k wave2 in early MF286A */
				precal_caldata_5000: precal@5000 {
					reg = <0x5000 0x2f20>;
				};
			};
		};

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

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

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

		/* 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 0>;
	nvmem-cell-names = "mac-address";
};

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

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