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