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

#include <arm/armv7-m.dtsi>
#include <dt-bindings/clock/imx_ccm.h>
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/i2c/i2c.h>

/ {
	aliases {
		counter-1 = &gpt1;
		counter-2 = &gpt2;
		eth = &eth;
		gpio-1 = &gpio1;
		gpio-2 = &gpio2;
		gpio-3 = &gpio3;
		gpio-4 = &gpio4;
		gpio-5 = &gpio5;
		i2c-1 = &i2c1;
		i2c-2 = &i2c2;
		i2c-3 = &i2c3;
		i2c-4 = &i2c4;
		spi-1 = &spi1;
		spi-2 = &spi2;
		spi-3 = &spi3;
		spi-4 = &spi4;
		uart-1 = &uart1;
		uart-2 = &uart2;
		uart-3 = &uart3;
		uart-4 = &uart4;
		uart-5 = &uart5;
		uart-6 = &uart6;
		uart-7 = &uart7;
		uart-8 = &uart8;
		usbd-1 = &usbd1;
		usbd-2 = &usbd2;
	};

	cpus {
		#address-cells = <1>;
		#size-cells = <0>;

		cpu@0 {
			device_type = "cpu";
			compatible = "arm,cortex-m7";
			reg = <0>;
			#address-cells = <1>;
			#size-cells = <1>;

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

	sysclk: system-clock {
		compatible = "fixed-clock";
		clock-frequency = <600000000>;
		#clock-cells = <0>;
	};

	soc {
		flexram0: flexram@400b0000 {
			compatible = "nxp,imx-flexram";
			reg = <0x400b0000 0x4000>;
			interrupts = <38 0>;

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

			itcm0: itcm@0 {
				compatible = "nxp,imx-itcm";
				reg = <0x00000000 0x20000>;
			};

			dtcm0: dtcm@20000000 {
				compatible = "nxp,imx-dtcm";
				reg = <0x20000000 0x20000>;
			};

			ocram0: ocram@20200000 {
				compatible = "mmio-sram";
				reg = <0x20200000 0x40000>;
			};
		};

		flexspi0: spi@402a8000 {
			compatible = "nxp,imx-flexspi";
			reg = <0x402a8000 0x4000>;
			interrupts = <108 0>;
			label = "FLEXSPI0";
			#address-cells = <1>;
			#size-cells = <0>;
		};

		flexspi1: spi@402a4000 {
			compatible = "nxp,imx-flexspi";
			reg = <0x402a4000 0x4000>;
			interrupts = <107 0>;
			label = "FLEXSPI1";
			#address-cells = <1>;
			#size-cells = <0>;
		};

		semc0: semc0@402f0000 {
			compatible = "nxp,imx-semc";
			reg = <0x402f0000 0x4000>;
			interrupts = <109 0>;
			label = "SEMC0";
			#address-cells = <1>;
			#size-cells = <1>;
		};

		gpt1: gpt@401ec000 {
			compatible = "nxp,imx-gpt";
			reg = <0x401ec000 0x4000>;
			interrupts = <100 0>;
			label = "GPT1";
		};

		gpt2: gpt@401f0000 {
			compatible = "nxp,imx-gpt";
			reg = <0x401f0000 0x4000>;
			interrupts = <101 0>;
			label = "GPT2";
		};

		ccm: ccm@400fc000 {
			compatible = "nxp,imx-ccm";
			reg = <0x400fc000 0x4000>;
			label = "CCM";

			#clock-cells = <3>;
		};

		gpio1: gpio@401b8000 {
			compatible = "nxp,imx-gpio";
			reg = <0x401b8000 0x4000>;
			interrupts = <80 0>, <81 0>;
			label = "GPIO_1";
			gpio-controller;
			#gpio-cells = <2>;
		};

		gpio2: gpio@401bc000 {
			compatible = "nxp,imx-gpio";
			reg = <0x401bc000 0x4000>;
			interrupts = <82 0>, <83 0>;
			label = "GPIO_2";
			gpio-controller;
			#gpio-cells = <2>;
		};

		gpio3: gpio@401c0000 {
			compatible = "nxp,imx-gpio";
			reg = <0x401c0000 0x4000>;
			interrupts = <84 0>, <85 0>;
			label = "GPIO_3";
			gpio-controller;
			#gpio-cells = <2>;
		};

		gpio4: gpio@401c4000 {
			compatible = "nxp,imx-gpio";
			reg = <0x401c4000 0x4000>;
			interrupts = <86 0>, <87 0>;
			label = "GPIO_4";
			gpio-controller;
			#gpio-cells = <2>;
		};

		gpio5: gpio@400c0000 {
			compatible = "nxp,imx-gpio";
			reg = <0x400c0000 0x4000>;
			interrupts = <88 0>, <89 0>;
			label = "GPIO_5";
			gpio-controller;
			#gpio-cells = <2>;
		};

		i2c1: i2c@403f0000 {
			compatible = "nxp,imx-lpi2c";
			clock-frequency = <I2C_BITRATE_STANDARD>;
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0x403f0000 0x4000>;
			interrupts = <28 0>;
			clocks = <&ccm IMX_CCM_LPI2C_CLK 0x70 6>;
			label = "I2C_1";
			status = "disabled";
		};

		i2c2: i2c@403f4000 {
			compatible = "nxp,imx-lpi2c";
			clock-frequency = <I2C_BITRATE_STANDARD>;
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0x403f4000 0x4000>;
			interrupts = <29 0>;
			clocks = <&ccm IMX_CCM_LPI2C_CLK 0x70 8>;
			label = "I2C_2";
			status = "disabled";
		};

		i2c3: i2c@403f8000 {
			compatible = "nxp,imx-lpi2c";
			clock-frequency = <I2C_BITRATE_STANDARD>;
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0x403f8000 0x4000>;
			interrupts = <30 0>;
			clocks = <&ccm IMX_CCM_LPI2C_CLK 0x70 10>;
			label = "I2C_3";
			status = "disabled";
		};

		i2c4: i2c@403fc000 {
			compatible = "nxp,imx-lpi2c";
			clock-frequency = <I2C_BITRATE_STANDARD>;
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0x403fc000 0x4000>;
			interrupts = <31 0>;
			clocks = <&ccm IMX_CCM_LPI2C_CLK 0x80 24>;
			label = "I2C_4";
			status = "disabled";
		};

		iomuxc: iomuxc@401f8000 {
			reg = <0x401f8000 0x4000>;
			label = "PINMUX_0";
		};

		lcdif1: display-controller@402b8000 {
			compatible = "fsl,imx6sx-lcdif";
			reg = <0x402b8000 0x4000>;
			interrupts = <42 0>;
			label = "ELCDIF_1";
			status = "disabled";
		};

		spi1: spi@40394000 {
			compatible = "nxp,imx-lpspi";
			reg = <0x40394000 0x4000>;
			interrupts = <32 3>;
			label = "SPI_1";
			status = "disabled";
			clocks = <&ccm IMX_CCM_LPSPI_CLK 0x6c 0>;
			#address-cells = <1>;
			#size-cells = <0>;
		};

		spi2: spi@40398000 {
			compatible = "nxp,imx-lpspi";
			reg = <0x40398000 0x4000>;
			interrupts = <33 3>;
			label = "SPI_2";
			status = "disabled";
			clocks = <&ccm IMX_CCM_LPSPI_CLK 0x6c 2>;
			#address-cells = <1>;
			#size-cells = <0>;
		};

		spi3: spi@4039c000 {
			compatible = "nxp,imx-lpspi";
			reg = <0x4039c000 0x4000>;
			interrupts = <34 3>;
			label = "SPI_3";
			status = "disabled";
			clocks = <&ccm IMX_CCM_LPSPI_CLK 0x6c 4>;
			#address-cells = <1>;
			#size-cells = <0>;
		};

		spi4: spi@403a0000 {
			compatible = "nxp,imx-lpspi";
			reg = <0x403a0000 0x4000>;
			interrupts = <35 3>;
			label = "SPI_4";
			status = "disabled";
			clocks = <&ccm IMX_CCM_LPSPI_CLK 0x6c 6>;
			#address-cells = <1>;
			#size-cells = <0>;
		};

		uart1: uart@40184000 {
			compatible = "nxp,kinetis-lpuart";
			reg = <0x40184000 0x4000>;
			interrupts = <20 0>;
			clocks = <&ccm IMX_CCM_LPUART_CLK 0x7c 24>;
			label = "UART_1";
			status = "disabled";
		};

		uart2: uart@40188000 {
			compatible = "nxp,kinetis-lpuart";
			reg = <0x40188000 0x4000>;
			interrupts = <21 0>;
			clocks = <&ccm IMX_CCM_LPUART_CLK 0x68 28>;
			label = "UART_2";
			status = "disabled";
		};

		uart3: uart@4018c000 {
			compatible = "nxp,kinetis-lpuart";
			reg = <0x4018c000 0x4000>;
			interrupts = <22 0>;
			clocks = <&ccm IMX_CCM_LPUART_CLK 0x68 12>;
			label = "UART_3";
			status = "disabled";
		};

		uart4: uart@40190000 {
			compatible = "nxp,kinetis-lpuart";
			reg = <0x40190000 0x4000>;
			interrupts = <23 0>;
			clocks = <&ccm IMX_CCM_LPUART_CLK 0x6c 24>;
			label = "UART_4";
			status = "disabled";
		};

		uart5: uart@40194000 {
			compatible = "nxp,kinetis-lpuart";
			reg = <0x40194000 0x4000>;
			interrupts = <24 0>;
			clocks = <&ccm IMX_CCM_LPUART_CLK 0x74 2>;
			label = "UART_5";
			status = "disabled";
		};

		uart6: uart@40198000 {
			compatible = "nxp,kinetis-lpuart";
			reg = <0x40198000 0x4000>;
			interrupts = <25 0>;
			clocks = <&ccm IMX_CCM_LPUART_CLK 0x74 6>;
			label = "UART_6";
			status = "disabled";
		};

		uart7: uart@4019c000 {
			compatible = "nxp,kinetis-lpuart";
			reg = <0x4019c000 0x4000>;
			interrupts = <26 0>;
			clocks = <&ccm IMX_CCM_LPUART_CLK 0x7c 26>;
			label = "UART_7";
			status = "disabled";
		};

		uart8: uart@401a0000 {
			compatible = "nxp,kinetis-lpuart";
			reg = <0x401a0000 0x4000>;
			interrupts = <27 0>;
			clocks = <&ccm IMX_CCM_LPUART_CLK 0x80 14>;
			label = "UART_8";
			status = "disabled";
		};

		flexpwm1: flexpwm@403dc000 {
			compatible = "nxp,flexpwm";
			reg = <0x403dc000 0x4000>;
			interrupts = <106 0>;

			flexpwm1_pwm0: pwm0 {
				compatible = "nxp,imx-pwm";
				index = <0>;
				label = "FLEXPWM1_PWM0";
				interrupts = <102 0>;
				#pwm-cells = <1>;
			};

			flexpwm1_pwm1: pwm1 {
				compatible = "nxp,imx-pwm";
				index = <1>;
				label = "FLEXPWM1_PWM1";
				interrupts = <103 0>;
				#pwm-cells = <1>;
			};

			flexpwm1_pwm2: pwm2 {
				compatible = "nxp,imx-pwm";
				index = <2>;
				label = "FLEXPWM1_PWM2";
				interrupts = <104 0>;
				#pwm-cells = <1>;
			};

			flexpwm1_pwm3: pwm3 {
				compatible = "nxp,imx-pwm";
				index = <3>;
				label = "FLEXPWM1_PWM3";
				interrupts = <105 0>;
				#pwm-cells = <1>;
			};
		};

		flexpwm2: flexpwm@403e0000 {
			compatible = "nxp,flexpwm";
			reg = <0x403e0000 0x4000>;
			interrupts =  <141 0>;

			flexpwm2_pwm0: pwm0 {
				compatible = "nxp,imx-pwm";
				index = <0>;
				label = "FLEXPWM2_PWM0";
				interrupts = <137 0>;
				#pwm-cells = <1>;
			};

			flexpwm2_pwm1: pwm1 {
				compatible = "nxp,imx-pwm";
				index = <1>;
				label = "FLEXPWM2_PWM1";
				interrupts = <138 0>;
				#pwm-cells = <1>;
			};

			flexpwm2_pwm2: pwm2 {
				compatible = "nxp,imx-pwm";
				index = <2>;
				label = "FLEXPWM2_PWM2";
				interrupts = <139 0>;
				#pwm-cells = <1>;
			};

			flexpwm2_pwm3: pwm3 {
				compatible = "nxp,imx-pwm";
				index = <3>;
				label = "FLEXPWM2_PWM3";
				interrupts = <140 0>;
				#pwm-cells = <1>;
			};
		};

		flexpwm3: flexpwm@403e4000 {
			compatible = "nxp,flexpwm";
			reg = <0x403e4000 0x4000>;
			interrupts =  <146 0>;

			flexpwm3_pwm0: pwm0 {
				compatible = "nxp,imx-pwm";
				index = <0>;
				label = "FLEXPWM3_PWM0";
				interrupts = <142 0>;
				#pwm-cells = <1>;
			};

			flexpwm3_pwm1: pwm1 {
				compatible = "nxp,imx-pwm";
				index = <1>;
				label = "FLEXPWM3_PWM1";
				interrupts = <143 0>;
				#pwm-cells = <1>;
			};

			flexpwm3_pwm2: pwm2 {
				compatible = "nxp,imx-pwm";
				index = <2>;
				label = "FLEXPWM3_PWM2";
				interrupts = <144 0>;
				#pwm-cells = <1>;
			};

			flexpwm3_pwm3: pwm3 {
				compatible = "nxp,imx-pwm";
				index = <3>;
				label = "FLEXPWM3_PWM3";
				interrupts = <145 0>;
				#pwm-cells = <1>;
			};
		};

		flexpwm4: flexpwm@403e8000 {
			compatible = "nxp,flexpwm";
			reg = <0x403e8000 0x4000>;
			interrupts = <151 0>;

			flexpwm4_pwm0: pwm0 {
				compatible = "nxp,imx-pwm";
				index = <0>;
				label = "FLEXPWM4_PWM0";
				interrupts = <147 0>;
				#pwm-cells = <1>;
			};

			flexpwm4_pwm1: pwm1 {
				compatible = "nxp,imx-pwm";
				index = <1>;
				label = "FLEXPWM4_PWM1";
				interrupts = <148 0>;
				#pwm-cells = <1>;
			};

			flexpwm4_pwm2: pwm2 {
				compatible = "nxp,imx-pwm";
				index = <2>;
				label = "FLEXPWM4_PWM2";
				interrupts = <149 0>;
				#pwm-cells = <1>;
			};

			flexpwm4_pwm3: pwm3 {
				compatible = "nxp,imx-pwm";
				index = <3>;
				label = "FLEXPWM4_PWM3";
				interrupts = <150 0>;
				#pwm-cells = <1>;
			};
		};

		eth: ethernet@402d8000 {
			compatible = "nxp,kinetis-ethernet";
			reg = <0x402D8000 0x628>;
			interrupts = <114 0>;
			interrupt-names = "COMMON";
			status = "disabled";
			local-mac-address = [00 00 00 00 00 00];
			label = "ETH_0";
			ptp {
				compatible = "nxp,kinetis-ptp";
				status = "disabled";
				interrupts = <115 0>;
				interrupt-names = "IEEE1588_TMR";
			};
		};

		trng: random@400cc000 {
			compatible = "nxp,kinetis-trng";
			reg = <0x400cc000 0x4000>;
			status = "okay";
			interrupts = <53 0>;
			label = "TRNG";
		};

		usbd1: usbd@402e0000 {
			compatible = "nxp,kinetis-usbd";
			reg = <0x402E0000 0x200>;
			interrupts = <113 1>;
			interrupt-names = "usb_otg";
			clocks = <&sysclk>;
			num-bidir-endpoints = <8>;
			maximum-speed = "full-speed";
			status = "disabled";
			label = "USBD_1";
		};

		usbd2: usbd@402e0200 {
			compatible = "nxp,kinetis-usbd";
			reg = <0x402E0200 0x200>;
			interrupts = <112 1>;
			interrupt-names = "usb_otg";
			num-bidir-endpoints = <8>;
			maximum-speed = "full-speed";
			status = "disabled";
			label = "USBD_2";
		};

		usdhc1: usdhc@402c0000 {
			compatible = "nxp,imx-usdhc";
			reg = <0x402c0000 0x4000>;
			status = "disabled";
			interrupts = <110 0>;
			clocks = <&ccm IMX_CCM_USDHC1_CLK 0 0>;
			label = "USDHC_1";
		};

		usdhc2: usdhc@402c4000 {
			compatible = "nxp,imx-usdhc";
			reg = <0x402c4000 0x4000>;
			status = "disabled";
			interrupts = <111 0>;
			clocks = <&ccm IMX_CCM_USDHC2_CLK 0 0>;
			label = "USDHC_2";
		};

		csi: csi@402bc000 {
			compatible = "nxp,imx-csi";
			reg = <0x402BC000 0x4000>;
			interrupts = <43 1>;
			status = "disabled";
			label = "CSI";
		};
	};
};

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