/*
 * Copyright (c) 2020, NXP
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/dts-v1/;

#include <nxp/nxp_rt1024.dtsi>

/ {
	model = "NXP MIMXRT1024-EVK board";
	compatible = "nxp,mimxrt1024";

	aliases {
		led0 = &green_led;
		sw0 = &user_button;
		watchdog0 = &wdog0;
	};

	chosen {
		zephyr,flash-controller = &flexspi;
		zephyr,flash = &is25wp032;
		zephyr,code-partition = &slot0_partition;
		zephyr,sram = &sdram0;
		zephyr,itcm = &itcm;
		zephyr,dtcm = &dtcm;
		zephyr,console = &lpuart1;
		zephyr,shell-uart = &lpuart1;
		zephyr,canbus = &flexcan1;
	};

	sdram0: memory@80000000 {
		/* ISSI IS42S16160J-6TLI */
		device_type = "memory";
		reg = <0x80000000 DT_SIZE_M(32)>;
	};

	leds {
		compatible = "gpio-leds";
		green_led: led-1 {
			gpios = <&gpio1 24 GPIO_ACTIVE_LOW>;
			label = "User LD1";
		};
	};

	gpio_keys {
		compatible = "gpio-keys";
		user_button: button-1 {
			label = "User SW4";
			gpios = <&gpio5 0 GPIO_ACTIVE_LOW>;
		};
	};
};

&is25wp032 {
	status = "okay";
	partitions {
		compatible = "fixed-partitions";
		#address-cells = <1>;
		#size-cells = <1>;

		boot_partition: partition@0 {
			label = "mcuboot";
			reg = <0x00000000 DT_SIZE_K(64)>;
		};

		slot0_partition: partition@10000 {
			label = "image-0";
			reg = <0x00010000 DT_SIZE_K(1984)>;
		};

		slot1_partition: partition@200000 {
			label = "image-1";
			reg = <0x00200000 DT_SIZE_K(1984)>;
		};

		scratch_partition: partition@3f0000 {
			label = "image-scratch";
			reg = <0x003f0000 DT_SIZE_K(64)>;
		};
	};
};

&enet {
	status = "okay";
	ptp {
		status = "okay";
	};
};

&lpuart1 {
	status = "okay";
	current-speed = <115200>;
};

&flexcan1 {
	status = "okay";
	bus-speed = <125000>;
};

&wdog0 {
	status = "okay";
};

&lpi2c4 {
	status = "okay";

	fxos8700: fxos8700@1f {
		compatible = "nxp,fxos8700";
		reg = <0x1f>;
		label = "FXOS8700";
	};
};

&edma0 {
	status = "okay";
};

&lpspi1 {
	status = "okay";
	/* DMA channels 0 and 1, muxed to LPSPI1 RX and TX */
	dmas = <&edma0 0 13>, <&edma0 1 14>;
	dma-names = "rx", "tx";
};

&adc1 {
	status = "okay";
};

/* Enable GPT for use as a hardware timer. This disables Cortex Systick.
 * to use systick, change this node from "gpt_hw_timer" to "systick"
 */
&gpt_hw_timer {
	status = "okay";
};
