1/*
2 * Copyright 2021,2023-2024 NXP
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
7#include <mem.h>
8#include <arm/armv7-m.dtsi>
9#include <zephyr/dt-bindings/adc/adc.h>
10#include <zephyr/dt-bindings/clock/imx_ccm_rev2.h>
11#include <zephyr/dt-bindings/gpio/gpio.h>
12#include <zephyr/dt-bindings/i2c/i2c.h>
13#include <zephyr/dt-bindings/pwm/pwm.h>
14#include <zephyr/dt-bindings/pm/imx_spc.h>
15#include <zephyr/dt-bindings/mipi_dsi/mipi_dsi.h>
16/ {
17	chosen {
18		zephyr,entropy = &caam;
19	};
20
21	cpus {
22		#address-cells = <1>;
23		#size-cells = <0>;
24
25		cpu0: cpu@0 {
26			device_type = "cpu";
27			compatible = "arm,cortex-m7";
28			reg = <0>;
29
30			#address-cells = <1>;
31			#size-cells = <1>;
32			d-cache-line-size = <32>;
33
34			mpu: mpu@e000ed90 {
35				compatible = "arm,armv7m-mpu";
36				reg = <0xe000ed90 0x40>;
37			};
38		};
39		cpu1: cpu@1 {
40			device_type = "cpu";
41			compatible = "arm,cortex-m4f";
42			reg = <1>;
43			d-cache-line-size = <32>;
44
45			#address-cells = <1>;
46			#size-cells = <1>;
47
48			mpu: mpu@e000ed90 {
49				compatible = "arm,armv7m-mpu";
50				reg = <0xe000ed90 0x40>;
51			};
52		};
53
54		power-states {
55			/*
56			 * Power states are managed with set points (see page 30-35 of RT1170
57			 * datasheet). These set points correspond to various power
58			 * savings, and associated transition (residency) times.
59			 *
60			 * Set points 1 and 10 were chosen as sane defaults to offer
61			 * limited power savings and quick transitions when entering idle for
62			 * short periods, and better power savings with longer transition
63			 * times for long idle periods
64			 */
65			idle: set_point_1_wait {
66				/* idle corresponds to set point 1 (wait) for RT1170 */
67				compatible = "zephyr,power-state";
68				power-state-name="runtime-idle";
69				substate-id = <IMX_SPC_SET_POINT_1_WAIT>;
70				min-residency-us = <100>;
71			};
72
73			suspend: set_point_10_suspend {
74				/*  suspend corresponds to set point 10 for RT1170 */
75				compatible = "zephyr,power-state";
76				power-state-name="suspend-to-idle";
77				substate-id = <IMX_SPC_SET_POINT_10_SUSPEND>;
78				min-residency-us = <5000>;
79				exit-latency-us = <500>;
80			};
81		};
82	};
83
84	xtal: xtal-osc {
85		compatible = "fixed-clock";
86		clock-frequency = <24000000>;
87		#clock-cells = <0>;
88	};
89
90	soc {
91		flexspi: spi@400cc000 {
92			compatible = "nxp,imx-flexspi";
93			reg = <0x400cc000 0x4000>;
94			interrupts = <130 0>;
95			#address-cells = <1>;
96			#size-cells = <0>;
97			status = "disabled";
98			clocks = <&ccm IMX_CCM_FLEXSPI_CLK 0x0 0>;
99		};
100
101		flexspi2: spi@400d0000 {
102			compatible = "nxp,imx-flexspi";
103			reg = <0x400d0000 0x4000>;
104			interrupts = <131 0>;
105			#address-cells = <1>;
106			#size-cells = <0>;
107			status = "disabled";
108			clocks = <&ccm IMX_CCM_FLEXSPI2_CLK 0x0 0>;
109		};
110
111		semc: semc0@400d4000 {
112			compatible = "nxp,imx-semc";
113			reg = <0x400d4000 0x4000>;
114			interrupts = <132 0>;
115			#address-cells = <1>;
116			#size-cells = <1>;
117		};
118
119		/* GPT1 is used for the hardware timer, not as a standard counter */
120		gpt_hw_timer: gpt@400ec000 {
121			compatible = "nxp,gpt-hw-timer";
122			reg = <0x400ec000 0x4000>;
123			interrupts = <119 0>;
124			status = "disabled";
125		};
126
127		gpt2: gpt@400f0000 {
128			compatible = "nxp,imx-gpt";
129			reg = <0x400f0000 0x4000>;
130			interrupts = <120 0>;
131			gptfreq = <24000000>;
132			clocks = <&ccm IMX_CCM_GPT_CLK 0x41 0>;
133		};
134
135		gpt3: gpt@400f4000 {
136			compatible = "nxp,imx-gpt";
137			reg = <0x400f4000 0x4000>;
138			interrupts = <121 0>;
139			gptfreq = <24000000>;
140			clocks = <&ccm IMX_CCM_GPT_CLK 0x42 0>;
141		};
142
143		gpt4: gpt@400f8000 {
144			compatible = "nxp,imx-gpt";
145			reg = <0x400f8000 0x4000>;
146			interrupts = <122 0>;
147			gptfreq = <24000000>;
148			clocks = <&ccm IMX_CCM_GPT_CLK 0x43 0>;
149		};
150
151		gpt5: gpt@400fc000 {
152			compatible = "nxp,imx-gpt";
153			reg = <0x400fc000 0x4000>;
154			interrupts = <123 0>;
155			gptfreq = <24000000>;
156			clocks = <&ccm IMX_CCM_GPT_CLK 0x44 0>;
157		};
158
159		gpt6: gpt@40100000 {
160			compatible = "nxp,imx-gpt";
161			reg = <0x40100000 0x4000>;
162			interrupts = <124 0>;
163			gptfreq = <24000000>;
164			clocks = <&ccm IMX_CCM_GPT_CLK 0x45 0>;
165		};
166
167		qtmr1: qtmr@4015c000 {
168			compatible = "nxp,qtmr-pwm";
169			reg = <0x4015c000 0x4000>;
170			interrupts = <171 0>;
171			status = "disabled";
172			clocks = <&ccm IMX_CCM_QTMR1_CLK 0x0 0>;
173		};
174
175		qtmr2: qtmr@40160000 {
176			compatible = "nxp,qtmr-pwm";
177			reg = <0x40160000 0x4000>;
178			interrupts = <172 0>;
179			status = "disabled";
180			clocks = <&ccm IMX_CCM_QTMR2_CLK 0x0 0>;
181		};
182
183		qtmr3: qtmr@40164000 {
184			compatible = "nxp,qtmr-pwm";
185			reg = <0x40164000 0x4000>;
186			interrupts = <173 0>;
187			status = "disabled";
188			clocks = <&ccm IMX_CCM_QTMR3_CLK 0x0 0>;
189		};
190
191		qtmr4: qtmr@40168000 {
192			compatible = "nxp,qtmr-pwm";
193			reg = <0x40168000 0x4000>;
194			interrupts = <174 0>;
195			status = "disabled";
196			clocks = <&ccm IMX_CCM_QTMR4_CLK 0x0 0>;
197		};
198
199		ccm: ccm@40cc0000 {
200			compatible = "nxp,imx-ccm-rev2";
201			reg = <0x40cc0000 0x4000>;
202
203			#clock-cells = <3>;
204
205			/*
206			 * ARM PLL is an integer PLL, with an input clock
207			 * of 24MHz. The PLL features a loop divider and
208			 * post divider. The output frequency is calculated
209			 * as Fout = 24MHz * (clock-mult / clock-div)
210			 */
211			arm_pll: arm-pll {
212				compatible = "fixed-factor-clock";
213				#clock-cells = <0>;
214			};
215
216		};
217
218		gpio1: gpio@4012c000 {
219			compatible = "nxp,imx-gpio";
220			reg = <0x4012c000 0x4000>;
221			interrupts = <100 0>, <101 0>;
222			gpio-controller;
223			#gpio-cells = <2>;
224		};
225
226		/*
227		 * Note that CM7 and CM4 cores do not have the same memory addresses
228		 * for GPIO2 and GPIO3, so those peripherals are defined in the SOC
229		 * specific DTS files
230		 */
231
232		gpio4: gpio@40138000 {
233			compatible = "nxp,imx-gpio";
234			reg = <0x40138000 0x4000>;
235			interrupts = <106 0>, <107 0>;
236			gpio-controller;
237			#gpio-cells = <2>;
238		};
239
240		gpio5: gpio@4013c000 {
241			compatible = "nxp,imx-gpio";
242			reg = <0x4013c000 0x4000>;
243			interrupts = <108 0>, <109 0>;
244			gpio-controller;
245			#gpio-cells = <2>;
246		};
247
248		gpio6: gpio@40140000 {
249			compatible = "nxp,imx-gpio";
250			reg = <0x40140000 0x4000>;
251			gpio-controller;
252			#gpio-cells = <2>;
253		};
254
255		gpio7: gpio@40c5c000 {
256			compatible = "nxp,imx-gpio";
257			reg = <0x40c5c000 0x4000>;
258			gpio-controller;
259			#gpio-cells = <2>;
260		};
261
262		gpio8: gpio@40c60000 {
263			compatible = "nxp,imx-gpio";
264			reg = <0x40c60000 0x4000>;
265			gpio-controller;
266			#gpio-cells = <2>;
267		};
268
269		gpio9: gpio@40c64000 {
270			compatible = "nxp,imx-gpio";
271			reg = <0x40c64000 0x4000>;
272			gpio-controller;
273			#gpio-cells = <2>;
274		};
275
276		gpio10: gpio@40c68000 {
277			compatible = "nxp,imx-gpio";
278			reg = <0x40c68000 0x4000>;
279			gpio-controller;
280			#gpio-cells = <2>;
281		};
282
283		gpio11: gpio@40c6c000 {
284			compatible = "nxp,imx-gpio";
285			reg = <0x40c6c000 0x4000>;
286			gpio-controller;
287			#gpio-cells = <2>;
288		};
289
290		gpio12: gpio@40c70000 {
291			compatible = "nxp,imx-gpio";
292			reg = <0x40c70000 0x4000>;
293			gpio-controller;
294			#gpio-cells = <2>;
295		};
296
297		gpio13: gpio@40ca0000 {
298			compatible = "nxp,imx-gpio";
299			reg = <0x40ca0000 0x4000>;
300			interrupts = <93 0>;
301			gpio-controller;
302			#gpio-cells = <2>;
303		};
304
305		lpi2c1: i2c@40104000 {
306			compatible = "nxp,imx-lpi2c";
307			clock-frequency = <I2C_BITRATE_STANDARD>;
308			#address-cells = <1>;
309			#size-cells = <0>;
310			reg = <0x40104000 0x4000>;
311			interrupts = <32 0>;
312			clocks = <&ccm IMX_CCM_LPI2C1_CLK 0x70 6>;
313			status = "disabled";
314		};
315
316		lpi2c2: i2c@40108000 {
317			compatible = "nxp,imx-lpi2c";
318			clock-frequency = <I2C_BITRATE_STANDARD>;
319			#address-cells = <1>;
320			#size-cells = <0>;
321			reg = <0x40108000 0x4000>;
322			interrupts = <33 0>;
323			clocks = <&ccm IMX_CCM_LPI2C2_CLK 0x70 8>;
324			status = "disabled";
325		};
326
327		lpi2c3: i2c@4010c000 {
328			compatible = "nxp,imx-lpi2c";
329			clock-frequency = <I2C_BITRATE_STANDARD>;
330			#address-cells = <1>;
331			#size-cells = <0>;
332			reg = <0x4010c000 0x4000>;
333			interrupts = <34 0>;
334			clocks = <&ccm IMX_CCM_LPI2C3_CLK 0x70 10>;
335			status = "disabled";
336		};
337
338		lpi2c4: i2c@40110000 {
339			compatible = "nxp,imx-lpi2c";
340			clock-frequency = <I2C_BITRATE_STANDARD>;
341			#address-cells = <1>;
342			#size-cells = <0>;
343			reg = <0x40110000 0x4000>;
344			interrupts = <35 0>;
345			clocks = <&ccm IMX_CCM_LPI2C4_CLK 0x80 24>;
346			status = "disabled";
347		};
348
349		lpi2c5: i2c@40c34000 {
350			compatible = "nxp,imx-lpi2c";
351			clock-frequency = <I2C_BITRATE_STANDARD>;
352			#address-cells = <1>;
353			#size-cells = <0>;
354			reg = <0x40c34000 0x4000>;
355			interrupts = <36 0>;
356			clocks = <&ccm IMX_CCM_LPI2C5_CLK 0x80 24>;
357			status = "disabled";
358		};
359
360		lpi2c6: i2c@40c38000 {
361			compatible = "nxp,imx-lpi2c";
362			clock-frequency = <I2C_BITRATE_STANDARD>;
363			#address-cells = <1>;
364			#size-cells = <0>;
365			reg = <0x40c38000 0x4000>;
366			interrupts = <37 0>;
367			clocks = <&ccm IMX_CCM_LPI2C6_CLK 0x80 24>;
368			status = "disabled";
369		};
370
371		iomuxc: iomuxc@400e8000 {
372			compatible = "nxp,imx-iomuxc";
373			reg = <0x400e8000 0x4000>;
374			status = "okay";
375			pinctrl: pinctrl {
376				status = "okay";
377				compatible = "nxp,mcux-rt11xx-pinctrl";
378			};
379		};
380
381		iomuxc_lpsr: iomuxc_lpsr@40c08000 {
382			compatible = "nxp,mcux-rt-pinctrl";
383			reg = <0x40c08000 0x4000>;
384			status = "disabled";
385		};
386
387		iomuxc_lpsr_gpr: iomuxc_lpsr_gpr@40c08000 {
388			compatible = "nxp,imx-gpr";
389			reg = <0x40c08000 0x4000>;
390			#pinmux-cells = <2>;
391		};
392
393		lcdif: display-controller@40804000 {
394			compatible = "nxp,imx-elcdif";
395			reg = <0x40804000 0x4000>;
396			interrupts = <54 0>;
397			status = "disabled";
398			nxp,pxp = <&pxp>;
399		};
400
401		mipi_dsi: mipi-dsi@4080c000 {
402			compatible = "nxp,imx-mipi-dsi";
403			#address-cells = <1>;
404			#size-cells = <0>;
405			reg = <0x4080c000 0x200>,
406			      <0x4080c200 0x80>,
407			      <0x4080c280 0x80>,
408			      <0x4080c300 0x200>;
409			interrupts = <59 1>;
410			status = "disabled";
411		};
412
413		lpspi1: spi@40114000 {
414			compatible = "nxp,imx-lpspi";
415			reg = <0x40114000 0x4000>;
416			interrupts = <38 3>;
417			status = "disabled";
418			clocks = <&ccm IMX_CCM_LPSPI1_CLK 0x6c 0>;
419			#address-cells = <1>;
420			#size-cells = <0>;
421		};
422
423		lpspi2: spi@40118000 {
424			compatible = "nxp,imx-lpspi";
425			reg = <0x40118000 0x4000>;
426			interrupts = <39 3>;
427			status = "disabled";
428			clocks = <&ccm IMX_CCM_LPSPI2_CLK 0x6c 2>;
429			#address-cells = <1>;
430			#size-cells = <0>;
431		};
432
433		lpspi3: spi@4011c000 {
434			compatible = "nxp,imx-lpspi";
435			reg = <0x4011c000 0x4000>;
436			interrupts = <40 3>;
437			status = "disabled";
438			clocks = <&ccm IMX_CCM_LPSPI3_CLK 0x6c 4>;
439			#address-cells = <1>;
440			#size-cells = <0>;
441		};
442
443		lpspi4: spi@40120000 {
444			compatible = "nxp,imx-lpspi";
445			reg = <0x40120000 0x4000>;
446			interrupts = <41 3>;
447			status = "disabled";
448			clocks = <&ccm IMX_CCM_LPSPI4_CLK 0x6c 6>;
449			#address-cells = <1>;
450			#size-cells = <0>;
451		};
452
453		lpspi5: spi@40c2c000 {
454			compatible = "nxp,imx-lpspi";
455			reg = <0x40c2c000 0x4000>;
456			interrupts = <42 3>;
457			status = "disabled";
458			clocks = <&ccm IMX_CCM_LPSPI5_CLK 0x6c 6>;
459			#address-cells = <1>;
460			#size-cells = <0>;
461		};
462
463		lpspi6: spi@40c30000 {
464			compatible = "nxp,imx-lpspi";
465			reg = <0x40c30000 0x4000>;
466			interrupts = <43 3>;
467			status = "disabled";
468			clocks = <&ccm IMX_CCM_LPSPI6_CLK 0x6c 6>;
469			#address-cells = <1>;
470			#size-cells = <0>;
471		};
472
473		lpuart1: uart@4007c000 {
474			compatible = "nxp,kinetis-lpuart";
475			reg = <0x4007c000 0x4000>;
476			interrupts = <20 0>;
477			clocks = <&ccm IMX_CCM_LPUART1_CLK 0x7c 24>;
478			status = "disabled";
479		};
480
481		lpuart2: uart@40080000 {
482			compatible = "nxp,kinetis-lpuart";
483			reg = <0x40080000 0x4000>;
484			interrupts = <21 0>;
485			clocks = <&ccm IMX_CCM_LPUART2_CLK 0x68 28>;
486			status = "disabled";
487		};
488
489		lpuart3: uart@40084000 {
490			compatible = "nxp,kinetis-lpuart";
491			reg = <0x40084000 0x4000>;
492			interrupts = <22 0>;
493			clocks = <&ccm IMX_CCM_LPUART3_CLK 0x68 12>;
494			status = "disabled";
495		};
496
497		lpuart4: uart@40088000 {
498			compatible = "nxp,kinetis-lpuart";
499			reg = <0x40088000 0x4000>;
500			interrupts = <23 0>;
501			clocks = <&ccm IMX_CCM_LPUART4_CLK 0x6c 24>;
502			status = "disabled";
503		};
504
505		lpuart5: uart@4008c000 {
506			compatible = "nxp,kinetis-lpuart";
507			reg = <0x4008c000 0x4000>;
508			interrupts = <24 0>;
509			clocks = <&ccm IMX_CCM_LPUART5_CLK 0x74 2>;
510			status = "disabled";
511		};
512
513		lpuart6: uart@40090000 {
514			compatible = "nxp,kinetis-lpuart";
515			reg = <0x40090000 0x4000>;
516			interrupts = <25 0>;
517			clocks = <&ccm IMX_CCM_LPUART6_CLK 0x74 6>;
518			status = "disabled";
519		};
520
521		lpuart7: uart@40094000 {
522			compatible = "nxp,kinetis-lpuart";
523			reg = <0x40094000 0x4000>;
524			interrupts = <26 0>;
525			clocks = <&ccm IMX_CCM_LPUART7_CLK 0x7c 26>;
526			status = "disabled";
527		};
528
529		lpuart8: uart@40098000 {
530			compatible = "nxp,kinetis-lpuart";
531			reg = <0x40098000 0x4000>;
532			interrupts = <27 0>;
533			clocks = <&ccm IMX_CCM_LPUART8_CLK 0x80 14>;
534			status = "disabled";
535		};
536
537		lpuart9: uart@4009c000 {
538			compatible = "nxp,kinetis-lpuart";
539			reg = <0x4009c000 0x4000>;
540			interrupts = <28 0>;
541			clocks = <&ccm IMX_CCM_LPUART9_CLK 0x80 14>;
542			status = "disabled";
543		};
544
545		lpuart10: uart@400a0000 {
546			compatible = "nxp,kinetis-lpuart";
547			reg = <0x400a0000 0x4000>;
548			interrupts = <29 0>;
549			clocks = <&ccm IMX_CCM_LPUART10_CLK 0x80 14>;
550			status = "disabled";
551		};
552
553		lpuart11: uart@40c24000 {
554			compatible = "nxp,kinetis-lpuart";
555			reg = <0x40c24000 0x4000>;
556			interrupts = <30 0>;
557			clocks = <&ccm IMX_CCM_LPUART11_CLK 0x80 14>;
558			status = "disabled";
559		};
560
561		lpuart12: uart@40c28000 {
562			compatible = "nxp,kinetis-lpuart";
563			reg = <0x40c28000 0x4000>;
564			interrupts = <31 0>;
565			clocks = <&ccm IMX_CCM_LPUART12_CLK 0x80 14>;
566			status = "disabled";
567		};
568
569		flexpwm1: flexpwm@4018c000 {
570			compatible = "nxp,flexpwm";
571			reg = <0x4018c000 0x4000>;
572			interrupts = <129 0>;
573
574			flexpwm1_pwm0: flexpwm1_pwm0 {
575				compatible = "nxp,imx-pwm";
576				index = <0>;
577				interrupts = <125 0>;
578				#pwm-cells = <3>;
579				clocks = <&ccm IMX_CCM_PWM_CLK 0 0>;
580				nxp,prescaler = <128>;
581				status = "disabled";
582			};
583
584			flexpwm1_pwm1: flexpwm1_pwm1 {
585				compatible = "nxp,imx-pwm";
586				index = <1>;
587				interrupts = <126 0>;
588				#pwm-cells = <3>;
589				clocks = <&ccm IMX_CCM_PWM_CLK 0 0>;
590				nxp,prescaler = <128>;
591				status = "disabled";
592			};
593
594			flexpwm1_pwm2: flexpwm1_pwm2 {
595				compatible = "nxp,imx-pwm";
596				index = <2>;
597				interrupts = <127 0>;
598				#pwm-cells = <3>;
599				clocks = <&ccm IMX_CCM_PWM_CLK 0 0>;
600				nxp,prescaler = <128>;
601				status = "disabled";
602			};
603
604			flexpwm1_pwm3: flexpwm1_pwm3 {
605				compatible = "nxp,imx-pwm";
606				index = <3>;
607				interrupts = <128 0>;
608				#pwm-cells = <3>;
609				clocks = <&ccm IMX_CCM_PWM_CLK 0 0>;
610				nxp,prescaler = <128>;
611				status = "disabled";
612			};
613		};
614
615		flexpwm2: flexpwm@40190000 {
616			compatible = "nxp,flexpwm";
617			reg = <0x40190000 0x4000>;
618			interrupts =  <181 0>;
619
620			flexpwm2_pwm0: flexpwm2_pwm0 {
621				compatible = "nxp,imx-pwm";
622				index = <0>;
623				interrupts = <177 0>;
624				#pwm-cells = <3>;
625				clocks = <&ccm IMX_CCM_PWM_CLK 0 0>;
626				nxp,prescaler = <128>;
627				status = "disabled";
628			};
629
630			flexpwm2_pwm1: flexpwm2_pwm1 {
631				compatible = "nxp,imx-pwm";
632				index = <1>;
633				interrupts = <178 0>;
634				#pwm-cells = <3>;
635				clocks = <&ccm IMX_CCM_PWM_CLK 0 0>;
636				nxp,prescaler = <128>;
637				status = "disabled";
638			};
639
640			flexpwm2_pwm2: flexpwm2_pwm2 {
641				compatible = "nxp,imx-pwm";
642				index = <2>;
643				interrupts = <179 0>;
644				#pwm-cells = <3>;
645				clocks = <&ccm IMX_CCM_PWM_CLK 0 0>;
646				nxp,prescaler = <128>;
647				status = "disabled";
648			};
649
650			flexpwm2_pwm3: flexpwm2_pwm3 {
651				compatible = "nxp,imx-pwm";
652				index = <3>;
653				interrupts = <180 0>;
654				#pwm-cells = <3>;
655				clocks = <&ccm IMX_CCM_PWM_CLK 0 0>;
656				nxp,prescaler = <128>;
657				status = "disabled";
658			};
659		};
660
661		flexpwm3: flexpwm@40194000 {
662			compatible = "nxp,flexpwm";
663			reg = <0x40194000 0x4000>;
664			interrupts =  <186 0>;
665
666			flexpwm3_pwm0: flexpwm3_pwm0 {
667				compatible = "nxp,imx-pwm";
668				index = <0>;
669				interrupts = <182 0>;
670				#pwm-cells = <3>;
671				clocks = <&ccm IMX_CCM_PWM_CLK 0 0>;
672				nxp,prescaler = <128>;
673				status = "disabled";
674			};
675
676			flexpwm3_pwm1: flexpwm3_pwm1 {
677				compatible = "nxp,imx-pwm";
678				index = <1>;
679				interrupts = <183 0>;
680				#pwm-cells = <3>;
681				clocks = <&ccm IMX_CCM_PWM_CLK 0 0>;
682				nxp,prescaler = <128>;
683				status = "disabled";
684			};
685
686			flexpwm3_pwm2: flexpwm3_pwm2 {
687				compatible = "nxp,imx-pwm";
688				index = <2>;
689				interrupts = <184 0>;
690				#pwm-cells = <3>;
691				clocks = <&ccm IMX_CCM_PWM_CLK 0 0>;
692				nxp,prescaler = <128>;
693				status = "disabled";
694			};
695
696			flexpwm3_pwm3: flexpwm3_pwm3 {
697				compatible = "nxp,imx-pwm";
698				index = <3>;
699				interrupts = <185 0>;
700				#pwm-cells = <3>;
701				clocks = <&ccm IMX_CCM_PWM_CLK 0 0>;
702				nxp,prescaler = <128>;
703				status = "disabled";
704			};
705		};
706
707		flexpwm4: flexpwm@40198000 {
708			compatible = "nxp,flexpwm";
709			reg = <0x40198000 0x4000>;
710			interrupts = <191 0>;
711
712			flexpwm4_pwm0: flexpwm4_pwm0 {
713				compatible = "nxp,imx-pwm";
714				index = <0>;
715				interrupts = <187 0>;
716				#pwm-cells = <3>;
717				clocks = <&ccm IMX_CCM_PWM_CLK 0 0>;
718				nxp,prescaler = <128>;
719				status = "disabled";
720			};
721
722			flexpwm4_pwm1: flexpwm4_pwm1 {
723				compatible = "nxp,imx-pwm";
724				index = <1>;
725				interrupts = <188 0>;
726				#pwm-cells = <3>;
727				clocks = <&ccm IMX_CCM_PWM_CLK 0 0>;
728				nxp,prescaler = <128>;
729				status = "disabled";
730			};
731
732			flexpwm4_pwm2: flexpwm4_pwm2 {
733				compatible = "nxp,imx-pwm";
734				index = <2>;
735				interrupts = <189 0>;
736				#pwm-cells = <3>;
737				clocks = <&ccm IMX_CCM_PWM_CLK 0 0>;
738				nxp,prescaler = <128>;
739				status = "disabled";
740			};
741
742			flexpwm4_pwm3: flexpwm4_pwm3 {
743				compatible = "nxp,imx-pwm";
744				index = <3>;
745				interrupts = <190 0>;
746				#pwm-cells = <3>;
747				clocks = <&ccm IMX_CCM_PWM_CLK 0 0>;
748				nxp,prescaler = <128>;
749				status = "disabled";
750			};
751		};
752
753		enet: ethernet@40424000 {
754			compatible = "nxp,enet";
755			reg = <0x40424000 0x628>;
756			clocks = <&ccm IMX_CCM_ENET_CLK 0 0>;
757			enet_mac: ethernet {
758				compatible = "nxp,enet-mac";
759				interrupts = <137 0>;
760				interrupt-names = "COMMON";
761				nxp,mdio = <&enet_mdio>;
762				nxp,ptp-clock = <&enet_ptp_clock>;
763				status = "disabled";
764			};
765			enet_mdio: mdio {
766				compatible = "nxp,enet-mdio";
767				status = "disabled";
768				#address-cells = <1>;
769				#size-cells = <0>;
770			};
771			enet_ptp_clock: ptp_clock {
772				compatible = "nxp,enet-ptp-clock";
773				interrupts = <138 0>;
774				status = "disabled";
775				clocks = <&ccm IMX_CCM_ENET_PLL 0 0>;
776			};
777		};
778
779		enet1g: ethernet@40420000 {
780			compatible = "nxp,enet1g";
781			reg = <0x40420000 0x628>;
782			clocks = <&ccm IMX_CCM_ENET1G_CLK 0 0>;
783			status = "disabled";
784			enet1g_mac: ethernet {
785				compatible = "nxp,enet-mac";
786				interrupts = <141 0>;
787				interrupt-names = "COMMON";
788				nxp,mdio = <&enet1g_mdio>;
789				nxp,ptp-clock = <&enet1g_ptp_clock>;
790				status = "disabled";
791			};
792			enet1g_mdio: mdio {
793				compatible = "nxp,enet-mdio";
794				status = "disabled";
795				#address-cells = <1>;
796				#size-cells = <0>;
797			};
798			enet1g_ptp_clock: ptp_clock {
799				compatible = "nxp,enet-ptp-clock";
800				interrupts = <142 0>;
801				status = "disabled";
802				clocks = <&ccm IMX_CCM_ENET_PLL 0 0>;
803			};
804		};
805
806		caam: caam@40440000 {
807			compatible = "nxp,imx-caam";
808			reg = <0x40440000 0x81000>;
809			interrupts = <69 0>, <70 0>, <71 0>,
810				     <72 0>,  <73 0>,  <74 0>;
811			status = "okay";
812		};
813
814		usb1: usbd@40430000 {
815			compatible = "nxp,ehci";
816			reg = <0x40430000 0x200>;
817			interrupts = <136 1>;
818			interrupt-names = "usb_otg";
819			clocks = <&xtal>;
820			num-bidir-endpoints = <8>;
821			status = "disabled";
822		};
823
824		usb2: usbd@4042c000 {
825			compatible = "nxp,ehci";
826			reg = <0x4042c000 0x200>;
827			interrupts = <135 1>;
828			interrupt-names = "usb_otg";
829			clocks = <&xtal>;
830			num-bidir-endpoints = <8>;
831			status = "disabled";
832		};
833
834		usbphy1: usbphy@40434000 {
835			compatible = "nxp,usbphy";
836			reg = <0x40434000 0x1000>;
837			status = "disabled";
838		};
839
840		usbphy2: usbphy@40438000 {
841			compatible = "nxp,usbphy";
842			reg = <0x40438000 0x1000>;
843			status = "disabled";
844		};
845
846		usdhc1: usdhc@40418000 {
847			compatible = "nxp,imx-usdhc";
848			reg = <0x40418000 0x4000>;
849			status = "disabled";
850			interrupts = <133 0>;
851			clocks = <&ccm IMX_CCM_USDHC1_CLK 0 0>;
852			max-current-330 = <1020>;
853			max-current-180 = <1020>;
854			max-bus-freq = <208000000>;
855			min-bus-freq = <400000>;
856		};
857
858		usdhc2: usdhc@4041c000 {
859			compatible = "nxp,imx-usdhc";
860			reg = <0x4041c000 0x4000>;
861			status = "disabled";
862			interrupts = <134 0>;
863			clocks = <&ccm IMX_CCM_USDHC2_CLK 0 0>;
864			max-current-330 = <1020>;
865			max-current-180 = <1020>;
866			max-bus-freq = <208000000>;
867			min-bus-freq = <400000>;
868		};
869
870		csi: csi@40800000 {
871			compatible = "nxp,imx-csi";
872			reg = <0x40800000 0x4000>;
873			interrupts = <56 1>;
874			status = "disabled";
875			source = <&mipi_csi2rx>;
876
877			port {
878				csi_ep_in: endpoint {
879					remote-endpoint = <&mipi_csi2rx_ep_out>;
880				};
881			};
882		};
883
884		mipi_csi2rx: mipi_csi2rx@40810000 {
885			compatible = "nxp,mipi-csi2rx";
886			reg = <0x40810000 0x200>;
887			status = "disabled";
888
889			ports {
890				#address-cells = <1>;
891				#size-cells = <0>;
892
893				port@0 {
894					reg = <0>;
895					mipi_csi2rx_ep_out: endpoint {
896						remote-endpoint = <&csi_ep_in>;
897					};
898				};
899
900				port@1 {
901					reg = <1>;
902				};
903			};
904		};
905
906		flexcan1: can@400c4000 {
907			compatible = "nxp,flexcan-fd", "nxp,flexcan";
908			reg = <0x400c4000 0x1000>;
909			interrupts = <44 0>, <45 0>;
910			interrupt-names = "common", "error";
911			clocks = <&ccm IMX_CCM_CAN1_CLK 0x68 14>;
912			clk-source = <0>;
913			status = "disabled";
914		};
915
916		flexcan2: can@400c8000 {
917			compatible = "nxp,flexcan-fd", "nxp,flexcan";
918			reg = <0x400c8000 0x1000>;
919			interrupts = <46 0>, <47 0>;
920			interrupt-names = "common", "error";
921			clocks = <&ccm IMX_CCM_CAN2_CLK 0x68 18>;
922			clk-source = <0>;
923			status = "disabled";
924		};
925
926		flexcan3: can@40c3c000 {
927			compatible = "nxp,flexcan-fd", "nxp,flexcan";
928			reg = <0x40c3c000 0x1000>;
929			interrupts = <48 0>, <49 0>;
930			interrupt-names = "common", "error";
931			clocks = <&ccm IMX_CCM_CAN3_CLK 0x84 6>;
932			clk-source = <0>;
933			status = "disabled";
934		};
935
936		wdog1: wdog@40030000 {
937			compatible = "nxp,imx-wdog";
938			reg = <0x40030000 0xA>;
939			status = "disabled";
940			interrupts = <112 0>;
941		};
942
943		ocram: ocram@20200000 {
944			compatible = "zephyr,memory-region", "mmio-sram";
945			zephyr,memory-region = "OCRAM";
946			reg = <0x20200000 DT_SIZE_K(256)>;
947		};
948
949		ocram1: ocram@20240000 {
950			compatible = "zephyr,memory-region", "mmio-sram";
951			zephyr,memory-region = "OCRAM1";
952			reg = <0x20240000 DT_SIZE_K(512)>;
953		};
954
955		ocram2: ocram@202c0000 {
956			compatible = "zephyr,memory-region", "mmio-sram";
957			zephyr,memory-region = "OCRAM2";
958			reg = <0x202c0000 DT_SIZE_K(512)>;
959		};
960
961		lpadc0: lpadc@40050000 {
962			compatible = "nxp,lpc-lpadc";
963			reg = <0x40050000 0x304>;
964			interrupts = <88 0>;
965			status = "disabled";
966			clk-divider = <8>;
967			clk-source = <0>;
968			voltage-ref= <1>;
969			calibration-average = <128>;
970			power-level = <0>;
971			offset-value-a = <10>;
972			offset-value-b = <10>;
973			#io-channel-cells = <1>;
974			clocks = <&ccm IMX_CCM_LPADC1_CLK 0 0>;
975		};
976
977		lpadc1: lpadc@40054000 {
978			compatible = "nxp,lpc-lpadc";
979			reg = <0x40054000 0x304>;
980			interrupts = <89 0>;
981			status = "disabled";
982			clk-divider = <8>;
983			clk-source = <0>;
984			voltage-ref= <1>;
985			calibration-average = <128>;
986			power-level = <1>;
987			offset-value-a = <10>;
988			offset-value-b = <10>;
989			#io-channel-cells = <1>;
990			clocks = <&ccm IMX_CCM_LPADC2_CLK 0 0>;
991		};
992
993		acmp1: cmp@401a4000 {
994			compatible = "nxp,kinetis-acmp";
995			reg = <0x401a4000 0x4000>;
996			interrupts = <157 0>;
997			status = "disabled";
998			#io-channel-cells = <2>;
999		};
1000
1001		acmp2: cmp@401a8000 {
1002			compatible = "nxp,kinetis-acmp";
1003			reg = <0x401a8000 0x4000>;
1004			interrupts = <158 0>;
1005			status = "disabled";
1006			#io-channel-cells = <2>;
1007		};
1008
1009		acmp3: cmp@401ac000 {
1010			compatible = "nxp,kinetis-acmp";
1011			reg = <0x401ac000 0x4000>;
1012			interrupts = <159 0>;
1013			status = "disabled";
1014			#io-channel-cells = <2>;
1015		};
1016
1017		acmp4: cmp@401b0000 {
1018			compatible = "nxp,kinetis-acmp";
1019			reg = <0x401b0000 0x4000>;
1020			interrupts = <160 0>;
1021			status = "disabled";
1022			#io-channel-cells = <2>;
1023		};
1024
1025		anatop: anatop@40c84000 {
1026			compatible = "nxp,imx-anatop";
1027			reg = <0x40c84000 0x4000>;
1028			#clock-cells = <4>;
1029			#pll-clock-cells = <3>;
1030		};
1031
1032		edma0: dma-controller@40070000 {
1033			#dma-cells = <2>;
1034			compatible = "nxp,mcux-edma";
1035			dma-channels = <32>;
1036			dma-requests = <208>;
1037			nxp,mem2mem;
1038			nxp,a_on;
1039			reg = <0x40070000 0x4000>,
1040				<0x40074000 0x4000>;
1041			clocks = <&ccm IMX_CCM_EDMA_CLK 0x7C 0x000000C0>;
1042				status = "disabled";
1043			interrupts = <0 0>, <1 0>, <2 0>, <3 0>,
1044				<4 0>, <5 0>, <6 0>, <7 0>,
1045				<8 0>, <9 0>, <10 0>, <11 0>,
1046				<12 0>, <13 0>, <14 0>, <15 0>,
1047				<16 0>;
1048			irq-shared-offset = <16>;
1049		};
1050
1051		edma_lpsr0: dma-controller@40c14000 {
1052			#dma-cells = <2>;
1053			compatible = "nxp,mcux-edma";
1054			dma-channels = <32>;
1055			dma-requests = <208>;
1056			nxp,mem2mem;
1057			nxp,a_on;
1058			reg = <0x40c14000 0x4000>,
1059				<0x40c18000 0x4000>;
1060			clocks = <&ccm IMX_CCM_EDMA_LPSR_CLK 0x7C 0x000000C0>;
1061			status = "disabled";
1062			interrupts = <0 0>, <1 0>, <2 0>, <3 0>,
1063				<4 0>, <5 0>, <6 0>, <7 0>,
1064				<8 0>, <9 0>, <10 0>, <11 0>,
1065				<12 0>, <13 0>, <14 0>, <15 0>,
1066				<16 0>;
1067			irq-shared-offset = <16>;
1068		};
1069
1070		pxp: pxp@40814000 {
1071			compatible = "nxp,pxp";
1072			reg = <0x40814000 0x4000>;
1073			interrupts = <57 0>;
1074			status = "disabled";
1075			#dma-cells = <0>;
1076		};
1077
1078		iomuxcgpr: iomuxcgpr@400e4000 {
1079			compatible = "nxp,imx-gpr";
1080			reg = <0x400e4000 0x4000>;
1081			#pinmux-cells = <2>;
1082		};
1083
1084		sai1: sai@40404000 {
1085			compatible = "nxp,mcux-i2s";
1086			#address-cells = <1>;
1087			#size-cells = <0>;
1088			#pinmux-cells = <2>;
1089			reg = <0x40404000 0x4000>;
1090			clocks = <&ccm IMX_CCM_SAI1_CLK 0x2004 4>;
1091			/* Source from audio PLL */
1092			clock-mux = <4>;
1093			pre-div = <0>;
1094			podf = <4>;
1095			pll-clocks = <&anatop 0 0 0>,
1096					<&anatop 0 0 30>,
1097					<&anatop 0 0 1>,
1098					<&anatop 0 0 77>,
1099					<&anatop 0 0 100>;
1100			pll-clock-names = "src", "lp", "pd", "num", "den";
1101			pinmuxes = <&iomuxcgpr 0x0 0x100>;
1102			interrupts = <76 0>;
1103			nxp,tx-channel = <1>;
1104			status = "disabled";
1105		};
1106
1107		sai2: sai@40408000 {
1108			compatible = "nxp,mcux-i2s";
1109			#address-cells = <1>;
1110			#size-cells = <0>;
1111			#pinmux-cells = <2>;
1112			reg = <0x40408000 0x4000>;
1113			clocks = <&ccm IMX_CCM_SAI2_CLK 0x2084 4>;
1114			/* Source from audio PLL */
1115			clock-mux = <4>;
1116			pre-div = <0>;
1117			podf = <63>;
1118			pll-clocks = <&anatop 0 0 0>,
1119					<&anatop 0 0 30>,
1120					<&anatop 0 0 1>,
1121					<&anatop 0 0 77>,
1122					<&anatop 0 0 100>;
1123			pll-clock-names = "src", "lp", "pd", "num", "den";
1124			pinmuxes = <&iomuxcgpr 0x4 0x100>;
1125			interrupts = <77 0>;
1126			nxp,tx-channel = <1>;
1127			status = "disabled";
1128		};
1129
1130		sai3: sai@4040c000 {
1131			compatible = "nxp,mcux-i2s";
1132			#address-cells = <1>;
1133			#size-cells = <0>;
1134			#pinmux-cells = <2>;
1135			reg = <0x4040c000 0x4000>;
1136			clocks = <&ccm IMX_CCM_SAI3_CLK 0x2104 4>;
1137			/* Source from audio PLL */
1138			clock-mux = <4>;
1139			pre-div = <0>;
1140			podf = <63>;
1141			pll-clocks = <&anatop 0 0 0>,
1142					<&anatop 0 0 30>,
1143					<&anatop 0 0 1>,
1144					<&anatop 0 0 77>,
1145					<&anatop 0 0 100>;
1146			pll-clock-names = "src", "lp", "pd", "num", "den";
1147			pinmuxes = <&iomuxcgpr 0x8 0x100>;
1148			interrupts = <78 0>, <79 0>;
1149			nxp,tx-channel = <1>;
1150			status = "disabled";
1151		};
1152
1153		sai4: sai@40c40000 {
1154			compatible = "nxp,mcux-i2s";
1155			#address-cells = <1>;
1156			#size-cells = <0>;
1157			#pinmux-cells = <2>;
1158			reg = <0x40c40000 0x4000>;
1159			clocks = <&ccm IMX_CCM_SAI4_CLK 0x2184 6>;
1160			/* Source from audio PLL */
1161			clock-mux = <6>;
1162			pre-div = <0>;
1163			podf = <63>;
1164			pll-clocks = <&anatop 0 0 0>,
1165					<&anatop 0 0 30>,
1166					<&anatop 0 0 1>,
1167					<&anatop 0 0 77>,
1168					<&anatop 0 0 100>;
1169			pll-clock-names = "src", "lp", "pd", "num", "den";
1170			pinmuxes = <&iomuxcgpr 0x8 0x200>;
1171			interrupts = <80 0>, <81 0>;
1172			nxp,tx-channel = <1>;
1173			status = "disabled";
1174		};
1175
1176		src: reset-controller@40c04000 {
1177			compatible = "nxp,imx-src-rev2";
1178			reg = <0x40c04000 0x4000>;
1179			status = "okay";
1180		};
1181
1182
1183		qdec1: qdec@40174000 {
1184			compatible = "nxp,mcux-qdec";
1185			reg = <0x40174000 0x4000>;
1186			interrupts = <165 0>;
1187			status = "disabled";
1188		};
1189
1190		qdec2: qdec@40178000 {
1191			compatible = "nxp,mcux-qdec";
1192			reg = <0x40178000 0x4000>;
1193			interrupts = <166 0>;
1194			status = "disabled";
1195		};
1196
1197		qdec3: qdec@4017c000 {
1198			compatible = "nxp,mcux-qdec";
1199			reg = <0x4017c000 0x4000>;
1200			interrupts = <167 0>;
1201			status = "disabled";
1202		};
1203
1204		qdec4: qdec@40180000 {
1205			compatible = "nxp,mcux-qdec";
1206			reg = <0x40180000 0x4000>;
1207			interrupts = <168 0>;
1208			status = "disabled";
1209		};
1210
1211		xbar1: xbar1@4003c000 {
1212			compatible = "nxp,mcux-xbar";
1213			reg = <0x4003c000 0x4000>;
1214			interrupts = <143 0>, <144 0>;
1215			status = "disabled";
1216		};
1217
1218		xbar2: xbar2@40040000 {
1219			compatible = "nxp,mcux-xbar";
1220			reg = <0x40040000 0x4000>;
1221			status = "disabled";
1222		};
1223
1224		xbar3: xbar3@40044000 {
1225			compatible = "nxp,mcux-xbar";
1226			reg = <0x40044000 0x4000>;
1227			status = "disabled";
1228		};
1229
1230		pit1: pit@400d8000 {
1231			compatible = "nxp,pit";
1232			reg = <0x400d8000 0x4000>;
1233			clocks = <&ccm IMX_CCM_PIT_CLK 0x0 0>;
1234			interrupts = <155 0>;
1235			max-load-value = <0xffffffff>;
1236			status = "disabled";
1237			#address-cells = <1>;
1238			#size-cells = <0>;
1239
1240			pit1_channel0: pit1_channel@0 {
1241				compatible = "nxp,pit-channel";
1242				reg = <0>;
1243				status = "disabled";
1244			};
1245
1246			pit1_channel1: pit1_channel@1 {
1247				compatible = "nxp,pit-channel";
1248				reg = <1>;
1249				status = "disabled";
1250			};
1251
1252			pit1_channel2: pit1_channel@2 {
1253				compatible = "nxp,pit-channel";
1254				reg = <2>;
1255				status = "disabled";
1256			};
1257
1258			pit1_channel3: pit1_channel@3 {
1259				compatible = "nxp,pit-channel";
1260				reg = <3>;
1261				status = "disabled";
1262			};
1263		};
1264
1265		pit2: pit@40cb0000 {
1266			compatible = "nxp,pit";
1267			reg = <0x40cb0000 0x4000>;
1268			clocks = <&ccm IMX_CCM_PIT1_CLK 0x0 0>;
1269			interrupts = <156 0>;
1270			max-load-value = <0xffffffff>;
1271			status = "disabled";
1272			#address-cells = <1>;
1273			#size-cells = <0>;
1274
1275			pit2_channel0: pit2_channel@0 {
1276				compatible = "nxp,pit-channel";
1277				reg = <0>;
1278				status = "disabled";
1279				};
1280			pit2_channel1: pit2_channel@1 {
1281				compatible = "nxp,pit-channel";
1282				reg = <1>;
1283				status = "disabled";
1284				};
1285			pit2_channel2: pit2_channel@2 {
1286				compatible = "nxp,pit-channel";
1287				reg = <2>;
1288				status = "disabled";
1289			};
1290			pit2_channel3: pit2_channel@3 {
1291				compatible = "nxp,pit-channel";
1292				reg = <3>;
1293				status = "disabled";
1294			};
1295		};
1296	};
1297};
1298
1299&nvic {
1300	arm,num-irq-priority-bits = <4>;
1301};
1302
1303&systick {
1304	/*
1305	 * RT11xx relies by default on the GPT Timer for system clock
1306	 * implementation, so the SysTick node should not be enabled.
1307	 */
1308	status = "disabled";
1309};
1310