// SPDX-License-Identifier: GPL-2.0+
/*
 * Copyright (C) 2019 Kontron Electronics GmbH
 */

#include "imx8mm-u-boot.dtsi"

/ {
	aliases {
		usb0 = &usbotg1;
		usb1 = &usbotg2;
	};

	binman: binman {
		multiple-images;
	};

	wdt-reboot {
		compatible = "wdt-reboot";
		wdt = <&wdog1>;
		u-boot,dm-spl;
	};

	firmware {
		optee {
			compatible = "linaro,optee-tz";
			method = "smc";
		};
	};
};

&fec1 {
	phy-mode = "rgmii-rxid";
};

&i2c1 {
	u-boot,dm-spl;
	u-boot,dm-pre-reloc;
};

&i2c2 {
	status = "okay";
	u-boot,dm-spl;
	u-boot,dm-pre-reloc;
};

&pinctrl_ecspi1 {
	u-boot,dm-spl;
};

&pinctrl_i2c1 {
	u-boot,dm-spl;
};

&pinctrl_pmic {
	u-boot,dm-spl;
	fsl,pins = <
		MX8MM_IOMUXC_GPIO1_IO00_GPIO1_IO0		0x141
		/* Disable Pullup for SD_VSEL */
		MX8MM_IOMUXC_GPIO1_IO04_GPIO1_IO4		0x41
	>;
};

&pinctrl_uart3 {
	u-boot,dm-spl;
	u-boot,dm-pre-reloc;
};

&pinctrl_usdhc1 {
	u-boot,dm-spl;
};

&pinctrl_usdhc1_100mhz {
	u-boot,dm-spl;
};

&pinctrl_usdhc1_200mhz {
	u-boot,dm-spl;
};

&pinctrl_usdhc2 {
	u-boot,dm-spl;
};

&pca9450 {
	u-boot,dm-spl;
};

&{/soc@0/bus@30800000/i2c@30a20000/pmic@25/regulators} {
	u-boot,dm-spl;
};

&ecspi1 {
	u-boot,dm-spl;
};

&gpio1 {
	u-boot,dm-spl;
};

&gpio2 {
	u-boot,dm-spl;
};

&gpio3 {
	u-boot,dm-spl;
};

&gpio4 {
	u-boot,dm-spl;
};

&gpio5 {
	u-boot,dm-spl;
};

&uart3 {
	u-boot,dm-spl;
	u-boot,dm-pre-reloc;
};

&usdhc1 {
	u-boot,dm-spl;
};

&usdhc2 {
	u-boot,dm-spl;
};

&wdog1 {
	u-boot,dm-spl;
};

&binman {
	u-boot-spl-ddr {
		filename = "u-boot-spl-ddr.bin";
		pad-byte = <0xff>;
		align-size = <4>;
		align = <4>;

		u-boot-spl {
			align-end = <4>;
		};

		blob_1: blob-ext@1 {
			filename = "lpddr4_pmu_train_1d_imem.bin";
			size = <0x8000>;
		};

		blob_2: blob-ext@2 {
			filename = "lpddr4_pmu_train_1d_dmem.bin";
			size = <0x4000>;
		};

		blob_3: blob-ext@3 {
			filename = "lpddr4_pmu_train_2d_imem.bin";
			size = <0x8000>;
		};

		blob_4: blob-ext@4 {
			filename = "lpddr4_pmu_train_2d_dmem.bin";
			size = <0x4000>;
		};
	};

	spl {
		filename = "spl.bin";

		mkimage {
			args = "-n spl/u-boot-spl.cfgout -T imx8mimage -e 0x7e1000";

			blob {
				filename = "u-boot-spl-ddr.bin";
			};
		};
	};

	itb {
		filename = "u-boot.itb";

		fit {
			description = "Configuration to load ATF before U-Boot";
			#address-cells = <1>;
			fit,external-offset = <CONFIG_FIT_EXTERNAL_OFFSET>;

			images {
				uboot {
					description = "U-Boot (64-bit)";
					type = "standalone";
					arch = "arm64";
					compression = "none";
					load = <CONFIG_SYS_TEXT_BASE>;

					uboot_blob: blob-ext {
						filename = "u-boot-nodtb.bin";
					};
				};

				atf {
					description = "ARM Trusted Firmware";
					type = "firmware";
					arch = "arm64";
					compression = "none";
					load = <0x920000>;
					entry = <0x920000>;

					atf_blob: blob-ext {
						filename = "bl31.bin";
					};
				};

				fdt {
					description = "NAME";
					type = "flat_dt";
					compression = "none";

					uboot_fdt_blob: blob-ext {
						filename = "u-boot.dtb";
					};
				};
			};

			configurations {
				default = "conf";

				conf {
					description = "NAME";
					firmware = "uboot";
					loadables = "atf";
					fdt = "fdt";
				};
			};
		};
	};

	imx-boot {
		filename = "flash.bin";
		pad-byte = <0x00>;

		spl: blob-ext@1 {
			offset = <0x0>;
			filename = "spl.bin";
		};

		uboot: blob-ext@2 {
			offset = <0x57c00>;
			filename = "u-boot.itb";
		};
	};

	u-boot-update {
		filename = "firmware-update.itb";

		fit {
			description = "Configuration for firmware update file";

			images {
				flash-bin {
					description = "U-Boot flash image";
					type = "firmware";
					os = "u-boot";
					arch = "arm";
					compress = "none";
					load = <0>; /* unused */

					blob {
						filename = "flash.bin";
					};

				};
			};
		};
	};
};
