/*
 * Copyright 2023 NXP
 *
 * SPDX-License-Identifier: Apache-2.0
 */

#include "mimxrt1170_evk_cm7.dts"

/ {
	chosen {
		zephyr,flash = &w25q512nw;
		/delete-property/ zephyr,flash-controller;
		/delete-property/ zephyr,code-partition;
	};

	aliases {
		/delete-property/ magn0;
		/delete-property/ accel0;
	};
};

&flexspi {
	/* RT1170 EVKB uses a different QSPI flash chip */
	/delete-node/ is25wp128@0;
	status = "okay";
	reg = <0x400cc000 0x4000>, <0x30000000 DT_SIZE_M(64)>;
	w25q512nw:w25q512nw@0 {
		/* IS25WP128 flash chip not currently enabled */
		compatible = "nxp,imx-flexspi-nor";
		size = <DT_SIZE_M(512)>;
		reg = <0>;
		spi-max-frequency = <133000000>;
		status = "okay";
		jedec-id = [ef 60 20];
		erase-block-size = <4096>;
		write-block-size = <1>;

		/*
		 * Partitions are present to support dual core operation.
		 * as flash write is not supported, MCUBoot is not enabled.
		 */
		partitions {
			compatible = "fixed-partitions";
			#address-cells = <1>;
			#size-cells = <1>;

			boot_partition: partition@0 {
				label = "mcuboot";
				reg = <0x00000000 DT_SIZE_K(128)>;
			};
			/* Note slot 0 has one additional sector,
			 * this is intended for use with the swap move algorithm
			 */
			slot0_partition: partition@20000 {
				label = "image-0";
				reg = <0x00020000 0x301000>;
			};
			slot1_partition: partition@321000 {
				label = "image-1";
				reg = <0x00321000 0x300000>;
			};
			storage_partition: partition@621000 {
				label = "storage";
				reg = <0x00621000 DT_SIZE_K(1984)>;
			};
		};
	};
};

&lpi2c5 {
	/* FXOS accelerometer is not present in this board */
	/delete-node/ fxos8700@1f;
};

/* Disable ethernet, as PHY is not supported */
&enet {
	status = "disabled";
};
