/*
 * 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;
		kscan0 = &touch_controller;
	};

	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";
};

/* GPT and Systick are enabled. If power management is enabled, the GPT
 * timer will be used instead of systick, as allows the core clock to
 * be gated.
 */
&gpt_hw_timer {
	status = "okay";
};

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