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

/dts-v1/;

#include <nxp/nxp_rt11xx_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;
		zephyr,keyboard-scan = &touch_controller;
		zephyr,cpu1-region = &ocram;
		zephyr,ipc = &mailbox_a;
	};

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

	en_mipi_display: enable-mipi-display {
		compatible = "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";
};

&lpi2c5 {
	status = "okay";
	pinctrl-0 = <&pinmux_lpi2c5>;
	pinctrl-names = "default";

	touch_controller: gt911@5d {
		compatible = "goodix,gt911";
		reg = <0x5d>;
		irq-gpios = <&gpio2 31 GPIO_ACTIVE_HIGH>;
		reset-gpios = <&gpio9 0  GPIO_ACTIVE_HIGH>;
	};
};

&lpadc0 {
	status = "okay";
};

&usdhc1 {
	status = "okay";
	detect-dat3;
	pwr-gpios = <&gpio10 2 GPIO_ACTIVE_LOW>;
	sdmmc {
		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";
};

&mailbox_a {
	status = "okay";
};
