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

/dts-v1/;

#include <nxp/nxp_rt1015.dtsi>
#include "mimxrt1015_evk-pinctrl.dtsi"
#include <zephyr/dt-bindings/input/input-event-codes.h>

/ {
	model = "NXP MIMXRT1015-EVK board";
	compatible = "nxp,mimxrt1015";

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

	chosen {
		zephyr,sram = &dtcm;
		zephyr,itcm = &itcm;
		zephyr,console = &lpuart1;
		zephyr,shell-uart = &lpuart1;
		zephyr,flash = &at25sf128a;
	};

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

	gpio_keys {
		compatible = "gpio-keys";
		user_button: button-1 {
			label = "User SW4";
			gpios = <&gpio2 9 GPIO_ACTIVE_LOW>;
			zephyr,code = <INPUT_KEY_0>;
		};
	};

	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 29 0>,	/* A0 */
			   <1 0 &gpio1 14 0>,	/* A1 */
			   <2 0 &gpio1 28 0>,	/* A2 */
			   <3 0 &gpio1 26 0>,	/* A3 */
			   <4 0 &gpio1 31 0>,	/* A4 */
			   <5 0 &gpio1 30 0>,	/* A5 */
			   <6 0 &gpio3 1 0>,	/* D0 */
			   <7 0 &gpio3 0 0>,	/* D1 */
			   <8 0 &gpio2 20 0>,	/* D2 */
			   <9 0 &gpio2 26 0>,	/* D3 */
			   <10 0 &gpio3 2 0>,	/* D4 */
			   <11 0 &gpio2 27 0>,	/* D5 */
			   <12 0 &gpio1 27 0>,	/* D6 */
			   <13 0 &gpio1 15 0>,	/* D7 */
			   <14 0 &gpio2 21 0>,	/* D8 */
			   <15 0 &gpio2 22 0>,	/* D9 */
			   <16 0 &gpio1 11 0>,	/* D10 */
			   <17 0 &gpio1 12 0>,	/* D11 */
			   <18 0 &gpio1 13 0>,	/* D12 */
			   <19 0 &gpio1 10 0>,	/* D13 */
			   <20 0 &gpio1 31 0>,	/* D14 */
			   <21 0 &gpio1 30 0>;	/* D15 */
	};
};

arduino_serial: &lpuart4 {
	pinctrl-0 = <&pinmux_lpuart4>;
	pinctrl-1 = <&pinmux_lpuart4_sleep>;
	pinctrl-names = "default", "sleep";
};

&flexspi {
	reg = <0x402a8000 0x4000>, <0x60000000 DT_SIZE_M(16)>;
	at25sf128a: at25sf128a@0 {
		compatible = "nxp,imx-flexspi-nor";
		size = <134217728>;
		reg = <0>;
		spi-max-frequency = <133000000>;
		status = "okay";
		jedec-id = [1f 89 01];
	};
};

&lpi2c1 {
	status = "okay";
	pinctrl-0 = <&pinmux_lpi2c1>;
	pinctrl-names = "default";
};

&lpuart1 {
	status = "okay";
	current-speed = <115200>;
	pinctrl-0 = <&pinmux_lpuart1>;
	pinctrl-1 = <&pinmux_lpuart1_sleep>;
	pinctrl-names = "default", "sleep";
};

&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";
	pinctrl-0 = <&pinmux_lpspi1>;
	pinctrl-names = "default";
};

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

&adc1 {
	status = "okay";
	pinctrl-0 = <&pinmux_adc1>;
	pinctrl-names = "default";
};

&edma0 {
	status = "okay";
};

&sai1 {
	pinctrl-0 = <&pinmux_sai1>;
	pinctrl-names = "default";
};

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