// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
// Copyright (c) 2021 Cezary Jackiewicz
// Copyright (c) 2021, 2022 Lech Perczak
// Copyright (c) 2022 David Bauer <mail@david-bauer.net>
// Copyright (c) 2023 Andreas Böhler <dev@aboehler.at>

#include "qca9563_zte_mf28x.dtsi"

/ {
	model = "ZTE MF282";
	compatible = "zte,mf282", "qca,qca9563";

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

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

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

&led_debug {
	color = <LED_COLOR_ID_BLUE>;
};

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

		partition@80000 {
			label = "u-boot-env";
			reg = <0x80000 0x20000>;
			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>;

				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;

			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 8MB from stock 3MB */
		partition@1300000 {
			label = "kernel";
			reg = <0x1300000 0x800000>;
		};

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

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

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

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