/*
 * Copyright 2021-22, NXP
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/dts-v1/;

#include <nxp/nxp_rt1170_cm7.dtsi>
#include "mimxrt1170_evk.dtsi"

/ {
	model = "NXP MIMXRT1170-EVK board";
	compatible = "nxp,mimxrt1176";

	aliases {
		mipi-dsi = &mipi_dsi;
		watchdog0 = &wdog1;
	};

	chosen {
		zephyr,sram = &sdram0;
		zephyr,dtcm = &dtcm;
		zephyr,itcm = &itcm;
		zephyr,console = &lpuart1;
		zephyr,shell-uart = &lpuart1;
		zephyr,canbus = &flexcan3;
		zephyr,flash-controller = &is25wp128;
		zephyr,flash = &is25wp128;
		zephyr,code-partition = &slot0_partition;
		zephyr,display = &lcdif;
	};

	sdram0: memory@80000000 {
		/* Winbond W9825G6KH-5I */
		device_type = "memory";
		reg = <0x80000000 DT_SIZE_M(64)>;
	};

	en_mipi_display: enable-mipi-display {
		compatible = "regulator-fixed-sync", "regulator-fixed";
		regulator-name = "en_mipi_display";
		enable-gpios = <&gpio11 16 GPIO_ACTIVE_HIGH>;
		regulator-boot-on;
	};
};

&lcdif {
	status = "okay";
	width = <720>;
	height = <1280>;
	hsync = <8>;
	hfp = <32>;
	hbp = <32>;
	vsync = <2>;
	vfp = <16>;
	vbp = <14>;
	polarity = <3>;
	pixel-format = "bgr-565";
	data-buswidth = "24-bit";
	backlight-gpios = <&gpio9 29 GPIO_ACTIVE_HIGH>;
};

&mipi_dsi {
	status = "okay";
	nxp,lcdif = <&lcdif>;
	dpi-color-coding = "24-bit";
	dpi-pixel-packet = "24-bit";
	dpi-video-mode = "burst";
	dpi-bllp-mode = "low-power";
	autoinsert-eotp;
	dphy-ref-frequency = <24000000>;

	rm68200@0 {
		status = "okay";
		compatible = "raydium,rm68200";
		reg = <0x0>;
		reset-gpios = <&gpio9 1 GPIO_ACTIVE_HIGH>;
		data-lanes = <2>;
		width = <720>;
		height = <1280>;
		pixel-format = <MIPI_DSI_PIXFMT_RGB565>;
	};
};

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

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

	can-transceiver {
		max-bitrate = <5000000>;
	};
};

&lpspi1 {
	status = "okay";
};

&lpi2c1 {
	status = "okay";
};

&flexspi {
	status = "okay";
	ahb-prefetch;
	ahb-read-addr-opt;
	rx-clock-source = <1>;
	reg = <0x400cc000 0x4000>, <0x30000000 DT_SIZE_M(16)>;
	is25wp128: is25wp128@0 {
		compatible = "nxp,imx-flexspi-nor";
		size = <134217728>;
		reg = <0>;
		spi-max-frequency = <133000000>;
		status = "okay";
		jedec-id = [9d 70 17];
		erase-block-size = <4096>;
		write-block-size = <1>;

		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>;
			};
			scratch_partition: partition@621000 {
				label = "image-scratch";
				reg = <0x00621000 DT_SIZE_K(128)>;
			};
			storage_partition: partition@641000 {
				label = "storage";
				reg = <0x00641000 DT_SIZE_K(1856)>;
			};
		};
	};
};

&lpadc0 {
	status = "okay";
};

&usdhc1 {
	status = "okay";
	detect-dat3;
	pwr-gpios = <&gpio10 2 GPIO_ACTIVE_LOW>;
	mmc {
		compatible = "zephyr,sdmmc-disk";
		status = "okay";
	};
};

&edma0 {
	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";
};

&wdog1 {
	status = "okay";
};

&enet {
	status = "okay";
	int-gpios = <&gpio9 11 GPIO_ACTIVE_HIGH>;
	reset-gpios = <&gpio12 12 GPIO_ACTIVE_HIGH>;
	ptp {
		status = "okay";
	};
};

&sai1 {
	status = "okay";
};

zephyr_udc0: &usb1 {
	status = "okay";
};
