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

/dts-v1/;

#include <nxp/nxp_rt.dtsi>

/ {
	model = "NXP MIMXRT1050-EVK board";
	compatible = "nxp,mimxrt1052";

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

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

	sdram0: memory@80000000 {
		/* Micron MT48LC16M16A2B4-6AIT:G */
		device_type = "memory";
		reg = <0x80000000 DT_SIZE_M(32)>;
	};

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

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

	arduino_header: connector {
		compatible = "arduino-header-r3";
		#gpio-cells = <2>;
		gpio-map-mask = <0xffffffff 0xffffffc0>;
		gpio-map-pass-thru = <0 0x3f>;
		gpio-map = <0 0 &gpio1 26 0>,	/* A0 */
			   <1 0 &gpio1 27 0>,	/* A1 */
			   <2 0 &gpio1 20 0>,	/* A2 */
			   <3 0 &gpio1 21 0>,	/* A3 */
			   <4 0 &gpio1 17 0>,	/* A4 */
			   <5 0 &gpio1 16 0>,	/* A5 */
			   <6 0 &gpio1 23 0>,	/* D0 */
			   <7 0 &gpio1 22 0>,	/* D1 */
			   <8 0 &gpio1 11 0>,	/* D2 */
			   <9 0 &gpio1 24 0>,	/* D3 */
			   <10 0 &gpio1 9 0>,	/* D4 */
			   <11 0 &gpio1 10 0>,	/* D5 */
			   <12 0 &gpio1 18 0>,	/* D6 */
			   <13 0 &gpio1 19 0>,	/* D7 */
			   <14 0 &gpio1 3 0>,	/* D8 */
			   <15 0 &gpio1 2 0>,	/* D9 */
			   <16 0 &gpio3 13 0>,	/* D10 */
			   <17 0 &gpio3 14 0>,	/* D11 */
			   <18 0 &gpio3 15 0>,	/* D12 */
			   <19 0 &gpio3 12 0>,	/* D13 */
			   <20 0 &gpio1 1 0>,	/* D14 */
			   <21 0 &gpio1 0 0>;	/* D15 */
	};

	panel {
		compatible = "rocktech,rk043fn02h-ct";
		port {
			lcd_panel_in: endpoint {
				remote-endpoint = <&lcd_panel_out>;
			};
		};
	};
};

arduino_serial: &lpuart3 {};

&adc1 {
	status = "okay";
};

&flexspi {
	status = "okay";
	ahb-prefetch;
	ahb-read-addr-opt;
	ahb-bufferable;
	ahb-cacheable;
	sck-differential-clock;
	combination-mode;
	rx-clock-source = <3>;
	reg = <0x402a8000 0x4000>, <0x60000000 DT_SIZE_M(64)>;
	s26ks512s0: s26ks512s@0 {
		compatible = "nxp,imx-flexspi-hyperflash";
		size = <DT_SIZE_M(64*8)>;
		label = "S26KS512S";
		reg = <0>;
		spi-max-frequency = <166000000>;
		word-addressable;
		cs-interval-unit = <1>;
		cs-interval = <2>;
		cs-hold-time = <0>;
		cs-setup-time = <3>;
		data-valid-time = <1>;
		column-space = <3>;
		ahb-write-wait-unit = <2>;
		ahb-write-wait-interval = <20>;
		status = "okay";

		partitions {
			compatible = "fixed-partitions";
			#address-cells = <1>;
			#size-cells = <1>;

			boot_partition: partition@0 {
				label = "mcuboot";
				reg = <0x00000000 DT_SIZE_K(256)>;
			};
			slot0_partition: partition@40000 {
				label = "image-0";
				reg = <0x00040000 DT_SIZE_M(3)>;
			};
			slot1_partition: partition@340000 {
				label = "image-1";
				reg = <0x00340000 DT_SIZE_M(3)>;
			};
			scratch_partition: partition@640000 {
				label = "image-scratch";
				reg = <0x00640000 DT_SIZE_K(768)>;
			};
			storage_partition: partition@700000 {
				label = "storage";
				reg = <0x00700000 DT_SIZE_M(57)>;
			};
		};
	};
};

&lcdif {
	status = "okay";
	port {
		lcd_panel_out: endpoint {
			remote-endpoint = <&lcd_panel_in>;
		};
	};
};

&lpi2c1 {
	status = "okay";

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

		/* Two zero ohm resistors (R263 and R264) isolate sensor
		 * interrupt gpios from the soc and are unpopulated by default.
		 * Note that if you populate them, they conflict with LCD and
		 * Ethernet interrupt gpios.
		 */
		int1-gpios = <&gpio1 10 GPIO_ACTIVE_LOW>;
		int2-gpios = <&gpio1 11 GPIO_ACTIVE_LOW>;
	};

	touch_controller: ft5336@38 {
		compatible = "focaltech,ft5336";
		reg = <0x38>;
		label = "FT5336";
		int-gpios = <&gpio1 11 GPIO_ACTIVE_LOW>;
	};
};

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

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

&lpspi3 {
	status = "okay";
	/* DMA channels 2 and 3, muxed to LPSPI3 RX and TX */
	dmas = <&edma0 2 15>, <&edma0 3 16>;
	dma-names = "rx", "tx";
};

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

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

&usdhc1 {
	status = "okay";
	no-1-8-v;
	pwr-gpios = <&gpio1 5 GPIO_ACTIVE_HIGH>;
	cd-gpios = <&gpio2 28 GPIO_ACTIVE_LOW>;
};

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