1/*
2 * SPDX-License-Identifier: Apache-2.0
3 *
4 * Copyright 2023 NXP
5 */
6
7/dts-v1/;
8
9#include <nxp/nxp_rt1060.dtsi>
10#include "mimxrt1062_fmurt6-pinctrl.dtsi"
11#include <zephyr/dt-bindings/pwm/pwm.h>
12#include <freq.h>
13
14/ {
15	model = "NXP MIMXRT1062 FMURT6 board";
16	compatible = "nxp,mimxrt1062";
17
18	aliases {
19		led0 = &green_led;
20		led1 = &red_led;
21		watchdog0 = &wdog0;
22		sdhc0 = &usdhc1;
23		gps1 = &lpuart2;
24		telem1 = &lpuart3;
25		telem4-gps2 = &lpuart5;
26	};
27
28	chosen {
29		zephyr,flash-controller = &s26ks512s0;
30		zephyr,flash = &s26ks512s0;
31		zephyr,code-partition = &slot0_partition;
32		zephyr,uart-mcumgr = &lpuart7;
33		zephyr,sram = &ocram;
34		zephyr,itcm = &itcm;
35		zephyr,dtcm = &dtcm;
36		zephyr,console = &lpuart7;
37		zephyr,shell-uart = &lpuart7;
38		zephyr,canbus = &flexcan1;
39	};
40
41	leds {
42		compatible = "gpio-leds";
43		green_led: led-1 {
44			gpios = <&gpio2 11 GPIO_ACTIVE_HIGH>;
45			label = "User LED1";
46		};
47		red_led: led-2 {
48			gpios = <&gpio2 10 GPIO_ACTIVE_LOW>;
49			label = "User LED2";
50		};
51	};
52
53	/* This regulator controls VDD_3V3_SD_CARD onboard supply */
54	reg-3v3-sdcard {
55		compatible = "regulator-fixed";
56		regulator-name = "reg-3v3-sdcard";
57		enable-gpios = <&gpio4 13 GPIO_ACTIVE_HIGH>;
58		regulator-always-on;
59		status = "okay";
60	};
61
62	/* This regulator controls VDD_5V_PERIPH onboard supply */
63	reg-5v-periph {
64		compatible = "regulator-fixed";
65		regulator-name = "reg-5v-periph";
66		enable-gpios = <&gpio4 9 GPIO_ACTIVE_LOW>;
67		regulator-always-on;
68		status = "okay";
69	};
70
71	/* This regulator controls VDD_5V_HIPOWER onboard supply */
72	reg-5v-hipower {
73		compatible = "regulator-fixed";
74		regulator-name = "reg-5v-hipower";
75		enable-gpios = <&gpio4 6 GPIO_ACTIVE_LOW>;
76		regulator-always-on;
77		status = "okay";
78	};
79
80	/* This regulator controls the 3V3_S line, which powers sensors on-board. */
81	reg-3v3-sensor {
82		compatible = "regulator-fixed";
83		regulator-name = "reg-3v3-sensor";
84		enable-gpios = <&gpio3 27 GPIO_ACTIVE_HIGH>;
85		startup-delay-us = <2000>;
86		regulator-always-on;
87		status = "okay";
88	};
89
90	/* This regulator controls VDD_3V3_SPEKTRUM onboard supply */
91	reg-3v3-spektrum {
92		compatible = "regulator-fixed";
93		regulator-name = "reg-3v3-spektrum";
94		enable-gpios = <&gpio1 0 GPIO_ACTIVE_HIGH>;
95		regulator-always-on;
96		status = "okay";
97	};
98
99	/* This regulator controls ETH_VDD_3V3 supply to power up the TJA1103 PHY */
100	reg-eth-power {
101		compatible = "regulator-fixed";
102		regulator-name = "reg-eth-power";
103		enable-gpios = <&gpio5 1 GPIO_ACTIVE_HIGH>;
104		regulator-always-on;
105		status = "okay";
106	};
107};
108
109&flexcan1 {
110	status = "okay";
111	pinctrl-0 = <&pinmux_flexcan1>;
112	pinctrl-names = "default";
113	can-transceiver {
114		max-bitrate = <5000000>;
115	};
116};
117
118&flexcan2 {
119	status = "disabled";
120	pinctrl-0 = <&pinmux_flexcan2>;
121	pinctrl-names = "default";
122	can-transceiver {
123		max-bitrate = <5000000>;
124	};
125};
126
127&flexcan3 {
128	status = "disabled";
129	pinctrl-0 = <&pinmux_flexcan3>;
130	pinctrl-names = "default";
131	can-transceiver {
132		max-bitrate = <5000000>;
133	};
134};
135
136&gpio1 {
137	status = "okay";
138};
139
140&gpio2 {
141	status = "okay";
142};
143
144&gpio3 {
145	status = "okay";
146};
147
148&gpio4 {
149	status = "okay";
150};
151
152&gpio5 {
153	status = "okay";
154};
155
156&gpio6 {
157	status = "okay";
158};
159
160&gpio7 {
161	status = "okay";
162};
163
164&gpio8 {
165	status = "okay";
166};
167
168&gpio9 {
169	status = "okay";
170};
171
172&adc1 {
173	status = "okay";
174	pinctrl-0 = <&pinmux_adc1>;
175	pinctrl-names = "default";
176};
177
178&flexspi {
179	status = "okay";
180	ahb-prefetch;
181	ahb-read-addr-opt;
182	ahb-bufferable;
183	ahb-cacheable;
184	sck-differential-clock;
185	combination-mode;
186	rx-clock-source = <3>;
187	reg = <0x402a8000 0x4000>, <0x60000000 DT_SIZE_M(64)>;
188	s26ks512s0: s26ks512s@0 {
189		compatible = "nxp,imx-flexspi-hyperflash";
190		size = <DT_SIZE_M(64*8)>;
191		reg = <0>;
192		spi-max-frequency = <166000000>;
193		word-addressable;
194		cs-interval-unit = <1>;
195		cs-interval = <2>;
196		cs-hold-time = <0>;
197		cs-setup-time = <3>;
198		data-valid-time = <1>;
199		column-space = <3>;
200		ahb-write-wait-unit = <2>;
201		ahb-write-wait-interval = <20>;
202		status = "okay";
203		erase-block-size = <DT_SIZE_K(256)>;
204		write-block-size = <16>;
205
206		partitions {
207			compatible = "fixed-partitions";
208			#address-cells = <1>;
209			#size-cells = <1>;
210			boot_partition: partition@0 {
211				label = "mcuboot";
212				reg = <0x00000000 DT_SIZE_K(256)>;
213			};
214			/* The MCUBoot swap-move algorithm uses the last 2 sectors
215			 * of the primary slot0 for swap status and move.
216			 */
217			slot0_partition: partition@40000 {
218				label = "image-0";
219				reg = <0x00040000 (DT_SIZE_M(3) + DT_SIZE_K(512))>;
220			};
221			slot1_partition: partition@3C0000 {
222				label = "image-1";
223				reg = <0x003C0000 DT_SIZE_M(3)>;
224			};
225			storage_partition: partition@6C0000 {
226				label = "storage";
227				reg = <0x006C0000 (DT_SIZE_M(58) - DT_SIZE_K(768))>;
228			};
229		};
230	};
231};
232
233&lpi2c1 {
234	status = "okay";
235	pinctrl-0 = <&pinmux_lpi2c1>;
236	pinctrl-names = "default";
237
238};
239
240&lpi2c2 {
241	status = "okay";
242	pinctrl-0 = <&pinmux_lpi2c2>;
243	pinctrl-names = "default";
244
245	bmp388: bmp388@76 {
246		compatible = "bosch,bmp388";
247		reg = <0x76>;
248		status = "okay";
249	};
250};
251
252&lpi2c4 {
253	status = "okay";
254	pinctrl-0 = <&pinmux_lpi2c2>;
255	pinctrl-names = "default";
256
257	bmm150: bmm150@10 {
258		compatible = "bosch,bmm150";
259		status = "disabled";
260		reg = <0x10>;
261	};
262
263};
264
265&lpuart7 {
266	status = "okay";
267	current-speed = <115200>;
268	pinctrl-0 = <&pinmux_lpuart7>;
269	pinctrl-1 = <&pinmux_lpuart7_sleep>;
270	pinctrl-names = "default", "sleep";
271};
272
273&lpuart2 {
274	status = "okay";
275	current-speed = <115200>;
276	pinctrl-0 = <&pinmux_lpuart2>;
277	pinctrl-1 = <&pinmux_lpuart2_sleep>;
278	pinctrl-names = "default", "sleep";
279};
280
281&lpuart3 {
282	status = "okay";
283	current-speed = <115200>;
284	pinctrl-0 = <&pinmux_lpuart3>;
285	pinctrl-1 = <&pinmux_lpuart3_sleep>;
286	pinctrl-names = "default", "sleep";
287};
288
289&lpuart5 {
290	status = "okay";
291	current-speed = <115200>;
292	pinctrl-0 = <&pinmux_lpuart5>;
293	pinctrl-1 = <&pinmux_lpuart5_sleep>;
294	pinctrl-names = "default", "sleep";
295};
296
297&lpspi1 {
298	status = "okay";
299	pinctrl-0 = <&pinmux_lpspi1>;
300	pinctrl-names = "default";
301	cs-gpios = <&gpio3 23 GPIO_ACTIVE_LOW>;
302	clock-frequency = <DT_FREQ_M(10)>;
303};
304
305&lpspi2 {
306	status = "disabled";
307	pinctrl-0 = <&pinmux_lpspi2>;
308	pinctrl-names = "default";
309	clock-frequency = <DT_FREQ_M(1)>;
310
311	ism330dhcx: ism330dhcx@0 {
312		compatible = "st,ism330dhcx";
313		status = "disabled";
314		spi-max-frequency = <1000000>;
315		reg = <0>;
316	};
317};
318
319
320&lpspi3 {
321	status = "okay";
322	pinctrl-0 = <&pinmux_lpspi3>;
323	pinctrl-names = "default";
324	/* Accelerometer */
325	/* Gyroscope */
326	cs-gpios = <&gpio2 31 GPIO_ACTIVE_LOW>,
327		   <&gpio2 26 GPIO_ACTIVE_LOW>;
328
329	clock-frequency = <DT_FREQ_M(10)>;
330};
331
332&flexpwm2_pwm0 {
333	status = "okay";
334	pinctrl-0 = <&pinmux_flexpwm_fmu_ch1>;
335	pinctrl-names = "default";
336	nxp,prescaler = <64>;
337};
338
339&flexpwm2_pwm1 {
340	status = "okay";
341	pinctrl-0 = <&pinmux_flexpwm_fmu_ch2>;
342	pinctrl-names = "default";
343	nxp,prescaler = <64>;
344};
345
346&flexpwm2_pwm2	{
347	status = "okay";
348	pinctrl-0 = <&pinmux_flexpwm_fmu_ch3>;
349	pinctrl-names = "default";
350	nxp,prescaler = <64>;
351};
352
353&flexpwm2_pwm3	{
354	status = "okay";
355	pinctrl-0 = <&pinmux_flexpwm_fmu_ch4>;
356	pinctrl-names = "default";
357	nxp,prescaler = <64>;
358};
359
360&flexpwm3_pwm2	{
361	status = "okay";
362	pinctrl-0 = <&pinmux_flexpwm_fmu_ch5>;
363	pinctrl-names = "default";
364	nxp,prescaler = <64>;
365};
366
367&flexpwm3_pwm0	{
368	status = "okay";
369	pinctrl-0 = <&pinmux_flexpwm_fmu_ch6>;
370	pinctrl-names = "default";
371	nxp,prescaler = <64>;
372};
373
374&flexpwm4_pwm2	{
375	status = "okay";
376	pinctrl-0 = <&pinmux_flexpwm_fmu_ch7>;
377	pinctrl-names = "default";
378	nxp,prescaler = <64>;
379};
380
381&flexpwm4_pwm0	{
382	status = "okay";
383	pinctrl-0 = <&pinmux_flexpwm_fmu_ch8>;
384	pinctrl-names = "default";
385	nxp,prescaler = <64>;
386};
387
388&enet2 {
389	status = "okay";
390};
391
392&enet2_mac {
393	pinctrl-0 = <&pinmux_enet>;
394	pinctrl-names = "default";
395	zephyr,random-mac-address;
396	phy-connection-type = "rmii";
397	phy-handle = <&phy>;
398	status = "okay";
399};
400
401&enet2_mdio {
402	status = "okay";
403	pinctrl-0 = <&pinmux_enet>;
404	pinctrl-names = "default";
405	phy: phy@0 {
406		compatible = "ethernet-phy";
407		reg = <0>;
408		status = "okay";
409	};
410};
411
412zephyr_udc0: &usb1 {
413	status = "okay";
414};
415
416&usdhc1 {
417	status = "okay";
418	power-delay-ms = <1000>;
419	pwr-gpios = <&gpio1 5 GPIO_ACTIVE_HIGH>;
420	cd-gpios = <&gpio2 28 GPIO_ACTIVE_LOW>;
421	pinctrl-0 = <&pinmux_usdhc1>;
422	pinctrl-1 = <&pinmux_usdhc1_slow>;
423	pinctrl-2 = <&pinmux_usdhc1_med>;
424	pinctrl-3 = <&pinmux_usdhc1_fast>;
425	pinctrl-names = "default", "slow", "med", "fast";
426	sdmmc {
427		compatible = "zephyr,sdmmc-disk";
428		disk-name = "SD";
429		status = "okay";
430	};
431};
432
433&wdog0 {
434	status = "okay";
435};
436
437&edma0 {
438	status = "okay";
439};
440
441/* GPT and Systick are enabled. If power management is enabled, the GPT
442 * timer will be used instead of systick, as allows the core clock to
443 * be gated.
444 */
445&gpt_hw_timer {
446	status = "okay";
447};
448
449&systick {
450	status = "okay";
451};
452
453&iomuxcgpr {
454	status = "okay";
455};
456
457&itm {
458	pinctrl-0 = <&pinmux_swo>;
459	pinctrl-names = "default";
460};
461