1/*
2 * Copyright (c) 2020, Bernhard Kraemer
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
7/dts-v1/;
8
9#include <nxp/nxp_rt1060.dtsi>
10#include "teensy4-pinctrl.dtsi"
11#include <freq.h>
12#include <mem.h>
13
14/ {
15	model = "PJRC TEENSY 4.0 board";
16	compatible = "nxp,mimxrt1062";
17
18	aliases {
19		led0 = &board_led;
20	};
21
22	chosen {
23		zephyr,flash-controller = &w25q16jvuxim;
24		zephyr,flash = &w25q16jvuxim;
25		zephyr,sram = &ocram;
26		zephyr,itcm = &itcm;
27		zephyr,dtcm = &dtcm;
28		zephyr,console = &lpuart6; /* Teensy Pins 0(RX1) 1(TX1) */
29		zephyr,shell-uart = &lpuart6;
30		zephyr,canbus = &flexcan1; /* Teensy Pins 23(CRX1) 22(CTX1) */
31	};
32
33	leds {
34		compatible = "gpio-leds";
35		board_led: led-1 {
36			gpios = <&gpio2 3 GPIO_ACTIVE_HIGH>;
37			label = "User LED Pin 13";
38		};
39	};
40};
41
42&flexspi {
43	status = "okay";
44
45	reg = <0x402a8000 0x4000>, <0x60000000 DT_SIZE_M(2)>;
46	/* WINBOND flash memory*/
47	w25q16jvuxim: w25q16jvuxim@0 {
48		compatible = "nxp,imx-flexspi-nor";
49		size = <DT_SIZE_M(2 * 8)>;
50		reg = <0>;
51		spi-max-frequency = <DT_FREQ_M(133)>;
52		status = "okay";
53		jedec-id = [ef 40 15];
54
55		erase-block-size = <4096>;
56		write-block-size = <1>;
57	};
58};
59
60zephyr_udc0: &usb1 {
61	status = "okay";
62};
63
64&lpuart6 {
65	status = "okay";
66	current-speed = < 115200 >;
67};
68
69&edma0 {
70	status = "okay";
71};
72
73&edma0 {
74	status = "okay";
75};
76
77&flexcan1 {
78	pinctrl-0 = <&pinmux_flexcan1>;
79	pinctrl-names = "default";
80	status = "okay";
81};
82
83&flexcan2 {
84	pinctrl-0 = <&pinmux_flexcan2>;
85	pinctrl-names = "default";
86};
87
88&flexcan3 {
89	pinctrl-0 = <&pinmux_flexcan3>;
90	pinctrl-names = "default";
91};
92
93&lpi2c1 {
94	pinctrl-0 = <&pinmux_lpi2c1>;
95	pinctrl-names = "default";
96};
97
98&lpi2c3 {
99	pinctrl-0 = <&pinmux_lpi2c3>;
100	pinctrl-names = "default";
101};
102
103&lpi2c4 {
104	pinctrl-0 = <&pinmux_lpi2c4>;
105	pinctrl-names = "default";
106};
107
108&lpspi3 {
109	pinctrl-0 = <&pinmux_lpspi3>;
110	pinctrl-names = "default";
111};
112
113&lpspi4 {
114	pinctrl-0 = <&pinmux_lpspi4>;
115	pinctrl-names = "default";
116};
117
118&lpuart1 {
119	pinctrl-0 = <&pinmux_lpuart1>;
120	pinctrl-1 = <&pinmux_lpuart1_sleep>;
121	pinctrl-names = "default", "sleep";
122};
123
124&lpuart2 {
125	pinctrl-0 = <&pinmux_lpuart2>;
126	pinctrl-1 = <&pinmux_lpuart2_sleep>;
127	pinctrl-names = "default", "sleep";
128};
129
130&lpuart3 {
131	pinctrl-0 = <&pinmux_lpuart3>;
132	pinctrl-1 = <&pinmux_lpuart3_sleep>;
133	pinctrl-names = "default", "sleep";
134};
135
136&lpuart4 {
137	pinctrl-0 = <&pinmux_lpuart4>;
138	pinctrl-1 = <&pinmux_lpuart4_sleep>;
139	pinctrl-names = "default", "sleep";
140};
141
142&lpuart5 {
143	pinctrl-0 = <&pinmux_lpuart5>;
144	pinctrl-1 = <&pinmux_lpuart5_sleep>;
145	pinctrl-names = "default", "sleep";
146};
147
148&lpuart6 {
149	pinctrl-0 = <&pinmux_lpuart6>;
150	pinctrl-1 = <&pinmux_lpuart6_sleep>;
151	pinctrl-names = "default", "sleep";
152};
153
154&lpuart7 {
155	pinctrl-0 = <&pinmux_lpuart7>;
156	pinctrl-1 = <&pinmux_lpuart7_sleep>;
157	pinctrl-names = "default", "sleep";
158};
159
160&lpuart8 {
161	pinctrl-0 = <&pinmux_lpuart8>;
162	pinctrl-1 = <&pinmux_lpuart8_sleep>;
163	pinctrl-names = "default", "sleep";
164};
165
166&usdhc1 {
167	pinctrl-0 = <&pinmux_usdhc1>;
168	pinctrl-1 = <&pinmux_usdhc1_slow>;
169	pinctrl-2 = <&pinmux_usdhc1_med>;
170	pinctrl-3 = <&pinmux_usdhc1_fast>;
171	pinctrl-names = "default", "slow", "med", "fast";
172};
173
174&systick {
175	status = "okay";
176};
177