1/*
2 * Copyright (c) 2018, NXP
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
7/dts-v1/;
8
9#include <nxp/nxp_rt1060.dtsi>
10#include "mimxrt1060_evk-pinctrl.dtsi"
11#include <zephyr/dt-bindings/display/panel.h>
12#include <zephyr/dt-bindings/input/input-event-codes.h>
13
14/ {
15	model = "NXP MIMXRT1060-EVK board";
16	compatible = "nxp,mimxrt1062";
17
18	aliases {
19		led0 = &green_led;
20		pwm-led0 = &green_pwm_led;
21		sw0 = &user_button;
22		watchdog0 = &wdog0;
23		sdhc0 = &usdhc1;
24	};
25
26	chosen {
27		zephyr,flash-controller = &is25wp064;
28		zephyr,flash = &is25wp064;
29		zephyr,code-partition = &slot0_partition;
30		zephyr,sram = &sdram0;
31		zephyr,itcm = &itcm;
32		zephyr,dtcm = &dtcm;
33		zephyr,console = &lpuart1;
34		zephyr,shell-uart = &lpuart1;
35		zephyr,canbus = &flexcan3;
36		zephyr,display = &lcdif;
37	};
38
39	sdram0: memory@80000000 {
40		/* Micron MT48LC16M16A2B4-6AIT:G */
41		device_type = "memory";
42		reg = <0x80000000 DT_SIZE_M(32)>;
43	};
44
45	leds {
46		compatible = "gpio-leds";
47		green_led: led-1 {
48			gpios = <&gpio1 9 GPIO_ACTIVE_LOW>;
49			label = "User LED1";
50		};
51	};
52
53	pwmleds {
54		compatible = "pwm-leds";
55		green_pwm_led: green_pwm_led {
56			pwms = <&flexpwm2_pwm3 0 PWM_MSEC(20) PWM_POLARITY_NORMAL>;
57		};
58	};
59
60	gpio_keys {
61		compatible = "gpio-keys";
62		user_button: button-1 {
63			label = "User SW8";
64			gpios = <&gpio5 0 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>;
65			zephyr,code = <INPUT_KEY_0>;
66		};
67	};
68
69	lvgl_pointer {
70		compatible = "zephyr,lvgl-pointer-input";
71		input = <&ft5336>;
72	};
73
74	arduino_header: connector {
75		compatible = "arduino-header-r3";
76		#gpio-cells = <2>;
77		gpio-map-mask = <0xffffffff 0xffffffc0>;
78		gpio-map-pass-thru = <0 0x3f>;
79		gpio-map = <0 0 &gpio1 26 0>,	/* A0 */
80			   <1 0 &gpio1 27 0>,	/* A1 */
81			   <2 0 &gpio1 20 0>,	/* A2 */
82			   <3 0 &gpio1 21 0>,	/* A3 */
83			   <4 0 &gpio1 17 0>,	/* A4 */
84			   <5 0 &gpio1 16 0>,	/* A5 */
85			   <6 0 &gpio1 23 0>,	/* D0 */
86			   <7 0 &gpio1 22 0>,	/* D1 */
87			   <8 0 &gpio1 11 0>,	/* D2 */
88			   <9 0 &gpio1 24 0>,	/* D3 */
89			   <10 0 &gpio1 9 0>,	/* D4 */
90			   <11 0 &gpio1 10 0>,	/* D5 */
91			   <12 0 &gpio1 18 0>,	/* D6 */
92			   <13 0 &gpio1 19 0>,	/* D7 */
93			   <14 0 &gpio1 3 0>,	/* D8 */
94			   <15 0 &gpio1 2 0>,	/* D9 */
95			   <16 0 &gpio3 13 0>,	/* D10 */
96			   <17 0 &gpio3 14 0>,	/* D11 */
97			   <18 0 &gpio3 15 0>,	/* D12 */
98			   <19 0 &gpio3 12 0>,	/* D13 */
99			   <20 0 &gpio1 17 0>,	/* D14 */
100			   <21 0 &gpio1 16 0>;	/* D15 */
101	};
102
103	panel {
104		compatible = "rocktech,rk043fn02h-ct";
105		port {
106			lcd_panel_in: endpoint {
107				remote-endpoint = <&lcd_panel_out>;
108			};
109		};
110	};
111};
112
113arduino_serial: &lpuart3 {
114	pinctrl-0 = <&pinmux_lpuart3>;
115	pinctrl-1 = <&pinmux_lpuart3_sleep>;
116	pinctrl-names = "default", "sleep";
117};
118
119&flexspi {
120	status = "okay";
121	pinctrl-0 = <&pinmux_flexspi1>;
122	pinctrl-names = "default";
123	ahb-prefetch;
124	ahb-read-addr-opt;
125	rx-clock-source = <1>;
126	reg = <0x402a8000 0x4000>, <0x60000000 DT_SIZE_M(8)>;
127	is25wp064: is25wp064@0 {
128		compatible = "nxp,imx-flexspi-nor";
129		size = <67108864>;
130		reg = <0>;
131		spi-max-frequency = <133000000>;
132		status = "okay";
133		jedec-id = [9d 70 17];
134		erase-block-size = <4096>;
135		write-block-size = <1>;
136
137		partitions {
138			compatible = "fixed-partitions";
139			#address-cells = <1>;
140			#size-cells = <1>;
141
142			boot_partition: partition@0 {
143				label = "mcuboot";
144				reg = <0x00000000 DT_SIZE_K(64)>;
145			};
146			slot0_partition: partition@10000 {
147				label = "image-0";
148				reg = <0x00010000 DT_SIZE_M(3)>;
149			};
150			slot1_partition: partition@310000 {
151				label = "image-1";
152				reg = <0x00310000 DT_SIZE_M(3)>;
153			};
154			scratch_partition: partition@610000 {
155				label = "image-scratch";
156				reg = <0x00610000 DT_SIZE_K(128)>;
157			};
158			storage_partition: partition@630000 {
159				label = "storage";
160				reg = <0x00630000 DT_SIZE_K(1856)>;
161			};
162		};
163	};
164};
165
166&lcdif {
167	status = "okay";
168	width = <480>;
169	height = <272>;
170	display-timings {
171		compatible = "zephyr,panel-timing";
172		hsync-len = <41>;
173		hfront-porch = <4>;
174		hback-porch = <8>;
175		vsync-len = <10>;
176		vfront-porch = <4>;
177		vback-porch = <2>;
178		de-active= <1>;
179		pixelclk-active = <1>;
180		hsync-active = <0>;
181		vsync-active = <0>;
182		clock-frequency = <9210240>;
183	};
184	pixel-format = <PANEL_PIXEL_FORMAT_BGR_565>;
185	data-bus-width = "16-bit";
186	pinctrl-0 = <&pinmux_lcdif>;
187	pinctrl-names = "default";
188	backlight-gpios = <&gpio2 31 GPIO_ACTIVE_HIGH>;
189	port {
190		lcd_panel_out: endpoint {
191			remote-endpoint = <&lcd_panel_in>;
192		};
193	};
194};
195
196arduino_i2c: &lpi2c1 {
197	status = "okay";
198	pinctrl-0 = <&pinmux_lpi2c1>;
199	pinctrl-names = "default";
200
201	ft5336: ft5336@38 {
202		compatible = "focaltech,ft5336";
203		reg = <0x38>;
204		int-gpios = <&gpio1 11 GPIO_ACTIVE_LOW>;
205	};
206};
207
208&lpuart1 {
209	status = "okay";
210	current-speed = <115200>;
211	pinctrl-0 = <&pinmux_lpuart1>;
212	pinctrl-1 = <&pinmux_lpuart1_sleep>;
213	pinctrl-names = "default", "sleep";
214};
215
216&enet {
217	status = "okay";
218	pinctrl-0 = <&pinmux_enet>;
219	pinctrl-names = "default";
220	int-gpios = <&gpio1 10 GPIO_ACTIVE_HIGH>;
221	reset-gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>;
222	ptp {
223		pinctrl-0 = <&pinmux_ptp>;
224		pinctrl-names = "default";
225		status = "okay";
226	};
227};
228
229&adc1 {
230	status = "okay";
231	pinctrl-0 = <&pinmux_adc1>;
232	pinctrl-names = "default";
233};
234
235zephyr_udc0: &usb1 {
236	status = "okay";
237};
238
239&flexpwm2_pwm3 {
240	status = "okay";
241	pinctrl-0 = <&pinmux_flexpwm2_3>;
242	pinctrl-names = "default";
243};
244
245&flexpwm1_pwm0 {
246	pinctrl-0 = <&pinmux_flexpwm1_0>;
247	pinctrl-names = "default";
248};
249
250&flexpwm1_pwm3 {
251	pinctrl-0 = <&pinmux_flexpwm1>;
252	pinctrl-names = "default";
253};
254
255&usdhc1 {
256	status = "okay";
257	power-delay-ms = <1000>;
258	pwr-gpios = <&gpio1 5 GPIO_ACTIVE_HIGH>;
259	cd-gpios = <&gpio2 28 GPIO_ACTIVE_LOW>;
260	status = "okay";
261	pinctrl-0 = <&pinmux_usdhc1>;
262	pinctrl-1 = <&pinmux_usdhc1_slow>;
263	pinctrl-2 = <&pinmux_usdhc1_med>;
264	pinctrl-3 = <&pinmux_usdhc1_fast>;
265	pinctrl-names = "default", "slow", "med", "fast";
266	sdmmc {
267		compatible = "zephyr,sdmmc-disk";
268		status = "okay";
269	};
270};
271
272&edma0 {
273	status = "okay";
274};
275
276&flexcan3 {
277	status = "okay";
278	bus-speed = <125000>;
279	bus-speed-data = <1000000>;
280	pinctrl-0 = <&pinmux_flexcan3>;
281	pinctrl-names = "default";
282
283	can-transceiver {
284		max-bitrate = <5000000>;
285	};
286};
287
288&wdog0 {
289	status = "okay";
290};
291
292arduino_spi: &lpspi1 {
293	status = "okay";
294	/* DMA channels 0 and 1, muxed to LPSPI1 RX and TX */
295	dmas = <&edma0 0 13>, <&edma0 1 14>;
296	dma-names = "rx", "tx";
297	pinctrl-0 = <&pinmux_lpspi1>;
298	pinctrl-names = "default";
299};
300
301&lpspi3 {
302	status = "okay";
303	/* DMA channels 2 and 3, muxed to LPSPI3 RX and TX */
304	dmas = <&edma0 2 15>, <&edma0 3 16>;
305	dma-names = "rx", "tx";
306	pinctrl-0 = <&pinmux_lpspi3>;
307	pinctrl-names = "default";
308
309};
310
311&sai1 {
312	status = "okay";
313	pinctrl-0 = <&pinmux_sai1>;
314	pinctrl-names = "default";
315};
316
317/* GPT and Systick are enabled. If power management is enabled, the GPT
318 * timer will be used instead of systick, as allows the core clock to
319 * be gated.
320 */
321&gpt_hw_timer {
322	status = "okay";
323};
324
325&systick {
326	status = "okay";
327};
328
329&iomuxcgpr {
330	status = "okay";
331};
332
333&itm {
334	pinctrl-0 = <&pinmux_swo>;
335	pinctrl-names = "default";
336};
337
338&pxp {
339	status = "okay";
340};
341