/*
 * Copyright (c) 2021, NXP
 *
 * SPDX-License-Identifier: Apache-2.0
 */

#include <mem.h>
#include <arm/armv7-m.dtsi>
#include <zephyr/dt-bindings/clock/imx_ccm_rev2.h>
#include <zephyr/dt-bindings/gpio/gpio.h>
#include <zephyr/dt-bindings/i2c/i2c.h>
#include <zephyr/dt-bindings/pwm/pwm.h>
#include <zephyr/dt-bindings/pm/imx_spc.h>
#include <zephyr/dt-bindings/mipi_dsi/mipi_dsi.h>
/ {
	cpus {
		#address-cells = <1>;
		#size-cells = <0>;

		cpu0: cpu@0 {
			device_type = "cpu";
			compatible = "arm,cortex-m7";
			reg = <0>;

			#address-cells = <1>;
			#size-cells = <1>;
			d-cache-line-size = <32>;

			mpu: mpu@e000ed90 {
				compatible = "arm,armv7m-mpu";
				reg = <0xe000ed90 0x40>;
				arm,num-mpu-regions = <16>;
			};
		};
		cpu1: cpu@1 {
			device_type = "cpu";
			compatible = "arm,cortex-m4f";
			reg = <1>;
			d-cache-line-size = <32>;

			#address-cells = <1>;
			#size-cells = <1>;

			mpu: mpu@e000ed90 {
				compatible = "arm,armv7m-mpu";
				reg = <0xe000ed90 0x40>;
				arm,num-mpu-regions = <16>;
			};
		};
	};

	power-states {
		/*
		 * Power states are managed with set points (see page 30-35 of RT1170
		 * datasheet). These set points correspond to various power
		 * savings, and associated transition (residency) times.
		 *
		 * Set points 1 and 10 were chosen as sane defaults to offer
		 * limited power savings and quick transitions when entering idle for
		 * short periods, and better power savings with longer transition
		 * times for long idle periods
		 */
		idle: set_point_1_wait {
			/* idle corresponds to set point 1 (wait) for RT1170 */
			compatible = "zephyr,power-state";
			power-state-name="runtime-idle";
			substate-id = <IMX_SPC_SET_POINT_1_WAIT>;
			min-residency-us = <100>;
		};

		suspend: set_point_10_suspend {
			/*  suspend corresponds to set point 10 for RT1170 */
			compatible = "zephyr,power-state";
			power-state-name="suspend-to-idle";
			substate-id = <IMX_SPC_SET_POINT_10_SUSPEND>;
			min-residency-us = <5000>;
			exit-latency-us = <500>;
		};
	};

	xtal: xtal-osc {
		compatible = "fixed-clock";
		clock-frequency = <24000000>;
		#clock-cells = <0>;
	};

	soc {
		flexspi: spi@400cc000 {
			compatible = "nxp,imx-flexspi";
			reg = <0x400cc000 0x4000>;
			interrupts = <130 0>;
			#address-cells = <1>;
			#size-cells = <0>;
			status = "disabled";
		};

		flexspi2: spi@400d0000 {
			compatible = "nxp,imx-flexspi";
			reg = <0x400d0000 0x4000>;
			interrupts = <131 0>;
			#address-cells = <1>;
			#size-cells = <0>;
			status = "disabled";
		};

		semc: semc0@400d4000 {
			compatible = "nxp,imx-semc";
			reg = <0x400d4000 0x4000>;
			interrupts = <132 0>;
			#address-cells = <1>;
			#size-cells = <1>;
		};

		/* GPT1 is used for the hardware timer, not as a standard counter */
		gpt_hw_timer: gpt@400ec000 {
			compatible = "nxp,gpt-hw-timer";
			reg = <0x400ec000 0x4000>;
			interrupts = <119 0>;
			status = "disabled";
		};

		gpt2: gpt@400f0000 {
			compatible = "nxp,imx-gpt";
			reg = <0x400f0000 0x4000>;
			interrupts = <120 0>;
			gptfreq = <24000000>;
			clocks = <&ccm IMX_CCM_GPT_CLK 0x41 0>;
		};

		gpt3: gpt@400f4000 {
			compatible = "nxp,imx-gpt";
			reg = <0x400f4000 0x4000>;
			interrupts = <121 0>;
			gptfreq = <24000000>;
			clocks = <&ccm IMX_CCM_GPT_CLK 0x42 0>;
		};

		gpt4: gpt@400f8000 {
			compatible = "nxp,imx-gpt";
			reg = <0x400f8000 0x4000>;
			interrupts = <122 0>;
			gptfreq = <24000000>;
			clocks = <&ccm IMX_CCM_GPT_CLK 0x43 0>;
		};

		gpt5: gpt@400fc000 {
			compatible = "nxp,imx-gpt";
			reg = <0x400fc000 0x4000>;
			interrupts = <123 0>;
			gptfreq = <24000000>;
			clocks = <&ccm IMX_CCM_GPT_CLK 0x44 0>;
		};

		gpt6: gpt@40100000 {
			compatible = "nxp,imx-gpt";
			reg = <0x40100000 0x4000>;
			interrupts = <124 0>;
			gptfreq = <24000000>;
			clocks = <&ccm IMX_CCM_GPT_CLK 0x45 0>;
		};

		ccm: ccm@40cc0000 {
			compatible = "nxp,imx-ccm-rev2";
			reg = <0x40cc0000 0x4000>;

			#clock-cells = <3>;
		};

		gpio1: gpio@4012c000 {
			compatible = "nxp,imx-gpio";
			reg = <0x4012c000 0x4000>;
			interrupts = <100 0>, <101 0>;
			gpio-controller;
			#gpio-cells = <2>;
		};

		/*
		 * Note that CM7 and CM4 cores do not have the same memory addresses
		 * for GPIO2 and GPIO3, so those peripherals are defined in the SOC
		 * specific DTS files
		 */

		gpio4: gpio@40138000 {
			compatible = "nxp,imx-gpio";
			reg = <0x40138000 0x4000>;
			interrupts = <106 0>, <107 0>;
			gpio-controller;
			#gpio-cells = <2>;
		};

		gpio5: gpio@4013c000 {
			compatible = "nxp,imx-gpio";
			reg = <0x4013c000 0x4000>;
			interrupts = <108 0>, <109 0>;
			gpio-controller;
			#gpio-cells = <2>;
		};

		gpio6: gpio@40140000 {
			compatible = "nxp,imx-gpio";
			reg = <0x40140000 0x4000>;
			gpio-controller;
			#gpio-cells = <2>;
		};

		gpio7: gpio@40c5c000 {
			compatible = "nxp,imx-gpio";
			reg = <0x40c5c000 0x4000>;
			gpio-controller;
			#gpio-cells = <2>;
		};

		gpio8: gpio@40c60000 {
			compatible = "nxp,imx-gpio";
			reg = <0x40c60000 0x4000>;
			gpio-controller;
			#gpio-cells = <2>;
		};

		gpio9: gpio@40c64000 {
			compatible = "nxp,imx-gpio";
			reg = <0x40c64000 0x4000>;
			gpio-controller;
			#gpio-cells = <2>;
		};

		gpio10: gpio@40c68000 {
			compatible = "nxp,imx-gpio";
			reg = <0x40c68000 0x4000>;
			gpio-controller;
			#gpio-cells = <2>;
		};

		gpio11: gpio@40c6c000 {
			compatible = "nxp,imx-gpio";
			reg = <0x40c6c000 0x4000>;
			gpio-controller;
			#gpio-cells = <2>;
		};

		gpio12: gpio@40c70000 {
			compatible = "nxp,imx-gpio";
			reg = <0x40c70000 0x4000>;
			gpio-controller;
			#gpio-cells = <2>;
		};

		gpio13: gpio@40ca0000 {
			compatible = "nxp,imx-gpio";
			reg = <0x40ca0000 0x4000>;
			interrupts = <93 0>;
			gpio-controller;
			#gpio-cells = <2>;
		};

		lpi2c1: i2c@40104000 {
			compatible = "nxp,imx-lpi2c";
			clock-frequency = <I2C_BITRATE_STANDARD>;
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0x40104000 0x4000>;
			interrupts = <32 0>;
			clocks = <&ccm IMX_CCM_LPI2C1_CLK 0x70 6>;
			status = "disabled";
		};

		lpi2c2: i2c@40108000 {
			compatible = "nxp,imx-lpi2c";
			clock-frequency = <I2C_BITRATE_STANDARD>;
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0x40108000 0x4000>;
			interrupts = <33 0>;
			clocks = <&ccm IMX_CCM_LPI2C2_CLK 0x70 8>;
			status = "disabled";
		};

		lpi2c3: i2c@4010c000 {
			compatible = "nxp,imx-lpi2c";
			clock-frequency = <I2C_BITRATE_STANDARD>;
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0x4010c000 0x4000>;
			interrupts = <34 0>;
			clocks = <&ccm IMX_CCM_LPI2C3_CLK 0x70 10>;
			status = "disabled";
		};

		lpi2c4: i2c@40110000 {
			compatible = "nxp,imx-lpi2c";
			clock-frequency = <I2C_BITRATE_STANDARD>;
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0x40110000 0x4000>;
			interrupts = <35 0>;
			clocks = <&ccm IMX_CCM_LPI2C4_CLK 0x80 24>;
			status = "disabled";
		};

		lpi2c5: i2c@40c34000 {
			compatible = "nxp,imx-lpi2c";
			clock-frequency = <I2C_BITRATE_STANDARD>;
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0x40c34000 0x4000>;
			interrupts = <36 0>;
			clocks = <&ccm IMX_CCM_LPI2C5_CLK 0x80 24>;
			status = "disabled";
		};

		lpi2c6: i2c@40c38000 {
			compatible = "nxp,imx-lpi2c";
			clock-frequency = <I2C_BITRATE_STANDARD>;
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0x40c38000 0x4000>;
			interrupts = <37 0>;
			clocks = <&ccm IMX_CCM_LPI2C6_CLK 0x80 24>;
			status = "disabled";
		};

		iomuxc: iomuxc@400e8000 {
			compatible = "nxp,imx-iomuxc";
			reg = <0x400e8000 0x4000>;
			status = "okay";
			pinctrl: pinctrl {
				status = "okay";
				compatible = "nxp,mcux-rt11xx-pinctrl";
			};
		};

		iomuxc_lpsr: iomuxc_lpsr@40c08000 {
			compatible = "nxp,mcux-rt-pinctrl";
			reg = <0x40c08000 0x4000>;
			status = "disabled";
		};

		iomuxc_lpsr_gpr: iomuxc_lpsr_gpr@40c08000 {
			compatible = "nxp,imx-gpr";
			reg = <0x40c08000 0x4000>;
			#pinmux-cells = <2>;
		};

		lcdif: display-controller@40804000 {
			compatible = "nxp,imx-elcdif";
			reg = <0x40804000 0x4000>;
			interrupts = <54 0>;
			status = "disabled";
		};

		mipi_dsi: mipi-dsi@4080c000 {
			compatible = "nxp,imx-mipi-dsi";
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0x4080c000 0x200>,
			      <0x4080c200 0x80>,
			      <0x4080c280 0x80>,
			      <0x4080c300 0x200>;
			interrupts = <59 1>;
			status = "disabled";
		};

		lpspi1: spi@40114000 {
			compatible = "nxp,imx-lpspi";
			reg = <0x40114000 0x4000>;
			interrupts = <38 3>;
			status = "disabled";
			clocks = <&ccm IMX_CCM_LPSPI1_CLK 0x6c 0>;
			#address-cells = <1>;
			#size-cells = <0>;
		};

		lpspi2: spi@40118000 {
			compatible = "nxp,imx-lpspi";
			reg = <0x40118000 0x4000>;
			interrupts = <39 3>;
			status = "disabled";
			clocks = <&ccm IMX_CCM_LPSPI2_CLK 0x6c 2>;
			#address-cells = <1>;
			#size-cells = <0>;
		};

		lpspi3: spi@4011c000 {
			compatible = "nxp,imx-lpspi";
			reg = <0x4011c000 0x4000>;
			interrupts = <40 3>;
			status = "disabled";
			clocks = <&ccm IMX_CCM_LPSPI3_CLK 0x6c 4>;
			#address-cells = <1>;
			#size-cells = <0>;
		};

		lpspi4: spi@40120000 {
			compatible = "nxp,imx-lpspi";
			reg = <0x40120000 0x4000>;
			interrupts = <41 3>;
			status = "disabled";
			clocks = <&ccm IMX_CCM_LPSPI4_CLK 0x6c 6>;
			#address-cells = <1>;
			#size-cells = <0>;
		};

		lpspi5: spi@40c2c000 {
			compatible = "nxp,imx-lpspi";
			reg = <0x40c2c000 0x4000>;
			interrupts = <42 3>;
			status = "disabled";
			clocks = <&ccm IMX_CCM_LPSPI5_CLK 0x6c 6>;
			#address-cells = <1>;
			#size-cells = <0>;
		};

		lpspi6: spi@40c30000 {
			compatible = "nxp,imx-lpspi";
			reg = <0x40c30000 0x4000>;
			interrupts = <43 3>;
			status = "disabled";
			clocks = <&ccm IMX_CCM_LPSPI6_CLK 0x6c 6>;
			#address-cells = <1>;
			#size-cells = <0>;
		};

		lpuart1: uart@4007c000 {
			compatible = "nxp,kinetis-lpuart";
			reg = <0x4007c000 0x4000>;
			interrupts = <20 0>;
			clocks = <&ccm IMX_CCM_LPUART1_CLK 0x7c 24>;
			status = "disabled";
		};

		lpuart2: uart@40080000 {
			compatible = "nxp,kinetis-lpuart";
			reg = <0x40080000 0x4000>;
			interrupts = <21 0>;
			clocks = <&ccm IMX_CCM_LPUART2_CLK 0x68 28>;
			status = "disabled";
		};

		lpuart3: uart@40084000 {
			compatible = "nxp,kinetis-lpuart";
			reg = <0x40084000 0x4000>;
			interrupts = <22 0>;
			clocks = <&ccm IMX_CCM_LPUART3_CLK 0x68 12>;
			status = "disabled";
		};

		lpuart4: uart@40088000 {
			compatible = "nxp,kinetis-lpuart";
			reg = <0x40088000 0x4000>;
			interrupts = <23 0>;
			clocks = <&ccm IMX_CCM_LPUART4_CLK 0x6c 24>;
			status = "disabled";
		};

		lpuart5: uart@4008c000 {
			compatible = "nxp,kinetis-lpuart";
			reg = <0x4008c000 0x4000>;
			interrupts = <24 0>;
			clocks = <&ccm IMX_CCM_LPUART5_CLK 0x74 2>;
			status = "disabled";
		};

		lpuart6: uart@40090000 {
			compatible = "nxp,kinetis-lpuart";
			reg = <0x40090000 0x4000>;
			interrupts = <25 0>;
			clocks = <&ccm IMX_CCM_LPUART6_CLK 0x74 6>;
			status = "disabled";
		};

		lpuart7: uart@40094000 {
			compatible = "nxp,kinetis-lpuart";
			reg = <0x40094000 0x4000>;
			interrupts = <26 0>;
			clocks = <&ccm IMX_CCM_LPUART7_CLK 0x7c 26>;
			status = "disabled";
		};

		lpuart8: uart@40098000 {
			compatible = "nxp,kinetis-lpuart";
			reg = <0x40098000 0x4000>;
			interrupts = <27 0>;
			clocks = <&ccm IMX_CCM_LPUART8_CLK 0x80 14>;
			status = "disabled";
		};

		lpuart9: uart@4009c000 {
			compatible = "nxp,kinetis-lpuart";
			reg = <0x4009c000 0x4000>;
			interrupts = <28 0>;
			clocks = <&ccm IMX_CCM_LPUART9_CLK 0x80 14>;
			status = "disabled";
		};

		lpuart10: uart@400a0000 {
			compatible = "nxp,kinetis-lpuart";
			reg = <0x400a0000 0x4000>;
			interrupts = <29 0>;
			clocks = <&ccm IMX_CCM_LPUART10_CLK 0x80 14>;
			status = "disabled";
		};

		lpuart11: uart@40c24000 {
			compatible = "nxp,kinetis-lpuart";
			reg = <0x40c24000 0x4000>;
			interrupts = <30 0>;
			clocks = <&ccm IMX_CCM_LPUART11_CLK 0x80 14>;
			status = "disabled";
		};

		lpuart12: uart@40098000 {
			compatible = "nxp,kinetis-lpuart";
			reg = <0x40098000 0x4000>;
			interrupts = <31 0>;
			clocks = <&ccm IMX_CCM_LPUART12_CLK 0x80 14>;
			status = "disabled";
		};

		flexpwm1: flexpwm@4018c000 {
			compatible = "nxp,flexpwm";
			reg = <0x4018c000 0x4000>;
			interrupts = <129 0>;

			flexpwm1_pwm0: pwm0 {
				compatible = "nxp,imx-pwm";
				index = <0>;
				interrupts = <125 0>;
				#pwm-cells = <2>;
				clocks = <&ccm IMX_CCM_PWM_CLK 0 0>;
				status = "disabled";
			};

			flexpwm1_pwm1: pwm1 {
				compatible = "nxp,imx-pwm";
				index = <1>;
				interrupts = <126 0>;
				#pwm-cells = <2>;
				clocks = <&ccm IMX_CCM_PWM_CLK 0 0>;
				status = "disabled";
			};

			flexpwm1_pwm2: pwm2 {
				compatible = "nxp,imx-pwm";
				index = <2>;
				interrupts = <127 0>;
				#pwm-cells = <2>;
				clocks = <&ccm IMX_CCM_PWM_CLK 0 0>;
				status = "disabled";
			};

			flexpwm1_pwm3: pwm3 {
				compatible = "nxp,imx-pwm";
				index = <3>;
				interrupts = <128 0>;
				#pwm-cells = <2>;
				clocks = <&ccm IMX_CCM_PWM_CLK 0 0>;
				status = "disabled";
			};
		};

		flexpwm2: flexpwm@40190000 {
			compatible = "nxp,flexpwm";
			reg = <0x40190000 0x4000>;
			interrupts =  <181 0>;

			flexpwm2_pwm0: pwm0 {
				compatible = "nxp,imx-pwm";
				index = <0>;
				interrupts = <177 0>;
				#pwm-cells = <2>;
				clocks = <&ccm IMX_CCM_PWM_CLK 0 0>;
				status = "disabled";
			};

			flexpwm2_pwm1: pwm1 {
				compatible = "nxp,imx-pwm";
				index = <1>;
				interrupts = <178 0>;
				#pwm-cells = <2>;
				clocks = <&ccm IMX_CCM_PWM_CLK 0 0>;
				status = "disabled";
			};

			flexpwm2_pwm2: pwm2 {
				compatible = "nxp,imx-pwm";
				index = <2>;
				interrupts = <179 0>;
				#pwm-cells = <2>;
				clocks = <&ccm IMX_CCM_PWM_CLK 0 0>;
				status = "disabled";
			};

			flexpwm2_pwm3: pwm3 {
				compatible = "nxp,imx-pwm";
				index = <3>;
				interrupts = <180 0>;
				#pwm-cells = <2>;
				clocks = <&ccm IMX_CCM_PWM_CLK 0 0>;
				status = "disabled";
			};
		};

		flexpwm3: flexpwm@40194000 {
			compatible = "nxp,flexpwm";
			reg = <0x40194000 0x4000>;
			interrupts =  <186 0>;

			flexpwm3_pwm0: pwm0 {
				compatible = "nxp,imx-pwm";
				index = <0>;
				interrupts = <182 0>;
				#pwm-cells = <2>;
				clocks = <&ccm IMX_CCM_PWM_CLK 0 0>;
				status = "disabled";
			};

			flexpwm3_pwm1: pwm1 {
				compatible = "nxp,imx-pwm";
				index = <1>;
				interrupts = <183 0>;
				#pwm-cells = <2>;
				clocks = <&ccm IMX_CCM_PWM_CLK 0 0>;
				status = "disabled";
			};

			flexpwm3_pwm2: pwm2 {
				compatible = "nxp,imx-pwm";
				index = <2>;
				interrupts = <184 0>;
				#pwm-cells = <2>;
				clocks = <&ccm IMX_CCM_PWM_CLK 0 0>;
				status = "disabled";
			};

			flexpwm3_pwm3: pwm3 {
				compatible = "nxp,imx-pwm";
				index = <3>;
				interrupts = <185 0>;
				#pwm-cells = <2>;
				clocks = <&ccm IMX_CCM_PWM_CLK 0 0>;
				status = "disabled";
			};
		};

		flexpwm4: flexpwm@40198000 {
			compatible = "nxp,flexpwm";
			reg = <0x40198000 0x4000>;
			interrupts = <191 0>;

			flexpwm4_pwm0: pwm0 {
				compatible = "nxp,imx-pwm";
				index = <0>;
				interrupts = <187 0>;
				#pwm-cells = <2>;
				clocks = <&ccm IMX_CCM_PWM_CLK 0 0>;
				status = "disabled";
			};

			flexpwm4_pwm1: pwm1 {
				compatible = "nxp,imx-pwm";
				index = <1>;
				interrupts = <188 0>;
				#pwm-cells = <2>;
				clocks = <&ccm IMX_CCM_PWM_CLK 0 0>;
				status = "disabled";
			};

			flexpwm4_pwm2: pwm2 {
				compatible = "nxp,imx-pwm";
				index = <2>;
				interrupts = <189 0>;
				#pwm-cells = <2>;
				clocks = <&ccm IMX_CCM_PWM_CLK 0 0>;
				status = "disabled";
			};

			flexpwm4_pwm3: pwm3 {
				compatible = "nxp,imx-pwm";
				index = <3>;
				interrupts = <190 0>;
				#pwm-cells = <2>;
				clocks = <&ccm IMX_CCM_PWM_CLK 0 0>;
				status = "disabled";
			};
		};

		enet: ethernet@40424000 {
			compatible = "nxp,kinetis-ethernet";
			reg = <0x40424000 0x628>;
			interrupts = <137 0>;
			interrupt-names = "COMMON";
			status = "disabled";
			phy-addr = <2>;
			ptp: ptp {
				compatible = "nxp,kinetis-ptp";
				status = "disabled";
				interrupts = <138 0>;
				interrupt-names = "IEEE1588_TMR";
			};
		};

		usb1: usbd@40430000 {
			compatible = "nxp,mcux-usbd";
			reg = <0x40430000 0x200>;
			interrupts = <136 1>;
			interrupt-names = "usb_otg";
			clocks = <&xtal>;
			num-bidir-endpoints = <8>;
			maximum-speed = "full-speed";
			status = "disabled";
		};

		usb2: usbd@4042c000 {
			compatible = "nxp,mcux-usbd";
			reg = <0x4042c000 0x200>;
			interrupts = <135 1>;
			interrupt-names = "usb_otg";
			clocks = <&xtal>;
			num-bidir-endpoints = <8>;
			maximum-speed = "full-speed";
			status = "disabled";
		};

		usdhc1: usdhc@40418000 {
			compatible = "nxp,imx-usdhc";
			reg = <0x40418000 0x4000>;
			status = "disabled";
			interrupts = <133 0>;
			clocks = <&ccm IMX_CCM_USDHC1_CLK 0 0>;
			max-current-330 = <1020>;
			max-current-180 = <1020>;
			max-bus-freq = <208000000>;
			min-bus-freq = <400000>;
		};

		usdhc2: usdhc@4041c000 {
			compatible = "nxp,imx-usdhc";
			reg = <0x4041c000 0x4000>;
			status = "disabled";
			interrupts = <134 0>;
			clocks = <&ccm IMX_CCM_USDHC2_CLK 0 0>;
			max-current-330 = <1020>;
			max-current-180 = <1020>;
			max-bus-freq = <208000000>;
			min-bus-freq = <400000>;
		};

		csi: csi@40800000 {
			compatible = "nxp,imx-csi";
			reg = <0x40800000 0x4000>;
			interrupts = <56 1>;
			status = "disabled";
		};

		flexcan1: can@400c4000 {
			compatible = "nxp,kinetis-flexcan";
			reg = <0x400c4000 0x1000>;
			interrupts = <44 0>, <45 0>;
			interrupt-names = "common", "error";
			clocks = <&ccm IMX_CCM_CAN1_CLK 0x68 14>;
			clk-source = <0>;
			sjw = <1>;
			sample-point = <875>;
			status = "disabled";
		};

		flexcan2: can@400c8000 {
			compatible = "nxp,kinetis-flexcan";
			reg = <0x400c8000 0x1000>;
			interrupts = <46 0>, <47 0>;
			interrupt-names = "common", "error";
			clocks = <&ccm IMX_CCM_CAN2_CLK 0x68 18>;
			clk-source = <0>;
			sjw = <1>;
			sample-point = <875>;
			status = "disabled";
		};

		flexcan3: can@40c3c000 {
			compatible = "nxp,kinetis-flexcan";
			reg = <0x40c3c000 0x1000>;
			interrupts = <48 0>, <49 0>;
			interrupt-names = "common", "error";
			clocks = <&ccm IMX_CCM_CAN3_CLK 0x84 6>;
			clk-source = <0>;
			sjw = <1>;
			sample-point = <875>;
			status = "disabled";
		};

		wdog1: wdog@40030000 {
			compatible = "nxp,imx-wdog";
			reg = <0x40030000 0xA>;
			status = "disabled";
			interrupts = <112 0>;
		};

		ocram: ocram@20200000 {
			compatible = "mmio-sram";
			reg = <0x20200000 DT_SIZE_K(256)>;
		};

		ocram1: ocram@20240000 {
			compatible = "mmio-sram";
			reg = <0x20240000 DT_SIZE_K(512)>;
		};

		ocram2: ocram@202c0000 {
			compatible = "mmio-sram";
			reg = <0x202c0000 DT_SIZE_K(512)>;
		};

		lpadc0: lpadc@40050000 {
			compatible = "nxp,lpc-lpadc";
			reg = <0x40050000 0x304>;
			interrupts = <88 0>;
			status = "disabled";
			clk-divider = <8>;
			clk-source = <0>;
			voltage-ref= <2>;
			calibration-average = <128>;
			power-level = <1>;
			offset-value-a = <10>;
			offset-value-b = <10>;
			#io-channel-cells = <1>;
		};

		lpadc1: lpadc@40054000 {
			compatible = "nxp,lpc-lpadc";
			reg = <0x40054000 0x304>;
			interrupts = <89 0>;
			status = "disabled";
			clk-divider = <8>;
			clk-source = <0>;
			voltage-ref= <2>;
			calibration-average = <128>;
			power-level = <1>;
			offset-value-a = <10>;
			offset-value-b = <10>;
			#io-channel-cells = <1>;
		};

		acmp1: cmp@401a4000 {
			compatible = "nxp,kinetis-acmp";
			reg = <0x401a4000 0x4000>;
			interrupts = <157 0>;
			status = "disabled";
			#io-channel-cells = <2>;
		};

		acmp2: cmp@401a8000 {
			compatible = "nxp,kinetis-acmp";
			reg = <0x401a8000 0x4000>;
			interrupts = <158 0>;
			status = "disabled";
			#io-channel-cells = <2>;
		};

		acmp3: cmp@401ac000 {
			compatible = "nxp,kinetis-acmp";
			reg = <0x401ac000 0x4000>;
			interrupts = <159 0>;
			status = "disabled";
			#io-channel-cells = <2>;
		};

		acmp4: cmp@401b0000 {
			compatible = "nxp,kinetis-acmp";
			reg = <0x401b0000 0x4000>;
			interrupts = <160 0>;
			status = "disabled";
			#io-channel-cells = <2>;
		};

		anatop: anatop@40c84000 {
			compatible = "nxp,imx-anatop";
			reg = <0x40c84000 0x4000>;
			#clock-cells = <4>;
			#pll-clock-cells = <3>;
		};

		edma0: dma-controller@40070000 {
			#dma-cells = <2>;
			compatible = "nxp,mcux-edma";
			dma-channels = <32>;
			dma-requests = <208>;
			nxp,mem2mem;
			nxp,a_on;
			reg = <0x40070000 0x4000>,
				<0x40074000 0x4000>;
			clocks = <&ccm IMX_CCM_EDMA_CLK 0x7C 0x000000C0>;
				status = "disabled";
			interrupts = <0 0>, <1 0>, <2 0>, <3 0>,
				<4 0>, <5 0>, <6 0>, <7 0>,
				<8 0>, <9 0>, <10 0>, <11 0>,
				<12 0>, <13 0>, <14 0>, <15 0>,
				<16 0>;
		};

		edma_lpsr0: dma-controller@40c14000 {
			#dma-cells = <2>;
			compatible = "nxp,mcux-edma";
			dma-channels = <32>;
			dma-requests = <208>;
			nxp,mem2mem;
			nxp,a_on;
			reg = <0x40c14000 0x4000>,
				<0x40c18000 0x4000>;
			clocks = <&ccm IMX_CCM_EDMA_LPSR_CLK 0x7C 0x000000C0>;
			status = "disabled";
			interrupts = <0 0>, <1 0>, <2 0>, <3 0>,
				<4 0>, <5 0>, <6 0>, <7 0>,
				<8 0>, <9 0>, <10 0>, <11 0>,
				<12 0>, <13 0>, <14 0>, <15 0>,
				<16 0>;
		};

		iomuxcgpr: iomuxcgpr@400e4000 {
			compatible = "nxp,imx-gpr";
			reg = <0x400e4000 0x4000>;
			#pinmux-cells = <2>;
		};

		sai1: sai@40404000 {
			compatible = "nxp,mcux-i2s";
			#address-cells = <1>;
			#size-cells = <0>;
			#pinmux-cells = <2>;
			reg = <0x40404000 0x4000>;
			clocks = <&ccm IMX_CCM_SAI1_CLK 0x2004 4>;
			pre-div = <0>;
			podf = <4>;
			pll-clocks = <&anatop 0 0 0>,
					<&anatop 0 0 30>,
					<&anatop 0 0 1>,
					<&anatop 0 0 77>,
					<&anatop 0 0 100>;
			pll-clock-names = "src", "lp", "pd", "num", "den";
			pinmuxes = <&iomuxcgpr 0x0 0x100>;
			interrupts = <76 0>;
			nxp,tx-channel = <1>;
			status = "disabled";
		};

		sai2: sai@40408000 {
			compatible = "nxp,mcux-i2s";
			#address-cells = <1>;
			#size-cells = <0>;
			#pinmux-cells = <2>;
			reg = <0x40408000 0x4000>;
			clocks = <&ccm IMX_CCM_SAI2_CLK 0x2084 4>;
			pre-div = <0>;
			podf = <63>;
			pll-clocks = <&anatop 0 0 0>,
					<&anatop 0 0 30>,
					<&anatop 0 0 1>,
					<&anatop 0 0 77>,
					<&anatop 0 0 100>;
			pll-clock-names = "src", "lp", "pd", "num", "den";
			pinmuxes = <&iomuxcgpr 0x4 0x100>;
			interrupts = <77 0>;
			nxp,tx-channel = <1>;
			status = "disabled";
		};

		sai3: sai@4040c000 {
			compatible = "nxp,mcux-i2s";
			#address-cells = <1>;
			#size-cells = <0>;
			#pinmux-cells = <2>;
			reg = <0x4040c000 0x4000>;
			clocks = <&ccm IMX_CCM_SAI3_CLK 0x2104 4>;
			pre-div = <0>;
			podf = <63>;
			pll-clocks = <&anatop 0 0 0>,
					<&anatop 0 0 30>,
					<&anatop 0 0 1>,
					<&anatop 0 0 77>,
					<&anatop 0 0 100>;
			pll-clock-names = "src", "lp", "pd", "num", "den";
			pinmuxes = <&iomuxcgpr 0x8 0x100>;
			interrupts = <78 0>, <79 0>;
			nxp,tx-channel = <1>;
			status = "disabled";
		};

		sai4: sai@40c40000 {
			compatible = "nxp,mcux-i2s";
			#address-cells = <1>;
			#size-cells = <0>;
			#pinmux-cells = <2>;
			reg = <0x40c40000 0x4000>;
			clocks = <&ccm IMX_CCM_SAI4_CLK 0x2184 6>;
			pre-div = <0>;
			podf = <63>;
			pll-clocks = <&anatop 0 0 0>,
					<&anatop 0 0 30>,
					<&anatop 0 0 1>,
					<&anatop 0 0 77>,
					<&anatop 0 0 100>;
			pll-clock-names = "src", "lp", "pd", "num", "den";
			pinmuxes = <&iomuxcgpr 0x8 0x200>;
			interrupts = <80 0>, <81 0>;
			nxp,tx-channel = <1>;
			status = "disabled";
		};

		src: reset-controller@40c04000 {
			compatible = "nxp,imx-src-rev2";
			reg = <0x40c04000 0x4000>;
			status = "okay";
		};

	};
};

&nvic {
	arm,num-irq-priority-bits = <4>;
};

&systick {
	/*
	 * RT11xx relies by default on the GPT Timer for system clock
	 * implementation, so the SysTick node should not be enabled.
	 */
	status = "disabled";
};
