1/*
2 * Copyright 2023 NXP
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
7/dts-v1/;
8
9#include <nxp/nxp_rt11xx_cm7.dtsi>
10#include <zephyr/dt-bindings/led/led.h>
11#include "vmu_rt1170.dtsi"
12
13/ {
14	model = "NXP VMU RT1170";
15	compatible = "nxp,mimxrt1176";
16
17	aliases {
18		led0 = &green_led;
19		led1 = &red_led;
20		watchdog0 = &wdog1;
21		sdhc0 = &usdhc1;
22	};
23
24	chosen {
25		zephyr,sram = &ocram1; /* TODO Merge with other OCRAM */
26		zephyr,sram1 = &ocram2; /* TODO Merge with other OCRAM */
27		zephyr,dtcm = &dtcm;
28		zephyr,itcm = &itcm;
29		zephyr,console = &lpuart1;
30		zephyr,shell-uart = &lpuart1;
31		zephyr,canbus = &flexcan1;
32		zephyr,flash-controller = &mx25um51345g;
33		zephyr,flash = &mx25um51345g;
34		zephyr,code-partition = &slot0_partition;
35	};
36
37	/* This regulator controls VDD_3V3_SD_CARD onboard supply */
38	reg-3v3-sdcard {
39		compatible = "regulator-fixed";
40		regulator-name = "reg-3v3-sdcard";
41		enable-gpios = <&gpio1 1 GPIO_ACTIVE_HIGH>;
42		regulator-always-on;
43		status = "okay";
44	};
45
46	/* This regulator controls VDD_5V_PERIPH onboard supply */
47	reg-5v-periph {
48		compatible = "regulator-fixed";
49		regulator-name = "reg-5v-periph";
50		enable-gpios = <&gpio2 2 GPIO_ACTIVE_LOW>;
51		regulator-always-on;
52		status = "okay";
53	};
54
55	/* This regulator controls VDD_5V_HIPOWER onboard supply */
56	reg-5v-hipower {
57		compatible = "regulator-fixed";
58		regulator-name = "reg-5v-hipower";
59		enable-gpios = <&gpio2 5 GPIO_ACTIVE_LOW>;
60		regulator-always-on;
61		status = "okay";
62	};
63
64	/* This regulator controls the VDD_3V3_SENSORS1 onboard supply. */
65	reg-3v3-sensors-1 {
66		compatible = "regulator-fixed";
67		regulator-name = "reg-3v3-sensors-1";
68		enable-gpios = <&gpio2 1 GPIO_ACTIVE_HIGH>;
69		startup-delay-us = <2000>;
70		regulator-always-on;
71		status = "okay";
72	};
73
74	/* This regulator controls the VDD_3V3_SENSORS2 onboard supply. */
75	reg-3v3-sensors-2 {
76		compatible = "regulator-fixed";
77		regulator-name = "reg-3v3-sensors-2";
78		enable-gpios = <&gpio1 22 GPIO_ACTIVE_HIGH>;
79		startup-delay-us = <2000>;
80		regulator-always-on;
81		status = "okay";
82	};
83
84	/* This regulator controls the VDD_3V3_SENSORS3 onboard supply. */
85	reg-3v3-sensors-3 {
86		compatible = "regulator-fixed";
87		regulator-name = "reg-3v3-sensors-3";
88		enable-gpios = <&gpio1 14 GPIO_ACTIVE_HIGH>;
89		startup-delay-us = <2000>;
90		regulator-always-on;
91		status = "okay";
92	};
93
94	/* This regulator controls the VDD_3V3_SENSORS4 onboard supply. */
95	reg-3v3-sensors-4 {
96		compatible = "regulator-fixed";
97		regulator-name = "reg-3v3-sensors-4";
98		enable-gpios = <&gpio2 4 GPIO_ACTIVE_HIGH>;
99		startup-delay-us = <2000>;
100		regulator-always-on;
101		status = "okay";
102	};
103
104	/* This regulator controls VDD_3V3_SPEKTRUM onboard supply */
105	reg-3v3-spektrum {
106		compatible = "regulator-fixed";
107		regulator-name = "reg-3v3-spektrum";
108		enable-gpios = <&gpio2 6 GPIO_ACTIVE_HIGH>;
109		regulator-always-on;
110		status = "okay";
111	};
112
113	/* This regulator controls ETH_VDD_3V3 supply to power up the TJA1103 PHY */
114	reg-eth-power {
115		compatible = "regulator-fixed";
116		regulator-name = "reg-eth-power";
117		enable-gpios = <&gpio5 9 GPIO_ACTIVE_HIGH>;
118		regulator-always-on;
119		status = "okay";
120	};
121};
122
123
124&gpio1 {
125	status = "okay";
126};
127
128&gpio2 {
129	status = "okay";
130};
131
132&gpio3 {
133	status = "okay";
134};
135
136&gpio4 {
137	status = "okay";
138};
139
140&gpio5 {
141	status = "okay";
142};
143
144&gpio6 {
145	status = "okay";
146};
147
148&gpio7 {
149	status = "okay";
150};
151
152&gpio8 {
153	status = "okay";
154};
155
156&gpio9 {
157	status = "okay";
158};
159
160&lpuart1 {
161	status = "okay";
162	current-speed = <115200>;
163};
164
165&lpuart4 {
166	status = "okay";
167	current-speed = <115200>;
168};
169
170
171&flexcan1 {
172	status = "okay";
173	pinctrl-0 = <&pinmux_flexcan1>;
174	pinctrl-names = "default";
175	bus-speed = <125000>;
176	bus-speed-data = <1000000>;
177	can-transceiver {
178		max-bitrate = <5000000>;
179	};
180};
181
182&flexcan2 {
183	status = "okay";
184	pinctrl-0 = <&pinmux_flexcan2>;
185	pinctrl-names = "default";
186	bus-speed = <125000>;
187	bus-speed-data = <1000000>;
188	can-transceiver {
189		max-bitrate = <5000000>;
190	};
191};
192
193&flexcan3 {
194	status = "okay";
195	pinctrl-0 = <&pinmux_flexcan3>;
196	pinctrl-names = "default";
197	bus-speed = <125000>;
198	bus-speed-data = <1000000>;
199	can-transceiver {
200		max-bitrate = <5000000>;
201	};
202};
203
204&lpspi1 {
205	status = "okay";
206	cs-gpios =<&gpio2 11 GPIO_ACTIVE_LOW>;
207
208	icm42688_0: icm42688p0@0 {
209		compatible = "invensense,icm42688";
210		reg = <0>;
211		int-gpios = <&gpio3 19 GPIO_ACTIVE_HIGH>;
212		spi-max-frequency = <24000000>;
213		accel-hz = <1000>;
214		accel-fs = <16>;
215		gyro-hz = <1000>;
216		gyro-fs = <2000>;
217	};
218};
219
220&lpspi2 {
221	status = "okay";
222	cs-gpios =<&gpio3 24 GPIO_ACTIVE_LOW>;
223
224	icm42688_1: icm42688p1@0 {
225		compatible = "invensense,icm42688";
226		reg = <0>;
227		int-gpios = <&gpio2 7 GPIO_ACTIVE_HIGH>;
228		spi-max-frequency = <24000000>;
229		accel-hz = <1000>;
230		accel-fs = <16>;
231		gyro-hz = <1000>;
232		gyro-fs = <2000>;
233	};
234};
235
236&lpspi3 {
237	status = "okay";
238	cs-gpios = <&gpio2 15 GPIO_ACTIVE_LOW>,
239		<&gpio2 18 GPIO_ACTIVE_LOW>;
240
241
242	bmi08x_accel: bmi08x@0 {
243		compatible = "bosch,bmi08x-accel";
244		reg = <0>;
245		int-gpios = <&gpio3 20 GPIO_ACTIVE_HIGH>;
246		spi-max-frequency = <10000000>;
247		int1-map-io = <0x01>;
248		int2-map-io = <0x00>;
249		int1-conf-io = <0x04>;
250		int2-conf-io = <0x00>;
251		accel-hz = "800";
252		accel-fs = <24>;
253	};
254
255	bmi08x_gyro: bmi08x@1 {
256		compatible = "bosch,bmi08x-gyro";
257		reg = <1>;
258		int-gpios = <&gpio2 28 GPIO_ACTIVE_HIGH>;
259		spi-max-frequency = <10000000>;
260		int3-4-map-io = <0x01>;
261		int3-4-conf-io = <0x02>;
262		gyro-hz = "1000_116";
263		gyro-fs = <1000>;
264	};
265};
266
267&lpspi6 {
268	status = "okay";
269};
270
271&lpi2c1 {
272	status = "okay";
273
274	ist8310: ist8310@e {
275		compatible = "isentek,ist8310";
276		reg = <0xe>;
277
278	};
279
280	ncp5623c: ncp5623c@39 {
281		compatible = "onnn,ncp5623c";
282		reg = <0x39>;
283
284		led_0 {
285			label = "GNSS LED";
286			index = <0>;
287			color-mapping =
288				<LED_COLOR_ID_RED>,
289				<LED_COLOR_ID_GREEN>,
290				<LED_COLOR_ID_BLUE>;
291		};
292	};
293};
294
295&lpi2c2 {
296	status = "okay";
297	clock-frequency = <I2C_BITRATE_FAST>;
298
299	bmp388_0: bmp388@76 {
300		compatible = "bosch,bmp388";
301		int-gpios = <&gpio2 3 GPIO_ACTIVE_HIGH>;
302		reg = <0x76>;
303		status = "okay";
304		odr = "50";
305		osr-press = <4>;
306		osr-temp = <2>;
307	};
308};
309
310&lpi2c3 {
311	status = "okay";
312	clock-frequency = <I2C_BITRATE_FAST>;
313
314	bmm150: bmm150@10 {
315		compatible = "bosch,bmm150";
316		status = "okay";
317		reg = <0x10>;
318	};
319
320	bmp388_1: bmp388@77 {
321		compatible = "bosch,bmp388";
322		reg = <0x77>;
323		status = "okay";
324		odr = "50";
325		osr-press = <4>;
326		osr-temp = <2>;
327	};
328};
329
330&lpi2c6 {
331	status = "okay";
332};
333
334&flexpwm1_pwm0 {
335	status = "okay";
336	pinctrl-0 = <&pinmux_flexpwm_vmu_ch1>;
337	pinctrl-names = "default";
338	nxp,prescaler = <64>;
339};
340
341&flexpwm1_pwm1 {
342	status = "okay";
343	pinctrl-0 = <&pinmux_flexpwm_vmu_ch2>;
344	pinctrl-names = "default";
345	nxp,prescaler = <64>;
346};
347
348&flexpwm1_pwm2	{
349	status = "okay";
350	pinctrl-0 = <&pinmux_flexpwm_vmu_ch3>;
351	pinctrl-names = "default";
352	nxp,prescaler = <64>;
353};
354
355&flexpwm2_pwm0	{
356	status = "okay";
357	pinctrl-0 = <&pinmux_flexpwm_vmu_ch4>;
358	pinctrl-names = "default";
359	nxp,prescaler = <64>;
360};
361
362&flexpwm2_pwm1	{
363	status = "okay";
364	pinctrl-0 = <&pinmux_flexpwm_vmu_ch5>;
365	pinctrl-names = "default";
366	nxp,prescaler = <64>;
367};
368
369&flexpwm2_pwm2	{
370	status = "okay";
371	pinctrl-0 = <&pinmux_flexpwm_vmu_ch6>;
372	pinctrl-names = "default";
373	nxp,prescaler = <64>;
374};
375
376&flexpwm2_pwm3	{
377	status = "okay";
378	pinctrl-0 = <&pinmux_flexpwm_vmu_ch7>;
379	pinctrl-names = "default";
380	nxp,prescaler = <64>;
381};
382
383&flexpwm3_pwm0	{
384	status = "okay";
385	pinctrl-0 = <&pinmux_flexpwm_vmu_ch8>;
386	pinctrl-names = "default";
387	nxp,prescaler = <64>;
388};
389
390
391&gpt5 {
392	compatible = "nxp,gpt-ppm-input";
393	pinctrl-0 = <&pinmux_gpt_ppm>;
394	pinctrl-names = "default";
395	capture-channel = <1>;
396};
397
398&usdhc1 {
399	status = "okay";
400	sdmmc {
401		compatible = "zephyr,sdmmc-disk";
402		status = "okay";
403	};
404};
405
406&edma0 {
407	status = "okay";
408};
409
410&lpadc1 {
411	status = "okay";
412};
413
414/* GPT and Systick are enabled. If power management is enabled, the GPT
415 * timer will be used instead of systick, as allows the core clock to
416 * be gated.
417 */
418&gpt_hw_timer {
419	status = "disabled";
420};
421
422&systick {
423	status = "okay";
424};
425
426&wdog1 {
427	status = "okay";
428};
429
430&enet1g {
431	status = "okay";
432	int-gpios = <&gpio5 10 GPIO_ACTIVE_HIGH>;
433};
434
435zephyr_udc0: &usb1 {
436	status = "okay";
437};
438