/*
 * Copyright 2022 NXP
 *
 * SPDX-License-Identifier: Apache-2.0
 */

#include <mem.h>
#include <freq.h>
#include <arm64/armv8-a.dtsi>
#include <zephyr/dt-bindings/clock/imx_ccm.h>
#include <zephyr/dt-bindings/interrupt-controller/arm-gic.h>

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

	chosen {
		zephyr,console = &uart2;
		zephyr,shell-uart = &uart2;
	};

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

		cpu@0 {
			device_type = "cpu";
			compatible = "arm,cortex-a53";
			reg = <0>;
		};

		cpu@1 {
			device_type = "cpu";
			compatible = "arm,cortex-a53";
			reg = <1>;
		};

		cpu@2 {
			device_type = "cpu";
			compatible = "arm,cortex-a53";
			reg = <2>;
		};

		cpu@3 {
			device_type = "cpu";
			compatible = "arm,cortex-a53";
			reg = <3>;
		};

	};

	arch_timer: timer {
		compatible = "arm,armv8-timer";
		interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL
			      IRQ_DEFAULT_PRIORITY>,
			     <GIC_PPI 14 IRQ_TYPE_LEVEL
			      IRQ_DEFAULT_PRIORITY>,
			     <GIC_PPI 11 IRQ_TYPE_LEVEL
			      IRQ_DEFAULT_PRIORITY>,
			     <GIC_PPI 10 IRQ_TYPE_LEVEL
			      IRQ_DEFAULT_PRIORITY>;
		interrupt-parent = <&gic>;
	};

	gic: interrupt-controller@38800000 {
		compatible = "arm,gic-v3", "arm,gic";
		reg = <0x38800000 0x10000>, /* GIC Dist */
		      <0x38880000 0xc0000>; /* GICR (RD_base + SGI_base) */
		interrupt-controller;
		#interrupt-cells = <4>;
		status = "okay";
	};

	iomuxc: iomuxc@30330000 {
		compatible = "nxp,imx-iomuxc";
		reg = <0x30330000 DT_SIZE_K(64)>;
		status = "okay";
		pinctrl: pinctrl {
			status = "okay";
			compatible = "nxp,imx8m-pinctrl";
		};
	};

	ana_pll: ana_pll@30360000 {
		compatible = "nxp,imx-ana";
		reg = <0x30360000 DT_SIZE_K(64)>;
	};

	ccm: ccm@30380000 {
		compatible = "nxp,imx-ccm";
		reg = <0x30380000 DT_SIZE_K(64)>;
		#clock-cells = <3>;
	};

	uart2: serial@30890000 {
		compatible = "nxp,imx-iuart";
		reg = <0x30890000 DT_SIZE_K(64)>;
		interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>;
		interrupt-names = "irq_0";
		interrupt-parent = <&gic>;
		clocks = <&ccm IMX_CCM_UART2_CLK 0x6c 24>;
		status = "disabled";
	};

	uart4: serial@30a60000 {
		compatible = "nxp,imx-iuart";
		reg = <0x30a60000 DT_SIZE_K(64)>;
		interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>;
		interrupt-names = "irq_0";
		interrupt-parent = <&gic>;
		clocks = <&ccm IMX_CCM_UART4_CLK 0x6c 24>;
		status = "disabled";
	};
};
