/*
 * Copyright (c) 2020, Bernhard Kraemer
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/dts-v1/;

#include <nxp/nxp_rt1060.dtsi>
#include "teensy4-pinctrl.dtsi"

/ {
	model = "PJRC TEENSY 4.0 board";
	compatible = "nxp,mimxrt1062";

	aliases {
		led0 = &board_led;
	};

	chosen {
		zephyr,sram = &ocram;
		zephyr,itcm = &itcm;
		zephyr,dtcm = &dtcm;
		zephyr,console = &lpuart6; /* Teensy Pins 0(RX1) 1(TX1) */
		zephyr,canbus = &flexcan1; /* Teensy Pins 23(CRX1) 22(CTX1) */
	};

	leds {
		compatible = "gpio-leds";
		board_led: led-1 {
			gpios = <&gpio2 3 GPIO_ACTIVE_HIGH>;
			label = "User LED Pin 13";
		};
	};
};

&flexspi {
	reg = <0x402a8000 0x4000>, <0x60000000 0x200000>;
	/* WINBOND flash memory*/
	w25q16jvuxim: w25q16jvuxim@0 {
		compatible = "winbond,w25q16jvuxim", "jedec,spi-nor";
		size = <16777208>;
		reg = <0>;
		spi-max-frequency = <133000000>;
		status = "okay";
		jedec-id = [ef 40 15];
	};
};

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

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

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

&edma0 {
	status = "okay";
};

/* Pinmux settings */
&enet {
	pinctrl-0 = <&pinmux_enet>;
	pinctrl-names = "default";
};

&flexcan1 {
	pinctrl-0 = <&pinmux_flexcan1>;
	pinctrl-names = "default";
};

&flexcan1 {
	pinctrl-0 = <&pinmux_flexcan1>;
	pinctrl-names = "default";
};

&flexcan2 {
	pinctrl-0 = <&pinmux_flexcan2>;
	pinctrl-names = "default";
};

&flexcan3 {
	pinctrl-0 = <&pinmux_flexcan3>;
	pinctrl-names = "default";
};

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

&lpi2c3 {
	pinctrl-0 = <&pinmux_lpi2c3>;
	pinctrl-names = "default";
};

&lpi2c4 {
	pinctrl-0 = <&pinmux_lpi2c4>;
	pinctrl-names = "default";
};

&lpspi3 {
	pinctrl-0 = <&pinmux_lpspi3>;
	pinctrl-names = "default";
};

&lpspi4 {
	pinctrl-0 = <&pinmux_lpspi4>;
	pinctrl-names = "default";
};

&lpuart1 {
	pinctrl-0 = <&pinmux_lpuart1>;
	pinctrl-1 = <&pinmux_lpuart1_sleep>;
	pinctrl-names = "default", "sleep";
};

&lpuart2 {
	pinctrl-0 = <&pinmux_lpuart2>;
	pinctrl-1 = <&pinmux_lpuart2_sleep>;
	pinctrl-names = "default", "sleep";
};

&lpuart3 {
	pinctrl-0 = <&pinmux_lpuart3>;
	pinctrl-1 = <&pinmux_lpuart3_sleep>;
	pinctrl-names = "default", "sleep";
};

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

&lpuart5 {
	pinctrl-0 = <&pinmux_lpuart5>;
	pinctrl-1 = <&pinmux_lpuart5_sleep>;
	pinctrl-names = "default", "sleep";
};

&lpuart6 {
	pinctrl-0 = <&pinmux_lpuart6>;
	pinctrl-1 = <&pinmux_lpuart6_sleep>;
	pinctrl-names = "default", "sleep";
};

&lpuart7 {
	pinctrl-0 = <&pinmux_lpuart7>;
	pinctrl-1 = <&pinmux_lpuart7_sleep>;
	pinctrl-names = "default", "sleep";
};

&lpuart8 {
	pinctrl-0 = <&pinmux_lpuart8>;
	pinctrl-1 = <&pinmux_lpuart8_sleep>;
	pinctrl-names = "default", "sleep";
};

&usdhc1 {
	pinctrl-0 = <&pinmux_usdhc1>;
	pinctrl-1 = <&pinmux_usdhc1_slow>;
	pinctrl-2 = <&pinmux_usdhc1_med>;
	pinctrl-3 = <&pinmux_usdhc1_fast>;
	pinctrl-names = "default", "slow", "med", "fast";
};
